Введение

Неанглийские языки программирования – это языки программирования, которые не используют ключевые слова, заимствованные из английского языка или созданные под его влиянием.

Распространенность языков программирования на английском языке

Использование английского языка в качестве источника вдохновения при выборе элементов, в частности ключевых слов в языках программирования и библиотеках кода, является значительной тенденцией в истории разработки языков. Согласно онлайн-базе данных языков HOPL, из более чем 8500 задокументированных языков программирования, приблизительно 2400 были разработаны в Соединенных Штатах, 600 – в Великобритании, 160 – в Канаде и 75 – в Австралии. Таким образом, более трети всех языков программирования были созданы в странах, где английский язык является основным. Это не учитывает долю использования каждого языка программирования, случаи, когда язык был разработан в стране, где английский не является основным, но использовал английский язык для привлечения международной аудитории (например, Python из Нидерландов, Ruby из Японии и Lua из Бразилии), а также случаи, когда он был основан на другом языке программирования, в котором использовался английский язык.

Международные языки программирования

Концепция языков программирования международного стиля была вдохновлена работами британских учёных-компьютерщиков Кристофера Стречи, Питера Лэндина и других. Она представляет собой класс языков, в котором семейство алгоритмических языков ALGOL являлось наиболее ярким примером.

Цитрины

Локализация — ключевая особенность языка программирования Citrine. Citrine разработан с возможностью перевода на любой письменный человеческий язык. Например, версия для западнофризского языка называется Citrine/FY. Citrine поддерживает локализованные ключевые слова, числа и знаки пунктуации. Пользователи могут переводить файлы кода с одного языка на другой, используя строковый подход. На момент написания Citrine поддерживает 111 человеческих языков. Поддержка не ограничивается распространенными языками; для включения принимаются все естественные человеческие языки до уровня EGIDS 6.

Хеди .

Hedy – это язык программирования с открытым исходным кодом, разработанный для обучения программированию. Он задуман как можно более наглядным и доступным, с несколькими уникальными особенностями. Он поддерживает более 30 различных языков, что позволяет использовать ключевые слова на любом из них. Он поддерживает языки, не использующие латинский алфавит для ключевых слов и имен переменных, а также различные системы счисления, помимо арабских, например, восточноарабские цифры. Все эти системы могут использоваться взаимозаменяемо. Сообщения об ошибках подробные, они объясняют суть проблемы и предлагают возможные решения, подобно компилятору Rust.

Схема

Хотя интернационализация не входит в состав какого-либо стандарта Scheme, выразительность и гибкость языка позволяют добавить поддержку интернационализации в виде библиотеки. International Scheme – это проект с открытым исходным кодом, к которому любой желающий может внести свой вклад, предоставив перевод. Поскольку переводы Scheme можно загружать как библиотеки, программы на Scheme могут быть многоязычными.

Подразнить

Scratch — это образовательный язык программирования, основанный на блоках. Текст блоков переведен на множество языков, и пользователи могут выбирать различные варианты перевода. В именах переменных и списков поддерживаются символы Юникода. (Списки Scratch не хранятся внутри переменных, как массивы или списки в большинстве языков программирования. Переменные хранят только строки, числа и, с использованием обходных путей, логические значения, а списки являются отдельным типом данных, предназначенным для хранения последовательностей этих значений.) Проекты можно "перевести", просто изменив язык редактора, однако это не приведет к переводу имен переменных.

Основанные на символах вместо ключевых слов

APL – Язык, основанный на математической нотации и абстракциях. Brainfuck – Минималистичный эзотерический язык программирования, созданный с целью иметь максимально компактный компилятор. Emojicode – Эзотерический язык, основанный на эмодзи. G – Графический язык, используемый в LabVIEW (не следует путать с G-кодом). Hoon – Язык системного программирования для Urbit, компилируемый в Nock. J – Язык, подобный APL, использующий только специальные символы ASCII и добавляющий функциональное программирование. Light Pattern – Язык, использующий серию фотографий вместо текста в качестве исходного кода. Mouse – Минималистичный язык, созданный Питером Грогоно, использующий символы ASCII для ключевых слов. Piet – Эзотерический язык программирования, основанный на искусстве. Plankalkül – Первый высокоуровневый язык программирования, не относящийся к архитектуре фон Неймана, разработанный Конрадом Цузе во время Второй мировой войны в Германии. Whitespace – Эзотерический язык, основанный на символах пробела (пробелы, табуляции и переносы строк).

Изменяемый синтаксис анализатора

Babylscript – Многоязычная версия JavaScript, использующая несколько токенайзеров для поддержки локализованных ключевых слов на разных языках и позволяющая объектам и функциям иметь разные имена на разных языках. Component Pascal – Препроцессор, который переводит ключевые слова родного языка в английский в образовательной версии BlackBox Component Builder, доступной как открытый исходный код. Перевод контролируется с помощью изменяемого словаря и поддерживается изменяемыми сообщениями об ошибках компилятора. Полная русская версия используется в образовании, и должна быть возможность поддержки других языков, пишущихся слева направо (например, язык кабардинский был опробован в качестве доказательства концепции). HyperTalk – Язык программирования, позволяющий осуществлять перевод с помощью пользовательских ресурсов, используемый в HyperCard от Apple. IronPerunis – Локализация IronPython 2.7 на литовский и русский языки. AppleScript – Язык, который ранее допускал различные "диалекты", включая французский и японский; однако, они были удалены в более поздних версиях. Maude – Полностью определяемый пользователем синтаксис и семантика в пределах набора символов ASCII. Perl – Хотя ключевые слова и имена функций Perl обычно на английском языке, он позволяет изменять свой парсер для изменения входного языка, например, в модуле Lingua::Romana::Perligata Дэмиана Конвея, который позволяет писать программы на латыни, или в языке Lingua::tlhInganHol::yIghun Perl Майкла Г. Шверна на клингонском языке. Они изменяют не только ключевые слова, но и грамматику, чтобы она соответствовала языку. Perunis – Локализация Python 2.6 на литовский и русский языки. Ioke – Ioke – это язык, основанный на сворачивании кода. Он позволяет писать высоковыразительный код, который генерирует код. Примеры одной и той же программы на китайском, датском, хинди и испанском языках.