OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 29 Март, 2024 01:41

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
СообщениеДобавлено: Пятница, 17 Декабрь, 2010 18:32 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Наметился интерес вырастить программиста, владеющего Эрлангом.
Есть и кандидат - один второкурсник, которому ФП "припёрло".

Вопрос: есть ли какой-то набор материалов, который мог бы сгодиться для изучения Эрланга как первого ФЯ, при этом с учётом того, что студент только осваивает программирование как таковое?

Английский... с английским у них всех не очень, как правило, но если уж будет складный и доходчивый материал, и то хорошо.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 17 Декабрь, 2010 18:38 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Другой вопрос... Байт-код Эрланга где-то специфицирован?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 17 Декабрь, 2010 18:59 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Мой личный опыт показывает что очень неплохо до ерланга с неделю или около того помучать мозг хаскелем (для этого в принципе достаточно вот этой статьи: http://rsdn.ru/summary/4216.xml). После этого ерланг идет удивительно легко (срабатывает эффект козла :-) ). Правда это не есть мой первый язык. Но первый функциональный. Ну или около того.

Также на rsdn.ru есть перевод одной вводной статьи по ерлангу. В статье есть ошибки (причем в оригинале тоже). В общем и в целом мне она не очень нравится, но если с английским не настолько хорошо, чтобы начать читать книжку, то и она сгодится: http://rsdn.ru/article/erlang/GettingSt ... Erlang.xml

Она хороша именно как вводная. Обзор. Я с неё начинал ерланг (потому как не смог сразу найти нужную литературу).

Книги (на инглише) по ерлангу могу порекомендовать и даже выслать в электронном виде.

Также показано залезть erlang@conference.jabber.ru
Также показана рускоязычная рассылка (ака мыллист). Вообще рускоязычное комьюнити ерланга довольно сильное.

Журнал Практика ФП тоже показана в принципе. Это на русском.

Спецификации на байткод современный нет. По кр. мере я не нашел. Но я вроде бы нашел проектик где он должен быть описан. Займусь после того, как покончу тем, или иным образом со статьёй.

PS. Следует очень четко понимать, что ерланг это не чистокровный ФЯ. Это скорее императивщина сильно замаскированная под функциональщину. Т.е. в отличае от того же хаскеля или окамла, тут лямбда-исчисление не лезет из всех щелей. А алгебраических типов данных почитай нет совсем. Но ерланг это прекрасный инструмент для решения конкретных задач определенного класса. Простой и удобный.

Сейчас вот проект. Сервер -- ерланг. Клиент -- один из диалектов ECMAScript'a. К ерлангу притензий в общем то нет. После ECMAScript'a хочется помыть руки. ECMAScript даже и близко не функциональный. Но и не нормальный императивный. И статическая типизация его не спасает. Помесь бульдога с носорогом. Жуткая.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 17 Декабрь, 2010 19:40 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Спасибо. Посмотрю, подумаю.

Alexey Veselovsky писал(а):
Журнал Практика ФП тоже показана в принципе. Это на русском.


Угу, в последнем номере сравнивали с Node.js :)

Цитата:
PS. Следует очень четко понимать, что ерланг это не чистокровный ФЯ. Это скорее императивщина сильно замаскированная под функциональщину. Т.е. в отличае от того же хаскеля или окамла, тут лямбда-исчисление не лезет из всех щелей. А алгебраических типов данных почитай нет совсем. Но ерланг это прекрасный инструмент для решения конкретных задач определенного класса. Простой и удобный.


Вот всё это и хорошо. А интересы "подготовить" студента не теоретические, а довольно "временно-рыночные". Теоретическими интересами я бы на другое, кроме развития на базе ББ, не стал разбрасываться :)

Цитата:
Сейчас вот проект. Сервер -- ерланг. Клиент -- один из диалектов ECMAScript'a. К ерлангу притензий в общем то нет. После ECMAScript'a хочется помыть руки. ECMAScript даже и близко не функциональный. Но и не нормальный императивный. И статическая типизация его не спасает. Помесь бульдога с носорогом. Жуткая.


