Добрый день, коллеги.
Пункты, по которым хотелось бы услышать вашу реакцию, дополнения, пожелания, отзывы и интерес.
Сумбурно.
Но - высказывайтесь!
1. Язык
?????????????????????????????????
2. Компилятор
?????????????????????????????????
3. Документация
3.а) введение, собственно в язык
3.б) среда и рабочее окружение
- ОС
- IDE
- компилятор
- подсистемы
- библиотеки
4. Учебники + примеры
Здесь есть несколько разновидностей учебного материала:
4.а) написание программ в А2 - в малом и большом
4.а.1) в малом - типовые примеры (как у Потопахина, например, или - виртовское “Программирование на Обероне”)
4.а.2) в большом - проектирование СИСТЕМ - аналог книг Мейера и/или Банды Четырёх , только с базовым языком - АО
4.а.3) тематические описания по областям применения:
- встроенные системы,
- десктопное программирование + программирование интерфейса,
- работа с графикой
- работа с СУБД
- веб-тематики
- численные методы ( аналогом можно взять
http://books.pharo.org/numerical-methods/ )
- финансовые вычисления
- портирование
5. Вопросы портирования библиотек, приложений, фреймвоков
- графика (OpenGL, свои наработки, доступ к GPU напрямую и через портированные средства,
- портирование утилит для работы с форматами графики и железом)
- создание или портирование графических движков (игровые, CAD-ориентированные)
- машинное обучение
- системы управления
- системы реального времени
- работа с микроконтроллерами и одноплатниками формата банковской карты
- методы формирования и построения сборок и загрузочных образов, наработка инструментария для этого
6. Сфера образования
?????????????????????????????????????
7. Вопросы работы А2 в качестве ГОСТЕВОЙ системы.
Что меня здесь интересует.
Есть несколько вариантов
а) работа а ля ЧёрныйЯщик - своя IDE-образная среда, как приложение хостовой ОС
б) работа в виртуальной машине
в) работа в качестве “чистого” исполняемого файла приложения, “заточенного” под использование напрямую функционала хост-ОС.
Здесь (во всех трёх случаях) необходимо решить вопросы отображения свойств модульности языка АО и системы А2 на элементы подлежащей ОСи.
В процессе их решения необходимо добиваться демонстрации преимущества подходов и идеологии разработки в А2+АО.
А2 - “однопроцессная” по идеологии. Разделение и безопасность - через язык, программные проверки и языковые средства изоляции сущностей.
На чём остановиться при работе на хост-ОС
- на “однопроцессности” каждой из программ, написанных с помощью А2+АО?
- на отображении (некоторым образом) модулей проектируемой в А2+АО системы на “модули” подлежащей ОС. Становится необходимой проработка вопросов “конфигурации” и “настройки” идеологии доступа и “инстанцирования” модулей в рамках хост-ОСи. Будет ли модуль”синглтоном” в хост-системе или позволять многократное “инстанцирование" этого модуля в хост-ОСи и как тогда обеспечивать доступ к данным модля (и - кому?)
Больше всего МЕНЯ ЛИЧНО интересует применение А2+АО во встроенных системах. При чём, и здесь возникают вопросы аппаратного обеспечения разделения модулей по разным, изолированным (виртуальным) адресным пространствам.
Я понимаю, что это противоречит изначальной идеологии языка и системы.
Но я также понимаю, что, проектируя серьёзные системы, мне надо будет следовать некоторым стандартам и соглашениям, прописанным в документах, регламентирующих реализацию среды исполнения для подобного рода систем в, например, авиации у вояк, у атомщиков, корабелов, на ж/д транспорте и в метро, и - в космосе (например, в тех же ARINC 653 и/или DO 178B).
Вероятно это потребует несколько изменить язык в плане описания свойств (через атрибуты???) элементов модулей и их самих. А может быть будет некий фиктивный модуль (головной в проекте?), где эти описания будут собраны вместе) и этот модуль может быть подменён, в зависимости от варианта целевой сборки системы - с учётом архитектуры железа, и способа работы (нативная система или “гостевая”)