Non-English-based_programming_languages

Non-English-based programming languages

Non-English-based programming languages

Add article description


Non-English-based programming languages are programming languages that do not use keywords taken from or inspired by English vocabulary.

Prevalence of English-based programming languages

The use of the English language in the inspiration for the choice of elements, in particular for keywords in computer programming languages and code libraries, represents a significant trend in the history of language design. According to the HOPL online database of languages,[1] out of the 8,500+ programming languages recorded, roughly 2,400 of them were developed in the United States, 600 in the United Kingdom, 160 in Canada, and 75 in Australia.

Thus, over a third of all programming languages have been developed in countries where English is the primary language. This does not take into account the usage share of each programming language, situations where a language was developed in a non-English-speaking country but used English to appeal to an international audience (see the case of Python from the Netherlands, Ruby from Japan, and Lua from Brazil), and situations where it was based on another programming language which used English.

International programming languages

The concept of international-style programming languages was inspired by the work of British computer scientists Christopher Strachey, Peter Landin, and others. It represents a class of languages of which the line of the algorithmic languages ALGOL was exemplary.

ALGOL 68

ALGOL 68's standard document was published in numerous natural languages. The standard allowed the internationalization of the programming language. On December 20, 1968, the "Final Report" (MR 101) was adopted by the Working Group, then subsequently approved by the General Assembly of UNESCO's IFIP for publication. Translations of the standard were made for Russian, German, French, Bulgarian, and then later Japanese. The standard was also available in Braille[clarification needed]. ALGOL 68 went on to become the GOST/ГОСТ-27974-88 standard in the Soviet Union.

  • GOST 27974-88 Programming language ALGOL 68 – Язык программирования АЛГОЛ 68[2]
  • GOST 27975-88 Programming language ALGOL 68 extended – Язык программирования АЛГОЛ 68 расширенный[3]

In English, Algol68's case statement reads case ~ in ~ out ~ esac. In Russian, this reads выб ~ в ~ либо ~ быв.

Citrine

Localization is the core feature of the Citrine Programming Language. Citrine is designed to be translatable to every written human language. For instance the West Frisian language version is called Citrine/FY. Citrine features localized keywords, localized numbers and localized punctuation. Users can translate code files from one language into another using a string-based approach. At the time of writing, Citrine supports 111 human languages. Support is not limited to well-known languages; all natural human languages up to EGIDS-6 are being accepted for inclusion.

Hedy

Hedy is an open-source programming language which was developed for programming education. It was designed to be as instructive as possible and as accessible as possible with a few unique features. It supports over 30 different languages, meaning its keywords can be typed in any of those. It supports languages which do not use the Latin alphabet for its keywords and variable names and it also supports more numbering systems than Arabic numerals, like Eastern Arabic numerals. All of these can be used interchangeably. The error messages are quite verbose, explaining what is wrong and what might be a fix, just like the Rust compiler.

Scheme

While internationalization is not a part of any Scheme standard, the expressiveness and flexibility of the language allows for the addition of internationalization as a library. International Scheme is an open source project to which anyone can contribute a translation. Since translations of Scheme can be loaded as libraries, Scheme programs can be multilingual.

Scratch

Scratch is a block-based educational language. The text of the blocks is translated into many languages, and users can select different translations. Unicode characters are supported in variable and list names. (Scratch lists are not stored inside variables the way arrays or lists are handled in most languages. Variables only store strings, numbers, and, with workarounds, boolean values, while lists are a separate data type that store sequences of these values.) Projects can be "translated" by simply changing the language of the editor, although this does not translate the variable names.

Based on non-English languages

More information Basis, Name ...

Based on symbols instead of keywords

  • APL – A language based on mathematical notation and abstractions.
  • Brainfuck – A minimalist esoteric programming language, created for the purpose of having the smallest possible compiler.[22]
  • Emojicode – An esoteric language based on Emojis.
  • G – Graphical language used in LabVIEW (not to be confused with G-code).
  • Hoon – A systems programming language for Urbit, compiling to Nock.
  • J – An APL-like language which uses only ASCII special characters and adds function-level programming.
  • Light Pattern – A language which uses a series of photographs rather than text as source code.[23]
  • Mouse – A minimalist language created by Peter Grogono which uses ASCII characters for keywords.
  • Piet – An art-based esoteric programming language.
  • Plankalkül – The first high-level non-von Neumann programming language, designed by Konrad Zuse during World War II in Germany.
  • Whitespace – An esoteric language based on whitespace characters (spaces, tabs, and line breaks).

