4.4 Трансляция исходных файлов
Исходные файлы программы могут транслироваться отдельно друг от
друга или совместно (конкретная реализация языка может поддерживать один из указанных
способов или оба способа трансляции). В конкретной реализации языка может осуществляться
автоматическая трансляция пакетов, указанных в командах импорта в составе других пакетов.
В зависимости от реализации языка, автоматическая трансляция
пакетов может рассматриваться как трансляция этих пакетов отдельно от других пакетов
или как совместная трансляция этих пакетов.
Определения классов и определение проекта являются
«элементарными программными модулями», из которых строится исходный файл. Результат их
трансляции — добавление или замена соответствующих «библиотечных модулей» в некоторой
программной библиотеке, структура которой должна быть определена в конкретной реализации
языка. Набор совместно транслируемых пакетов, так же как каждый отдельный пакет не
могут содержать повторные определения классов. Допускается только одно определение
проекта в каждом отдельном пакете и в наборе совместно транслируемых пакетов.
Максимальная допустимая длина исходного файла определяется конкретной реализацией языка.
Формированием программы называется сборка программы из
библиотечных модулей, сопровождаемая проверкой её синтаксической правильности.
Формирование программы может осуществляться перед началом или во время её исполнения,
однако синтаксически правильной считается только такая программа, которая может быть
сформирована перед началом исполнения.
Примечание. Некоторые синтаксические ошибки обнаруживаются лишь
на этапе формирования программы из библиотечных модулей. Такими ошибками являются
отсутствие определения проекта или некоторых определений классов в программной
библиотеке, а также циклы в иерархии наследования.
Пример.
Исходный файл программы.
package "Examples/Example 1":
class 'Hello'
specializing 'Report':________________________ Определение класса
width = 25;
height = 10;_______________________________ Атрибуты
[
goal:-
write("Hello world !")._______________________ Предложения
]
project:
(('Hello', x=l, у=2, width=30, height=7))________Определение проекта
Содержание