Как стать автором
Обновить
2338.75
МТС
Про жизнь и развитие в IT

Код без if и while: пять языков программирования не на английском

Время на прочтение4 мин
Количество просмотров21K

Привет, Хабр! Меня зовут Юра, я работаю тимлидом проекта Waterbase в KION, а в свободное время люблю читать, что нового происходит в мире ИТ и какие подходы к программированию есть в других странах. Сегодня хочу поговорить о ЯП с синтаксисом не на английском — здесь нет команд вроде if, print и while, к которым мы все так привыкли. Авторы стремились либо упростить вход в ИТ для носителей своего языка, либо переосмыслить само представление о ЯП. Ниже — пять таких проектов: LSE, VisuAlg, Aheui, Qalb и Kalaam. Погнали!

LSE (Langage Symbolique d’Enseignement): французский привет из прошлого

Магнитные картриджи с ПО для LSE, (источник)
Магнитные картриджи с ПО для LSE, (источник)

В конце 1970-х, когда компьютеры только начинали появляться в школах, инженеры из Supélec разработали LSE — «Символический язык обучения». Его создали для того, чтобы языковой барьер не мешал начинающим программистам из Франции осваивать алгоритмы и создавать приложения. Структурно язык напоминал BASIC, но его синтаксис был полностью на французском: SI вместо IF, ALORSTHEN, SINONELSE.

Команды, такие как AFFICHER (показать) и LIRE (читать), делали язык понятным для франкоязычных школьников. Благодаря строгой логике и относительной простоте LSE получил распространение в образовательных учреждениях, включая систему Télématique и терминалы Minitel.

Вот пример кода — программа запрашивает у пользователя две строки и проверяет, являются ли они анаграммами:

1 CHAINE A,B,BP
5 FAIRE
10   AFFICHER 'A = ' ;LIRE A ; SI A=’’ ALORS FINI
11   AFFICHER 'B = ' ;LIRE B ; BP ← B
12
15   R SI LGR(A) # LGR(B) ALORS .FAUX. SINON &ANAG(A,B)
20   SI R ALORS AFFICHER A, 'EST ANAGRAMME DE ',BP
21   SINON AFFICHER A, 'N’’EST PAS ANAGRAMME DE ',BP
25 BOUCLER
30 TERMINER
50 FONCTION &ANAG(U,V) LOCAL J {lgr(u)=lgr(v)}
51   SI U=' ' ALORS RESULTAT .VRAI.
52   SI J = 0 ALORS RESULTAT .FAUX.
54   RESULTAT &ANAG(SCH(U,2, ' '),MCH(V,J,1, ' '))

Проект стал довольно популярным (для своего времени, конечно). LSE активно применялся в школах Франции, Бельгии и франкоязычной части Канады, включая Квебек. Это, к слову, один из первых языков, адаптированных под родной язык учащихся. Однако с распространением более универсальных и мощных языков, вроде Pascal и C, LSE постепенно утратил значение. Сегодня он считается скорее музейным экспонатом: у него нет официального сайта или активного сообщества, но его вклад в развитие ИТ-образования во франкоязычном мире остается значимым.

VisuAlg: бразильский проводник в мир кода

Пример кусочка проекта на этом языке, (источник)
Пример кусочка проекта на этом языке, (источник)

В 2002 году бразильский преподаватель Антонио Карлос Морейра представил VisuAlg — язык, который должен был помочь студентам сосредоточиться на алгоритмах, а не на английской грамматике. Это не полноценный ЯП для разработки, а псевдокод на португальском, превращенный в рабочую среду. Здесь escreva заменяет print, leia — read, а se — if. VisuAlg ориентирован на обучение: он поддерживает базовые конструкции — циклы, условия, переменные — и поставляется с интерпретатором и отладчиком, что позволяет сразу видеть результат работы кода. Его сила в простоте и доступности, особенно для начинающих.

inicio
  inteiro n
  escreva("Digite um número: ")
  leia(n)
  se (n % 2 = 0) entao
    escreva("O número é par!")
  senao
    escreva("O número é ímpar!")
  fimse
fim

VisuAlg остается востребованным в Бразилии: версия 3.0.7, вышедшая в 2019 году, активно используется в школах и колледжах. Это не конкурент мировым языкам, но в образовательной нише он сохраняет свою актуальность.

Aheui: корейский эксперимент в программировании

В 2006 году корейский разработчик Минхван Чой (Minhwan Choi) представил Aheui — эзотерический ЯП, в основе которого лежит алфавит хангыль корейского языка. У названия Aheui (아희) нет конкретного перевода, это абстрактное слово.

