Non-English-based programming languages are
programming language
A programming language is a system of notation for writing computer programs.
Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
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 that developed in early medieval England and has since become a English as a lingua franca, global lingua franca. The namesake of the language is the Angles (tribe), Angles, one of the Germanic peoples th ...
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 (USA), also known as the United States (U.S.) or America, is a country primarily located in North America. It is a federal republic of 50 U.S. state, states and a federal capital district, Washington, D.C. The 48 ...
, 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 Northwestern Europe, off the coast of European mainland, the continental mainland. It comprises England, Scotlan ...
, 160 in
Canada
Canada is a country in North America. Its Provinces and territories of Canada, ten provinces and three territories extend from the Atlantic Ocean to the Pacific Ocean and northward into the Arctic Ocean, making it the world's List of coun ...
, and 75 in
Australia
Australia, officially the Commonwealth of Australia, is a country comprising mainland Australia, the mainland of the Australia (continent), Australian continent, the island of Tasmania and list of islands of Australia, numerous smaller isl ...
. 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
, Terminology of the Low Countries, informally Holland, is a country in Northwestern Europe, with Caribbean Netherlands, overseas territories in the Caribbean. It is the largest of the four constituent countries of the Kingdom of the Nether ...
,
Ruby from
Japan
Japan is an island country in East Asia. Located in the Pacific Ocean off the northeast coast of the Asia, Asian mainland, it is bordered on the west by the Sea of Japan and extends from the Sea of Okhotsk in the north to the East China Sea ...
, and
Lua from
Brazil
Brazil, officially the Federative Republic of Brazil, is the largest country in South America. It is the world's List of countries and dependencies by area, fifth-largest country by area and the List of countries and dependencies by population ...
), 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 scientist who specializes in the academic study of computer science.
Computer scientists typically work on the theoretical side of computation. Although computer scientists can also focus their work and research on ...
s
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
ALGOL 68
ALGOL 68 (short for ''Algorithmic Language 1968'') is an imperative programming language member of the ALGOL family that was conceived as a successor to the ALGOL 60 language, designed with the goal of a much wider scope of application and ...
'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
The United Nations Educational, Scientific and Cultural Organization (UNESCO ) is a List of specialized agencies of the United Nations, specialized agency of the United Nations (UN) with the aim of promoting world peace and International secur ...
'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 . ALGOL 68 went on to become the
GOST/ГОСТ-27974-88 standard in the
Soviet Union
The Union of Soviet Socialist Republics. (USSR), commonly known as the Soviet Union, was a List of former transcontinental countries#Since 1700, transcontinental country that spanned much of Eurasia from 1922 until Dissolution of the Soviet ...
.
* 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. Citrine is designed to be translatable to every written human language. For instance the
West Frisian language
West Frisian (; ), or simply Frisian ( ; ), is a West Germanic language spoken mostly in the province of Friesland () in the north of the Netherlands, mostly by those of Frisians, Frisian ancestry. It is the most widely spoken of the Frisian ...
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
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. it supports 47 different languages, meaning its keywords can be typed in any of those. It supports languages that do not use the
Latin alphabet
The Latin alphabet, also known as the Roman alphabet, is the collection of letters originally used by the Ancient Rome, ancient Romans to write the Latin language. Largely unaltered except several letters splitting—i.e. from , and from � ...
for their keywords and variable names and it also supports more numbering systems than
Arabic numerals
The ten Arabic numerals (0, 1, 2, 3, 4, 5, 6, 7, 8, and 9) are the most commonly used symbols for writing numbers. The term often also implies a positional notation number with a decimal base, in particular when contrasted with Roman numera ...
, like
Eastern Arabic numerals
The Eastern Arabic numerals, also called Indo-Arabic numerals or Arabic-Indic numerals as known by Unicode, are the symbols used to represent numerical digits in conjunction with the Arabic alphabet in the countries of the Mashriq (the east o ...
. All of these can be used interchangeably. The error messages are quite verbose, explaining what is wrong and what might be a fix.
Scheme
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
A library is a collection of Book, books, and possibly other Document, materials and Media (communication), media, that is accessible for use by its members and members of allied institutions. Libraries provide physical (hard copies) or electron ...
.
International Schemeis 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
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
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 Translator (computing), translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primaril ...
.
* 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
ASCII ( ), an acronym for American Standard Code for Information Interchange, is a character encoding standard for representing a particular set of 95 (English language focused) printable character, printable and 33 control character, control c ...
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 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 (1 September 1939 – 2 September 1945) was a World war, global conflict between two coalitions: the Allies of World War II, Allies and the Axis powers. World War II by country, Nearly all of the wo ...
in
Germany
Germany, officially the Federal Republic of Germany, is a country in Central Europe. It lies between the Baltic Sea and the North Sea to the north and the Alps to the south. Its sixteen States of Germany, constituent states have a total popu ...
.
*
Whitespace – An esoteric language based on
whitespace characters (spaces, tabs, and line breaks).
Modifiable parser syntax
Babylscript– A multilingual version of JavaScript which uses multiple tokenizers to support localized keywords in different languages and which allows objects and functions to have different names in different languages.
*
Component Pascal – A preprocessor that translates native-language keywords into English in an educational version of the
BlackBox Component Builder available as open 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 languages, Northwest Caucasian language, that is widely considered to be the eastern dialect of Adyghe language, Adyghe. While some Soviet linguists have treated the two as distinct language ...
has been tried as a proof of concept).
*
HyperTalk
HyperTalk is a discontinued high-level, procedural programming language created in 1987 by Dan Winkler and used in conjunction with Apple Computer's HyperCard hypermedia program by Bill Atkinson. Because the main target audience of HyperTalk ...
– A programming language, which allows translation via custom resources, used in
Apple
An apple is a round, edible fruit produced by an apple tree (''Malus'' spp.). Fruit trees of the orchard or domestic apple (''Malus domestica''), the most widely grown in the genus, are agriculture, cultivated worldwide. The tree originated ...
's
HyperCard
HyperCard is a application software, software application and software development kit, development kit for Apple Macintosh and Apple IIGS computers. It is among the first successful hypermedia systems predating the World Wide Web.
HyperCard com ...
.
IronPerunis– An IronPython 2.7 localization to Lithuanian and Russian.
*
AppleScript – 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 – 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'
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.
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