BlackBox как компилятор для микроконтроллеров начиная с ATMega16.
Уважаемые коллеги.
Видимо, назрела еще одна платформа, на которой можно применить BlackBox. Разработка программ для однокристальных микроЭВМ (микроконтроллеров) занимает значительную часть времени при разработке электронных устройств. При этом многие недостатки языков программирования ассемблера и Си давно исправлены в BlackBox. Наличие средства разработки, по удобству равного BlackBox, намного облегчила бы задачу разработок прошивок. Существующие компиляторы MicroPascal и EmbeddedPascal, видимо, сделаны не очень качественно. Компилятор Astrobe для языка Oberon-07 для довольно дорогого микроконтроллера Cortex M3 показывает, что можно успешно применять обероноподобные языке для однокристальных микроЭВМ.
Компилятор BlackBox, как известно, состоит из трех частей:
1) синтаксического анализатора;
2) древовидной структуры данных;
3) кодогенератора.
В компиляторе gcc древовидная структура данных построена на основе шаблонов (template), то есть, по сути заменой одних кусков текстов другими. По сравнению с ней структура данных BlackBox, построенная на основе типизированных указателей на записи, намного удобней (трудней сделать ошибку). Можно прямо TRAPом останавливать и смотреть внутреннюю структуру данных или распечатать рекурсивным алгоритмом. И при этом для gcc есть компиляторы для микроконтроллеров Atmel. Что мешает сделать компиляторы для микроконтроллеров на основе BlackBox!
Дополнительные помогающие факторы:
1) ассемблер для микроконтроллеров
применяется довольно часто (в то время как для настольных компьютеров сегодня ассемблер применяется редко). В свое время Линус Торвальдс начал разрабатывать свою открытую операционную систему именно с целью изучения ассемблера для i386. Таким образом, кто не хочет вернуться к старым пробелам программирования после BlackBox и в то же время хочет в совершенстве освоить микроконтроллеры, могут совместными силами разрабатывать компиляторы для микроконтроллеров на основе BlackBox;
2) после большой практики разработки компиляторов для микроконтроллеров на основе BlackBox будет намного легче сделать самим 64 битную версию BlackBox, которая актуальна в линуксовой версии при массовом засилье 64 битных хостингов для web-приложений;
3) разработка программ для микроконтроллеров открывает для программистов мир производства товаров массового потребления, рынок которого имеет намного больший объем, чем рынок программного обеспечения;
4) сами микроконтроллеры и программаторы очень дешевы (100 р. и 900 р. соответственно), для программиста не проблема покупать их для экспериментов и таким образом инвестировать в свой бизнес по производству электронной техники.
Какие могут быть предложения для реализации?
1. Если делать серию компиляторов, для каждого должен быть свой модуль SYSTEM, так как в разных микроконтроллерах есть разное количество портов, периферийных устройств и т.д.
2. Кроме непосредственно компиляторов часть ассемблерных команд надо вывести в библиотеки.