Home Lisp //

HomeLisp 1.13.4

HomeLisp 1.13.4

Ровно два года назад был опубликован HomeLisp 1.11.1. Вашему вниманию предлагается новая версия HomeLisp. Она КАРДИНАЛЬНО отличается от версии 1.11:

  1. Все переменные теперь по умолчанию лексические (динамические и глобальные переменные тоже существуют, но их нужно создавать специально);
  2. Добавлен целый ряд функций из стандарта Common Lisp (Let, if, do, dolist, dotimes и др.);
  3. HomeLisp 1.13.4 поддерживает замыкания;
  4. Реализована обратная блокировка;
  5. Реализована возможность сохранения/восстановления состояния Лисп-машины в двоичный файл;
  6. Реализован простой диалоговый отладчик;
  7. Реализован интервальный таймер;
  8. Переработан инсталлятор;
  9. Исправлено множество мелких ошибок (автор надеется, что при этом внесен минимум новых);
  10. Скриптовая часть Web-компоненты переписана на JScript-е, так что для работы можно использовать любой браузер (а не только IE);
  11. Актуализирована документация (хотя и не в полном объеме)

Скачать новую версию HomeLisp можно
здесь.

Home Lisp 1.11.2

Версия 1.11.2 является промежуточной версией HomeLisp. Переменные в этой реализации остаются динамическими (лексические переменные будут реализованы в версии 1.13.1) В версию 1.11.2 внесены следующие изменения:

  • Переработана программная логика COND (отличие от Nil, а не от T, как было в предыдущей версии).
  • Реализована функция READ, читающая S-выражения из стандартного ввода при работе в IDE и консольном варианте.
  • Реализованы функции ASSOLIST и OBJLIST, выводящие на печать ассоциативный список и список объектов;
  • Реализована функция EQL (типа SUBR), сравнивающая два S-выражения на идентичность;
  • Реализована функция UNSET, удаляющая глобальные переменные;
  • Реализованы графические функции GRWSHOWALL, GRWHIDEALL, GRWDESTROYALL – показ, сокрытие и удаление всех графических окон соответственно;
  • Реализована функция DLGDELITEM, позволяющая удалять элементы списков для LIST- и COMBO-боксов;
  • Реализована функция COMINTERFACE, позволяющая получить интерфес COM-объекта;
  • Обеспечен программный способ защиты любых констант от модификации;
  • Обеспечена модификация свойств графических окон, диалогов и контролов путем модификации их списков свойств.
  • Реализовано табличное размещение графических окон.
  • Исправлена ошибка в реализации MACRO;
  • Исправлена ошибка в реализации функции TRY;
  • Функция GRWINKEY теперь возвращает не только scan-код клавиши, но и статус переключателей (Shift, Alt, Control);
  • Скриптовая часть Web-компоненты переписана с VBscript на JavaScript, что обеспечило возможность использования популярных браузеров FireFox и Opera;

Разработчик выражает благодарность Л.В. Городней и Н.В. Шилову за ряд полезных идей, нашедших реализацию в предлагаемой версии.

Разработчик напоминает:

Установку HomeLisp во всех ОС (кроме Win-98)

нужно выполнять с административными правами!

Скачать Home Lisp 1.11.2

Письмо автору

Главная

HomeLisp – простой, свободно распространяемый Лисп на платформе Windows!

Среди языков программирования, разработанных к настоящему времени, имеется один совершенно уникальный. Это язык Лисп.

Идея, лежащая в основе Лиспа, чрезвычайно красива: все конструкции языка (программы и данные) представляются с помощью единой универсальной структуры – списка. Методология программирования на Лиспе в корне отличается от методологии программирования на традиционных языках (типа Си или Паскаля).

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

Подобная методология сейчас называется функциональным программированием. Лисп – первый функциональный язык программирования и, вероятно, первый язык, который явно приветствовал использование рекурсии.

Языки, появившиеся после Лиспа, превзошли Лисп по изобразительным возможностям… но по соотношению «сила/простота» рекорд Лиспа не побит до сих пор!

Лисп – абсолютно не попсовый, элитарный язык программирования. И не удивительно, что хотя с момента его изобретения Дж. МакКарти прошло уже более 50 лет, Лисп жив по сей день! Далеко не каждому языку суждена столь долгая жизнь, – где сейчас Алгол-60 (которому пророчили большое будущее)? А по Лиспу издаются книги (к сожалению, не на русском языке…); появляются новые и новые реализации Лиспа на разных аппаратных платформах.

Одну из таких простых реализаций Лиспа и предлагает автор этих строк.

HomeLisp (домашний Лисп) – это 32-х битная реализация Лиспа в среде Windows.За основу была взята реализация Лиспа, описанная в книге С.С. Лавров, Г.С. Силагадзе «Автоматическая обработка данных. Язык Лисп и его реализация» М. 1978

HomeLisp является свободно распространяемым программым обеспечением (FreeWare). Допускается свободное копирование как программного обеспечения, так и документации. Изменение программного кода компонентов HomeLisp не допускается. Цитирование документации допускается только с указанием автора.

Авторские права на программный продукт и прилагаемую документацию принадлежат разработчику – Файфелю Борису Леонидовичу

HomeLisp включает в себя следующие независимые компоненты:

Среду разработки (IDE), содержащую ядро языка, текстовый редактор, конструктор диалогов (экранный дизайнер), построитель EXE-файлов и скромные средства отладки;

COM-библиотеку, позволяющую вызывать Лисп из любой программной среды, поддерживающей COM-автоматизацию (например, из Microsoft Excel), а также два скриптовых «движка», позволяющих писать скрипты на языке Лисп;

WEB-компоненту для работы на WEB-сервере IIS, позволяющую построить учебный класс для изучения Лиспа (при этом WEB-компонента инсталлируется только на сервере).

HomeLisp обрабатывает следующие типы данных:

целые числа практически неограниченной разрядности;
стандартные числа с плавающей точкой;
битовые шкалы;
строки.

HomeLisp поддерживает функции пользователя трех видов:

обычные функции Лиспа (вычисляющие значения аргументов);
специальные функции (не вычисляющие значения аргументов);
макросы.

К числу объектов, встроенных в ядро HomeLisp относятся:

COM-объекты, позволяющие вызывать из среды Лиспа объекты, поддерживающие COM-автоматизацию;
Файлы и BLOB-объекты (большие двоичные объекты), позволяющие обрабатывать произвольную двоичную информацию;
Графические окна , позволяющие использовать простую графику;
Диалоги, позволяющие строить программы с графическим пользовательским интерфейсом;

HomeLisp снабжен подробной документацией, содержащей не только описание всех функций,описание языка “с нуля”, а также приемов программирования на Лиспе (что может оказаться полезным для тех, кто впервые знакомится с языком). Имеется список литературы на руccком языке, включающий и ряд Интернет-ресурсов, посвященных Лиспу.

Скачать HomeLisp 1.11.1

drtoller.livejournal.com