Object Pascal är en utveckling avprogramspråketPascal som utökar det till ett objektorienterat programspråk. Språket Pascal är, liksomC, imperativt och saknar stöd förobjektorienterad 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åketClascal, som utvecklades tidigare som en typ av objektorienterad variant av Pascal. Objekt Pascal dök upp för första gången på Apples datorLisa.[1]
Idag finns fleradialekter av programspråket, utvecklade både från företag som sysslar med öppen och stängdkällkod. De mest kända dialekterna ärDelphi (utvecklat urTurbo Pascal) ochFree Pascal[2]. Båda är mycket lika både vad gäller vilkabibliotek som använda ochsyntaxmä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, slutadeBorland 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örWindows 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 biblioteketVCL. Free Pascal har även implementerat en motsvarighet till detta kallatLCL[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 somC++-kompilatornGCC/G++ stödjer.
Det har debatterats mycket om hastighet och huruvidaC++ 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]
programObjectPascalExample;typeTHelloWorld=classprocedurePut;end;procedureTHelloWorld.Put;beginWriteln('Hello, World!');end;varHelloWorld:THelloWorld;{ implicit pekare }beginHelloWorld:=THelloWorld.Create;{ konstruktorns ger en pekare }HelloWorld.Put;HelloWorld.Free;{ släpper pekaren }end.