Erlang - Енциклопедия на езиците за програмиране

Erlang (Erlang) - функционален език за програмиране, позволява да се пишат програми за различни видове разпределени системи. Тя разработва и поддържа от Ericsson. Език включва средства за създаване на паралелни процеси и тяхната комуникация чрез изпращане на асинхронни съобщения. Програмата е преведена на байт код се изпълнява от виртуална машина, която осигурява преносимост.

Езикът е динамична. Синтаксисът е наследен от Prolog - компактен, той съдържа най-малко дизайн, лесни за научаване, но не и примитивни.

Той предлага програмист - модули, полиморфни функции, модел за съвпадение на анонимни функции, условностите, конструкции, обработка на изключения, оптимизиране на опашка рекурсия. Като цяло, основната арсенал от модерни функционални езици.

Функционална парадигма (без прехвърляне) позволява Erlang избегнат такива традиционни императивни езици разпространени проблеми при прилагане като например необходимостта за синхронизиране, рискът от мъртвите зони и раса.

Основното нещо в Erlang - модела на леки процеси. Ако перифразираме лозунга за Erlang текущия ден "Всичко е обект" ( «Всичко е обект"), можем да кажем "Всичко е процес" ( «Всичко е процес").

Процесите са евтини, процеса на създаване не отнема повече ресурси, отколкото извикване на функция. Единственият начин на процесите на взаимодействие е асинхронни съобщения.

Да се ​​разработят програми за налагане на силен отпечатък две точки ^

  • език стимулира създаването на голям брой конкурентни процеси
  • процеси неподвижно изолирани и нямат общ състояние

Процесът на проектиране е повтарящ разделяне система йерархия конкурентно взаимодействие подсистеми като компоненти стават достатъчно прости за изпълнение.

Електрически кабели "Процеси публикации в" не по-малко от "Обекти + + Интерфейси Наследяването", но често води до по-компактен и ясни решения. елиминиране на конкуренцията е толкова лесно, колкото създаването. Не е необходимо да заключите достъпа до състоянието на процеса, за да се синхронизира тяхното взаимодействие много по-лесно живота. Обикновено току-що създадената процес монитор, чрез който взаимодействие с ресурс за конкурентен ресурс.

На второ място се изразява във формулата «нека се срине» ( «нека процес есен"). Вместо да прехваща грешката и да се опита да продължи работата на програмата, включваща рисковано код е предназначен за отделен процес на самоубийство, този процес се прави всичко възможно, за да може системата да го убият в случай на грешка, а процесът на родител получава само съобщенията за смъртта на нещастния поколението и прави заключения.

Като се има предвид, че обикновено 90% от тези случаи не е нищо по-полезно, отколкото да донесе съобщението за грешка и да се опита да живее с тази болка след това, че не е възможно, в отсъствието на множество проверки на кода не е твърде непривлекателна.

разпределена взаимодействие

Текущи например на Erlang емулатор нарича възел (възел). Възелът има име и "знае" за съществуването на други възлови точки на машината или в мрежата.

Създаване и взаимодействие обработва различни възли е различен от взаимодействието на процеси в рамките на един възел. За да се създаде процес на друг процес възел достатъчно да се знае името му и без основателна причина, той не може да се интересуват от физическото местоположение на процеса на взаимодействие с тях.

синтактични елементи:

Hello, World!:

Първият ред определя името на модула и посочва, че тя трябва да бъде в prog.erl файл. Вторият ред изнася 0-матрични (която няма параметри) основна функция. Третият описва самата функция, която отпечатва "Здравей, свят!".

факторен:

Той използва рекурсивната дефиниция на факториел. В Erlang още няма изградени цикъл, така че е необходимо да се симулира рекурсивни функция, която започва с високи стойности на N на цикъла, но го прави рекурсивни покана за представяне на N-1, преди изхода Н. контур (_) - клон, която определя поведението на функцията, когато му аргумент - не е цяло число, или отрицателен (необходимо за правилното определяне на функцията).

Числата на Фибоначи:

Итеративно определяне Фибоначи числа, изразени под формата на опашка рекурсия.

Числата на Фибоначи:

Използвайки формула Бине му. Числа с плаваща запетая са длъжни да бъдат изведени най-малко един знак след десетичната запетая, така че резултатът от работата е, както следва:

1.0, 1.0, 2.0, 3.0, 5.0, 8.0, 13.0, 21.0, 34.0, 55.0, 89.0, 144.0, 233.0, 377.0, 610.0, 987.0.

Квадратно уравнение: