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

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

Что это?
Обязательная регистрация
Место: Карта м. Чистые пруды / м. Лубянка / м. Китай-Город, пер. Архангельский, д.1., конференц-зал CustIS (http://www.custis.ru/) Будут кофе, печенюшки и wi-fi
Дата: 31 марта 2011 года
Доклады
18-30 Nemerle Deep Dive
Докладчик: Чистяков Владислав (VladD2 @ RSDN)
Доклад состоит из нескольких частей:
.NET → St. 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 в пару строк.
Некоторые монады реализуют такие «хотелки» 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).
Поддерживает объектно ориентированную и функциональную парадигму программирования.
Скачать можно здесь.
Офф. сайт здесь.
Страничка в википедии здесь.
Особая благодарность Владу Чистякову aka VladD2 и команде, за проделаную работу
(исправление ошибок компилятора, интеграция с Visual Studio 2008, инсталлер,
примеры создания макросов, частичная поддержка SharpDevelop).
Программирование → Задачи для курсовых
На хабре часто возникают топики, в которых студенты CS специальностей просят помочь им с выбором тем курсовых и дипломных работ. Это не удивительно, так как обычно темы, которые предлагают научные руководители интересны только им самим, и получается ситуация, когда студент выполняет работу, но не видит в ней смысл. Мне кажется, что это очень ужасно, когда человек не заинтересован в своей работе.
Было бы намного лучше, если бы студент понимал, что он делает нужную вещь, за которую много людей будут ему благодарны. Один из способов достичь этого — участие в популярных open source проектах, связанных с его специальностью. Хорошими кандидатами являются проекты по созданию компиляторов/интерпретаторов языков программирования, так как это наукоемкие проекты (алгоритмы вывода типов, PEG, монады, теория типов...) и объективно полезные проекты (если язык достаточно популярен).
Как можно уже было догадаться, я предлагаю поучаствовать в разработке языка Nemerle. Это достаточно уникальный проект, так как он стоит в одним ряду с таким языком как scala, он поддерживается людьми из России, и он еще не такой популярный, что бы избегать всеми силами ломающих изменений.
Было бы намного лучше, если бы студент понимал, что он делает нужную вещь, за которую много людей будут ему благодарны. Один из способов достичь этого — участие в популярных open source проектах, связанных с его специальностью. Хорошими кандидатами являются проекты по созданию компиляторов/интерпретаторов языков программирования, так как это наукоемкие проекты (алгоритмы вывода типов, PEG, монады, теория типов...) и объективно полезные проекты (если язык достаточно популярен).
Как можно уже было догадаться, я предлагаю поучаствовать в разработке языка Nemerle. Это достаточно уникальный проект, так как он стоит в одним ряду с таким языком как scala, он поддерживается людьми из России, и он еще не такой популярный, что бы избегать всеми силами ломающих изменений.
Я пиарюсь → Математическая поисковая система Uniquation
Mы только что открыли α-тестирование проекта Uniquation. Это математическая поисковая система, которая ищет решения среди уравнений, равенств и прочих математических объектов, размещенных в интернете. На текущем этапе развития её можно мыслить как развивающуюся CAS (wiki). Помимо этого поста про неё можно прочитать в нашей презентации.


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