metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2010-01-09 02:02 pm
Entry tags:

Обострение в функциональном комьюнити

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

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

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

[identity profile] thedeemon.livejournal.com 2010-01-09 02:16 pm (UTC)(link)
Чем же еще заниматься-то, е? :)

[identity profile] alexott.livejournal.com 2010-01-09 02:19 pm (UTC)(link)
сделать такое на lisp/scheme? для plt-scheme недавно зарелизили parser combinators library
P.S. давай тебя в ФПшную планету добавим? только таг какой-то надо придумать, типа fp

[identity profile] udpn.livejournal.com 2010-01-09 02:39 pm (UTC)(link)
Наверное, это нормально для программиста, у которого всё хорошо. НГ выдал хорошего настроения и немного свободного времени.

>> Уже наверно год или два пытаюсь эту хрень сделать, но постоянно убредаю в какие-то дебри

Наверное, потому что скилла недостаточно для того, что хочется сделать. А когда скилла достаточно, ТЗ меняется, и скилла снова не хватает. Надо начинать с чего-то попроще, а потом развивать.

[identity profile] psilogic.livejournal.com 2010-01-09 02:59 pm (UTC)(link)
Сделай хрени нижнего уровня, которые точно понадобятся. Тогда эта часть станет более определенной и потребуется меньше моска чтобы ее себе представлять.

[identity profile] oxij.livejournal.com 2010-01-09 04:08 pm (UTC)(link)
сделать парсер, который бы по мере разбора входного потока менял собственную грамматику
в этом месте пахнет стрелками

[identity profile] freiksenet.livejournal.com 2010-01-09 06:01 pm (UTC)(link)
А в Common Lisp уже есть Meta Object Protocol.

[identity profile] antilamer.livejournal.com 2010-01-09 06:32 pm (UTC)(link)
Может, заюзать SNOBOL? ;)

[identity profile] ng67.livejournal.com 2010-01-09 09:28 pm (UTC)(link)
А Ваши разработки в принципе не переносимы на что-то типа 1С?
Или по каким-то причинам Вы не хотите использовать эту платформу?