Pascal

Fra DDHFwiki
Spring til navigation Spring til søgning
Pascal User Manual and Report

Niklaus Wirth er den primære designer af programmeringssproget Pascal i 1970. Wirth var involveret i videreudviklingen af Algol-60, og Pascal trækker på disse erfaringer. Han havde foreslået en efterfølger kaldt ALGOL W, men det blev ikke accepteret. ALGOL W blev derefter det idémæssige grundlag for Pascal. På grund af en konsistent syntax, strukturer såsom record, pointer, enumeration og set blev Pascal særdeles populært i halvfjerdserne og op til halvfemserne. Det blev i udstrakt grad brugt som undervisningsprog på EDB-uddannelserne.

Pascal var fra starten beskrevet i Backus-Naur Form, hvilke gjorde det nemt at lære. Derudover var der taget højde for at det var muligt at implementere sproget på de fleste andre hardware-platforme. Det var oprindeligt udviklet på en Control Data 6000, og visse procedurer i sproget (getseg, putseg, eos) der arbejder på segmenterede filer er specifikt erklæret til at være udvidelser der ikke er en del af Standard Pascal.

Kritik

I forhold til nutidens forventninger, så har den oprindelige Pascal nogle mangler:

  • Der er ingen continue eller break udtryk til at bryde ud af en løkke. Det er nødvendigt at bruge komplekse if-betingelser eller goto til henholdsvis før og efter løkkens end.
  • Tilsvarende kan man ikke returnere tidligt fra en procedure eller funktion medmindre man bruger goto.
  • Pascal har streng-konstanter, men ingen streng type. Man skal bruge en tabel af char. Tabeller kan heller ikke være af variabel størrelse. Mange andre implementeringer tilføjede strenge som en udvidelse.
  • Hvis man read(i) hvor i er integer, så vil Pascal læse en sekvens af cifre (0-9), og konvertere til det binære heltalsformat, men read(x) kan ikke gives en tabel som argument. Strenge skal læses ét tegn ad gangen.
  • Operatorerne and og or har højere prioritet end sammenligning. Man skal dermed skrive if (x = 0) and (y = 0) then ...

Eksempel på Pascal program

Dette program skriver Celcius grader ud fra 0 til 39 og konverterer til Fahrenheit. Det er eksempel 3.1 i Pascal User Manual and Report.

{ program 3.1
 example of constant definition part }
program convert(output);

const addin = 32;  mulby = 1.8;  low = 0;  high = 39;
      separator = ' ----------';
var degree : low..high;
begin
   writeln(separator);
   for degree := low to high do
   begin  write(degree,'c',round(degree*mulby + addin),'f');
      if odd(degree) then writeln
   end;
   writeln;
   writeln(separator)
end.

Danske produkter

BLS Pascal m.m.

BLS Pascal compileren skrevet af Anders Hejlsberg til NASCOM 2 computeren var inspireret af Tiny Pascal compileren i Niklaus Wirths bog Algorithms + Data Structures = Programs. Compileren blev solgt af PolyData under varemærket Blue Label Software (BLS). Produktet blev porteret til CP/M og solgt som COMPAS Pascal - senere PolyPascal, hvorefter Borland købte rettighederne og udgav det under navnet Turbo Pascal.

I forhold til konkurrerende produkter har Hejlsbergs Pascal en editor, hvorfra man kan oversætte på få sekunder. Det og en lav pris gjorde Turbo Pascal dominerende på markedet for personlige computere.

Concurrent Pascal

Per Brinch Hansen udviklede det første parallelle programmeringssprog, Concurrent Pascal, i USA.

Arkivalier

Se hvad DDHF har om Pascal i Bitarkivet.