Lisp application
От: Сергей Туленцев Россия http://software.tulentsev.com
Дата: 11.09.06 20:52
Оценка:
Граждане Лисперы, отзовитесь.

Я тут в очередной раз возобновил свои попытки знакомства с Common Lisp, благо книга попалась хорошая, Practical Common Lisp.

Ну так вот, допустим, я написал нечто полезное. Скажем, тот же парсер логов. Как мне его закомпилять в какое-нибудь консальное приложение?

Для разработки пользуюсь Allegro CL. Как в нем создать консольное приложение — не нашел. CMUCL — нет версии под винду.

В принципе, можно запускать консоль той же аллегры и в ней грузить нужный файл, но как-то это не кошерно.
Помогите приложить CL к делу.
--
Re: Lisp application
От: Lloyd Россия  
Дата: 12.09.06 05:45
Оценка: :)
Здравствуйте, Сергей Туленцев, Вы писали:

СТ>Граждане Лисперы, отзовитесь.


СТ>Я тут в очередной раз возобновил свои попытки знакомства с Common Lisp, благо книга попалась хорошая, Practical Common Lisp.


СТ>Ну так вот, допустим, я написал нечто полезное. Скажем, тот же парсер логов. Как мне его закомпилять в какое-нибудь консальное приложение?


Я хотя и лиспер, но все-таки вставлю свои 5 копеек.
Напиши батник, в котором:
<имя lisp-интерпретатора> <имя запускаемого файла>

и будет тебе консольное приложение.
Re[2]: Lisp application
От: Сергей Туленцев Россия http://software.tulentsev.com
Дата: 12.09.06 05:52
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Я хотя и лиспер, но все-таки вставлю свои 5 копеек.

L>Напиши батник, в котором:
L>
L><имя lisp-интерпретатора> <имя запускаемого файла>
L>

L>и будет тебе консольное приложение.

Такая идея мне тоже в голову приходила. Одна беда — Аллегро не интерпретатор ни разу.
Из остальных знаю только CMUCL, SBCL и CLISP, ни у одного из которых нет версии под винду (CLISP есть под cygwin, но это не то)
--
Re[3]: Lisp application
От: FR  
Дата: 12.09.06 07:18
Оценка: +1
Здравствуйте, Сергей Туленцев, Вы писали:

СТ>Такая идея мне тоже в голову приходила. Одна беда — Аллегро не интерпретатор ни разу.

СТ>Из остальных знаю только CMUCL, SBCL и CLISP, ни у одного из которых нет версии под винду (CLISP есть под cygwin, но это не то)

clisp точно есть под винду и без cygwin'а, у меня стоит clisp-2.33.2, сейчас посмотрел никаких dll кроме виндовых не цепляет.
Re[3]: Lisp application
От: Lloyd Россия  
Дата: 12.09.06 07:26
Оценка:
Здравствуйте, Сергей Туленцев, Вы писали:

СТ>Такая идея мне тоже в голову приходила. Одна беда — Аллегро не интерпретатор ни разу.

СТ>Из остальных знаю только CMUCL, SBCL и CLISP, ни у одного из которых нет версии под винду (CLISP есть под cygwin, но это не то)

По поводу clisp-а ты точно неправ. Про остальное — не знаю.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Lisp application
От: Инженер  
Дата: 12.09.06 08:42
Оценка: 4 (1)
Здравствуйте, Сергей Туленцев, Вы писали:

СТ>Здравствуйте, Lloyd, Вы писали:


L>>Я хотя и лиспер, но все-таки вставлю свои 5 копеек.

L>>Напиши батник, в котором:
L>>
L>><имя lisp-интерпретатора> <имя запускаемого файла>
L>>

L>>и будет тебе консольное приложение.

СТ>Такая идея мне тоже в голову приходила. Одна беда — Аллегро не интерпретатор ни разу.

СТ>Из остальных знаю только CMUCL, SBCL и CLISP, ни у одного из которых нет версии под винду (CLISP есть под cygwin, но это не то)

