Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие_2_изд_испр.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.27 Mб
Скачать

Метаобозначения

Метаязык – это язык для описания другого языка. Наиболее распространенными метаязыками для описания языков программирования являются нотация Бэкуса-Наура (БНФ) и синтаксические диаграммы. В данном пособии принята следующая система описаний правил и понятий языков программирования:

- := - фраза "это есть";

- { } – обязательный элемент конструкции; значение выбирается из нескольких альтернатив;

- [ ] – необязательный (optional) элемент конструкции;

- ... – предыдущий элемент конструкции может повторяться произвольное число раз;

- | - фраза "или";

- <...> - используется для обозначения понятий, а не конструкций языка.

Пример.

dim <список>

<список>:=<элемент>[,<элемент>]...

<элемент>:={<переменная>|<массив>} as <тип>

Этапы обработки программы на компьютере

т екст маш.код отн.адреса абс.адреса

ИМ ОМ ЗМ память

результаты

периферия

Терминология

Исходные модули (ИМ) – тексты программы на алгоритмическом языке.

Объектные модули (ОМ) – оттранслированные тексты программы на машинном языке в относительных адресах.

Загрузочный модуль (ЗМ) – единая готовая к выполнению программа, по-прежнему, в относительных адресах.

Рассмотрим более подробно каждый этап.

Трансляция

В целях снижения уровня сложности разработки большинство программ разбивается на отдельные части, выполняющие одну или более функций. Эти части называют модулями. Каждый модуль может транслироваться отдельно, независимо от других модулей программы. Это позволяет выполнять процесс разработки поэтапно. Модуль до трансляции называют исходным, после трансляции – объектным. Каждый модуль может состоять из одной или более процедур. В любой программе существует процедура, в которой начинается выполнение и в которой в большинстве случаев работа программы заканчивается. Такую процедуру называют главной (main).

Замечание. В современных визуальных средах разработки в качестве главной может применяться специальный объект – форма.

К аждая процедура может передавать данные в другую процедуру и получать обратно результаты ее работы. Совокупность процедур и связей между ними составляют структуру программы. Вариант возможной структуры программы показан на рисунке.

На этапе трансляции выполняется синтаксический анализ текстов исходных модулей, т.е. проверка их соответствия правилам языка. Обычно перехода к следующему этапу обработки программы не происходит, пока не будут исправлены все синтаксические ошибки. Следует заметить, что при этом анализе редко выявляются все нарушения правил языка.

Для обозначения объектов программы на алгоритмическом языке используется понятие имя.

Пример. Возможные имена.

x matrix Height Copy1 Sum

Во время трансляции происходит распределение памяти, т.е. процесс выделения каждому именованному объекту программы области памяти необходимого размера. Выделенная область памяти характеризуется начальным адресом расположения объекта. Поэтому распределение памяти – это процесс установления взаимно однозначного соответствия между именем в исходном модуле и адресом в объектном модуле. Схематически это можно изобразить так.

П оскольку после трансляции программа представляет собой совокупность нескольких объектных модулей, то в качестве адреса объекта выступает смещение относительно начала модуля, в котором встречается его имя. Такие адреса называют относительными.

Наиболее распространенными языками программирования являются: FORTRAN (Formula Translator – переводчик формул), PL/1 (Programming Language/1 – язык программирования 1), C и C++, Pascal, BASIC (Beginner's All-purpose Symbolic Instruction Code – универсальный язык символического кодирования для начинающих).