Разработка программ в среде операционной платформы Inferno


         

Первая программа записывает свои параметры,


Первая программа записывает свои параметры, разделенные пробелами, по одному на каждую строку файла вывода. Взглянув на синтаксис языка Limbo, можно констатировать факт его попадания под отнюдь не дурное влияние C (что неудивительно) и Pascal - это выражения, операторы и соглашения первого и объявления второго. Структурная программная организация (по всей видимости, уходит корнями в Modula-2) - модули. Так, первая строка в листинге указывает на создание модуля Targ1. Имя файла не обязательно должно совпадать с именем модуля. В 3-й и 5-й строках объявляются стандартные встроенные модули sys.m (обеспечивает основные системные и В/В примитивы) и draw.m (графические возможности). В Limbo отсутствует препроцессор, как у C, следовательно, include является ключевым словом, а не директивой препроцессора, тем не менее по функциональности они эквивалентны. Имя файла, предваренное include, всегда заключается в кавычки ("модуль.m"). 4-я строка объявляет переменную sys типа Sys (Limbo регистро-зависимый язык), определенную в модуле sys.m. По соглашению, внутреннее значение sys на данном этапе равняется nil (ссылка на "ничего").

Каждый из модулей Limbo состоит из разделов интерфейса и реализации. В интерфейсе объявляются данные и методы, типы данных и константы модуля, в примере это строки с 7-й по 9-ю - модуль Targ1 и его единственная функция init с двумя аргументами: ref Draw->Context и list of string. Подобная init необходима во всех программах, вызывающихся из командной строки Inferno; она во многом аналогична функции main языка C, поскольку обозначает начало выполнения инструкций. Аргумент ref Draw->Context определен в draw.m, он используется для захвата контекста показа, потребность в нем есть даже в том случае, если программа совсем не работает с графикой, так, в нашем примере, этот аргумент может быть назван nil. list of string есть список (группа последовательных, упорядоченных элементов) параметров командной строки.

В реализации размещаются тела функций модуля, в примере это строки с 11-й по 31-ю.

Содержание  Назад  Вперед