Object Pascal

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая 195.3.246.85 (обсуждение) в 12:37, 15 июня 2014 (Object Pascal в Delphi и Free Pascal). Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску
Object Pascal
Семантика императивная
Класс языка мультипарадигмальный:
императивный, структурный, объектно-ориентированный, обобщённый[1], процедурный
Тип исполнения компилируемый
Появился в 1986
Автор Ларри Теслер, Никлаус Вирт
Разработчик Ларри Теслер и Никлаус Вирт
Расширение файлов .p .pp .pas
Система типов статическая, динамическая (array of const, RTTI, Variant), строгая
Основные реализации Delphi (x86 and CLI), Oxygene (CLI), Free Pascal (x86, x86-64, PowerPC, ppc64, SPARC and ARM), Virtual Pascal (x86), TMT Pascal (x86), Turbo51 (Intel 8051)
Диалекты Apple, Turbo Pascal, objfpc, Delphi, Delphi.NET, Oxygene
Испытал влияние Паскаль, Smalltalk
Повлиял на C#, Java
Логотип Викисклада Медиафайлы на Викискладе

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

Примеры 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.

Turbo Pascal

Delphi и Freepascal также поддерживают этот вариант синтаксиса. В Delphi для обеспечения обратной совместимости, для Freepascal — это синтаксис по умолчанию

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

В Free Pascal этот вариант синтаксиса доступен в режимах ObjFpc и DelphiОшибка в сносках?: Отсутствует закрывающий тег </ref>.

Язык Object Pascal поддерживается и развивается другими разработчиками. Наиболее серьёзные реализации Object Pascal (помимо Delphi) — это кроссплатформенный TopSpeed Pascal (версия языка Turbo Pascal[3]) мультиязыковой среды TopSpeed, TMT Pascal, Virtual Pascal, PascalABC.NET, Free Pascal, GNU Pascal. На Object Pascal основан язык программирования Oxygene.

Примечания

  1. Hallvard’s Blog: Highlander2 Beta: Generics in Delphi for .NET
  2. Буч Г. Объектно-ориентированное проектирование с примерами решения[itbookz.ifolder.ru/7276278]
  3. TopSpeed-компиляторы: не дожили до триумфа