Pull to refresh

Русский язык

Reading time 1 min
Views 8.6K
Недавно читал Википедию, и волей судьбы наткнулся на удивительный язык программирования ГЛАГОЛ. Это один из аналогов языков Паскаль и Оберон.
Основное отличие состоит в том, что в ГЛАГОЛЕ используются только русские служебные слова.


Это жесть! Казалось бы, кануло в лету сладкое время юности наших родителей, когда велись разработки языков программирования на русском языке, но не тут то было. Использовав принципы Паскаля и Оберона, группа товарищей развивает этот прикольный язык, написав компилятор консольных приложений и вполне солидный набор подпрограмм, которые реализуют самую разнообразную функциональность.

Прочитать подробнее о языке можно на официальном сайте разработчиков – www.glagol.nad.ru, но чтобы простимулировать интерес, приведу пару примеров:

Известные типы данных Integer и Real – Целые и Вещественные соответственно, бывают Short и Long – Узкие и Широкие соответственно. Разработчики ГЛАГОЛА реализовали такую комбинацию – ШирВещ и УзкЦел. Как по мне – сильно.

Или вот еще:

ЗАДАЧА ПисЦел-(ц: ЦЕЛ); (* 0<=ц<100000 *)
ПЕР
н: ЦЕЛ;
цифры: РЯД 6 ИЗ ЗНАК;
УКАЗ
н:=0;
ПОВТОРЯТЬ
цифры[н]:=ВЗНАК(ц ОСТАТОК 10+ВЦЕЛ(«0»));
ц:=ц ДЕЛИТЬ 10;
УВЕЛИЧИТЬ(н)
ДО ц=0;
цифры[н]:=0X;
ПисЦепь(цифры)
КОН ПисЦел;
ЗАДАЧА ПисЦепь-(р: ЦЕПЬ);
ПЕР
н: ЦЕЛ;
УКАЗ
н:=0;
ПОКА (н < РАЗМЕР(р)) И (р[н] # 0X) ВЫП
ПисЗнак(р[н]);
УВЕЛИЧИТЬ(н)
КОН
КОН ПисЦепь;
ЗАДАЧА ЧитЦел-(ц+: ЦЕЛ);
ПЕР
зн: ЗНАК;
УКАЗ
ц:=0;
ЧитЗнак(зн);
ПОКА («0» <= зн) И (зн <= «9») ВЫП
ц:=10*ц+(ВЦЕЛ(зн)-ВЦЕЛ(«0»));
ЧитЗнак(зн)
КОН
КОН ЧитЦел;
ЗАДАЧА log2(x: ЦЕЛ): ЦЕЛ; (* x > 0 *)
ПЕР
о: ЦЕЛ;
УКАЗ
о:=0;
ПОКА x > 1 ВЫП
x:=x ДЕЛИТЬ 2;
УВЕЛИЧИТЬ(о)
КОН;
ВОЗВРАТ о
КОН log2;

Как по мне, такой язык достоен изучения. Хотя бы по вечерам. В качестве развлечения.
Tags:
Hubs:
+2
Comments 17
Comments Comments 17

Articles