4.4. ТРАНСЛЯЦИЯ ИСХОДНЫХ ФАЙЛОВ

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

Определения классов и определение проекта являются "элементарными программными модулями", из которых строится исходный файл. Результат их трансляции - добавление или замена соответствующих "библиотечных модулей" в некоторой программной библиотеке, структура которой должна быть определена в конкретной реализации языка. Набор совместно транслируемых пакетов, так же как каждый отдельный пакет не могут содержать повторные определения классов. Допускается только одно определение проекта в каждом отдельном пакете и в наборе совместно транслируемых пакетов. Максимальная допустимая длина исходного файла определяется конкретной реализацией языка.

Формированием программы называется сборка программы из библиотечных модулей, сопровождаемая проверкой её синтаксической правильности. Формирование программы может осуществляться перед началом или во время её исполнения, однако синтаксически правильной считается только такая программа, которая может быть сформирована перед началом исполнения.

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

Пример. Исходный файл программы.

package "Examples/Example1":

class 'Hello'                      -- Определение класса
specializing 'Report':
width   = 25;                      -- Атрибуты
height  = 10;
[                                  -- Предложения
goal:-
     write("Hello world !").
]

project:                           -- Определение проекта
     (('Hello', x=1, y=2, width=30, height=7))

Ссылки: атрибут 4.1.1, иерархия наследования 4.1, исполнение программы 4, класс 4.1, команда импорта 4.3, пакет 4.3, предложение 6, программа 4, проект 4.2, class 2.1.2, goal 5.4.1, package 2.1.2, project 2.1.2, specializing 2.1.2.


Следующий: 5. СТРУКТУРА ПРОСТРАНСТВА ПОИСКА
Предыдущий: 4.3. ПАКЕТЫ


4. СТРУКТУРА ПРОГРАММЫ
КОРНЕВАЯ СТРАНИЦА
ОГЛАВЛЕНИЕ
СПИСОК ПОНЯТИЙ ЯЗЫКА (ИНДЕКС)