LINUX.ORG.RU

Scheme


76

1

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

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

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

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

  • «Язык РЕФАЛ — взгляд со стороны». Бойко Банчев расскажет о сущности, истории и современном состоянии языка РЕФАЛ — детища Валентина Фёдоровича Турчина; языке незаслуженно подзабытом, но на десятилетия опередившем своё время и пустившем корни во множество современных ЯП (как, например, Mathematica).
  • «Circumflex — веб-фреймворк на Scala comme il faut». Александр Темерев даст урок использования этого «обезжиренного» и гибкого веб-фреймворка, написанного на Scala российской командой во главе с Борисом Окунским.
  • «Разработка алгоритма обнаружения движения в среде программирования Mathematica». Вадим Залива расскажет об опыте прототипирования такого алгоритма при разработке iPhone-приложения iSentry. Хотя Mathematica и не является в полном смысле этого слова функциональным языком программирования, но программирование в этой среде задействует множество не очень распространенных пока в мейнстриме, но очень важных и заслуживающих внимание средств: интерактивный интерпретатор, гомоиконность (единство кода и данных), сопоставление с образцами, wholemeal programming (оперирование целыми структурами данных, а не их частями), акцент на «чистое» программирование, dataflow programming (Manipulate) и т.п.
  • «Как написать LDAP-сервер на Erlang» и «Как написать LDAP-сервер на Си». Максим Сохацкий и Олег Смирнов обменяются любезностями со Львом Валкиным: Максим и Олег похвалят Erlang за то, что на нем можно за 20 минут написать LDAP-сервер, а Лев докажет, что дело тут вовсе не в Erlang.
  • «Продолжения в практике». Алексей Вознюк (человек, написавший на LISP самую быструю программу к конкурсу в ПФП №3) расскажет об использовании продолжений для упрятывания асинхронности кода за обыкновенным «последовательным» синтаксисом. Эта тема особенно актуальна в контексте взрывного роста Веба и сетевых сервисов, но интересна и потому, что открывает целый пласт неожиданных структур управления. Рекомендуем перед прочтением ознакомиться с недавно опубликованным в «Библиотечке ПФП» переводом статьи «Паттерны использования call-with-current-continuation».
  • «Суперкомпиляция: идеи и методы». Илья Ключников, занимающийся суперкомпиляцией в Институте прикладной математики им. М. В. Келдыша, расскажет о суперкомпиляции (кстати, изобретенной также В. Ф. Турчиным в контексте языка РЕФАЛ), построив поразительно компактный и понятный суперкомпилятор простого языка, и покажет, что она применима не только для удивительно мощной оптимизации многих классов программ, но имеет и другие неожиданные применения.

Кроме этого, журнал доступен и в печатном виде (200р, доступны и все предыдущие номера, комплекты еще дешевле, доставка куда угодно, в Москве можно самовывозом).

>>> Обсуждение свежего номера

 , , refal, , , , , ,

ott
()

Вышел GNU Guile 2.0.0

Группа GNU's Not Unix

Guile — это официальный язык расширений проекта GNU.

Данный релиз является первым стабильным релизом ветки 2.0.x и содержит множество изменений по сравнению с веткой 1.8:

  • Поддержка исполнения кода на трёх языках: Scheme, Emacs Lisp и ECMAScript.
  • Компиляция кода программы в байткод, который интерпретируется виртуальной машиной. Это позволило существенно улучшить скорость работы.
  • Поддержка метакоманд в REPL. Например, мета-команда ,compile компилирует переданное выражение, а команда ,profile профилирует исполнение переданного выражения.
  • Режим отладки в REPL. Если код вызывает ошибку, то включается режим отладки, в котором доступны метакоманды, позволяющие посмотреть стек вызовов, узнать значения переменных и т.п.
  • Реализована встроенная поддержка syntax-rules и syntax-case систем гигиенических макросов, не требующая импорта модуля (ice-9 syncase).
  • Строки Scheme могут содержать любые Unicode символы.
  • Частично поддержан стандарт R6RS. Оставшиеся несоответствия можно посмотреть в мануале.
  • Новый динамический FFI. Теперь возможно создание биндингов к библиотекам без создания кода на C.
  • Теперь используется Boehm-Demers-Weiser консервативный сборщик мусора.

Кроме того, добавлен ряд модулей:

  • (srfi srfi-45), предназначенный для реализации ленивых вычислений;
  • (system base lalr) для генерации парсеров LALR(1);
  • набор модулей (sxml ...) для работы с XML.

Сайт проекта

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

 , ,

kim-roader
()

Racket v5.1

Группа Open Source

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

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

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

 , ,

o
()

GNU guile-ncurses версия 1.2

Группа GNU's Not Unix

Майк Грэн (Mike Gran) сообщает о выходе новой версии библиотеки GNU guile-ncurses v1.2, предназначенной для создания текстовых пользовательских интерфейсов с помощью Guile - диалекта языка Scheme - с применением средств ncurses.

Основные изменения:

Компоненты библиотеки адаптированы для использования функций проверки условий модулей srfi-34/35. Добавлены функции curses-wrong-type-arg-error?, curses-bad-state-error?

Новые функции: mcprint, is-subwin?, is-pad?, is-cleared?, is-idlok?, is-idcok?, is-immedok?, is-leaveok?, is-scrollok?, getscrreg, has-mouse?, is-keypad?, is-meta?, is-nodelay?, is-immedok?, is-notimeout?, getmaxx, getmaxy, getbegx, getbegy, getparx, getpary, getcurx, getcury

Новые вспомогательные функции: wcwidth, standout, standout-on, standout-off

Три функции переименованы: wsyncdown -> syncdown, wsyncup -> syncup, wcursyncup -> cursyncup

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

 , , ,

