Язык Эль-76
2013-01-05 00:00![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
В дебрях сети обнаружились симулятор и примеры языка Эль-76:
http://web.archive.org/web/ 20030710092032/www.mstu.ru/ studies/Others/War/ IlbrusLanguage-emul.rar
http://web.archive.org/web/ 20030710091904/www.mstu.ru/ studies/Others/War/ IlbrusLanguage-docs.rar
Спасибо
oboguev за наводку. Язык в целом очень похож на Алгол-68, но семантически отражает особенности архитектуры Эльбруса: полиморфные операции, аппаратная защита массивов и т.п. Переложил примеры в свою копилку. Так выглядит обработка списков:
http://web.archive.org/web/
http://web.archive.org/web/
Спасибо
![[livejournal.com profile]](https://www.dreamwidth.org/img/external/lj-userinfo.gif)
программа процедура печатьэл = проц(ф32 эл) начало ф32 к; для к от 1 до эл[0] цикл печать(эл[к]) повторить конец; процедура печатьсп = проц(ф32 список) начало если не естьпусто список то печатьэл(список[0]); печатькс(); печатьсп(список[1]) все конец; процедура добавсп = проц(ф32 список, знач) начало если не естьпусто список[1] то добавсп(список[1], знач) иначе ф32 с; список[1] := лок вект [2] ф32; с := список[1]; с[0] := знач все конец; процедура вариант1 = проц(ф32 список) начало если не естьпусто список то ф32 слово := список[0]; если слово[0] > 1 то ф32 слово2 := лок вект [слово[0] + 1] ф32, к; слово2[0] := 1; слово2[1] := слово[1]; для к от 2 до слово[0] цикл если слово[к] <> слово[1] то слово2[0] := слово2[0] + 1; слово2[слово2[0]] := слово[к] все повторить; список[0] := слово2; вариант1(список[1]) все все конец; процедура вариант2 = проц(ф32 список) начало если не естьпусто список то ф32 слово := список[0], слово2 := лок вект [слово[0]*2 + 1] ф32, к; слово2[0] := слово[0]*2; для к от 1 до слово[0] цикл слово2[к*2 - 1] := слово[к]; слово2[к*2] := 0 повторить; список[0] := слово2; вариант2(список[1]) все конец; ф32 список := лок вект [2] ф32; ф32 слово; слово := лок вект [4] ф32; слово[0] := 3; слово[1] := 3; слово[2] := 2; слово[3] := 3; добавсп(список, слово); слово := лок вект [7] ф32; слово[0] := 6; слово[1] := 7; слово[2] := 4; слово[3] := 7; слово[4] := 2; слово[5] := 3; слово[6] := 7; добавсп(список, слово); слово := лок вект [5] ф32; слово[0] := 4; слово[1] := 2; слово[2] := 2; слово[3] := 1; слово[4] := 2; добавсп(список, слово); печатьсп(список[1]); печатькс(); вариант1(список[1]); печатьсп(список[1]) конец
no subject
Date: 2013-01-05 13:59 (UTC)