Object Pascal
Object Pascal | |
---|---|
![]() | |
Парадигма | імперативна, структурна, об'єктно-орієнтована |
Дата появи | 1986 ![]() |
Творці | Ніклаус Вірт, Андерс Гейлсберг |
Розробник | Larry Teslerd і Ніклаус Вірт ![]() |
Система типізації | статична і динамічна , строга, безпечна |
Основні реалізації | 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 |
Звичайні розширення файлів | .p , .pp або .pas ![]() |
Object Pascal — об'єктно-орієнтований нащадок мови програмування Pascal, відоміший як основна мова програмування середовища Delphi.
Компанія Borland використовувала назву «Object Pascal» для мови програмування у перших версіях RAD Delphi, проте пізніше назвала її «мовою програмування Delphi». Однак, компілятори, що заявлені як Object Pascal-сумісні, дуже часто намагаються бути сумісними із вихідними кодами Delphi.
Компілятори
Є багато компіляторів, які в основному сумісні з Object Pascal, який використовувався в Delphi. Вони дозволяють будувати програми на Object Pascal під різноманітними платформи та підпадають під різні ліцензії.
- 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).
- 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. (англ.)
- FAQ по Delphi. (рос.)
Джерела
Я. М. Глинський. Інформатика — алгоритмізація і програмування, Львів — 2005.
![]() |
Це незавершена стаття про мови програмування. Ви можете допомогти проєкту, виправивши або дописавши її. |