~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 3E63D0A138ABC028B3CBAAFDDE832B4F__1714535100 ✰
Заголовок документа оригинал.:
✰ Object Pascal - Wikipedia ✰
Заголовок документа перевод.:
✰ Объект Паскаль — Википедия, бесплатная энциклопедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Object_Pascal ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/3e/4f/3e63d0a138abc028b3cbaafdde832b4f.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/3e/4f/3e63d0a138abc028b3cbaafdde832b4f__translat.html ✰
Дата и время сохранения документа:
✰ 10.06.2024 13:37:09 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 1 May 2024, at 06:45 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Объект Паскаль — Википедия, бесплатная энциклопедия Jump to content

Объектный Паскаль

Из Википедии, бесплатной энциклопедии
Объектный Паскаль
Парадигмы Императивный , структурированный , объектно-ориентированный , функциональный (только диалект Delphi), компонентный , управляемый событиями , общий
Семья Вирт Паскаль
Разработано Ларри Теслер (Apple)
Никлаус Вирт (для Apple)
Андерс Хейлсберг (Borland) [1]
Разработчики Apple Computer (начальный)
Борланд Интернэшнл [1]
Впервые появился 1986 год ; 38 лет назад ( 1986 )
Дисциплина набора текста Статический и динамический (динамическая типизация с помощью вариантов, массив const и RTTI ), сильный , безопасный
Объем Лексический (статический)
Платформа ARM , x86 , PowerPC , ppc64 , SPARC , MIPS , CLI , Java , Cocoa
Расширения имен файлов .p, .pp, .pas
Основные реализации
Delphi ( x86 , ARM ), Free Pascal ( x86 , PowerPC , ppc64 , SPARC , MIPS , ARM ), Oxygene ( CLI , Java , Native Cocoa ), Smart Mobile Studio ( JavaScript )
Диалекты
Apple, Turbo Pascal , Free Pascal (с использованием режима objfpc или delphi ), Delphi , Delphi.NET, веб-скрипт Delphi, PascalABC.NET , Oxygene
Под влиянием
Паскаль , Симула , Smalltalk
Под влиянием
C# , Genie , Java , Nim , C/AL

Object Pascal — это расширение языка программирования Pascal , которое предоставляет такие функции объектно-ориентированного программирования (ООП), как классы и методы .

Первоначально язык был разработан Apple Computer как Clascal для системы разработки Lisa Workshop. Когда Lisa уступила место Macintosh , Apple в сотрудничестве с Никлаусом Виртом , автором Паскаля, разработала официально стандартизированную версию Clascal. Он был переименован в Object Pascal. В середине 1980-х годов Object Pascal был основным языком программирования для ранних версий MacApp платформы приложений . Этот язык потерял свое место в качестве основного языка разработки для Mac в 1991 году с выпуском MacApp 3.0 на базе C++ . Официальная поддержка закончилась в 1996 году.

Symantec также разработала компилятор от Apple Object Pascal для своего продукта Think Pascal, который мог компилировать программы намного быстрее, чем собственный Macintosh Programmer's Workshop (MPW) . Затем Symantec разработала библиотеку Think Class Library (TCL), основанную на концепциях MacApp, которую можно было вызывать как из Object Pascal, так и из THINK C. Пакет Think Suite в значительной степени вытеснил MPW в качестве основной платформы разработки для Mac в конце 1980-х годов.

Symantec перенесла Object Pascal на ПК и разработала аналогичную объектную структуру на этой платформе. ПК В отличие от TCL, который со временем перешёл на C++, библиотеки остались в основном основанными на Паскале.

Borland добавила поддержку объектно-ориентированного программирования в Turbo Pascal 5.5, которая в конечном итоге стала основой диалекта Object Pascal, используемого в Delphi , созданного Андерсом Хейлсбергом . Delphi оставался основным продуктом для бизнес-приложений на ПК в начале 2000-х годов и был частично вытеснен в 2000-х годах с появлением .NET Framework Хейлсберга , которая включала C# .

История [ править ]

Эппл Паскаль [ править ]

Паскаль стал основным языком в мире программирования в 1970-х годах, его высококачественные реализации были реализованы на большинстве миникомпьютерных платформ и микрокомпьютеров . Среди последних была система UCSD Pascal , которая скомпилировалась в промежуточный формат кода p-System , который затем мог работать на нескольких платформах. Apple лицензировала UCSD и использовала его в качестве основы для своей Apple Pascal системы для Apple II и Apple III .

