Введение

Что такое HomeLisp?

HomeLisp - простой интерпретатор стандартного Лиспа, сделанный по лекалам, описанным в великолепной книге С.C. Лаврова и Г.С. Силагадзе [1].


Пакет HomeLisp может использоваться на правах FREEWARE.

Разработчик будет только рад, если кто-либо применит HomeLisp для обучения или других целей (включая коммерческие, но не нарушающие Конституцию Российской Федерации)! Разработчику можно написать по адресу: catstail@narod.ru; он с благодарностью воспримет любую конструктивную критику в адрес представляемой программы. Однако, следует предупредить, что программа распространяется "как есть" , и разработчик не несет ответственности за последствия использования HomeLisp.

Авторские права на программный продукт и документацию принадлежат разработчику Файфелю Борису Леонидовичу. Внесение любых изменений в программный код (за исключением asp-скриптов) не допускается. Тиражирование и цитирование документации разрешается только с указанием автора.




Происхождение названия

HomeLisp дословно означает "домашний Лисп". Прилагательное "домашний" в русском языке имеет по крайней мере два смысловых значения: во-первых, "домашний" означает "сделанный в домашних, а не в промышленных условиях"; во-вторых, "домашний" означет "упрощенный". Оба этих значения вполне применимы к HomeLisp. Разработчик надеется, что слово "домашний" будет вызывать у пользователей только позитивные ассоциации (вспомните домашние пельмени, грибки, огурчики...)

Что может HomeLisp?

В процессе поисков материалов по Лиспу в Internet-е, автор обратил внимание, что в России Лиспу учат по системам CommonLisp, XLisp, MuLisp и т.д. Отечественные разработки (хотя они и есть!) для обучения практически не применяются. Следует отметить, что большинство расхожих (некоммерческих) версий Лиспа оформлены как консольные приложения с соответствующим интерфейсом. Такое минималистское решение вызывает у изучающих Лисп ложное ощущение, что Лисп может решать только сугубо абстрактные задачи и совершенно непригоден для задач, встречающихся в повседневной жизни.

Именно для таких скептиков автор сообщает, что на HomeLisp можно без большого труда делать почти всё, что требуется от системы программирования в среде Windows - имеются средства графики, работы с файлами (включая двоичный доступ), обработки строк, создание COM-объектов.

Следует особо отметить, что HomeLisp располагает встроенными средствами для создания диалоговых программ, причем в современном духе экранного дизайна. Впрочем, как это обычно и практикуется, диалоговые программы можно создавать и без применения экранного дизайнера, а только путем вызова соответствующих функций.

HomeLisp позволяет строить автономные исполняемые файлы (т.н. псевдо-exe-файлы). Такой файл содержит код ядра лиспа, все необходимые функции и может запускаться на любой машине без установки на ней HomeLisp, достаточно только наличие виртуальной машины VB6 (MSVBVM60.DLL) и некоторых стандартных Микрософтовских компонент.

HomeLisp включает в себя три программных компонента, которые могут использоваться совершенно независимо друг от друга:

Интегрированная среда разработки (IDE) HomeLispIde.Exe . В этой среде поддерживаются абсолютно все декларированные выше возможности HomeLisp.

ActiveX-Exe библиотека HomeLispLib.Exe, которая позволяет использовать язык Лисп в любой среде программирования, поддерживающей COM. В частности, можно писать скрипты на языке Лисп!

Web-компонента HomeLispWeb.Exe, предназначенная для работы в среде WEB-сервера IIS. Web-компонента поддерживает все основные языковые возможности Лиспа, но не поддерживает системные функции, работу с COM-объектами, графику, файлы, BLOBы и другие не вполне уместные в среде WEB-сервера возможности. Основное назначение Web-компоненты - создание многопользовательской системы для обучения языку.

Что не принадлежит к числу сильных сторон HomeLisp?

Автор честно предупреждает, что HomeLisp не отличается высокой производительностью. На домашнем компьютере автора (1.7Ггц) число 100! (произведение всех чисел от 1 до 100 со всеми значащими цифрами) считается за 0.2 сек. На рабочем компьютере (2Duo 2.4Ггц) время вычислений составляет 0.06 сек. Это скромно. Возможно, в следующих версиях производительность удастся повысить. А пока автор может сказать в свое оправдание лишь то, что для учебных целей (а также для работы со скриптами) производительности HomeLisp вполне достаточно. Кроме того, не очень высокая производительность должна стимулировать мысль программиста в направлении совершенствования алгоритмов... (Шутка, но в каждой шутке есть доля шутки).

Что двигало разработчиком?

  Во-первых - самоутверждение.

 Во-вторых - интерес к языку (в одной статье, посвященной Лиспу, написано примерно следующее: "...даже если вы и не станете применять Лисп, изучив этот язык, вы будете смотреть на программирование другими глазами..." Автор настоящего руководства полностью разделяет эту точку зрения).

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

Пусть линуксоиды не думают, что бесплатное ПО бывает только в Linux!

Извинения перед читателями и пользователями

Разработчик приносит пользователям и читателям извинения за некоторую несвязность изложения материала в документации. Документация писалась достаточно долгое время; в процессе написания менялись взгляды автора, что, вероятно, не лучшим образом отразилось на содержании.

При разработке 13-й редакции ядра разработчик поддался на уговоры одного из пользователей пакета и переделал панель инструментов и главное меню IDE, не подумав о том, что это "незначительное изменение" потребует изменения многих рисунков в документации. К намеченной для публикации дате (09.02.2012) "перетряхнуть" документацию не удалось. Поэтому разработчик еще раз извиняется и обещает:

В обозримом будущем привести документацию в полное соответствие с описываемой программой;

Без очень веских оснований не "вестись" на пожелания изменить интерфейс программы (и, в частности, внешний вид основных окон).
Сайт создан в системе uCoz