среда, 2 апреля 2008 г.

Первый взгляд на picolisp

Итак, начнем.
Идем на www.software-lab.de/down.html. Свежая версия вышла совсем недавно и весит меньше 400кб. Разархивируем прямо в домашний каталог, компилируем (поначалу не мог понять, почему make у меня не работает, пока не допилю вручную Makefile). Потом сообразил, что надо использовать gmake, и все прекрасно собралось.
Поскольку в цель all входит что-то там под Х, а у меня сервер FreeBSD без графики, я собирал так:

$ tar xzf picolisp.tgz
$ cd picoLisp-2.3.2/src
$ gmake picolisp tools gate


Что же особенного в этом лиспе:
как предупреждает сам автор - Pico Lisp это не Common Lisp. У него принципиально нет компилятора, максимально простая виртуальная машина и всего три встроенных типа данных: целые числа (неограниченной длины), символы и списки. Но примитивность только кажущаяся. Встроенной возможностью являются persistent objects (сохраняемые объекты), довольно простая и понятная БД. Итак, перечислю возможности, описанные автором в README (там где самому не очень понятно, либо наоборот - и так понятно, переводить не стал):
   БД
      Индексы
      Вложенные транзакции
      Object local indexes (пока еще не въехал, что это)
      Классы Entity/Relation 
      Запросы Pilog (встроенный Пролог)
      Многопользовательская синхронизация
      Сборка мусора в БД
      Журналирование и репликация
   Пользовательский интерфейс
      Browser GUI
      (X)HTML/CSS
      XMLHttpRequest/JavaScript
   Сервер приложений
      Управление процессами
      Process family communication
      XML I/O
      Import/export
      Управление пользователями/ролями
      Интернационализация
      Безопасность
      Object linkage
      Postscript/Printing


Очевидное неудобство: необходимость иметь выделенный сервер, поскольку Pico Lisp имеет встроенный веб-сервер. Можно конечно запускать интерпретатор как обычный CGI-но тогда многие его прелести теряются.

Комментариев нет: