Non-English-based programming languages

From Wikipedia, the free encyclopedia

Non-English-based programming languages are computer programming languages that, unlike better-known programming languages, do not use keywords taken from, or inspired by, the English vocabulary.

Prevalence of English-based programming languages

There has been an overwhelming trend in programming languages to use the English language to inspire the choice of keywords and code libraries. According to the HOPL online database of languages,[1] out of the 8500+ programming languages recorded, roughly 2400 of them were developed in the United States, 600 in the United Kingdom, 160 in Canada, and 75 in Australia.

In other words, over a third of all programming languages were developed in a country with English as the primary language. This does not take into account the usage share of each language, situations where a language was developed in a non-English-speaking country but used English to appeal to an international audience (see the case of Python from the Netherlands, or Ruby from Japan), and situations where it was based on another language which used English (see the case of Caml, developed in France but using English keywords).

International programming languages

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

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

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

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

Based on non-English languages

  • Aheui – An esoteric programming language similar to Befunge but using Hangul (Korean)[4]
  • AMMORIA – Open source object oriented Arabic programming language, designed especially for Arabs.[5]
  • Analitik – A Russian-based language for symbolic manipulations with algebraic expressions used in the Soviet series of MIR computers.[6]
  • ARLOGO – The first open-source Arabic programming language, based on the UCB Logo interpreter
  • 丙正正 – Chinese C++
  • Changjo – A language using Hangul (Korean). It is used for multimedia and game programming.
  • Chinese BASICChinese-localized BASIC dialects based on Applesoft BASIC; for Taiwanese Apple II clones and the Multitech Microprofessor II
  • Dolittle, ドリトル – A Japanese programming language developed for educational purposes.[7]
  • Drama, an assembly language for didactical purposes based on Dutch
  • Dzintars - Ruby language translated into Latvian language
  • EPL (Easy Programming Language) (易语言) – A Chinese rapid application development language.
  • எழில், Ezhil programming language – A Tamil programming language developed for educational purposes.[8]
  • farsinet – A Persian (Farsi, فارسی, پارسی) OO programming language for .NET framework. It is similar to C# and Delphi.
  • Fjölnir – An Icelandic imperative programming language of the 1980s
  • FOCAL – Keywords were originally English, but DEC produced versions of FOCAL in several European languages
  • 4th Dimension – On local versions, its internal language uses French or German keywords
  • G-Portugol – A programming language with Portuguese keywords[9]
  • Glagol – A Russian-based programming language similar to Oberon and Pascal
  • GOTO++ – A French esoteric programming language loosely based on French and English.[10]
  • Himawari, ひまわり – A Japanese programming language.[11] It is used for hobby and business applications.
  • Hindawi Programming SystemIndian language set of equivalents for C, C++, lex, yacc, assembly, BASIC, logo, Ada, and others for languages such as Hindi, Gujarati, Assamese, and Bengali (with the BangaBhasha version)
  • Hanbe – A BASIC language using Hangul (Korean). Hanbe has been packaged with a Korean operating System, K-DOS.
  • Hindi Programming Language – A Hindi programming language for the .NET Framework.[12]
  • hForth – A Forth system with an optional Korean keyword set.[13]
  • HPL – Hebrew Programming Language
  • Jeem ج – Arabic programming language, based on C++ with simple graphics implementation..
  • Karel – Educational programming language with Czech and Slovak versions
  • Kotodama on Squeak, ことだま on Squeak – A Japanese programming language based on Squeak for educational purposes.[14]
  • Kumir – A Russian-based programming language similar to Pascal and IDE, mainly intended for educational usage in schools. The name is an acronym, which means Комплект ученический 'Мир' ('Mir' student's environment).
  • Lexico – A Spanish OO language for teaching .NET programming
  • Linotte – A French programming language
  • Logo – In one of its Apple II editions was available in French.
  • Loughaty (MyProLang) – A general-purpose natural Arabic programming language based on a proprietary syntax.[15]
  • LSE – Langage Symbolique d'Enseignement, a French, 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.
  • 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.
  • Mind – A Japanese programming language.[16] It is used for hobby and business applications.
  • 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 [17]
  • Nadesiko, なでしこ – A Japanese programming language[18][19] It is used for hobby and business applications.
  • 1C:Enterprise – A Russian framework and language for business applications. English keywords can also be used
  • Ook! – An exotic and esoteric programming language with three distinct syntax elements only. According to the language author, Ook! is designed for orang-utans [20]
  • Pauscal – A language with a completely Spanish-based syntax; compiler for 32-bit Windows.
  • PerlYuYan – Perl in Classical Chinese
  • PSeInt Abbreviation of Pseudo code Interpreter, an pseudo code interpreter for Spanish speaker
  • Phoenix – A C-like high-level imperative procedural Arabic programming language[21]
  • قلب (qlb) – an Arabic Scheme-like programming language exploring the role of human culture in coding[22]
  • Produire, プロデル – An object oriented Japanese programming language.[23] It is used for hobby and business applications.
  • Rapira – A Russian-based interpreted procedural programming language with strong dynamic type system
  • Robik – A simple Russian-based programming language for teaching basics of programming to children
  • RoboMind – An educational programming language available in: Arabic, Chinese, Dutch, English, French, German, Greek, Polish, Brazilian Portuguese, Spanish, Swedish, Turkish.
  • SAKO – A language created in the 1950s and nicknamed the "Polish Fortran"
  • Scratch - introductory visual programming language from MIT's Media Lab with support for programming in multiple languages included as standard
  • Sema – Arabic CSS implementation.[24]
  • Simorgh (SPL) سیمرغ – is an Object Oriented, general purpose, interpreted – precompiled, portable and open source programming language.
  • Ssiat – A language using Hangul (Korean). The name Ssiat (씨앗) means seed in Korean.
  • Swaram – A simple, general-purpose and procedural language designed for programming in Tamil.[25]
  • Superlogo – A Dutch creation for computer-aided instruction, based on Logo
  • TamliLogo – A Hebrew implementation of Logo.
  • TI-Calculator BASIC – The 68000 version is localized. Unfortunately, various configuration strings are localized too, preventing direct binary compatibility.
  • TTSneo – A Japanese programming language . It is used for hobby applications.
  • var'aq – A language based on the constructed Klingon language of Star Trek
  • W-Language – A French programming language used in the WinDev CASE Tool. A Chinese version[26] is also available.
  • YMB (Yazyk mashin buchgalterskih) – ЯМБ (язык машин бухгалтерских) – A Russian programming language for Iskra-554, Iskra-555, and Neva computers.
  • ZhPy – A full-featured Python module which converts Chinese keywords, variables, and parameters.

Languages 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 a compiler fit in fewer than 256 bytes. Its predecessor P′′ used to prove assertions about structured programming languages and also used symbols.
  • FALSE – A stack-based minimalist esoteric programming language with syntax consisting mainly of single non-alphanumeric characters
  • J - An APL-like language which uses only ASCII special characters and adds function-level programming
  • Mouse (programming language) - A minimalist language created by Dr. Peter Grogono which uses ASCII characters for keywords.
  • Piet – An art-based esoteric programming language
  • Plankalkül – An early language, which uses a symbolic tabular notation, developed by German computer pioneer Konrad Zuse
  • Velato – An esoteric language whose commands are determined by the sequence of notes in a MIDI file
  • 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
  • ChinesePython – A complete translation of the Python scripting language into Chinese
  • Component Pascal – A preprocessor that translates native-language keywords into English in an educational version of the BlackBox Component Builder available as open source from http://www.inr.ac.ru/~info21/software.htm. 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 - IronPython 2.7 localisation to Lithuanian and Russian
  • AppleScript – A language once allowed for different "dialects" 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[27]
  • Perl – While Perl's keywords and function names are generally in English, it allows modification of its parser to modify the input language, such as in Damian Conway's Lingua::Romana::Perligata module, which allows programs to be written in Latin or his Lingua::tlhInganHol::yIghun Perl language in Klingon. They do not just change the keywords but also the grammar to match the language.
  • Perunis - Python 2.6 localization to Lithuanian and Russian
  • Protium – A language designed to support any possible human language

References

  1. In HOPL (History of Programming Languages), advanced search finds languages by country.
  2. "GOST 27974-88 Programming language ALGOL 68 - Язык программирования АЛГОЛ 68" (PDF) (in Russian). GOST. 1988. Retrieved November 15, 2008. 
  3. "GOST 27975-88 Programming language ALGOL 68 extended - Язык программирования АЛГОЛ 68 расширенный" (PDF) (in Russian). GOST. 1988. Retrieved November 15, 2008. 
  4. "Aheui", Eso langs (wiki) .
  5. Ammoria, Source forge .
  6. Analitik, ACM .
  7. "Do little", EP lang, JP .
  8. Students, UTA .
  9. GPT, DE: Berlios .
  10. GOTO++ .
  11. ひまわり-日本語プログラミング言語 (in Japanese), Kujira hand .
  12. Hindi programming language, SKT network .
  13. hForth, Taygeta .
  14. "Squeak", Crew, JP: Keio .
  15. IA eng (PDF) .
  16. 日本語プログラミング言語 Mind (in Japanese), JP: Scripts lab .
  17. C/S Entwicklungsumgebung ML4, ML-Software .
  18. Nadesi .
  19. Project Hosting, Google .
  20. "Ook!", Esoteric Programming Languages, DM .
  21. Phœnix, Source forge .
  22. QLB lang .
  23. RDR, Utopia T .
  24. "لغة البرمجة سمة لتنسيق الصفحات". Blazeeboy. Git hub. Retrieved 2013-08-19. 
  25. Ganesh (PDF), Infitt, 2003 .
  26. Windev (in Chinese) .
  27. Language Design in Maude, by matthias, 2006/06/05, LShift Ltd.

Sources

External links

This article is issued from Wikipedia. The text is available under the Creative Commons Attribution/Share Alike; additional terms may apply for the media files.