Введение
Неанглийские языки программирования – это языки программирования, которые не используют ключевые слова, заимствованные из английского языка или созданные под его влиянием.
Non English based programming languages are programming languages that do not use keywords taken from or inspired by English vocabulary.
Распространенность языков программирования на английском языке
Использование английского языка в качестве источника вдохновения при выборе элементов, в частности ключевых слов в языках программирования и библиотеках кода, является значительной тенденцией в истории разработки языков. Согласно онлайн-базе данных языков 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 – это язык, основанный на сворачивании кода. Он позволяет писать высоковыразительный код, который генерирует код. Примеры одной и той же программы на китайском, датском, хинди и испанском языках.