Оберон-клуб «ВЄДАsoft»

Твердыня модульных языков
Текущее время: 04 окт 2024, 20:36

Часовой пояс: UTC + 2 часа




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Среда XDev: с чего начать?
СообщениеДобавлено: 02 мар 2013, 04:44 
Не в сети
Аватара пользователя

Сообщения: 1019
Откуда: Днепропетровская обл.
XDev — открытая и свободная интегрированная среда разработки на модульных языках программирования (Оберон, Оберон-2, Компонентный Паскаль), базирующаяся на Оберон-окружении BlackBox Component Builder, трансляторе Ofront и Си-компиляторах в качестве кодогенераторов заднего плана (back-end), а также наборе дополнительных утилит и библиотек.

Скачать: https://github.com/Oleg-N-Cher/XDev/zipball/master
Контроль версий: https://github.com/Oleg-N-Cher/XDev

С помощью XDev можно разрабатывать проекты для различных платформ, как ретро, так и современных, и на нескольких языках программирования одномоментно. Сейчас больше всего проработана подсистема ZXDev для разработки под ретро-платформу ZX Spectrum, но готовятся подсистемы WinDev (для разработки под Windows) и J2meDev (для Java microedition).

Я заинтересован в поддержке других платформ (различными способами, как с Ofront, так и без него), в разработке новых (и адаптации существующих) библиотек, утилит и компиляторов для этих платформ. Любая помощь, даже самая маленькая, будет очень кстати.

Основные цели и преимущества XDev, на что будет сделан упор:

    + Простота
    + Надёжность получаемых решений
    + Сверхкомпактный размер целевого машинного кода
    + Широкое использование достижений европейской школы программирования, таких как безопасные и модульные языки программирования — Oberon, Oberon-2, Component Pascal, возможно, Modula-2 и Objective Modula-2.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Среда XDev: с чего начать?
СообщениеДобавлено: 04 мар 2013, 08:55 
Не в сети
Аватара пользователя

Сообщения: 1019
Откуда: Днепропетровская обл.
Подсистемы для кроссплатформенной разработки в XDev имеют следующую структуру:

    Bin\ — папка для компиляторов, утилит и т.п. Может содержать скрипты compile.bat и build.bat, которые вызываются из среды нажатием кнопок F11 (компиляция) и F12 (сборка). Если возможностей универсального скрипта Bin/build.bat не хватает, — можно создать соответствующий для модуля Mod/Module.odc скрипт для сборки Obj/Module.bat, имеющий при нажатии F12 более высокий приоритет.

    Docu\ — документация по подсистеме.

    Lib\ — библиотеки. В настоящее время могут разрабатываться на Обероне, Обероне-2 и Си. А чтобы в целевую программу включались только необходимые модули — используется технология, которую реализует утилита smartlib (раньше называлась smartlinkrel).

    Mod\ — исходники модулей. Они могут также храниться не только в Mod\, но и в корне подсистемы. Сейчас поддерживается только стандартный формат составного документа .odc (Oberon document) среды BlackBox, позволяющий произвольно форматировать исходные тексты, а также внедрять в них различные объекты (рисунки и т.д.). Планируется поддержка других текстовых форматов (.Mod в кодировке 1251, .Ob2 и .Cp, скорее всего, будет поддержка и кодировки UTF-8).

    Obj\ — папка для объектных файлов (исходников на Си) и файлов настройки свойств библиотек, спроектированных таким образом, чтобы можно было конфигурировать библиотеки без их перекомпиляции. Пример файла конфигурации:
    Код: "C"
    /* Configuration file of the library Console */
     
    /* Use ROM output (RST 10H, slow, 32x22) or COMPACT/FAST (fast, 32x24) */
     
    /* Здесь выбирается один из вариантов стратегии работы процедур вывода: */
     
    #define OUTPUT_COMPACT
    //#define OUTPUT_FAST
    //#define OUTPUT_ROM
    Также может содержать дополнительные скрипты для сборки программ.

    Rsrc\ — ресурсы подсистемы: шрифты, рисунки, иконки, спрайты, звуковые и музыкальные файлы (например, для игры) и т.п.

    Sym\ — символьные файлы, а также их текстовое представление (.Def-файлы).

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


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Среда XDev: с чего начать?
СообщениеДобавлено: 28 ноя 2014, 19:50 
Не в сети
Аватара пользователя

Сообщения: 1019
Откуда: Днепропетровская обл.
Несколько слов о реструктуризации подсистем WinDev и ZXDev. Они подверглись изменению структуры папок в целях бОльшей логичности и универсальности сборочных скриптов. Итак:

Lib\Bin — сборочные скрипты как для сборки библиотек, состоящих из нескольких модулей, так и универсальные compile.bat и build.bat, заточенные соответственно для компиляции любого модуля (чтобы выявить возможные ошибки времени компиляции) и сборки библиотеки, состоящей из одного модуля.

Одноимённые с модулями скрипты унифицированы чтобы иметь наиболее ясную структуру. Например:
Код: "WINBATCH"
@REM Build the library Kol
@REM =====================
 
:tcc
@SET Lib=..\Kol.a
@IF EXIST %Lib% DEL %Lib%
@CALL ..\Bin\smart %Lib% KolTypes -noinit
@CALL ..\Bin\smart %Lib% KolStrings -noinit
@CALL ..\Bin\smart %Lib% KolRegistry -noinit
@CALL ..\Bin\smart %Lib% KolWindows
smart указывает на то, что данный модуль нужно смартлинковать (с помощью утилиты smartlib; solid обозначает, что не нужно. Ключик -noinit применяется для тех модулей, которые не требуют инициализации. Это немного некрасиво, но это лишь для целей оптимизации; и пока лучше не придумывается. А вернее даже придумывается (директива (*$NOINIT*)), но пока ещё не реализовано.

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

Lib\C — исходники библиотек, написанных на языке Си. Раньше они хранились просто в /Lib. Теперь же там хранится продукт: те самые двоичные библиотеки, для создания которых подсистемы собственно и нужны.

Lib\Mod — исходники библиотек, написанных на Обероне имеют расширение .Mod, биндинги к сишным библиотекам (или dll, или so) имеют расширение .Def.

Lib\Obj — исходники на языке Си, не написанные программистом, а сгенерированные средой из обероновских. Всякий раз при компиляции или сборке скрипт проверяет существование одноимённого с модулем сишного исходника сначала в папке Lib\C, если находит, то реализация модуля считается написанной на Си, а Оберон-часть считается биндингом; если же в Lib\C сишного исходника нет, то модуль считается написанным на Обероне, а значит компилируются и собираются исходники, находящиеся в Lib\Obj, которые по сути являются объектными файлами, просто в формате Си.

В подсистеме WinDev есть также папка:

Lib\Obj64 — для 64-битной версии объектных файлов. Эту папку пришлось ввести потому, что генерируемые сишные исходники для 32 бит и 64 бит могут отличаться.

Lib\Sym — символьные файлы. Текстовое представление хранить оказалось не нужным: его очень просто получить с помощью браузера XDev -> Show Definition.

Lib — готовые библиотеки, сгенерированные с помощью подсистемы, а также их конфигураторы, т.е. в данной реализации это *.h-файлы. Мы здесь не прячем их, Reobne. Мы наоборот выставляем наружу интерфейсы, опции, параметры библиотек. А прячем реализацию.


Вложения:
NewZXDev.png
NewZXDev.png [ 26.4 КБ | Просмотров: 14013 ]
Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 2 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
© VEDAsoft Oberon Club