LINUX.ORG.RU

Lisp


161

8

Всего сообщений: 73

Вышел порт языка Shen на Javascript

Группа Open Source

Выпущен порт языка программирования Shen на Javascript.

Протестировать работу Shen на JS можно тут.

Для освежения памяти:

Shen - это функциональный язык программирования, являющийся продолжением языка Qi II. Имеет опциональную статическую систему типов, основанную на секвенциальном исчислении, и общее направление на логическое программирование.

Важной целью языка является переносимость. Ядро реализовано с использованием всего 45 функций Kernel Lisp (KL), поэтому язык достаточно быстро может быть перенесён на любую платформу.

Предыдущие посты на ЛОРе по теме:

>>> Подробности

 , shen,

x4DA
()

Racket 5.2

Группа Open Source

Представлена версия 5.2 языка программирования Racket (ранее PLT Scheme).

Новое в этой версии:

  • Новая библиотека `db', предоставляющая высокоуровневый интерфейс к популярным РСУБД: MySQL, SQLite, PostgreSQL, а также другим через ODBC.
  • Новая коллекция XREPL, предоставлящая вспомогательные команды для цикла чтения-выполнения-печати (REPL) Racket. Она будет полезна людям, которые используют консольную версию Racket и альтернативные редакторы.
  • Коллекция `plot' переписана на Racket, теперь она поддерживает вывод в PDF, логарифмические оси, гистограммы и многое другое.
  • DrRacket использует традиционные сочетания клавиш: C-t создает новую вкладку, C-w закрывает вкладку, C-r выполняет определения.
  • Typed Racket:
    • Typed Racket предоставляет средства для статической отладки производительности: показывается какой код будет оптимизирован, а какой нет.
    • Более интуитвные типы в выводе REPL и сообщениях об ошибках.
    • Поддерживается определение функций с необязательными аргументами с таким же синтаксисом, как в Racket.
  • Исправлено несколько проблем с графическим интерфейсом, в том числе с Ubuntu 11.10 (GTK+3) и 64-битной Mac OS X.
  • Внуртренние определения теперь имеют семантику `let*' если не содержат обратных ссылок, это исключает потерю проиводительности при использовании внутренних определений вместо `let' и изменяет смысл программ, которые захватывают продолжения во внутренних определениях. Использование внутренних определений теперь считается предпочтительным стилем.

>>> Сайт Racket

 , , , ,

Begemoth
()

Clojure 1.3

Группа Java

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

Изменения в новой версии:

  • Монолитная система дополнений clojure-contrib.jar заменена на полностью модульную структуру, что позволяет, во-первых, не включать в готовые приложения код неиспользуемых библиотек, а во-вторых, иметь собственный цикл разработки для каждой отдельной библиотеки. При этом для обновления с Clojure 1.2 рекомендуется сначала обновить библиотеки, а затем уже обновиться до Clojure 1.3;
  • Улучшенная поддержка примитивов для арифметических расчетов;
  • Изменения в определении записей (defrecord) и типов (deftype);
  • Улучшена система оповещения об исключениях и ошибках;
  • Несколько новых функций в clojure.core, clojure.data, clojure.pprint, clojure.repl;
  • clojure.java.shell/sh теперь поддерживает в качестве источника данных объекты типов InputStream, Reader, File, byte[];
  • Поддержка Maven для компиляции и развертывания приложений;
  • Улучшения в плане производительности скомпилированных приложений;
  • Множество устраненных ошибок.

>>> Полный список изменений

 , , ,

ins3y3d
()

OpenAxiom 1.4.0

Группа Open Source

Один из форков Axiom, кроссплатформенной системы компьютерной алгебры, OpenAxiom разродился 15 июня 2011 года после почти двухлетней тишины выпуском 1.4.0.

Основные изменения, затронувшие эту версию, относятся к

  • работе компилятора:
    • поддержка неименованых функций в стиле интерпретатора
    • поддержка параметризированных макросов
    • обработка исключений
    • значительная оптимизация
  • собственно алгебраическому движку:
    • новые домены, категории и типы BooleanLogic, MatrixCategory, MappingCategory и некоторое упорядочивание в существующих
    • в домене String добавлена возможность получения строковой интерпретации DoubleFloat
  • язык Boot, на котором написан компилятор OpenAxiom был значительно улучшен, доля кодов на Lisp постепенно сокращается

