metaclass: (Default)
Внезапно для проекта понадобилось метапрограммирование с макросами, обработкой AST и прочими фичами. По причине того, что проект использует .NET, очевидный выбор - Nemerle, который как раз в этом году добрался до версии 1.0.
С достоинствами языка все более-менее понятно, вот что касается недостатков?
Весь RSDN в поисках Nemerle-срачей перечитывать лень, покритикуйте кто-нибудь язык.


PS: В википедии статью про язык удалили: http://en.wikipedia.org/wiki/Wikipedia:Articles_for_deletion/Nemerle
Это, по крайней мере, забавно.
PPS: Статью в итоге таки вернули, а удалятор задолбался спорить.
metaclass: (Default)
(эпиграфом к посту служит цитата из ильфа и петрова, упомянутая [livejournal.com profile] plumqqz при обсуждении системы типов F#)

Так вот, по мотивам того обсуждения - как соотносятся метапрограммирование и зависимые типы? Мне что-то с ходу мерещится что зависимые типы можно имитировать, имея развитые средства метапрограммирования. Скорее всего, это будет адский закат солнца вручную (во всяком случае, у меня кодогенератор C# из модели БД выглядит именно так) но тем не менее, это должно быть возможно.
metaclass: (Default)
Праздники как-то нездорово влияют на мозг функциональщикам.
По-моему, все кинулись делать какие-то самодельные кто языки, кто компиляторы, кто вообще какой-то теоретически-категорный трэш.

Самое ужасное, что я, вместо работы, занимаюсь тем же самым - делаю язык, чем-то похожий на Metaobject protocol, чтобы на нем описывать модели предметной области(в том числе и самого себя), а затем генерить из этих моделей код на более привычных языках.
Т.е., к примеру, мы описываем понятие "тип" на обычном языке и делаем парсер, который читает описание типа, затем с его помощью делаем новую версию описания типа(например, добавляем к описанию поля кортежа кроме имени и типа еще и пользовательское имя), по ней генерим новый парсер и дальше читаем описания типов уже им.
И основным интерфейсом к этой хрени должен быть в итоге не текст, а что-то более двумерное, типа грида. Потому что результатом конечным должна быть очередная заготовка под различную опердень.

Уже наверно год или два пытаюсь эту хрень сделать, но постоянно убредаю в какие-то дебри - то в хаскель, то в лисп, то вот вчера сделал лексер на Parsec, а дальше что-то мозговой тупик, потому что нужно сделать парсер, который бы по мере разбора входного потока менял собственную грамматику. А если попытаться сначала спроектировать, а потом делать - мозг убредает еще в большие дебри, типа систем типизации и крыша просто уезжает.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 25th, 2017 12:39 am
Powered by Dreamwidth Studios