Non-English-based programming languages

From HandWiki
Short description: none

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'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 выб ~ в ~ либо ~ быв.


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 are being accepted for inclusion, up to EGIDS-6.


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 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

Programming languages based on human languages other than English
Basis Name Description Link
Amharic AxumLight / Geez# Amharic-based programming language on the .NET platform [1]
BunnaScript A multilingual JavaScript and TypeScript programming language that enables writing computer code in the user's native language. Currently supports Amharic language. [2]
Arabic Al-Khawarizm Middle-level language for system programming with custom IDE. Intended for professional purpose. supports Windows and Linux platforms. Firsts design and developments in 2008. Development status: active. [3]
Jeem Arabic procedural programming language that uses features from both C and Pascal. Supports simple graphics. Intended for educational purposes. Developed by Mohammad Ammar Alsalka. Released in 2006. [4]
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] [5]
Kalimat A programming language that aims to help Arab children learn about programming.[5]
Ammoria Object-oriented language [6]
Loughaty (MyProLang) A general-purpose natural Arabic programming language based on a proprietary syntax.[6]
Phoenix A C-like high-level imperative procedural language. [7]
Seen A Bilingual English/Arabic based language that transpiles to Rust. [8]
Bengali ChaScript Built using ECMAScript grammar.[7] [9]
Chinese Chinese BASIC Chinese-localized BASIC dialects based on Applesoft BASIC; for Taiwanese Apple II clones and the Multitech Microprofessor II.
ChinesePython [zh] (ZhPy) A version of Python with keywords and built-in identifiers all translated to Chinese. [10]
Easy Programming Language A Chinese rapid application development language.
Wenyan An esoteric language that closely follows the grammar and sentence structure of Classical Chinese; it compiles to JavaScript and Python (with C, etc. forthcoming). on GitHub [11]
Czech and Slovak Karel An educational programming language with Czech and Slovak versions.
Dutch Superlogo Created for computer-aided instruction, based on Logo.
Drama An assembly language for educational purposes.
Finnish sampo An educational Forth-like programming language used in the 1980s by a high school in the city of Oulu.
Tampio Made to look like a natural language. Object-oriented. on GitHub
French GOTO++ An esoteric programming language loosely based on French and English. [12]
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.
BASICOIS BASIC with French keywords[8]
SPIP Templating language with French syntax[9]
WLangage WinDev programming language
Rouille Rust translated into French[10] on GitHub
German Teuton A German implementation of Python. [13]
Greek Glossa Based on Pascal, used for educational purposes in secondary education. [14]
M2000 Programming Environment using Greek and or English Keywords. Basic like language (interpreter) with over 500 Keywords, including OOP, Threads, Events, Lambda Functions. List of BASIC dialects,

on GitHub

Hebrew TamliLogo A Hebrew implementation of Logo. [15]
Genesis An esoteric programming language based on "Paleo-Hebrew". [16]
Hindi OM Lang OM Lang is a multilingual, statically typed programming language that supports more than 9+ Indian languages. OM Lang is very similar to GO, C and Rust. It has its own interpreter and compiler.

OM Lang, OM Lang Android App

Bharat programming language A Hindi programming language with all the modern basic functionalities like loops, function, classes, structure. Its interpreter is written in Python. You can install in your local system or you can use online interpreter.