В этот период Паскаль стал одним из основных языков в компании. С стартом проекта Apple Lisa в качестве основного языка программирования платформы был выбран Паскаль, хотя на этот раз в качестве компилятора p-System в отличие от интерпретатора .

Apple Pascal от Clascal и ранний Object

Object Pascal — это расширение языка Pascal, разработанное в Apple Computer командой под руководством Ларри Теслера при консультации с Никлаусом Виртом , изобретателем Pascal. [2] Он произошел от более ранней объектно-ориентированной версии Паскаля под названием Clascal , которая была доступна на компьютере Lisa .

Object Pascal был необходим для поддержки MacApp , расширяемой среды приложений Macintosh, которую теперь будут называть библиотекой классов . Расширения Object Pascal и MacApp были разработаны Барри Хейнсом, Кеном Дойлом и Ларри Розенштейном и протестированы Дэном Алленом. Ларри Теслер курировал проект, который начался в самом начале 1985 года и стал продуктом в 1986 году.

Расширение Object Pascal также было реализовано в интегрированной среде разработки (IDE) Think Pascal. В состав IDE входят компилятор и редактор с подсветкой и проверкой синтаксиса , мощный отладчик и библиотека классов. [3] Многие разработчики предпочли Think Pascal реализации Object Pascal от Apple, поскольку Think Pascal предлагал гораздо более быстрый цикл компиляции- связывания -отладки и тесную интеграцию своих инструментов. Последней официальной версией Think Pascal была версия 4.01 в 1992 году. Позже Symantec бесплатно выпустила неофициальную версию 4.5d4.

Apple прекратила поддержку Object Pascal, когда в 1994 году перешла с чипов серии Motorola 68000 на архитектуру IBM PowerPC . MacApp 3.0 уже был переписан на C++ и перенесен на эту платформу.

Metrowerks предложила вместе с CodeWarrior компилятор Object Pascal для Macintosh, предназначенный как для 68k , так и для PowerPC , как в их IDE, так и в качестве инструментов MPW. У разработчиков Macintosh, использующих Object Pascal, была возможность портировать эту архитектуру на PowerPC , даже после того, как Apple и Symantec прекратили поддержку. MacApp 2.0, написанный на Object Pascal, был портирован на PowerPC с помощью CodeWarrior . [4] [5]

, CodeGear и Embarcadero Годы Borland, Inprise

В 1986 году компания Borland представила аналогичные расширения, также названные Object Pascal, для продукта Turbo Pascal для Macintosh, а в 1989 году — для Turbo Pascal 5.5 для DOS. Когда в 1994 году компания Borland переориентировалась с DOS на Windows , они создали преемника Turbo Pascal под названием Delphi и представили новый набор расширений для создания того, что теперь известно как язык Delphi.

Разработка Delphi началась в 1993 году, а Delphi 1.0 был официально выпущен в США 14 февраля 1995 года. Хотя код, использующий объектную модель Turbo Pascal, все еще можно было скомпилировать, в Delphi появился новый синтаксис с использованием ключевого слова class в предпочтении object, конструктор Create и виртуальный деструктор Destroy (и исключающий необходимость вызова New и Disposeпроцедуры), свойства, указатели на методы и некоторые другие вещи. Они были вдохновлены ISO рабочим проектом для объектно-ориентированных расширений, но многие отличия от диалекта Turbo Pascal (например, требование проекта, чтобы все методы были виртуальными ) были проигнорированы.

Язык Delphi на протяжении многих лет продолжал развиваться, поддерживая такие конструкции, как динамические массивы , обобщенные методы и анонимные методы . Старый синтаксис объектов, представленный Apple («Типы объектов старого стиля»), по-прежнему поддерживается. [6]

Версии [ править ]

Компиляторы [ править ]

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 ), хотя формально и не нацелен на диалект 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 представлял собой вариант Delphi для Linux , предназначенный только для 32-разрядной версии Linux Intel с использованием библиотеки Qt . Он не работает «из коробки» с большинством современных дистрибутивов Linux.
  • Virtual Pascal представлял собой бесплатный 32-битный компилятор Turbo Pascal и Delphi, совместимый в основном с OS/2 и Microsoft Windows. Позже он также получил расширитель DOS+ и экспериментальный кросс-компилятор Linux. Развитие компилятора остановилось примерно на уровне Delphi 2. В 2007 году его официальный сайт перестал работать, и дальнейшее развитие прекратилось.

Переводчики [ править ]

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

Примеры программ « Hello » World

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

Версия Apple [ править ]

