Что такое 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) "перетряхнуть" документацию не удалось. Поэтому разработчик
еще раз извиняется и обещает:
В обозримом будущем привести документацию в полное соответствие
с описываемой программой;
Без очень веских оснований не "вестись" на пожелания изменить
интерфейс программы (и, в частности, внешний вид основных окон).
|