Object Pascal
| Парадигма: | імперативна, структурна, об'єктно-орієнтована |
|---|---|
| Творці: | Ніклаус Вірт, Андерс Гейлсберг |
| Система типізації: | статична і динамічна , строга, безпечна |
| Основні реалізації: | Delphi (x86 та CLI), Oxygene (CLI), Free Pascal (x86, x86-64, PowerPC, ppc64, Sparc та ARM), Virtual Pascal (x86), TMT Pascal (x86), Turbo51 (Intel 8051) |
| Діалекти: | Apple, Turbo Pascal, objfpc, Delphi, Delphi.NET, Oxygene |
| Під впливом від: | Pascal, Smalltalk |
| Вплинула на: | C#, Java |
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.
- 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.
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.
Службові слова[ред. • ред. код]
Службові слова призначені для написання команд.
and - i array - масив begin - початок case - вибір const - сталі div - ділення без остачі do - виконати downto - униз до else - інакше end - кінець file - файл for - для function - функція goto - перейти до if - якщо label - позначка mod - остача not - не of - з or - або procedure - процедура program - програма record - запис repeat - повторювати then - то while - доки
Типи змінних[ред. • ред. код]
Дані цілого типу:
byte — цілі дуже короткі (1 байт)
integer — цілі короткі (2 байти)
longint — цілі довгі (4 байти)
Дані дійсних типів
single — дійсні короткі (4 байти)
real — дійсні (6 байтів)
double — дійсні довгі (8 байтів)
extended — дійсні дуже довгі (12 байтів)
Текстові дані
string
Приклади циклів[ред. • ред. код]
Цикл for
var i: Integer; begin for i:=1 to 5 do begin ShowMessage('Номер ' + IntToStr(i)); end; end;
Цикл while
var i:Integer; begin i:=1; while i < 6 do begin ShowMessage('Номер ' + IntToStr(i)); inc(i); end; end;
Цикл з постумовою
var s, n:Integer; begin s:=0; n:=1; repeat s:=s + n; n:=n + 1; until i > 10; ShowMessage(IntToStr(s)); end;
Приклад функції[ред. • ред. код]
Напишемо просту функцію, якій дають довжину та перетин алюмінієвого дроту, і функція поверне нам опір цього дроту
де: R — опір дроту; p — питомий опір алюмінієвого дроту; l — довжина дроту; s — перетин дроту;
function R(l:Real; S:Real) : Real; var p:Real; begin p:=0.03; //питомий опір алюмінію R:=(p * l) / S; //Присвоюємо функції значення опору за формулою end; Виклик функції: ShowMessage('Опір алюмінієвого дроту довжиною 100м і перетином 2мм квадратних буде ' + FloatToStr(R(100, 2)));
Див. також[ред. • ред. код]
Посилання[ред. • ред. код]
- «Embarcadero Delphi». Архів оригіналу за 2013-06-25. (англ.)
- «FAQ по Delphi». Архів оригіналу за 2013-06-25. (рос.)
Джерела[ред. • ред. код]
Я. М. Глинський. Інформатика — алгоритмізація і програмування, Львів — 2005.
|
||||||||||||||||||||||||||

