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). Назва Object Pascal застосовувалась і в наступних версіях Borland Delphi. Проте з часом сторонні розробники почали застосовувати таку назву для власних версій Pascal. 2001 року, із випуском Delphi 6.0, компанія Borland відмовилася від назви Object Pascal і назвала мову програмування, що застосована в Borland Delphi, мовою програмування Delphi.

Версії

У перших версіях Borland використовувала для мови програмування назву Object Pascal, але пізніше перейменувала її на Delphi. Компілятори, для яких декларується сумісність із Object Pascal, часто намагаються робити сумісними з сирцевим кодом Delphi. Оскільки Delphi — торговельна марка, то сумісні компілятори продовжують використовувати назву Object Pascal. Компанія Embarcadero Technologies, яка придбала Delphi 2008 року,Community Letter: Embarcadero Technologies agrees to acquire CodeGear from Borland . продає інтегроване середовище розробки (ІСР) Delphi, яке компілює діалект Delphi Object Pascal для Windows, macOS, iOS, Android та Web. Підтримка .NET існувала від Delphi 8 до Delphi 2005, 2006 та 2007, яку тепер замінила інша мова, Oxygene (див. нижче), яка не повністю зворотно сумісна. Мова Oxygene, розроблена , орієнтована на Common Language Infrastructure, середовище виконання Java та фреймворки Apple Cocoa для iOS та macOS. Проєкт Free Pascal з відкритим сирцевим кодом дозволяє компілювати мову для широкого спектра операційних систем, серед яких Linux (32-розрядна, 64-розрядна), FreeBSD, , macOS, Solaris, Windows API (32, 64, CE), архітектуру набору інструкцій ARM та кілька інших апаратних архітектур. Перша версія Free Pascal для комплекту розробки програмного забезпечення (SDK) iPhone 2.x анонсовано 17 січня 2009 року. Мова орієнтована на ECMAScript — JavaScript і використовується в Smart Mobile Studio, яку написав Джон Леннарт Аасенден та опублікувала Optimale Systemer (2012). Мова значно спрощує розробку HTML5 завдяки об'єктно-орієнтованим методам та методам швидкої розробки застосунків (RAD). Smart Pascal тісно інтегрується з усталеними технологіями, такими як node.js, Embarcadero DataSnap та Remobjects SDK, для створення високопродуктивних вебзастосунків клієнт-серверної моделі. Мова дає змогу легко створювати візуальні компоненти та бібліотеки повторного використання. Діалект Smart Pascal походить від мови DWScript, розширеної для кращої інтеграції з середовищем та бібліотеками JavaScript, такими як розділи asm, написані простим JavaScript, але мають доступ до символів Pascal, або зовнішні класи, які безпосередньо відображаються на прототипні класи JavaScript. Smart Pascal вводить справжнє успадкування, класи, часткові класи, інтерфейси, таблицю віртуальних методів та багато інших розширених конструкцій, які типово не є частиною JavaScript. Мова програмування Pascal, розроблена компанією Morfik, орієнтована на вебзастосунки з підтримкою AJAX. Компілятор, вбудований в ІСР AppsBuilder компанії, дає змогу використовувати код Object Pascal для реалізації коду для виконання в браузері або на сервері. Для генерування рідних двійкових файлів з Object Pascal він використовує компілятор Free Pascal. Компілятор з відкритим кодом доступний як інтерфейс до колекції компіляторів GNU, яка реалізує стандарт Міжнародної організації зі стандартизації (ISO) 7185 Pascal та більшу частину стандарту ISO 10206 Extended Pascal. Turbo51 — безкоштовний компілятор для програмування мікросхем Intel 8051. WDSibyl — Delphi-подібне ІСР та компілятор із відкритим сирцевим кодом, доступний для Microsoft Windows та OS/2, — комерційне середовище, сумісне з Turbo Pascal, випущене компанією Speedsoft, яке пізніше було стало основою для Delphi-подібного середовища під назвою Sybil, а після закриття цієї компанії опубліковане під ліцензією GPL. Нині його підтримує Вольфганг Дракслер (WD). Використаний компілятор, схоже, міститься в DLL і не є компілятором з відкритим сирцевим кодом.

Компілятори Є багато компіляторів, більш чи менш сумісних з 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. Free Pascal GNU Pascal Virtual Pascal Oxygene MIDletPascal PocketStudio

Інтерпретатори Pascal Script (раніше InnerFuse) та DWScript (Delphi Web Script) — це інтерпретатори та скриптові механізми з відкритим кодом для Object Pascal, написані на Delphi. Вони підтримують підмножини Object Pascal. DWScript також може компілювати код Object Pascal у код JavaScript (Smart Pascal) та підтримує JIT-компіляцію. Modern Pascal надає 3 різні інтерпретатори: інтерфейс командного рядка (CLI), модуль Apache (Celerity) та CodeRunner (рішення, подібне до node.js, здатне обробляти різні скрипти для кожного порту), окрім можливості компілювати та захищати сирцевий код скрипту.

Приклади програми «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.

Object Pascal (Turbo Pascal) program ObjectPascalExample;

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

var HelloWorld: PHelloWorld; { це вказівник на THelloWorld }

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

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

Object Pascal (Delphi та Free Pascal) program ObjectPascalExample;

type THelloWorld = class procedure Put; end;

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

var HelloWorld: THelloWorld; { це неявний вказівник }

begin HelloWorld := THelloWorld.Create; { конструктор повертає вказівник } HelloWorld.Put; HelloWorld.Free; { розіменування вказівника} end.

Object Pascal (Oxygene) namespace ObjectPascalExample;

interface

type ConsoleApp = class class method Main end;

THelloWorld = class method Put; end;

implementation

method THelloWorld.Put; begin Console.WriteLine('Hello, World!'); end;

class method ConsoleApp.Main; begin var HelloWorld := new THelloWorld; HelloWorld.Put; end;

end.

Службові слова

Додаткові службові слова для підтримки об'єктно-орієнтованого програмування: object class public virtual constructor destructor

Див. також Об'єктно-орієнтоване програмування

Примітки

Джерела Глинський Я. М. Інформатика — алгоритмізація і програмування. — Львів, 2005.

Посилання