Мы предлагаем вашему вниманию систему разработки ПО на языках
Модула-2 и Оберон-2, которая включает:
- транслятор с Модулы-2 в ANSI C;
- транслятор с Оберона-2 в ANSI C;
- библиотеки и сервисные утилиты;
- документацию на русском языке.
Система работает на многих платформах, в том числе под MS-DOS,
VAX/VMS и на большинстве распространенных рабочих станций.
Extacy можно использовать как для разработки нового ПО,
используя любой C компилятор в качестве пост-процессора, так и
для конвертирования существующих текстов на языке Модула-2 с
целью их переноса на другие платформы.
Трансляторы порождают текст в стандарте ANSI C. Богатый набор
опций позволяет варьировать результат трансляции. Так,
например, одна из опций позволяет переносить комментарии из
исходного в порождаемый текст.
Extacy разработана совместно с британской фирмой RTA. В
настоящее время система успешно распространяется на западном
рынке среди профессиональных разработчиков.
Если вы заинтересованы в такой системе, то по запросу мы
вышлем вам более подробную информацию.
Мы также можем рассмотреть предложения по переносу системы на
ваши платформы.
================================================
Компоненты системы
--------------------------------------------------------------
Транслятор из Модула-2 в C
Транслятор из Оберон-2 в C
Утилита визуализации определяющего модуля для Оберон-2
Утилита поддержки проекта
Библиотеки из "Программирования на Модуле-2"
Библиотечный интерфейс к ANSI C
Дополнительный набор библиотек
Обзор
--------------------------------------------------------------
Система Extacy - первая коммерческая реализация программного
языка Оберон-2, созданного Никлаусом Виртом. Система
поддерживает язык Модула-2, что позволяет использовать
существующие библиотеки на языках Модула-2 и C, а также
сгладить переход к Оберону-2. Трансляторы порождают
стандартный оптимизированный ANSI C код. Программный проект,
разрабатываемый в системе Extacy, может состоять из
произвольной смеси модулей на Модуле-2, Обероне-2 и C. Таким
образом, мы имеем дело с по-настоящему мультиязыковой
системой.
Модула-2 в Extacy
--------------------------------------------------------------
Модула-2 транслятор - m2c - реализует язык, описанный Н.Виртом
в работе "Программирование на Модуле-2" (3 и 4 издания), с
добавлением некоторых расширений, а именно:
- обероновский стиль представления численных констант;
- динамически открытые массивов;
- массивы констант;
- параметры только для чтения;
- процедуры с переменным числом параметров;
- экспорт только для чтения;
- переименование импортируемых модулей;
- средства мультиязыкового программирования.
Оберон-2 в Extacy
--------------------------------------------------------------
Оберон-2 транслятор - o2c - реализует язык, описанный Н.Виртом
и Х.Моссенброком в работе "Язык программирования Оберон-2", с
некоторыми расширениями, включающими:
- реализация типа CARDINAL (с вариациями LONG и SHORT);
- перечислимые типы;
- функции HIGH и VAL, как в Модуле-2;
- константные массивы;
- параметры только для чтения;
- модуловский стиль представления численных констант;
- средства мультиязыкового программирования.
Порождаемый C код
--------------------------------------------------------------
Трансляторы порождают стандартный оптимизированный ANSI C код.
Ключи компилятора позволяют, однако, использовать в
порождаемом коде устаревшие конструкции, такие, как прототипы
функций в стиле Кернигана-Риччи. Порожденный код также
компилируется любым AT&T-совместимым С++ компилятором.
Правильные ANSI C компиляторы - редкость, и потому Extacy не
требует 100% совместимости. Нехитрые механизмы позволят решить
проблемы, могущие возникнуть с вашим C-компилятором.
Для облегчения процесса отладки текстов на С ключи
компилятора позволяют вставить номера строк исходных кодов в
качестве комментария в порождаемый C-текст. Кроме того,
имеется возможность сохранить комментарии в в порожденном
тексте в их первоначальном контексте.
Средства мультиязыкового программирования
--------------------------------------------------------------
Переход к какому-либо новому языку означает обычно
отбрасывание или переписывание вашего существующего набора
библиотек, который, возможно, является плодом работы многих
лет. Extacy позволяет вам сохранить их и использовать их в
новых программных проектах.
Для существующих Модула-2 программистов (в предположении, что
ваш код написан на хорошей стандартной Модуле-2), подключение
ваших существующих библиотек к Оберон-2 проекту - это просто
их перекомпиляция с помощью Extacy.
C является сегодня самым популярным в мире языком, и как
таковой он обладает широчайшим диапазоном доступных библиотек.
Поскольку в Extacy C используется как объектный язык,
подключение C-библиотек к Оберон-2 или Модула-2 проектам
заключается в написании модуловских определяющих модулей для
каждого C-header файла, который вы используете. Достаточно
включить в этот определяющий модуль только те функции и
определения, которые вы используете.
Стандартный библиотечный интерфейс ANSI C, предоставляемый
Extacy, послужит вам неплохим руководством, как это делается.
Библиотечная поддержка
--------------------------------------------------------------
Библиотеки Extacy постоянно увеличиваются и расширяются. Все
библиотеки доступны и могут быть импортироваться в Модула-2 и
Оберон-2 модули, и поддерживаются в виде исходных текстов.
Библиотеки делятся на три группы:
Библиотеки из "Программирования на Модуле-2"
--------------------------------------------
Эти библиотеки, описанные Н.Виртом в работе "Программирования
на Модуле-2". Они состоят из:
- InOut
- RealInOut
- LongInOut
- Storage
- Terminal
- ASCII
Библиотечный интерфейс к ANSI C
-------------------------------
Это определяющие модули и симфайлы, позволяющие использовать
существующие ANSI C библиотеки. Сюда входят:
- ctype
- math
- string
- mem
- assert
- stdio
- stdlib
- time
- io
- conio
Дополнительный набор библиотек
------------------------------
Предоставляется несколько полезных библиотек, вот они:
Args - обеспечивает доступ к аргументам командной строки.
Clock - поддерживает доступ к реальному времени и выдает время
в различных форматах.
Formats - процедуры форматного вывода.
regExpr - мощная библиотека для сравнения строк с
использованием регулярных выражений.
SIO - потоковый ввод/вывод.
Strings - различные процедуры обработки строк.
Существует несколько дополнительных библиотек, специфичных для
определенных платформ. Например, MS/DOS-реализация снабжена
библиотекой ERRNO, которая дает полные определения стандартных
возвращаемых кодов ошибок в DOS.
Дальнейшее развитие библиотек
--------------------------------------------------------------
Набор библиотек Extacy постоянно пополняется и увеличивается.
Полный набор стандартных Оберон-2 библиотек разрабатывается и
будет поддерживаться дальнейшими версиями.
Утилиты
--------------------------------------------------------------
Extacy содержит утилиту поддержки проекта, которая служит для
автоматической перетрансляции выбранных модулей, а также
утилиту визуализации определяющего модуля, которая создает
псевдо-определяющие модули для Оберон-2 исходников, как это
описано в работе Н.Вирта и Х.Моссенброка "Язык
программирования Оберон-2".
Где будет работать Extacy
--------------------------------------------------------------
PC под MS/DOS
PC под Interactive и SCO Unix
PC и PS-2 под OS/2(v2)
Apple Macintosh
Commodor Amiga
Acorn Archimedes под Risc-OS
SUN 3, SPARC (все модели), 386
Hewlett Packard 9000/7xx & 8xx под HP-UX
MIPS Risc Workstation под Risc/os
Silicon Graphics Iris серии (4D workstations, Indigo и Crimson)
под IRIX
IBM RS/6000 под AIX
DEC DECStation/System под Risc/Ultrix (TBA)
Перенесение на широкий диапазон рабочих станций под Unix
продолжается.