Non-English-based programming languages are
programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming l ...
s that do not use keywords taken from or inspired by
English vocabulary.
Prevalence of English-based programming languages
The use of the
English language
English is a West Germanic language of the Indo-European language family, with its earliest forms spoken by the inhabitants of early medieval England. It is named after the Angles, one of the ancient Germanic peoples that migrated to t ...
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, out of the 8,500+ programming languages recorded, roughly 2,400 of them were developed in the
United States
The United States of America (U.S.A. or USA), commonly known as the United States (U.S. or US) or America, is a country primarily located in North America. It consists of 50 U.S. state, states, a Washington, D.C., federal district, five ma ...
, 600 in the
United Kingdom
The United Kingdom of Great Britain and Northern Ireland, commonly known as the United Kingdom (UK) or Britain, is a country in Europe, off the north-western coast of the European mainland, continental mainland. It comprises England, Scotlan ...
, 160 in
Canada
Canada is a country in North America. Its ten provinces and three territories extend from the Atlantic Ocean to the Pacific Ocean and northward into the Arctic Ocean, covering over , making it the world's second-largest country by tota ...
, 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
)
, anthem = ( en, "William of Nassau")
, image_map =
, map_caption =
, subdivision_type = Sovereign state
, subdivision_name = Kingdom of the Netherlands
, established_title = Before independence
, established_date = Spanish Netherl ...
,
Ruby
A ruby is a pinkish red to blood-red colored gemstone, a variety of the mineral corundum (aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called sapp ...
from
Japan, and
Lua
Lua or LUA may refer to:
Science and technology
* Lua (programming language)
* Latvia University of Agriculture
* Last universal ancestor, in evolution
Ethnicity and language
* Lua people, of Laos
* Lawa people, of Thailand sometimes referred t ...
from
Brazil
Brazil ( pt, Brasil; ), officially the Federative Republic of Brazil (Portuguese: ), is the largest country in both South America and Latin America. At and with over 217 million people, Brazil is the world's fifth-largest country by area ...
), and situations where it was based on another programming language which used English.
International programming languages
The concept of international style programming languages was inspired by the work of British
computer scientist
A computer scientist is a person who is trained in the academic study of computer science.
Computer scientists typically work on the theoretical side of computation, as opposed to the hardware side on which computer engineers mainly focus ( ...
s
Christopher Strachey,
Peter Landin, and others. It represents a class of languages of which the line of the algorithmic languages
ALGOL
ALGOL (; short for "Algorithmic Language") is a family of imperative computer programming languages originally developed in 1958. ALGOL heavily influenced many other languages and was the standard method for algorithm description used by th ...
was exemplary.
ALGOL 68
ALGOL 68
ALGOL 68 (short for ''Algorithmic Language 1968'') is an imperative programming language that was conceived as a successor to the ALGOL 60 programming language, designed with the goal of a much wider scope of application and more rigorously ...
's standard document was published in numerous
natural languages
In neuropsychology, linguistics, and philosophy of language, a natural language or ordinary language is any language that has evolved naturally in humans through use and repetition without conscious planning or premeditation. 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
The United Nations Educational, Scientific and Cultural Organization is a specialized agency of the United Nations (UN) aimed at promoting world peace and security through international cooperation in education, arts, sciences and culture. I ...
's
IFIP for publication. Translations of the standard were made for
Russian,
German
German(s) may refer to:
* Germany (of or related to)
**Germania (historical use)
* Germans, citizens of Germany, people of German ancestry, or native speakers of the German language
** For citizens of Germany, see also German nationality law
**Ger ...
,
French
French (french: français(e), link=no) may refer to:
* Something of, from, or related to France
** French language, which originated in France, and its various dialects and accents
** French people, a nation and ethnic group identified with Franc ...
,
Bulgarian, and then later
Japanese. The standard was also available in . ALGOL 68 went on to become the
GOST/ГОСТ-27974-88 standard in the
Soviet Union
The Soviet Union,. officially the Union of Soviet Socialist Republics. (USSR),. was a List of former transcontinental countries#Since 1700, transcontinental country that spanned much of Eurasia from 1922 to 1991. A flagship communist state, ...
.
* GOST 27974-88 Programming language ALGOL 68 – Язык программирования АЛГОЛ 68
* GOST 27975-88 Programming language ALGOL 68 extended – Язык программирования АЛГОЛ 68 расширенный
In English, Algol68's case statement reads case ~ in ~ out ~ esac. In
Russian, this reads выб ~ в ~ либо ~ быв.
Citrine
Localization is the core feature of the
Citrine Programming Language. In Citrine, every human language has its own version, for instance the
West Frisian language
West Frisian, or simply Frisian ( fy, link=no, Frysk or ; nl, Fries , also ), is a West Germanic language spoken mostly in the province of Friesland () in the north of the Netherlands, mostly by those of Frisian ancestry. It is the most wi ...
version is called Citrine/FY. Citrine features localized keywords, localized numbers and localized punctuation. Users can translate code files from one language into another using a string-based approach. At the time of writing, Citrine supports 111 human languages. Support is not limited to well-known languages; all natural human languages are being accepted for inclusion, up to
EGIDS-6.
Scheme
While
Internationalization
In economics, internationalization or internationalisation is the process of increasing involvement of enterprises in international markets, although there is no agreed definition of internationalization. Internationalization is a crucial strateg ...
is not a part of any
Scheme standard, the expressiveness and flexibility of the language allows for the addition of internationalization as a
library
A library is a collection of materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vi ...
.
International Schemeis an
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
project to which anyone can contribute a translation. Since translations of Scheme can be loaded as libraries, Scheme programs can be
multilingual
Multilingualism is the use of more than one language, either by an individual speaker or by a group of speakers. It is believed that multilingual speakers outnumber monolingual speakers in the world's population. More than half of all E ...
.
Scratch
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
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 the smallest possible
compiler
In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs that ...
.
* G – Graphical language used in
LabVIEW
Laboratory Virtual Instrument Engineering Workbench (LabVIEW) is a system-design platform and development environment for a visual programming language from National Instruments.
The graphical language is named "G"; not to be confused with G- ...
(not to be confused with G-code).
*
Hoon
A hoon is an Australian term describing a person who deliberately drives a vehicle in a reckless or dangerous manner, generally in order to provoke a reaction from onlookers.
Hoon activities (or hooning) can include speeding, burnouts, dou ...
– A systems programming language for Urbit, compiling to Nock.
*
J – An
APL-like language which uses only
ASCII
ASCII ( ), abbreviated from American Standard Code for Information Interchange, is a character encoding standard for electronic communication. ASCII codes represent text in computers, telecommunications equipment, and other devices. Because ...
special characters and adds
function-level programming.
* Light Pattern - A language which uses a series of photographs rather than text as source code.
*
Mouse
A mouse ( : mice) is a small rodent. Characteristically, mice are known to have a pointed snout, small rounded ears, a body-length scaly tail, and a high breeding rate. The best known mouse species is the common house mouse (''Mus musculus' ...
– A minimalist language created by Dr. Peter Grogono which uses ASCII characters for keywords.
*
Piet – An art-based esoteric programming language.
*
Plankalkül – The first high-level non-von Neumann programming language, designed by
Konrad Zuse during
World War II
World War II or the Second World War, often abbreviated as WWII or WW2, was a world war that lasted from 1939 to 1945. It involved the World War II by country, vast majority of the world's countries—including all of the great power ...
in
Germany
Germany, officially the Federal Republic of Germany (FRG),, is a country in Central Europe. It is the most populous member state of the European Union. Germany lies between the Baltic and North Sea to the north and the Alps to the sou ...
.
*
Whitespace
White space or whitespace may refer to:
Technology
* Whitespace characters, characters in computing that represent horizontal or vertical space
* White spaces (radio), allocated but locally unused radio frequencies
* TV White Space Database, a mec ...
– An esoteric language based on
whitespace
White space or whitespace may refer to:
Technology
* Whitespace characters, characters in computing that represent horizontal or vertical space
* White spaces (radio), allocated but locally unused radio frequencies
* TV White Space Database, a mec ...
characters (spaces, tabs, and line breaks).
Modifiable parser syntax
Babylscript– A multilingual version of JavaScript which uses multiple tokenizers to support localized keywords in different languages and which allows objects and functions to have different names in different languages.
*
Component Pascal
Component Pascal is a programming language in the tradition of Niklaus Wirth's Pascal, Modula-2, Oberon
and Oberon-2.
It bears the name of the language Pascal and preserves its heritage, but is incompatible with Pascal. Instead, it is a minor ...
– A preprocessor that translates native-language keywords into English in an educational version of the
BlackBox Component Builder available as open sourc
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
Kabardian (; ; ), also known as , is a Northwest Caucasian language closely related to the Adyghe (West Circassian) language. Circassian nationalists reject the distinction between the two languages and refer to them both as " Circassian".
...
has been tried as a proof of concept).
*
HyperTalk – A programming language, which allows translation via custom resources, used in
Apple
An apple is an edible fruit produced by an apple tree (''Malus domestica''). Apple trees are cultivated worldwide and are the most widely grown species in the genus '' Malus''. The tree originated in Central Asia, where its wild ances ...
's
HyperCard
HyperCard is a software application and development kit for Apple Macintosh and Apple IIGS computers. It is among the first successful hypermedia systems predating the World Wide Web.
HyperCard combines a flat-file database with a graphical, ...
.
IronPerunis– An IronPython 2.7 localization to Lithuanian and Russian.
*
AppleScript
AppleScript is a scripting language created by Apple Inc. that facilitates automated control over scriptable Mac applications. First introduced in System 7, it is currently included in all versions of macOS as part of a package of system aut ...
– A language which 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.
Language Design in Maude
by Matthias, 2006/06/05, LShift Ltd.
* Perl
Perl is a family of two High-level programming language, high-level, General-purpose programming language, general-purpose, Interpreter (computing), interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it ...
– 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
Damian Conway (born 5 October 1964 in Melbourne, Australia) is a computer scientist, a member of the Perl and Raku communities, a public speaker, and the author of several books. Until 2010, he was also an adjunct associate professor in the Fa ...
'
Lingua::Romana::Perligata
module, which allows programs to be written in Latin or Michael G. Schwern'
Lingua::tlhInganHol::yIghun
Perl language in Klingon. They do not just change the keywords but also the grammar to match the language.
Perunis
– Python 2.6 localization to Lithuanian and Russian.
Ioke
– Ioke is a folding language. It allows writing highly expressive code that writes code. Examples of same program i
Chinese
Danish
Hindi
an
Spanish
References
Sources
*
External links
SAKO information page at HOPL
– By Diarmuid Pigott
{{Programming languages
Lists of programming languages
Programming languages
A programming language is a system of notation for writing computer program, computer programs. Most programming languages are text-based formal languages, but they may also be visual programming language, graphical. They are a kind of computer ...