[17] Kalaam is the programming language in Hindi and has all the basic functionalities of a modern programming language from for loops to while loops and from functions to conditional statements. Kalaam has its own parser, interpreter, Virtual memory stack and executes source code from parse tree generated by the parser. [18]
Hindi Programming Language A Hindi programming language for the .NET Framework. [19]
W language A Hindi translated HTML language on GitHub
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. BAIK on
Irish Setanta High level general purpose language that runs in the browser. Contains a graphics API that can be used to make games and animations [20]
Italian CadregaLisp A Lisp dialect based a comedian sketch of Aldo Giovanni and Giacomo CadregaLisp on GitHub
GomorraSQL A SQL dialect based upon the italian series Gomorra GomrraSQL on GitHub
Monicelli An esoteric programming language based upon the so-called "Supercazzola" of the movie My Friends (film) on GitHub
Japanese Dolittle Developed for educational purposes. Freeware. [21]
Himawari [ja] (ひまわり) Succeeded by Nadeshiko. Freeware. [22]
Kotodama (ことだま) on Squeak Based on Squeak. For educational purposes. [23]
Mind [ja] A variant of FORTH.[11] Commercial. [24]
Nadeshiko [ja] (なでしこ) Successor of Himawari. Open source freeware. Chosen (along with MIT Scratch) in one of the 3 official textbooks of technical arts for junior high schools in Japan, from 2022.[12][13] [25]
Produire [ja] An object-oriented Japanese programming language. Successor of TTSneo. Freeware. [26]
TTSneo [ja] A Japanese programming language. Succeeded by Produire. Freeware. [27]
Unchiku (うんちく) A Japanese programming language. Has limited functions/operations. Developed for educational purposes. [28]
Javanese sawa A Javanese translated Python language. on GitHub
Korean Ssiat A language using Hangul (Korean). The name Ssiat (씨앗) means "seed" in Korean.
Aheui (ko) An esoteric programming language similar to Befunge but using Hangul[14]
Changjo A language using Hangul. It is used for multimedia and game programming.
hForth A Forth system with an optional Korean keyword set. [29]
Latin Lusus
Lingua::Romana::Perligata Alternative Syntax for Perl 5 that allows programming in Latin. [30]
Latvian Dzintars Ruby translated into Latvian. on GitHub
Lithuanian Setonas Python translated into Lithuanian. on GitHub
Malay Malaybasic BASIC with Malay keywords [31]
Malayalam Thengascript A dialect of JavaScript in the Malayalam language. [32]
Malluscript An esoteric scripting language made with Rust based on Manglish and Malayalam memes. [33]
Persian Farsinet An object-oriented programming language for .NET Framework. It is similar to C# and Delphi. [34]
Kharazmi A Persian programming language and IDE designed to teach programming to middle school students, similar to Pascal
Kati (زبان کاتی) An online programming language in Persian language. [35]
Hashemi (آقای هاشمی) forked from "SimpleLanguage" that is a simple example language built using the Truffle API. on GitHub
Simorgh(SPL) SPL has been invented with the aim that non-technical people would be able to produce their own portable applications which can be written in their own native language. [36]
Polish AC-Logo 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.
Zdzich Amateur programming language for DOS. [37]
Portuguese VisuAlg A language designed to teach programming, based on Pascal. [38]
potigol A functional programming language in Portuguese for beginners. [39]
Portugol Studio based in C and PHP for learning purposes. [40]
G-Portugol A programming language with Portuguese keywords. on GitHub
NPortugol A .NET Programming language for embedded scripts [41]
Russian 1C:Enterprise A framework and language for business applications. English keywords can also be used.
РАПИРА An interpreted procedural programming language with strong dynamic type system.
Аналитик A language for symbolic manipulations with algebraic expressions used in the Soviet series of MIR computers.[15]
Эль-76 A language for symbolic manipulations with algebraic expressions used in the Soviet series of Elbrus computers.[16]
ЯМБ (ru) ЯМБ (язык машин бухгалтерских) (machine language for accounting machines) – A Russian programming language for Iskra-554, Iskra-555, and Neva-501 specialized accounting computers.
КуМир (ru) Similar to Pascal and IDE, mainly intended for educational usage in schools. The name is an acronym, which means Комплект ученический 'Мир' ('Mir' student's environment).
Робик A simple language for teaching the basics of programming to children.
ЯАП A language used on Nairi
АЛМИР-65 A language used on MIR
A language to study programming
Sanskrit OM Lang OM Lang is a statically typed, multilingual programming language with first-class support for Sanskrit. It claims to be the world's first Sanskrit programming language, offering Sanskrit keywords and syntax. The language aims to experiment with using Sanskrit in programming. [42]
Serbian Ћ плус плус Ћ плус плус (Serbian, "C plus plus") is a JavaScript like programming language based on Cyrillic script [43]
Sinhala Ceylonicus Ceylonicus is an open source, interpreted, functional and an bilingual programming language. It is the first Sinhala Programming Language (first to support Sinhala-based syntax). Capable of executing both English and Sinhala based syntax in a single code-base. Language is written in Python and web IDE is developed with Brython. Run Online (WEB IDE), on GitHub
Spanish GarGar A procedural programming language based on Pascal for learning purposes.[17]
Vainilla A pseudocode interpreter for Spanish that runs in the browser. [44]
PSeInt A pseudocode interpreter for Spanish, like Pascal, 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. [45]
Latino_(lenguaje_de_programación) (es) A language with a completely Spanish-based syntax. [46]
A direct translation pseudo-language for coding in C and C++ with Spanish keywords. [47]
Pauscal (es) A language with a completely Spanish-based syntax; compiler for 32-bit Windows.
InformATE (es) A translation of Inform, used for creating text-based games.
Swahili swap Swahili Programming Language; it is an educational programming language built over Nodejs, It was built as way to help Swahili speakers to easily grasp the concept of coding and programming in general. [48][49]
Swedish Enkelt A language with a completely Swedish-based syntax. Transpiled to Python. [50]
Tagalog Bato Ruby translated into Tagalog. on GitHub
Tamil Ezhil Developed for educational purposes.
Swaram A simple, general-purpose and procedural language.[18]
W language HTML translation in Tamil language on GitHub
Telugu VamBha A simple, Telugu-based programming language [51]
Turkish Yakamoz A Turkish implementation similar to that of Python. [52]
Urdu UrduScript A dialect of JavaScript. [53]
Yoruba Yorlang Built on top of Node.js. [54]
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.[19]
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.
Catrobat A visual programming language targeted at teenagers with support for more than 60 languages like Slovenian, Polish, Hindi, German, Romanian, Turkish, Norwegian, Akan, Twi, Hebrew, Chinese Simplified, Indonesian, Swedish, Chinese Traditional, Portuguese, Brazilian, Croatian, Bosnian, Thai, Japanese, Sindhi, Tamil, Swahili, Arabic, Persian, Korean, Serbian (Cyrillic), Serbian (Latin), Bengali, French, Slovak, Vietnamese, Italian, Macedonian, Russian, Portuguese, English, Canada, Czech, Sinhala, Azerbaijani, Kazakh, Dutch, Catalan, Albanian, Pashto, Gujarati, Finnish, Malay, Lithuanian, Malayalam, Danish, Hungarian, Afrikaans, Kannada, Greek, Bulgarian, Galician, Urdu (Pakistan), English, Australia, English, United Kingdom, Telugu, Ukrainian, Hausa and Igbo. on GitHub
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. 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.

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.[20]
  • 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.[21]
  • Mouse – 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

  • 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.[55] 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"[22] 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.[23]
  • 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


  1. In HOPL (History of Programming Languages), advanced search finds languages by country.
  2. "GOST 27974-88 Programming language ALGOL 68 – Язык программирования АЛГОЛ 68" (in ru). GOST. 1988. 
  3. "GOST 27975-88 Programming language ALGOL 68 extended – Язык программирования АЛГОЛ 68 расширенный" (in ru). GOST. 1988. 
  4. "Hello world: Meet قلب, a programming language based on Arabic script". 25 January 2013. 
  5. "Arabnet | Kalimat: First Arabic Programming Language for Kids". 
  6. IA eng, .
  7. ChaScript: Breaking the language barrier using Bengali programming system, IEEE, doi:10.1109/ICECE.2014.7026875 .
  8. Labelle, Marcel, Les langages de programmation, .
  9. Spip documentation team, Language glossary, .
  10. Rouille language homepage, 6 June 2022, .
  11. Katagiri, Akira. "Error: no |title= specified when using {{Cite web}}" (in ja). "(rough translation): Mind uses FORTH's mechanism. Even though FORTH was born in America, its grammar is similar to Japanese grammar." 
  12. Tarui, Hideto (2020-09-17). "Error: no |title= specified when using {{Cite web}}" (in ja). Impress Corporation. 
  13. "Error: no |title= specified when using {{Cite web}}" (in ja). 
  14. "Aheui", Esolang, .
  15. Husberg, Nisse; Seppänen, Jouko (1974), "Analitik", ACM Sigsam Bulletin (ACM) 8 (3): 24–25, doi:10.1145/1086837.1086841, .
  16. Эль-76, Кірыліца ў сеціве, .
  17. (in es) Manual del lenguaje GarGar, .[yes|permanent dead link|dead link}}]
  18. Ganesh, Infitt, 2003, .
  19. C/S Entwicklungsumgebung ML4, ML-Software, .
  20. "The Brainfuck Programming Language". 
  21. Temkin (August 2015). "Light Pattern: Writing Code with Photographs". Leonardo 48 (4): 375–381. doi:10.1162/LEON_a_01091. 
  22. 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. 
  23. Language Design in Maude, by Matthias, 2006/06/05, LShift Ltd.


External links