Pascal (programspråk)

Pascal är ett programspråk skapat av schweizaren Niklaus Wirth 1970. Språket har fått namn efter fysikern Blaise Pascal och har varit mest aktuellt som undervisningsspråk men även många små och stora programsystem har skrivits i Pascal eller någon av dess dialekter, som Turbo Pascal eller Delphi. Exempelvis är typsättningsystemet TeX och mycket av ursprungsversionen av Macintoshs operativsystem skrivet i originalversionen av Pascal, medan applikationen Total Commander är skriven i Object Pascal eller Delphi, liksom Delphi självt.

Beskrivning 
Wirth ville i första hand att skapa ett effektivt språk baserat på så kallad strukturerad programmering, ett begrepp som då hade blivit populärt. Pascal har sin grund i programspråket ALGOL 60, men införde flera nya begrepp och mekanismer för att, utöver skalärer och matriser, kunna definiera egna godtyckligt komplexa datatyper (även rekursivt) och även bygga dynamiska datastrukturer som listor, träd, etc. Viktiga nya verktyg för detta var bland annat poster (records), uppräkningar (enumerations), intervall (subranges), och dynamiskt allokerade variabler med tillhörande pekare. För att göra detta möjligt och meningsfullt har Pascal en stark typning som även innebär att data av en typ inte kan konverteras eller tolkas som en annan datatyp okontrollerat. Liknande mekanismer finns idag i de flesta moderna programspråk. Utöver ALGOL 60 influerades Pascal av ALGOL 68, Simula 67, och Wirths eget tidigare språk Algol-W.

Liksom en del moderna skriptspråk (men till skillnad mot de flesta språk i C-familjen, C, C++, Java, etc) så tillåter Pascal nästlade procedurer i godtyckligt antal nivåer. Av bland annat det skälet är syntaxen för ett komplett program (eller en unit) precis densamma som för en enstaka procedure eller function, utom, naturligtvis, själva nyckelordet. Av samma skäl kan även procedurer och funktioner innehålla till exempel egna lokala typdefinitioner, inte bara lokala variabler som i en del andra språk.

Wirth konstruerade även andra språk, till exempel Euler, Modula-2, Modula-3, Oberon och var en av medlemmarna i den kommitté som 1960 slutligen fastslog hur Algol skulle utformas.

Liksom många andra av de tidiga programspråken, har Pascal utvecklats och implementerats i många olika versioner, mest för att vissa önskade finesser, såsom till exempel separatkompilering saknades. Det har även förekommit versioner av Pascal som har utökats med flera moderna programmeringskoncept som till exempel objektorienterad programmering; Object Pascal togs ursprungligen fram av framförallt Larry Tesler på datorföretaget Apple i konsultation med Niklaus Wirth, men byggde även det på en äldre objektorienterad version av Pascal kallad Clascal. Delphi är en annan vidareutveckling av Pascal med stöd för objektorienterad programmering.

Programexempel 

"Hello, world!" i Pascal:

 program Hello_World(output);
 begin
   writeln ('Hello, World!')
 end.

Pascalkompilatorer 
 Borland Pascal
 Borland Delphi
 Free Pascal
 GNU Pascal
 Lazarus
 HiSpeed Pascal
 Personal Pascal för Ataridatorer
 Turbo Pascal
 Virtual Pascal

Externa länkar 

 Why Pascal is Not My Favorite Programming Language av Brian W. Kernighan
 Antique Software: Turbo Pascal v5.5 på Borland Developer Network

Procedurella programspråk
Imperativa programspråk