LINUX.ORG.RU

Лисп


0

0

Есть ли библиотеки, позволяющие встроить в свою программу
интерпретатор Лиспа? Как например в Emacs и GIMP?
anonymous

Поищи в google "siod scheme", "guile scheme", "bigloo", "kawa scheme" "librep". Первые четыре - реализации Scheme, популярного диалекта Лиспа. Bigloo может компилировать в C и JVM bytecode, kawa - в JVM bytecode. Guile вроде имел компиляцию в машкод x86, хотя тут я могу ошибаться. www.schemers.org - твой помощник.
Для более массивных вещей многие (в т.ч. и я) предпочитают Common Lisp. С него есть ряд бесплатных и коммерческих компиляторов. www.lisp.org, www.franz.com, www.cons.org, www.xanalys.com, www.digitool.com, для начала.

Viking
()

Ембедаббельный Лисп (не Common, с закосом под elisp) - librep.

Схема (никоим образом не диалект Лиспа, вполне себе самостоятельный язык) - KSI Scheme или Guile. Лучше первое.

Antichrist
()

> Схема (никоим образом не диалект Лиспа, вполне себе самостоятельный язык)..
Это вопрос спорный. В свое время c.l.l видал много флейма по этому поводу. Или вот например:
"Scheme is a statically scoped and properly tail-recursive dialect of the Lisp programming language invented by Guy Lewis Steele Jr. and Gerald Jay Sussman."
-R5RS, Summary

Viking
()
Ответ на: комментарий от Viking

Мало ли, что в r5rs пишут ;)

Я не могу считать Схему диалектом Лиспа по одной причине: в ней нет eval. То есть, если Лисп - принципиально требующий интерпретации/компиляции-на-лету язык, то Схема в этом плане от Си ничем не отличается, раз откомпилировал, и радуйся...

Antichrist
()

> Я не могу считать Схему диалектом Лиспа по одной причине: в ней нет eval.
Теперь это не совсем так :)
http://www.schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-9.html#%_sec_6.5
Да и в IEEE Scheme eval вроде был изначально.
Обычно схему калят за то, что она задается algol-like спецификацией (т.е. формальной грамматикой, а не описанием семантики на естественном языке, как в ANSI CL). Они даже общую схему документа с алголовского репорта позаимствовали.

Viking
()
Ответ на: комментарий от Viking

Дык это не есть Lisp-like eval. Понятно, что такой вот странный он именно в силу static scoping, ну да от этого не легче. Вся прелесть Лиспа теряется... :(

Вот если бы внутри eval был доступен весь текущий environment...

Antichrist
()

Честно говоря, меня больше в схеме раздражает единое пространство имен. Я понимаю что это более кошерно и все такое, но далеко не все программы которые я пишу делают много функциональной композиции в runtime. И мало того, что они загребли кучу осмысленных идентификаторов под имена функций, так еще и syntax-rules вместо простого человеческого defmacro всучить стараются..
В этом плане Arc выглядит перспективнее. По крайней мере Graham божится оставить все осмысленные идентификаторы пользователю :)

Viking
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.