Home Lisp //

HomeLisp 1.13.65

В новую версию ядра внесен ряд изменений:

- добавлена функция backtrace. Эта функция позволяет включать (backtrace ‘on) или выключать (backtrace ‘off) протокол обратной трассировки при возникновении ошибки. По замыслу автора – это полезная возможность для отладки.

- добавлены функции создания и обработки массивов (контейнеров с фиксированным временем доступа к любому элементу).

- исправлен ряд ошибок.

К сожалению, автор еще не переработал документацию. Это обязательно будет сделано в будущем.

Скачать полную версию HomeLisp 1.13.65

Скачать портабельную версию HomeLisp 1.13.65

Для использования портабельной версии права администратора не требуются. Просто скачайте архив в какую-либо директорию и распакуйте.

Tags: ,

HomeLisp Portable

Портабельная версия HomeLisp

Почти все вопросы, задаваемые автору за все время жизни проекта сводились к проблеме инсталляции. Конкретно – к регистрации компонентов. Предлагаемая вашему вниманию портабельная версия содержит ядро 1.13.53 и не требует для установки прав администратора. Просто скачайте zip-архив и распакуйте его в любую папку. Версия не содержит web-компоненты, а также не позволяет использовать HomeLisp как COM-сервер (для этого нужно устанавливать полную версию).

Скачать портабельную версию

Tags: ,

HomeLisp 1.13.53

В новое ядро HomeLisp внесены следующие важные изменения:


1. Поддержка рациональных чисел.

2. Поддержка комплексных чисел

3. Многозначные функции

4. Итераторы

5. Структуры

6. Интерфейс с WinAPI

Скачать полную инсталляцию новой версии

Те пользователи, у которых уже установлена более ранняя версия могут не скачивать полную инсталляцию, а скачать только измененные файлы. После скачивания архива, его следует распаковать и заменить соответствующие файлы новыми. Следует обратить внимание на то, что новая версия библиотеки называется lib-k.lsp. При запуске среды разработки следует войти в режим конфигурации и изменить имя библиотеки.

Скачать только измененные файлы

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