Object Pascal är en utveckling av programspråket Pascal som utökar det till ett objektorienterat programspråk. Språket Pascal är, liksom C, imperativt och saknar stöd för objektorienterad programmering som idag tagit över mycket av marknaden vilket uppmuntrade utvecklingen av Object Pascal. Programspråket utvecklades på Apple av Larry Tesler och är influerat av programspråket Clascal, som utvecklades tidigare som en typ av objektorienterad variant av Pascal. Objekt Pascal dök upp för första gången på Apples dator Lisa.[1]
Idag finns flera dialekter av programspråket, utvecklade både från företag som sysslar med öppen och stängd källkod. De mest kända dialekterna är Delphi (utvecklat ur Turbo Pascal) och Free Pascal[2]. Båda är mycket lika både vad gäller vilka bibliotek som använda och syntaxmässigt. Många program som skrivs för det ena kan lätt anpassas[3] att kompileras med det andra.
Efter version 6 av Delphi, slutade Borland kalla sin version av språket Object Pascal och tog namnet Delphi istället, vilket gör att man kan säga att Free Pascal är den ledande Object Pascal-kompilatorn, även om språket Delphi bara är en mindre ändring av Object Pascal. Dock tillhandahålls Delphi endast för Windows och endast en processortyp[4], medan Object Pascal (Free Pascals implementation) finns i 14 officiella versioner[5] för diverse plattformar och processortyper och även mindre system som används som t.ex. handdatorer eller dylikt.
Object Pascal har traditionellt kopplas ihop med dess bibliotek för grafisk utveckling, då Delphi utvecklas med ett stort stöd för grafiska komponenter i Windows med biblioteket VCL. Free Pascal har även implementerat en motsvarighet till detta kallat LCL[6]. Delphi har idag fortsatt att fokusera på grafisk utveckling, både i .NET och Windows. Free Pascal har, även om det fokuserar i sitt project Lazarus på grafisk utveckling och LCL-biblioteket, på att kunna utveckla icke-grafiska program och kunna på det sättet stödja sådant som C++-kompilatorn GCC/G++ stödjer.
Det har debatterats mycket om hastighet och huruvida C++ eller Object Pascal är mer lämpligt för mer krävande program. Språken är även mycket olika, vilket ofta poängteras i dessa diskussioner. [7]
Exempel på kod i Object Pascal[8]
program ObjectPascalExample;
type
THelloWorld = class
procedure Put;
end;
procedure THelloWorld.Put;
begin
Writeln('Hello, World!');
end;
var
HelloWorld: THelloWorld; { implicit pekare }
begin
HelloWorld := THelloWorld.Create; { konstruktorns ger en pekare }
HelloWorld.Put;
HelloWorld.Free; { släpper pekaren }
end.
Källor