OldFatMan
()

GnuCash 2.4.0

Группа Linux General

Вышла новая стабильная версия программы учёта финансов Gnucash предназначенной для частных лиц и малых предприятий. Gnucash является частью проекта GNU и доступна для Linux, FreeBSD, Solaris, Mac OS X и Windows.

Возможности:

  • иерархическая система счетов;
  • разбивка одной транзакции на несколько частей;
  • импорт счетов из Интернет (в формате SWIFT MT940);
  • правка поставленных отчётов;
  • стандартная двойная запись для ведения бухгалтерского учёта;
  • транзакции по расписанию;
  • учёт кредитных платежей;
  • построение отчётов и графиков;
  • поддержка бухгалтерского учёта для малых предприятий;
  • импорт файлов данных из других финансовых систем OFX, QIF;
  • следование большинству рекомендаций GNOME HIG 2.0;
  • и др.


Основные изменения (по сравнению с предыдущей стабильной версией 2.2.9):

  • переход с движка GtkHTML на WebKit;
  • поддержка многопользовательского интерфейса баз данных SQLite3, MySQL, PostgreSQL (в разработке);
  • eguile-отчёты (обработка шаблона отчёта с последующей конвертацией его в код HTML);
  • автоматическое пополнение счёта с проставленной датой;
  • исправление ряда ошибок.

Скачать

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

 , , ,

amorpher
()

Guile: Часть 3. Взаимодействие с языком C

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

Этот цикл статей рассказывает о GNU Guile — интерпретаторе языка программирования Scheme. Пришло время вспомнить о том, что Guile заявлен не только как интерактивная оболочка-интерпретатор, но и как встраиваемый язык расширений. Поэтому в данной статье мы рассмотрим, каким образом можно заставить совместно работать Guile и компилируемый язык программирования — на примере C.

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

 , ,

IBM_dW
()

Bigloo. Часть 2. Синтаксис и стандартная библиотека

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

Поскольку в основу Bigloo заложен язык программирования Scheme, в синтаксисе мы не обнаружим сколько-нибудь существенных различий. Ведь главная задача Bigloo - доводить scm-файлы до состояния объектных файлов, которые можно компоновать с другими модулями при создании программ. В этой статье мы более подробно остановимся на синтаксических особенностях, функциях и процедурах стандартной библиотеки Bigloo.

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

 ,

IBM_dW
()

Guile — универсальный инструмент программирования. Часть 1

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

GNU Guile представляет собой интерпретатор и «по совместительству» виртуальную машину языка программирования Scheme, то есть, его можно использовать и как командную оболочку в интерактивном режиме, и как встраиваемый в программы на компилируемых языках инструмент создания расширений. Lisp-синтаксис не всем нравится и не всем подходит (вплоть до полного неприятия), тем не менее — по моему мнению, Guile заслуживает внимания. В этой части я ограничился самыми простыми примерами, не углубляясь в тонкости применения языка программирования Scheme, поскольку это всего лишь обобщённый предварительный взгляд на интерпретируемую программную среду Guile.

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

 , ,

IBM_dW
()

Bigloo — компилируемая модификация языка Scheme

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

При первом взгляде на компилятор Bigloo становится очевидной одна из основных целей его применения — подготовка и генерация файлов-модулей, которые не являются законченными программами, а представляют собой элементы, используемые при сборке C, Java или .NET-приложений.

Эта статья открывает цикл, посвящённый Scheme-компилятору Bigloo. В ней приводится общий обзор компилятора Bigloo, его функциональные характеристики и особенности его применения.

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

 ,

IBM_dW
()

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
()

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
()

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
()

Создание скриптов при помощи Guile

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

Scheme – это язык программирования, а Guile – интерпретатор и библиотека для Scheme, преобразующие его во встроенный язык сценариев, что делает его идеальным средством вдохнуть новую динамичную жизнь в ваши старые статичные приложения. Познакомьтесь с кратким обзором Guile и изучите его широкие возможности для создания гибких приложений. Ключевое свойство Guile - это расширяемость. При помощи Guile вы можете обрабатывать скрипты Scheme, динамически связывать скрипты со скомпилированными приложениями на C и даже интегрировать скомпилированные функции C в скрипты Scheme. Это означает, что пользователи смогут перекраивать или изменять ваши приложения, добавляя в них свои параметры.

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

 , ,

IBM_dW
()

MIT переходит со Scheme на Python

Группа Open Source

Один из ведущих ВУЗ-ов США, Massachusetts Institute of Technology начинает использовать Python вместо Scheme. Об этом стало известно от Gerald Jay Sussman на International Lisp Conference, проводимой в MIT.

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

 , , , ,

cab
()

GNU Robots 1.2

Группа GNU's Not Unix

Состоялся релиз GNU Robots 1.2. В новой версии появился основанный на GTK+ графический интерфейс со встроенным терминалом для ввода команд интерпретатора, также добавлена новая графика.

GNU Robots — простая игровая среда, позволяющая создавать и выполнять программы управления роботом в лабиринте на основе набора встроенных базовых команд, представляющих собой примитивы для передвижения робота и изучения и взаимодействия с находящимися в лабиринте объектами. Задачей является создание эффективного алгоритма поведения, позволяющего набрать как можно большее количество очков. В качестве языка разработки используется Scheme.

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

 , , ,

Sphinx
()

Релиз PLT Scheme 4.0

Группа Open Source

12 июня вышла новая версия PLT Scheme 4.0. Из нового:

  • разнообразные улучшения синтаксиса,
  • серьезно обновлена документация,
  • поддержка R6RS и улучшена поддержка R5RS,
  • добавлен Typed Scheme,
  • JIT.

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

 , ,

cab
()