>>> Исходный код

>>> Официальный сайт

 algebra, , , , , openaxiom

adriano32
()

Вышел первый набросок стандарта Scheme R7RS

Группа Open Source

Данный стандарт является относительно небольшой ревизией стандарта R5RS, добавляющей наиболее востребованные возможности языка, но стремящейся сохранить общую структуру неизменной. В духе прежних стандартов, многие ситуации оставлены на откуп авторам реализаций языка Scheme, оставляя место для экспериментов с собственными расширениями.

В соответствии с принятым ранее решением о разделении Scheme на два языка, данный драфт описывает «малый Scheme».

Полный текст нового стандарта: http://trac.sacrideo.us/wg/attachment/wiki/WikiStart/r7rs-draft-1.pdf

>>> Подробности

 , , ,

jtootf
()

Racket v5.1

Группа Open Source

Доступна для скачивания новая версия популярного пакета для разработки на scheme-подобном языке Racket.

Самое значительное изменение заключается в полностью переписанной системе GUI. Пользователи Unix/X обратят внимание на это изменение, потому что DrRacket и все программы, использующие Racket GUI, будут использовать темы окружения рабочего стола пользователя для меню, кнопок и других элементов интерфейса.

>>> Подробности

 , ,

o
()

LispWorks 6.0.1 Personal Edition

Группа Проприетарное ПО

Интегрированная среда разработки для языка программирования Common Lisp под названием LispWorks версии 6.0.1 стала доступна совершенно бесплатно без каких-либо платежей в редакции Personal Edition.

LispWorks Personal Edition предлагает следующие возможности для своих пользователей:

  • поддержка симметричной мультипроцессорности (SMP);
  • поддержка GTK+;
  • поддержка платформы Solaris для архитектур x86 и x86_64;
  • интеграция ASDF прямо в IDE;
  • профилирование многопоточных приложений;
  • изменяемые и редактируемые нативные тулбары;
  • улучшенная документация и дополнительные новые примеры;
  • множество других общих улучшений и улучшений в CAPI;
  • множество исправлений ошибок и недочётов.

Более полный перечень и описание новых возможностей в данной версии. Не все возможности среды разработки доступны для всех платформ. Ознакомиться со списком возможностей под каждую платформу можно здесь.

>>> Скачать персональную редакцию LispWorks

 , , ,

resurtm
()

Встречайте новый язык программирования — Sifflet 1.0

Группа Open Source

Первая версия визуального функционального языка программирования Sifflet отныне доступна на hackage.

Назначение этого языка — помочь студентам познать рекурсию.

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

Помимо, собственно, исполнения программ на Sifflet, начиная с этого выпуска появилась возможность экспорта самой программы на другие языки, в частности Scheme (Lisp), Python и Haskell. Помимо самой программы также предоставляется небольшая библиотека для поддержки необходимого функционального минимума на выбранной платформе.

Данная возможность позиционируется авторами как вспомогательная и в познавательных целях.

Почитать про новый язык можно на странице проекта

Учебник.

>>> Анонс выпуска

 , , sifflet,

AVL2
()

Racket 5.0

Группа Open Source

Представлен релиз языка программирования Racket. Racket - это новое название любимого многими пакета PLT Scheme.
Здесь авторы объясняют связь между Scheme и Racket

PLT Scheme is a Racket

Sure, it has parentheses, uses the keyword lambda, provides lexical scope, and emphasizes macros – but don't be fooled. PLT Scheme is no minimalist embodiment of 1930s math or 1970s technology. PLT Scheme is a cover for a gang of academic hackers who want to fuse cutting-edge programming-language research with everyday programming. They draw you in with the promise of a simple and polite little Scheme, but soon you'll find yourself using modules, contracts, keyword arguments, classes, static types, and even curly braces.

Racket is a Scheme

Racket is still a dialect of Lisp and a descendant of Scheme. The tools developed by PLT will continue to support R5RS, R6RS, the old mzscheme environment, Typed Scheme, and more. At the same time, instead of having to say “PLT's main variant of Scheme,” programmers can now simply say “Racket” to refer to the specific descendant of Scheme that powers PLT's languages and libraries.