Modifiable parser syntax

  • Babylscript – A multilingual version of JavaScript which uses multiple tokenizers to support localized keywords in different languages and which allows objects and functions to have different names in different languages.
  • Component Pascal – A preprocessor that translates native-language keywords into English in an educational version of the BlackBox Component Builder available as open source. The translation is controlled via a modifiable vocabulary and supported by modifiable compiler error messages. A complete Russian version is used in education, and it should be possible to accommodate other left-to-right languages (e.g., the Kabardian language has been tried as a proof of concept).
  • HyperTalk – A programming language, which allows translation via custom resources, used in Apple's HyperCard.
  • IronPerunis – An IronPython 2.7 localization to Lithuanian and Russian.
  • AppleScript – A language which once allowed for different "dialects"[24] including French and Japanese; however, these were removed in later versions.
  • Maude – Completely user-definable syntax and semantics, within the bounds of the ASCII character set.[25]
  • Perl – While Perl's keywords and function names are generally in English, it allows modification of its parser to modify the input language, such as in Damian Conway's Lingua::Romana::Perligata module, which allows programs to be written in Latin or Michael G. Schwern's Lingua::tlhInganHol::yIghun Perl language in Klingon. They do not just change the keywords but also the grammar to match the language.
  • Perunis – Python 2.6 localization to Lithuanian and Russian.
  • Ioke – Ioke is a folding language. It allows writing highly expressive code that writes code. Examples of same program in Chinese, Danish, Hindi and Spanish

References

  1. In HOPL (History of Programming Languages), advanced search finds languages by country.
  2. "GOST 27974-88 Programming language ALGOL 68 – Язык программирования АЛГОЛ 68" (PDF) (in Russian). GOST. 1988. Archived from the original (PDF) on March 24, 2017. Retrieved November 15, 2008.
  3. Jacques Perrin, Conception entre science et art. Regards multiples sur la conception, Presses polytechniques et universitaires romandes
  4. IA eng (PDF).
  5. ChaScript: Breaking the language barrier using Bengali programming system, IEEE, doi:10.1109/ICECE.2014.7026875, S2CID 39503002.
  6. Labelle, Marcel, Les langages de programmation (PDF).
  7. Spip documentation team, Language glossary.
  8. Katagiri, Akira. 1 Mindのしくみと特徴 [Mind – its mechanism and features]. Scripts Lab (in Japanese). Retrieved 2021-07-31. (rough translation): Mind uses FORTH's mechanism. Even though FORTH was born in America, its grammar is similar to Japanese grammar.
  9. Tarui, Hideto (2020-09-17). 日本語で書けちゃうプログラミング言語「なでしこ」が中学の教科書に採用! [Japanese programming language "Nadeshiko" adopted in a junior high textbook!]. WINDOWS FOREST (IT news site) (in Japanese). Impress Corporation. Retrieved 2021-07-31.
  10. 令和3年度中学校教科書 [2021 technical arts textbook for junior high school]. Kyoiku tosho corporate website (in Japanese). Archived from the original on 2021-06-25. Retrieved 2021-07-31.
  11. "Aheui", Esolang (wiki).
  12. Husberg, Nisse; Seppänen, Jouko (1974), "Analitik", ACM Sigsam Bulletin, 8 (3), ACM: 24–25, doi:10.1145/1086837.1086841, S2CID 510819.
  13. Эль-76, Кірыліца ў сеціве.
  14. Manual del lenguaje GarGar [GarGar Manual] (in Spanish), archived from the original on November 5, 2016.[permanent dead link]
  15. Ganesh (PDF), Infitt, 2003.
  16. "The Brainfuck Programming Language". Muppetlabs.com. Retrieved 2013-10-30.
  17. Temkin (August 2015). "Light Pattern: Writing Code with Photographs". Leonardo. 48 (4): 375–381. doi:10.1162/LEON_a_01091. S2CID 57571969.
  18. Cook, William R. (2007). "Apple Script". Proceedings of the third ACM SIGPLAN conference on History of programming languages. doi:10.1145/1238844.1238845. ISBN 9781595937667. S2CID 220938191 via ResearchGate.
  19. Language Design in Maude, by Matthias, 2006/06/05, LShift Ltd.

Sources


Share this article:

This article uses material from the Wikipedia article Non-English-based_programming_languages, and is written by contributors. Text is available under a CC BY-SA 4.0 International License; additional terms may apply. Images, videos and audio are available under their respective licenses.