This article has multiple issues. Please helpimprove it or discuss these issues on thetalk page.(Learn how and when to remove these messages) (Learn how and when to remove this message)
|
Non-English-based programming languages areprogramming languages that do not use keywords taken from or inspired byEnglish vocabulary.
The use of theEnglish language in the inspiration for the choice of elements, in particular forkeywords 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 theUnited States, 600 in theUnited Kingdom, 160 inCanada, and 75 inAustralia. 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 ofPython from theNetherlands,Ruby fromJapan, andLua fromBrazil), and situations where it was based on another programming language which used English.
The concept of international-style programming languages was inspired by the work of Britishcomputer scientistsChristopher Strachey,Peter Landin, and others. It represents a class of languages of which the line of the algorithmic languagesALGOL was exemplary.
ALGOL 68's standard document was published in numerousnatural 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 ofUNESCO'sIFIP for publication. Translations of the standard were made forRussian,German,French,Bulgarian, and then laterJapanese. The standard was also available inBraille[clarification needed]. ALGOL 68 went on to become theGOST/ГОСТ-27974-88 standard in theSoviet Union.
In English, Algol68's case statement readscase ~in ~out ~esac. InRussian, this readsвыб ~в ~либо ~быв.
Localization is the core feature of theCitrine Programming Language. Citrine is designed to be translatable to every written human language. For instance theWest 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 toEGIDS-6 are being accepted for inclusion.
Hedy is anopen-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. As of September 2024[update] it supports 47 different languages,[4] meaning its keywords can be typed in any of those. It supports languages that do not use theLatin alphabet for their keywords and variable names and it also supports more numbering systems thanArabic numerals, likeEastern 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.
Whileinternationalization is not a part of anyScheme standard, the expressiveness and flexibility of the language allows for the addition of internationalization as alibrary.International Scheme is anopen source project to which anyone can contribute a translation. Since translations of Scheme can be loaded as libraries, Scheme programs can bemultilingual.
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.
| Basis | Name | Description | Link |
|---|---|---|---|
| Alsatian | Alsatran | A version ofFortran with keywords and built-in identifiers all translated to Alsatian. | [5] |
| Amharic | AxumLight / Geez# | Amharic-based programming language on the.NET platform | [6] |
| BunnaScript | A multilingual JavaScript and TypeScript programming language that enables writing computer code in the user's native language. Currently supports Amharic language. | [7] | |
| Arabic | Al-Khawarizm | Middle-level language for system programming with custom IDE. Intended for professional purpose. Supports Windows and Linux platforms. First design and development in 2008. Development status: active. | [8] |
| 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. | [9] | |
| ARLOGO | An open-source language based on the UCBLogo interpreter. | ||
| Ebda3 | A multi-paradigm high-level programming language. | ||
| Qalb | AScheme-like programming language.[10] | [11] | |
| Kalimat | A programming language that aims to help Arab children learn about programming.[12] | ||
| Ammoria | Object-oriented language | [13] | |
| Loughaty (MyProLang) | A general-purposenaturalArabicprogramming language based on a proprietary syntax.[14] | ||
| Phoenix | A C-like high-level imperative procedural language. | [15] | |
| Seen | A Bilingual English/Arabic based language that transpiles to Rust. | [16] | |
| Azerbaijani | Nasimi | An Azerbaijani implementation ofPython. | [17] |
| Bengali | ChaScript | Built usingECMAScript grammar.[18] | [19] |
| Chinese | Chinese BASIC | Chinese-localizedBASIC dialects based onApplesoft BASIC; forTaiwaneseApple IIclones and the MultitechMicroprofessor II. | |
| ChinesePython [zh] (ZhPy) | A version ofPython with keywords and built-in identifiers all translated to Chinese. | [20] | |
| Easy Programming Language | A Chineserapid application development language. | ||
| Wenyan | An esoteric language that closely follows the grammar and sentence structure ofClassical Chinese; it compiles toJavaScript and Python (with C, etc. forthcoming). | wenyan-lang onGitHub[21] | |
| Czech andSlovak | Karel | Aneducational programming language with Czech and Slovak versions. | |
| Dutch | Superlogo | Created forcomputer-aided instruction, based onLogo. | |
| Drama | An assembly language for educational purposes. | ||
| Finnish | sampo | An educationalForth-like programming language used in the 1980s by a high school in the city ofOulu. | |
| Tampio | Made to look like a natural language. Object-oriented. | tampio onGitHub | |
| French | GOTO++ | An esoteric programming language loosely based on French and English. | [22] |
| 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. | ||
| BASICOIS | BASIC with French keywords[23] | ||
| SPIP | Templating language with French syntax[24] | ||
| WLangage [fr] | WinDev [fr] programming language | ||
| Rouille | Rust translated into French[25] | rouille onGitHub | |
| German | Teuton | A German implementation ofPython. | [26] |
| Schlange | Another German implementation ofPython. | [27] | |
| Robot Karol [de] | A 3D implementation and German translation ofKarel used for educational purposes in secondary education. | ||
| Greek | Glossa | Based onPascal, used for educational purposes in secondary education. | [28] |
| 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, | |
| Hausa | Hapy | Hausa Programming language that compiles to Python, for educational purposes. | [29] |
| Hebrew | TamliLogo | A Hebrew implementation ofLogo. | [30] |
| Genesis | An esoteric programming language based on "Paleo-Hebrew". | [31] | |
| 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. | |
| Bharat programming language | A Hindi programming language with core functionality like loops, function, classes, and structures. Its interpreter is written in Python, and can be installed locally or used online. | ||
| Kalaam.io | Kalaam is a programming language in Hindi and has all the core functionality of a modern programming language, such as for loops, while loops, functions and conditional statements. Kalaam has its own parser, interpreter, virtual memory stack and it executes source code from a parse tree. | [35] | |
| Bhailang | Bhailang is a dynamically typed toy programming language based on an inside joke, written in Typescript. | [36] | |
| Hindi Programming Language | A Hindi programming language for the.NET Framework. | [37] | |
| W language | A Hindi translated HTML language | w language onGitHub | |
| Hindi,Bengali,Gujarati | Hindawi Programming System | A set of variants of C,C++,lex,yacc,assembly,BASIC, andLogo | |
| Icelandic | Fjölnir | An imperative programming language from the 1980s. | |
| Indonesian | BAIK | C with Indonesian keywords. | BAIK onSourceForge |
| 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 | [38] |
| Italian | CadregaLisp | ALisp dialect based a comedian sketch ofAldo Giovanni and Giacomo | [39] onGitHub |
| GomorraSQL | ASQL dialect based upon the Italian seriesGomorrah | [40] onGitHub | |
| Monicelli | An esoteric programming language based upon the so-called "Supercazzola" of the movieMy Friends | monicelli onGitHub | |
| Japanese | Dolittle | Developed for educational purposes. Freeware. | [41] |
| Himawari [ja] (ひまわり) | Succeeded by Nadeshiko. Freeware. | [42] | |
| Kotodama (ことだま) on Squeak | Based onSqueak. For educational purposes. | [43] | |
| Mind [ja] | A variant ofFORTH.[44] Commercial. | [45] | |
| 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.[46][47] | [48] | |
| Produire [ja] | An object-oriented Japanese programming language. Successor of TTSneo. Freeware. | [49] | |
| TTSneo [ja] | A Japanese programming language. Succeeded by Produire. Freeware. | [50] | |
| Unchiku (うんちく) | A Japanese programming language. Has limited functions/operations. Developed for educational purposes. | [51] | |
| Javanese | sawa | A Javanese translated Python language. | sawa onGitHub |
| Korean | Ssiat (씨앗) | A language usingHangul (Korean). The nameSsiat (씨앗) means "seed" in Korean. | |
| Aheui [ko] (아희) | Anesoteric programming language similar toBefunge but using Hangul[52] | ||
| Changjo (창조) | A language using Hangul. It is used for multimedia and game programming. | ||
| hForth | AForth system with an optional Korean keyword set. | [53] | |
| Latin | Lusus | ||
| Lingua::Romana::Perligata | Alternative Syntax forPerl 5 that allows programming in Latin. | [54] | |
| Latvian | LVskripts | Javascript translated into Latvian. | [55] onGitHub |
| Dzintars | Ruby translated into Latvian. | dzintars onGitHub | |
| Lithuanian | Setonas | Python translated into Lithuanian. | setonas onGitHub |
| Malay | Malaybasic | BASIC with Malay keywords | [56] |
| Malayalam | Thengascript | A dialect ofJavaScript in the Malayalam language. | [57] |
| Malluscript | An esotericscripting language made withRust based onManglish with an aim to provide inclusivity and diversity in programming. | [58] | |
| Nehiyawewin/Cree | Ancestral Code (Cree#) | AnIDE and language based on theNehiyaw (Cree) language and cultural storytelling practice. | [59] |
| Persian | Farsinet | Anobject-oriented programming language for.NET Framework. It is similar to C# and Delphi. | [60] |
| Kharazmi | A Persian programming language and IDE designed to teach programming to middle school students, similar toPascal | ||
| Zangar | Zangar (Persian for Rust) allows you to write Rust programs in Persian, using Persian keywords and function names. It is adapted from Rouille, the original French implementation of Rust. | zangar onGitHub | |
| Kati (زبان کاتی) | An online programming language in Persian language. | [61] | |
| Hashemi (آقای هاشمی) | forked from "SimpleLanguage" that is a simple example language built using the Truffle API. | mr-hashemi onGitHub | |
| 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. | [62] | |
| 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 "PolishFortran" | ||
| EOL | Expression-Oriented Language allowed for the use of both Polish and English keywords. | ||
| Zdzich | Amateur programming language for DOS. | [63] | |
| Portuguese | Delégua | A general purpose programming language, for educational and commercial purposes. | [64] |
| VisuAlg | A language designed to teach programming, based onPascal. | [65] | |
| potigol | A functional programming language in Portuguese for beginners. | [66] | |
| Portugol [pt] | A programming language with Portuguese keywords. | ||
| Portugol Studio [pt] | A variation of Portugol that based in C andPHP for learning purposes. | [67] | |
| G-Portugol | A variation of Portugol. | gpt onGitHub | |
| NPortugol | A .NET Programming language for embedded scripts. A variation of Portugol. | [68] | |
| 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 ofMIR computers.[69] | ||
| Эль-76 | A language for symbolic manipulations with algebraic expressions used in the Soviet series ofElbrus computers.[70] | ||
| ЯМБ [ru] | ЯМБ (язык машин бухгалтерских) (machine language for accounting machines) – A Russian programming language for Iskra-554, Iskra-555, and Neva-501 specialized accounting computers. | ||
| КуМир [ru] | Similar toPascal 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 onNairi | ||
| АЛМИР-65 | A language used onMIR | ||
| УАЯ [ru] | A language to study programming | ||
| ХУЯ | A language to study programming | [71] | |
| Sanskrit | [72] | OM Lang is astatically 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. | [73] |
| Serbian | Ћ плус плус | Ћ плус плус (Serbian, "C plus plus") is aJavaScript like programming language based onCyrillic script | [74] |
| Sinhala | [75] | Ceylonicus, the first Sinhala-based programming language: Ceylonicus is anopen-source,interpreted, andfunctional programming language designed to bridge the gap betweenEnglish andSinhala syntax within a unified codebase. As a Sinhala Programming Language, it empowers developers to express their ideas in both languages seamlessly. Ceylonicus is implemented inPython, and features a web-based environment, built using[76]. | [77],Source Code Ceylonicus Source Code onGitHub |
| Spanish | GarGar | A procedural programming language based onPascal for learning purposes.[78] | |
| Vainilla | A pseudocode interpreter for Spanish that runs in the browser. | [79] | |
| PSeInt | A pseudocode interpreter for Spanish, like Pascal, with a completely Spanish-based syntax. PSeInt is an abbreviation forPseudocode Interpreter. | ||
| Qriollo | An impure strict functional programming language that compiles to C, Python, and JVM Bytecode, with keywords inRioplatense Spanish, spoken inBuenos Aires. | [80] | |
| Latino [es] | A language with a completely Spanish-based syntax. | [81] | |
| Sí | A direct translation pseudo-language for coding in C and C++ with Spanish keywords. | [82] | |
| Pauscal [es] | A language with a completely Spanish-based syntax; compiler for 32-bit Windows. | ||
| InformATE [es] | A translation ofInform, used for creating text-based games. | ||
| EsJS | An interpreted programming language with Spanish syntax, based on JavaScript. | [83],[84],[85],esjs onGitHub | |
| 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. | [86][87] |
| Swedish | Enkelt | A language with a completely Swedish-based syntax. Transpiled to Python. | [88] |
| Tagalog | Bato | Ruby translated into Tagalog. | bato onGitHub |
| Tamil | Ezhil | Developed for educational purposes. | |
| eTamil | The purpose of eTamil is to be an Indian DSL for Accounts & Fintech. | eTamil onGitHub | |
| Swaram | A simple, general-purpose and procedural language.[89] | ||
| Agaram | A simple, Tamil programming language with interpreter and compiler. | Agaram-programming-language onGitHub | |
| Niral | A Tamil programming language with Tamil & Latin script.[90] | ||
| Thendral | Thendral is a transpiler - Translates thendral ( a scripting language in Tamil ) to valid JavaScript | thendral onGitHub | |
| Maghilchi | It is an interpreted language with a natural language-like syntax with Tamil words.[91] | ||
| W language | HTML translation in Tamil language | w language onGitHub | |
| Turkish | Yakamoz | A Turkish implementation similar to that ofPython. | [92] |
| Urdu | UrduScript | A dialect ofJavaScript. | [93] |
| Welsh | Draig | A Welsh implementation ofRaku | [94] |
| Yoruba | Yorlang | Built on top ofNode.js. | [95] |
| Various | Logo | In one of itsApple II editions, it was available inFrench. A version used in Bulgarian education withBulgarian Apple II clones was translated inBulgarian. LOGO for theCommodore 64 had anItalian localization. | |
| 4th Dimension | On local versions, its internal language usesFrench orGerman keywords. | ||
| FOCAL | Keywords were originally in English, butDEC 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 andMS Excel | Theirmacro languages used to be localized in non-English languages. | ||
| ML4 | A language for client/server database programming, with keywords in English or German.[96] | ||
| RoboMind | An educational programming language available inArabic,Chinese,Dutch,English,French,German,Greek,Polish,Brazilian Portuguese,Spanish,Swedish, andTurkish. | ||
| Scratch | An introductoryvisual 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. | [97] | |
| TECO | The programming language used to drive the actions of theTECO text editor. The MIT dialect of this language was used to program early versions ofEmacs before its 1985 rewrite inEmacs 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. |
(rough translation): Mind uses FORTH's mechanism. Even though FORTH was born in America, its grammar is similar to Japanese grammar.