От себя добавлю для людей, не знакомых с PLT Scheme.
Это один из самых популярных пакетов для разработки на Scheme с 15летней историей разработки
(преимущественно в академической среде), включающий в себя большое количество разнообразных модулей, напрмер:

  • удобную и простую среду разработки DrScheme (теперь DrRacket), с привычным REPL
  • фреймворк для разработки web-приложений
  • средства создания GUI и графические библиотеки, в том числе и для работы с OpenGL
  • систему репозиториев пользовательских библиотек Planet

Все это прекрасно документировано и имеет большое и дружное community

Страница загрузки

>>> Сайт Racket

 , , , ,

power
()

MarginCon

Группа Linux в России

26 июня в Омске состоится конференция по маргинальным языкам программирования MarginCon.

Приглашаются разработчики на Haskell, Erlang, Lisp/Scheme, Io, Go и прочих малораспространенных языках. Для участия необходимо зарегистрироваться.

>>> Подробности

 , , , , , ,

yoghurt
()

5-й номер журнала «Практика функционального программирования»

Группа Документация

Вышел новый, пятый номер журнала «Практика функционального программирования». В новом номере опубликованы следующие статьи:

  • Инструменты интроспекции в Erlang/OTP. Максим Трескин
  • Экономия ошибок. С. Зефиров, А. Сафронов, В. Шабанов, Е. Мельников
  • Введение в F#. Евгений Лазин, Максим Моисеев, Давид Сорокин
  • Лисп — философия разработки. Всеволод Дёмкин, Александр Манзюк
  • Оптимизирующие парсер-комбинаторы. Дмитрий Попов
  • Модель типизации Хиндли — Милнера и пример её реализации на языке Haskell. Роман Душкин

Также в этом номере опубликованы результаты конкурса, который был объявлен в 3-м номере журнала.

>>> Подробности

 , , , , , ,

ott
()

Вышел новый релиз реализации языка Common Lisp - Clozure CL 1.5

Группа Open Source

Вышел новый релиз реализации языка Common Lisp - Clozure CL 1.5. Этот релиз включает много исправлений и улучшений:

  • Изменена версия FASL файла и образа памяти по сравнению с 1.4. Для перехода на версию 1.5 необходимо пересобрать все старые FASL файлы.
  • [Mac OS X] Ядро лисп системы собрано с SDK 10.5 поэтому небходима версия Mac OS X Leopard или выше.
  • Улучшена стандартная функция CL:RANDOM. Используется MRG321k3p генератор с периодом 2^185.
  • опция PURIFY теперь поддерживается на х86 архитектурах. PURIFY'ed объекты копируются в область памяти, которая не сканируется сборщиком мусора. Pезультатом может быть увеличенная скорость сборки мусора, a также улучшено совместное использование виртуальной памяти, если одновременно запущенно несколько процессов.
  • REBUILD-CCL теперь подавляет предупреждения при измении констант.
  • Переменные ввода/вывода связанные WITH-STANDARD-IO-SYNTAX (*PRINT-BASE*, *PRINT-ARRAY*, etc.) теперь локальны для каждого треда.
  • Добавлены бивалентные векторы. Они похожи на строковые потоки, только используются векторы размером (UNSIGNED-BYTE 8).
  • Ядро системы загружает только образ памяти, имя файла которого состоит из «kernel_name» + ".image" суффикс.
  • Улучшены утилиты анализа памяти: CCL:HEAP-UTILIZATION, CCL:HEAP-IVECTOR-UTILIZATION.

Поддерживаемые платформы:

  • Mac OS X 10.5 и позже(x86, x86-64, ppc32, ppc64)
  • Linux (x86, x86-64, ppc32, ppc64)
  • FreeBSD 6.x и позже (x86, x86-64)
  • Solaris (x86, x86-64)
  • Microsoft Windows XP и позже (x86, x86-64)

>>> Подробности

 ,

CL-USER
()

Новый номер журнала «Практика функционального программирования»

Группа Документация

Вышел в свет четвертый выпуск журнала «Практика функционального программирования». В новом номере опубликованы следующие статьи:

  • Лисп — абстракции на стероидах. Виталий Маяцких.
  • Clojure, или «Вы все еще используете Java? тогда мы идем к вам». Алекс Отт.
  • Пределы выразительности свёрток. Виталий Брагилевский.
  • Сечения композиции как инструмент бесточечного стиля. Денис Москвин.
  • Мономорфизм, полиморфизм и экзистенциальные типы. Роман Душкин.