CLISP точно есть (про это уже написали) http://prdownloads.sourceforge.net/clisp/. Так же есть SBCL (http://jsnell.iki.fi/blog/archive/2005-12-11.html. Но сдаётся мне, что он сыроват.
Re: Lisp application
От: Инженер  
Дата: 12.09.06 09:25
Оценка: 1 (1)
Здравствуйте, Сергей Туленцев, Вы писали:

СТ>Граждане Лисперы, отзовитесь.


СТ>Я тут в очередной раз возобновил свои попытки знакомства с Common Lisp, благо книга попалась хорошая, Practical Common Lisp.


СТ>Ну так вот, допустим, я написал нечто полезное. Скажем, тот же парсер логов. Как мне его закомпилять в какое-нибудь консальное приложение?


СТ>Для разработки пользуюсь Allegro CL. Как в нем создать консольное приложение — не нашел. CMUCL — нет версии под винду.


СТ>В принципе, можно запускать консоль той же аллегры и в ней грузить нужный файл, но как-то это не кошерно.

СТ>Помогите приложить CL к делу.

А получить нечто исполняемое можнополучить следующим образом (Note: использовался CLISP):

файл xyz.lisp
(defun main ()
  (pprint 'XYZ))


в repl'e пишем:
(saveinitmem "D://tmp1.exe" :quiet t :init-function 'main :executable t)
Re[2]: Lisp application
От: Сергей Туленцев Россия http://software.tulentsev.com
Дата: 12.09.06 09:45
Оценка:
Здравствуйте, Инженер, Вы писали:

И>файл xyz.lisp

И>
И>(defun main ()
И>  (pprint 'XYZ))
И>


И>в repl'e пишем:

И>
И>(saveinitmem "D://tmp1.exe" :quiet t :init-function 'main :executable t)
И>


Круто. То есть, оно делает вроде дампа памяти и сохраняет его в файл?

Только вот простейший код из трех функций сохраняется в файл под 5 мегабайт и при этом всё равно требует рантайм.
--
Re[3]: Lisp application
От: Инженер  
Дата: 12.09.06 10:03
Оценка:
Здравствуйте, Сергей Туленцев, Вы писали:


СТ>Круто. То есть, оно делает вроде дампа памяти и сохраняет его в файл?


да именно так

СТ>Только вот простейший код из трех функций сохраняется в файл под 5 мегабайт и при этом всё равно требует рантайм.


как говориться "вам шашечки или ехать" . Программа написанная например на С++ тоже требует рантайм.
Re[3]: Lisp application
От: mihoshi Россия  
Дата: 12.09.06 10:08
Оценка:
Здравствуйте, Сергей Туленцев, Вы писали:

СТ>Только вот простейший код из трех функций сохраняется в файл под 5 мегабайт и при этом всё равно требует рантайм.


Слушай, а ты уверен, что тебе нужен именно Common Lisp? Для "чего-то полезного" больше Scheme подходит
Re[4]: Lisp application
От: Сергей Туленцев Россия http://software.tulentsev.com
Дата: 12.09.06 10:13
Оценка:
Здравствуйте, mihoshi, Вы писали:

M>Здравствуйте, Сергей Туленцев, Вы писали:


СТ>>Только вот простейший код из трех функций сохраняется в файл под 5 мегабайт и при этом всё равно требует рантайм.


M>Слушай, а ты уверен, что тебе нужен именно Common Lisp? Для "чего-то полезного" больше Scheme подходит


Схема мне не нравится. В ней птичих галок меньше.
Хотя я SICP книжку не читал, только видео смотрел и то половину.
К тому же CL обладает хорошей долей императивщины. Мозги не придется сразу сильно ломать.
--
Re[5]: Lisp application
От: FR  
Дата: 12.09.06 11:13
Оценка: +1
Здравствуйте, Сергей Туленцев, Вы писали:

СТ>Схема мне не нравится. В ней птичих галок меньше.

СТ>Хотя я SICP книжку не читал, только видео смотрел и то половину.
СТ>К тому же CL обладает хорошей долей императивщины. Мозги не придется сразу сильно ломать.

В схеме императивщины не меньше
Re[6]: Lisp application
От: Сергей Туленцев Россия http://software.tulentsev.com
Дата: 12.09.06 11:24
Оценка:
Здравствуйте, FR, Вы писали:

FR>Здравствуйте, Сергей Туленцев, Вы писали:


СТ>>Схема мне не нравится. В ней птичих галок меньше.

СТ>>Хотя я SICP книжку не читал, только видео смотрел и то половину.
СТ>>К тому же CL обладает хорошей долей императивщины. Мозги не придется сразу сильно ломать.

FR>В схеме императивщины не меньше


А что-то мне там птичьих галок Common Lisp не встречалось.

Вот на CL макрос возвращает список, интерполируя туда параметры

(defmacro my-macro (param1 param2)
    `(format t "~a~10t~a" ,param1 ,param2))


На схеме оно также будет, или по другому?
--
Re[6]: Lisp application
От: mihoshi Россия  
Дата: 12.09.06 12:15
Оценка:
Здравствуйте, FR, Вы писали:

СТ>>Схема мне не нравится. В ней птичих галок меньше.

СТ>>Хотя я SICP книжку не читал, только видео смотрел и то половину.
СТ>>К тому же CL обладает хорошей долей императивщины. Мозги не придется сразу сильно ломать.

FR>В схеме императивщины не меньше


А вообще, какие у CommonLisp есть достоинства перед схемой?
Re[7]: Lisp application
От: FR  
Дата: 12.09.06 12:25
Оценка:
Здравствуйте, Сергей Туленцев, Вы писали:


FR>>В схеме императивщины не меньше


СТ>А что-то мне там птичьих галок Common Lisp не встречалось.


СТ>Вот на CL макрос возвращает список, интерполируя туда параметры


СТ>
СТ>(defmacro my-macro (param1 param2)
СТ>    `(format t "~a~10t~a" ,param1 ,param2))
СТ>


СТ>На схеме оно также будет, или по другому?


если про форматную строку, то также (display (format "~a~10t~a" 123 456)), макросы конечно там более ограниченые.
Re[7]: Lisp application
От: FR  
Дата: 12.09.06 12:26
Оценка:
Здравствуйте, mihoshi, Вы писали:

M>Здравствуйте, FR, Вы писали:


СТ>>>Схема мне не нравится. В ней птичих галок меньше.

СТ>>>Хотя я SICP книжку не читал, только видео смотрел и то половину.
СТ>>>К тому же CL обладает хорошей долей императивщины. Мозги не придется сразу сильно ломать.

FR>>В схеме императивщины не меньше


M>А вообще, какие у CommonLisp есть достоинства перед схемой?


Ну вроде стандартизованные объекты и более мощные макросы.
Re[7]: Lisp application
От: mihoshi Россия  
Дата: 12.09.06 12:32
Оценка:
Здравствуйте, Сергей Туленцев, Вы писали:

СТ>
СТ>(defmacro my-macro (param1 param2)
СТ>    `(format t "~a~10t~a" ,param1 ,param2))
СТ>


СТ>На схеме оно также будет, или по другому?


Так же. Правда, в некоторых для этого придется написать макрос defmacro
Re[8]: Lisp application
От: Курилка Россия http://kirya.narod.ru/
Дата: 12.09.06 12:38
Оценка:
Здравствуйте, FR, Вы писали:

FR>Здравствуйте, mihoshi, Вы писали:


M>>А вообще, какие у CommonLisp есть достоинства перед схемой?


FR>Ну вроде стандартизованные объекты и более мощные макросы.


имеется в виду CLOS или система типов вообще?
Re[9]: Lisp application
От: FR  
Дата: 12.09.06 13:05
Оценка:
Здравствуйте, Курилка, Вы писали:


К>имеется в виду CLOS или система типов вообще?


CLOS
Re[2]: Lisp application
От: Lloyd Россия  
Дата: 12.09.06 20:48
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Я хотя и лиспер, но все-таки вставлю свои 5 копеек.


Упс, выделенное следует читать как "хотя и не лиспер".
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.