Не знаю, у меня от JS ощущение "обычных Смоллтоков". Со всеми вытекающими плюсами и минусами. По сравнению с ПХП гораздо более цивилизованная вещь. Правда я, как обычно, не работаю с чужим кодом и чужими code-styles. Хотя представляю, что там народ ухитряется наворачивать, дай им такой язык, да ещё jQuery какие-нибудь.
Вообще, ощущение "ассемблера". Т.е. такой динамической объектной "низкоуровщины", на которой всё приходится имитировать руками.
К таким вещам у меня нет негатива обычно, отношение нейтральное.
Не люблю, когда в язык много "умностей" заложено, а если "тупой как пробка" - то это ещё не страшно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 17 Декабрь, 2010 19:59 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Ну а вообще их байткод что из себя, примерно, представляет? Он императивный или функциональный?

И на каких платформах их виртуальная машина бегает?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 17 Декабрь, 2010 20:07 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Илья Ермаков писал(а):
Ну а вообще их байткод что из себя, примерно, представляет? Он императивный или функциональный?

А что значит функциональный? ;-) Данные там иммутабельны в любом случае, если мне склероз не изменяет. Лямбд там нет.

Сколь я помню, байткод там должен сильно смахивать на байткод какой-то виртуальной машины пролога. Сильно упрощенный.

Илья Ермаков писал(а):
И на каких платформах их виртуальная машина бегает?

Что подразумевается под платформой? ОСь? Винда, мак, линукс, freebsd, openbsd и т.п.

Архитектура процессора? На x86, amd64, arm бегает точно.

Как следствие из всего этого, оно вполне пускается например на телефонах с андроидом (потому что это линукс + arm).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 17 Декабрь, 2010 21:14 

Зарегистрирован: Четверг, 12 Июль, 2007 23:18
Сообщения: 1982
Откуда: Узбекистан, Чирчик
http://erlanger.ru/ -- неплохой вроде ресурс по Ерлангу на русском. Есть переводы документации: http://erlanger.ru/wiki/index.php/Заглавная_страница


http://www.erlang.org/pipermail/erlang- ... 20653.html
Как я понял, спецификация байткода может меняться от платформы к платформе и от релиза к релизу. А исторически байткод ерланговой ВМ происходит от прологовской Warren Abstract Machine.
Старый документ (от 2000г): File format for Beam R5 and later


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 17 Декабрь, 2010 21:44 

Зарегистрирован: Четверг, 12 Июль, 2007 23:18
Сообщения: 1982
Откуда: Узбекистан, Чирчик
Alexey Veselovsky писал(а):
PS. Следует очень четко понимать, что ерланг это не чистокровный ФЯ. Это скорее императивщина сильно замаскированная под функциональщину. Т.е. в отличае от того же хаскеля или окамла, тут лямбда-исчисление не лезет из всех щелей. А алгебраических типов данных почитай нет совсем. Но ерланг это прекрасный инструмент для решения конкретных задач определенного класса. Простой и удобный.

Ерланг весьма близок к ООП в понимании Алана Кея, одного из родоначальников ООП:

1. Все сущности -- объекты (в ерланге роль объектов выполняют процессы).
2. Объекты общаются, посылая и принимая сообщения.
3. Объекты имеют собственную память.

4. Каждый объект является экземпляром класса, который тоже является объектом (и тоже является экземпляром, но уже метакласса).
5. Класс имеет свою память, разделяемую между экземплярами класса.

Ну, классов и их иерархий в ерланге нет, как не было и в ранних версиях смоллтока.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 17 Декабрь, 2010 22:30 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Ну, вообще то в ерланге есть такие извращения, как параметризируемые модули, ну и про behaviours, на которых построено OTP, забывать не стоит :-)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 17 Декабрь, 2010 22:38 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Geniepro писал(а):
Как я понял, спецификация байткода может меняться от платформы к платформе и от релиза к релизу.

Не правильно. Т.е. от платформы к платформе он не меняется.
От релиза к релизу.. Я не помню чтобы что-то менялось обратно не совместимо, за последние несколько лет.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 31 Декабрь, 2010 12:55 

Зарегистрирован: Четверг, 12 Июль, 2007 23:18
Сообщения: 1982
Откуда: Узбекистан, Чирчик
Презентация "Кое-что про Erlang, а также OCaml, Haskell, Perl, PHP, C и C++" Лев Валкин, 2010
Доклад об опыте использования Эрланга и Окамля в проекте, начинавшемся на перле и сях.

ЗЫ. Осторожно, на 21 стр. демотиватор "Белки-истерички" с матом (в адрес явных аннотаций типов).


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB