LINUX.ORG.RU

Это надо умудриться задать такой вопрос рядом с темой "Компилятор Common Lisp"...

hbee ★★★★
()

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

Что касается Lispа: (1) Lispов много -- в том смысле, что есть несколько языков, которые можно назвать Lispом: Common Lisp, ISLisp, Scheme, Emacs Lisp, XLisp, AutoLisp и.т.п. Хотя сейчас обычно когда говорят Lisp имеют в виду именно CL. (2) у большинства из этих языков по нескольку реализаций (в отличие от perlа), некоторые являются чистыми интерпретаторами, некоторые байт-компиляторами, некоторые нативными компиляторами. (3) Common Lisp разрабатывался в общем как "компилируемый язык" и все свободные его реализации сейчас являются компиляторами (только clisp не умеет генерировать нативный код). Реализации Scheme чаще являются байт-компиляторами или интерпретаторами, но есть и нативные компиляторы

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

человек уже наверно устал отвечать.
в предыдущем топике "Компилятор Common Lisp" давались советы:
gcl, ecl.

а вообще это не lisp-way.

lisp'омучитель из предыдущих топиков. :-)

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

2 lisp'омучитель из предыдущих топиков:
спасибо.
как освоение просторов Лиспа? мощь чувствуется?

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

Пока не очень. Но я к этому стремлюсь.
Тяжело вникать в новые понятия нового языка, по книгам на английском языке.  :-)

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

да. читабельность у лиспа оставляет желать лучшего.

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

Я бы скорее советовал cmucl или sbcl -- они, в общем, лучше компилят чем gcl и ecl, стабильнее, лучше реализуют стандарт и проч.

Компиляция -- это разумеется Lispy-way. Не надо только путать компиляцию -- т.е. порождение машинного кода -- и создание исполняемых ELF-файлов.

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

Не лисп-way - раздельная компиляция. А так - почти все common lisp-ы - компиляторы, даже Armed Bear. Самый быстрый код даёт CMU CL, следом за ним - его форк SBCL.

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

Это компиляция исходных модулей по отдельности в объектные модули с последующим связыванием (линкованием) в один бинарник (не важно, ранним или динамическим связыванием). Так работают C++, Java, OCaml, некоторые отдельные реализации Лиспа и почти все реализации Схемы.

Для Лиспа модель другая - каждый откомпилированный модуль (или даже каждое отдельное выражение) СРАЗУ добавляется к core - это называется инкрементальной компиляцией.

Есть и третий вариант - полнотекстная компиляция. Пример - MLTon...

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

>Не надо только путать компиляцию -- т.е. порождение машинного кода -- и создание исполняемых ELF-файлов

поясните разницу

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

Кого? Ты о каком формате говоришь? Текстовый формат бинарника я что-то только один могу с ходу представить - .as

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

> А в каких задчах его использут? случаем не с текстовыми?

Практически в любых. Что общего у Лиспа и разбора текста ? Есть библиотека поддерживающая регулярные выражения и генераторы разборщиков есть, если надо с текстом бороться.

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