Lisp2D
Объектно-ориентированный диалект языка Lisp со встроенным параллелизмом вычислений.
Написан для Linux.


Учебный курс

Справочник

Калькулятор

Практическое применение многопроцессорных систем

Download
Интерпретатор x86_64 +
калькулятор + diff.prolog
v2.9 :

   TAR.GZ
Интерпретатор i586 +
калькулятор + diff.prolog
v2.9 :

   TAR.GZ
C++ исходники +
калькулятор + diff.prolog
v2.9 :

   TAR.GZ
Статьи
"Параллельное программирование в функциональном стиле"

Ian Foster "Designing and Building Parallel Programs"
Ссылки
NIXP.RU: новости UNIX, GNU/Linux, Open Source
Feed-back
Обратная связь
1.8.17 Работа с потоками ввода/вывода переписана чуть ближе к Linux (права файлов, безымянные файлы). Версия 2.9
2.5.17 Убрана автоматическая история вычислений. Можно работать с историей с помощью функций log и log-list. Версия 2.8
11.12.16 Переименована функция replace на nsubstitute, replace-if на nsubstitute-if. Добавлена функция nsubst. Версия 2.7.4
23.05.16 Добавлена функция socket-select. Версия 2.7.3
27.04.16 Метод (char code) переименован на (char number). Версия 2.7.2
12.11.15 Связь переменных можно сделать константной. Ключевой символ &const. Уволены символы lambdaf, macrof. Уволены методы defmethodf, defmacrof. Версия 2.7.1
02.11.15 Сети Socket. Переименование типа bytevectorbyte-vector. Версия 2.7
16.11.14 В оконном приложении функция pending, возвращающее количество накопившихся событий. Функция map-resize. Событие configure-notify. Версия 2.6.7
10.11.14 В оконном приложении событие window-close. Версия 2.6.6
3.11.14 В оконном приложении уволены функции keyb-event, listen, read-char, nil::window. Чтение клавиатуры производится с помощью событий. Версия 2.6.5
20.10.14 В оконном приложении уволена функция read-keyb, button-event. Для работы с событиями предоставлены функции wait-event, check-event, make-event. Версия 2.6.4
07.10.14 Текст программы, строки, буквы, символы, окна поддерживают универсальную кодировку UTF-8. Версия 2.6
03.08.14 Методы getstatic, setstatic уволены. Остался defstatic. Бинарному дереву добавлена функция erase. Версия 2.5.1
13.07.14 Улучшена защита элементов данных объекта. Функция private. Добавлен новый класс объектов: сбалансированное бинарное дерево btree. Версия 2.5
27.03.14 Введено понятие констант для удобства программирования. Функции: const, unconst, constp, defmethodf, defmacrof. Символ lambdaf. Версия 2.4
17.03.14 Введён новый тип bytevector для экономии памяти. Версия 2.3
27.06.13 Добавлены функции move, swap. Логические функции используют трёхзначную логику: false ← nil → true. Версия 2.2.3
7.10.12 Перенос исходников программы на стандарт C++ (2011). Версия 2.2
26.02.12 Математическая функция sqrt имеет опцию точность. Функция класса lock: free переименована → unlock. Функция класса number: lg уволена. Версия 2.1.9
20.07.11 Ключевое слово &env удалено. Появились функции environment, environment-external. Версия 2.1.4
30.03.11 Переменная arg связывается со списком ("filename.lisp2d" [{"argument"}]). Работа с окнами стало чуть более стабильной. Комплексные числа. Версия 2.1
12.10.10 Запятая со вставкой ,@ это атомный тип, а не функция. Версия 2.0.4
12.09.10 Запятая , это атомный тип, а не функция. Версия 2.0.3
22.08.10 Обратная квота ` это атомный тип, а не функция. Версия 2.0.2
11.07.10 Квота ' это атомный тип, а не функция. Версия 2.0.1
26.06.10 Ошибки интерпретатора не выводятся на экран, а генерируют исключение. Исключения вызываются функцией throw, вылавливаются с помощью try. Версия 2.0.0
25.03.10 Для компиляции добавлена команда: ./configure. Выложено две версии: для x86-64 и i586. Версия 1.6.15
5.01.10 Чуть-чуть подправлена работа функции fork. Версия 1.6.11
23.11.09 Улучшена функция system для удобства использования. Версия 1.6.10
19.11.09 Аргументы функций имеют динамическую область действия. Только внутри тела функции. Версия 1.6.9
1.09.09 Функцию type-of заменяет функция class-of. Версия 1.6.7
1.07.09 Изменилось возвращаемое значение функции boundp. Переименование функции: defstatic → setstatic. Версия 1.6.5
1.03.09 Новый тип окружение (environment). Изменился синтаксис функций eval, apply, funcall, setq. Версия 1.6
1.11.08 Изменился синтаксис функций map, mapc, defvar. Изменилось возвращаемое значение функций for. Новый тип signal. Версия 1.5
1.10.08 Изменилась реализация и синтаксис для работы с замками. Изменилось представление окружения (env). Экономия памяти. Переименованы функции: princ → write, print → writeln, prin1 → princ. Версия 1.4.4
1.9.08 Изменилась реализация окон. Экономия памяти. Синтаксис функций apply и funcall изменился. Добавилась функция map. Версия 1.4.3
1.8.08 Добавлены функции для калькулятора: gcd, lcm, degrees, radians, combin, combina, multinomial. Версия 1.4.2
30.6.08 Убраны функции для работы со списками: elt, setelt, push, pop, part, resize и -. Улучшена защита работы со списками с циклом. Изменился синтаксис функций lock и trylock. Замки работают надёжно. Версия 1.4.1
1.6.08 Добавился тип для работы с каталогами (dir). Версия 1.4
1.5.08 Добавился тип время (time). Версия 1.3
31.3.08 Убраны функции make-… → newobject. Переименована функция nconc → +=. Версия 1.2.9
3.3.08 Изменилось имя функции неравенства /=<>. Версия 1.2.8
19.2.08 Добавлена функция setf. Версия 1.2.6
10.12.07 Минимальная нагрузка на процессор при работе с окнами. Уменьшено количество потребляемой памяти. Версия 1.2.3
5.11.07 Минимальная нагрузка на процессор при работе в консоли. Версия 1.2.1
21.10.07 Переселение на новый адрес: lisp2d.net
19.10.07 Улучшение работы ядра. Двукратное повышение производительности. Версия 1.2
14.10.07 Синтаксис функций lock и trylock изменился. Версия 1.1.40
28.9.07 Синтаксис функции make-vector изменился. Изменилось определение функции part и /=. Версия 1.1.33
21.9.07 Синтаксис функции acons изменился. Версия 1.1.30
10.9.07 Синтаксис функции random слегка подправлен. Версия 1.1.24
2.7.07 Синтаксис функций princ, print, prin1 изменился. Версия 1.1.15
13.1.07 Изменилось название и смысл массивов, теперь это вектор. Версия 1.1.0
6.1.07 Изменились названия стандартных потоков. *in*, *out*, *err*, *syserr* → cin, cout, cerr, csyserr Версия 1.0.7
23.11.06 Изменился принцип и синтаксис языка программирования. Теперь это объектно-ориентированный язык со встроенным параллелизмом. Версия 1.0.0
10.9.06 Выложена исходная программа на C++. Версия 0.8.9
27.7.06 Оконное приложение калькулятор. Синтаксический анализатор и выполнение математических действий. Версия 0.8.4
13.6.06 Первая версия для работы с окном (только прорисовка изображения). Версия 0.8
28.5.06 Заголовочный файл init.lisp2d занесён в ядро. Версия, использующая POSIX threads(MT) переписана. Версия 0.7.8
14.5.06 Пространство имён. Версия 0.7.7
19.3.06 Изменились названия и смысл ключевых слов: TTRUE , NIL(в логическом смысле) → FALSE , неопределённость UINIL. Версия 0.7
12.3.06 Работа с классами, объектами занесены в ядро. Версия 0.6.18
15.1.06 Полная генуборка. Большинство функций перенесены в ядро. Удалены функции не имеющие функциональный стиль. Скорость выше на порядок. Версия 0.6.5
1.12.05 Подарок математикам: дроби. Версия 0.6
3.6.05 Наконец-то! В связи с тем что отладка любых программ требует очень много времени, появился новый способ отлаживания (debuging). Обязательно прочитайте "Поход в прошлое". А также скачайте свежую версию 0.5
14.9.04 Только для Linux! Появился модуль, использующий РЕАЛЬНУЮ МНОГОЗАДАЧНОСТЬ на нитях стандарта POSIX!
29.5.04 Можно попробовать версию 0.4, в которой произведена работа над ошибками, связанными с реальной многозадачностью.
5.1.04 Текущая стабильная версия 0.3
6.12.03 Введён интерпретатор Пролога с Лисповским синтаксисом.
25.11.03 Добавлена возможность работы с потоками ввода/вывода.
19.11.03 Выложена стабильная версия 0.2 со сборщиком мусора.
5.11.03 Выложена версия 0.1beta
30.10.03 Добро пожаловать на форум!
26.10.03 Добавлен необходимый инструмент для ООП.
20.09.03 Выпущена первая версия интерпретатора!

P.S. Программирование это как встреча красивой девушки:
  всю жизнь работаешь и ищешь ошибку.