Pascal er eit høgnivå prosedyreprogrammeringsspråk som vart utvikla på slutten av 1960-talet av den sveitsiske datavitaren Niklaus Wirth. Språket vart først designa som eit undervisingsverktøy for å oppmuntre til strukturerte programmeringspraksisar, men utvikla seg seinare til eit språk som er eigna for eit breitt spekter av applikasjonar. Pascal er kjent for sin klare syntaks og sterke typekontroll, noko som gjer det spesielt nyttig for å undervise i datavitenskap og fremje gode programmeringspraksisar. Med røtene sine i Algol-programmeringsspråket la Pascal grunnlaget for mange moderne programmeringsspråk.
Pascal vart fødd på slutten av 1960-talet då Niklaus Wirth ønskte å lage ein etterfølgjar til Algol-programmeringsspråket som inkluderte moderne programmeringskonsept som strukturert programmering. Språket vart først implementert på PDP-11-datamaskinen i 1970, og dei første spesifikasjonane vart publisert i ein artikkel frå 1971 med tittelen "The Programming Language Pascal."
I løpet av 1970- og 1980-talet fekk Pascal stor popularitet, spesielt i akademiske samanhengar, takka vere sin enkelheit og støtte for undervisning i programmeringskonsept. Det vart det foretrukne språket ved mange universitet, noko som førte til utviklinga av fleire innflytelsesrike variantar, som Turbo Pascal, som introduserte eit kraftig integrert utviklingsmiljø (IDE) og kompilator. Turbo Pascal auka ikkje berre tilgjengelegheita til Pascal, men demonstrerte også potensialet for rask programvareutvikling.
Med oppkomsten av nyare programmeringsspråk som C, Java og Python på 1990-talet, minka populariteten til Pascal for generelle programmeringsoppgåver. Likevel blir det framleis brukt i nisjeområde, spesielt innan utdanning og innebygde system, samt i utviklinga av Delphi, eit Object Pascal-basert IDE for utvikling av Windows-applikasjonar. I dag blir Pascal vedlikehalde i ulike former, inkludert Free Pascal og Lazarus, som tilbyr moderne kompilatorfunksjonar og plattformuavhengige moglegheiter.
Pascal håndhevar type-sikkerheit, og forhindrar operasjonar på inkompatible typar. For eksempel:
var
x: Integer;
y: Real;
begin
x := 5;
y := 3.14;
// y := x; // Dette vil føre til ein typekonflikt-feil.
end;
Pascal tilbyr ulike kontrollflytsetningar, som gjer strukturert programmering mogleg. For eksempel:
begin
if x > 10 then
writeln('x er større enn 10')
else
writeln('x er mindre enn eller lik 10');
end;
Pascal støttar modulær programmering gjennom prosedyrar og funksjonar, som fremjar gjenbruk av kode:
procedure SayHello;
begin
writeln('Hallo, Verden!');
end;
function Add(a, b: Integer): Integer;
begin
Add := a + b;
end;
Pascal støttar ein-dimensjonale og flerdimensjonale array, som kan definerast som:
var
arr: array[1..5] of Integer;
begin
arr[1] := 10;
arr[2] := 20;
end;
Pascal tillèt oppretting av brukardefinerte datatypar ved hjelp av rekordar, liknande strukturar i C:
type
Person = record
name: string;
age: Integer;
end;
var
p: Person;
begin
p.name := 'John Doe';
p.age := 30;
end;
Pascal har enkle filhandsamingsmoglegheiter, som støttar grunnleggjande operasjonar:
var
f: TextFile;
begin
AssignFile(f, 'example.txt');
Rewrite(f);
WriteLn(f, 'Hallo, Fil!');
CloseFile(f);
end;
Pascal har sett typar, som gjer det mogleg å opprette samlingar av distinkte objekt:
var
mySet: set of 1..10;
begin
mySet := [1, 3, 5, 7];
if 3 in mySet then
writeln('3 er i settet');
end;
Pascal gir støtte for pekarar, som gjer dynamisk minneallokering mogleg:
var
p: ^Integer;
begin
New(p);
p^ := 10;
Dispose(p);
end;
Pascal inkluderer ein case-setning for fleirvegs forgreining, som forbetrar kodeklarheit:
case x of
1: writeln('Ein');
2: writeln('To');
else writeln('Annan');
end;
Pascal støttar ein-linjers og fleir-linjers kommentarar, som aukar kode-lesbarheita:
// Dette er ein ein-linjers kommentar
(* Dette er ein fleir-linjers kommentar *)
Pascal kan bli kompilert ved hjelp av fleire kompilatorar, mest kjent er Free Pascal og Turbo Pascal. Desse kompilatorane gir moglegheit til å produsere effektivt innfødd kode. Free Pascal er ein open-source variant som støttar eit breitt spekter av operativsystem og plattformer.
Framståande IDEar for Pascal-utvikling inkluderer Lazarus (som bruker Free Pascal) og Turbo Pascal. Desse miljøa tilbyr funksjonar som kodefullføring, feilsøkingsverktøy og prosjektleiingsfunksjonalitetar, som gjer utviklinga meir tilgjengeleg.
For å bygge eit Pascal-prosjekt, skriv du vanlegvis Pascal-kildekoden din i .pas
-filer og så kompilerer du det ved hjelp av eit kommandolinjeverktøy eller ein IDE. For eksempel, ved å bruke Free Pascal frå kommandolinja vil involvere:
fpc myprogram.pas
Denne kommandoen produserer ein kjørbar fil dersom kildekoden er feilfri.
Pascal blir hovudsakleg brukt i utdanning, då det gir eit solid grunnlag for å forstå programmeringskonsept. I tillegg har det funne applikasjonar i:
Når ein samanliknar Pascal med språk som C og Java, oppstår det fleire distinksjonar. I motsetning til C, som er meir fleksibelt og lågnivå, legg Pascal vekt på strukturert programmering og sterk typing, noko som gjer det mindre utsatt for runtime-feil. Java deler likskapar med Pascal når det gjeld syntaks og struktur; likevel tilbyr det meir avanserte objektorienterte funksjonar og eit rikt standardbibliotek.
Python, kjent for sin enkelheit og lesbarheit, blir ofte sett på som eit moderne alternativ til Pascal for undervisingsformål, sjølv om det manglar Pasals strenge typing. I kontrast har språk som C++ og Go meir avanserte samtidige programmeringsfunksjonar og lågnivå minnehandsamingskapasitetar, som skil dei frå Pasals meir enkle operasjonelle kontroll.
Å oversette Pascal-kode til andre språk krev ofte nøye vurdering av type-definisjonar og strukturert kontrollflyt. Sjølv om det ikkje finst noko universelt kilde-til-kilde oversettingsverktøy spesifikt retta mot Pascal, finst det verktøy som Pascal-til-Java-oversetjarar, som kan hjelpe til med å konvertere Pascal-kodebasar til Java-kompatibel syntaks.
Flere eksisterande kilde-til-kilde kodeoversettingsverktøy inkluderer: