Мы предлагаем вашему вниманию систему разработки ПО на языках Модула-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 продолжается.