В Aheui каждая команда — символ хангыля. Причем разные части слога (начальная согласная, гласная и конечная согласная) определяют:

  • тип команды (например, арифметика, ввод/вывод);

  • направление выполнения (вверх, вниз, влево, вправо);

  • структуру управления стеком.

Это делает язык двумерным — как и в другом эзоязыке, Befunge, выполнение кода может двигаться не только построчно, но и по любому направлению в таблице символов. У Aheui всего 26 стеков (по числу начальных согласных в хангыле) и одна очередь. Такая система хранения данных делает язык мощным, но весьма сложным для понимания. Особенно для тех, кто не владеет корейским.

К счастью, мучить себя не придется: на практике Aheui не используется для реальных задач — это эксперимент и художественный проект, созданный, чтобы показать, как можно выразить алгоритмы через структуру родного языка и визуальную форму текста.

Пример кода для вывода Hello, World!:

밤밣따빠밣밟따뿌
빠맣파빨받밤뚜뭏
돋밬탕빠맣붏두붇
볻뫃박발뚷투뭏붖
뫃도뫃희멓뭏뭏붘
뫃봌토범더벌뿌뚜
뽑뽀멓멓더벓뻐뚠
뽀덩벐멓뻐덕더벅

Обновления редки, язык не особо развивается. Однако интерпретаторы доступны, и этот ЯП продолжает вдохновлять тех, кто видит в коде больше, чем утилитарность.

Qalb: арабский голос в цифровом мире

В 2012 году ливанский разработчик Рэмси Нассер (Ramsey Nasser) представил язык программирования Qalb — в переводе с арабского «сердце». Это один из первых ЯП, где используется арабский синтаксис и направление письма справа налево. Проект появился как попытка показать, что программирование не обязательно должно быть привязано к английскому — код тоже может отражать особенности родной культуры и языка. А вот пример Неllo, World! на этом языке:

У Qalb простой (для носителей языка, конечно) синтаксис: например, команда قول означает «скажи». ЯП не создавался для разработки сложных приложений — это скорее эксперимент, нацеленный на обучение и привлечение внимания к языковому разнообразию в IT. С момента последнего апдейта прошло много лет, проект почти не обновляется — новейший коммит сделан в 2013 году. Так что о дальнейшем развитии говорить пока не приходится. Но ему и не нужно развиваться, поскольку Qalb экспериментальный проект, концепция Его не применяют в промышленности, но он живет как интересный опыт.

Вот еще один пример участка кода:

И репозиторий на GitHub, он до сих пор доступен.

Kalaam: хинди для нового поколения

Источник

В 2019 году индийский разработчик Адитья Бхаргава выпустил Kalaam — язык на хинди, где kalaam означает «слова» или «речь». Его цель — открыть программирование для миллионов индийцев, не владеющих английским. Чтобы обойти сложности с клавиатурой (не у каждого есть такая на хинди), синтаксис использует транслитерацию латиницей.

Что касается команд, то это likho вместо print, jab tak вместо while, agar заменяет if и т.п. Kalaam прост и ориентирован на обучение, помогает новичкам освоить базовые концепции без языковых преград.

shuru
  likho("1 se 5 tak gino:")
  i = 1
  jab tak (i <= 5) {
    likho(i)
    i = i + 1
  }
khatam

Kalaam — молодой язык, который активно развивается. Его задействуют в образовательных проектах в Индии. ЯП позволяет сделать программирование ближе к местным культурным традициям. Так что словосочетание “индийский код” заиграло новыми красками.

На сегодня все. Если у вас есть другие примеры языков не на английском, пишите в комментариях — будем обсуждать!

Теги:
Хабы:
+53
Комментарии48

Полезные ссылки

Обходим подводные камни работы с UDA в коде на Lua для ScyllaDB: дружим Java-драйвер и пустые значения

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров371
Всего голосов 5: ↑5 и ↓0+10
Комментарии0

Пайплайн распознавания номеров транспортных средств: как это устроено

Время на прочтение7 мин
Количество просмотров2.2K
Всего голосов 23: ↑22 и ↓1+25
Комментарии1

Интеграция виджета обратного звонка МТС Exolve в документацию на MkDocs

Время на прочтение8 мин
Количество просмотров404
Всего голосов 5: ↑5 и ↓0+7
Комментарии0

Путь видео в онлайн-кинотеатрах от «стекла до стекла». Middleware — ядро, подписки, сервисы, витрина

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров736
Всего голосов 4: ↑3 и ↓1+4
Комментарии0

Приручая хаос: как структурировать процессы в эксплуатационных командах. Кейс МТС

Время на прочтение6 мин
Количество просмотров694
Всего голосов 3: ↑3 и ↓0+4
Комментарии0

Информация

Сайт
www.mts.ru
Дата регистрации
Дата основания
Численность
свыше 10 000 человек
Местоположение
Россия