Оберон-клуб «ВЄДАsoft» https://zx.oberon.org/forum/ |
|
Константные массивы https://zx.oberon.org/forum/viewtopic.php?f=46&t=89 |
Страница 1 из 1 |
Автор: | Zorko [ 05 мар 2013, 08:48 ] |
Заголовок сообщения: | Константные массивы |
Вдобавок к "правильному" FOR мне хотелось бы видеть в Обероне (в XDev) константные массивы, которые являются незаменимой возможностью простого включения в модули ресурсов и статичных данных, вместо предлагаемого Оберон-парадигмой хранения данных в виде кода и присваивания их неконстатному массиву: Код: "OBERON"
Но сейчас из всех стандартов Оберона константные массивы имеются только в Amiga-Oberon и Active Oberon. Что же теперь предоставляют нам в этом смысле другие Оберон-реализации? Ну можно конечно же немножечко изголиться: Код: "OBERON"
(что не решает поставленную проблему никак, только скрашивает). Остаётся способ хранить данные системными (непереносимыми) средствами. Ну вот, например, как это можно сделать в BlackBox: Код: "OBERON"
Оберон позиционируется как хорошее средство разработки для микроконтроллеров (уточню: для 32-битных и выше микроконтроллеров), но как быть с этим моментом? Читать ресурсы предлагается из файлов. Но ведь в контроллере даже может не быть реализованной файловой системы! Остаётся двойное хранение данных — как кода, и потом присваивание и хранение уже в неконстантном массиве, что неэффективно. А если объём данных большой, а памяти мало? Нужно же экономить ресурсы. Внешние (подгружаемые из файлов) ресурсы, а также двойное хранение данных в виде кода и присваивание: a) медленнее в работе; b) мало подходит для использования во встроенке, например, в регуляторе температуры аквариума или медицинском приборе для снятия кардиограммы, где весь софт прошит в микросхему ПЗУ. Сейчас при работе в XDev для включения ресурсов в модули я использую средства языка Си. Тут подумалось, что если мы хотим получить ревизию Оберона с поддержкой символа "_" в идентификаторах, "правильным" FOR и с константными массивами, а, возможно, и с другими доработками, то нужно придумать ей какое-то отличительное имя и позиционировать как новый диалект (ревизию) Оберона. |
Автор: | sage [ 05 мар 2013, 09:14 ] |
Заголовок сообщения: | Re: Константные массивы |
Zorko писал(а): с поддержкой символа "_" в идентификаторах Это тоже есть в Active Oberon.Вообще, компилятор Active Oberon последней ревизии (называется Fox, - полностью переписанный "с нуля" некоторое время назад) был изначально задуман как легко поддерживаемый, модифицируемый и кросс-платформенный компилятор (по сравнению с его предшественником - PACO). Правда, обещанных кодогенераторов под все мыслимые и немыслимые платформы не видно и поныне, но интерфейс кодогенерации из промежуточного представления можно изучить и написать нужный кодогенератор, при желании ![]() |
Автор: | Zorko [ 05 мар 2013, 09:51 ] |
Заголовок сообщения: | Re: Константные массивы |
Я иду по пути наименьшего сопротивления. Если бы для Fox хотя бы кодогенератор в Си был... Не говоря уж о LLVM или GCC. Да и в качестве основы для "правильного" Оберона я взял бы скорее Оберон-2/КП, чем AO. Возможно, это дело вкуса или пристрастий. |
Страница 1 из 1 | Часовой пояс: UTC + 2 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |