Recent from talks
Nothing was collected or created yet.
Non-English-based programming languages
View on Wikipedia
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
|
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]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
[edit]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
[edit]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
[edit]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
[edit]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. 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 the Latin alphabet for their 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.
Scheme
[edit]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
[edit]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
[edit]| Basis | Name | Description | Link |
|---|---|---|---|
| Alsatian | Alsatran | A version of Fortran 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 UCB Logo interpreter. | ||
| Ebda3 | A multi-paradigm high-level programming language. | ||
| Qalb | A Scheme-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-purpose natural Arabic programming 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 of Python. | [17] |
| Bengali | ChaScript | Built using ECMAScript grammar.[18] | [19] |
| Chinese | Chinese BASIC | Chinese-localized BASIC dialects based on Applesoft BASIC; for Taiwanese Apple II clones and the Multitech Microprofessor II. | |
| ChinesePython (ZhPy) | A version of Python with keywords and built-in identifiers all translated to Chinese. | [20] | |
| 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). | wenyan-lang on GitHub [21] | |
| 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. | tampio on GitHub | |
| 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 | WinDev programming language | ||
| Rouille | Rust translated into French[25] | rouille on GitHub | |
| German | Teuton | A German implementation of Python. | [26] |
| Schlange | Another German implementation of Python. | [27] | |
| Robot Karol | A 3D implementation and German translation of Karel used for educational purposes in secondary education. | ||
| Greek | Glossa | Based on Pascal, 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 of Logo. | [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 on GitHub | |
| Hindi, Bengali, Gujarati | Hindawi Programming System | A set of variants of C, C++, lex, yacc, assembly, BASIC, and Logo | |
| Icelandic | Fjölnir | An imperative programming language from the 1980s. | |
| Indonesian | BAIK | C with Indonesian keywords. | BAIK on SourceForge |
| 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 | A Lisp dialect based a comedian sketch of Aldo Giovanni and Giacomo | [39] on GitHub |
| GomorraSQL | A SQL dialect based upon the Italian series Gomorrah | [40] on GitHub | |
| Monicelli | An esoteric programming language based upon the so-called "Supercazzola" of the movie My Friends | monicelli on GitHub | |
| Japanese | Dolittle | Developed for educational purposes. Freeware. | [41] |
| Himawari (ひまわり) | Succeeded by Nadeshiko. Freeware. | [42] | |
| Kotodama (ことだま) on Squeak | Based on Squeak. For educational purposes. | [43] | |
| Mind | A variant of FORTH.[44] Commercial. | [45] | |
| Nadeshiko (なでしこ) | 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 | An object-oriented Japanese programming language. Successor of TTSneo. Freeware. | [49] | |
| TTSneo | 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 on GitHub |
| 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[52] | ||
| Changjo (창조) | A language using Hangul. It is used for multimedia and game programming. | ||
| hForth | A Forth system with an optional Korean keyword set. | [53] | |
| Latin | Lusus | ||
| Lingua::Romana::Perligata | Alternative Syntax for Perl 5 that allows programming in Latin. | [54] | |
| Latvian | LVskripts | Javascript translated into Latvian. | [55] on GitHub |
| Dzintars | Ruby translated into Latvian. | dzintars on GitHub | |
| Lithuanian | Setonas | Python translated into Lithuanian. | setonas on GitHub |
| Malay | Malaybasic | BASIC with Malay keywords | [56] |
| Malayalam | Thengascript | A dialect of JavaScript in the Malayalam language. | [57] |
| Malluscript | An esoteric scripting language made with Rust based on Manglish with an aim to provide inclusivity and diversity in programming. | [58] | |
| Nehiyawewin/Cree | Ancestral Code (Cree#) | An IDE and language based on the Nehiyaw (Cree) language and cultural storytelling practice. | [59] |
| Persian | Farsinet | An object-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 to Pascal | ||
| 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 on GitHub | |
| 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 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. | [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 "Polish Fortran" | ||
| 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 on Pascal. | [65] | |
| potigol | A functional programming language in Portuguese for beginners. | [66] | |
| Portugol | A programming language with Portuguese keywords. | ||
| Portugol Studio | A variation of Portugol that based in C and PHP for learning purposes. | [67] | |
| G-Portugol | A variation of Portugol. | gpt on GitHub | |
| 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 of MIR computers.[69] | ||
| Эль-76 | A language for symbolic manipulations with algebraic expressions used in the Soviet series of Elbrus computers.[70] | ||
| ЯМБ | ЯМБ (язык машин бухгалтерских) (machine language for accounting machines) – A Russian programming language for Iskra-554, Iskra-555, and Neva-501 specialized accounting computers. | ||
| КуМир | 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 | ||
| ХУЯ | A language to study programming | [71] | |
| Sanskrit | [72] | 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. | [73] |
| Serbian | Ћ плус плус | Ћ плус плус (Serbian, "C plus plus") is a JavaScript like programming language based on Cyrillic script | [74] |
| Sinhala | [75] | Ceylonicus, the first Sinhala-based programming language:
Ceylonicus is an open-source, interpreted, and functional programming language designed to bridge the gap between English and Sinhala syntax within a unified codebase. As a Sinhala Programming Language, it empowers developers to express their ideas in both languages seamlessly. Ceylonicus is implemented in Python, and features a web-based environment, built usingBrython. |
,[76] Source Code Ceylonicus Source Code on GitHub |
| Spanish | GarGar | A procedural programming language based on Pascal for learning purposes.[77] | |
| Vainilla | A pseudocode interpreter for Spanish that runs in the browser. | [78] | |
| 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. | [79] | |
| Latino | A language with a completely Spanish-based syntax. | [80] | |
| Sí | A direct translation pseudo-language for coding in C and C++ with Spanish keywords. | [81] | |
| Pauscal | A language with a completely Spanish-based syntax; compiler for 32-bit Windows. | ||
| InformATE | A translation of Inform, used for creating text-based games. | ||
| EsJS | An interpreted programming language with Spanish syntax, based on JavaScript. | ,[82][83][84] esjs on GitHub | |
| 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. | [85][86] |
| Swedish | Enkelt | A language with a completely Swedish-based syntax. Transpiled to Python. | [87] |
| Tagalog | Bato | Ruby translated into Tagalog. | bato on GitHub |
| Tamil | Ezhil | Developed for educational purposes. | |
| eTamil | The purpose of eTamil is to be an Indian DSL for Accounts & Fintech. | eTamil on GitHub | |
| Swaram | A simple, general-purpose and procedural language.[88] | ||
| Agaram | A simple, Tamil programming language with interpreter and compiler. | Agaram-programming-language on GitHub | |
| Niral | A Tamil programming language with Tamil & Latin script.[89] | ||
| Thendral | Thendral is a transpiler - Translates thendral ( a scripting language in Tamil ) to valid JavaScript | thendral on GitHub | |
| Maghilchi | It is an interpreted language with a natural language-like syntax with Tamil words.[90] | ||
| W language | HTML translation in Tamil language | w language on GitHub | |
| Turkish | Yakamoz | A Turkish implementation similar to that of Python. | [91] |
| Urdu | UrduScript | A dialect of JavaScript. | [92] |
| Welsh | Draig | A Welsh implementation of Raku | [93] |
| Yoruba | Yorlang | Built on top of Node.js. | [94] |
| 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.[95] | ||
| 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. | [96] | |
| 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
[edit]- 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.[97]
- 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.[98]
- 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
[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.[1] 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"[99] 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.[100]
- 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.
- 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]- ^ In HOPL (History of Programming Languages), advanced search finds languages by country.
- ^ "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.
- ^ "GOST 27975-88 Programming language ALGOL 68 extended – Язык программирования АЛГОЛ 68 расширенный" (PDF) (in Russian). GOST. 1988. Retrieved November 15, 2008.
- ^ "Hedy". Retrieved 2024-09-22.
- ^ Jacques Perrin, Conception entre science et art. Regards multiples sur la conception, Presses polytechniques et universitaires romandes
- ^ "AxumLight | Amharic based programming language". www.ethiocloud.com. Retrieved 2025-11-04.
- ^ "BunnaScript | EthioCloud". www.ethiocloud.com. Retrieved 2025-11-04.
- ^ "الخوارزم : لغة البرمجة الاحترافية بالعربية". alkhawarizm.org. Retrieved 2025-11-04.
- ^ "NameBright - Coming Soon". www.jeemlang.com. Retrieved 2025-11-04.
- ^ "Hello world: Meet قلب, a programming language based on Arabic script". 25 January 2013.
- ^ "ramsey nasser / قلب". nas.sr. Retrieved 2025-11-04.
- ^ "Arabnet | Kalimat: First Arabic Programming Language for Kids".
- ^ "عمّوريا (عرب) أول لغة برمجة عربية مفتوحة المصدر". ammoria.sourceforge.net. Retrieved 2025-11-04.
- ^ IA eng (PDF).
- ^ "عمّوريا (عرب) أول لغة برمجة عربية مفتوحة المصدر". ammoria.sourceforge.net. Retrieved 2025-11-04.
- ^ https://github.com/abukhadra/seen
- ^ https://github.com/arazgholami/nasimi
- ^ ChaScript: Breaking the language barrier using Bengali programming system, IEEE, doi:10.1109/ICECE.2014.7026875, S2CID 39503002.
- ^ "চা Script - Home". sjishan.github.io. Retrieved 2025-11-04.
- ^ "english.ht". www.chinesepython.org. Retrieved 2025-11-04.
- ^ http://wenyan-lang.lingdong.works
- ^ http://www.gotopp.org/index.html.en
- ^ Labelle, Marcel, Les langages de programmation (PDF).
- ^ Spip documentation team, Language glossary.
- ^ Rouille language homepage, 6 June 2022.
- ^ "teuton". www.fiber-space.de. Retrieved 2025-11-04.
- ^ actopozipc (2025-10-16), actopozipc/German-Python-Interpreter, retrieved 2025-11-04
- ^ "Ο Διερμηνευτής της ΓΛΩΣΣΑΣ για την Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον (ΑΕΠΠ)". alkisg.mysch.gr. Retrieved 2025-11-04.
- ^ https://github.com/hapy-lang/hapy Hapy Github page
- ^ "תמלילוגו". www.orianit.edu-negev.gov.il. Archived from the original on 2022-07-05. Retrieved 2025-11-04.
- ^ Litman, Elon (2025-10-21), elonlit/Genesis, retrieved 2025-11-04
- ^ https://omlang.com/ OM Lang
- ^ https://play.google.com/store/apps/details?id=com.omlang OM Lang Android App [dead link]
- ^ https://bharatam.netlify.com
- ^ https://www.kalaam.io/
- ^ "Bhailang - A toy programming language based on an inside joke". Bhailang Documentation. Retrieved 2025-11-04.
- ^ https://web.archive.org/web/20121001163914/http://www.sktnetwork.com/portfolio/hindi-programming-language
- ^ "Setanta | Teanga Ríomhchlarúcháin / Programming Language". try-setanta.ie. Retrieved 2025-11-04.
- ^ https://github.com/micheleriva/CadregaLisp CadregaLisp
- ^ https://github.com/aurasphere/gomorra-sql GomorraSQL
- ^ http://dolittle.eplang.jp/
- ^ http://kujirahand.com/himawari/
- ^ https://web.archive.org/web/20160408103217/http://crew-lab.sfc.keio.ac.jp/squeak/
- ^ 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.
- ^ "日本語プログラミング言語 Mind". www.scripts-lab.co.jp. Retrieved 2025-11-04.
- ^ 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.
- ^ 令和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.
- ^ https://nadesi.com/
- ^ "日本語プログラミング言語「プロデル」". 日本語プログラミング言語「プロデル」公式サイト (in Japanese). Retrieved 2025-11-04.
- ^ "TTSneo公式サイト". tts.utopiat.net. Retrieved 2025-11-04.
- ^ https://python3lover.github.io/unchiku/
- ^ "Aheui", Esolang (wiki).
- ^ "hForth - A Small, Portable ANS Forth". www.taygeta.com. Retrieved 2025-11-04.
- ^ "Client Challenge". metacpan.org. Archived from the original on 2025-09-30. Retrieved 2025-11-04.
- ^ https://github.com/dzzintars/LVskripts LVskripts
- ^ https://www.malaybasic.com/
- ^ https://makers-of-kerala.com/thengascript/
- ^ https://github.com/Sreyas-Sreelal/malluscript
- ^ Corbett, Jon (2023-07-20). "ᐊᒐᐦᑭᐯᐦᐃᑲᓇ ᒫᒥᑐᓀᔨᐦᐃᒋᑲᓂᐦᑳᓂᕽ | acahkipehikana mâmitoneyihicikanihkânihk | Programming with Cree# and Ancestral Code: Nehiyawewin Spirit Markings in an Artificial Brain". Digital Humanities Quarterly. 017 (2). ISSN 1938-4122.
- ^ "Google Code Archive - Long-term storage for Google Code Project Hosting". code.google.com. Retrieved 2025-11-04.
- ^ http://www.scanf.ir/?page=kati
- ^ http://www.simorghonline.com
- ^ https://www.jelcyn.com/dos/zdzich.htm
- ^ https://github.com/DesignLiquido/delegua
- ^ http://visualg3.com.br/
- ^ https://potigol.github.io/
- ^ http://lite.acad.univali.br/portugol/
- ^ https://ricardoborges.github.io/NPortugol/
- ^ Husberg, Nisse; Seppänen, Jouko (1974), "Analitik", ACM SIGSAM Bulletin, 8 (3), ACM: 24–25, doi:10.1145/1086837.1086841, S2CID 510819.
- ^ Эль-76, Кірыліца ў сеціве.
- ^ https://github.com/tsoding/good_training_language
- ^ https://omlang.com/ OM Lang
- ^ "OM Lang → World's First Sanskrit & Multilingual Programming Language". Retrieved 2025-11-04.
- ^ https://ћпп.срб
- ^ https://ceylonicus.vercel.app/ Ceylonicus
- ^ https://ceylonicus.vercel.app/ Run Online (WEB IDE)
- ^ Manual del lenguaje GarGar [GarGar Manual] (in Spanish), archived from the original on November 5, 2016.[permanent dead link]
- ^ https://vainilla.app
- ^ https://qriollo.github.io/
- ^ https://www.lenguajelatino.org
- ^ https://akercheval.github.io/si/
- ^ https://es.js.org/ Website
- ^ https://editor.esjs.dev/ Playground
- ^ https://aprender.esjs.dev/ Learn
- ^ http://swap.edtech.co.tz/
- ^ http://edtech.co.tz/
- ^ https://enkelt.edvard.dev
- ^ Ganesh (PDF), Infitt, 2003.
- ^ Niral (PDF), IJARCCE, 2024.
- ^ Maghilchi, Medium, 2022.
- ^ https://yakamoz.netlify.app/
- ^ https://asadmemon.com/urduscript/
- ^ "Creating a new programming language - Draig". DEV Community. 2024-01-15. Retrieved 2024-12-02.
- ^ https://anoniscoding.github.io/yorlang/docs/doc.html
- ^ C/S Entwicklungsumgebung ML4, ML-Software.
- ^ https://catrobat.org
- ^ "The Brainfuck Programming Language". Muppetlabs.com. Retrieved 2013-10-30.
- ^ Temkin (August 2015). "Light Pattern: Writing Code with Photographs". Leonardo. 48 (4): 375–381. doi:10.1162/LEON_a_01091. S2CID 57571969.
- ^ 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.
- ^ Language Design in Maude, by Matthias, 2006/06/05, LShift Ltd.
Sources
[edit]- Pigott, Diarmuid (2006). "HOPL, the History of Programming Languages". Archived from the original on 2011-02-20. Retrieved 2008-04-14.
External links
[edit]- SAKO information page at HOPL – By Diarmuid Pigott
Non-English-based programming languages
View on GrokipediaHistorical Context and Motivations
Dominance of English-Based Languages
The dominance of English-based programming languages originated in the United States during the 1950s and 1960s, when computing research and development were concentrated there. FORTRAN, released by IBM in 1957, was the first widely adopted high-level programming language, designed for scientific and engineering applications with keywords drawn from English to align with the linguistic background of its primary users in American academia and industry.[7] Similarly, COBOL, developed in 1959 under the auspices of the U.S. Department of Defense, incorporated English phrasing to support business data processing, reflecting the era's U.S.-centric innovation ecosystem that shaped the foundational standards for subsequent languages. This historical precedent has persisted, resulting in the overwhelming prevalence of English keywords across modern programming languages. A 2025 analysis indicates that approximately 90% of programming languages employ English-based syntax, a pattern reinforced by dominant languages such as Python, Java, and C++, which together account for a significant share of global software development.[8] This uniformity stems from the influence of early English-based designs on international standards and the interoperability requirements in collaborative software engineering.[9] For non-native English speakers, this reliance on English introduces substantial barriers, including heightened cognitive load from translating and internalizing technical terminology during code comprehension and debugging. Research from a 2018 study on computer science education found that such learners face challenges in reading instructional materials, engaging in technical discussions, and writing code, often leading to reduced performance and slower skill acquisition in regions where English is not the primary language.[10] A 2019 investigation further confirmed that non-native speakers encounter more severe obstacles in programming language acquisition compared to native speakers, exacerbating educational disparities.[11] The broader industry implications of English dominance are profound, as it permeates documentation, libraries, APIs, and developer communities, creating exclusionary effects for the global majority. With roughly 75% of the world's population unable to speak English, this linguistic barrier limits access to programming resources and opportunities, hindering participation in the tech sector for billions in non-English-speaking countries.[12] Over 80% of technical documentation remains in English, compounding these issues and underscoring the need for more inclusive practices in software development ecosystems.[8]Reasons for Non-English Alternatives
Non-English-based programming languages address significant accessibility barriers for speakers in regions with low English proficiency, such as Latin America, Asia, and the Middle East, where English keywords in code and documentation exacerbate the learning curve. A global survey of 840 non-native English speakers from 86 countries revealed that 35% struggle with reading instructional materials due to language issues, 16% face difficulties reading code because of English-based keywords, and 11% encounter challenges writing code involving English naming conventions.[3] In Asia, respondents from countries like India and China highlighted a scarcity of native-language resources, while in Latin America, such as Brazil, outdated or limited Portuguese materials hinder progress, and Arabic speakers in the Middle East report suboptimal support.[3] These languages mitigate such obstacles by aligning syntax with users' primary tongues, thereby broadening participation in programming education and professional development. Cognitive benefits arise from matching programming syntax to the user's native language, facilitating faster comprehension and reducing cognitive load during learning. In a study with undergraduate students in India learning data structures, those receiving bilingual instruction (English and Tamil) reported enhanced understanding of complex concepts through native-language explanations, and expressed positive opinions about the approach due to increased comfort and engagement.[13] Participants noted that mixing languages helped clarify ideas and maintained attentiveness, though quantitative learning outcomes showed no significant differences between groups.[13] Such approaches promote deeper conceptual grasp, particularly for beginners, by leveraging familiarity with native linguistic structures. These alternatives support cultural and educational integration by embedding programming instruction within local curricula, enabling children to learn coding concepts through their primary languages and fostering early STEM engagement without language barriers. The European Union's multilingualism policy emphasizes innovative digital tools for language learning in education, recommending proficiency in the mother tongue plus two additional languages by upper secondary level to leverage multilingual classrooms as resources.[14] This alignment enhances inclusivity, allowing programming to be taught alongside native cultural contexts and reducing dropout rates in diverse educational settings. Globalization efforts, including UNESCO and EU initiatives since the 2000s, underscore the push for linguistic diversity in technology to promote equitable digital access. UNESCO's Language Technologies for All (LT4All) conference and the forthcoming Global Roadmap for Multilingualism in the Digital Era advance language technologies to empower underrepresented communities, aligning with the International Decade of Indigenous Languages (2022-2032) and the 2003 Recommendation on Multilingualism and Universal Access to Cyberspace.[15][16] Similarly, the EU's policy promotes language diversity for competitiveness and dialogue, funding projects like Erasmus+ to integrate multilingual digital education.[14] Specific drivers include localization demands in enterprise software for markets like Russia and China, where adapting tools to native languages ensures broader adoption, alongside broader inclusivity goals in global education to democratize technical skills.[17]Languages Using Non-English Natural Language Keywords
Based on Romance or Germanic Languages
Programming languages based on Romance or Germanic languages typically adapt the structural paradigms of established English-based languages, such as BASIC or Python, by replacing keywords with direct translations from the target natural language. This approach aims to lower the entry barrier for non-English speakers, particularly in educational settings, by aligning syntax with familiar vocabulary while preserving core programming concepts like conditionals, loops, and output operations.[18] One prominent example is Latino, a scripting language developed starting in 2015 that uses Spanish keywords and syntax inspired by Python and Lua. In Latino, constructs like the conditional statement use "si" instead of "if", and loops employ "para" for iteration, enabling code such assi (condicion) { imprimir("mensaje") } to feel more intuitive for Spanish speakers. Designed primarily for educational purposes in Latin America, Latino supports full functionality for tasks like file handling and web development, but its adoption remains niche outside teaching contexts.[6][18]
In the French context, LSE (Langage Symbolique d'Enseignement), created in the early 1970s at Supélec for educational use in French high schools, exemplifies a BASIC-like language with French keywords. Keywords include "SI" for conditionals, "POUR" for loops, and "IMPRIMER" for output, allowing programs to read more like natural French sentences, such as SI X > 0 ALORS IMPRIMER "Positif". Developed to promote informatics education without requiring English proficiency, LSE was implemented on minicomputers like the Télémécanique machines and influenced subsequent French teaching tools, though it saw limited commercial use beyond academia.[19][20]
For Portuguese, Amanda is a statically typed language that incorporates Portuguese constructs, using terms like "imprimir" for printing and "se" for if-statements, as in imprimir("Olá mundo"). Released as an open-source project, it targets Brazilian developers and educators, facilitating syntax adaptations for regional software prototyping, but like similar efforts, it has not achieved widespread production deployment.[21]
Germanic adaptations include experimental efforts like Dava, a modified version of Java where keywords are translated to German equivalents, such as "wenn" for "if" and "drucken" for "print". Created as a proof-of-concept, it demonstrates how object-oriented syntax can be localized for German-speaking users, primarily for exploratory or humorous purposes rather than serious development. These languages, including variants of FOCAL from the 1960s-1970s with French and German keywords produced by DEC for European markets, highlight a pattern of educational and regional focus with constrained broader impact.[22]
Overall, such languages serve mainly in pedagogy and localized applications, fostering accessibility in non-English-dominant regions while facing challenges in interoperability and community scale compared to English-based standards.[18]
Based on Asian or Middle Eastern Languages
Non-English-based programming languages drawing from Asian or Middle Eastern natural languages primarily incorporate logographic scripts like Chinese characters or right-to-left (RTL) alphabets such as Arabic to replace English keywords, aiming to reduce linguistic barriers for native speakers in regions where English proficiency varies.[23] These designs often translate or reinterpret established paradigms, such as imperative or functional programming, into culturally resonant syntax, though they face technical hurdles in script rendering and tool integration.[24] Examples include adaptations for educational purposes in China and exploratory projects in Arabic-speaking communities, highlighting motivations like inclusivity and cultural expression over widespread commercial adoption.[25] Zhpy, developed in the late 2000s as "Chinese Python," is a Python dialect that translates English keywords into Chinese characters, enabling full programs in Simplified or Traditional Chinese while maintaining Python's semantics.[26] For instance, the Englishprint statement becomes 打印, allowing code like 打印 '你好世界' to output "Hello World" after bidirectional translation to standard Python.[27] Released as a Python module compatible with versions 2.4 and 2.5, Zhpy includes a shell, autocomplete, and embedding tools, primarily used for language learning in Chinese-speaking regions by simplifying syntax exposure for beginners.[26] Its Unicode support handles logographic characters seamlessly, though it requires conversion for execution in English-based environments.[26]
Wenyan-lang, launched in December 2019, is an esoteric Turing-complete language that emulates the grammar and aesthetics of classical Chinese literature, using traditional characters to compose programs resembling ancient poetry.[2] Created by developer Lingdong Huang, it compiles to JavaScript, Python, or Ruby, with an online IDE for experimentation; a simple output command like 書之曰「問天地好在。」 prints "How are heaven and earth?" in a style evoking Confucian texts.[2] Variable declarations follow poetic structures, such as 有數三。名之「一」, assigning the value 3 to variable "一," while conditionals use phrases like 若真則 for "if true."[2] Recognized by Guinness World Records as the first classical Chinese programming language, Wenyan-lang serves artistic and educational goals, fostering appreciation for historical linguistics through computation.[28]
Qalb (قلب, meaning "heart"), developed in 2012 and introduced in 2013 by Ramsey Nasser, is a functional, Scheme-inspired language written entirely in Arabic script, with RTL syntax to mirror natural reading direction and challenge Eurocentric biases in programming. Keywords include Arabic terms like إذا for conditional statements and اكتب for output, as in a "Hello World" program: اكتب "مرحبا بالعالم", which executes via a JavaScript interpreter.[29] Designed for Arab developers, it supports core features like recursion and lists but remains a proof-of-concept, debuted at Eyebeam's artist showcase to explore cultural impacts on code aesthetics. Qalb's adoption is niche, focused on awareness rather than production use, with implementations like a Pong game (بونج) demonstrating feasibility in creative contexts.
In Japan, academic and hobbyist experiments in the 2000s and 2010s have produced languages like Unchiku (うんちく), an educational tool from 2018 resembling natural Japanese for beginners, and Haku, a 2021 functional language based on literary Japanese syntax.[30] Unchiku, awarded at Tech Kids Grand Prix, limits operations to basics like loops and conditionals in hiragana/katakana, aiding non-English learners without altering core logic. Haku, implemented in Raku, parses sentences like subject-object-verb structures for functional constructs, drawing from classical texts to prototype natural-language-like programming.[31] These efforts parallel Western non-English adaptations but emphasize Japan's mixed scripts (kanji, hiragana), though mainstream Japanese development sticks to English keywords due to global tool ecosystems.[32]
Implementing these languages involves significant challenges, particularly with logographic scripts in Chinese-based designs, which demand robust Unicode handling to avoid rendering issues in editors and compilers, and RTL flow in Arabic like Qalb, complicating bidirectional text mixing with Latin outputs.[23] Adoption remains limited outside education—Zhpy aids Chinese Python tutorials, while Qalb inspires Arab coding workshops—but grows in localized contexts to promote accessibility, with ongoing experiments addressing script complexity for broader viability.[25][24]
Based on Other Natural Languages
Non-English-based programming languages based on other natural languages, including constructed and indigenous ones outside major European or Asian families, represent niche efforts to adapt programming paradigms to unique linguistic structures. These languages often prioritize cultural relevance, education, or entertainment over widespread adoption, drawing from constructed languages like Klingon or indigenous ones such as Swahili to make coding more accessible to specific communities.[33] One prominent example is var'aq, an esoteric programming language developed in the early 2000s, inspired by the constructed Klingon language from the Star Trek universe. Var'aq uses Klingon vocabulary for its keywords, such asHIja’chugh for conditional execution (translating to "if it is") and qapla’ to signal program completion ("success"), reflecting the language's aggressive, declarative tone. Its syntax adapts Klingon grammar by incorporating object-verb structures in control flows, where commands like woD (to discard stack elements, meaning "be gone") emphasize imperative, stack-based operations reminiscent of Forth, but flavored with Klingon's noun-heavy phrasing for procedures. Designed purely for fun and linguistic experimentation, var'aq remains an interpreted, stack-oriented language without practical applications, highlighting the playful side of non-English programming.[34]
In contrast, 1C:Enterprise, originating in the 1990s as a business automation platform in Russia, employs Russian Cyrillic keywords to align with its primary user base in enterprise software development. Keywords such as Если (if), Тогда (then), and Иначе (else) mirror Russian sentence structure, allowing developers to write control structures that resemble natural prose, like Если условие Тогда ... КонецЕсли for conditionals. This adaptation of Russian grammar, including verb-subject ordering in loops (e.g., Для каждого элемента Из коллекции Цикл), facilitates readability for non-English speakers in accounting and ERP systems, where it powers millions of installations across post-Soviet regions. While English keywords are optionally available for interoperability, the Russian mode underscores its role in localized business logic without relying on translation.[35]
Indigenous language pilots, particularly in educational contexts, include efforts like Nuru, a Swahili-based programming language developed in the early 2020s in East Africa to promote computational thinking among Kiswahili speakers. Nuru's keywords draw from Bantu grammar, using intuitive terms such as andika (print, from "write") and jaza (input, from "fill") in verb-initial constructions that echo Swahili's subject-verb-object patterns, as in kama sharti ni kweli basi ... for if-statements (adapting "if condition is true then"). Limited to prototyping and classroom tools, and remaining under active community-driven development as of 2024, similar initiatives in Oceania have explored Māori terms for basic coding concepts in unplugged activities, such as roro hiko for "computer" in logic puzzles, though full languages remain scarce. These projects adapt indigenous grammar by integrating noun classes or conjugation into variable scoping and loops, fostering cultural preservation through technology education in regions like Kenya and New Zealand.[36][37][38]
Overall, these languages serve niche applications, from esoteric entertainment in var'aq to enterprise productivity in 1C:Enterprise and cultural revitalization in indigenous pilots like Nuru, emphasizing accessibility for diverse linguistic groups without challenging mainstream paradigms.[33]
Symbolic and Non-Textual Programming Languages
Symbol-Based Languages
Symbol-based programming languages utilize mathematical symbols, operators, and custom glyphs in place of textual keywords derived from natural languages, promoting a form of universality that transcends linguistic dependencies. This approach draws from mathematical notation traditions, enabling concise expression of computations, particularly for array-oriented operations, without reliance on English or other verbal constructs. Such languages emerged as a deliberate design choice to facilitate international collaboration in technical fields like mathematics and engineering, where symbolic representation is already prevalent. The foundational influence traces back to Kenneth Iverson's development of array-oriented mathematical notation in the late 1950s at Harvard University, initially as a tool for describing data processing algorithms without verbal elements, aimed at global mathematical communities. This notation evolved into the APL programming language in the 1960s, implemented by Iverson and colleagues at IBM, where it was formalized as a full programming system centered on multidimensional arrays. APL employs a rich set of over 100 special graphic symbols to denote primitives, such as ⍳ for the index generator (iota, which produces a vector of sequential integers) and ⍎ for execute (which evaluates a character vector as code), allowing array manipulations to be expressed idiomatically without natural language terms. Designed explicitly for mathematical and scientific computing, APL's symbolic syntax supports terse, readable expressions for complex operations like matrix transformations or statistical analyses. Building on APL's legacy, variants like J and K emerged in the 1990s and 2000s to address practical limitations while retaining symbolic brevity. J, developed by Kenneth E. Iverson and Roger Hui at Iverson Software Inc., with contributions from Eugene McDonnell and others, extends APL's semantics using ASCII characters for broader accessibility, eschewing special fonts; for instance, +/ denotes the sum (insert) of an array's elements along the last axis, enabling compact reductions such as summing a vector in a single token. Similarly, K, created by Arthur Whitney in 1993 as a proprietary dialect, incorporates APL primitives with Scheme-like list handling and restricts symbols to ASCII for high-performance array processing, emphasizing speed in data-intensive tasks. These extensions maintain the non-verbal core, refining APL's design for modern computing environments. A key advantage of symbol-based languages lies in their language-agnostic nature, fostering compact code that reduces verbosity—often achieving in a few symbols what requires dozens of lines in textual languages—and enabling portability across cultures without translation needs. In finance, this conciseness proves valuable for rapid prototyping and execution in time-sensitive domains; for example, Dyalog APL, a contemporary implementation, powers trading systems and financial analytics at firms like SimCorp, where it handles portfolio management and risk calculations efficiently due to its array primitives. However, drawbacks include a steep learning curve stemming from the non-mnemonic symbols, which demand memorization and shift programmers' thinking toward tacit, point-free styles rather than procedural narratives. Additionally, traditional APL implementations historically required custom keyboards to input the full glyph set, though modern variants like J and K mitigate this via ASCII approximations. These languages represent a non-textual evolution that has inspired visual extensions in later paradigms.Visual and Iconic Languages
Visual and iconic programming languages represent a paradigm shift from textual code to graphical interfaces, where programming constructs are expressed through draggable blocks, icons, wiring diagrams, or 3D objects rather than alphabetic keywords. This approach renders them inherently adaptable to non-English contexts, as the core logic relies on visual metaphors that transcend linguistic barriers, allowing localization through iconography or minimal text overlays in diverse scripts. Pioneered in the late 20th century, these languages prioritize intuitive interaction to facilitate learning and application in fields like education and engineering.[39] Scratch, developed in the 2000s by the MIT Media Lab's Lifelong Kindergarten group, exemplifies block-based visual programming with drag-and-drop puzzle-piece icons representing control structures like loops and conditionals. Users snap together colored blocks to script behaviors for sprites in interactive stories, games, and animations, eliminating syntax errors common in text-based coding. The interface supports over 70 languages for block labels, enabling seamless adaptation without altering the underlying visual logic.[40][41][42] Alice, originating in the 1990s at the University of Virginia and advanced at Carnegie Mellon University from 1997, focuses on 3D animation through object icons that embody programming concepts such as methods and events. Programmers drag icons representing 3D models and actions onto a storyboard timeline, fostering object-oriented thinking in a virtual world where code directly manifests as animated scenes. This iconic system supports narrative-driven projects, making abstract ideas tangible without reliance on written commands.[43][44] LabVIEW, introduced in 1986 by National Instruments, employs a graphical dataflow model where programs are assembled via wiring diagrams connecting functional icons on a block diagram. Engineers wire virtual instruments—represented as icons for data acquisition, analysis, and control—to automate test and measurement systems, with execution flowing visually from left to right. Widely adopted in industrial engineering, its icon-centric design minimizes textual elements, supporting international use through standardized graphical notations.[39][45] International adaptations of these languages emphasize visual localization, such as Scratch's sprite icons rendered with non-Latin scripts like Arabic or Chinese, ensuring accessibility for users unfamiliar with English or Latin alphabets. This approach preserves the iconic essence while overlaying culturally relevant text, as seen in Scratch's volunteer-translated interfaces that maintain block shapes across scripts. Building briefly on symbol-based precursors, these visual systems extend static symbols into dynamic, interactive graphics for broader engagement.[41][46] The educational impact of visual and iconic languages is profound, lowering entry barriers for beginners by leveraging spatial reasoning over linguistic proficiency, with Scratch alone amassing over 135 million registered users as of 2025.[47] Studies and deployment data highlight their role in democratizing computing education, particularly in diverse linguistic regions, by enabling millions to grasp programming fundamentals through intuitive visuals rather than rote memorization of English terms. Recent growth in user base and ongoing localization efforts continue to expand their global reach.[48][40]International and Natural Language-Inspired Designs
Languages Using Auxiliary Languages
Languages using auxiliary languages draw from constructed international auxiliary languages, such as Esperanto, to create neutral, accessible syntax that minimizes cultural and linguistic biases associated with English-dominated programming paradigms. These languages aim to foster global collaboration by leveraging the designed simplicity and universality of auxiliary languages, which are engineered for ease of learning and cross-cultural communication. By incorporating elements from these constructed systems, programmers from diverse backgrounds can engage with code without the barrier of learning English-specific terminology, promoting inclusivity in software development. A key historical example is ALGOL 68, developed in the 1960s as an imperative language with built-in support for multilingual modes through national variants and syntax extensions. This design allowed for adaptations incorporating national syntax variants, enabling international committees to use terms from various languages in preludes and postludes for keywords and operators, thus supporting global standardization efforts.[49] Actual implementations of programming languages based on auxiliary languages remain rare, with efforts largely confined to theoretical discussions and adaptations like those in ALGOL 68.Natural Language Programming Interfaces
Natural language programming interfaces enable users to write code using everyday spoken or written vernaculars from various languages, relying on computational parsing to interpret intent rather than enforcing rigid syntactic keywords. These systems leverage natural language processing (NLP) techniques, such as tokenization, syntactic analysis, and semantic interpretation, to convert colloquial expressions into executable instructions.[50] This approach contrasts with traditional programming by prioritizing accessibility over precision, though it often faces challenges in resolving ambiguities inherent in human language, like polysemy or contextual nuances, which can lead to misinterpretation of user intent.[51] One prominent example is Hedy, a gradual programming language introduced in the 2020s, designed specifically for educational purposes and supporting over 30 natural languages, including Dutch, Spanish, and others.[52] In Hedy, users can program using simple vernacular phrases, such as "if age > 18 say hello" translated into Dutch ("als leeftijd > 18 zeg hallo") or Spanish ("si edad > 18 di hola"), which the system parses progressively from basic to more structured syntax levels.[53] Developed by Felienne Hermans, Hedy employs NLP for intent recognition, starting with keyword matching and evolving to handle conditionals and loops without punctuation or indentation in early levels.[54] Its multilingual parser draws from curated grammars and machine learning models trained on common educational constructs, making it adaptable to non-English inputs while mitigating some ambiguity through level-specific constraints.[55] Inform 7, originating in the 2000s, represents an earlier effort in natural language interfaces tailored for interactive fiction authoring, primarily using English prose that mimics narrative descriptions.[56] The language parses declarative sentences like "The kitchen is a room" into underlying object models and rules, employing a domain-specific NLP engine focused on intent extraction for game logic.[57] Extensions have enabled support for other languages, such as French, through community-developed language packs that adapt the parser's vocabulary and grammar rules, allowing authors to write scenarios in vernacular French while maintaining the English core's semantic structure.[57] Limitations in ambiguity resolution persist, particularly with idiomatic expressions, often requiring explicit disambiguation in extensions.[51] Elements of the Wolfram Language, enhanced since the 2010s, incorporate semantic parsing for natural queries that can extend to non-English inputs via its integrated NLP system.[58] The Wolfram Natural Language Understanding framework transforms free-form text into computable expressions, supporting multilingual queries through language models that handle semantic intent across languages like French or Spanish by leveraging curated knowledge bases and probabilistic parsing.[59] For instance, a query like "plot the sine function" in Spanish ("grafica la función seno") can be interpreted and executed, though full non-English adaptability relies on the system's growing support for diverse linguistic inputs.[60] These interfaces find primary applications in beginner education and rapid prototyping, where lowering the entry barrier encourages non-programmers to experiment. Hedy, for example, has been integrated into European school curricula, such as through EU Code Week activities, to teach computational thinking via storytelling in students' native languages, fostering engagement among pre-teens aged 10-15.[61][62] Despite their promise, the reliance on NLP introduces scalability limits, as advanced ambiguity resolution demands extensive training data per language, often constraining these tools to simpler domains.[51]Experimental and Advanced Features
Modifiable Syntax Systems
Modifiable syntax systems in programming languages enable users to dynamically customize parsers and syntax rules, allowing the integration of non-English elements or domain-specific notations without altering the core compiler or interpreter. These systems leverage metaprogramming techniques, such as macros and parser generators, to redefine syntactic structures at compile-time or runtime, facilitating adaptable codebases that can incorporate multilingual keywords or alternative grammars. This approach contrasts with fixed-syntax languages by providing flexibility for users to extend the language's surface syntax, often through homoiconic representations where code and data share the same form.[63] Lisp dialects, originating in the 1960s, exemplify modifiable syntax through S-expressions, which represent both code and data uniformly, enabling powerful macro systems to redefine syntax. In Common Lisp and its descendants, reader macros and define-syntax macros allow users to introduce custom parsing rules, such as mapping non-English keywords to standard forms; for instance, Clojure's macro system permits defining Tamil equivalents likeஎனில் for if, translating them to native Clojure code at expansion time via symbol mappings in a dedicated namespace. This metaprogramming capability, rooted in Lisp's homoiconicity, supports syntax redefinition without recompiling the language, as macros generate S-expressions that the evaluator processes seamlessly.[63][64]
Racket, developed in the 2000s as a descendant of Scheme, builds on Lisp traditions with advanced language extension tools that allow creating domain-specific languages (DSLs) with customized syntax. Using the #lang directive and macro expander, developers can define new syntactic categories and binding rules, enabling variants that incorporate non-English notations for specialized applications; for example, macros can extend the reader to parse alternative infix or natural-language-inspired forms while compiling to core Racket semantics. Racket's module system further supports packaging these extensions as standalone languages, promoting reusable syntax modifications across projects.[65][66]
In Python, user-defined parsers via libraries like Parsimonious or Lark facilitate syntax overlays for non-English elements, such as French-inspired keywords, by defining PEG or EBNF grammars that process custom input before invoking the standard interpreter. Parsimonious, a pure-Python PEG parser, supports Unicode literals and regexes to handle non-ASCII syntax, allowing runtime construction of parse trees that map alternative keywords to Python AST nodes using NodeVisitor subclasses. Similarly, Lark's Earley parser generates annotated trees from context-free grammars, enabling seamless integration of modified syntax without core language changes. These tools exemplify metaprogramming features like exec and AST manipulation, permitting runtime syntax adjustments via dynamic code evaluation.[67][68]
Such systems find use cases in research environments and multilingual development teams, where customizable syntax reduces cognitive barriers by aligning code with native languages, enhancing collaboration without sacrificing performance; for instance, teams can prototype DSLs for international projects, adapting syntax for locale-specific keywords while maintaining interoperability.[65][69]
Esoteric Non-English Languages
Esoteric non-English languages form a subset of esolangs that incorporate non-Latin scripts, non-English grammars, or cultural motifs to explore the intersection of linguistics and computation in unconventional ways, often for artistic or satirical effect rather than practical use. These languages emerged as part of the broader esolang movement, which began in the 1990s with early experiments like INTERCAL but expanded significantly in the 2000s and 2010s through online communities fostering creativity in non-Western hacker cultures. By the 2020s, contributions from diverse regions, including Indigenous communities, highlighted how such languages can critique the Eurocentric foundations of programming while demonstrating the flexibility of computational expression.[70] A notable example is Piet, created by David Morgan-Mar in 2001, an image-based esolang where programs resemble abstract art rather than text, rendering it entirely language-agnostic and free from English or any script-based constraints. In Piet, operations are encoded through cycles of 18 colors and block sizes, with the instruction pointer navigating pixel grids like a codel (color element), allowing "code" to evoke visual poetry without linguistic ties. This design underscores the potential for non-textual programming to bypass cultural biases in syntax, influencing later visual esolangs.[71] Chef, devised by David Morgan-Mar in the mid-2000s, structures programs as culinary recipes with ingredients representing variables and operations mimicking cooking steps, originally in English but adaptable to other languages through translated recipe terminology. Variants in languages like German have been implemented, where terms such as "Zutaten" (ingredients) replace English equivalents, preserving the humorous, non-utilitarian core while localizing the aesthetic for cultural resonance. Such adaptations illustrate how esolangs can blend everyday non-English idioms with computational logic for playful boundary-testing.[72][73] Brainfuck, the minimalist esolang from 1993 by Urban Müller, has inspired numerous adaptations that remap its eight symbols (+ - < > [ ] . ,) to non-English characters. These substitutions maintain Turing-completeness but introduce script-specific challenges, emphasizing the language's role in probing Unicode and internationalization limits.[74] Cultural esolangs further exemplify this trend, such as Qalb (قلب), a 2012 functional language by Ramsey Nasser that uses right-to-left Arabic script for all syntax, designed to produce calligraphic code that "looks beautiful" and subverts Latin-alphabet dominance in programming. Similarly, wenyan-lang, developed in 2019, emulates classical Chinese literary style with poetic constructs like "曰" for output, turning programs into wenyan (literary Chinese) texts to blend ancient aesthetics with modern computation. Indigenous-inspired efforts include Cree#, created by Jon Corbett around 2020, which integrates Nehiyawewin (Plains Cree) keywords and metaphors, such as spirit-based control flow, to reclaim cultural narratives in code and foster linguistic sovereignty. These works, often shared in global esolang forums, prioritize demonstrating linguistic diversity's computational viability over utility.[75][76] The evolution of these languages reflects a shift from 1990s symbol-focused minimalism to 2020s culturally attuned experiments, enabled by modifiable syntax frameworks that allow rapid prototyping of non-standard grammars. Community platforms have driven this growth, with non-English contributions surging as diverse creators highlight how esolangs can mirror global linguistic pluralism.[70]References
- https://fr.wikibooks.org/wiki/Programmation_LSE