Обсуждение номера и отдельных статей

>>> Новый номер в разных форматах

 , , , , ,

ott
()

Юбилей у SBCL - 10 лет!

Группа Open Source

Замечательной реализации Common Lisp'a SBCL исполняется 10 лет.

10 лет назад, 14 декабря 1999 года, в рассылке Common Lisp реализации CMU CL, было анонсировано, что William Harold'у удалось собрать CMU CL систему, имея лишь одну из ANSI-систем для кросс-компиляции. Также было заявлено о внутренних изменениях в реализации и уход от некоторых внешних компонентов и библиотек, отсутствовавших в стандарте Common Lisp. Это позволило уменьшить ядро Common Lisp и портировать его на другие операционные системы.

Все эти наработки дали старт новой ветке развития Common Lisp реализации, названной Steel Bank Common Lisp (SBCL). В то время, как SBCL работал только на Linux (2.х.х) для х86 архитектуры, была начата работа по портированию на FreeBSD.

SBCL's 10th Anniversary Workshop

SBCL official website

>>> Подробности

 , ,

CL-USER
()

Scheme будет разделён на два языка программирования

Группа Документация

Комитет разработчиков языка программирования Scheme принял решение о разделении спецификации языка на две составляющих: описание «малого языка», ориентированного на обучение; и «большого языка», ориентированного на промышленную разработку.

Спецификация «малого Scheme» будет основываться на R5RS, и полностью соответствовать заложенным в RnRS принципам: «языки программирования должны проектироваться не путём последовательного нагромождения возможностей». В целях повторного использования существующей образовательной базы, предполагается сохранять как можно большую обратную совместимость с существующими стандартами Scheme.

Спецификация «большого Scheme» будет основываться на R6RS, и включать максимальное количество возможностей, признанных полезными в промышленной разработке: сетевое программирование, потоки, интернационализация, FFI, и т.д.

Предполагаются публичные отчёты через 6 и 12 месяцев с начала работы групп; публичный драфт стандарта через 18 месяцев; финальный драфт через 24 месяца.

Обсуждение на LtU: http://lambda-the-ultimate.org/node/3582

Описание «малого Scheme»: http://scheme-reports.org/2009/working-group-1-charter.html

Описание «большого Scheme»: http://scheme-reports.org/2009/working-group-2-charter.html

>>> Подробности

 , , , ,

jtootf
()

Создатель Qi сворачивает проект

Группа Open Source

В письме в рассылку Qilang Маркер Тарвер, создатель Qi, написал:

Mark Tarver:

Через месяц я уезжаю в Индию, на этот раз на более длительный срок; среди прочего это означает окончание моей работы над Qi. На определённом этапе просто приходится признать, что овчинка не стоит выделки; как бы там ни было, это было весело, и я ни о чём не жалею. Работа над Qi была начата 20 лет назад, когда я ещё был совсем другим человеком и работал в университете; книга о Qi II стала переломным моментом. Мне нужно двигаться дальше. Первого сентября меня здесь уже не будет

Среди прочего, Тарвер отмечает, что не желает оставаться в программировании из-за возможных политических и образовательных склок вокруг ПО и его использования; комментируя LISP (и возможное дальнейшее развитие Qi сообществом) считает, что «CL это путь в никуда», а «Clojure, Python или Ruby могут стать лучшими платформами для Qi»

Обсуждение на LtU: http://lambda-the-ultimate.org/node/3537

Статья Тарвера «О Развитии LISP»: http://www.lambdassociates.org/blog/nextlisp(1).htm

Статья Тарвера «О Будущем Open Source»: http://www.lambdassociates.org/blog/prolegomena(1).htm

>>> Подробности

 , ,

jtootf
()

LambdaBeans - Scheme IDE на платформе NetBeans

Группа Open Source

Antonio Vieiro, системный архитектор из Мадрида, создал IDE для языка Scheme на программной платформе NetBeans IDE. Поддерживается стандарт R5RS, лицензия - GPLv2. В интервью команде NetBeans Антонио ответил на некоторые интересные вопросы.

NetBeans: Антонио, поздравляем с выпуском LambdaBeans! Что особенного можно сказать об этой IDE?

