Object Pascal

Object Pascal — об’єктно-орієнтована мова програмування, нащадок Pascal, більш відома як основна мова програмування середовища Delphi.

Історія назви

В 1986 році фірма Apple розробила об’єктне розширення мови програмування Pascal, яке стало називатися Object Pascal. В 1989 році компанія Borland внесла аналогічні зміни в систему Turbo Pascal 5.5, яка з цього моменту стає об’єктно-орієнтованою. З часом, в мову програмування Turbo Pascal вносяться нові зміни, що розширюють її об’єктно-орієнтовані можливості. В 1995 році на ринку з’являється Borland Delphi 1.0, мовою програмування якої стає Object Pascal на базі Turbo Pascal. Ця назва використовується і в наступних версіях Borland Delphi. Проте, з часом, сторонні розробники починають викориcтовувати цю назву для найменування власних версій Pascal. В 2001 році, в Delphi 6.0, компанія Borland відмовляється від назви Object Pascal і називає мову програмування, що використовується в Borland Delphi, мовою програмування Delphi.

Компілятори

Є багато компіляторів, більш чи менш сумісних з Delphi Object Pascal. Вони дозволяють будувати програми на Object Pascal для різноманітних платформ та підпадають під різні ліцензії. Компілятори, що заявлені як Object Pascal-сумісні, дуже часто намагаються бути сумісними із вихідними кодами Delphi.

  • Delphi є, мабуть, найвідомішим компілятором. Дозволяє компілювати для Win16 (Delphi 1), Win32 (Delphi 2+), Win64 (Delphi XE2+), для .NET 1.x, 2.0 (Delphi 8, Delphi 2005–2007), Mac OS (Delphi XE2+), iOS (Delphi XE2+) та Android (Delphi XE5+).
  • Borland Kylix — спроба розробити варіант Delphi для Linux.
  • Lazarus
  • Free Pascal
  • GNU Pascal
  • Virtual Pascal
  • Oxygene
  • MIDletPascal
  • PocketStudio

Приклади програми «Hello, world!»

Object Pascal (Apple)

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.