Non-English-based programming languages

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

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[edit]

There has been an overwhelming trend in programming languages to use the English language to inspire the choice of keywords and code libraries. 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.

In other words, over a third of all programming languages were developed in a country with English as the primary language. This does not take into account the usage share of each 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 language which used English (see the case of Caml, developed in France but using English keywords).

International programming languages[edit]

ALGOL 68's standard document was published in numerous natural languages, and the standard allowed the internationalisation of the programming language itself.

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 made available also in Braille. 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 выб ~ в ~ либо ~ быв.

Based on non-English languages[edit]

Keywords in Name Description Link
Amharic AxumLight / Geez# Amharic-based programming language on the .NET platform [1]
Arabic ARLOGO An open-source language based on the UCB Logo interpreter.
Ebda3 A multi-paradigm high-level programming language.
Qalb A Scheme-like programming language.[4] [2]
Kalimat A programming language that aims to help Arab children learn about programming.[5]
Ammoria Object-oriented language [3]
Loughaty (MyProLang) A general-purpose natural Arabic programming language based on a proprietary syntax.[6]
Phoenix A C-like high-level imperative procedural language. [4]
Bengali ChaScript Built using ECMAscript grammar.[7] [5]
Chinese Chinese BASIC Chinese-localized BASIC dialects based on Applesoft BASIC; for Taiwanese Apple II clones and the Multitech Microprofessor II.
Chinese Python A version of Python localized to Chinese. [6]
Easy Programming Language A Chinese rapid application development language.
ZhPy A full-featured Python module which converts Chinese keywords, variables, and parameters.
Czech and Slovak Karel An educational programming language with Czech and Slovak versions.
Dutch Superlogo Created for computer-aided instruction, based on Logo.
Drama [nl] An assembly language for educational purposes.
Finnish Tampio Made to look like a natural language. Object oriented. [7]
French GOTO++ An esoteric programming language loosely based on French and English. [8]
Linotte
LSE (Language Symbolique d'Enseignement) A pedagogical programming language designed in the 1970s at the École Supérieure d'Électricité. A kind of BASIC, but with procedures, functions, and local variables, like in Pascal.
W-Language Used in the WinDev CASE Tool. A Chinese version[8] is also available.
BASICOIS BASIC with French keywords[9]
German Teuton A German implementation of Python. [9]
Greek Glossas Based on Pascal, used for educational purposes in secondary education. [10]
Hebrew TamliLogo A Hebrew implementation of Logo. [11]
Hindi Hindi Programming Language A Hindi programming language for the .NET Framework. [12]
Hindi, Bengali, Gujarati Hindawi Programming System A set of variants of C, C++, lex, yacc, assembly, BASIC, Logo and Ada
Icelandic Fjölnir An imperative programming language from the 1980s.
Indonesian BAIK C with Indonesian keywords. [13]
Japanese Dolittle Developed for educational purposes. [14]
Produire [ja] An object-oriented Japanese programming language. It is used for hobby and business applications. [15]
Kotodama on Squeak Based on Squeak. For educational purposes. [16]
Mind [ja] Used for hobby and business applications. [17]
Nadesiko [ja] [18]
Sunflower [ja] Used for hobby and business applications. [19]
TTSneo [ja] A Japanese programming language. It is used for hobby applications. [20]
Korean Ssiat A language using Hangul (Korean). The name Ssiat (씨앗) means "seed" in Korean.
Aheui An esoteric programming language similar to Befunge but using Hangul[10]
Changjo A language using Hangul. It is used for multimedia and game programming.
hForth A Forth system with an optional Korean keyword set. [21]
Latin Lusus
Lingua::Romana::Perligata Alternative Syntax for Perl 5 that allows programming in Latin. [22]
Latvian Dzintars Ruby translated into Latvian. [23]
Lithuanian Setonas Python translated into Lithuanian. [24]
Persian Farsinet An object-oriented programming language for .NET framework. It is similar to C# and Delphi. [25]
Kharazmi A persian programming language and IDE designed to teach programming to middle school students, similar to Pascal
Polish AC-Logo [pl] Logo with Polish commands IDŹ, OTO, NAPRZÓD etc. created in 1992
SAKO A language created in the 1950s and nicknamed the "Polish Fortran"
EOL Expression Oriented Language, allowed for using polish or english keywords.
Portuguese VisuAlg A language designed to teach programming, based on Pascal. [26]
potigol A functional programming language in Portuguese for beginners. [27]
G-Portugol A programming language with Portuguese keywords. [28]
Russian 1C:Enterprise A framework and language for business applications. English keywords can also be used.
Rapira An interpreted procedural programming language with strong dynamic type system.
Analitik A language for symbolic manipulations with algebraic expressions used in the Soviet series of MIR computers.[11]
Эль-76 A language for symbolic manipulations with algebraic expressions used in the Soviet series of Elbrus computers.[12]
YMB [ru] ЯМБ (язык машин бухгалтерских) (machine language for accounting machines) – A Russian programming language for Iskra-554, Iskra-555, and Neva-501 specialized accounting computers.
Kumir [ru] Similar to Pascal and IDE, mainly intended for educational usage in schools. The name is an acronym, which means Комплект ученический 'Мир' ('Mir' student's environment).
Robic A simple language for teaching the basics of programming to children.
Serbian Ћ плус плус JavaScript like programming language based on Cyrillic script [35]
Spanish GarGar A procedural programming language based on Pascal for learning purposes.[13]
PSeInt A pseudocode interpreter for Spanish, like Pauscal, with a completely Spanish-based syntax. PSeInt is an abbreviation for Pseudocode Interpreter.
Qriollo An impure strict functional programming language that compiles to C, Python and JVM Bytecode, with keywords in Rioplatense Spanish, spoken in Buenos Aires. [29]
Latino A language with a completely Spanish-based syntax. [30]
A direct translation pseudo-language for coding in C and C++ with Spanish keywords. [31]
Pauscal [es] A language with a completely Spanish-based syntax; compiler for 32-bit Windows.
Swedish Enkelt A language with a completely Swedish-based syntax. Transpiled to Python. [32]
Tagalog Bato [33]
Tamil Ezhil Developed for educational purposes.
Swaram A simple, general-purpose and procedural language.[14]
Urdu UrduScript A dialect of JavaScript. [34]
Alif [35]
Yoruba Yorlang Built on top of Node.js. [36]
(Various) Logo In one of its Apple II editions, it was available in French. A version used in Bulgarian education with Bulgarian Apple II clones was translated in Bulgarian. LOGO for the Commodore 64 had an Italian localization.
4th Dimension On local versions, its internal language uses French or German keywords.
FOCAL Keywords were originally in English, but DEC produced versions of FOCAL in several European languages.
Mama An educational programming language and development environment, designed to help young students start programming by building 3D animations and games. It is currently available in English, Hebrew, Yiddish, and Chinese.
MS Word and MS Excel Their macro languages used to be localized in non-English languages.
ML4 A language for client/server database programming, with keywords in English or German.[15]
RoboMind An educational programming language available in Arabic, Chinese, Dutch, English, French, German, Greek, Polish, Brazilian Portuguese, Spanish, Swedish, and Turkish.
Scratch An introductory visual programming language from MIT's Media Lab with support for programming in multiple languages included as standard.
TECO The programming language used to drive the actions of the TECO text editor. The MIT dialect of this language was used to program early versions of Emacs before its 1985 rewrite in Emacs Lisp.
TI-Calculator BASIC The 68000 version is localized. Unfortunately, various configuration strings are localized too, preventing direct binary compatibility.
Citrine Programming language that can be used to code in any native human language, includes a translator module to translate code from one human language to another. At the time of writing it supports English, Dutch, Lithuanian and Romanian.

Languages based on symbols instead of keywords[edit]

  • APL – A language based on mathematical notation and abstractions.
  • Brainfuck – A minimalist esoteric programming language, created for the purpose of having a compiler fit in fewer than 256 bytes.
  • 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.[16]
  • Mouse (programming language) – A minimalist language created by Dr. 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[edit]

  • 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.[37] 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 localisation to Lithuanian and Russian.
  • AppleScript – A language which once allowed for different "dialects"[17] 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.[18]
  • 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 his 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[edit]

  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. Retrieved November 15, 2008.
  3. ^ "GOST 27975-88 Programming language ALGOL 68 extended - Язык программирования АЛГОЛ 68 расширенный" (PDF) (in Russian). GOST. 1988. Retrieved November 15, 2008.
  4. ^ https://www.theverge.com/2013/1/25/3914150/alb-programming-language-based-on-arabic-script
  5. ^ https://www.arabnet.me/english/editorials/business/industry/kalimat-first-arabic-programming-language-for-kids
  6. ^ IA eng (PDF).
  7. ^ ChaScript: Breaking the language barrier using Bengali programming system, IEEE.
  8. ^ Windev (in Chinese)
  9. ^ Marcel Labelle, Les langages de programmation (PDF).
  10. ^ "Aheui", Esolang (wiki).
  11. ^ Analitik, ACM.
  12. ^ Эль-76, Кірыліца ў сеціве.
  13. ^ Manual del lenguaje GarGar [GarGar Manual] (in Spanish), archived from the original on Nov 5, 2016.[permanent dead link]
  14. ^ Ganesh (PDF), Infitt, 2003.
  15. ^ C/S Entwicklungsumgebung ML4, ML-Software.
  16. ^ Temkin (August 2015). "Light Pattern: Writing Code with Photographs". Leonardo. 48 (4): 375–381. doi:10.1162/LEON_a_01091.
  17. ^ https://www.researchgate.net/publication/221501771_AppleScript
  18. ^ Language Design in Maude, by matthias, 2006/06/05, LShift Ltd.

Sources[edit]

External links[edit]