Antonio: В LambdaBeans можно редактировать исходный код на Scheme (с подсветкой синтаксиса), сохранять код в системах контроля версий (CVS, SVN, Mercurial, Git, ...), запускать код, «играться» с REPL-консолью, читать спецификации R5RS и SLIB, и, наконец, просто радоваться программированию на Scheme!

NetBeans: В чем суть Вашей привязанности к Scheme?

Antonio: Я считаю, что Scheme - отличный язык программирования, потому что он одновременно и простой, и мощный. Отталкиваясь от совсем небольшого количества исходных понятий, вы обретаете хвостовую рекурсию, продолжения (continuations), замыкания (closures), и прочие прелести настоящего функционального программирования. Также Scheme - очень выразительный язык: на Scheme я пишу гораздо быстрее, чем на Java или на C. В конце концов, Scheme - это просто прикольно!

NetBeans: Но ведь уже имеется некоторое количество редакторов для Scheme. Что побудило к созданию ещё одного?

Antonio: Да, конечно же, на свете есть много редакторов кода Scheme. Но им всем не хватает той самой интегрированности, которую имеют в виду, когда говорят об «интегрированной среде разработки». LambdaBeans позволяет делать все в рамках одного программного пакета: я могу писать программу, сохранять ее в CVS, читать документацию, пользоваться автодополнением ключевых слов R5RS, «ходить» по определениям внутри файла, и так далее.

NetBeans: Но почему бы в этом случае не сделать LambdaBeans дополнением к NetBeans?

Antonio: Понимаете, программисты на Scheme не пользуются Java на каждодневной основе. Хотелось создать IDE, который для своего использования не потребует знания Java. Вообще, конечно, я планирую выпуск LambdaBeans как дополнения для NetBeans, хотя это займёт некоторое время.

Долгое время разработка на LISP и Scheme подразумевала использование REPL (примитивной консоли для вычисления выражений) или в лучшем случае Slime (расширения для Emacs). Некоторыми ортодоксальными программистами REPL до сих пор считается самодостаточным, в отличие от «навороченных» современных IDE.

Несмотря на это, появление сперва DrScheme, а затем CUSP (на базе Eclipse) и LambdaBeans несомненно знаменуют новую веху в продуктивности разработки на LISP-подобных языках.

Интервью (на английском).

>>> Сайт проекта.

 lambdabeans, , ,

Kuka
()

Lisp завтрашнего дня это Clojure

Группа Java

Daniel Weinreb, "один из пяти" авторов книги Common Lisp: The Language, высказал свой прогноз относительно развития своего любимого инструмента. Он считает, что в будущем диалект Clojure вытеснит Common Lisp

>>> Подробности

 , , ,

Karapuz
()

Mockmma поможет заменить Mathematica

Группа Open Source

Недавно стартовал новый проект, который должен добавить функциональности свободным системам компьютерной алгебры. Mockmma, предназначен для конвертации файлов .m проприетарной системы Mathematica производства Wolfram Research в .mac для свободной системы Maxima. Mockmma также предоставляет командную строку в которой можно вести вычисления с использованием подмножества синтаксиса от системы Mathematica.

В настоящее время проект находится на самой ранней стадии, хотя уже можно кое-что скачать работающее. Идёт поиск разработчиков, приглашают присоединиться: http://www.math.utexas.edu/pipermail/... Разработка идёт в основном на языке Lisp.

>>> Подробности

 , , , mockmma, ,

anonymous_incognito
()

Самый быстрый миниатюрный веб-сервер, написанный на Lisp'е

Группа Linux General

Джон Фремлин создал миниатюрный веб-сервер для динамического контента, написанный на Lisp. Результаты тестирования, проведенного автором, были представлены на встрече Tokyo LUG, в соответствии с которыми, производительность и масштабируемость данного веб-сервера оставила позади связку lighttpd+fcgi+php и даже веб-сервер Mongrel, написанный на Ruby.

Что примечательно, сам динамический контент для этого веб-сервера требуется тоже писать на Лиспе. В качестве работоспособного примера был создан персональный блог автора, код которого занимает целых 102 строчки и поддерживает обновление новых записей через AJAX. Этот блог в качестве проверки на прочность уже смог выдержать Slashdot-эффект.

Блог автора

Результаты тестирования

>>> Подробности

 , ,

shutty
()