войти зарегистрироваться

ScalaМакросы в Scala, Евгений Бурмако. Скринкаст, слайды и фото со scalaby#6


На 6-ой встрече коммьюнити #scalaby выступал Евгений Бурмако — докторант EPFL, и член команды Мартина Одерски, занимающейся разработкой Scala. Темой презенатции был «Проект Кеплер» — пропозал по добавлению макросов в Scala, над которым Евгений работает в течение последнего месяца.

.NETMoscow ALT.NET: 3ья встреча. Язык Nemerle


Что это?
Обязательная регистрация
Место: Карта м. Чистые пруды / м. Лубянка / м. Китай-Город, пер. Архангельский, д.1., конференц-зал CustIS (http://www.custis.ru/) Будут кофе, печенюшки и wi-fi
Дата: 31 марта 2011 года

Доклады


18-30 Nemerle Deep Dive


Докладчик: Чистяков Владислав (VladD2 @ RSDN)
Доклад состоит из нескольких частей:

.NETSt. Petersburg Alt.Net: 26я Встреча


Обязательная регистрация

Место: Карта м. Петроградская, ул. Рентгена д.5, офис компании Exigen Services (http://www.exigenservices.ru/)

Дата: 24 февраля 2011 года, 19.00–21.00

Язык программирования Nemerle


Докладчик: Денис Рысцов

Доклад о том, что такого особенного есть в языке Nemerle и как его можно использовать для борьбы с акцидентальной сложностью. Сам по себе язык интересный и стоит того, чтобы про него знать хотя бы потому, что начиная с момента его создания 2006 про него говорят, что это следующая версия C#, притом это высказывание остается верным с выходом каждой новой версии C# (включая C#5 CTP) несмотря на то, что концептуально язык Nemerle не менялся с создания.

В докладе: я научу аудиторию читать код на Nemerle и покажу некоторые его особенности из-за которых его можно считать улучшенной версией C#; расскажу, что F# и Nemerle — сводные братья; затрону жемчужину языка — макросы, из-за которых Nemerle может заимствовать особенности из других языков (например, я реализовал поддержку Active Patterns из F# в Nemerle в виде макроса) и создавать библиотеки невозможные в других языках; в заключении расскажу о применении Nemerle в своем проекте uniquation.ru/

Если вы хотите выступить с докладом, напишите у нас на стене: http://spbalt.net/home/wall

Википедия«Лишние» языки программирования удаляют из Википедии

В Википедии развернулось настоящее сражение между группой пользователей, которые пытаются удалить «лишние» языки программирования, и теми, кто возвращает их обратно. За последние сутки уже удалены статьи о Nemerle и Alice ML, а также помещены в список для удаления статьи о Factor, Joy, Ioke, Pure и др. Всех сочувствующих просят зайти на Википедию и указать свидетельства значимости этих тем, чтобы их сохранить.

ПрограммированиеАсинхронное программирование и Computation Expressions

В предыдущих заметках (часть I, часть II) об async/await в C# 5 я написал, что подобный подход реализован в таких языках, как Haskell, F# и Nemerle, но, в отличие от C#, эти языки поддерживают концепцию более высокого уровня, которая позволяет реализовать асинхронные вычисления в стиле async/await в виде библиотеки, а не на уровне языка. Забавно, что в Nemerle сама эта концепция реализована в виде библиотеки. Имя этой концепции — монада. Помимо асинхронных вычислений монады позволяют реализовать другие вкусности, такие как list comprehension, continuation, превращение грязных функций в чистый блок, через который неявно протаскивается состояние, и множество других.

Некоторые монады реализуют такие «хотелки» C# программистов, как yield коллекции или yield foreach и yield из лямбда выражения.

Цель этой заметки — введение в асинхронное программирование и computation expressions в Nemerle, но она так же может быть полезна тем, кто изучает F#, так так реализация асинхронного программирования в Nemerle была сделана с оглядкой на него в F#. С другой стороны, кому-нибудь может быть интересно, как некоторые задачи, которые являются проблемой в других языках (После всех асинхронных вызовов), решаются с помощью computation expressions в пару строк.

ПрограммированиеРазбор исходного кода языков программирования и языков разметки

..it is true that asking regexes to parse arbitrary HTML is like asking Paris Hilton to write an operating system..

Последние версии языка Nemerle включают в состав библиотеку для разбора языков, грамматика которых принадлежит классу PEG.

Что такое PEG?


В отличии от других инструментов для создания парсеров, PEG описывает не грамматику, а стратегию её разбора, но фактически описание стратегии разора является описанием грамматики. Для парсера описанного с помощью PEG существует алгоритм (packrat), разбирающий любой текст, удовлетворяющий грамматике из этого класса, за линейное время от длинны текста.

Класс языков, которые можно разобрать с помощью парсеров описанных подобным образом, достаточно широк, чтобы покрыть популярные языки программирования (например, C#) и языки разметки. Очевидно, что он покрывает всю функциональность регулярных выражений.

Персональные блоги Опубликована beta Nemerle 1.0

Nemerle — гибридный язык высокого уровня со статической типизацией для платформы .NET.
Поддерживает объектно ориентированную и функциональную парадигму программирования.
Скачать можно здесь.
Офф. сайт здесь.
Страничка в википедии здесь.
Особая благодарность Владу Чистякову aka VladD2 и команде, за проделаную работу
(исправление ошибок компилятора, интеграция с Visual Studio 2008, инсталлер,
примеры создания макросов, частичная поддержка SharpDevelop).

ПрограммированиеЗадачи для курсовых

На хабре часто возникают топики, в которых студенты CS специальностей просят помочь им с выбором тем курсовых и дипломных работ. Это не удивительно, так как обычно темы, которые предлагают научные руководители интересны только им самим, и получается ситуация, когда студент выполняет работу, но не видит в ней смысл. Мне кажется, что это очень ужасно, когда человек не заинтересован в своей работе.

Было бы намного лучше, если бы студент понимал, что он делает нужную вещь, за которую много людей будут ему благодарны. Один из способов достичь этого — участие в популярных open source проектах, связанных с его специальностью. Хорошими кандидатами являются проекты по созданию компиляторов/интерпретаторов языков программирования, так как это наукоемкие проекты (алгоритмы вывода типов, PEG, монады, теория типов...) и объективно полезные проекты (если язык достаточно популярен).

Как можно уже было догадаться, я предлагаю поучаствовать в разработке языка Nemerle. Это достаточно уникальный проект, так как он стоит в одним ряду с таким языком как scala, он поддерживается людьми из России, и он еще не такой популярный, что бы избегать всеми силами ломающих изменений.

Я пиарюсь Математическая поисковая система Uniquation

Mы только что открыли α-тестирование проекта Uniquation. Это математическая поисковая система, которая ищет решения среди уравнений, равенств и прочих математических объектов, размещенных в интернете. На текущем этапе развития её можно мыслить как развивающуюся CAS (wiki). Помимо этого поста про неё можно прочитать в нашей презентации.

image

ПрограммированиеЯзык Nemerle

Влад Чистяков, один из активных разработчиков языка Nemerle, начал цикл статей о нем. В отличии от существующих статей, которые ориентированы на опытных программистов, этот цикл подходит как для начинающих программистов, так и для опытных, но не знакомых с платформой .NET.

Введение от автора:

На данную работу меня вдохновила книга Кернигана и Ричи – «Язык С». Много лет назад я учился программировать по этой книге. Мне очень понравилась концепция изложения использованная в этой книге. В этой книге, вместо того чтобы взять одну тему и разобрать ее по косточкам, попутно заостряя внимание на мелких деталях, давался минимум, необходимый человеку, чтобы начать программировать на «C», а затем приоткрывался аспект за аспектом. Причем изложение давалось не на абстрактных примерах, которыми так увлекаются проповедники функционального программирования, а на примерах простых, но все же из этой жизни. Понимая, что прыгнуть выше Кернигана и Ричи очень тяжело, я решил не соревноваться с ними в креативности, а просто повторить их методологию, но с расчетом на Nemerle.

Язык Nemerle