Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пугачук С РГР 2.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
73 Кб
Скачать
☆

Історія

У середині 1980-х в комп'ютерній лабораторії компанії Ericsson досліджували можливість застосування існуючих на той момент мов програмування для програмного забезпечення телекомунікаційних систем. Джо Армстронг (Joe Armstrong), Роберт Вірдінг (Robert Virding) і Майк Вільямс (Mike Williams) під керівництвом Бьярне Деккера (Bjarne Däcker), написавши прототипи програм на різних мовах, прийшли до висновку, що жоден з цих мов не мав повного набору можливостей, необхідних в області телекомунікаційних систем. В результаті був створений новий мову програмування - Erlang.

Вплив на Erlang надали ML, Міранда, Ада, Модула-2, CHILL, Пролог. Крім того, на спосіб оновлення програмного забезпечення вплинув Smalltalk і використані Ericsson пропрієтарні мови EriPascal і PLEX.

У грудні 1995 проект AXE-N в Ellemtel зі створення нового маршрутизатора (як обладнання, так і системного програмного забезпечення на C ++) зазнав невдачі. В результаті реорганізації проекту вдалося, використавши розроблене обладнання та мову програмування Erlang, почати роботи над ATM-маршрутизаторами серії AXD. Для робіт по Erlang було створено виробничий підрозділ під назвою OTP (Open Telecom Platform) .

В 2006 році спільними зусиллями команди OTP з Ericsson і команди HiPE була випущена перша версія Erlang з підтримкою SMP. Незабаром після цього вийшла перша майже за десятиліття велика монографія по Erlang: «Programming Erlang» Джо Армстронга, після чого багато розробників «відкрили» для себе Erlang / OTP, і мова стала набирати популярність .

Термінальні символи

Термінальні символи та їх класи наведені в табл. 1.

Таблиця 1.Термінальні символи

Класи лексем

Термінальні символи

кількість

Операції арифметичні

‘+’, ‘-‘, ‘*’ ,‘/’, ‘div’, ‘rem’

6

Операції відношення

‘==’, ‘/=’, ‘=<’, ‘>=’, ‘=/=’, ‘=:=’, ‘> ‘, ’<’

8

Операції логічні

‘not’,’end’,’andalso’,’or’,’orelse’, ‘xor’

6

Роздільники списків та операторів

‘|’, ‘,’, ‘.’, ‘;’

4

Зарезервовані слова та символи, з яких складаються оператори

‘=’, ‘->’, ‘<-’, ‘=>’, ‘||’

‘after’, ‘ band’, ‘begin’, ‘bnot’, ‘bor’, ‘bsl’, ‘bsr’, ‘bxor’, ‘case’, ‘catch’, ‘cond’, ‘if’, ‘let’, ‘of’, ‘query’, ‘receive’, ‘rem’, ‘try’,‘when’ , ‘ok’

25

Зарезервовані слова та символи для опису даних, процедур

‘{’, ‘}’, ‘[’, ‘]’, ‘(’, ‘)’, ‘#’, ‘ ” ’, ‘ _ ’, ’<<’ , ’>>’ , ‘fun’

12

Правила побудови констант та ідентифікаторів

Ідентифікатор(змінна) : [A-Z _][A-Z a-z 0-9 @ _]*

Атом: ([a-z][ A-Z a-z 0-9 @ _]* | ’[A-Z a-z 0-9 @ _]+’)

Числова константа(Ціле число): [1-9][0-9]*

Числова константа(Дробове число): [0-9]+.[0-9]+

Числова константа(з плаваючою комою): [1-9][0-9]*.[0-9]+e-[1-9][0-9]*

Строкова константа: “[^“]+”