к 4GL - визуальному программированию   Kylix   RUNTU   ОС  

Общий обзор языка Kylix

Алфавит и словарь языка
Структура программы
Комментарии
Операторы
Директивы компилятора

В этой главе мы расскажем о языке Object Pascal. Для начала, небольшой исторический экскурс в историю языка Pascal.
Исторически первый, недоступный широкой аудитории технический отчет языка Pascal был сделан Швейцарским федеральным технологическим институтом ЕТН (Eidgenoessische Technische Hochschule) в ноябре 1970 года. Официальной же датой рождения языка считается начало 1971 года, когда вышеупомянутый отчет был перепечатан в первом номере журнала Acta Informatica. Автором языка является швейцарский профессор Никлаус Вирт (Niklaus К. Wirth).
Во время активного использования языка наблюдалось острая конкуренция с языком С. Большую роль в массовом распространении языка Pascal сыграла компания Borland, создавшая версию Turbo Pascal. После этого уже стали появляться многочисленные модификации: в версии 3.0 появилась возможность работы со встроенной графикой, в версии 4.0 - модули, в версии 5.5 - возможность работы с объектами. Версия 7.0 поменяла название и стала называться Borland Pascal. Наконец, при появлении Delphi язык стал называться Object Pascal. Среда Kylix также использует язык Object Pascal.

Алфавит и словарь языка

В алфавит языка Object Pascal входят следующие символы:
набор символов ASCII, включающий буквы латинского алфавита от а до z и от А до z и пробел, а также цифры от о до 9;
специальные символы: # $ & ' () * + , - . / : ; < = > @ [ ] ^ {};
дополнительные специальные символы, которые являются комбинациями специальных символов:
(* и *) _ ремарка, пояснение. Является альтернативой символам
фигурных скобок { и };
(. и .) - применяется для индексов массива, работы со строками и в
других случаях. Данные символы можно использовать вместо квадратных скобок [ и ];
. . -применяется для определения диапазона значений;
// - ремарка, пояснение. Символы, находящиеся справа от данной комбинации символов, игнорируются компилятором и считаются пояснением;
:= - символ присваивания;
<= - меньше или равно;
>= - большие или равно;
<> - не равно;

Примечание

Символы !, ", %, ?, \, _, ~ не являются специальными символами языка Object Pascal.

Последовательность символов алфавита, не разделенная пробелами, образует слово. Слова применяются в программах на Object Pascal. Слова языка разделяются при помощи разделителей. В число разделителей входят: пробел, символ конца строки, комментарии и другие символы.
Все слова условно делятся на три большие группы: зарезервированные слова (reserved words); директивы (directives);
идентификаторы (identifiers).
Зарезервированные слова - это слова, входящие непосредственно в язык Object Pascal и имеющие конкретный смысл и определенное написание. Они не могут быть переопределены или использованы программистом как идентификаторы. Вот перечень этих слов:
and, array,, as, asm, begin, case, class, const, constructor, destructor, dispinterface, div, do, downto, else, end, except, exports, file, finaljization, finally, for, function, goto, if, implementation, in, inherited, initialization, inline, interface, is, label, library, mod, nil, not, object, of, or, out, packed, procedure, program, property, raise, record, repeat, resourcestring, set, shl, shr, string, then, threadvar, to, try, type, unit, until, uses, var, while, with, xor.
В дополнение к представленным выше зарезервированным словам в языке
Object Pascal Присутствуют еще слова private, protected, public, published И
automated, которые являются зарезервированными в пределах области объявления типов. Во всех других случаях они рассматриваются как директивы.
Директивы - слова, которые имеют специальное значение в языке Object Pascal, но, в отличие от зарезервированных слов, программист может использовать данные слова в качестве идентификаторов. Компилятор языка отличит такой идентификатор от директивы. Ниже представлен список директив Object Pascal:
absolute, abstract, assembler, automated, cdecl, contains, default, dispid, dynamic, export, external, far, forward, implements, index, message, name, near, nodefault, overload, override, package, pascal, private, protected, public, published, read, readonly, register, reintroduce, requires, resident, safecall, stdcall, stored, virtual, write, writeonly.
Идентификаторами называются слова, которые применяются для обозначения констант, переменных, полей, типов, свойств, процедур, функций, программ, модулей, библиотечек и пакетов. К таким словам относятся как предопределенные (например, Pi, sin), так и создаваемые программистом.
Идентификаторы должны создаваться по следующим правилам:
длина идентификатора не должна превышать 255 символов; идентификатор может содержать в себе буквы, цифры и знак подчеркивания(_);
идентификатор всегда должен начинаться с буквы или символа подчеркивания, но он не может содержать внутри себя пробелы;
идентификатор может состоять из строчных или прописных букв, а также 3 комбинации тех и других. Компилятор не чувствителен к регистру букв, поэтому приведенные далее идентификаторы рассматриваются им как одинаковые: MyLabel, MYLABEL, mylabel;
Между каждыми двумя идентификаторами обязательно должен присутствовать хотя бы один разделитель.

