Наверное, в самом начале неплохо было б написать про средства отладки, установке Erlang и так далее — так вот, исправляюсь.
Вообще, некоторая проблема с Эрлангом состоит в том, что его разработчики очень не любят писать статьи для начинающих, рисовать туториалы с красивыми скриншотами. Документации по некоторым модулям вообще минимум, по другим — в основном user reference, иногда маленький юзер гайд. Поэтому сначала кажется что разработчик вынужден жить исключительно наедине с консолью интерпретатора — однако это не так!
IDE
В качестве IDE можно использовать ErlyBird — IDE для Эрланга на платформе NetBeans, соответственно получаем от нее все соответствующие плюшки, выглядит очень красиво: Есть еще проект ErlIDE на базе Eclipse, но про него ничего сказать не могу — не пробовал. Ортодоксальные товарищи также, конечно, могут заюзать vim, emacs или Far под виндой (простенькими hrc файлами для colorer могу поделиться). erl это собственно интерпретатор Эрланга. Я, кстати, тут везде подразумеваю, что у вас установлен последний релиз R12 — там действительно есть порядочное количество новых полезных плюшек. Полезные функции интерпретатора: - скомпилировать и загрузить модуль - установить текущую директорию Запустить программу на Erlang отдельно, не из интерпретатора чуть сложнее чем в других языках — видимо, потому что большинство приложений на Erlang запускается один раз и потом работает годами.
Можно это сделать с помощью того же интерпретатора: (Модуль предварительно надо скомпилировать в байт-код, из интерпретатора или с помощью компилятора erlc).
После окончания работы функции интерпретатор останется висеть, чтобы он закрывался автоматически, можно добавить флаг "- s init stop" (тут за подсказку спасибо анонимному комментатору предыдущего поста).
Либо, для большего удобства, предусмотрен вариант запуска программы как скрипта — с помощью утилиты escript. Ей в качестве единственного аргумента передается имя скрипта, а сам он должен экспортировать функцию main(ArgList): Кроме этого есть вполне функциональный отладчик с GUI. Если мы хотим поотлаживать наш модуль foo: - Вызываем монитор эрланговских процессов - загружаем модуль в отладчик - ставим брейкпоинт на загрузку модуля Отладчик, естественно, умеет работать по сети, отслеживать сообщения, приходящие процессам, и много всего другого. Если приложение использует эрланговскую распределенную БД mnesia, то нередко нужен удобный способ заглянуть что лежит в табличках. Для этого есть table viewer, который загрузить можно функцией Dialyzer — утилита для статического анализа модулей. Иногда позволяет найти интересные ошибки без запуска программы. Запускается так: Интерфейс всех инструментов, конечно, весьма неказист, но интуитивно понятен, и их вполне хватает для полноценного процесса разработки. Интерпретатор
> c(boo.erl).
{ok}
> file:set_cwd(Dir).
> erl -noshell -run <module> <function> [Params]
-module(test).
-export([main/1]).
main(Args) ->
io:format("Hello world~n").
> escript test.erl
test.erl:4: Warning: variable 'Args' is unused
Hello world
Отладчик
- компилируем его и загружаем его с отладочной информацией 1> c(foo, [debug_info]).
{ok, foo}
2> im().
<0.181.0>
3> ii(foo).
{module, foo}
4> iaa([init]).
true
Остальное
> tv:start().
> dialyzer:gui().
Хотя с некоторых пор dialyzer идет как отдельное приложение в пакете с Erlang.

