love5an: (R)
Я тут снова взялся за SLXI.

И первое, что сделал - выкинул C#. Теперь кросс-интерпретатор будет написан на Common Lisp.

https://github.com/Lovesan/SLXI

Собственно, на данный момент готов только парсер, и некоторые функции для работы с данными SL, в частности - со списками и символами.

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

Еще, парсер не поддерживает комплексные числа(в SL будет синтаксис комплексных чисел как в Scheme) и read-eval, это потому что мне лень, да и автомат для лексера и так уже очень жирный.

Скоро начну работу над компилятором в байт-код.

Lisp FTW!
love5an: (R)
Собственно, наконец-то у меня дотянулись руки начать писать транслятор лисп-объектов в AST в SLXI.

Для тех кто всё пропустил - SLXI это кросс-интерпретатор моего лиспа, похожего на CL, написанный на C#


Ну так вот, какие TODO:

В SLXI(а конкретно, в классе LispObject) в первую очередь не хватает представлений для функций и для объектов ОО-системы.

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

ОО-система же, естественно, будет похожа на CLOS, с некоторыми изменениями. В частности все объекты будут т.н. funcallable.
Кстати, в коде на гитхабе можно заметить, что такие вещи, как представление лексического окружения в трансляторе, представление переменных и деклараций, являются internal-объектами, грубо говоря C#-выми штуками. На самом деле, это временная мера; с введением ОО-системы они станут полноценными объектами, которые дадут пользователю лисп-системы возможность достаточно тонко управлять компиляцией на этапе раскрытия макросов.

Еще, как заметно, нету пока что и намека на парсер, т.е. reader. Нету потому, что он будет частью стандартной библиотеки. Считыватель будет очень расширяемым, настраиваемым, и вообще достаточно интересным. Про него подробнее тут: http://love5an.livejournal.com/377367.html

А вообще, есть много things to discuss об этом моем лиспе с представителями лисп-сообщества и интересующимися. В частности, надо будет продумать ОО-систему до конца, надо будет основательно поработать над стандартной библиотекой, ну и вот еще интересный вопрос про модульность - у меня вот уже давно висит идея сделать нормальную модульность лиспу, с блэкджеком и куртизанками, т.е. например наподобие как в .NET - со сборками(assembly), модулями и чем-то типа GAC. Еще интересный вопрос - IO-подсистема в стандартной библиотеке: сейчас мода на асинхронность(я вообще дико влюблен в async await в C#), и надо бы это как-нибудь красиво прикрутить. Вобщем, на одной из встреч надо будет эту тему поднять(ну и в интернете конечно буду писать про это всё).
love5an: (R)
Народ!
Питер!
Сегодня как обычно - субботняя встреча на тему метапрограммирования, функционального программирования, лиспов, и не только.

Место - Молли Шелтер, на Итальянской 29, как обычно.


Поступило предложение задуматься о более доступном(в плане расходов материальных ресурсов), месте проведения встреч, надо его обсудить.

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

Встречайте SLXI:

https://github.com/Lovesan/SLXI

Кросс-интерпретатор моего лиспа, написанный на Microsoft .NET. Ну, пока что не совсем написанный, но в процессе.

После того, как SLXI будет готов, я, уже на самом лиспе, напишу компилятор в native, и рантайм. Одна из первых планируемых платформ - Windows(NT 6 и выше), x86 и x64. Но сначала надо доделать SLXI.

Среди других возможных тем - "девушки в IT" :)

Короче говоря - приглашаются все желающие, место - еще раз напомню - Питер, Итальянская 29, Молли Шелтер.

Profile

love5an: (Default)
Dmitry Ignatiev

December 2016

S M T W T F S
    123
45678910
11121314 151617
18192021222324
25262728293031

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 20th, 2017 12:50 pm
Powered by Dreamwidth Studios