Введение

Ветвь объектно-ориентированных производных языка программирования Pascal. Object Pascal был необходим для поддержки MacApp – расширяемой платформы для приложений Macintosh, которую сейчас можно назвать библиотекой классов. Расширения Object Pascal и MacApp были разработаны Барри Хейнсом, Кеном Дойлом и Ларри Розенштейном, а протестированы Дэном Алленом. Ларри Теслер руководил проектом, который начался в начале 1985 года и стал продуктом в 1986 году. Расширение Object Pascal также было реализовано в интегрированной среде разработки Think Pascal (IDE). IDE включала в себя компилятор и редактор с подсветкой и проверкой синтаксиса, мощный отладчик и библиотеку классов. Многие разработчики предпочитали Think Pascal реализации Object Pascal от Apple, поскольку Think Pascal предлагал значительно более быстрый цикл компиляции, компоновки и отладки, а также тесную интеграцию инструментов. Последним официальным релизом Think Pascal была версия 4.01, выпущенная в 1992 году. Позже Symantec выпустила неофициальную версию 4.5d4 бесплатно. Apple прекратила поддержку Object Pascal, когда в 1994 году перешла с процессоров Motorola 68000 на архитектуру PowerPC от IBM. MacApp 3.0 к тому времени уже был переписан на C++ и портирован на эту платформу. Metrowerks предлагала компилятор Object Pascal для Macintosh в составе CodeWarrior, который поддерживал как 68k, так и PowerPC, как в своей IDE, так и в виде инструментов MPW. Разработчики Macintosh, использующие Object Pascal, получили возможность портировать свои приложения на PowerPC даже после прекращения поддержки со стороны Apple и Symantec. MacApp 2.0, написанный на Object Pascal, был портирован на PowerPC с помощью CodeWarrior.

Борланд, Inprise, CodeGear и Embarcadero годы

В 1986 году Borland представил аналогичные расширения, также названные Object Pascal, для продукта Turbo Pascal для Macintosh, а в 1989 году – для Turbo Pascal 5.5 для DOS. Когда Borland переориентировался с DOS на Windows в 1994 году, компания создала преемника Turbo Pascal, названного Delphi, и представила новый набор расширений, сформировавший современный язык Delphi. Разработка Delphi началась в 1993 году, а Delphi 1.0 был официально выпущен в США 14 февраля 1995 года. Хотя код, использующий объектную модель Turbo Pascal, оставался компилируемым, Delphi представил новый синтаксис с использованием ключевого слова `class` вместо `object`, конструктора `Create` и виртуального деструктора `Destroy` (что избавляло от необходимости вызова процедур `New` и `Dispose`), свойств, указателей на методы и других возможностей. Эти нововведения были вдохновлены рабочим проектом ISO для объектно-ориентированных расширений, однако многие отличия от диалекта Turbo Pascal (например, требование проекта о том, что все методы должны быть виртуальными) были проигнорированы. Язык Delphi продолжал развиваться с годами, добавляя поддержку таких конструкций, как динамические массивы, обобщения (generics) и анонимные методы. Старый синтаксис объектов, представленный Apple ("Типы объектов старого стиля"), по-прежнему поддерживается.

Версии

Борланд использовал имя Object Pascal для языка программирования в первых версиях, но позже переименовал его в Delphi. Компиляторы, заявляющие о совместимости с Object Pascal, часто стремятся к совместимости с исходным кодом Delphi. Поскольку Delphi является товарным знаком, совместимые компиляторы продолжают использовать имя Object Pascal. Embarcadero Technologies, приобретшая Delphi в 2008 году, продает интегрированную среду разработки (IDE) Delphi, которая компилирует диалект Object Pascal для Windows и macOS, iOS, Android и Web. Поддержка .NET существовала в Delphi 8, а также в версиях 2005, 2006 и 2007, и теперь заменена другим языком, Oxygene (см. ниже), который не обеспечивает полной обратной совместимости. Язык Oxygene, разработанный RemObjects Software, ориентирован на Common Language Infrastructure, среду выполнения Java и фреймворки Apple Cocoa для iOS и macOS. Проект Free Pascal с открытым исходным кодом позволяет компилировать язык для широкого спектра операционных систем, включая Linux (32-разрядная, 64-разрядная), FreeBSD, Classic Mac OS, macOS, Solaris, Windows API (32, 64, CE), архитектуру набора команд ARM (ISA) и ряд других аппаратных архитектур. Первая версия Free Pascal для iPhone SDK 2.x была анонсирована 17 января 2009 года. Язык Smart Pascal ориентирован на 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. Язык Morfik Pascal, разработанный Morfik, предназначен для веб-приложений с поддержкой Ajax. Компилятор встроен в IDE AppsBuilder компании и позволяет использовать код Object Pascal для реализации кода, выполняемого в браузере или на сервере. Он использует компилятор Free Pascal для генерации нативных двоичных файлов из Object Pascal. Компилятор GNU Pascal с открытым исходным кодом доступен как фронтенд для GNU Compiler Collection, который реализует стандарт ISO 7185 Pascal и большую часть стандарта ISO 10206 Extended Pascal. Turbo51 — бесплатный компилятор для программирования микросхем Intel 8051. WDSibyl — это IDE, подобная Delphi, с открытым исходным кодом, доступная для Microsoft Windows и OS/2, и является коммерческой средой, совместимой с Turbo Pascal, выпущенной компанией Speedsoft, которая позже была развита в RAD-среду, подобную Delphi, под названием Sybil, а затем стала открытой под лицензией GPL после закрытия компании. В настоящее время программное обеспечение поддерживается Вольфгангом Дракслером (WD). Используемый компилятор, по всей видимости, находится в DLL и не является открытым исходным кодом.