Структура программы

Текст программы состоит из строк, в каждой из которых может находиться или несколько слов. Строка может начинаться с любой позиции, на размеp компилируемой программы это не влияет.
Структура программы состоит из: заголовка программы (program heading);
раздела uses (данный раздел может не входить в структуру программы); блока описания и исполнения (block of declarations and statements).
Заголовок программы находится в самом ее начале и нужен для определения имени программы:

program Program1; // здесь Program1 - имя программы

В стандартном Pascal заголовок программы может содержать параметры после имени программы:

Program Program1(input, output);

Компилятор Kylix игнорирует данные параметры. Их можно указывать или не указывать, на работу программы это не повлияет.
Раздел uses содержит список программных модулей (units), которые используются данной программой:

uses
Forms,
Unit1 in 'Unit1.pas' {Form1};

Блок состоит из раздела описания и раздела исполнения. В первой, описательной части находится описание элементов программы, во второй части располагаются операторы, подлежащие исполнению.
Описательная часть обычно содержит (в строгом порядке):
объявления меток;
объявления констант;
описание типов;
оживления переменных;
описание процедур и функций.
Любой из перечисленных разделов описательной части в реальной программе может отсутствовать.

Комментарии

Комментарий - это текст, который игнорируется компилятором и нужен для пояснения работы отдельных частей программы. Комментарии широко используются программистами для быстрого понимания написанного. Комментарий может располагаться в любом месте программы (если он не вставлен внутри слова или оператора Object Pascal).
Имеется несколько способов записи комментария:

{ многострочный комментарий }
(* еще один
многострочный комментарий *)
// текст, расположенный справа от двойного слэша, также является
// комментарием, только однострочным

Кроме прямого предназначения, комментарии можно использовать для того, чтобы на время запретить выполнение некоторых операторов. Это очень полезно при отладке программ:

if tim>50 then
begin
timer1.Enabled:=false;
// form2.showmoda1;
end;

Операторы
Оператор - это законченное предложение языка Object Pascal, которое выполняет какое-либо действие. Операторы могут быть:
простые;
структурированные.
Простые операторы - это операторы, которые не нарушают линейного выполнения программы, например операторы присваивания или арифметические операторы.
Структурированные операторы - операторы, которые влияют на ход выполнения программы. К таким операторам относятся операторы ветвления, цикла и некоторые другие.
Все операторы должны разделяться символом "точка с запятой". Если между операторами присутствует несколько точек с запятой, это не является ошибкой. Такие операторы (пустоты между двумя точками с запятой) называют пустыми операторами:

А:=5;;; // один оператор присваивания и два пустых оператора

Заметим, что лишние точки с запятой недопустимы в описательной части программы. Их наличие может привести к ошибке компиляции.
Операторы языка Object Pascal мы подробно рассмотрим в главе 3 книги.

Директивы компилятора

Директивы компилятора - это указания компилятору на выполнение каких-либо действий. Для записи директив компилятора используют символы:

{$ директива} либо (* директива *)

Все директивы компилятора делятся на:
глобальные;
локальные.
Глобальные директивы компилятора действуют на весь компилируемый файл.
Локальные директивы действуют от места их появления до появления отменяющей директивы.
Имеется три вида директив компилятора:
ключевые директивы;
директивы параметров;
директивы условной компиляции.
Первые два вида директив могут быть установлены по умолчанию. Для того чтобы настроить эти установки, вы можете воспользоваться вкладкой Compiler (Компилятор) диалогового окна Project Options (Настройки проекта), вызываемого из главного меню Kylix Project/Options (Проект/Настройки).

к 4GL - визуальному программированию   Kylix   RUNTU   ОС  

Знаете ли Вы, в чем фокус эксперимента Майкельсона?

Эксперимент А. Майкельсона, Майкельсона - Морли - действительно является цирковым фокусом, загипнотизировавшим физиков на 120 лет.

Дело в том, что в его постановке и выводах произведена подмена, аналогичная подмене в школьной шуточной задачке на сообразительность, в которой спрашивается:
- Cколько яблок на березе, если на одной ветке их 5, на другой ветке - 10 и так далее
При этом внимание учеников намеренно отвлекается от того основополагающего факта, что на березе яблоки не растут, в принципе.

В эксперименте Майкельсона ставится вопрос о движении эфира относительно покоящегося в лабораторной системе интерферометра. Однако, если мы ищем эфир, как базовую материю, из которой состоит всё вещество интерферометра, лаборатории, да и Земли в целом, то, естественно, эфир тоже будет неподвижен, так как земное вещество есть всего навсего определенным образом структурированный эфир, и никак не может двигаться относительно самого себя.

Удивительно, что этот цирковой трюк овладел на 120 лет умами физиков на полном серьезе, хотя его прототипы есть в сказках-небылицах всех народов всех времен, включая барона Мюнхаузена, вытащившего себя за волосы из болота, и призванных показать детям возможные жульничества и тем защитить их во взрослой жизни. Подробнее читайте в FAQ по эфирной физике.

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution