Руководство разработчика

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

Программа на языке И++ может содержаться в одном или нескольких файлах исходного текста (или кода).

Один и только один из файлов программы должен содержать тело программы - секцию кода, ограниченную ключевыми словами ВЫЧИСЛИТЬ и КОНЕЦ. Такой файл называется основным файлом программы и, обычно, имеет расширение ipp.

Другие файлы называются библиотеками и, обычно, имеют расширение ibl. Основной файл может подключать библиотеки с помощью ключевого слова ИСПОЛЬЗОВАТЬ. Также одни библиотеки могут подключать другие библиотеки. Файлы библиотек могут использоваться в разных программах.

Разделение исходного кода между основным файлом и библиотеками может происходить из разных соображений. Если библиотеки используются только в одной программе, то деление может быть по смысловым группам или просто для удобства редактирования небольших файлов. Библиотеки, используемые разными программами, обычно, предоставляют возможности по смысловым группам.

Компилятор языка И++ начинает обработку программы с основного файла, обнаруживает подключение библиотек и строит список всех исходных файлов программы. Обработки файлов библиотек как отдельных модулей программы не происходит. Это можно перефразировать так, что единицей компиляции в И++ является программа.

В основном файле все, что находится за пределами секции ВЫЧИСЛИТЬ...КОНЕЦ, называется областью объявлений. Файл библиотеки состоит целиком из области объявлений. В области объявлений допускается:

В области объявлений основного файла (ipp) допускается также:

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

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

В области объявления объектного типа допускается:

При совмещении объявления и определения метода, тело определения метода образует вложенную область, не являющуюся областью объявления типа.

В области объявления интерфейса допускается:

Т.к. методы интерфейсов - абстрактные, то определений для них не дается ни в области объявления интерфейса, ни за ее пределами.

Операторы, определяющие поток выполнения программы записываются в теле программы, функции или метода. Если программа, функция или метод принимают параметры, то тело начинается от закрывающейся круглой скобки до ключевого слова КОНЕЦ (для программы) или КОНЕЦ_ФУНКЦИИ (для функции или метода). Если параметров нет, то тело начинается сразу после ключевого слова ВЫЧИСЛИТЬ (для программы) или имени (для функции или метода).

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

В теле программы, функции или метода допускается:

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

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

В результате компиляции программы создается исполнимый код. Исполнимый код программы И++ записывается в файл с расширением ibx. Компиляция проекта программы может выполняться для разных конфигураций с созданием отдельного файла исполнимого кода для каждой конфигурации.


См. также: