Object Pascal

Object Pascal je rozšíření programovacího jazyka Pascal o některé vlastnosti objektově orientovaného programování.

Raná historie v Apple

Object Pascal vytvořili v roce 1985 pro společnost Apple Computer Niklaus Wirth a Larry Tesler a rozšiřoval existující programovací jazyk Pascal o objektově orientovaný přístup.

Object Pascal vznikl za účelem vývoje MacApp, aplikačního rozhraní pro počítače Macintosh (dnes bychom spíš řekli knihovny tříd). Rozšíření v Object Pascalu i MacApp samotný vyvinuli Barry Hanes, Ken Doyle a Larry Rosenstein, testoval je Dan Allen. Na celý projekt dohlížel Larry Tesler.

Společnost Apple přestala jazyk Object Pascal podporovat v roce 1994 v souvislosti s přechodem z procesorové architektury Motoroly 68K na PowerPC od IBM.

Léta Borlandu

V roce 1986 zavedla společnost Borland obdobná rozšíření do svého produktu Turbo Pascal pro počítače Macintosh a v roce 1989 také do Turbo Pascalu 5.5 pro DOS. Jazyk pojmenovala Object Pascal. Když Borland v roce 1994 přesunul svou pozornost od DOSu k Windows, přejmenoval Turbo Pascal na Delphi a uvedl řadu nových rozšíření taktéž s označením Object Pascal. Zrušil však zpětnou kompatibilitu použitím klíčového slova class namísto object, konstruktoru Create a virtuálního destruktoru Destroy, vlastností, ukazatelů na metody a několika dalších věcí.

Open source překladače s podporou Apple

V současné době (2005) se jak Free Pascal, tak GNU Pascal snaží zachovat kompatibilitu s Mac Pascalem. Free Pascal umožňuje do určité míry kombinaci objektů v Delphi módu s objekty v Apple Pascalu.

Překladače

Vedle již zmíněných překladačů Delphi, Free Pascal a GNU Pascal je zde několik dalších, povětšinou klony Delphi, implementující části Object Pascalu, buď v dialektu Applu nebo Borlandu:

  • Virtual Pascal Archivováno 8. 4. 2020 na Wayback Machine. (dialekt Delphi) – jednoduchý Turbo Pascal a Delphi 2 kompatibilní překladač, s podporou pro OS/2, Windows, DOS a částečně Linux. V současné době je vývoj ukončen.
  • Pocket Studio (dialekt Delphi) – překladač/RAD, zaměřený na ARM/Palm s několika vlastními rozšířeními. Současný stav vývoje není známý, ani to, zda je stále v prodeji.
  • Oxygene (dříve známý jako Chrome) – je zásuvný modul pro Visual Studio a nativní .NET/Mono překladač pro příkazový řádek. Zaměřuje se na platformu .NET či Mono a z uvedených překladačů je nejnovější.

Object Pascal používá vývojové prostředí (IDE) Lazarus.

Ukázka kódu

Apple Object Pascal

program ObjectPascalExample;

type
  THelloWorld = object
    procedure Put;
  end;

var
  HelloWorld: THelloWorld;

procedure THelloWorld.Put;
begin
  WriteLn('Hello, World!');
end;

begin
  New(HelloWorld);
  HelloWorld.Put;
  Dispose(HelloWorld);
end.

Turbopaskalový Object Pascal

program ObjectPascalExample;

type
  PHelloWorld = ^THelloWorld;
  THelloWorld = object
    procedure Put;
  end;

var
  HelloWorld: PHelloWorld;

procedure THelloWorld.Put;
begin
  WriteLn('Hello, World!');
end;

begin
  New(HelloWorld);
  HelloWorld^.Put;
  Dispose(HelloWorld);
end.

Delfský Object Pascal

program ObjectPascalExample;

type
  THelloWorld = class
    procedure Put;
  end;

var
  HelloWorld: THelloWorld;

procedure THelloWorld.Put;
begin
  WriteLn('Hello, World!');
end;

begin
  HelloWorld := THelloWorld.Create;
  HelloWorld.Put;
  HelloWorld.Free;
end.

Externí odkazy

Delphi – průvodce jazykem Object Pascal pro Delphi:

  • (anglicky) Delphi 5 „Object Pascal Language Guide“
  • (anglicky) Object Pascal Style Guide Archivováno 9. 7. 2015 na Wayback Machine.

Free Pascal Archivováno 25. 1. 1999 na Wayback Machine. – reference jazyka Object Pascal:

  • (anglicky) Aktuální verze Object Pascal Reference guide od Michaëla Van Canneyta (pdf) Archivováno 10. 7. 2020 na Wayback Machine.
  • (anglicky) Aktuální verze Object Pascal Reference guide od Michaëla Van Canneyta (html)
  • (anglicky) Aktuální stav podpory rozšíření Mac Pascal

GNU Pascal(GPC):

  • (anglicky) GPC Rozdíly oproti Mac Pascalu Archivováno 15. 12. 2008 na Wayback Machine.
Programovací jazyky
abecední seznam programovacích jazyků
multiparadigmatické
Ada • C++Common Lisp • D • F# • Go • Oberon • PerlPHPPythonRuby • Rust • Scala • Swift • Tcl (Tk) • Vala
strukturované (procedurální)
AWK • C • COBOLDCL • Forth • FortranLuaModula-2 / Modula-3 • Pascal • PawnPL/SQL
objektové
BETA • Boo • C# • Eiffel • Java (Groovy, Kotlin) • JavaScript • Object Pascal • Objective-CSmalltalkVB.NET
funkcionální
Clean • Ceylon • Erlang • Haskell • J • LispWolfram Language / Mathematica • Miranda • OCamlScheme
dotazovací
LINQSPARQLSQLXQueryXSL (XSLTXSL-FOXPath)
logické
Gödel • Prolog
výukové
Baltazar • Baltík • Karel • Kodu Game Lab • Logo • Microsoft Small Basic • Petr • Scratch
ezoterické
BefungeBrainfuckHQ9+MalbolgeOok!PietWhitespace
historické
ALGOL • APL • B • BASICCPL (BCPL) • J • MUMPSPL/ISimula 67SNOBOL
další
ABAPAppleScriptColdFusionJSA • Julia • MATLAB • R • Visual Basic (VBScript) • VimscriptVisual FoxPro
skriptovací/strojový kódkompilované/interpretované • interaktivní/dávkovéWYSIWYG
Autoritní data Editovat na Wikidatech