программа   ObjectPascalExample  ; 

     введите 
       THelloWorld   =   объекта 
          процедура   Put  ; 
        конец  ; 

     вар 
       HelloWorld  :   THelloWorld  ; 

     процедура   THelloWorld  .   Помещать  ; 
     начать 
       ShowMessage  (  'Привет, мир!'  )  ; 
     конец  ; 

  начать 
    новый  (  HelloWorld  )  ; 
     Привет  , мир .   Помещать  ; 
     Удалить  (  HelloWorld  )  ; 
  конец  . 

Версия Turbo Pascal [ править ]

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

Распределение на основе стека [ править ]

программа   ObjectPascalExample  ; 

     введите 
       THelloWorld   =   объекта 
          процедура   Put  ; 
        конец  ; 

     процедура   THelloWorld  .   Помещать  ; 
     начать 
       WriteLn  (  'Привет, мир!'  )  ; 
     конец  ; 

  вар 
   HelloWorld  :   THelloWorld  ;    { выделяется в стеке и может использоваться без явного выделения.   } 
 начать 
    HelloWorld  .   Помещать  ; 
  конец  . 

Распределение на основе кучи [ править ]

программа   ObjectPascalExample  ; 

     введите 
       PHelloWorld   =   ^  THelloWorld  ; 
        THelloWorld   =   объекта 
          процедура   Put  ; 
        конец  ; 

     процедура   THelloWorld  .   Помещать  ; 
     начать 
       WriteLn  (  'Привет, мир!'  )  ; 
     конец  ; 

  вар 
   HelloWorld  :   PHelloWorld  ;    { это типизированный указатель на THelloWorld } 

 Begin 
    New  (  HelloWorld  )  ; 
     Привет, мир  ^.   Помещать  ; 
     Удалить  (  HelloWorld  )  ; 
  конец  . 

Другой пример:

программа   ObjectPascalExample  ; 

     введите 
       PHelloWorld   =   ^  THelloWorld  ; 
        THelloWorld   =   объекта 
          процедура   Put  ; 
        конец  ; 

     процедура   THelloWorld  .   Помещать  ; 
     начать 
       WriteLn  (  'Привет, мир!'  )  ; 
     конец  ; 

  вар 
   HelloWorld  :   PHelloWorld  ;    { это типизированный указатель на THelloWorld } 
   HelloWorld2  :   ^  THelloWorld  ;    { это то же самое, но с другим синтаксисом }  
   HelloWorld3  :   ^  THelloWorld  ;                                
    HelloWorld4  :   PHelloWorld  ;    
  Begin 
    { Это работает аналогично приведенному выше коду, обратите внимание на выделение и освобождение от выделения, хотя 
 многие люди путаются.   Раньше здесь был неправильный пример с неправильными комментариями... } 

    New  (  HelloWorld  )  ;     { один экземпляр } 
    HelloWorld4   :=   HelloWorld  ;    { это действительно — копия указателя } 
    HelloWorld2   :=   HelloWorld  ;    { это действительно — копия указателя } 
    New  (  HelloWorld3  )  ;    { второй экземпляр } 
    HelloWorld4   :=   HelloWorld3  ;    { это действительно — копия указателя } 
    HelloWorld2   :=   HelloWorld3  ;    { это действительно — копия указателя } 
    Dispose  (  HelloWorld  )  ;     { он выделяет только два экземпляра } 
    Dispose  (  HelloWorld3  )  ;    {поэтому он должен выпустить только два экземпляра} 
 end  . 

Это работает на основе копирования указателя, если не существует специального выделения для более глубокой копии.

Версия для Delphi и Free Pascal [ править ]

программа   ObjectPascalExample  ; 

  введите 
   THelloWorld   =   класса 
     процедура   Put  ; 
    конец  ; 

  процедура   THelloWorld  .   Помещать  ; 
  начать 
   Writeln  (  «Привет, мир!»  )  ; 
  конец  ; 

  вар 
   HelloWorld  :   THelloWorld  ;                  { это неявный указатель } 

 начать 
   HelloWorld   :=   THelloWorld  .   Создавать  ;         {конструктор возвращает указатель на объект типа THelloWorld } 
   HelloWorld  .   Помещать  ; 
    Привет  , мир .   Бесплатно  ;                          { эта строка освобождает объект THelloWorld, на который указывает HelloWorld } 
 end  . 

Обратите внимание, что конструкция объекта по-прежнему доступна в Delphi и Free Pascal.

Кислородная версия [ править ]

