Как известно, в минимум хаскелера второго уровня силы входит некое сочинение о понимании монад. Что же, вот моя небольшая заметка на эту тему. Как известно монадой является не всякий тип для которого сделан instance в Monad и определены (>>=) и return, но только такой для которого ещё и выполняются три особых монадических закона (которые компилятор
(
Read more... )
Точнее будет сказать, из ML-семейства.
> который влезет в arm с 64K памяти программы
> и 1 - 64K памяти данных?
Не знаю... Но в принципе, это возможно.
Из тяжёлого там только мусорщик, с остальным всё просто.
Была такая реализация SML - MoscowML...
Есть Caml Light -
http://caml.inria.fr/caml-light/index.en.html
Но у него требования поболее.
Они сейчас все на грани вымирания...
В подавляющем большинстве случаев, задача, которую надо выполнять на контроллере, достаточно узкая, чтобы было легче и выгоднее описать свой DSL и иметь значительно более высокое качество компиляции.
Сам я, было дело, писал под атмельки, и во всех случаях, точно было лучше делать свой DSL.
Это, кстати, становится довольно простым развлечением после даже не очень значительного опыта.
Ещё, было дело, я писал на "сиськеле" ;-)
А именно, описываешь простое подмножество сишечки на хацкеле и генерируешь код.
То есть, имеешь крутые типизированные макросы. Не фонтан, но получше чистой сишечки.
Собственно, таким же манером можно и макросы к ассемблеру делать, если это только не x86 ;-)
В x86 написание макросов, несколько, усложняется небольшим количеством регистров процессора - требует активного использования памяти, стека и регистров под конкретные цели, что ухудшает код, ну и в таком случае, уж лучше сразу форт пользовать.
Наверное, для микроконтрллеров, будет не сильно плохо пользовать такие же макросы над llvm.
Но я не пробовал и не думал над этим. Вполне может быть, что возникнет немало косяков.
Чота опять на меня нашло, уж очень разговорился... ;-)
Reply
Leave a comment