Компиляторы

Компиляторы Object Pascal доступны для широкого спектра операционных систем и архитектур. Delphi – вероятно, самый известный из них. Он является преемником весьма успешных продуктов Borland Pascal и Turbo Pascal. Он предназначен для Windows 9x (Delphi 2007 и более ранних версий), семейства Windows NT, .NET Framework (Delphi 8, 2005, 2007), macOS (Delphi XE2 и более поздние версии), iOS (Delphi XE2 и более поздние версии, генерирующие нативные двоичные файлы начиная с XE4), Android (Delphi XE5 и более поздние версии, генерирующие нативные двоичные файлы начиная с XE5). Поддержка .NET в итоге выделилась в отдельный продукт, известный как Oxygene (см. ниже). Free Pascal Compiler (FPC) – это компилятор Object Pascal с открытым исходным кодом, поддерживающий множество диалектов Pascal, включая Turbo Pascal 7, Delphi и другие. В настоящее время FPC может генерировать код для процессоров IA-32, x86-64, PowerPC, SPARC и ARM, а также для различных операционных систем, таких как Microsoft Windows, Linux, FreeBSD, Classic Mac OS и macOS (с комплектом интеграции Xcode). Существует несколько отдельных проектов, облегчающих быструю разработку приложений с использованием FPC, наиболее заметным из которых является Lazarus (IDE). GNU Pascal (отдельно распространяемая часть GNU Compiler Collection), хотя и не ориентирован непосредственно на диалект Delphi Pascal, включает режим совместимости с Turbo Pascal и очень медленно добавляет некоторые возможности языка Delphi. Он не подходит для прямой перекомпиляции больших объемов кода Delphi, но отличается широкой поддержкой операционных систем и аппаратных архитектур. Oxygene (ранее Chrome) – это компилятор Object Pascal от RemObjects Software, который интегрируется с Microsoft Visual Studio. Он также доступен как бесплатный компилятор с интерфейсом командной строки, работающий на платформе CLI. Это три компилятора в одном, каждый из которых предназначен для своей платформы: Echoes для .NET Framework, Mono, WinRT и Windows Phone 8, Cooper для JDK и Android, и Nougat для iOS и macOS.

Продукты наследия

Borland Kylix был Linux-версией Delphi, предназначенной исключительно для 32-битной Linux на архитектуре Intel с использованием библиотеки Qt. Он не работает "из коробки" с большинством современных дистрибутивов Linux. Virtual Pascal был бесплатным 32-битным компилятором, совместимым с Turbo Pascal и Delphi, в основном для OS/2 и Microsoft Windows. Позже для него был разработан DOS+ Extender и экспериментальный кросс-компилятор для Linux. Разработка компилятора остановилась примерно на уровне Delphi 2. В 2007 году его официальный сайт перестал функционировать, и дальнейшая разработка была прекращена.

Переводчики

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

Образцы программ "Привет, мир"

Вот несколько программ "Hello, World!" в различных версиях Object Pascal.

Версия Turbo Pascal

Все еще поддерживается в Delphi и Free Pascal. FPC также поставляет собственные аналоги библиотек/модулей. Delphi этого не делает. Серия Free Pascal 1.0 и текстовый IDE FPC – крупнейшие открытые кодовые базы, использующие этот диалект. Free Pascal 2.0 был переписан на диалект, более близкий к Delphi, и текстовый IDE и связанные с ним фреймворки (Free Vision) – единственные части, сохранившиеся в версии TP Object Pascal.

Разработка

В Object Pascal постоянно добавлялись новые возможности благодаря расширениям для Delphi и Free Pascal. В ответ на критику, Free Pascal внедрил обобщения (generics) с тем же синтаксисом, что и Delphi, при условии выбора режима совместимости с Delphi, и как Delphi (частично), так и Free Pascal (в большем объеме) поддерживают перегрузку операторов. Delphi также представил множество других возможностей, начиная с версии 7, включая обобщения. В то время как Free Pascal стремится к совместимости с Delphi в режиме совместимости с Delphi, он также обычно добавляет в язык множество новых функций, которые не всегда доступны в Delphi.