пространство имен   ObjectPascalExample  ; 

    интерфейса 

     тип 
       ConsoleApp   =   класс 
          класса   метод   Main  ; 
        конец  ; 

        THelloWorld   =   класса 
          метод   Put  ; 
        конец  ; 

    реализации 

     метод   THelloWorld  .   Помещать  ; 
     начать 
       консоль  .   WriteLine  (  'Привет, мир!'  )  ; 
     конец  ; 

    класса    метод   ConsoleApp  .   Основной  ; 
     начать 
       вар   HelloWorld   :=   новый   THelloWorld  ; 
        Привет  , мир .   Помещать  ; 
     конец  ; 

  конец  . 

Версия DWScript (Smart Pascal) [ править ]

введите 
    THelloWorld   =   класса 
       процедура   Put  ; 
        начать 
          PrintLn  (  'Привет, мир!'  )  ; 
        конец 
    конец  ; 

  вар   HelloWorld   :=   THelloWorld  .   Создавать  ; 
  Привет  , мир .   Помещать  ; 

Реализация метода также может быть выполнена в отдельном месте, как и в других диалектах Object Pascal.

Развитие [ править ]

Многие функции постоянно добавлялись в Object Pascal с расширениями для Delphi и расширениями для FreePascal. В ответ на критику Free Pascal принял дженерики с тем же синтаксисом, что и Delphi, при условии, что выбран режим совместимости с Delphi, и как Delphi (частичный), так и Free Pascal (более расширенный) поддерживают перегрузку операторов . Начиная с версии 7, Delphi также представила множество других функций. [13] включая дженерики. Хотя FreePascal пытается быть совместимым с Delphi в режиме совместимости с Delphi, он также обычно вводит в язык множество новых функций, которые не всегда доступны в Delphi.

Ссылки [ править ]

  1. ^ Перейти обратно: а б Гибсон, Стив (8 мая 1989 г.). «Borland и Microsoft входят в кольцо объектно-ориентированного Паскаля» . Инфомир . Том. 11, нет. 19. с. 28. Архивировано из оригинала 29 февраля 2024 года . Проверено 18 сентября 2021 г.
  2. ^ Теслер, Ларри (1985). «Отчет об Объектном Паскале». Структурированный языковой мир . 9 (3): 10–7.
  3. ^ Зейтер, Чарльз (ноябрь 1990 г.). «Думай, Паскаль 3» . Макмир . Том. 7, нет. 11. с. 236.
  4. ^ Арнольд, Брайан; Маккарти, Гай (ноябрь 1995 г.). «MacApp Pascal снова едет» . МакТех . Том. 11, нет. 11. С. 30–31.
  5. ^ Арнольд, Брайан (февраль 1996 г.). «MacApp 2 для PowerPC в Object Pascal» . МакТех . Том. 12, нет. 2. С. 25–32.
  6. ^ Лишнер, Рэй (2000). Вкратце о Delphi: краткий справочник по настольному компьютеру (1-е изд.). Севастополь, Калифорния: О'Рейли и партнеры. ISBN  1565926595 .
  7. ^ Письмо сообщества: Embarcadero Technologies соглашается приобрести CodeGear у Borland. Архивировано 2 марта 2018 г. на Wayback Machine . Edn.embarcadero.com. Проверено 21 июля 2013 г.
  8. ^ «Разработка iPhone/iPod» . Команда разработчиков Free Pascal. Архивировано из оригинала 28 апреля 2009 г. Проверено 13 апреля 2009 г.
  9. ^ Умная книга . Линпаб. 18 мая 2012 года. Архивировано из оригинала 25 мая 2013 года . Проверено 19 июня 2013 г.
  10. ^ Фуна, Игорь (2021). «Turbo51: Компилятор Turbo Pascal для микроконтроллеров 8051» . Архивировано из оригинала 25 сентября 2018 г.
  11. ^ Дракслер, Вольфганг. «WDSibyl: среда визуальной разработки» . Архивировано из оригинала 12 февраля 2020 г.
  12. ^ «Современный Паскаль» . Архивировано из оригинала 11 декабря 2018 г. Проверено 22 октября 2018 г.
  13. ^ «Новые возможности языка Delphi начиная с Delphi 7» . КодГир. Архивировано из оригинала 2 июля 2008 г. Проверено 6 июля 2008 г.

Внешние ссылки [ править ]

Делфи [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 3E63D0A138ABC028B3CBAAFDDE832B4F__1714535100
URL1:https://en.wikipedia.org/wiki/Object_Pascal
Заголовок, (Title) документа по адресу, URL1:
Object Pascal - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)