Автор | Сообщение |
packa
2 сообщений |
#7011 2013-05-01 17:41 GMT+3 часа(ов) |
Здарвствуйте!
Очень хочется создать DLL на scheme. Суть - написать ядро вычислений на scheme, чтобы потом использовать их в программе на языке с++ (которая собственно будет больше оформлением для программы на scheme) Какой либо информации касательно этого не нашел, поэтому прошу совета у вас. |
|
skelter
56 сообщений |
#7012 2013-05-02 15:00 GMT+3 часа(ов) |
Очевидно, нужно смотреть документацию к конкретным реализациям. Например, Gambit может компилировать в портабельный C; наверно, и DLL можно скомпилировать.
|
|
snv
25 сообщений |
#7035 2013-05-29 19:27 GMT+3 часа(ов) |
Можешь организовать обмен данными через сокеты или shared-memory. Т.е. DLL, написанная на обычном C/C++, запускает backend Lisp-систему и дальше только отправляет ей запросы. По-типу OpenGL.
|
|
The hour will come in which all the peoples of the earth will awake, and the Jews will be the victims. -- Joseph Goebbels, 21 January 1945
|
|
misha![]()
1275 сообщений |
#7238 2014-01-16 23:15 GMT+3 часа(ов) |
ЦитатаСтранно, ведь обычно требуется наоборот. Сначала пишется низкоуровневый код на Си, а затем компилируется совместно с scheme кодом. Кстати, racket имеет хороший C API, так что можно писать и использовать нативные модули(dll) без возни с ffi. |
|
PACTBOP_KOBAPEH
11 сообщений |
#7266 2014-02-08 01:15 GMT+3 часа(ов) |
Я нагуглил только Embeddable Common Lisp и VSLisp Embedded Lisp Interpreter. Мне тоже хотелось бы использовать Scheme как встраиваемый язык вместо Lua или AngelScript.
P.S. Нашел несколько "внедряемых" Scheme - TinyScheme, KSi, Bigloo. Больше всего приглянулся последний. Очень живой (последнее обновление меньше полугода назад) и матерый (версия 4.0, а не 0.4 какая-нибудь). Пример модуля, притворяющегося DLL на C: http://www-sop.inria.fr/indes/fp/Bigloo/bigloo-11.html#C-Example отредактировал(а) PACTBOP_KOBAPEH: 2014-02-08 05:47 GMT+3 часа(ов) |
|
misha![]()
1275 сообщений |
#7269 2014-02-10 20:58 GMT+3 часа(ов) |
ЦитатаА может проще написать собственный интерпретатор? А то ведь полноценная реализация потащит за собой лишние мегабайты. |
|
PACTBOP_KOBAPEH
11 сообщений |
#7271 2014-02-12 15:00 GMT+3 часа(ов) |
Мегабайты меня не волнуют, 21 век на дворе. Программа пишется чисто под себя, так что удобство развертывания тоже не волнует. А главная проблема - хочу удобную IDE. Все Лиспы и Схемы, какие я пока видел (Gambit-C, CLISP, LispWorks) убоги до невозможности. Конечно, можно писать в Sublime Text и скармливать компилятору, но это с любым языком можно делать. А как же хваленый REPL? Где он тут? Сейчас вот только что скачал Allegro CL, если и он не устроит, в папке "Загрузки" останется только Haskell.
![]() |
|
misha![]()
1275 сообщений |
#7276 2014-02-12 16:58 GMT+3 часа(ов) |
ЦитатаА скорость загрузки(boot time) приложения вас волнует? ЦитатаСудя по вашим запросам, такую еще не изобрели. Можете посмотреть в сторону DrRacket, но навряд ли она вас впечатлит. ЦитатаУдивительно, как вы до него еще не дошли. Ведь он есть везде. Даже в VS, только называется иначе. ЦитатаУ него ide такое же убогое г... |
|
PACTBOP_KOBAPEH
11 сообщений |
#7279 2014-02-12 22:15 GMT+3 часа(ов) |
Цитата Ни в малейшей степени. Пусть хоть полчаса загружается. Я серьезно. ЦитатаЦитатаСудя по вашим запросам, такую еще не изобрели. Можете посмотреть в сторону DrRacket, но навряд ли она вас впечатлит. Идея! А что, если использовать DrRacket только как IDE? А программировать на Scheme R5RS? И потом компилировать с помощью Chicken или Gambit? И как я сразу не допёр... ЦитатаЦитатаУдивительно, как вы до него еще не дошли. Ведь он есть везде. Да-да, везде. Даже в CLIPS. Только им пользоваться невозможно. Кнопочки Home, End и даже Del не работают. Спасибо, но я знаю другие способы мазохизма. Цитата Вы имеете в виду F# Interactive? Да, есть такая штука. И даже очень удобная. Нажал Alt-Enter и вуаля! Это Вам не копирование из Sublime Text в консольное окно CLIPS. ЦитатаЦитатаУ него ide такое же убогое г... Причем это наименьшая из его проблем. |
|
misha![]()
1275 сообщений |
#7281 2014-02-15 13:54 GMT+3 часа(ов) |
ЦитатаВот только зачем? ЦитатаСомнительные неудобства. Собственно репл не за это любят. ЦитатаВсе используют emacs+slime. |
|
rv82
46 сообщений |
#7289 2014-02-22 13:39 GMT+3 часа(ов) |
Цитата Писать DLL, подключаемые к Си-программам можно и на Chicken'е. Сам пробовал. Предпочитаю Chicken (не говоря о Racket), т.к. где-то читал, что из всех "внедряемых" реализаций, у него наилучший сборщик мусора, наиболее хорошо подходящий языку Scheme. Ну и конечно же, большой репозиторий сторонних модулей. |
|
PACTBOP_KOBAPEH
11 сообщений |
#7391 2014-06-07 12:20 GMT+3 часа(ов) |
rv82, если не секрет, как организовали работу с Chicken? Каким редактором пользуетесь, как программу на функции разбиваете, как корректность функций тестируете? Я еще и на С программирую, и у меня такая манера: каждая функция в отдельном файле, к ней тестилка - тоже в отдельном файле. Как-то так:
// without_zeros.c // test_without_zeros.c Кошмар, да? Сам язык очень нравится (обратите внимание, как красив и лаконичен код функции without_zeros), но угнетает необходимость долго и муторно все это оформлять. |
|