Uploaded by Afnan Atif

Noor-Book.com all programming languages with support of mayar

advertisement
All Programming Languages,
With Support Of Mayar
By
Karar Ismail Ibrahim
Dr. Abdul-wahab Sami Ibrahim
Dr. Baidaa Abdul-khaliq Atya
LECT. Farah Neamah Abbas Al-shammary
‫كرار إسماعيل إبراهيم‬
‫ عبذالوهاب سامي إبراهيم‬.‫ د‬.‫ م‬.‫أ‬
‫ بيذاء عبذالخالق عطيه‬.‫ د‬.‫م‬
‫ فرح نعمه عباس الشمري‬.‫مذرس‬
2023
Email : kararismail@icloud.com
Phone : 9647712175735
• Book : All Programming Languages, With Support of
Mayar
• Written by: Karar Ismail Ibrahim
Dr. Abdul-wahab Sami Ibrahim
Dr. Baidaa Abdul-khaliq Atya
LECT. Farah Neamah Abbas Al-shammary
• Edition: First (2023) AD
• Number of pages: (486)
Deposit number (420) In the House of Books and
Documents in Baghdad for the year 2023
2
‫ﻗﺎل ﺗﻌﺎﻟﻰ‪:‬‬
‫ﺑﺴﻢ ﷲ اﻟﺮﺣٰﻤﻦ اﻟﺮﺣﯿﻢ‬
‫ت َو ﱠ‬
‫" ﯾَْﺮﻓَﻊِ ﱠ‬
‫<ُ اﻟﱠِﺬﯾَﻦ آَﻣﻨُﻮا ِﻣْﻨُﻜْﻢ َواﻟﱠِﺬﯾَﻦ أ ُوﺗ ُﻮا اْﻟِﻌْﻠَﻢ دََرَﺟﺎ ٍ‬
‫<ُ ِﺑَﻤﺎ ﺗ َْﻌَﻤﻠُﻮَن َﺧِﺒﯿٌﺮ "‬
‫ﺳﻮرة اﻟﻤﺠﺎدﻟﺔ آﯾﺔ ‪ 11‬ﺻﻔﺤﺔ ‪543‬‬
‫‪3‬‬
Abstract
My main aim in this book is to provide the most informative discussion of all
programming languages that currently exist or have been around for a while. Then I will
categorize them into appropriate groups. Through this book, I will evaluate and analyze
these languages by comparing their strengths, weaknesses, and features such as program
structure, declaration of variables, data types, data structures, control structures,
parameter passing mechanisms, etc.
There are many programming languages used in writing the program, and the difference
between the same languages or only in the way each type of command and
generalization is expressed.
4
Introduction
On the 12th of March 2000 AD at 11:11 am. In the east of the Iraqi capital,
Baghdad, a boy was born, and from that moment on, magic began to happen, everything
began to change...
That’s night, the boy’s family did not sleep because they were so happy that they had
their first child.
And in the midst of the bad conditions that this family was going through at that time,
as well as the situation of all the Iraqi people, and from the moment this boy was born,
the conditions of this family began to improve. It seems that God’s kindness and care
for this family was present.
This boy grew up in an educated, understanding and considerate family, and he
was the most beautiful child ever. His family did not allow him to play and socialize
with other children, fearing for him. He grew up and grew up on good morals, and as a
result of that treatment he grew up, and his great morals overshadowed his beautiful
appearance, and God’s generosity and generosity continued to this boy and his family
by providing them with brothers who were and still are better than anyone can imagine.
He was distinguished in his studies earlier than his counterparts in their intelligence, and
wherever he was placed, he was the best. He is the kind who likes to help, even if it
hurts himself. He was and still cares about those close to his heart more than he cares
about himself.
Years passed, and this boy grew up, and on the 1st of October, at the age of
nineteen, he decided to start relying on himself and to choose a path to achieve his
desired dream. He began his journey and continued walking for several weeks until he
reached a place known as the “Kingdom of Al-Mustansiriya”. Because of its large size,
he needed people to guide him in the kingdom. Before he found someone to guide him
, he met “Mayar” (When he see her suddenly this name appeared in front of him from
nowhere) and she talked a little , but he could not understand anything from her because
she spoke in a language different from his. Suddenly, Mayar disappeared, and he did
not know anything about her, and without knowing who she was and why she spoke to
him, so he swore to himself and decided to search for her all over the kingdom. His
clothes were strange to the clothes of the inhabitants of the kingdom, so whoever sees
him says that he is a person from outside the kingdom. Here a girl saw him and said to
him: Are you a stranger to this place? He said: Yes, I am, and I need someone to talk to
me about everything about this kingdom. She ask him and why you want that ? He said
,because as soon as I arrived in this place, I saw a person and wanted to find it, so tell
me about everything. She started talking and said this place is known as the Kingdom
of Al-Mustansiriya, the second largest kingdom in the iraq (Iraq is our world ), and it is
divided into 13 regions and currently there are six strong regions and each of them has
a prince who manages its affairs, and the description of the people of each region is
found in the name of its prince. She said, for example, I will tell you about the seven
most famous things in the Kingdom:
5
1.
2.
3.
4.
5.
6.
7.
Princess Farah and her friends
Prince Salah and his Fame
Moses and Taha, Princes of Magic
Aseel, Princess of Beauty
Bashaa’r, The Sleeping Princess
Tuqa, Princess of Butterflies
The Inhabitants of the six Provinces
And I will tell you about them later, now tell me what do you want to know again?
So he told her that he had seen a Mayar, then it disappeared by surprise, and he did not
understand anything from it, and that he needed to learn the language of the inhabitants
of this kingdom so that he could understand it when he saw it...
This girl burst out laughing and said to him, Are you kidding?! Surprised individual,
why? He replied that the inhabitants of this kingdom only speak programming
languages, and there are more than 717 languages, so which one do you want to learn!!!
He asked her to explain it all to him because he did not know which language Mayar
spoke.So I started explaining the languages according to the English alphabet.
By about two years, he learned part of these languages. Until this moment,
everything is fine, but there was a problem facing him, which is that when he sees her,
he loses the sense of time and place, and he cannot speak. He only looks at her. Every
day at the same time he came to this life “11:11am”, he sees her for a moment and then
she disappears. He believed that seeing her at this time was a sign that good things would
happen to him. So he was keen to meet her and get to know her more, because this time
is his favorite time, which he feels is the time for wish fulfillment. It was his wish.One
day, the girl and her friends whom taught him and programming languages asked him
to describe a Mayar to them, so he was silent for a while, then sighed and said, How do
I describe it and where do I start? It has become a part of my day and my life. When I
sit alone, she is beside me, even if I am in a group, she never leaves my mind. When I
walk on a path, she holds my hand. Nothing scares me anymore because I feel that she
is close to me.
And whenever I had a problem, she supported me in one way or another, without
saying a single word, she just smiled, and everything became easy and beautiful.
And literally, she is shy, quiet, lovable, her Styles is nice, the most elegant person in the
kingdom, and she has the best laugh ever...etc, even though I only see her once a day
but that is my feel about her.
6
Now let’s talk about :
1. Princess Farah and her friends
When he arrived in the kingdom and his clothes were strange from the clothes of
the people of the kingdom, the girl who saw him said to him: Are you a stranger to this
place?
And she began to talk to him about the kingdom. She is Princess Farah, (Figure 1) one
of the princesses of the kingdom, and she and her friends took it upon themselves to
help all the inhabitants of the kingdom and strangers because they were responsible for
providing advice and guidance to those who needed it.
Figure 1
7
2. Prince Salah and his Fame
Salah is my first friend after Princess Farah, and he is the prince of the southern
region of the Kingdom (Figure 2).
The residents of his region are famous and divided according to the programming
languages they speak into several classifications, (Table 1).
Figure 2 : Prince Salah
(Table 1) Classification of programming languages according to the ( TIOBE &
PYPL) classifies
Seq.
1
2
3
4
5
6
7
8
9
10
CLASSIFY
TIOBE
Python
C
Java
C++
C#
Visual Basic
JavaScript
SQL
Assembly
Swift
8
CLASSIFY
PYPL
Python
Java
JavaScript
C#
C++ & C
PHP
R
Typescript
Objective-C
Swift
3. Moses and Taha, Princes of Magic
Moses and Taha are my two friends whom I met later, and they are the princes
of the southeastern region of the kingdom (Figure 3). The population of their province
is famous and is divided according to the programming languages they speak into five
languages and these five languages should not be learned at the present time, because
these languages struggle to attract the attention of developers and employers for certain
reasons. And because it draws on a range of popular sources and platforms like GitHub,
Twitter, Stack Overflow, Freenode, Reddit, etc.
These five languages that you should not learn, (Table 2).
Figure 3 : Moses and Taha
(Table 2) languages that you should not learn
Seq.
Magic (languages stay
away from them)
Elm
CoffeeScript
Erlang
Lua
Perl
1
2
3
4
5
9
4. Aseel, Princess of Beauty
Aseel is the princess of the north-east of the kingdom (Figure 4) and the people
of her province are famous for their beauty and their languages are widely spoken and
their languages were the most used among developers around the world such as
JavaScript and HTML/CSS,(Table 3) with more than 65 percent of respondents stating
that they have used JavaScript and just over 55 percent using HTML / css. Python, SQL,
and TypeScript rounded out the top five most widely used programming languages
around the world.
Figure 4 : Princess Aseel
10
(Table 3) Classification of programming languages according to the most used among
professional developers
Seq.
1
2
3
4
5
6
7
8
9
10
The most used
among
professional
developers
JavaScript
HTML/CSS
SQL
Python
Typescript
Java
Bash/Shell
C#
C++
PHP
11
5. Bashaa'r, The Sleeping Princess
Princess Bashaa’r, the princess of the northern region of the Kingdom, (Figure 5)
is one of the nicest people I have seen ever. She is kind and easy to deal with, anyone
who sees her falls in love with her...
The residents of her region speak the most easiest programming languages(Table 4).
When it comes to the basics of the programming language, here we can talk about the
method of writing the code, specifically how to write variables, comments, conditional
sentences, arrays, etc., these things you will find in all programming languages, if you
learn one programming language, then you can learn any other programming language
easily. What distinguishes those languages is that they’re are very easy, not in terms of
writing the code, you can do a lot with fewer lines of code, nor in terms of understanding
the code, as it is one of the easiest and most beautiful programming languages, and
learning it enables you to enter many areas, including the web, desktop applications and
much more.Its goal is to make programming fun and easy.
Figure 5 : Princess Bashaa’r
12
(Table 4) Classification of programming languages according to the Simplicity
Seq.
1
2
3
4
5
6
7
8
9
10
Simplicity
HTML
CSS
JavaScript
Python
Java
SQL
C++
C
C#
PHP
13
6. Tuqa, Princess of Butterflies
Tuqa is the nicest person I have ever met. She is the first person to help me get to
the "Mayar". She is considered the princess of the west of the kingdom, (Figure 6).
The inhabitants of her province speak languages with a short life (the butterfly is born
and about the day her life ends). About nine Arabic programming languages, of which
the Arab student does not know anything, and even scholars in the field of specialization
have not heard of them.
:
Figure 6 : Princess Tuqa
14
Here is the list of Arabic languages
1. Amuriyah - an open-source, object-oriented Arabic language.
2. Logo Arabic - an Arabic programming language based on Logo language.
3. C - An Arabic programming language based on C-like syntax with graphical
capabilities.
4. Lughati - is a multi-purpose Arabic programming language with its own format.
5. Phoenix - a procedural Arabic programming language similar to the C language.
6. Kalimat - an Arabic programming language similar to C.
7. Zai language - an Arabic programming environment to teach beginners
programming in the Zai language.
8. Heart.
9. Creative language.
The dominance of the English language over the technology of the computer industry
forced users to turn towards programming languages that address computers with
English words and names such as Java, C, Pascal, and others.
15
7. The Inhabitants of the six Provinces
Every year, tests are conducted all over the world, and these tests are passed by a
group of people. The best among them is chosen, accepted, and considered among the
population of the Kingdom (Figure 7).
The nice thing here is the diversity of cultures, where you can see the whole world in
one place through the people you get to know and meet with.
Figure 7 : Al-Mustansiriya University
16
Conclusion
A person has no limits, he can make something important out of himself and
influence those around him. until this moment, I did not say who is " Mayar ", because
everyone sees her according to his condition. The person who fall in love sees her as his
lover, and whoever needs a friend he sees her like that , and who lost a loved one sees
her as that person , and who dreams of a job or a brilliant future sees her as well , and
who is far from his family and country sees her as his family and his home, and the
fearful person sees it as the safety that reassures him ...
All that was mentioned are real names, times and all places as well , all of that were
happened with me. The year 2023 is the last year for me as an ordinary citizen in the
Kingdom, and God willing, by the end of this year I will join the team of Princess Farah
and her friends and become a prince who helps everyone who has lost his way and is
looking for his mayar...
I believe in the saying that blessings last forever, so I did not tell anyone about it.
It was really my blessing. A lot of things happened to me and she was with me, and for
the sake of these nice things that were between us and until now, it makes me happy
when I remember them. I am ready to search for them once, twice, and ten times until I
reach them. Because of her encouragement, I feel that I can face the impossible, and I
will not hesitate to do so, because I feel her presence near me and always supporting
me. If she were in front of me now, I would say to her, may God help you, make you
happy, and protect you. Do not forget that after God, after you, and after your family,
there is a person who is ready to give you his eyes if you ask for them. He is by your
side and supports you in every step and prays for you in all my prayers. thats what I
really Wanna .
She is still with me in everything except my reality, even if I never meet her and
see her again or she will not be with me, even if circumstances and fates separate us ,
for a moment I was happy with her, I will never forget her and will continue to search
for her until I find her. I thank God for His grace and kindness to me. I thank my father,
my mother and my brothers who supported me with every step of my life and never fell
short with me. I thank my teachers who were with me step by step. I am grateful to my
friends who have always supported me and grateful to the people close to me that I did
not mention.
Thank you all, you are in my heart, I will never forget you as long as I live.
Let me saying thank God that I am still alive. Everyone in this world has a gift from
God whether they already know it or not, and they should be grateful about it. In this
special moment, I have a chance to share with all of you what I have done.
First of all, I feel very lucky because this life is so wonderful for me to live. I can use
my life the best things I can do. The main point of the thing I am presenting to you is
love. I love my family, friends and everyone who always supports me in this life. I love
my mom and dad. I love them, although sometimes I make them sad and frustrated with
me. However, I thank you for all your help in my life. You make me know what is best
in my life, the meaning of this life.
17
Last but not least, I am gifted with exceptional talent that I can develop, especially in
the field of computer science.
Alhamdulillah always and forever, I am talented.
The goal of a list of programming languages is to contain all the names of programming
languages in one area (Table5), whether these languages are ancient or modern, and in
English alphabetical order.[1]
(Table 5) Number of languages for each character
Languages starting with
a letter
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
Summation
No. of them
51
16
66
17
30
29
26
20
10
22
16
35
49
22
29
61
8
22
70
27
7
10
7
17
3
10
680
18
1. A.NET (A#/A sharp)
Sharp is an open supply a present day item-orientated programming language that
objectives to bridge the space among present day expressive programming paradigms
and strictly typed inflexible languages like Java and C#. My aim is to offer the
usefulness of an item orientated programming language, whilst protecting the simplicity
of an expressive programming language while not having to sacrifice performance.
Sharp is elegantly simple.
mod app;
def main()
{
print("hello, world!");
}
The syntax in Sharp is easy, smooth to read, and exquisite permitting you to cognizance
extra on what the code is doing alternatively that the syntax. The language library comes
preferred with a complete light-weight multi-threading library undertaking that makes
managing paintings withinside the historical past easy to prepare however appears
appropriate as well.Sharp helps numerous convient functions that enhance the general
revel in with programming withinside the language. Sharp has a multi-language
stimulated syntax taking the splendor of languages which includes JavaScript, python,
Java, Go, and C#. While expressing it in a extra concise way. sharp helps nameless
capabilities that make it smooth to summary away blocks of code with out the want to
claim a group of on-time use capabilities on your code.[2]
2. A-0 System
The A-zero machine (Arithmetic Language model zero), written with the aid of
using Grace Murray Hopper in 1951 and 1952 for the UNIVAC I, became an early
compiler associated device evolved for digital computers. The A-zero functioned
greater as a loader or linker than the current perception of a compiler. A application
became particular as a chain of subroutines and its arguments. The subroutines have
been diagnosed with the aid of using a numeric code and the arguments to the
subroutines have been written at once after every subroutine code. The A-zero machine
transformed the specification into device code that would be fed into the laptop a 2nd
time to execute the stated application.The A-zero machine became accompanied with
the aid of using the A-1, A-2 A-3 (launched as ARITH-MATIC), AT-3 (launched as
MATH-MATIC) and B-zero (launched as FLOW-MATIC).The A-2 machine became
evolved on the UNIVAC department of Remington Rand in 1953 and launched to
clients with the aid of using the stop of that 12 months Customers have been supplied
the supply code for A-2 and invited to ship their enhancements returned to UNIVAC.
Thus, A-2 will be taken into consideration an instance of the end result of an early
philosophy just like loose and open-supply software.[3]
19
3. A+ (A plus)
A+ is an array-primarily based totally programming language made through
Arthur Whitney. “A” become the unique language, however later A+ become created to
be a extra effective and green alternative. The language consists of many features,
inclusive of an X11-primarily based totally portraits device package that complements
IPC capability in A+. It’s additionally a higher-degree language with fantastic quantities
of primitive capabilities to without problems manage arrays. The language is a dialect
of APL and consists of a graphical consumer interface and inter-procedure communique
even as programming. Not to mention, you could make use of reactive programming in
A+ through converting one piece of records to cause others. Programming in A+ lets in
customers to installation dependencies thru variables so entire structures can alternate.
This function lets in the programmer to have effective gear like spreadsheets and
complicated calculators. However, a disadvantage even as coding may be having to
alternate fonts for the diverse hieroglyphics used withinside the APL .[4]
• An example of an if statement in A+ can be written as:
If (a=b)
{
a = 5;
}
sys.
exit 0 in A+ can be written as:
• An example of a while loop statement
while(a<b)
{
a = (a + b)/b;
}
sys.exit 0
20
4. A++
A++ stands for abstraction plus reference plus synthesis that's used as a call for
the minimalistic programming language this is constructed on ARS-primarily based
totally programming. ARS-primarily based totally programming is used as a call for
programming which is composed specifically of making use of styles derived from ARS
to programming in any language.
ARS is an abstraction from the Lambda Calculus, taking its 3 fundamental operations,
and giving them a extra wellknown meaning, hence imparting a basis for the 3
fundamental programming paradigms useful programming, object-orientated
programming and vital programming.
The technical texts in this text are taken from the net model of the first version of the
A++-ee-e book posted in 2004.(quotation needed )The 2d version of the ee-e book A++
The Smallest Programming Language withinside the World (292 pages) become posted
in 2018.
A++ become advanced with the aid of using Georg P. Loczewski and Britain Hamm
withinside the years from 1996 – 2002 running as a software program developer for
Bull's Software-Haus in Langen, Germany and as a freelance
programmer with the reason to function a mastering tool as opposed to as a
programming language used to clear up realistic problems.
The improvement of A++ is primarily based totally on the 'Lambda Calculus' with the
aid of using Alonzo Church and is encouraged with the aid of using Guy L. Steele's
Programming Language Scheme.
A++ is meant to be an powerful device to come to be acquainted with the center of
programming and with programming styles that may be carried out in different
languages had to face the actual world.[5]
21
5. ABAP
ABAP (Advanced Business Application Programming, firstly Allgemeiner
Berichts-Aufbereitungs-Prozessor, German for "popular file coaching processor") is a
high-degree programming language created through the German software program
organization SAP SE. It is presently positioned, along Java, because the language for
programming the SAP NetWeaver Application Server, that's a part of the SAP
NetWeaver platform for constructing commercial enterprise packages
ABAP is one of the many application-particular fourth-era languages (4GLs) first
advanced withinside the 1980s. It turned into firstly the file language for SAP R/2, a
platform that enabled big businesses to construct mainframe commercial enterprise
packages for substances control and monetary and control accounting.
This quick description of the ABAP syntax starts with the ubiquitous "Hello world"
application.
REPORT TEST.
WRITE ‘HELLO WORLD’.
This instance incorporates statements: REPORT and WRITE. The application
presentations a listing at the screen. In this case, the listing includes the unmarried line
"Hello World". The REPORT announcement shows that this application is a file. This
application can be a module pool after changing the REPORT announcement with
PROGRAM.[6]
6. ABC
ABC is an vital general-cause programming language and incorporated
improvement environment (IDE) evolved at Centrum Wiskunde & Informatica (CWI),
Netherlands with the aid of using Leo Geurts, Lambert Meertens, and Steven
Pemberton. It is interactive, structured, high-level, and supposed for use as opposed to
BASIC, Pascal, or AWK. It is meant for training or prototyping, but now now not as a
systems-programming language. First appeared : January 1987. [7]
An example feature to build up the set of all terms in a document:
HOW TO RETURN phrases document:
PUT IN collection
FOR line IN document:
FOR phrase IN break up line:
IF phrase now no longer.in collection:
INSERT phrase IN collection
RETURN collection
22
7. ABC ALGOL
ABC ALGOL is an extension of the programming language ALGOL 60 with
arbitrary records systems and user-described operators, supposed for pc algebra
(symbolic mathematics). Despite its advances, it turned into by no means used as
broadly as Algol proper.[8]
8. ACC
ACC is a near-C compiler for the MS-DOS working device at the IBM PC line
of computer systems for packages. The compiler and compiled packages will run on any
Intel 80386 or above PC jogging MS-DOS. Included with the compiler are a 386
assembler and a linker for combining more than one item files.There also are libraries,
which can be a included mode DOS extender (primarily based totally on Thomas Pytel's,
AKA Tran's PMODE30B + PMODE307 DOS extenders), and a library of capabilities
callable through C packages.Pointers are four bytes, and might get entry to all to be had
reminiscence. All reminiscence may be allotted too. The compiler, assembler and linker
are all very small and reportedly very fast.ACC makes use of easy instructions which
region items and alternate them. As such, it's miles very difficult to make video games
with complex sprites, due to the fact there may be no command that could institution
items. Almost each form of command is or 3 letters, for example: tx=text, col=color,
oct=octagon, etc. It is much like Batch.[9]
9. Accent (Rational Synergy)
Rational Synergy is a software program device that gives software program
configuration control (SCM) abilties for all artifacts associated with software program
improvement consisting of supply code, files and photos in addition to the very last
constructed software program executable and libraries. Rational Synergy additionally
affords the repository for the extrade control device called Rational Change. Together
those gear shape an included configuration control and extrade control surroundings
this is utilized in software program improvement agencies that want managed SCM
methods and an information of what's in a construct in their software program.[10]
• Initial release: 1990.
• Written in: ACcent, Java
• Operating system: AIX, HP-UX, Linux, Windows
23
10.
Ace DASL (Distributed Application Specification Language)
The DASL Programming Language (Distributed Application Specification
Language) is a high-level, strongly typed programming language at the start evolved at
Sun Microsystems Laboratories among 1999 and 2003 as a part of the Ace Project. The
dreams of the challenge had been to permit fast improvement of web-primarily based
totally programs primarily based totally on Sun's J2EE architecture, and to do away with
the steep getting to know curve of platform-precise details.
DASL defines an software as a site version with one or greater logical presentation
models, in which a logical presentation version includes a choreography of the area
version gadgets defined in a fixed of paperwork with connected actions. DASL
generates the graphical consumer interface without delay from the logical presentation.
DASL is specific amongst contemporary-day software programming languages in its
capacity to generate a contemporary-day photo consumer interface for an software with
out requiring the programmer to outline the consumer interface explicitly, even as
permitting the programmer to govern the appearance and sense of the generated photo
consumer interface.
The DASL language is in part declarative and in part procedural. Description of
item/information systems and persistence, and the outline of the logical presentation,
are declarative. Basic item constraints and conduct are declarative, even as extra item
behaviors are distinctive procedurally as methods. Queries may be described both
declaratively or with the aid of using writing methods.
The language and improvement surroundings are a sensible consciousness of the
version-pushed architecture (MDA) approach. The programmer makes use of DASL to
provide the platform-unbiased version or PIM, and the language code mills routinely
produce and installation the platform-precise version or PSM. New PSMs can be added
with the aid of using writing new code mills.[11]
24
11.
Action!
Action! is a procedural programming language and included improvement
surroundings written via way of means of Clinton Parker for the Atari 8-bit family.
The language, that is just like ALGOL, compiled to high-overall performance code for
the MOS Technologies 6502 of the Atari computers.
Action! changed into allotted on ROM cartridge via way of means of Optimized
Systems Software beginning in 1983. It changed into one of the company's first bankswitched "Super Cartridges", with a complete of sixteen kB of code.
Working with Henry Baker, Parker had formerly evolved Micro-SPL, a structures
programming language for the Xerox Alto.
Action! changed into in large part a port of Micro-SPL principles to the Atari with
modifications to assist the 6502 processor and the addition of an included fullscreen
editor and debugger.
Action! changed into used to increase as a minimum industrial products—the HomePak
productiveness suite and Games Computers Play customer program—and severa
packages in ANALOG Computing and Antic magazines. The editor stimulated the
PaperClip phrase processor. Figure 8.
The language changed into now no longer ported to different platforms.
The meeting language supply code for Action! changed into made to be had below the
GNU General Public License via way of means of the writer in 2015.[12]
Figure 8 : Fullscreen editor
25
BYTE RTCLOK=20, ; addr of sys timer
SDMCTL=559 ; DMA control
BYTE ARRAY FLAGS(8190)
CARD COUNT,I,K,PRIME,TIME
PROC SIEVE()
SDMCTL=0 ; shut off Antic
RTCLOK=0 ; reset the clock to zero
COUNT=0
; init count
FOR I=0 TO 8190 ; and flags
DO
FLAGS(I)='T ; "'T" is a compiler-provided constant for True
OD
FOR I=0 TO 8190 ; now run the sieve
DO
IF FLAGS(I)='T THEN
PRIME=I+I+3
K=I+PRIME
WHILE K<=8190
DO
FLAGS(K)='F ; "'F" is a compiler-provided constant for False
K==+PRIME
OD
COUNT==+1
FI
OD
TIME=RTCLOK ; get timer reading
SDMCTL=34 ; restore screen
PRINTF("%E %U PRIMES IN",COUNT)
PRINTF("%E %U JIFFIES",TIME)
RETURN
26
12.
ActionScript
achine (Tamarin) are available.
ActionScript became extensively utilized with Scaleform GFx for the improvement of
3-D online game person interfaces and HUDs.[13] Figure 9.
Figure 9 : ActionScript logo
ActionScript 2.0
The following code, which works on any compatible player, creates a 0-depth
textbox with a width and height of 100 pixels at position (0, 0) on the screen in pixels.
Then set the text parameter to the string "Hello, world" and automatically display it in
the player:
createTextField("greet", 0, 0, 0, 100, 100);
greet.text = "Hello, world";
When writing external ActionScript 2.0 class files the above example could be written
in a file named Greeter.as as following.
class com.example.Greeter extends MovieClip
{ public function Greeter()
{ var txtHello: TextField = this.createTextField("txtHello", 0, 0, 0, 100, 100);
txtHello.text = "Hello, world"; } }
27
ActionScript 3.0
Its syntax is similar to ActionScript 2.0, but it has a different set of APIs for creating
objects. Compare the following script to the previous version of ActionScript 2.0:
var txtHello: TextField = new TextField();
txtHello.text = "Hello World";
this.addChild(txtHello);
13.
Actor
The Actor programming language become invented through Charles Duff of The
Whitewater Group in 1988. It become an offshoot of a few object-orientated extensions
to the Forth language he were running on.
Actor is a natural object-orientated language withinside the fashion of Smalltalk. Like
Smalltalk, the whole thing is an object, together with small integers. A Baker semi-area
rubbish collector is used, alongside with (in reminiscence-limited Windows 2.1 days) a
software program digital reminiscence machine that swaps objects.
A token threaded interpreter, written in 16-bit x86 meeting language, executes compiled
code. Actor best become launched for Microsoft Windows 2.1 and 3.0. Actor used a
natural object-orientated framework over local running machine calls as its fundamental
GUI structure.
This permits an Actor utility to appearance and sense precisely like a Windows utility
written in C, however with all of the benefits of an interactive Smalltalk-like
improvement environment.
Both a drawback and upside to this structure is a good coupling to the Windows
structure, with a skinny abstraction layer into objects. This permits direct use of the
wealthy Windows OS API, however additionally makes it almost not possible to assist
another OS with out a considerable rewrite of the utility framework.
A demo of Actor become proven in an episode of Computer Chronicles.[14]
14.
Ada – ISO/IEC 8652
Ada is a structured, statically typed, imperative, and object-orientated high-degree
programming language, prolonged from Pascal and different languages. It has
integrated language assist for layout with the aid of using settlement (DbC),
extraordinarily sturdy typing, express concurrency, tasks, synchronous message
passing, included objects, and non-determinism. Ada improves code protection and
maintainability with the aid of using the usage of the compiler to locate mistakes in
prefer of runtime mistakes. Ada is an worldwide technical standard, collectively
described with the aid of using the International Organization for Standardization (ISO),
and the International Electrotechnical Commission (IEC). As of 2020, the standard,
referred to as Ada 2012 informally, is ISO/IEC 8652:2012. Figure 10.
28
Ada became firstly designed with the aid of using a crew led with the aid of using French
pc scientist Jean Ichbiah of CII Honeywell Bull beneathneath settlement to america
Department of Defense (DoD) from 1977 to 1983 to supersede over 450 programming
languages utilized by the DoD at that time. Figure 11.
Ada became named after Ada Lovelace (1815–1852), who has been credited because
the first pc programmer.[15]
Figure 10 : Augusta Ada King, Countess of Lovelace.
29
Figure 11: Ada logo
15.
Adenine (Haystack)
Haystack is a undertaking on the Massachusetts Institute of Technology to
analyze and expand numerous programs round non-public facts control and the
Semantic Web. The maximum super of these programs is the Haystack customer, a
studies non-public facts manager (PIM) and one of the first to be primarily based totally
on semantic computer technologies. The Haystack customer is posted as open supply
software program below the BSD license.
Similar to the Chandler PIM, the Haystack device unifies managing one-of-a-kind
varieties of unstructured facts. This facts has a not unusualplace illustration in RDF this
is provided to customers in a configurable human-readable way.[16]
16.
AdvPL
AdvPL (Advanced Protheus Language) is a proprietary programming language
primarily based totally on xBase. It became launched in 1999 and is used for
improvement of packages withinside the ERP Protheus made via way of means of
TOTVS.[17]
30
17.
Agda
Agda is a dependently typed useful programming language at the beginning
evolved via way of means of Ulf Norell at Chalmers University of Technology with
implementation defined in his PhD thesis.The unique Agda machine became evolved at
Chalmers via way of means of Catarina Coquand in 1999. The contemporary version,
at the beginning called Agda 2, is a complete rewrite, which need to be taken into
consideration a brand new language that stocks a call and tradition. Figure 12.
Agda is likewise a evidence assistant primarily based totally at the propositions-as-kinds
paradigm, however not like Coq, has no separate methods language, and proofs are
written in a useful programming style. The language has regular programming
constructs inclusive of information kinds, sample matching, records, allow expressions
and modules, and a Haskell-like syntax. The machine has Emacs and Atom interfaces
however also can be run in batch mode from the command line.
Agda is primarily based totally on Zhaohui Luo's unified idea of established kinds
(UTT), a kind idea just like Martin-Löf kind idea.
Agda is known as after the Swedish song "Hönan Agda", written via way of means of
Cornelis Vreeswijk, which is ready a bird named Agda. This alludes to the naming of
Coq.[18]
Figure 12 : Agda logo
31
18.
Agilent VEE (Keysight VEE)
Keysight VEE may be a graphical dataflow programming software system
development surroundings from Keysight Technologies for automatic check,
mensuration, information analysis and news. VEE originally stood for Visual
Engineering surroundings and developed by power unit selected as power unit VEE; it's
since been formally renamed to Keysight VEE. Keysight VEE has been wide employed
in numerous industries, serving the complete stage of a product lifecycle, from style,
validation to producing. it's optimized in instrument management and automation with
check and mensuration devices like information acquisition instruments like digital
voltmeters and oscilloscopes, and supply devices like signal generators and
programmable power provides.[19]. Operating system : Microsoft Windows
19.
Agora
Agora could be a reflective, prototype-based, object-oriented artificial language
that's primarily based completely on message passing and not delegation. Agora was
supposed to point out that even subject to it limit, it's attainable to make a full objectoriented language that options inheritance, biological research and reflective operators.
The idea is that Associate in Nursing object is absolutely encapsulated and may solely
be subject to message passing. however seen from the within of the thing, the thing is
aware of all concerning its own structures. it's so absolutely capable of biological
research and lengthening itself. this can be accomplished by special ways known as
biological research ways and mixin ways. Agora98, the newest implementation of
Agora, is completed in Java and permits full access to all or any Java genus Apis, as
well as the flexibility to make applets from at intervals Agora98. From the language
purpose of read, Agora98 could be a tidy simplification of previous Agora versions.[20]
32
20.
AIMMS
AIMMS (acronym for Advanced Interactive four-dimensional Modeling System)
may be a prescriptive analytics software system company with offices within the
Holland, u. s., China and Singapore. Figure 13.
It has 2 main product offerings that give modeling and improvement capabilities across
a spread of industries. The AIMMS Prescriptive Analytics Platform permits advanced
users to develop optimization-based applications and deploy them to business users.
AIMMS SC Navigator, launched in 2017, is constructed on the AIMMS Prescriptive
Analytics Platform and provides configurable Apps for provide chain groups. SC
Navigator provides provide chain analytics to non-advanced users.
AIMMS B.V. was based in 1989 by scientist Johannes Bisschop beneath the name of
Paragon call Technology. His vision was to form improvement a lot of approachable by
building models instead of programming. In Bisschop’s read, modeling was ready to
build the bridge between the people that had issues and also the folks serving to them
solve those issues.
AIMMS began as a software package designed for modeling and determination largescale improvement and scheduling-type issues.
AIMMS is taken into account to be one among the 5 most vital pure mathematics
modeling languages. Bisschop was awarded with INFORMS Impact Prize for his add
this language.
In 2003, AIMMS was nonheritable by atiny low personal equity firm. This lightemitting diode to the creation of a partnership program, any technical investment and
also the evolution of the platform. In 2011, the corporate launched AIMMS
professional, the simplest way to deploy applications to end-users United Nations
agency don't have a technical background. This was quickly followed by the flexibility
to publish and customise applications employing a browser so call support applications
area unit accessible on any device.
The company grew and was in 2017 recognized as a prime B2B technology within the
Holland, and was named one among the fastest-growing corporations within the Holland
for the second consecutive year.[21]
Figure 13 : AIMMS logo
33
21. Aldor
Aldor is a programming language. It is the successor of A# because the
extension language of the Axiom laptop algebra system.
Designed via way of means of : Richard Dimick Jenks, Barry Trager,
Stephen Watt, James Davenport, Robert Sutor, Scott Morrison
First appeared : 1990.
Operating system : Linux, Solaris, Windows
Aldor combines imperative, functional, and object-orientated features. It has
an tricky kind system, permitting kinds for use as quality values. Aldor's
syntax is closely inspired via way of means of Pascal, however it's miles
optionally indentation-sensitive, the usage of whitespace characters and the
off-facet rule, like Python. In its contemporary implementation, it's miles
compiled, however an interactive listener is provided.
Aldor is shipped as loose and open-supply software, below the Apache
License 2.0.[22]
The Hello world program looks like this:
#include "aldor"
#include "aldorio"
stdout << "Hello, world!" << newline;
34
22.
Alef
Alef is a discontinued concurrent programming language that Phil Winterbottom
of Bell Labs created as a component of the Plan 9 operating system. It used a compiled,
C-like language to implement Newsqueak's channel-based concurrency paradigm.
Phil Winterbottom created the look.
Initial release: 1992
Alef was a character in Plan 9's first and second editions but was dropped during the
third edition's development. Even though he and others urged Winterbottom to add
garbage collection to the language, Rob Pike later blamed Alef's failure on its lack of
automatic memory management. Pike also stated in a February 2000 slideshow that
"...despite Alef being a fruitful language, it proved too difficult to maintain a variant
language across multiple architectures, so we took what we learned from it and built the
thread library for C."
Two programming environments replaced Alef. The most popular programming
language in the Inferno operating system is Limbo, which can be seen as a direct
descendant of Alef. The libthread package, which makes part of Alef's capabilities
available to C applications and enables the translation of existing Alef programs (such
as Acme), replicates the Alef concurrency model in the third edition of Plan 9. [23]
This illustration came from the Alef reference book.
The article serves as an example of tuple data type usage.
(int, byte*, byte)
func()
{
return (10, "hello", 'c');
}
void main()
{
int a;
byte* str;
byte c;
(a, str, c) = func();
}
35
23.
ALF
Mathematical Logic Programming concepts from functional and logic
programming are combined in functional programming language, also referred to as
ALF. Its foundation is Horn clause logic with equality, which is made up of functions
and equations for functional programming and predicates and Horn clauses for logic
programming.
Since ALF was created to be a true merger of the two paradigms of programming, any
functional expression may be used in a goal literal and any predicate may appear in an
equation's conditions. The operational semantics of ALF is built on the resolution rule
to evaluate functional expressions and solve literals.
A leftmost-innermost fundamental narrowing technique is applied, which is said to be
effective, to limit the number of potential narrowing stages. Before applying a
narrowing step, terms are simplified by rewriting, and equations are disregarded if the
two sides have distinct constructors at the top.
Rewriting and rejection are claimed to generate an operational semantics that is more
effective than Prolog's resolution technique and lead to a significant decrease of the
search tree. ALF employs a backtracking method corresponding to a depth-first search
in the derivation tree, just like Prolog does.
The resolution, narrowing, rewriting, and rejection processes were combined to create
the ALF system, which was intended to be an effective application of them.
ALF programs are compiled into an abstract machine's instructions.
The Warren Abstract Machine (WAM), on which the abstract machine is based, has
been extended in a number of ways to support narrowing and rewriting. Programs for
this abstract machine are run by a C-written emulator in the current ALF
implementation.
ALF is listed as an AI programming language in the Carnegie Mellon University
Artificial Intelligence Repository, specifically as a functional/logic programming
language Prolog implementation.
There is a user manual available that explains the system's operation and language. The
ALF System is a Unix-based system that can be used for "evaluation, research, and
teaching reasons," but not for commercial or military purposes, according to a unique
proprietary software license. [24]
36
24.
ALGOL 58
One of the ALGOL family of programming languages is ALGOL 58, formerly
known as IAL. It was an early compromise design that ALGOL 60 quickly surpassed.
Apparently, John Backus
designed by: John Backus, Charles Katz, Alan Perlis, Klaus Samelson, Hermann
Bottenbruch, Heinz Rutishauser, Friedrich L. Bauer
First published in 1958.
The Zurich ACM-GAMM Conference proposed the IAL with the following two main
goals in mind: (a) to give a means of communication between persons for numerical
methods and other procedures, and (b) to provide a means of realizing a specified
process on various computers.
The core concept of the compound statement was introduced in ALGOL 58, but it was
only applicable to control flow and was not related to identifier scope in the same
manner that Algol 60's blocks were.[25]
37
25.
ALGOL 60
The ALGOL family of computer programming languages includes ALGOL 60,
often known as the Algorithmic Language of 1960. It came after ALGOL 58, which
marked a significant development in the emergence of structured programming by
introducing code blocks and the begin and end pairs for defining them. The first
language to support nested function definitions with lexical scope was ALGOL 60.
Numerous other programming languages were inspired by it, such as CPL, Simula,
BCPL, B, Pascal, and C. At the time, almost all computers featured a systems
programming language built on ALGOL 60 ideas.
The first languages to pursue standardization were COBOL and ALGOL 60.
ALGOL does not have a portable hello world program because ALGOL 60 did not have
I/O facilities. The following program is a straightforward simplification of code taken
from The Language Guide at the University of Michigan-Dearborn Computer and
Information Science Department that could (and still will) compile and run on an
ALGOL implementation for a Unisys A-Series mainframe. World, welcome! Program
Example Page for ALGOOL. [26]
BEGIN
FILE F(KIND=REMOTE);
EBCDIC ARRAY E[0:11];
REPLACE E BY "HELLO WORLD!";
WRITE(F, *, E);
END.
Where * etc. represented a format specification as used in FORTRAN, e.g.
A simpler program using an inline format:
BEGIN
FILE F(KIND=REMOTE);
WRITE(F, <"HELLO WORLD!">);
END.
An even simpler program using the Display statement:
BEGIN
DISPLAY("HELLO WORLD!")
END.
38
An alternative example, using Elliott Algol I/O is as follows. Elliott Algol used different
characters for "open-string-quote" and "close-string-quote", represented here by ‘and’ .
program HiFolks;
begin
print ‘Hello world’
end;
This is the Elliott 803 Algol version (A104) Since the normal Elliott 803 only had upper
case letters, it used 5-hole paper tape. Because there were no quote characters in the
code, the symbols £ and? were used to represent an open and close quote, respectively.
Double quotes were used for special sequences (for example, £L?? created a new line
on the teleprinter).
HIFOLKS'
BEGIN
PRINT £HELLO WORLD£L??'
END'
The ICT 1900 series Algol I/O version allowed input from paper tape or punched card.
Paper tape 'full' mode allowed lower case. Output was to a line printer. Note use of '(',
')', and %.
'PROGRAM' (HELLO)
'BEGIN'
'COMMENT' OPEN QUOTE IS '(', CLOSE IS ')', PRINTABLE SPACE HAS TO
BE WRITTEN AS % BECAUSE SPACES ARE IGNORED;
WRITE TEXT('('HELLO%WORLD')');
'END'
'FINISH'
39
26.
ALGOL 68
Algorithmic Language 1968, also known as ALGOL 68, is an imperative
programming language that was developed as the replacement for ALGOL 60 with the
aim of having a far broader range of applications and more precisely defined syntax and
semantics.[27]
This sample program implements the Sieve of Eratosthenes to find all the prime
numbers that are less than 100. NIL is the ALGOL 68 analogue of the null pointer in
other languages. The notation x OF y accesses a member x of a STRUCT y. Figure 14.
BEGIN # Algol-68 prime number sieve, functional style #
PROC error = (STRING s) VOID:
(print(( newline, " error: ", s, newline)); GOTO stop);
PROC one to = (INT n) LIST:
(PROC f = (INT m,n) LIST: (m>n | NIL | cons(m, f(m+1,n))); f(1,n));
MODE LIST = REF NODE;
MODE NODE = STRUCT (INT h, LIST t);
PROC cons = (INT n, LIST l) LIST: HEAP NODE := (n,l);
PROC hd = (LIST l) INT: ( l IS NIL | error("hd NIL"); SKIP | h OF l );
PROC tl = (LIST l) LIST: ( l IS NIL | error("tl NIL"); SKIP | t OF l );
PROC show = (LIST l) VOID: ( l ISNT NIL | print((" ",whole(hd(l),0)));
show(tl(l)));
PROC filter = (PROC (INT) BOOL p, LIST l) LIST:
IF l IS NIL THEN NIL
ELIF p(hd(l)) THEN cons(hd(l), filter(p,tl(l)))
ELSE filter(p, tl(l))
FI;
PROC sieve = (LIST l) LIST:
IF l IS NIL THEN NIL
ELSE
PROC not multiple = (INT n) BOOL: n MOD hd(l) ≠ 0;
cons(hd(l), sieve( filter( not multiple, tl(l) )))
FI;
PROC primes = (INT n) LIST: sieve( tl( one to(n) ));
show( primes(100) )
END
40
Figure 14: Revised Report on the Algorithmic Language – Algol 68 Edited by: A. van
Wijngaarden et al, September 1973
41
27.
ALGOL W
Programming language ALGOOL W. It is based on a proposal for ALGOL X, a
replacement for ALGOL 60, made by Niklaus Wirth and Tony Hoare. With the addition
of string, bitstring, complex number, and reference to record data types as well as callby-result parameter passing, while statement introduction, switch statement
replacement with a case statement, and general language tightening, ALGOL W is a
fairly straightforward upgrade of the original ALGOL 60.
A portion of the EBCDIC character encoding set serves as the foundation for ALGOL
W's syntax. While reserved words in ALGOL 60 are unique lexical units, they are just
character sequences in ALGOL W and do not require stropping.
Identifiers and reserved terms are separated by spaces. The grammar of ALGOL W is
similar to later languages like Pascal in these ways.
ALGOL W is defined in the ALGOL W Language Description using an affix grammar
that looks like Backus-Naur form (BNF). The Van Wijngaarden grammar had its roots
in this formal grammar.
The semantics of ALGOL W are mostly described grammatically:
The definition of each identifier within the current scope is what distinguishes them. A
"label identifier" is an identifier that is being used as a goto label, for instance, while a
"procedure identifier" is an identifier that has been declared by a procedure declaration.
Affixes serve to illustrate the various types of variables and expressions.
For instance, "function identifier" is the syntactic entity for a function that returns a
value of type "," which is expanded to "integer function identifier" if an identifier has
been designated as an integer function in the current scope.
Grammatical errors are typed errors.
Real expression DIV integer expression (i.e., performing integer division on a floatingpoint number) is an erroneous syntactic entity, whereas "integer expression" / "integer
expression" and "real expression" / "real expression" are valid but different syntactic
entities that describe expressions. [28]
42
This demonstrates ALGOL W's record type facility.
RECORD PERSON)
STRING(20) NAME ;
INTEGER AGE ;
LOGICAL MALE ;
REFERENCE(PERSON) FATHER, MOTHER, YOUNGESTOFFSPRING,
ELDERSIBLING);
REFERENCE(PERSON) PROCEDURE YOUNGESTUNCLE
(REFERENCE(PERSON) R);
BEGIN
REFERENCE(PERSON) P, M;
P := YOUNGESTOFFSPRING(FATHER(FATHER(R)));
WHILE (P ¬= NULL) AND (¬ MALE(P)) OR (P = FATHER(R)) DO
P := ELDERSIBLING(P);
M := YOUNGESTOFFSPRING(MOTHER(MOTHER(R)));
WHILE (M ¬= NULL) AND (¬ MALE(M)) DO
M := ELDERSIBLING(M);
IF P = NULL THEN
M
ELSE IF M = NULL THEN
P
ELSE
IF AGE(P) < AGE(M) THEN P ELSE M
END
43
28.
Alice (Alice ML)
Saarland University's Programming Systems Laboratory in Saarbrücken,
Germany, created the programming language known as Alice ML. It is a dialect of
Standard ML that supports constraint programming, multithreading, and lazy evaluation
in addition to concurrency (distributed computing through RPCs).
fun fib 0 = 0
fib 1 = 1
fib n = spawn fib(n-1) + fib(n-2);
Initial release: 2000.
Alice differs from Standard ML in a number of ways that expand Standard ML. A future
type, which represents a value delivered by a separate thread of execution, is used by
Alice to provide concurrency features as part of the basic language.
A thread that attempts to obtain a future value will block until the thread conducting the
computation has finished. A related idea known as a promise is also presented, allowing
a thread to give another thread a future value that it will compute. Using future and
promise typed variables, data-flow synchronization is implemented.
In contrast to the conventional eager evaluation method of Standard ML, Alice provides
capabilities to allow a lazy evaluation strategy in programs. While Alice utilizes an
eager evaluation model by default and Haskell uses the lazy model by default, Alice
requires an explicit programming statement to make a calculation execute lazily.
The Simple Extensible Abstract Machine is used in the Saarland University
implementation of Alice (SEAM) virtual machine.
It is open-source software with just-in-time bytecode and native code generation for the
x86 architecture. Early versions of Alice could interface with Oz code thanks to the
Mozart Programming System (Oz) virtual machine (VM).
The virtual machine is necessary for Alice's remote procedure call because it can send
computation-related code from one computer to another. [29]
Alice extends Standard ML with several primitives for lazy evaluation and concurrency.
For example, threads may be created using the spawn keyword. Consider the naive
algorithm for computing the Fibonacci numbers:
fun fib 0 = 0
fib 1 = 1
fib n = fib(n-1) + fib(n-2);
44
For large values of n, fib n will take a long time to compute. This computation can be
performed in a separate thread by
val x = spawn fib n;
The variable x is now bound to a so-called future. When an operation requires the value
of x, it blocks until the thread is done with the computation. To exploit parallelism one
could even define fib as follows:
var txtHello: TextField = new TextField();
txtHello.text = "Hello World";
this.addChild(txtHello);
29.
Alma-0
A multi-paradigm computer programming language is called Alma-0. This
language is an improved form of the imperative Modula-2 language that includes easy
backtracking capabilities and logic programming features. It combines constraint
programming with a small number of features drawn from logic programming it is
compact, tightly typed, and it supports imperative paradigms.
Declarative programming is encouraged by the language. The creators assert that
search-oriented solutions created using it are a great deal simpler than those created
using only imperative or logic programming. Alma-0 offers high-level, organic
frameworks for creating search trees.
The inventors of Alma-0 were motivated by four guiding ideas in order to produce a
unique and significantly more straightforward solution than other attempts to include
declarative programming techniques (such automatic backtracking) into imperative
programming:
• The constructs that will implement the extension should support and encourage
declarative programming
• The extension should be kept small: nine new features have been proposed and
implemented.
• The logic-based extension should be downward compatible with the underlying
imperative programming language.
• The logic-based extension should be upward compatible with a future extension
that will support constraint programming.
Alma-0 can be seen as both a proposed concrete and specialized programming language
as well as a general approach to adding declarative programming capability to any
imperative programming language.
A complete implementation of the language (with a description of its semantics) for a
subset of Modula-2 has been used to show the viability of the Alma-0 method.[30]
45
30.
AmbientTalk
An experimental networked object-oriented programming language called
AmbientTalk was created in Belgium at the Vrije Universiteit Brussel's Programming
Technology Laboratory. The language is primarily intended for use in mobile ad hoc
network programming.
The purpose of AmbientTalk is to provide a platform for testing new linguistic
constructs or programming abstractions to make it easier to build software that can
operate in unstable networks with sparse infrastructure and patchy connectivity. It is
implemented in Java, making it compatible with Android and other platforms.
The symbiosis, a seamless interface between Java and AmbientTalk objects, is another
feature of the interpreter standard library.
The actor model serves as the foundation for the language's concurrency features, which
also include support for futures and event-loop concurrency and were heavily influenced
by the E programming language.
Smalltalk and Self are two languages that have influenced the language's object-oriented
features, such as block closures and keyworded messages (prototype-based
programming, traits, delegation). [31]
Hello world :
system.println("Hello world");
46
31.
Amiga E
A programming language developed for the Amiga by Wouter van Oortmerssen
is known as Amiga E, or just E. Since then, he has developed the CryScript
programming language (also known as DOG), which was used to create the video game
Far Cry, as well as the SHEEP programming language for the new AmigaDE platform.
Amiga E combines numerous features from other languages, but in terms of
fundamental ideas, it most closely resembles the original C programming language.
The key advantages of Amiga E are its quick compilation (which enables it to be used
instead of a scripting language), highly readable source code, adaptable type system,
potent module system, exception handling (not C++ variant), and object-oriented
programming. [32]
An example of a "hello world" program for the Amiga E is:
WriteF ('Hello, World!') in PROC main()
ENDPROC
The foundation of the well-known Amiga graphics software Photogenics was built on
an Amiga E.
47
32.
AMOS (AMOS BASIC)
AMOS BASIC is the name of the Amiga computer's programming language. In
1990, Europress Software launched AMOS BASIC for the Amiga, which was
developed by François Lionet and Constantin Sotiropoulos in response to the popularity
of STOS BASIC for the Atari ST. Figure 15.
The authors are François Lionet and Constantin Sotiropoulos.
It was introduced in 1990. [33]
Figure 15 : Screenshot of the AMOS Professional user interface and code editor,
displaying the start of a program included with the language
48
33.
AMPL
An algebraic modeling language called AMPL (A Mathematical Programming
Language) is used to specify and address complicated problems in large-scale
mathematical computing (i.e., large-scale optimization and scheduling-type problems),
Figure 16. At Bell Laboratories, Robert Fourer, David Gay, and Brian Kernighan
created it. Numerous solvers, both open source and proprietary, are supported by
AMPL, such as CBC, CPLEX, FortMP, MINOS, IPOPT, SNOPT, KNITRO, and LGO.
Solvers receive problems as nl files. More than 100 businesses, as well as governmental
organizations and educational institutions, use AMPL. [34]
Figure 16 : AMPL logo
34.
Analitik
Analitik is a programming language that was created in 1968 at the Institute of
Cybernetics of the Ukrainian SSR's Academy of Sciences in the USSR. It is an
improvement on the ALMIR-65 language while maintaining compatibility.
Victor Glushkov & Co. [35] designed the object.
49
35.
AngelScript
A game-focused compiled scripting language is called AngelScript.
Initial release: 2003
AngelScript has object-oriented features, static typing, single inheritance, multiple
inheritance, and interface inheritance. Its object handles are similar to C++ pointers but
use garbage collection by reference counting. permits both registration and overloading
of operators. Any C++ IDE, including NetBeans, Geany, and Eclipse, can be used with
AngelScript.
Functions from C and C++ can be used in AngelScript environments. Since no proxy
functions are needed to embed AngelScript in C++ applications, the two languages can
be more easily integrated. AngelScript's class syntax closely resembles that of C++
classes by design. AngelScript and C++ differ from each other in a number of ways.
Multiple inheritance is not supported by AngelScript. Interfaces can be used to
implement multiple inheritance. Declaring methods or properties outside the class body
is not possible.
All methods are virtual, including constructors and destructors.
In the creation of video games, AngelScript is employed. Additionally supported by
Urho3D as a programming language It Takes Two, the company's most recent game,
was created in AngelScript using a plugin that Hazelight Studios maintains for the
Unreal Engine. At the University of Ulm, it is also utilized in robotics and in the
interactive 3D-Animation program; for example, to program the behavioral rules of
robotic agents. [36]
50
36.
Apache Pig latin
For building applications that work with Apache Hadoop, there is Apache Pig.
Pig Latin is the name of the language used on this site. Pig may use MapReduce, Apache
Tez, or Apache Spark to run its Hadoop operations. Figure 17.
Pig Latin transforms the Java MapReduce idiom's programming into a high-level
notation, making MapReduce programming comparable to SQL for relational database
management systems. User-defined functions (UDFs), which the user can create in Java,
Python, JavaScript, Ruby, or Groovy and then call straight from the language, can be
used to enhance Pig Latin.[37]
Figure 17 : Apache Pig latin logo
51
37.
Apex (Salesforce.com, Inc)
An American provider of cloud-based software, Salesforce, Inc. is situated in San
Francisco, California. It offers CRM software and apps with a focus on sales, customer
service, marketing automation, analytics, and application development.
Established on 3 February 1999. Figure 18.
Marc Benioff, a senior executive at Oracle, founded Salesforce, which swiftly became
one of the biggest businesses in the world and went public in 2004.
By fiscal year 2009, Salesforce became the first cloud computing business to generate
US$1 billion in revenue, and by 2022, it became the largest enterprise software company
in the world.
As one of the biggest technological businesses today, Salesforce will rank as the 61st
largest company in the world by market cap on September 19, 2022, with a valuation of
around US$153 billion. Salesforce earned $26.5 billion in US dollars in 2022, placing
136th on the most current Fortune 500 list. Salesforce has also been a part of the Dow
Jones Industrial Average since 2020. [38]
Figure 18 : Apex logo
52
38.
APL
In the 1960s, Kenneth E. Iverson created the programming language APL, which
was named after the book A Programming Language. The multidimensional array is the
main datatype for it. Figure 19.
The majority of functions and operators are represented by a wide variety of specialized
graphic symbols, which results in extremely short code. Concept modeling,
spreadsheets, functional programming, and computer math programs have all benefited
greatly from it. Several other programming languages have been influenced by it as
well. [39]
Figure 19 : APL logo
53
39. App Inventor for Android's visual block language (MIT App
Inventor)
An integrated development environment for web applications called MIT App
Inventor was first made available by Google and is now maintained by the
Massachusetts Institute of Technology (MIT), Figure 20.It enables anyone who are new
to computer programming to develop applications for two operating systems (OS):
Android and iOS, which as of July 8th, 2019, is currently through final beta testing.
Figure 21. It is free and open-source software distributed under two licenses: an Apache
License 2.0 for the source code and a Creative Commons Attribution ShareAlike 3.0
Unported license. [40], Figure 22.
Figure 20 : MIT App Inventor logo
Figure 21 : The blocks editor in the original version ran in a separate Java process,
using the Open Blocks Java library for creating visual blocks programming languages
and programming
54
Figure 22 : App Inventor Classic Blocks Editor
40.
AppleScript
The scripting language known as AppleScript was developed by Apple Inc. to
enable automated control of scriptable Mac programs. It was first introduced in System
7 and is currently a component of a set of system automation tools that come with all
current versions of macOS. The word "AppleScript" can be used to describe the
language itself, a specific script produced in the language, or, less technically, the
language's foundation, the macOS Open Scripting Architecture. [41]
Initial release: 1993.
Operating systems: Mac OS 8, Mac OS 9, and System 7.
41.
APT
A high-level computer programming language called APT (Automatically
Programmed Tool) is most frequently used to create instructions for numerically
controlled machine tools. Many people credit Douglas T. Ross as being the inventor of
APT since he oversaw its technological development in 1956 while serving as head of
the newly established Computer Applications Group of the Servomechanisms
Laboratory at MIT. APT is a language and technology that makes it easier to write
toolpaths for equipment that is controlled numerically. Through the 1970s, this ancient
tongue was widely utilized and is still largely accepted today. Later, APT derivatives
were created. [42]
Douglas T. Ross was the designer.
First published in 1956.
55
42.
Arc
Paul Graham and Robert Morris created the programming language Arc, a dialect
of Lisp. It is open-source software that is available for free under the Artistic License
2.0.[43]
Paul Graham was the designer.
initial publication: 29 January 2008.
Arc's Hello World: (prn "Hello, World")
Graham demonstrates Arc's brevity with a short program. At the url "/said," it generates
a form with just one field. The value of the original input field is displayed on the page
that is reached after clicking the "click here" link on the "submit" page of the form.
(defop said that req (aform [onlink "click here" (pr "you said: " (arg "foo")]
("foo" entered; "submit"))
43.
Arexx
William S. Hawes created ARexx, an Amiga-specific implementation of the Rexx
language, in 1987. It adds a number of additional features not found in standard REXX
facilities. The majority of REXX implementations are interpreted languages, just like
ARexx. The term "script" or "macros" for programs created for ARexx is used; a number
of products allow you to run ARexx scripts as macros in the main interface.
Using a "ARexx port," third-party software can simply communicate with ARexx. The
features of the program can be made available to scripts written in ARexx by any Amiga
application or script by defining a set of commands and functions for ARexx to address.
The ability to mix and match features from many programs is made possible by ARexx's
ability to direct commands and functions to multiple apps from a single script. For
instance, an ARexx script could take data from a database, insert it into a spreadsheet to
run calculations on it, and then insert tables and charts depending on the results into a
document created with a word processor. [44]
56
44.
Argus
Between 1982 and 1988, Barbara Liskov at MIT worked alongside Maurice
Herlihy, Paul Johnson, Robert Scheifler, and William Weihl to develop the
programming language Argus. It uses a large portion of the same syntax and semantics
as the CLU language and is an extension of it. By enclosing linked procedures within
objects called guardians and by providing atomic activities known as actions, Argus was
created to assist the building of distributed programs. [45]
45.
Assembly language (ASM)
Any low-level programming language having a close resemblance between its
instructions and the architecture's machine code is known as assembly language (or
assembler language, or symbolic machine code), also referred to simply as Assembly
and frequently shortened as ASM or asm. Figure 23.
One statement per machine instruction (1:1) is the norm for assembly language,
however constants, comments, assembler directives, symbolic labels for things like
memory locations, registers, and macros are typically also available. [46]
57
Figure 23 : First published in 1947.Typical secondary output from an assembler—
showing original assembly language (right) for the Motorola MC6800 and the
assembled form
58
46.
AutoHotkey
The goal of AutoHotkey, a free and open-source custom scripting language for
Microsoft Windows, was originally to make it simple for users of all computer skill
levels to automate repetitive operations in any Windows application. Figure 24.
AutoHotkey makes it simple to expand or change user interfaces (for example,
overriding the default Windows control key commands with their Emacs equivalents).
Additionally to the comprehensive help file that comes with the AutoHotkey
installation, there is now online guidance. [47]
The operating system is Windows.
Figure 24 : AutoHotkey logo
47.
AutoIt
A freeware programming language for Windows is called AutoIt (/tot/). Since its
initial release, it has expanded to include improvements in both programming language
design and overall functionality. Its original purpose was to build automation scripts
(also known as macros) for Microsoft Windows programs. Figure 25.
Initially published in January 1999. Microsoft Windows XP SP3 and later Microsoft
Windows Server 2003 and later In AutoIt 1 and 2, the scripting language was statementdriven and largely intended for imitating user interaction. As of version 3, the syntax of
AutoIt is comparable to that of the BASIC family of languages.
In its current incarnation, AutoIt is a third-generation general-purpose programming
language with a traditional data model and a variant data type that may hold a variety
of data types, including arrays. Figure 26.
It is possible to turn an AutoIt automation script into a compressed, standalone
executable that can be used on machines even without the AutoIt interpreter being
installed. To provide additional functionality, a variety of function libraries (often
referred to as "User Defined Functions," or UDFs), are also included as standard or are
accessible via the website. A free SciTE editor-based IDE is also included with the
distribution of AutoIt. For developers using AutoIt, a de facto standard environment is
provided by the fully integrated compiler and help text. [48]
Hello world:
59
; Make available a library of constant values.
#include <MsgBoxConstants.au3>
; Displays "Hello, world!" in a message box.
MsgBox($MB_SYSTEMMODAL, "Title", "Hello, world!")
Figure 25 : AutoIt logo
Figure 26 : AutoIt command window
60
48.
AutoLISP / Visual LISP
The computer language Lisp's AutoLISP dialect was created especially for use
with the full version of AutoCAD and its offshoots, such as AutoCAD Map 3D,
AutoCAD Architecture, and AutoCAD Mechanical. The AutoCAD LT product line
does not contain either the application programming interface (API) or the interpreter
to run AutoLISP code. The browser-based AutoCAD web program includes a subset of
AutoLISP features. [49]
Initially published in January 1986.
A straightforward AutoLISP Hello World program would be:
(princ "Hello World!") (defun hello () (princ))
The princ function returns a null symbol when evaluated with no arguments, which is
not displayed by the AutoCAD command-line interface. This is stated in the function
definition's final line. This would ordinarily display "Hello World!" to the command
line, followed immediately by the return value of the call to princ, as the AutoCAD
command line operates as a read-eval-print loop (REPL). Therefore, the output of this
would be Hello World!"nHello World!" without the final call to the princ function.
The identical outcome can also be obtained by using the prin1 function.
One that is more intricate is:
(defun c:pointlabel ( / pnt )
(if (setq pnt (getpoint "\nSpecify point: "))
(progn
(entmake
(list
'(0 . "POINT")
(cons 10 (trans pnt 1 0))))
(entmake
(list
'(0 . "TEXT")
(cons 10 (trans (cons (+ (car pnt) 0.6) (cdr pnt)) 1 0))
(cons 40 (getvar 'textsize))
(cons 1 (strcat "X:" (rtos (car pnt)) " Y:" (rtos (cadr pnt))))))))
(princ) )
The aforementioned code introduces a new function that creates an AutoCAD point
object at a specified location along with a one-line text object that displays the point's
X and Y coordinates. The function is identified as a standard command by AutoCAD
thanks to the special prefix "c:" in its name.
61
The user would be prompted to select a point after typing "pointlabel" at the AutoCAD
command line, either by providing the X and Y coordinates or by clicking a position in
the design. A marker would then be placed at that location, and a one-line text object
giving the point's X and Y coordinates expressed relative to the currently active User
Coordinate System would be created next to it (UCS).
There is only one local variable ('pnt') and no required parameters in the function.
To accomplish the same goal, the aforementioned example might also be constructed
using built-in AutoCAD commands, however this strategy is vulnerable to changes
made to the command prompts between versions of AutoCAD.
49.
Averest
A synchronous programming language and collection of tools called Averest are
used to describe, validate, and create reactive systems. It comprises a symbolic model
checker, a compiler for synchronous applications, and a tool for hardware/software
synthesis.
At different degrees of abstraction, it can be used to describe and test systems with finite
and infinite states. It helps with hardware design, communication protocol modeling,
concurrent programming, embedded system software, and other things.
Components include a symbolic model checker, a compiler to translate synchronous
programs to transition systems, and a tool for synthesising hardware and software. These
span a sizable portion of the reactive system design flow, from specifying through
implementing. Despite being a component of the same framework, the tools can be used
with other tools from third parties and are largely independent of one another. [50]
62
50.
AWK
A domain-specific language called AWK (awk) was created for text processing
and is frequently employed as a tool for data extraction and reporting. It is a filter,
similar to sed and grep, and is a common feature of most Unix-like operating systems.
initial release in 1977. Figure 27.
System of operation: cross-platform
Figure 27 : AWK logo
63
51.
Axum
Microsoft actively worked on Axum (formerly known as Maestro), a domainspecific concurrent programming language based on the Actor model, from 2009 to
2011. It is a domain-specific object-oriented language built on the.NET Common
Language Runtime with a C-like syntax that is used to construct parts of software
applications that are well-suited to concurrency. However, it has enough generalpurpose structures that the sequential sections of the concurrent components can be
implemented without switching to a general-purpose programming language (like C#).
initial release: May 8, 2009
Windows XP as the operating system
Operating System 2003
Microsoft Vista
2008 Windows Server
OS Windows 7
An Agent (or Actor), which is an isolated entity that runs concurrently with other
Agents, is the primary programming paradigm in Axum. This is known as the agents
operating in independent isolation domains in Axum; things created in one domain
cannot be directly accessed from another. In contrast to the shared memory model used
by C# and other comparable languages, agents are loosely linked (i.e., there are few
dependencies between them) and do not share resources like memory; instead, a
message passing model is employed. An explicit message must be given to the agent in
order to coordinate agents or have one agent request the resources of another. Axum
offers Channels to make this easier. Figure 28.
One way to think of channels is as a directional communication path between agent
instances. After being bound to an agent instance, a Channel object can communicate
with it via its member functions. A channel has input and output ports, which are queues
used to deliver data to or receive it from agents, respectively. Axum enables each
communication channel to have a user-defined protocol in order to coordinate
communication between bots. State machines are used to define the protocol.
Optionally, the data transferred via a channel might be limited to adhere to a specific
pre-defined structure. The compliance to the schema will be enforced by the compiler
and runtime.
A schema is converted internally into a serializable.NET class that only has properties
and methods without side effects.
The Axum project has progressed to the prototype stage with functional integration with
Microsoft Visual Studio. Axum had a public CTP that Microsoft had previously made
available, however it has since been taken down. Despite Microsoft's decision to forgo
developing Axum, TPL Dataflow in.Net 4.5 incorporates several of Axum's
concepts.[52]
64
Figure 28 : Axum logo
52.
B
The programming language discussed in this article was created at Bell Labs. See
ABC for Meertens and Pemberton's "b" language (programming language). To learn
more, go to B. (disambiguation).
The B programming language was created by Ken Thompson and Dennis Ritchie at Bell
Labs in the late 1960s.
It was created by Ken Thompson
It debuted in 1969.
Its name may be a contraction of BCPL as B was formed from BCPL. Dennis Ritchie,
a coworker of Thompson's, hypothesized that Bon, an earlier but unrelated
programming language that Thompson created for use on Multics, may have served as
inspiration for the name.
B was created for machine-independent, recursive, non-numeric applications like
system and language software. The only data type in this typeless language, whatever
the underlying machine's natural memory word format could be, was the language itself.
The word was handled as either a memory location or an integer depending on the
context. Support for character data stuffed in memory words became crucial as ASCIIprocessing computers were widely used, particularly the DEC PDP-11 that arrived at
Bell. As a result of the typeless feature of the language being perceived as a drawback,
Thompson and Ritchie created the C programming language, an enlarged version of the
language that included new internal and user-defined types.
65
The constant e-2 will be calculated to around 4000 decimal digits and printed 50
characters to a line in groups of 5 characters using the following program. The process
involves a straightforward output conversion of the expansion 1/2! + 1/3! +... =.111....,
where the digits' bases are 2, 3, 4,... */
main() {
extrn putchar, n, v;
auto i, c, col, a;
i = col = 0;
while(i<n)
v[i++] = 1;
while(col<2*n) {
a = n+1;
c = i = 0;
while (i<n) {
c =+ v[i] *10;
v[i++] = c%a;
c =/ a--; }
putchar(c+'0');
if(!(++col%5))
putchar(col%50?' ': '*n'); }
putchar('*n*n'); }
v[2000];
n 2000;
53.
Babbage
The high level assembly language used by the GEC 4000 series of minicomputers
is called Babbage. Charles Babbage, an English computer pioneer, was honored with its
name. [54]
procedural, hierarchical, high-level assembler paradigm
Initially appeared: about 1971.
Operating system : COS, GEC DOS, OS4000
66
PROCESS CHAPTER FACTORIAL
ENTRY LABEL ENTRYPOINT
LITERAL TO = 4
// Assume using the default proforma
EXTERNAL ROUTINE
OPEN,
PUT,
CLOSE,
TOCHAR
VECTOR [0,19] OF BYTE ANSWER = "factorial x = xxxxxx"
HALF COUNT
HALF VALUE
FULL RESULT
ROUTINE FACT(VALUE)
// return factorial of RA.
VALUE => RESULT
WHILE DECREMENT VALUE GT //0// DO
<<
RESULT * VALUE => RESULT
>>
RETURN(RESULT)
END
ENTRYPOINT:
OPEN(TO, 1)
// Print factorials for numbers 1 through 9
1 => RA
REPEAT
<<
RA => COUNT
FACT(RA) => RA
TOCHAR(RA, 7, ANSWER + 13)
TOCHAR(COUNT, 2, ANSWER + 9)
PUT(TO, 20, ANSWER)
COUNT + 1 => RA
>>
WHILE RA LT 10
CLOSE(TO)
STOP(0)
END
67
54.
Ballerina
WSO2 created Ballerina, an open source general-purpose programming
language, for developers of cloud-based applications. Figure 29.
Sanjiva Perera, James Clark, Sameera Jayasoma, Hasitha Aravinda, Srinath Perera,
Frank Leymann, and WSO2 were responsible for the design.
Initial release: 2017.
System of operation: cross-platform
Support for numerous data formats and protocols, reliability, distributed transactions,
APIs, and event streams are just a few of the various components aimed toward cloudnative development that are present in it. [55]
The standard Hello World episode:
public function main();
import ballerina/io;
io:println("Hello World!");
Place the source code in a.bal file and give the bal run command the path to the file to
run the aforementioned program.
Hello world.balance $ ballerina
World, welcome!
Figure 29 : Ballerina logo
68
55.
Bash
As a free software replacement for the Bourne shell, Brian Fox created the Unix
shell and command language Bash for the GNU Project. Figure 30.
It has been the standard login shell for the majority of Linux distributions since its 1989
debut. Along with GCC, Bash was among the first applications Linus Torvalds ported
to Linux. The Windows Subsystem for Linux also has a version for Windows 10 and
Windows 11. Additionally, Solaris 11 uses it as the default user shell. Although zsh
replaced tcsh as the default shell in the 2019 release of macOS Catalina, Bash is still an
option. Bash was also the default shell in versions of Apple macOS from 10.3
(originally, the default shell was tcsh).
Brian Fox was the original author.
Released on June 8, 1989.
Scripted in C .
OS: MacOS, a Unix-like operating system (GPL-2.0-or-later; GPL-3.0-or-later
available through third parties)
Windows (GPL-3.0-or-later) (GPL-3.0-or-later)
Bash is a command processor that normally operates in a text window where users enter
instructions to trigger operations. A shell script is a file that contains commands that
Bash can read and execute. Like the majority of Unix shells, it supports variables,
control structures for condition-testing and iteration, pipes, here documents, command
replacement, and wildcard matching for filenames. Figure 31.
All of the language's fundamental elements—keywords, syntax, dynamically scoped
variables, etc.—are lifted from sh. From csh and ksh, other features, such history, are
copied. POSIX-compliant but with a variety of enhancements, Bash is a shell.
The name of the shell, which is a play on the name of the Bourne shell it replaces and
the idea of being "born again," is an acronym for Bourne Again Shell.
Shellshock, a security flaw in Bash that dates back to version 1.03 (August 1989), was
first identified in early September 2014 and soon sparked a number of attacks across the
Internet. Soon after the bugs were found, patches to correct them were made
available.[56]
Figure 30 : Bash logo
69
Figure 31 : Bash command window
70
56.
BASIC
A family of high-level, general-purpose programming languages called BASIC
(Beginners' All-purpose Symbolic Instruction Code) is created for user-friendliness.
John G. Kemeny and Thomas E. Kurtz at Dartmouth College produced the original
version in 1964. They sought to make computers accessible to students studying
subjects other than science. At the time, almost all computers needed programming
specialized software, which was typically only learned by scientists and
mathematicians.
Date of debut: May 1, 1964.
The Dartmouth Time Sharing System (DTSS), which was created by Kemeny and Kurtz
in addition to the programming language, allowed many users to edit and run BASIC
programs on distant terminals at the same time. In the late 1960s and early 1970s, this
general approach gained a lot of traction on minicomputer platforms like the PDP-11
and Data General Nova. Figure 32.
The HP2000 series was introduced in the late 1960s, and Hewlett-Packard created a
complete computer line for this mode of operation, with sales extending into the 1980s.
One of these early versions of BASIC is where a lot of early video games got their start.
Multiple BASIC dialects were created as a result of the introduction of microcomputers
in the middle of the 1970s, notably Microsoft BASIC in 1975.
Numerous Tiny BASIC languages were also developed as a result of the limited main
memory on these devices, which was frequently 4 KB. The de facto programming
language for home computer systems that first appeared in the late 1970s was BASIC,
which was available for practically every system of the time.
A BASIC interpreter was almost always pre-installed on these PCs, either in the
firmware or occasionally in a ROM cartridge.
As more potent microcomputers entered the market and programming languages with
additional capabilities (like Pascal and C) became practical on such machines, BASIC's
appeal waned in the 1990s. A newer version of BASIC and a visual form builder were
combined when Microsoft published Visual Basic in 1991. This sparked the language's
use once more, and "VB" is still a popular programming language[citation needed]
under the guises of VBA and VB.NET. [57]
71
Figure 32 : Three modern Basic variants: Mono Basic, OpenOffice.org Basic and
Gambas
Standard BASIC words :
• manipulating data
A variable is given a value by LET, which could be the outcome of an expression. The
majority of BASIC dialects treat LET as optional, therefore if there is no other keyword
in the line, LET is assumed to be the keyword.
A series of values are successively assigned to DATA using the READ command.
READ assigns a value to a variable after reading it from a DATA statement. With each
READ, an internal pointer advances one position to maintain track of the most recent
DATA element that was read. The majority of dialects support multiple variables as
parameters, reading multiple values at once.
RESTORE forces the program to start READing from the first value by resetting the
internal pointer to the first DATA statement.
In many dialects, the pointer can be reset to a particular place by providing an optional
line number or ordinal value.
• creates an array.
72
program flow management used to perform comparisons or reach decisions. IF...
THEN... ELSE Later versions allowed any acceptable statement to follow the THEN,
whereas earlier languages only permitted a line number. Particularly in previous
versions, ELSE was not extensively supported.
Repeat a section of code using FOR... TO... STEP... NEXT a predetermined number of
times. Within the loop, a variable called "index" serves as a counter.
While, repeat the cycle until.
While the provided condition is true, run a portion of code again. Before or after each
loop iteration, the condition may be assessed. Most later languages contain both of these
commands.
DO... LOOP while or till repeats a portion of code until the required condition is
satisfied. Before or after each loop iteration, the condition may be assessed. These
keywords, like WHILE, are primarily present in later dialects.
GOTO causes a program leap to a numbered or labeled line. The form GO TO
was likewise accepted in most dialects.
GOSUB... RETURN jumps to the statement following the GOSUB, either after a
colon, or on the next line. It then executes the code it finds there until it reaches a
RETURN command. Subroutines are implemented using this.
ON GOTO/GOSUB determines where to jump based on the parameters. For
further forms, see Switch statement.
DEF FN is a pair of keywords that was first used to define functions in the early
1960s. Fortran single-line functions served as the inspiration for the initial BASIC
functions. Instead of using subroutines, BASIC functions consisted of a single statement
with variable arguments, with a syntax similar to DEF FND(x) = x*x at the start of a
program. Function names could only contain the letters FN and one additional letter, for
example, FNA or FNB.
The complete source code of the running program is visible in input and output LIST.
A message is shown on the screen or another output device when you use PRINT.
INPUT requests that the user enter a variable's value. A prompt message can be
present in the statement.
TAB is used in conjunction with PRINT to specify where the next character will
appear on screen or be printed on paper. An alternative form is AT.
A large amount of space characters are printed by SPC. Similar in concept to TAB, but
instead of moving to a specific column, it moves a number of additional spaces from
the current column.
• Calculus functions
ABS (Absolute worth )
ATN (Arctangent (result in radians) )
COS (Cosine (argument in radians))
EXP (INT's exponential function )
• Decimal portion (typically floor function)
LOG (organic logarithm )
RND (production of random numbers )
73
SIN (Sine (argument in radians))
SQR (root square )
TAN (Tangent (argument in radians))
• Miscellaneous
REM stores a programmer's comment or REMark, which is frequently used to give the
program a name and to clarify the goal of a certain portion of code.
A machine language subroutine, often entered as an alphanumeric string or as a set of
DATA statements, is given program control via USR.
Some dialects use the CALL form of USR instead. does not need a synthetic parameter
to complete the function-like syntax of USR and has a well-defined way to invoke
various memory-based procedures. Figure 33.
TRON / TROFF activates line number displays for each run ("TRace ON"). This
was helpful for troubleshooting or fixing program issues. TROFF again turns it off.
Inline assembly language is supported by some compilers, including Freebasic,
Purebasic, and Powerbasic. This feature enables programmers to mix high-level and
low-level code, typically prefixed with "ASM" or "!" statements. Figure 34.
Figure 33 : A simple game implemented in BASIC
74
The "Hello, World!" program by Kernighan and Ritchie is a well-known and frequently
imitated example. New BASIC programmers on a home computer might start with a
simple program, perhaps using the language's PRINT statement to display a message on
the screen:
"Hello, World,"
10 PRINT
20 END
The following message could be displayed on the screen indefinitely:
"Hello, World,"
10 PRINT
20 GOTO 10
Keep in mind that the END statement is optional and does nothing in the majority of
BASIC languages. As in this instance, it was not always included. Using the standard
FOR statement, the same program can be altered to print a set amount of messages.
NEXT SUMMARY:
10 PRINT "Hello, World!"
20 FOR I=1 TO N
30 LET N=10
40 NEXT I
Figure 34 : Atari BASIC (1979) for the Atari 8-bit family
75
57.
Batch file (Windows/MS-DOS)
Script files in DOS, OS/2, and Windows are referred to as batch files. It consists
of a set of instructions saved in a plain text file that must be run by the command-line
interpreter. A batch file can use constructs like IF, FOR, and GOTO labels to enable
conditional branching and looping within the batch file. It can also contain any
command the interpreter accepts interactively. Although a batch file might not execute
a batch of numerous data, the word "batch" comes from batch processing, which refers
to "non-interactive execution."
By enabling the user to write up a script to automate certain routine operations, batch
files were introduced to reduce the effort necessary for certain tasks, much like Job
Control Language (JCL), DCL, and other systems on mainframe and minicomputer
systems. When a batch file is executed, a shell application (often COMMAND.COM or
cmd.exe) reads the file and runs the commands, typically line by line. Shell scripts are
a comparable but more adaptable form of file seen in Unix-like operating systems like
Linux.In DOS and Windows, the.bat file extension is utilized. .cmd was also added by
OS/2 and Windows NT. Batch files for other environments may have different file
extensions, such as.btm in shells connected to 4DOS, 4OS2, and 4NT. Figure 35.
Between versions, there has been a significant change in how batch files are specifically
handled. While some of the information in this article is applicable to all batch files,
other information is specific to some versions. [58]
This sample batch file displays Hello World!, asks the user to enter a key, waits, and
then ends. (Note: Unless working with variables, it doesn't matter if instructions are
written in lowercase or uppercase.)
OFF ECHO @ECHO World, welcome!
PAUSE
The file must be generated using a text editor like Microsoft Notepad or a word
processor that supports plain text mode, and saved with the filename extension suffix.bat
(or.cmd for Windows NT-type operating systems).
76
Figure 35 : Batch file window
Following execution, the following is shown:
World, welcome!
Starting with the first line, the interpreter runs each line in turn. Any line that begins
with the @ symbol stops the prompt from showing that command while it is being run.
The prompt is turned off permanently by the command ECHO OFF, or at least until it
is put back on. A batch file's initial line is frequently concatenated @ECHO OFF since
it prevents all instructions from appearing, including this one. The ECHO Hello World!
command then outputs Hello World! on the following line.
The following line is run, and the PAUSE command appears. To continue, press any
key, which pauses the script's execution. The script ends when a key is pushed because
there are no more commands. In Windows, if the script is launched from a command
prompt window that is already open and running, the window stays open at the prompt
like in MS-DOS; if not, the window shuts on termination.
77
58.
bc (basic calculator)
Basic Calculator is "an arbitrary-precision calculator language" with syntax
resembling the C programming language. It is also known as Bench Calculator. bc is
frequently employed as an interactive mathematical shell or as a mathematical scripting
language.
Bell Labs' Robert Morris and Lorinda Cherry were the creators.
Released initially in 1975.
Operating systems: Plan 9, FreeDOS, and Unix or Unix-like
In order to provide a greater level of access to the dc language's features without the
difficulties of dc's terse syntax, the POSIX defined bc language is generally written as
a program in dc. In this form, the bc language includes C's well-known control-flow
structures like if(cond), while(cond), and for(init;cond;inc), as well as single-letter
names for variables, arrays, functions, and the majority of common arithmetic operators.
In contrast to C, an else cannot come after an if clause.
The define keyword is used to define functions, and the return keyword is used to
retrieve values from them. The return value is enclosed in parentheses. Declaring a
variable as local to a function in C requires the use of the auto keyword, which is
optional.
All numbers and variable contents are arbitrary-precision numbers, and the global scale
variable controls the accuracy (in decimal places).
o By defining the reserved variables ibase (input base) and obase (output base), you
can choose the numeric base of input (in interactive mode), output, and program
constants.
o By purposefully not putting the outcome of a calculation into a variable, output
is produced.
The C /* and */ (start and end comment) symbols can be used to insert comments into
BC code. [59]
Sample of a code,
As the bc operator only permits an integer power to its right, a power function with a
floating-point exponent is one of the first functions a bc user might create. The two
examples below both presuppose the standard library is present:
/* Use the knowledge that xy == e(y*log(x)) */ define p
/* A function to return the integer portion of x */ define i(x) auto s s = scale scale =
0 x /= 1
/* round x down */ scale = s return (x) (x,y) If y equals i(y), then return (x y) and
return (e(y * l(x))
78
59.
BCPL
A procedural, imperative, and structured programming language is called BCPL
(basic combined programming language). BCPL, which was first created to create
compilers for other languages, is no longer widely used. However, because the C
programming language was built on a simplified and syntactically altered version of
BCPL called B, its effect may still be seen today.
Many elements of many contemporary programming languages, such as the use of curly
braces to separate code blocks, were first presented by BCPL. Martin Richards of the
University of Cambridge introduced BCPL for the first time in 1967. [60]
60.
BeanShell
BeanShell is a lightweight, open-source Java source interpreter with features of
an object programming language that may be embedded. It utilizes the Java Runtime
Environment (JRE), dynamically executes typical scripting conveniences like loose
types, commands, and method closures, similar to those found in Perl and JavaScript,
and extends conventional Java syntax. [61]
It debuted in 1999.
System of operation: cross-platform
79
61.
BETA
The "Scandinavian School" of object-orientation, where Simula, the first objectoriented language, was created, is where BETA comes from. It introduced nested classes
and combined classes with methods into so-called patterns, among other important
features.
Bent Bruun Kristensen, Ole Lehrmann Madsen, Birger Mller-Pedersen, and Kristen
Nygaard Patterns all contributed to the design. [62]
The idea of patterns is a significant and unusual aspect of the language. There would be
many classes and procedures in a different programming language, like C++. Both of
these ideas are presented by BETA using patterns.
For instance, a straightforward C++ class would have the format class point int x, y; ;
In BETA, the pattern point (# x, y: @integer #) might be used to express the same class.
In other words, a class called point will have two integer-type fields named x and y.
Patterns are introduced via the symbols (# and #). To declare patterns and variables, use
the colon. The field definitions indicate that these are integer fields and not, in contrast,
references, arrays, or other patterns by placing a @ symbol before the integer type.
Another comparison might be a C++ procedure with the following syntax:
int max(int x, int y)
if (x >= y) return x;
else return y;
Such a function might be created in BETA by following the syntax max:
(# x, y, z: @integer enter (x, y) do (if x >= y / True then x -> z else y -> z if)
exit z #)
The local variables x, y, and z. The enter keyword defines the pattern's input parameters,
and the exit keyword specifies the function's output. The do keyword precedes the list
of operations to be performed between the two. The (if and if) operator separates the
conditional block, making the if keyword a part of the opening and closing parenthesis.
Within an if block, truth is verified by / True. The assignment operator ->, in its final
state, transfers the value on its left side to the variable on its right side.
World, welcome!
This code fragment prints the common line "Hello world!" as follows:
(# do "Hello world!"->PutLine #)
80
62.
BLISS
W. A. Wulf, D. B. Russell, and A. N. Habermann created the system
programming language BLISS at Carnegie Mellon University (CMU) sometime in the
1970s. Up to C's release a few years later, it was arguably the most well-known system
language. Since then, C has grown in popularity and use, whereas BLISS has lost favor.
A few projects at Bell Labs discussed the advantages of BLISS vs. C when C was still
in its infancy. Running program is Cross-platform
A typeless block-structured programming language called BLISS has structures for
handling exceptions, coroutines, and macros and is built on expressions rather than
statements. There is no goto statement in it.
Different sources claim that the term is an acronym for System Software
Implementation Language, Backwards or Basic Language for Implementation of
System Software. In honor of Bill Wulf, it was frequently referred to as "Bill's Language
for Implementing System Software."
The original Carnegie Mellon compiler served as the inspiration for the classic book
The Design of an Optimizing Compiler and was noted for its extensive use of
optimizations. [63]
The following traits apply to the BLISS dialect:
For example, on a 16-bit machine like the PDP-11, a constant is 16 bits; on a VAX
computer, a constant is 32 bits; and on a PDP-10, a constant is 36 bits. All constants are
full words for the machine being used.
Any reference to a variable is always a reference to the variable's address. For instance,
the instruction Z+8 refers to increasing Z's address by 8 rather than its value. To perform
this function, which adds 8 to the value of Z, one must prefix the variable with a period.
For example, one would type.Z+8 to perform this function.
The common = symbol is used for assignment; for example, Z=8 instructs the computer
to generate a full-word constant containing the number 8 and store it in the location
whose address matches that of Z. As a result, Z+12=14 (or, alternatively, 12+Z=14)
inserts the constant 14 into the address that comes 12 words after Z.
Similar to ALGOL, blocks are started with a BEGIN statement and ended with an END
statement. Statements are ended similarly to ALGOL with a semicolon (";"). A value
can be computed, set to a variable, and carried forward to the next statement if desired
since when a value is computed, it is saved until the following statement terminator. As
an alternative, a block may start with an open parenthesis and end with a close
parenthesis. Parenthesized expressions are computed first when parentheses are present
in an expression. Conditional execution makes use of the IF expression, which evaluates
a true-false condition, takes alternative actions, and returns a result.
In comparison, terms like EQL for equality, GTR for greater than, and NEQ for not
equal are used instead of overloading the = sign for the same purpose. For instance, the
location denoted by Q will receive the absolute value of Z when the following code is
used: Identifiers (variables and constants) must be declared before use, typically using
the OWN keyword. Q = (IF.Z GTR 0 THEN.Z ELSE -.Z); A variable may be given a
81
fixed machine address via the BIND declaration when necessary; ordinarily, declaring
a variable requires the compiler to allocate space for it. Accessing either computer
registers or specific special addresses is the main usage of this feature.
Routines are subroutines in the language, and they are declared using the term
ROUTINE.
With the keyword MACRO, macros that enable text substitution are declared.
The language supports arrays, which are declared using the term VECTOR and are
referred to as structures.
Some high-level programming language constructs are supported by the language,
including: Various ways to execute a command using the CASE expression
Creating a loop by using the INCR expression, which is akin to the FOR statement in
ALGOL internal string operations a few automated data conversions (number to string,
etc.)
63.
Blockly
Blockly is a JavaScript client-side framework for building block-based visual
programming languages (VPLs) and editors. It is free and open-source software created
by Google and distributed under the Apache License 2.0. It often runs in a web browser
and looks similar to the Scratch programming language.
Scripted in JavaScript
Operating systems: iOS and Android
Code can be generated in JavaScript, Lua, Dart, Python, or PHP using Blockly's visual
blocks that connect to make writing code simpler. To create code in any textual
programming language, it can also be tweaked.
Features :
o Flash-free, web-based, and uses Scalable Vector Graphics (SVG).
o JavaScript is entirely client-side.
o Internet Explorer, Chrome, Firefox, Safari, and other popular web browsers are
supported (IE)
support for a variety of programming constructs, such as variables, functions, and arrays
support for minimal type checking and creation of dynamically typed languages
Simple to add custom blocks to.
creation of clean code
Code execution in stages for tracing and debugging
Adapted into more than 100 languages
Support for languages written both left-to-right and right-to-left[64]
82
64.
BlooP
Simple programming languages called BlooP and FlooP (Bounded loop and Free
loop) were created by Douglas Hofstadter to illustrate a point in his book Gödel, Escher,
Bach. BlooP is a non-Turing-complete programming language with a bounded loop as
its primary control flow structure (i.e. recursion is not permitted). Only elementary
recursive functions can be expressed in this language, and all programs must end.
Since FlooP is a Turing-complete language that can express any computable functions,
it is identical to BlooP with the exception that it permits unbounded loops. For instance,
it can express the Ackermann function, which BlooP cannot express because it is not a
primitive recursive function. Hofstadter refers to the unbounded loops in FlooP as MUloops, borrowing language from mathematical logic.
The halting problem affects all Turing-complete programming languages, including
FlooP. In general, it is impossible to determine which programs will terminate.
BlooP and FlooP are models of computing that have occasionally been employed in
computability education.
The only variables are CELL(i), which represents the procedure's return value,
and OUTPUT (an unbounded sequence of natural-number variables, indexed by
constants, as in the Unlimited Register Machine). There are simply the following
operators: assignment, addition, multiplication, less-than, greater-than, and = (equals).
Although each program only makes use of a certain number of cells, those cells can
contain any size of number. Data structures like lists or stacks can be handled by
applying specific interpretations to the numbers in cells, or by Gödel numbering the
potential structures.
Bounded loops, conditional statements, ABORT leaps out of loops, and QUIT jumps
out of blocks are examples of control flow constructs. Recursion, unlimited jumps, and
other techniques that would mimic FlooP's unbounded loops are not allowed in BlooP.
Named procedures can be defined, but they can only call other procedures that have
already been created.
Factorial function:
DEFINE PROCEDURE FACTORIAL [N]:
BLOCK 0: BEGIN
OUTPUT ⇐ 1;
CELL(0) ⇐ 1;
LOOP AT MOST N TIMES:
BLOCK 1: BEGIN
OUTPUT ⇐ OUTPUT × CELL(0);
CELL(0) ⇐ CELL(0) + 1;
BLOCK 1: END;
BLOCK 0: END.
83
Subtraction function
Since it is specified on natural integers, this operation is not a built-in one and never
produces a negative result (for example, 2 3:= 0). Keep keep mind that OUTPUT
requires no setup because it starts at 0, just like all the CELLs do. [65]
DEFINE PROCEDURE MINUS [M,N]:
BLOCK 0: BEGIN
IF M < N, THEN:
QUIT BLOCK 0;
LOOP AT MOST M + 1 TIMES:
BLOCK 1: BEGIN
IF OUTPUT + N = M, THEN:
ABORT LOOP 1;
OUTPUT ⇐ OUTPUT + 1;
BLOCK 1: END;
BLOCK 0: END.
The Ackermann function is implemented in the example below by simulating a
stack using Gödel numbering, specifically by utilizing the previously defined numerical
functions PUSH [N, S] > 0, TOP [PUSH [N, S]] = N, and POP [PUSH [N, S]] = S. This
is not an authorized BlooP program because an unbounded MU-LOOP is used. Contrary
to the ABORT instructions, which terminate the loop in this scenario, the QUIT BLOCK
instructions skip to the end of the block and resume the loop.
84
DEFINE PROCEDURE ACKERMANN [M, N]:
BLOCK 0: BEGIN
CELL(0) ⇐ M;
OUTPUT ⇐ N;
CELL(1) ⇐ 0;
MU-LOOP:
BLOCK 1: BEGIN
IF CELL(0) = 0, THEN:
BLOCK 2: BEGIN
OUTPUT ⇐ OUTPUT + 1;
IF CELL(1) = 0, THEN: ABORT LOOP 1;
CELL(0) ⇐ TOP [CELL(1)];
CELL(1) ⇐ POP [CELL(1)];
QUIT BLOCK 1;
BLOCK 2: END
IF OUTPUT = 0, THEN:
BLOCK 3: BEGIN
OUTPUT ⇐ 1;
CELL(0) ⇐ MINUS [CELL(0), 1];
QUIT BLOCK 1;
BLOCK 3: END
OUTPUT ⇐ MINUS [OUTPUT, 1];
CELL(1) ⇐ PUSH [MINUS [CELL(0), 1], CELL(1)];
BLOCK 1: END;
BLOCK 0: END.
85
65.
Boo
Boo is an object-oriented, statically typed, general-purpose programming
language with a focus on language and compiler expansion that aims to take advantage
of the Common Language Infrastructure's support for Unicode, internationalization, and
online applications. Figure 36.
Type inference, generators, multimethods, optional duck typing, macros, true closures,
currying, and first-class functions are a few noteworthy features.
Before official support was discontinued in 2014 due to the small user base, Boo was
one of the three scripting languages for the Unity game engine (Unity Technologies
employed De Oliveira, its designer). In 2017, the Boo Compiler was eliminated from
the engine. [66]
The BSD 3-Clause license governs the free software known as Boo. Both the
Microsoft.NET and Mono frameworks are compatible with it.
print Hello world program ("Hello World")
Defined by the Fibonacci series generator function fib(): a, b = 0L, 1L h # While true,
the 'L's twice the word length of the numbers (usually 64 bits): give b a, b = b, a + b #
Print the series' first five numbers:
element in zip(range(5), fib()) for index as int:
"$index+1: $element" print
Figure 36 : Boo logo
66.
Boomerang
A programming language called Boomerang is used to create lenses, which are
well-behaved bidirectional transformations that work with arbitrary textual data types.
Initial release: 2008; fourteen years ago
Operating systems: Mac OS X and Linux[67]
86
67.
Bosque
Microsoft created and developed Bosque, a free and open-source programming
language that was influenced by the syntax and types of TypeScript as well as the
semantics of ML and Node/JavaScript. Better program quality and increased developer
productivity are among the design objectives for the language.
Mark Marron, a computer scientist at Microsoft Research, created Bosque as a means
of eschewing the structured programming paradigm that rose to prominence in the
1970s. After computer scientist Edsger Dijkstra published a paper in 1968 titled "Go To
Statement Considered Harmful," the structured programming paradigm, in which flow
management is handled by loops, conditionals, and subroutines, gained popularity.
Marron thinks that by eliminating sources of complexity like loops, mutable state, and
reference equality, we can perform better. Bosque is the outcome, and it stands for a
paradigm of programming that Marron refers to as "regularized programming" in a
paper he has written. Figure 37.
The MIT License governs the Bosque specification, parser, type checker, reference
interpreter, and IDE support, which are all available on GitHub. [68]
Examples Addition of two numbers x:
Int; y: Int; add2 Integer: return x plus y;
add2(2, 3) (2, 3) / 5
add2(x=2, y=3) / 5
add2(y=2, 5) / 7
Figure 37 : Bosque logo
87
68.
C – ISO/IEC 9899
C is a middle-level, all-purpose computer programming language that is
pronounced like the letter C. Dennis Ritchie invented it in the 1970s, and it is still quite
popular and influential. The capabilities of the targeted CPUs are clearly reflected in C's
features by design. Operating systems, device drivers, and protocol stacks have
continued to use it, albeit application software has used it less frequently. The smallest
microcontrollers and embedded systems to the greatest supercomputers all use the
programming language C. Figure 38.
Most programming textbooks now use the "hello, world" example from the first edition
of K&R as their example for an introductory program. To the standard output, which is
typically a terminal or screen display, the program outputs "hello, world."
The first draft was as follows:
Main();
printf (“Hi, world”)
A "hello, world" software that complies with standards is:
int main(void);
'#include stdio.h'
printf ("Hello, world,")
Preprocessing instructions are contained in the first line of the program, denoted by the
#include symbol. This instructs the compiler to replace that line with the entirety of the
standard header file stdio.h, which includes definitions for printf and scanf as well as
other input and output functions. The angle brackets around stdio.h show that the search
method used to find stdio.h prioritizes compiler-supplied headers over other headers
with the same name, as opposed to double quotes, which are normally used to include
local or project-specific header files.
The definition of the main function is shown in the next line. In C programs, the main
function has a specific function; it is called by the run-time environment to start the
execution of the program.
When the main function is evaluated, the type specifier int indicates that an integer will
be returned to the invoker (in this case, the run-time environment).
This function does not accept any arguments, as indicated by the keyword void in the
parameter list.
The first curly brace marks the start of the main function declaration.
The following line invokes (redirects execution to) the printf function, which is provided
by a system library in this instance. The address of the first character in the string literal
"hello, world" is sent as the only argument to the printf function in this call.
88
The compiler automatically sets up the string literal as an unnamed array with char-type
members and an end-of-array 0-valued character (printf needs to know this). The escape
character n, which C converts to a newline character on output to denote the end of the
current line, is an escape sequence. Since it is not used, the printf function's return value,
an int, is silently discarded. (A more cautious software might check the return value to
see if the printf function was successful.)
The statement is finished by a semicolon, or ;.
The final curly brace marks the conclusion of the main function's code. The main
function, unlike any other function, will implicitly return a value of 0 upon reaching the
that concludes the function, according to the C99 specification and newer. (An explicit
return 0; statement was formerly necessary.) The run-time system interprets this as an
exit code denoting successful execution. [69]
Figure 38 : C logo
89
69.
C-- (C minus minus)
C is a programming language that is comparable to C— Functional programming
gurus Simon Peyton Jones and Norman Ramsey created it mostly using compilers for
very high-level languages rather than human programmers. Contrary to many other
intermediate languages, it is represented as plain ASCII text rather than bytecode or
another binary format.
By: Simon Peyton Jones and Norman Ramsey
first availability: 1997
There are two main branches:
The official version 2.0 of C—, the original branch, was released in May 2005.
Interesting, the Glasgow Haskell Compiler actively employs the fork as the intermediate
representation (IR) (GHC)..
C—, dubbed "portable assembly language," was developed to make it easier to design
compilers that produce excellent machine code. Giving a C-compiler control over lowlevel code generation and program optimization achieves this. The language's syntax
closely resembles that of C while omitting or changing features like pointer syntax,
variadic functions, and other type system elements since they hinder the language's
ability to write code quickly.
The name of the language is a joke that relates to the fact that C++ is essentially an
enhanced version of C and that C— is a condensed form of C. (In C, the words
"decrement" and "increment" stand for — and ++, respectively.)
Work on C— began in the late 1990s. It was challenging to develop custom code
generators at the time due to the complexity and lack of documentation of the compiler
backends available to academics, therefore a number of projects had constructed
compilers that generated C code (for instance, the original Modula-3 compiler).
However, because it cannot be depended upon to enable accurate garbage collection,
tail-call optimization, or efficient exception handling, C is a poor candidate for
functional languages.
The more restricted, simpler variation of C known as C—underpins each of these. Its
run-time interface, which enables the development of portable garbage collectors,
exception handling systems, and other run-time features, distinguishes it from other Ccompilers.
The first version of C—, along with a study on garbage collection, were both released
as MSRA papers in January 1999 and April 1998, respectively. An updated manual was
posted online in HTML format in May 1999. C— version 2 was created in 2004 and
officially released in 2005 as a result of two sets of noteworthy changes that Norman
Ramsey ("Presented Changes") and Christian Lindig proposed in 2000. ("A New
Grammar"). [70]
90
70.
C++ (C plus plus) – ISO/IEC 14882
Bjarne Stroustrup, a Danish computer scientist, developed the high-level generalpurpose programming language C++ as an expansion of the C programming language,
sometimes known as "C with Classes." The language has evolved greatly over time, and
contemporary C++ currently contains facilities for low-level memory management
along with object-oriented, generic, and functional features. It is available on numerous
platforms since it is nearly often implemented as a compiled language, and numerous
suppliers, such as the Free Software Foundation, LLVM, Microsoft, Intel, Embarcadero,
Oracle, and IBM, offer C++ compilers. Figure 39.
Bjarne Stroustrup was the architect.
First published in 1985.
Cross-platform operating system.
Performance, effectiveness, and flexibility of usage were the design pillars of C++,
which was created with systems programming, embedded, resource-constrained
software, and big systems in mind. With its key strengths being software infrastructure
and resource-constrained applications, such as desktop programs, video games, servers
(such as those for e-commerce, web searches, or databases), and performance-critical
applications, C++ has also been found to be helpful in a wide variety of other contexts
(e.g. telephone switches or space probes).
The International Organization for Standardization (ISO) has standardized C++;
the most recent version was approved and published by ISO in December 2020 as
ISO/IEC 14882:2020, also known as C++20. The ISO/IEC 14882:1998 standard for the
C++ programming language was the first to be updated by the C++03, C++11, C++14,
and C++17 standards.
These are superseded by the current C++20 standard's new features and expanded
standard library. Before it was first standardized in 1998, Stroustrup developed C++ at
Bell Labs starting in 1979 as an extension of the C language. He wanted a language that
was just as effective and flexible as C while also offering high-level features for program
organization. With C++23 as the upcoming anticipated standard, C++ has been on a
three-year release schedule since 2012.
Mapping of hardware features offered mostly by the C subset, and abstractions with low
overhead based on those mappings. According to Stroustrup, C++ is "a lightweight
abstraction programming language [built] for developing and utilising efficient and
elegant abstractions; the foundation of C++ offers both hardware access and
abstraction." Its ability to be performed effectively sets it apart from other languages.
Most of the grammar from C is carried over to C++. The Hello world program by Bjarne
Stroustrup is the following, and it writes a message to standard output using the stream
feature in the C++ Standard Library:
91
#include <iostream>
int main()
{
std::cout << "Hello, world!\n";
}
C++ gives C features for object-oriented programming (OOP). It provides classes that
offer the four properties usually found in OOP (and some non-OOP) languages:
polymorphism, inheritance, encapsulation, and abstraction. Support for deterministic
destructors, which in turn provides support for the Resource Acquisition is Initialization
(RAII) idea, sets C++ classes apart from classes in other programming languages. [71]
Figure 39 : C++ logo
71.
C*
The programming language is the subject of this article. Please refer to Apache
Cassandra for the DBMS. See algebra for further information. See Star and crescent for
information on the emblems and symbols used on flags. Characteristic velocity is the
phrase used to describe rocket propulsion. For the category of astronomical object, see
star cluster. Convergence is a festival for goths (goth festival).
An object-oriented, data-parallel superset of ANSI C with synchronous semantics is
called C* (or C-star). [72]
Thinking Machines created the design.
initial release: 1987
System of operation: Connection Machine
92
72.
C# (C sharp) – ISO/IEC 23270
C# is a multi-paradigm, high-level, general-purpose programming language that
is pronounced "see sharp." Figure 40. Programming paradigms like imperative,
declarative, functional, generic, object-oriented (class-based), lexically scoped, static
typing, strong typing, and component-oriented are all supported by C#. [73], Figure41.
Figure 40: C-sharp musical note
Figure 41 : C-sharp logo
93
Microsoft employee Anders Hejlsberg created the C# programming language,
which was eventually recognized as a global standard by Ecma (ECMA-334) in 2002
and ISO/IEC (ISO/IEC 23270) in 2003. Microsoft unveiled C# along with the closedsource.NET Framework and Visual Studio. Microsoft didn't have any open-source
products at the time. A cross-platform compiler and runtime environment for the C#
programming language were made available by the free and open-source project Mono
four years later, in 2004. A decade later, Microsoft launched the unified.NET platform
(software framework), Roslyn (code editor), and Visual Studio Code (compiler), all of
which support C# and are free, open-source, and cross-platform. Mono joined Microsoft
as well, but it was not incorporated into.NET.
The most recent stable version of the language as of November 2022 is C# 11.0, which
was made available in 2022 with.NET 7.0.
In 1988, Microsoft gave a C language variant intended for incremental compilation the
moniker C# for the first time. The name was subsequently used for another project that
was never finished.
Here is a very basic C# program that uses the top-level statements feature that was added
in C# 9 to provide a modified version of the traditional "Hello world" example:
utilizing the console; system.
"Hello, world," writes WriteLine;
The entry point logic of a program must be defined in a Main method inside a type for
code written in C# 8 or earlier:
using System;
// A version of the classic "Hello World" program
class Program
{
static void Main()
{
Console.WriteLine("Hello, world!");
}
}
In the console window, this code will show the following text:
Hello, universe!
Each line serves a specific function. For example, the line above imports all types from
the System namespace. For instance, the Console class is created in the System
namespace and can be used later in the source code without specifying the type's
complete name (which includes the namespace).
/ An alternative to the well-known "Hello World" program
94
This line serves as a comment for the coder, explaining and documenting the code (s).
class Program
The Program class's definition may be found above. The text that appears after
the braces describes the class.
{
...
}
The boundaries of a code block are indicated by the curly brackets. They are
denoting the beginning and end of the Program class in this first instance. static void
Main ()
The class member method where the program starts to run is declared here. The Main
function is called by the.NET runtime. The public keyword, which instructs the
compiler that the method can be called from anywhere by any class in Java, is not
required for the Main method. It is comparable to writing private static void Main when
writing static void Main(string[] args) (string[] args). The method can be accessed
without a Program instance thanks to the static keyword. The Main entry point of each
console application must be declared static; otherwise, each program would need its
own instance of Program, and each instance would need its own program.
If there is no static Main method, C# compilers handling console programs (like the one
above) will throw an error in order to avoid that unbreakable circular dependency. It is
stated by the void keyword that Main has no return value.
Console. WriteLine("Hello, world!");
The output is written in this line. In the System namespace, Console is a static class.
For console applications, it offers an access to the conventional input, output, and error
streams.
The program invokes the Console function WriteLine, which prints a line with the
parameter "Hello, world!" to the console.
95
73.
C/AL
Up until (and including) version 14, Microsoft Dynamics NAV (Formerly known
as Navision Attain) and Microsoft Dynamics 365 Business Central used the
programming language C/AL (Client/Server Application Language) within C/SIDE, the
Client/Server Integrated Development Environment. AL has taken its place. C/AL is a
Database specific programming language, and is primarily used for obtaining, inserting
and altering records in a Navision database. The Pascal programming language, on
which C/AL is based, is similar. Michael Nielsen created the original C/AL compiler.
This is the traditional Hello World illustration. The C/SIDE (Client/Server Integrated
Development Environment) lacks a console to output text, so a dialog box was used in
this example's visual interface instead. [74]
MESSAGE('Hello, world!');
Filtering and retrieving record
Variables in C/AL are not defined through code, but are defined via the variable
declaration menu in the C/AL editor. In this example Item is assumed to be a variable
of type Record.
IF Item.GET('31260210') THEN
MESSAGE(STRSUBSTNO('Item name is: %1',Item.Description));
Item.RESET;
Item.SETRANGE("No.",FromItem,ToItem);
Item.FINDLAST;
Looping and data manipulation
Looping over a recordset and modifying the individual records is achieved with only a
few lines of code.
Item.RESET;
Item.SETRANGE("Blocked",TRUE);
IF Item.FINDSET THEN
REPEAT
IF Item."Profit %" < 20 THEN BEGIN
Item."Profit %" := 20;
Item.MODIFY(TRUE);
END;
UNTIL Item.NEXT = 0;
Item.MODIFYALL("Blocked",FALSE);
96
74.
Caché ObjectScript
The InterSystems-marketed Caché database system includes Caché ObjectScript.
The language is a functional superset of the MUMPS programming language, which is
an ANSI standard. Caché can execute ANSI MUMPS routines without modification
because it is fundamentally a MUMPS implementation. Support for object-oriented
programming, a macro preprocessing language, embedded SQL for ANSI-standard
SQL access to M's built-in database, procedure and control blocks using C-like brace
syntax, procedure-scoped variables, and looser whitespace syntax restrictions are all
features that Caché implements to appeal as a commercial product. [75]
Hello world program as a routine
hello // hello world routine
write "hello world"
end quit // end
Then in Caché Terminal (assuming you wrote the hello routine to the SAMPLE
namespace):
SAMPLE> DO ^hello
Hello world program as a ClassMethod
Class User.Helloworld
{
ClassMethod HelloWorld()
{
// Write to console
Write "Hello World"
Quit
}
}
Assuming you added the User.Helloworld Class to the SAMPLE namespace, do the
following in Caché Terminal:
SAMPLE> DO ##class(User.Helloworld).HelloWorld()
97
75.
C Shell (csh)
The C shell, also known as csh or its upgraded version, tcsh, is a Unix shell that
was developed by Bill Joy in the late 1970s while he was a doctoral student at the
University of California, Berkeley. Figure 42. Since Joy initially issued the Berkeley
Software Distribution (BSD) 2BSD release in 1978, it has been widely
disseminated.Figure 43. Michael Ubell, Eric Allman, Mike O'Brien, and Jim Kulp were
further early contributors to the concepts or the code. Operating systems: Linux, macOS,
UNIX, and BSD[76]
Figure 42 : tcsh and sh side-by-side on a Mac OS X desktop
Figure 43 : C Shell running on Windows Services for UNIX
98
The first goal of the C shell was to provide a command language that was more
stylistically similar to the rest of the system because the Unix system had been almost
entirely designed in C. The C shell's built-in expression grammar, array support, use of
parentheses, and keywords were all heavily impacted by C.
C shell may not appear to be all that much more similar to C than many other common
scripting languages by today's standards. But during the 1980s and 1990s, people saw a
noticeable difference, especially when contrasted to the then-dominant shell created by
Stephen Bourne at Bell Labs, known as Bourne shell (also known as sh). The C shell's
more traditional expression operators and syntax are demonstrated in this example.
#!/bin/sh
if [ $days -gt 365 ]
then
echo This is over a year.
fi
#!/bin/csh
if ( $days > 365 ) then
echo This is over a year.
Endif
There was no expression grammar in the Bourne sh. The condition in square
brackets required to be assessed using the more time-consuming method of running the
external test program. As a new command to be executed as a child process, sh's if
command accepted its parameter words. Sh would search for a then clause—a distinct
statement that is frequently joined on the same line with a semicolon—and execute that
nested block if the child departed with a zero return code. It would execute the else if
not. Hard-linking the test program as both "test" and "[" provided the benefit of square
bracket notation and the impression that test's capability was built into the sh language.
The way that sh used a reversed term to signify the end of a control block was influenced
by ALGOL 68.
Csh was quicker since it could evaluate the expression immediately. Additionally, it
claimed that it was easier to read since none of its keywords were reversed, its
expressions employed a syntax and a set of operators that were largely derived from C,
and its overall style was also more similar to C. Here is a second illustration that
contrasts scripts that determine the first ten powers of 2.
99
#!/bin/sh
i=2
j=1
while [ $j -le 10 ]
do
echo '2 **' $j = $i
i=`expr $i '*' 2`
j=`expr $j + 1`
done
#!/bin/csh
set i = 2
set j = 1
while ( $j <= 10 )
echo '2 **' $j = $i
@ i *= 2
@ j++
end
Again, the sh script makes use of command substitution and the expr command
due to the absence of an expression grammar.
(The statement might be written i=$((i * 2))
Or:
"$((i *= 2)") in the modern POSIX shell.)
Finally, here is a third example, displaying the differing formats for a switch statement.
#!/bin/sh
for i in d*
do
case $i in
d?) echo $i is short ;;
*) echo $i is long ;;
esac
done
100
#!/bin/csh
foreach i ( d* )
switch ( $i )
case d?:
echo $i is short
breaksw
default:
echo $i is long
endsw
end
Because sh forbids null statements otherwise, ";;" indicates the conclusion of each case
in the script.
76.
Caml
A multi-paradigm, or dialect, of the ML programming language family, Caml
was originally an acronym for Categorical Abstract Machine Language. At INRIA and
ENS in France, Caml was created.
Gérard Huet, Guy Cousineau, Ascánder Suárez, Pierre Weis, Michel Mauny (Heavy
Caml), and Xavier Leroy were responsible for the design (Caml Light)
Initial release: 1985. Running System: Cross-platform
Caml employs automatic memory management, is statically typed, and is strictly
evaluated. The primary successor of Caml, OCaml, enhances the language with
numerous features, including an object layer. [77]
101
77.
Carbon
An experimental general-purpose programming language is called Carbon, or
Carbon-Lang. In the same vein as earlier programming languages created by Google,
the project is open-source and was initiated by them (Go and Dart). Carbon was first
proposed by Google employee Chandler Carruth at the CppNorth conference in Toronto
in July 2022. He said that Carbon was developed as C++'s replacement. Figure 44.
A 1.0 release of the language is anticipated for 2024 or 2025. The language offers
a similar feature set while attempting to address some of C++'s alleged faults. As
opposed to using a new language like Rust (which is based on C++ but is not two-way
compatible with C++ programs), the primary goals of the language are readability and
"bi-directional interoperability".
The Carbon leaders will make decisions regarding language modifications. [78]
The design, implementation, and associated tools for Carbon are all hosted on GitHub
under the terms of the Apache-2.0 license with LLVM Exception.
How to write a "Hello, World!" program in Carbon is demonstrated by the following
example:
package Sample api;
fn Main() -> i32 {
var s: auto = "Hello, world!";
Print(s);
return 0; }
The following example is the exact same
"Hello, World!" program written in C++:
#include <iostream>
int main() {
auto s = "Hello, World!";
std::cout << s;
return 0; }
Figure 44 : Carbon logo
102
78.
Catrobat
Block-based visual programming language Catrobat is an open source, non-profit
initiative. The first release took place in 2010, and Wolfgang Slany from the Technical
University of Graz in Austria was the driving force behind it. On the basis of the catrobat
framework, the multidisciplinary team develops the programming language and free
apps to enable teenagers to make their own games, animations, music videos, and other
types of apps directly on a smartphone. [79]
Wolfgang Slany was the designer.
System of operation: cross-platform
79.
Cayenne (Lennart Augustsson)
Lennart Augustsson is a computer scientist from Sweden. He has previously
worked as a lecturer for Chalmers University of Technology's Department of
Computing Science. Functional programming and functional language implementations
are the focus of his study. Augustsson presently works for Epic Games after formerly
holding positions at Carlstedt Research and Technology, Sandburst, Credit Suisse,
Standard Chartered Bank, Facebook, X Development, and Google.
• Author of the programming language Cayenne is Augustsson.
• The Haskell compiler from HBC.
• A number of NetBSD hardware device drivers.
• The parallel Haskell front end of the pH compiler from MIT.
• The first iteration of Bluespec's compiler.
Along with Thomas Johnsson, he was also a co-creator of Lazy ML, a functional
programming language created in the early 1980s before Miranda and Haskell. LML is
a strongly typed, statically scoped, and lazy evaluation version of machine learning.
LML's main contribution was to show how to compile a lazy functional language. Up
to that point, interpreted graph reduction has been used to construct lazy languages. Gmachine code is generated from LML. [80]
Augustsson played a key role in the early development of LPMud, working on both the
CD mudlib and the LPMUD driver. Marvin is his MUD community alias.
Three of Augustsson's entries in the international contest for obfuscated C code were
chosen as winners:
• Most obscure program was in 1985 (1985/august.c).
• The best complex task completed in a complex manner was in 1986 (august).
• Best of Show in 1996 (1996/august.c)
103
80.
CDuce
A functional language that extends XDuce in a few ways is called CDuce. It is
XML-oriented. It includes XML iterators, XML regular expression types, and XML
regular expression patterns. Since CDuce can be used for general-purpose
programming, it is not strictly speaking an XML transformation language.
The following fundamental standards are met by CDuce: Unicode, XML, DTD, full
support for namespaces, and limited support for XML Schema. [81]
81.
Cecil
Craig Chambers created Cecil, a wholly object-oriented programming language,
as a component of the Vortex project at the University of Washington in 1992. Cecil
and other object-oriented languages, most notably Objective-C, Modula-3, and Self,
share a lot of similarities. The project's primary objectives were adaptability,
orthogonality, effectiveness, and user-friendliness. [82]
Instructions, or operations, can have a single operand, which can be a store location, a
constant integer value, or a line label. They are written in upper case. Store addresses
and line labels have alphanumeric beginnings with up to six characters. Constants for
integer numbers must be signed with either + or, with zero represented by +0.
output and input
The next value is taken from the data and stored in the accumulator by the IN command.
If the program tries to read past the end of the data provided, the message
*** PROGRAM REQUIRES MORE DATA *** is produced.
The word "OUT" publishes the accumulator's most recent value. There is no carriage
return on the page.
The command PRINT "text in quotes" prints the specified text. There is no carriage
return on the page.
LINE – starts a new line by printing a carriage return.
Data storage
A location or constant's value is copied to the accumulator when a location or constant
is loaded.
STORE location copies the accumulator's contents to the specified place.
Mathematical instructions
Location or constant values are added to the accumulator by using the ADD command.
The value of the specified location or constant is subtracted from the accumulator using
the SUBTRACT location or SUBTRACTS constant command.
It multiplies the accumulator by the value of the specified location or constant when
using the MULTIPLY location or MULTIPLY constant command.
Divides the accumulator by the value of the specified location or constant (DIVIDE
location or DIVIDE constant). If the result is positive, it is rounded down, and if it is
104
negative, it is rounded up. If the divisor is zero, an error notice reading "DIVIDION BY
ZERO" is displayed.
Each time, the operation's outcome is recorded in the accumulator in place of the
previous value.
program management
JUMP label: unconditionally gives control to the designated place.
If the accumulator contains a negative value, the JINEG label (Jump If NEGative)
command moves control to the location labeled.
If the accumulator holds zero, the JIZERO label (Jump If ZERO) command switches
the control to the designated destination.
HALT: This shuts down the program.
Other motifs
At the start of each line in CESIL, three unique symbols are utilized.
The program's end and the beginning of the data are indicated by %.
The data is marked with a * at the end.
(is used to denote a comment at the beginning of a line.
Tools for CESIL programming
There is a freeware CESIL emulator called Visual CESIL that is made to work on
Windows.
Wyrm CESIL is a CESIL interpreter that can be installed for free and is made to run on
the Android operating system.
82.
Céu
"Structured Synchronous Reactive Programming" is what Céu is. Céu enables
synchronous concurrency with shared memory, deterministic execution, and a tiny
memory footprint, according to its website. [83]
105
83.
Ceylon
Red Hat developed Ceylon, an object-oriented, strongly statically typed
programming language with a focus on immutability. Figure 45. Ceylon programs can
be compiled into JavaScript and run on the Java virtual machine (JVM). The design of
the language puts an emphasis on the readability, predictability, toolability, modularity,
and meta-programmability of the source code. Creator: Gavin King
Initial release: 2011
Figure 45 : Ceylon logo
When compared to Java, Ceylon's type system is one of its most innovative
features. Ceylon uses a type system made up only of first-class objects instead of Java's
primitive types and boxing. While it may occasionally result in boxing overhead, this
improves the uniformity of the type system. [84]
Similar to TypeScript, While, and Flow, Ceylon supports union and intersection types.
A variable may have more than one type thanks to union types, represented by the letters
A|B. An example of a Ceylon function that accepts either an integer or a string is seen
in the following sentence:
106
shared void integerOrString(Integer|String input)
{
if (is Integer input)
{
print("Got the integer ``input``");
}
else
{
print("Got the string '``input``'");
}
}
Intersection types, written A&B, are the theoretical foundation of flow-sensitive typing:
shared void integerOrString(Integer|String input)
{
Integer added = input + 6;
// illegal; the + operator is not defined on Integer|String
if (is Integer input)
{ Integer added = input + 6;
// legal; input is now known to be an Integer
print("Got the integer ``input``");
}
Else
{ print("Got the string '``input``'"); }
}
The condition is that Integer input reduces the input type to & Integer, which
distributes to Integer&Integer | String&Integer, which is identical to Integer&Integer |
Nothing (Nothing is the empty bottom type), which simplifies to only Integer because
String and Integer are disjoint types.
For null safety, union and intersection types are utilized. The class Anything, which is
the top type in the Ceylon type hierarchy, has two subclasses: Object, which is the
superclass of all other classes and interfaces, and Null, which has just one instance,
which is null. Most common types, such as Integer or List, are not nullable because
Object and Null are disjoint types. However, the union Integer|Null, also known as
Integer? It is possible to create a non-optional type out of a type that might be optional,
such as a type parameter, by using intersection types. A function that eliminates null
entries from a stream of values, for instance, would have the following signature:
107
IterableElement&Object > removeNulls<Element>(Iterable<Element> Stream);
RemoveNulls returns a stream of Integer|Null> & Object elements, which can be
translated to Integer, when given a stream of Integer|Null elements.
Ceylon supports type inference and is highly and statically typed. The type of a variable
can be inferred using the value keyword, while the type of a function can be inferred
using the function keyword. Each of the two definition pairs below is equivalent:
Integer i = 3;
value i = 3;
Integer add(Integer i1, Integer i2) {
return i1 + i2; }
function add(Integer i1, Integer i2) {
return i1 + i2; }
However, type inference is only permitted for non-toplevel and unshared declarations
in order to enable single-pass type inference.
naming point of entry
By default, the starter (ceylon run) executes a module's shared run() function:
shared void run()
print("Hello, World!"); /* The traditional Hello World program /*
In contrast, any other common function without parameters may be used as the main
when the program is called using the run parameter, as in:
run Ceylon —compile=force —run default Hello
108
84.
CFEngine
Mark Burgess created the open-source configuration management system known
as CFEngine. Its main purpose is to provide large-scale computer systems with
automated configuration and maintenance. This includes managing servers, desktops,
consumer and industrial devices, embedded networked devices, mobile smartphones,
and tablet computers under one management system.
Many universities and governmental organizations, as well as big and small businesses,
employ CFEngine. Figure 46. More than a million servers are reported to be housed in
the largest datacenter managed by CFEngine, although sites with up to 40,000 machines
are often reported in the public domain (LinkedIn). According to data from CFEngine
AS, CFEngine is likely running on several million computers worldwide, and users from
more than 100 nations have registered. [85]
Figure 46 : CFEngine logo
109
85.
Cg (High-Level Shader/Shading Language [HLSL])
Two names for the high-level shading language created by Nvidia and Microsoft
for writing shaders are Cg (short for C for Graphics) and High-Level Shader Language
(HLSL). Figure 47. Although Cg/HLSL and C share the same basic syntax, C features
have been changed and new data types have been added to make Cg/HLSL better suited
for writing programs for graphics processing units. [86]
Figure 47 : A scene containing several different 2D HLSL shaders.
a scene with a wide range of different 2D HLSL shaders. While the texture of the
rectangle frame adjacent to it is based on the intensity of the colors, the deformation of
the statue is totally physical. Rotation and changes have been made to the backdrop
square. The water's reflection and partial transparency are added via a shader that is
ultimately applied to the entire scene.
The two main branches of the Cg/HLSL language are the Nvidia Cg compiler (cgc),
which generates DirectX or OpenGL, and the Microsoft HLSL, which generates
DirectX shaders in bytecode format. As of 2012, Nvidia no longer developed or
supported the cgc.
HLSL shaders provide a wide range of intriguing effects in computer graphics, both 2D
and 3D. Vertex and pixel shaders were the only types of shaders that the Cg/HLSL
language initially supported, however other shader types were eventually added:
• Cg 2.0 and DirectX 10 were the first to include geometry shaders ( Shader Model
4).
• DirectX 11 included tessellation shaders and compute shaders (GPGPU) (Shader
Model 5) The latter is present in Cg 3.1.
• DirectX 12 included the first ray tracing shaders (ray generation, intersection,
bit/closest hit/miss) (Shader Model 6.3).
110
86.
Ch
Harry H. Cheng originally created Ch as a scripting language for beginners to
learn mathematics, computing, numerical analysis (numeric methods), and
programming in C/C++. Ch is a proprietary cross-platform C and C++ interpreter and
scripting language environment. Ch is currently created and sold by SoftIntegration, Inc.
There is a free student edition available. For non-commercial use, Ch Professional
Edition for Raspberry Pi is free. [87] Applications written with C/C++ can incorporate
Ch. It contains capabilities for graphic plotting and numerical computing. Ch is an IDE
and shell hybrid. The C language and the common shell are combined in the Ch shell.
Quick code navigation and symbolic debugging are features of ChIDE. It is based on
Scintilla, Scite, and embedded Ch. The C-based operating systems Windows, Linux,
macOS, FreeBSD, AIX, Solaris, QNX, and HP-UX all support Ch. It supports the
majority of C90 and C99 features but not all of C++'s features. Ch previously supported
the C99 complex number, IEEE-754 floating-point arithmetic, and variable-length array
capabilities before they were included in the C99 standard. According to a Computer
Reseller News (CRN) article, Ch stands out among C-based virtual machines because
to its features and accessibility to third-party libraries. Ch has a variety of toolkits that
expand its capabilities.
For instance, the design and analysis of frequently used mechanisms like the four-bar
linkage, five-bar linkage, six-bar linkage, crank-slider mechanism, and cam-follower
system are done using the Ch Mechanism Toolkit. For the modeling, design, and
analysis of continuous-time or discrete-time linear time invariant (LTI) control systems,
utilize the Ch Control System Toolkit. The source code is included in both toolkits.
Many high schools and universities now use and include Ch into their curricula to teach
computing and programming in C/C++. Ch has been incorporated into the free C-STEM
Studio, a platform for learning robotics and C-STEM (computer science, science,
technology, engineering, and mathematics). The UC Davis Center for Integrated
Computing and STEM Education created C-STEM Studio (C-STEM).
111
87.
Chapel (Cascade High Productivity Language)
The parallel programming language Chapel, also known as the Cascade High
Productivity Language, was created by Cray and later by Hewlett Packard Enterprise
after Cray was bought. It was being created as a component of the DARPA High
Productivity Computing Systems (HPCS) program, which aimed to boost
supercomputer productivity by 2010. It is being worked on as an open source project
with the Apache license version 2. [88], Figure 48.
Figure 48 : Chapel logo
Both C and C++ (C++14) are used to create the Chapel compiler. The backend,
or optimizer, is LLVM, which was created in C++. Some optional components, like
Chapel's test system and c2chapel, a tool to create C bindings for Chapel, require Python
3.7 or greater. Chapel can be configured to compile to C code instead of binary
expendables, in which case LLVM is not used. Chapel programs can be turned into
libraries that can be called from C, Fortran, or other programming languages like
Python.
Chapel covers early efforts to focus on NVidia GPUs.
Within the following six months, Chapel 2.0 is anticipated. Numerous functions, as well
as the syntax and the I/O-operator >, are deprecated in the current version 1.28.
By enabling abstractions for data parallelism, task parallelism, and layered parallelism,
Chapel offers a multithreaded parallel programming approach at a high level. Through
abstractions for data distribution and data-driven placement of subcomputations, it
enables optimizations for the locality of data and computation in the program. Through
object-oriented ideas and generic programming features, it enables code reuse and
generality. For example, Chapel permits the declaration of locations.
Despite the fact that Chapel incorporates ideas from a variety of earlier languages, its
parallel notions are most closely based on concepts from High Performance Fortran
(HPF), ZPL, and the Cray MTA's additions to Fortran and C.
112
88.
Charm
Developed in the early 1990s, Charm is a programming language for computers
that has characteristics of the RTL/2, Pascal, and C languages as well as offering some
original features of its own. A context-free grammar that can be processed by a recursive
descent parser, as described in fundamental literature on compiler design, defines the
Charm language.
For the RISC OS operating system from Acorn, a suite of Charm tools comprising a
compiler, assembler, and linker were made available. A review of Charm modified for
RISC OS systems has since appeared in Archive magazine. The e-book Programming
in Charm on the Raspberry Pi goes into more detail on Charm. [89]
The first Hello world program was created in Charm and is:
ext proc write_string (ref array char);
module hello;
ent proc start ();
write_string ("Hello world");
end_proc;
end_module;
And the equivalent latest version following evolutionary syntactic language changes is:
import lib.Out;
module Hello
{ export proc ~start ()
{ Out.vdu.str ("Hello world"). nl(); } }
113
89.
CHILL
I A procedural programming language called CHILL, also known as CCITT High
Level Language, is used in computing and is intended for use in telecommunication
switches (the hardware used inside telephone exchanges). The programming of signal
boxes and legacy systems in some telecommunications corporations still use the
language.
In terms of size and complexity, the CHILL language is comparable to the original Ada
language. A few years before Ada, in 1980, the first CHILL language specification was
released. [90].ITU offers a common CHILL compiler. Up until version 2.95, a free
CHILL compiler was included with GCC; it was afterwards deleted. Object CHILL, an
object-oriented variant, was also created. The CHILL standard, also known as ITU-T
Rec. Z.200, was created by ITU. ISO/IEC 9496:2003 is the ISO standard that is
equivalent. (The two documents' texts are identical.) CCITT terminated upkeep of the
CHILL standard in late 1999. For instance, Siemens EWSD and Alcatel System 12 both
employed CHILL in their systems.
90.
CHIP-8
Joseph Weisbecker created the interpreted CHIP-8 programming language for his
1802 microprocessor. In the middle of the 1970s, it was first applied to the 8-bit
COSMAC VIP and Telmac 1800 microcomputers. On a CHIP-8 virtual machine, CHIP8 programs are executed. It was created to make it simpler to program video games for
these computers. There are still CHIP-8 emulators and programs being developed today
thanks to the CHIP-8's simplicity, longevity, and appeal. [91], Figure 49.
Figure 49 : Screenshot of Pong implemented in CHIP-8
114
91.
ChucK
Running on Linux, Mac OS X, Microsoft Windows, and iOS, ChucK is a
concurrent, strongly timed audio programming language for real-time synthesis,
composition, and performance. It is made with the programmer's readability and
flexibility in mind, rather than other factors like sheer performance. It comes with inbuilt
support for multiple, concurrent dynamic control rates and deterministic concurrency.
Live coding, or the ability to add, remove, and alter code while a program is running
without stopping or restarting, is another important feature. It supports arbitrarily fine
granularity and features a timing/concurrency mechanism that is extremely accurate. It
provides real-time interactive control, a strong and adaptable programming tool for
creating and experimenting with complicated audio synthesis programs, and a resource
for academics and composers. [92], Figure 50.
Ge Wang, a graduate student working with Perry R. Cook at the time, was the primary
creator and designer of ChucK. On Mac OS X, Linux, and Windows, ChucK is freely
available under the provisions of the GNU General Public License. ChiP (ChucK for
iPhone) is a closed-source application for iPhone and iPad that is currently offered under
a restricted license. The core team, however, has declared that it wants to investigate
"means to open ChiP by establishing a positive atmosphere for everyone."
A straightforward ChucK application that creates sound and melody is as follows:
// our signal graph (patch)
SinOsc f => dac;
// set gain
.3 => f.gain;
// an array of pitch classes (in half steps)
[ 0, 2, 4, 6, 9, 10 ] @=> int hi[];
// infinite loop
while( true )
{ // choose a note, shift registers, convert to frequency
Std.mtof( 65 + Std.rand2(0,1) * 43 +
hi[Std.rand2(0,hi.cap()-1)] ) => f.freq;
// advance time by 120 ms
120::ms => now; }
115
Figure 50 : Chuck logo
92.
Cilk (also Cilk++ and Cilk plus)
The general-purpose programming languages Cilk, Cilk++, Cilk Plus, and
OpenCilk were created for multithreaded parallel computation. They are built upon the
C and C++ programming languages, which they enhance with the fork-join idiom and
constructs to define parallel loops. [93]
Initially created in the 1990s at the Massachusetts Institute of Technology (MIT) by
Charles E. Leiserson's group, Cilk was later made available for purchase as Cilk++ by
a subsidiary business, Cilk Arts. After Intel bought that firm, the compatibility with
existing C and C++ code was enhanced, and the finished product was given the name
Cilk Plus. In the form of OpenCilk, MIT is once more developing Cilk, which Intel
stopped supporting in 2017.
The Fibonacci function is implemented recursively in Cilk in the example below,
which also serves as an example of the spawn and sync keywords. Any function
employing these had to be annotated with the cilk keyword in the original Cilk, but
this requirement is no longer present in Cilk Plus. (The numbers have just been added
to the CiLK program code to make the conversation simpler to follow.)
116
cilk int fib(int n) {
if (n < 2) {
return n; }
else {
int x, y;
x = spawn fib(n - 1);
y = spawn fib(n - 2);
sync;
return x + y; } }
The code example above uses the syntax of Cilk-5. The original Cilk (Cilk-1) used a
rather different syntax that required programming in an explicit continuation-passing
style, and the Fibonacci examples looks as follows:[17]
thread fib(cont int k, int n)
{ if (n < 2) {
send_argument(k, n); }
else {
cont int x, y;
spawn_next sum(k, ?x, ?y);
spawn fib(x, n - 1);
spawn fib(y, n - 2); } }
thread sum(cont int k, int x, int y)
{ send_argument(k, x + y); }
117
93.
Claire
High-level functional and object-oriented programming language Claire has the
ability to process rules. Its definitive description was given in 2004 and it was created
by Yves Caseau at the e-Lab research facility of Bouygues. [94]
Claire offers: A straightforward object framework with parametric classes and
methods
Versioned snapshots of the state of the entire system, or any part, supporting rollback
and easy exploration of search spaces explicit relations between entities; for instance,
two entities might be declared to be inverses of one another first-class sets with
convenient syntax for set-based programming an expressive set-based type system
allowing both second-order static and dynamic typing
With the launch of version 3.3.46 in February 2009, Claire's reference
implementation, which consists of an interpreter and compiler, was completely made
open-source. Commercial support is provided for WebClaire, another implementation.
nth Fibonacci number computation function:
fib(n:integer) : integer
-> (if (n < 2) 1
else fib(n - 1) + fib(n - 2))
94.
Clarion
Database applications are created using Clarion, a commercial, proprietary,
multi-paradigm, fourth-generation programming language (4GL), and integrated
development environment (IDE) from SoftVelocity. It can read and write several flat
file desktop database formats, including ASCII, comma-separated values (CSV), DOS
(binary), FoxPro, Clipper, dBase, and some relational databases via ODBC, Microsoft
SQL Server, Sybase SQL Anywhere, and Oracle Database through the use of
accelerated native database drivers, as well as XML, SQL, and ActiveX Data Objects
(ADO) data access methods. Clarion can be used to output data to several file types,
including HTML, XML, plain text, and Portable Document Format (PDF).
An object-oriented programming syntax is supported by the imperative programming
language Clarion. Case is not relevant in the language.
Unless a line continuation character is explicitly used, line endings are interpreted as
implicit statement terminators. Labels for the data and program are always stated in
column 1, and code is always indented starting in column 2. Any more indenting is
optional. Though the language is very different from those, the structure of the code
syntax most closely matches that of BASIC and Pascal.
Code blocks normally contain either an explicit or implicit beginning (no BEGIN word
is used) and an ending. [95]
118
For example;
If x = 5
y=z*3
end
A period can be used instead of the END statement.
If x = 5
y = z * 3.
Code can be concatenated onto one line using the ; separator (or in the case of IF a
THEN statement).
If x = 5 then y = z * 3.
Note the period which is terminating the IF statement block.
95.
Clean
A general-purpose, entirely functional programming language is called Clean.
The Concurrent Clean System was first known as the Clean System and later just as
Clean. Since 1987, a team of scientists from Radboud University in Nijmegen has been
working on developing Clean. [96], Figure 51.
Figure 51 : Clean logo
119
Hello world! :
Start = "Hello, world!"
Factorial:
fac :: Int -> Int
fac 0 = 1
fac n = n * fac (n-1)
Start = fac 10
fac :: Int -> Int
fac n = prod [1..n] // The product of the numbers 1 to n
Start = fac 10
Fibonacci sequence:
fib :: Int -> Int
fib 0 = 1
fib 1 = 1
fib n = fib (n - 2) + fib (n - 1)
Start = fib 7
fibs :: Int Int -> [Int]
fibs x_2 x_1 = [x_2:fibs x_1 (x_2 + x_1)]
fib :: Int -> Int
fib n = (fibs 1 1) !! n
Start = fib 7
Infix operator:
(^) infixr 8 :: Int Int -> Int
(^) x 0 = 1
(^) x n = x * x ^ (n-1)
120
The right associative infix operator with priority 8 is described in the type
declaration, which means that x*x(n-1) is identical to x*(x(n-1)) rather than (x*x) (n1). The Clean standard library, StdEnv, includes a predefined version of this operator.
How Clean functions
Graph rewriting and reduction are the foundation of computation. Functions are
formulas for rewriting graphs, while constants like integers are graphs. According to the
Computer Language Benchmarks Game, this makes Clean applications that use high
abstraction run quite quickly when paired with compilation to native code.
96.
Clipper
The xBase computer programming language is implemented by Clipper, an xBase
compiler. It is used to develop or add to software applications that initially
predominantly ran under MS-DOS. Despite being a strong general-purpose
programming language, it was largely employed to develop commercial and database
programs.
The dot-prompt (. prompt) interactive command set, which was a crucial component of
the original dBase implementation, is one significant dBase feature that Clipper does
not provide. [97]
Beginning as a native code compiler for dBase III databases, Clipper was created by
Nantucket Corp and then by Computer Associates.
A simple hello world - application:
? "Hello World!"
A simple data base input mask:
USE Customer SHARED NEW
clear
@ 1, 0 SAY "CustNum" GET Customer->CustNum PICT "999999" VALID
Customer->CustNum > 0
@ 3, 0 SAY "Contact" GET Customer->Contact VALID !empty(Customer>Contact)
@ 4, 0 SAY "Address" GET Customer->Address
READ
121
97.
CLIPS
A free software program for creating expert systems is called CLIPS. "C
Language Integrated Production System" is the name's acronym. Charles Forgy's OPS5
served as an inspiration for the syntax and moniker. As a replacement for the thencurrent system ART*Inference, the first versions of CLIPS were created at NASAJohnson Space Center beginning in 1985 and continued through the mid-1990s, when
the development group's focus shifted away from expert system technology. The project
was first known as "NASA's AI Language" (NAIL).
As of 2005, CLIPS was arguably the most popular expert system tool. Extensions can
be written in C, as can CLIPS itself, and CLIPS can be called from C. Its grammar is
similar to that of Lisp, a programming language.
An entire object-oriented language is built into CLIPS for creating expert systems.
COOL mixes the procedural, object-oriented, and logical (theorem-proving)
programming paradigms. Using forward chaining is CLIPS. CLIPS deals with facts and
rules, just like other expert system languages. A rule may be applicable based on several
circumstances. Then, the appropriate rule is fired. In order to construct facts and rules,
first define them, as seen below:
(deftemplate car_problem
(slot name)
(slot status))
(deffacts trouble_shooting
(car_problem (name ignition_key) (status on))
(car_problem (name engine) (status wont_start))
(car_problem (name headlights) (status work)))
(defrule rule1
(car_problem (name ignition_key) (status on))
(car_problem (name engine) (status wont_start))
=>
(assert (car_problem (name starter) (status faulty))))
The (reset) command causes CLIPS to read the facts and rules after having put
this up. That would result in the three "trouble shooting" facts being stated in this
situation. The (run) command is then utilized. The prerequisites for performing its action
have been satisfied because both of the two facts specified in rule 1 have been asserted,
therefore the additional fact is asserted as a result of the run. [98]
122
98.
CLIST
The procedural programming language CLIST (Command List), sometimes
known as "C-List," is used by TSO in MVS systems. It was first introduced in OS/360
Release 20 and has moved into a supporting position since since Rexx became available
in TSO/E Version 2. Additionally, command lists created by NetView users are referred
to as CLIST.
A CLIST program, often known as "CLIST," can initially take the form of a
straightforward list of commands that must be carried out in a specific order (much like
a DOS batch file (*.bat) file). However, CLIST also includes loop structures and IfThen-Else logic.
An interpreted language is CLIST. This means that each time the program is run, a
CLIST must be translated by the computer. As a result, CLISTs typically run more
slowly than programs created in compiled programming languages like COBOL,
FORTRAN, or PL/1. (A program written in compiled code is translated once to produce
an executable or "load module").
A TSO terminal and MVS files can both be read and written using CLIST. It has a
method to keep global variables and transmit them between CLISTs, and it can read
parameters from the caller. A MVS application program (written, for instance, in
COBOL or PL/I) may also be called by a CLIST. By launching JCL, which launches
the TSO control program (IKJEFT01), CLISTs can be launched in the background.
TSO I/O screens and menus using ISPF dialog services can be displayed by CLISTs.
Compare the function of CLIST with that provided by REXX.[99]
Example programs:
PROC 0
WRITE HELLO WORLD!
Adding If-Then-Else logic:
MULTI-LINGUAL "HELLO WORLD" PROGRAM.
THIS CLIST, STORED AS USERID.TSO.CLIST(TEST), CAN BE INVOKED
FROM THE ISPF COMMAND LINE AS SHOWN IN THE FOLLOWING
EXAMPLE:
COMMAND ===> TSO TEST SPANISH
PROC 1 LANGUAGE
IF &LANGUAGE = SPANISH THEN +
WRITE HOLA, MUNDO
ELSE IF &LANGUAGE = FRENCH THEN +
WRITE BONJOUR, MONDE
ELSE +
WRITE HELLO, WORLD
EXIT
123
99.
Clojure
A dynamic and functional Lisp programming dialect on the Java platform,
Clojure is similar to Closure. Clojure uses a Lisp macro system and treats code as data,
just as other Lisp dialects. Rich Hickey, who serves as the community's benign dictator
for life, directs the present growth process (BDFL). Figure 52.
Programmers are encouraged to be clear about managing identity and its states by using
Clojure, which promotes immutability and immutable data structures. This emphasis on
immutable values and explicit progression-of-time components in programming is
meant to make it easier to create more robust programs, especially concurrent ones that
are straightforward and quick. Recent initiatives have also endeavored to construct a
dependent type system, despite the fact that its type system is totally dynamic. [100]
Figure 52 : Clojure logo
Because of its strong emphasis on simplicity, Clojure programs typically consist of
mostly functions and simple data structures (i.e., lists, vectors, maps, and sets):
;; A typical entry point of a Clojure program:
;; `-main` function
(defn -main ; name
[& args] ; (variable) parameters
(println "Hello, World!")) ; body
Like other Lisps, one of Clojure's iconic features is interactive programming at the
REPL. Note that, in the following examples, ; starts a line comment and ;; => indicates
the expected output:
124
; define a var
(def a 42)
;; => #'user/a
; call a function named `+`
(+ a 8)
;; => 50
; call a function named `even?`
(even? a)
;; => true
; define a function that returns the remainder of `n` when divided by 10
(defn foo [n] (rem n 10))
;; => #'user/foo
; call the function
(foo a)
;; => 2
; print the docstring of `rem`
(doc rem)
;; =>
clojure.core/rem
([num div])
remainder of dividing numerator by denominator.
; print the source of `rem`
(source rem)
;; =>
(defn rem
"remainder of dividing numerator by denominator."
{:added "1.0"
:static true
:inline (fn [x y] `(. clojure.lang.Numbers (remainder ~x ~y)))}
[num div]
(. clojure.lang.Numbers (remainder num div)))
125
100. CLU
The CLU programming language was created at the Massachusetts Institute of
Technology (MIT) starting in 1973 by Barbara Liskov and her students. It offered many
features that are now often used, although not seeing much use, and is recognized as a
development in the field of object-oriented programming (OOP).
Important innovations include the usage of iterators, type-safe variant types, type-safe
parameterized types, call-by-sharing, and multiple return values (a sort of parallel
assignment). It is notable for employing classes with constructors and functions but no
inheritance. [101]
101. CMS-2
The United States Navy uses the embedded systems programming language
CMS-2. It was an early attempt to create a high-level, standardized programming
language for computers with the goal of enhancing code portability and reuse. CMS-2
was created primarily for the tactical data systems of the US Navy (NTDS). Figure 53.
CMS-2, or "Compiler Monitor System," was created by RAND Corporation in
the early 1970s. In written works, the word "CMS-2" is followed by a letter indicating
the kind of target system. For instance, CMS-2M is aimed at 16-bit Navy CPUs like the
AN/AYK-14. [102]
Figure 53 : CMS-2 compile time system example
126
102. COBOL – ISO/IEC 1989
The computer programming language COBOL, which stands for "common
business-oriented language," is compiled and similar to English and is intended for use
in the business world. It is procedural, imperative, and has been object-oriented since
2002. Business, financial, and administrative systems for organizations and
governments generally employ COBOL. Applications running on mainframe systems,
like those for sizable batch and transaction processing operations, still frequently
employ COBOL. However, because COBOL is becoming less and less popular, as well
as because skilled COBOL programmers are retiring, programs are being moved to new
platforms, rebuilt in contemporary languages, or replaced by software packages. The
majority of COBOL programming now is solely for maintaining current programs,
however as late as 2006, many sizable financial organizations were still creating new
systems in COBOL.
In 1959, CODASYL created COBOL, which was partially inspired by Grace Hopper's
FLOW-MATIC programming language. The US Department of Defense developed it
as part of a project to develop a portable programming language for data processing. It
was first considered to be a stopgap, but as soon as the Department of Defense ordered
computer makers to deliver it, it became widely used. It has undergone four revisions
since it was standardized in 1968. Support for structured and object-oriented
programming is one of the expansions. ISO/IEC 1989:2014 serves as the current
reference. [103]
The English-like syntax of COBOL statements was created to be extremely readable
and self-documenting. Nevertheless, it is wordy and contains more than 300 reserved
terms. COBOL's syntax is more akin to English than more recent, concise syntax like y
= x; (in this case, MOVE x TO y). Identification, Environment, Data, and Procedure are
the four divisions of COBOL code, each of which contains a strict hierarchy of sections,
paragraphs, and sentences. The standard only provides 43 statements, 87 functions, and
one class due to the lack of a substantial standard library.
COBOL was (effectively) designed from the ground up as a computer language for
business, with an emphasis on inputs and outputs, and whose only data types were
numbers and strings of text. Academic computer scientists were generally uninterested
in business applications at the time COBOL was created and were not involved in its
design. COBOL has received criticism for its verbosity, design process, and inadequate
support for structured programming throughout its history. These flaws lead to clunky,
verbose (supposed to be English-like) applications that are difficult to understand.
Although in recent years there has been a boom in interest in moving COBOL activities
to the cloud, COBOL has long been thought of as a programming language for business
operations in mainframes.
A COBOL "Hello, world" program
127
IDENTIFICATION DIVISION.
PROGRAM-ID. hello-world.
PROCEDURE DIVISION.
DISPLAY "Hello, world!".
When The C Programming Language was first published in 1978, a similar
mainframe COBOL program sample would have been submitted through JCL, most
likely using a punch card reader and 80 column punch cards. This example is now
famously known as the "Hello, World!" program example. Figure 54.
The listing below was tested on Linux and the System/370 Hercules emulator running
MVS 3.8J with an empty DATA DIVISION. The JCL, which was created in July 2015,
was inspired by Jay Moseley's lessons and Hercules samples. HELLO, WORLD is
written in all capital letters, as was customary at that era of COBOL programming.
Figure 54 : The COBOL 60 report to CODASYL (April 1960)
128
103. CobolScript – COBOL Scripting language
CobolScript is a programming language developed in 1999 by Deskware's
Matthew Dean and Charles Schereda. The language was designed to provide webenabled COBOL and was aimed at companies who still use legacy COBOL-written
software.[104]
104. Cobra
Object-oriented general-purpose programming language Cobra has been retired.
Charles Esterbrook created Cobra, which utilizes the Microsoft.NET and Mono
platforms. Python, C#, Eiffel, Objective-C, and other programming languages have a
significant influence on it. Both static and dynamic types are supported. Unit tests and
contracts are supported. It has generators, closures, list comprehensions, and lambda
expressions.
Cobra is an open-source project that was made available on February 29, 2008 under
the MIT License. [105]
105. CoffeeScript
A computer language called CoffeeScript can be translated into JavaScript. In an
effort to make JavaScript more concise and readable, it includes syntactic sugar
borrowed from Ruby, Python, and Haskell. Comprehending a list is a specific extra
feature, as is destructuring assignments. Figure 55.
Play Framework and Ruby on Rails version 3.1 both come with CoffeeScript support.
Brendan Eich cited CoffeeScript as having influenced his ideas on the future of
JavaScript in 2011. [106]
Figure 55 : CoffeeScript logo
129
106. ColdFusion
J. J. Allaire developed the commercial Adobe ColdFusion computer platform for
quick web application development in 1995. (The programming language used with that
platform, which is more properly known as CFML, is also known by the common name
ColdFusion.) Simple HTML pages and databases can now be connected more easily
thanks to ColdFusion. Version 2 (1996) saw it develop into a complete platform with a
full scripting language and an IDE. [107], Figure 56.
Figure 56 : ColdFusion logo
130
107. COMAL
Brge R. Christensen and Benedict Lfstedt created COMAL (Common
Algorithmic Language), a computer programming language, in Denmark. It was first
made available in 1975. One of the few structured programming languages that could
be used with ease on 8-bit home computers was COMAL. It was based on the
groundbreaking BASIC programming language, with enhancements like multi-line
instructions and well specified subroutines. [108]
The official description of the language may be found in "COMAL Kernel Syntax &
Semantics". Many implementations frequently provide additional extensions.
• "Hello, world!"
PRINT "HELLO, WORLD!"
• Conditions
IF condition THEN
instructions
ENDIF
• Loops
FOR number:= 1 TO 1000 DO
PRINT number
ENDFOR
• Print statements with variables
INPUT "What's your favourite number? " :nmr#
PAGE
PRINT "Your favourite number is " ; nmr#
108. COMIT
COMIT, the first string processing language (compare SNOBOL, TRAC, and
Perl), was created at MIT between 1957 and 1965 by Dr. Victor Yngve of the University
of Chicago and others. The language was developed by Yngve to aid computerized
linguistics research, particularly in the field of machine translation for natural language
processing. SNOBOL was developed as a result of the development of COMIT. [109]
131
109. Common Intermediate Language (CIL)
The intermediate language binary instruction set specified by the Common
Language Infrastructure (CLI) specification is known as Common Intermediate
Language (CIL), formerly known as Microsoft Intermediate Language (MSIL) or
Intermediate Language (IL). A CLI-compatible runtime environment, such as the
Common Language Runtime, executes CIL instructions. Languages that are CLItargeting compile to CIL. Stack-based, object-oriented bytecode is CIL. CIL
instructions are often just-in-time compiled into native code by runtimes. [110]
During the beta testing of the.NET languages, CIL was initially referred to as Microsoft
Intermediate Language (MSIL). The bytecode is now referred to as CIL officially as a
result of the standardization of C# and the CLI. Binaries that were created with it are
still referred to as MSIL in Windows Defender virus definitions.
Here is a simple CIL assembler Hello, World program.
It will read "Hello, world!" in text form.
.assembly Hello {}
.assembly extern mscorlib {}
.method static void Main()
{
.entrypoint
.maxstack 1
ldstr "Hello, world!"
call void [mscorlib]System.Console::WriteLine(string)
ret
}
132
110. Common Lisp (also known as CL)
A version of the Lisp programming language known as Common Lisp (CL) was
first published in the ANSI INCITS 226-1994 (S20018) standard document, which was
formerly known as X3.226-1994 (R1999). The ANSI Common Lisp standard served as
the basis for the hyperlinked HTML Common Lisp HyperSpec. Figure 57.
Numerous common special variables are available in the Common Lisp library. For
instance, the top-level bindings of well-known special variables hold all standard I/O
streams. *standard-output* contains the standard output stream. [111]
Let's say function foo outputs to standard output as follows:
(defun foo ()
(format t "Hello, world"))
To capture its output in a character string, *standard-output* can be bound to a string
stream and called:
(with-output-to-string (*standard-output*)
(foo))
-> "Hello, world" ; gathered output returned as a string
Figure 57 : CL logo
111. COMPASS
On the 60-bit CDC 6000 series, 7600 series, Cyber 70 and 170 series mainframe
computers, Control Data Corporation's 3000 series, and other mainframes, COMPASS,
or COMPrehensive ASSembler, is any of a family of macro assembly languages. The
macro and conditional assembly facilities are similar despite the fact that the
architectures are significantly different. [112]
133
112. Component Pascal
A programming language in the vein of Niklaus Wirth's Pascal, Modula-2,
Oberon, and Oberon-2 called Component Pascal. Although it retains the name and
tradition of the Pascal programming language, it is incompatible with Pascal. Instead, it
is a slight improvement on Oberon-2 that adds built-in string support and a more
expressive type system. Originally known as Oberon/L, Component Pascal was created
and maintained by Oberon Microsystems, a little ETH Zürich spin-off business. They
created the BlackBox Component Builder integrated development environment (IDE).
Since 2014, a small team of volunteers has taken up development and support. In 1994,
Oberon/F, the initial iteration of the IDE, was made available.The graphical user
interface (GUI) creation method it presented at the time was innovative and based on
editable forms, where fields and command buttons are connected to exported variables
and executable procedures. This method is somewhat reminiscent of the code-behind
method used in Microsoft's 2008 Extensible Application Markup Language (XAML) to
access code. [113]
113. COMTRAN
Early programming language COMTRAN (COMmercial TRANslator) was
created at IBM. It was designed to serve as the corporate programming counterpart to
the FORTRAN programming language for science (FORmula TRANslator). One of its
predecessors was the COBOL language. The language, created by Bob Bemer in 1957,
was the first to have an image clause, a programming language feature. [114]
114. Constraint Handling Rules (CHR)
Thom Frühwirth created the declarative, rule-based programming language
known as Constraint Handling Rules (CHR) while working at the European ComputerIndustry Research Centre (ECRC) in Munich, Germany, in 1991. CHR has applications
in a variety of fields besides constraint programming, such as grammar induction, type
systems, abductive reasoning, multi-agent systems, natural language processing,
compilation, scheduling, spatial-temporal reasoning, testing, and verification.
A CHR program, also known as a constraint handler, is a set of rules that keep track of
a multi-set of logical formulae called a constraint store. The state of the program may
change as a result of rules being executed that add or delete formulas from the store.
According to its abstract semantics and refined semantics, the order in which rules "fire"
on a certain constraint store is non-deterministic and deterministic (top-down rule
application).CHR is not frequently used as a programming language on its own, despite
being Turing complete. Instead, it is employed to add limitations to a host language.
Though there are CHR implementations for Haskell, Java, C, SQL, and JavaScript,
Prolog is by far the most used host language and includes CHR in various Prolog
implementations, such as SICStus and SWI-Prolog. In contrast to Prolog, CHR rules are
multi-headed and are carried out via a forward chaining algorithm in a committedchoice way. [115]
134
115. Control Language
Originally developed by IBM for the System/38 Control Program Facility and
later utilized by OS/400, the Control Language (CL) is a scripting language (now known
as IBM i). It is similar to the IBM Job Control Language and is made up of a set of
command objects (*CMD) that may be used to call conventional programs or obtain
information about what those programs can accomplish. Additionally, CL can be used
to develop CL programs, which are similar to shell scripts in that they contain extra
commands that offer functionality similar to that of programs (IF/ELSE, variable
definition, file input, etc.).
Despite being a system management scripting language, CL is primarily used to
construct compiled programs. In reality, the SBMDBJOB command has very little use
for interpreted CL scripts.
Although IBM developers created tens of thousands of commands to carry out systemlevel operations like compiling programs, backing up data, changing system
configurations, displaying system object details, or deleting them, commands are not
only created for system-level issues; they can also be created for user applications. [116]
135
116. Cool
Alexander Aiken created the computer programming language known as Cool,
sometimes known as Classroom Object Oriented Language, for use in an undergraduate
compiler course project. Cool contains many of the features of contemporary
programming languages, including objects, automatic memory management, strong
static typing, and simple reflection, even though it is tiny enough for a one-term project.
The mention The C++ "cool compiler" was created entirely with free and open-source
technologies. It produces code for SPIM, a MIPS emulator. As a result, the language
ought to translate well to other systems. Many universities, including the University of
California at Berkeley, where it was first used, and Shahid Beheshti University of Iran,
have used it for teaching compilers, and the program is reliable. [117]
The COOL language that is part of CLIPS has nothing to do with this language. "Hello,
universe!"
class Main inherits IO {
main() : Object {
out_string("Hello, world!\n") }; };
A straightforward program for calculating factorials
class Main inherits IO {
main(): Object {{
out_string("Enter an integer greater-than or equal-to 0: ");
let input: Int <- in_int() in
if input < 0 then
out_string("ERROR: Number must be greater-than or equal-to 0\n")
else {
out_string("The factorial of ").out_int(input);
out_string(" is ").out_int(factorial(input));
out_string("\n"); }
fi; }};
factorial(num: Int): Int {
if num = 0 then 1 else num * factorial(num - 1) fi }; };
136
117. Coq
In 1989, Coq, an interactive theorem prover, was initially made available. It
enables the expression of mathematical claims, automatically examines claims'
supporting evidence, aids in the discovery of formal proofs, and derives a certified
program from the constructive proof of its formal specification. The calculus of
inductive constructions, a subfield of the calculus of constructions, is the theoretical
framework in which Coq operates. Coq provides automatic theorem proving strategies
(procedures) as well as a number of decision strategies, but it is not an automated
theorem prover.[118]
The 2013 ACM Software System Award for Coq was given to Thierry Coquand, Gérard
Huet, Christine Paulin-Mohring, Bruno Barras, Jean-Christophe Filliâtre, Hugo
Herbelin, Chetan Murthy, Yves Bertot, and Pierre Castéran. Figure 58.
Coq is a play on Thierry Coquand's term, Calculus of Constructions, or "CoC," and it
adheres to the French custom of naming things after creatures (coq in French meaning
rooster).
Figure 58 : Coq logo
137
Here is a Coq demonstration of the commutativity of addition on natural numbers as
an illustration:
plus_comm =
fun n m : nat =>
nat_ind (fun n0 : nat => n0 + m = m + n0)
(plus_n_0 m)
(fun (y : nat) (H : y + m = m + y) =>
eq_ind (S (m + y))
(fun n0 : nat => S (y + m) = n0)
(f_equal S H)
(m + S y)
(plus_n_Sm m y)) n
: forall n m : nat, n + m = m + n
Mathematical induction is denoted by nat ind, substitution of equals is denoted by eq
ind, and taking the same function on both sides of an equality is denoted by f equal.
Theorems from earlier are cited, demonstrating. Figure 59.
m=m+0
{\displaystyle m=m+0} and
S (m+y)=m+Sy
{\displaystyle S(m+y)=m+Sy}.
138
Figure 59 : An interactive proof session in CoqIDE, showing the proof script on the
left and the proof state on the right.
139
118. Coral 66
The Royal Radar Establishment (RRE), Malvern, Worcestershire, United
Kingdom, is where the programming language CORAL, also known as Computer Online Real-time Applications Language, was first created in 1964. Originally, the R stood
for "radar," not "real-time." Although it is not a subset of either, JOVIAL and thus
ALGOL had the biggest influence on it.
I. F. Currie and M. Griffiths later created CORAL 66, the most well-known version,
under the direction of the Inter-Establishment Committee for Computer Applications
(IECCA). Its official definition was initially released in 1970 and was amended by
Woodward, Wetherall, and Gorman.
The Ministry of Defence chose CORAL as the language for upcoming military
applications in 1971, and to support this decision, a standardization program was started
to make sure CORAL compilers complied with the requirements. The US Department
of Defense later used this method to define Ada. [119]
119. CorVision
The fourth generation (4GL) programming tool CorVision is presently owned by
Attunity, Inc. Cortex Corporation created CorVision specifically for the VAX/VMS
ISAM environment. CorVision-10, which was created for PCs, was beta tested by
Cortex, but CorVision itself remained anchored on VMS. CorVision-10 was never made
available since it was harder to use than anticipated. [120]
120. COWSEL
Robin Popplestone created the programming language COWSEL (COntrolled
Working Space Language) between 1964 and 1966. It was based on a Lisp variant
known as RPN and some CPL concepts.
Rod Burstall later built COWSEL on an Elliot 4120 at the University of Edinburgh after
initially implementing it on a Ferranti Pegasus computer at the University of Leeds and
a Stantec Zebra at the Bradford Institute of Technology.
During the summer of 1966, COWSEL was dubbed POP-1, and work on it proceeded
under that name moving forward. [121]
121. CPL
A multi-paradigm programming language called CPL (Combined Programming
Language) was created in the early 1960s. Through the BCPL and B languages, it is an
early predecessor of the C language. [122]
140
122. Cryptol
A domain-specific programming language for cryptography called Cryptol was
created by Galois, Inc., a Portland, Oregon-based software development company. The
American National Security Agency was the initial user of the language. Private
companies that provide information technology systems, including the American
company Rockwell Collins, which works with aerospace and defense contractors in the
country, also utilize the language.
The creation and application of new ciphers, as well as the evaluation of current
cryptographic methods, are all carried out using the programming language. The
program Cryptol is made to let cryptographers observe how stream processing
operations affect ciphers or encryption techniques. [123]
123. Crystal
Ary Borenszweig, Juan Wajnerman, Brian Cardiff, and more than 300 others
created the general-purpose, object-oriented programming language known as Crystal.
It is a compiled language with static type-checking and syntax that was influenced by
Ruby; nonetheless, it is typically unnecessary to define the types of variables or method
arguments. An enhanced global type inference technique resolves types. Currently,
Crystal is undergoing active development. Figure 60.
Under the terms of the Apache License 2.0, it is made available as free and open-source
software. [124]
Put "Hello World!"
As it is the simplest way to code the Hello World program in Crystal, identical to Ruby.
Or by the use of object-oriented programming:
class Greeter
def initialize(@name : String)
end
def salute
puts "Hello #{@name}!"
end
end
g = Greeter.new("world")
g.salute
141
HTTP server
require "http/server"
server = HTTP::Server.new do |context|
context.response.content_type = "text/plain"
context.response.print "Hello world! The time is #{Time.local}"
end
server.bind_tcp("0.0.0.0", 8080)
puts "Listening on http://0.0.0.0:8080"
server.listen
Figure 60 : Crystal logo
124. Csound
The computer programming language Csound is specialized for audio
programming. Because it is written in C rather than some of its predecessors, it is known
as Csound.
It Available under the LGPL-2.1 or later, it is free software.
Barry Vercoe first developed Csound at MIT in 1985, building on his earlier Music 11
system, which in turn followed the MUSIC-N concept established by Max Mathews at
the Bell Labs. Over the course of the 1990s and 2000s, John Fitch at the University of
Bath led its continuous development.
Version 5.01 was initially made available to the public on March 18, 2006. In particular,
Istvan Varga, Gabriel Maldonado, Robin Whittle, Richard Karpen, Iain McCurdy,
Michael Gogins, Matt Ingalls, Steven Yi, Richard Boulanger, Victor Lazzarini, and
Joachim Heintz made significant contributions to the project. [125]
142
125. CSS
CSS is a language for creating style sheets that describe how a document written
in a markup language like HTML or XML is displayed (including XML dialects such
as SVG, MathML or XHTML). Along with HTML and JavaScript, CSS is one of the
World Wide Web's founding technologies. Figure 61.
The World Wide Web Consortium created it (W3C)
Style sheet language format HTML documents are a container for: HTML element style
rules (tags). Separating text from presentation, which includes layout, colors, and fonts,
is made feasible by CSS.
This separation can improve content accessibility, offer more flexibility and control in
the specification of presentation characteristics, enable multiple web pages to share
formatting, and enable the.css file to be cached to improve page load speed between the
pages that share the file and its formatting. By indicating the relevant CSS in a separate
CSS file, the structure content becomes less difficult and repetitive.
The division of formatting and content also makes it possible to provide the same HTML
page in a variety of styles for various rendering modalities, including on-screen, in print,
by voice (using a browser with built-in speech recognition software or a screen reader),
and on tactile Braille devices. When a user accesses the content on a mobile device,
CSS also offers formatting guidelines for alternative layouts.
The priority system is used to choose which style rule should be implemented
when many style rules match an element, giving cascading its name. This order of
importance is expected.
The World Wide Web Consortium maintains the CSS specifications (W3C). RFC
2318 has registered the Internet media type (MIME type) text/css for usage with CSS
(March 1998). For CSS documents, the W3C offers a free CSS validation service.
In addition to HTML, CSS can also be used with XHTML, plain XML, SVG, and
XUL markup languages.
The names of different style properties are specified using a number of English
keywords in CSS, which has a straightforward syntax.
A style sheet is a list of guidelines. A declaration block and one or more selectors
make up each rule or rule-set.
Here, "CSS class" is redirected. See class property for HTML element class usage
that isn't CSS (HTML).
By matching tags and attributes in the markup itself, selectors in CSS specify
which portion of the markup a style applies to.
The following may be subject to selectors:
• all items of a particular type, such as the h2 second-level headers
• Components with attribute specifications, in particular:
o
A hash prefix, such as #id, is used in the selection language to
indicate a unique identification within the text.
143
o
The term "CSS class," although occasionally used, is incorrect
because element classes—specified with the HTML class attribute—are a markup
feature that is distinct from browsers' CSS subsystem and the related
W3C/WHATWG standards work on document styles; for more information on
the history of the "class" system of the Web content model, see RDF and
microformats.
o elements based on their placement inside the document tree in relation to
other components.
Classes and IDs can contain alphanumeric characters, hyphens, and underscores, are
case-sensitive, and begin with a letter. Any number of instances of any element may be
covered by a class. There is only one element to which an ID can be applied.
The usage of pseudo-classes in CSS selectors enables formatting based on data that is
not included in the document tree.
A common pseudo-class is:hover, which only identifies content when the user "pointers
to" the visible element, typically by keeping the mouse cursor over it. As in a:hover or
#elementid:hover, it is added to a selector.
A pseudo-class classifies document elements, such as :link or :visited, whereas a
pseudo-element makes a selection that may consist of partial elements, such as ::firstline or ::first-letter. Note the double-colon notation for pseudo-elements versus singlecolon notation for pseudo-class.
Selectors may be combined in many ways to achieve great specificity and flexibility.
Multiple selectors may be joined in a spaced list to specify elements by location, element
type, id, class, or any combination thereof.
The order of the selectors is important.
For example, div .myClass {color: red;} applies to all elements of class myClass that
are inside div elements, whereas .myClass div {color: red;} applies to all div elements
that are inside elements of class myClass. This is not to be confused with concatenated
identifiers such as div.myClass {color: red;} which applies to div elements of class
myClass.[126] Consider this HTML fragment:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<style>
#xyz { color: blue; }
</style>
</head>
<body>
<p id="xyz" style="color: green;">To demonstrate specificity</p>
</body>
</html>
144
Figure 61 : CSS logo
126. Cuneiform
An open-source workflow language for sizable scientific data analysis is called
Cuneiform. It is a functional statically typed programming language that supports
parallel computing. It has a flexible foreign function interface that enables users to
include software written in a variety of other programming languages. Cuneiform is
Turing-complete at the organizational level thanks to features like conditional branching
and broad recursion. Cuneiform is an effort to bridge the gap between large-scale data
analysis programming models like MapReduce or Pig Latin and scientific workflow
systems like Taverna, KNIME, or Galaxy while providing the generality of a functional
programming language. [127]
Distributed Erlang implements Cuneiform. It drives POSIX-compliant distributed file
systems like Gluster or Ceph when used in distributed mode (or a FUSE integration of
some other file system, e.g., HDFS). As an alternative, Hadoop or HTCondor can be
used to run Cuneiform scripts. Figure 62.
Peter Kelly's work, which suggests functional programming as a model for carrying out
scientific workflows, has an influence on Cuneiform. Cuneiform differs from other
workflow languages based on dataflow programming, such as Swift, in this regard.
An example script:
def greet( person : Str ) -> <out : Str>
in Bash *{
out="Hello $person" }*
( greet( person = "world" )|out );
145
Figure 62 : Cuneiform logo
The task greet defined by this script prepends "Hello" to the string argument person. A
record with a single string field is produced by the function. Using hello, producing the
record out = "Hello world"> by binding the argument person to the string "world" The
string "Hello world" is evaluated when this record is projected to its field outside.
146
127. Curl
Curl is an object-oriented reflective programming language designed for use in
interactive web applications. Its main objective is to make the transition between
formatting and programming easier. It enables the incorporation of complicated objects
into straightforward papers without the requirement for switching between computer
languages or development environments. An interpreter was all that was included in the
original Curl implementation; later, a compiler was added.
In one cohesive framework, Curl integrates text markup (like HTML), scripting (like
JavaScript), and powerful computing (like Java, C#, or C++). A variety of internal
business-to-business and business-to-consumer applications use it. Figure 63.
Curl programs can be turned into applets that can be executed in web browsers with the
Curl RTE runtime environment. It currently works with Microsoft Windows. MacOS
and Linux were discontinued on March 25, 2019. (starting with version 8.0.8). As with
Silverlight 3 and Adobe AIR, Curl allows "detached applets," which are web-deployed
applets that operate on the user's desktop apart from a browser window. [128]
Perhaps a straightforward Curl applet for HelloWorld
{Curl 7.0, 8.0 applet}
{text
color = "blue",
font-size = 16pt,
Hello World
}
Figure 63 : Curl logo
147
128. Curry
Curry is an experimental language for functional logic programming that is based
on Haskell. It integrates aspects of constraint programming as well as functional and
logic programming.With the exception of type class overloading, which some
implementations still offer as a language extension, such the Münster Curry Compiler,
it is almost a superset of Haskell. [129]
129. Cybil
A Pascal-like language called Cybil was created at Control Data Corporation for
the Cyber computer family. Cybil is an acronym for the Cyber Implementation
Language of the Control Data Network Operating System. The eOS operating system
for the ETA10 supercomputer was written in the 1980s using Cybil, which was also the
implementation language for the NOS/VE operating system on the CDC Cyber
series.[130]
130. Cyclone
It is the goal of the Cyclone programming language to provide a secure variant of
the C programming language. In order to prevent buffer overflows and other potential
security flaws in C applications without sacrificing C's strength and usefulness as a
system programming language, Cyclone was created.
In 2001, Greg Morrisett's team at Cornell University and AT&T Labs Research began
working together on the cyclone development project. On May 8, 2006, version 1.0 was
made available. [131]
131. Cypher Query Language
A declarative graph query language called Cypher enables effective and
expressive data querying in a property graph.
Andrés Taylor created the majority of Cypher while employed with Neo4j, Inc.
(previously Neo Technology) in 2011. Cypher was initially created to be used with the
graph database Neo4j, but in October 2015, the openCypher initiative made Cypher
available to all users. Although Cypher was founded on the elements and requirements
of a database built around the notions of graph theory, the language was created with
the strength and capabilities of SQL (the primary query language for the relational
database architecture) in mind. A graph model focuses on how entities in the data are
connected and related to one another by structuring the data as nodes (vertices in math
and network science) and relationships (edges in math and network science). [132]
148
132. Cython
Cython (/san/) is a programming language that aims to be a superset of Python. It
was created to provide C-like performance with code that is primarily written in Python
and optionally includes additional syntax that is inspired by C. Figure 64.
CPython extension modules are often created using the compiled language cython.
Annotated Python-like code is converted to C or C++ before being automatically
wrapped in interface code. As a result, extension modules are created that can be
imported and used by regular Python code with a fraction of the run-time overhead.
Additionally, Cython makes it easy to wrap standalone C or C++ programs in modules
that are importable into Python. Cython creates source files that are compatible with
CPython 2.6, 2.7, and 3.3 and later versions. It is written in Python and C and operates
on Windows, macOS, and Linux. We're working on Cython 3.0.0. [133]
Figure 64 : Cython logo
A typical hello world program is more involved than one written in Cython since
it interacts with setuptools, the Python C API, and other PEP517-compliant extension
development tools. For a simple project, the following three files must be present:
A setup.py file is used to start the setuptools build process, which creates the extension
module. Figure 65.
an application that loads the extension module in Python
source code for Python (s)
The build and launch procedure is illustrated by the following code listings:
149
# hello.pyx - Python module, this code will be translated to C by Cython.
def say_hello():
print("Hello World!")
# launch.py - Python stub loader, loads the module that was made by Cython.
# This code is always interpreted, like normal Python.
# It is not compiled to C.
import hello
hello.say_hello()
# setup.py - unnecessary if not redistributing the code, see below
from setuptools import setup
from Cython.Build import cythonize
setup(name = "Hello world app",
ext_modules = cythonize("*.pyx"))
Figure 65 : Hello World in Cython
150
133. CEEMAC
The 1980s saw the creation of the CEEMAC programming language for the
Apple II line of computers. Brooke Boering wrote it, and Vagabondo Enterprises
published it.
The goal of CEEMAC was to serve as a visual composition language where
programmers could create dynamic "scores" by programmatically modifying color,
shape, sound, and movement. In order to add more diversity, a programmer might also
"perform" their music using the Apple II keyboard or paddle input devices.
The syntax used by CEEMAC included loop control structures like IF/WHILE and
TIL/UNLESS as well as control verbs like GOTO, GOSUB, DO, AGAIN, FOR, SKIP,
and EXIT. Additionally, CEEMAC came with 30 preconfigured macros to help with
score composition.
A modest CEEMAC sample score is as follows:
Initially, Fire Organ, a free demonstration program, was distributed to promote
CEEMAC. This application included a number of scores made by Boering and other
programmers to showcase some of the language's possibilities. [134]
151
134. D (also known as dlang)
Programming language D, commonly referred to as dlang, was developed by
Walter Bright at Digital Mars and released in 2001. In 2007, Andrei Alexandrescu began
working on the design and development process. The features of D can be seen as
streamlined and expanded-upon ideas from C++, but D also draws inspiration from
other high-level programming languages, particularly Java, Python, Ruby, C#, and
Eiffel. Although D was originally a re-engineering of C++ .[135]
D imperative programming is quite similar to C imperative programming. The C
runtime library can be used directly, and functions, data, statements, declarations, and
expressions operate exactly as they do in C. The foreach loop construct in D, which
enables looping over a collection, and nested functions—functions that are defined
inside another and may access the enclosing function's local variables—are two
noteworthy imperative programming distinctions between D and C. Figure 66.
bring in std.stdio;
void main() {
int multiplier = 10;
int scaled(int x) { return x * multiplier; }
foreach (i; 0 .. 10) {
writefln("Hello, world %d! scaled = %d", i, scaled(i));
}
}
Figure 66 : D logo
152
135. Dart
A programming language called Dart was created specifically for client
development, including web and mobile apps. It was created by Google and may be
used to create desktop and server apps. [136]
It has C-style syntax and is an object-oriented, class-based, garbage-collected language.
It supports type inference, interfaces, mixins, abstract classes, reified generics, and can
be compiled to either machine code or JavaScript. Figure 67
A Hello, World! Illustration :
void main() {
print('Hello, World!'); }
A function to calculate the nth Fibonacci number:
int fib(int n) => (n > 2) ? (fib(n - 1) + fib(n - 2)) : 1;
// A Fibonacci function implementation with a conditional operator in Dart
// This code is read as:
// given an integer n,
// if n > 2, return fib(n - 1) + fib(n - 2);
// otherwise, return the integer 1 as result
void main() {
print('fib(20) = ${fib(20)}'); }
Figure 67 : Dart logo
153
136. Darwin
Darwin is a closed-source programming language that Gaston Gonnet and
colleagues developed at ETH Zurich. It is used in the construction of the OMA
orthology inference program, which was also invented by Gonnet. The language
backend consists of the kernel, which does elementary mathematical operations,
transports and saves data, and interprets user commands, and the library, a group of
programs that might perform more difficult tasks. Because the language is aimed at the
biosciences, the library contains functions to compute pairwise alignments,
phylogenetic trees, multiple sequence alignments, and predict secondary structure.
[137]. The code for the Hello World program would be printf("Hello, world!");
The following formula can be used to determine a number's factorial:
factorial := proc ( n )
if (n=0) then
return(1);
else
return(n * factorial(n-1));
fi;
end:
137. DataFlex
DataFlex is a framework-based object-oriented high-level programming
language and fourth generation visual tool (4GL) for creating software applications for
Windows, the web, and mobile devices. Starting in 1982, Data Access Corporation
introduced and developed it. [138], Figure 68.
Figure 68 : DataFlex logo
154
138. Datalog
A declarative logic programming language is called Datalog. Despite being a
subset of Prolog in terms of syntax, Datalog typically employs a bottom-up evaluation
model as opposed to a top-down one. This variation results in behavior and features that
are very different from those of Prolog. It is frequently used as a logical database query
language. Datalog has recently been used in innovative ways for data integration,
information extraction, networking, program analysis, security, cloud computing, and
machine learning. [139]
Although its roots may be traced back to the early days of logic programming, it wasn't
until Hervé Gallaire and Jack Minker conducted a workshop on logic and databases in
1977 that it rose to prominence as a distinct field. The word "Datalog" is credited to
David Maier.
139. DATATRIEVE
The database query and report-writing program DATATRIEVE was initially
developed by Digital Equipment Corporation. It is compatible with a number of PDP11 operating systems as well as the OpenVMS operating system. The command
structure of DATATRIEVE is almost plain English, and it is a prototype for a Fourth
Generation Language (4GL).
Databases, flat files, and indexed files can all be used using DATATRIEVE. These data
files are delimited using record definitions that are either stored in RMS files or the
Common Data Dictionary (CDD). Many OpenVMS setups employ
DATATRIEVE.[140]
155
140. dBase
One of the early database management systems for microcomputers, dBase
(sometimes spelled dBASE), was the most popular at the time. The dBase system
consists of a query system, a forms engine, a core database engine, and a programming
language that connects all of these elements. Figure 69. The.dbf file, which is the
fundamental file format of dBase, is frequently used in applications that require a
straightforward format to store structured data. [141], Figure 70.
Figure 69 : dBase logo
Figure 70 : Full timeline for all the dBase Products.
156
141. dc
The reverse-Polish calculator dc (desk calculator) is cross-platform and offers
arbitrary-precision arithmetic. One of the earliest Unix tools, written by Lorinda Cherry
and Robert Morris at Bell Labs, it predates even the creation of the C programming
language. Like other utilities from that era, it has a short syntax despite having a robust
feature set. Traditionally, dc was built on top of the bc calculator application (with infix
notation). [142]
In an effort to provide readers with a basic sense of the language, this article offers a
few examples; nevertheless, for a complete list of commands and syntax, readers are
advised to visit the man page for their particular implementation.
142. DCL (DIGITAL Command Language)
The standard command language used by several of the operating systems
developed by Digital Equipment Corporation is called DIGITAL Command Language
(DCL). IAS, TOPS-20, and RT-11 served as the foundation for DCL, which was
adopted as a standard by most of Digital's operating systems, including RSX-11 and
RSTS/E. However, VAX/VMS gave DCL its most potent form (later OpenVMS). As a
component of OpenVMS, VSI is still working to create DCL. [143], Figure 71.
Figure 71 : Displaying the DCL CLI in a terminal session on OpenVMS Alpha 8.42L1
157
143. Delphi
Embarcadero Technologies is currently developing and maintaining Delphi,
Figure 72. A general-purpose programming language and software product that uses the
Delphi dialect of the Object Pascal programming language and offers an integrated
development environment (IDE) for quick application development of desktop, mobile,
web, and console software. [144], Figure 73.
Figure 72 : Delphi logo
Figure 73 : A screenshot of the visual form editor in Delphi 10.4 being used to design
an application
158
144. DIBOL
A general-purpose, procedural, imperative programming language called
DIBOL, sometimes known as Digital's Business Oriented Language, was created for
use in the creation of software for Management Information Systems (MIS). [145]
It uses BCD arithmetic and features syntax that is reminiscent of FORTRAN and
BASIC. It shares the distinct data and procedure divisions of a COBOL program
structure. DIBOL featured a counterpart to calculated goto; unlike Fortran, it did not
support numeric labels for GOTO.
145. DinkC
Action role-playing video game Dink Smallwood was created by Robinson
Technologies, which at the time was made up of Seth Robinson, Justin Martin, and Greg
Smith. Prior to being made available as freeware on October 17, 1999, it was first made
available in 1998. Some of the music tracks in the game were written by Mitch Brink,
while others were MIDI renditions of classical pieces like Debussy's "Reverie." More
than 20 years after its initial release, the game still has a small but devoted fan base that
produces add-ons for it. Figure 74.The game is known for its amusing language and
surrealistic themes in some of the cutscenes. [146], Figure 75.
Figure 74 : DinkC logo
159
Figure 75 : Before it burns down, Dink Smallwood's
home at the beginning of the game.
146. Draco
Chris Gray developed the shareware programming language called Draco. The
Amiga version was created after the initial release for CP/M platforms in 1987.
Although Draco, a Pascal and C hybrid, was well suited for general-purpose
programming, its uniqueness as a language was primarily its weak point. Empire was
ported to the Amiga by Gray using Draco for the Amiga. [147]
147. DRAKON
An algorithmic visual programming and modeling language called DRAKON
was created as part of the Buran space project while adhering to ergonomic design
principles. The language offers a consistent, readable, and understandable approach to
represent flowcharts of any complexity. The public domain language is implemented in
the DRAKON Editor, which was made accessible in September 2011. It can be used to
produce documentation or visual programs that can be translated into other languages'
source code. [148]
160
148. Dylan
Dylan is a multi-paradigm programming language that supports both functional
and object-oriented programming (OOP), is dynamic and reflective, and offers a model
for efficient machine code generation that includes fine-grained control over both
dynamic and static behaviors. Early in the 1990s, a team headed by Apple Computer
developed it. [149], Figure 76.
Figure 76 : Dylan logo
149. DYNAMO
A simulation language and accompanying graphical notation called DYNAMO
(DYNAmic MOdels) were created within the system dynamics analytical framework.
Originally intended for industrial dynamics, it was quickly expanded to serve other
purposes, such as population and resource research and urban planning.
Dr. Phyllis Fox, Alexander L. Pugh III, Grace Duren, and others worked at the M.I.T.
Computation Center in the late 1950s to create DYNAMO under the guidance of Jay
Wright Forrester. [150] . The system dynamics simulations of global resource depletion
presented in the Limits to Growth report by the Club of Rome were conducted using
DYNAMO, however it has since stopped being utilized.
150. DAX (Data Analysis Expressions)
The default formula and query language for Microsoft PowerPivot, Power BI
Desktop, and SQL Server Analysis Services (SSAS) Tabular models is Data Analysis
Expressions (DAX). Some of the operations found in Excel formulae are also found in
DAX, along with extra functions made to interface with relational data and conduct
dynamic aggregation. It draws inspiration from Microsoft's Multidimensional
Expression (MDX) language, which was created for use with multidimensional models
(commonly known as cubes) in Analysis Services and Excel formula functions. It seeks
to convey the versatility and power of SSAS tabular models with PowerPivot while
being clear and simple to understand. [151]
161
151. E
E was developed by Mark S. Miller, Dan Bornstein, Douglas Crockford, Chip
Morningstar, and others at Electric Communities in 1997 as an object-oriented
programming language for safe distributed computing. E is mostly related to OriginalE, a collection of Java extensions for secure distributed programming, and to the
concurrent language Joule. E blends Java-like syntax with message-based computing.
Deadlock is prevented through a concurrency architecture based on event loops and
promises. [152]
Though it also has some similarities to Python and Pascal, E's syntax most closely
resembles Java. Variables have lexical scope and dynamic typing. E, on the other hand,
is made up entirely of expressions, unlike Java or Python. Here is a very basic E
program:
"Hello, world!" println
Here is a recursive function for computing the factorial of a number, written in E.
Functions are defined using the def keyword.
def factorial(n :int) :int {
if (n == 1) {
return 1
}
else if (n > 0) {
return n * factorial(n-1)
}
else {
throw("invalid argument to factorial: "+n)
}
}
A guard that limits the function's argument and output appears in the first line as:int. A
guard can provide constraints and is optional, therefore it differs slightly from a type
declaration. The first:int makes sure that the function's body only needs to deal with
integer arguments. The function couldn't return a value without the second:int above.
For security audits, being able to immediately see when information leaves the function
is useful.
162
152. Ease
An all-purpose parallel programming language is ease. A researcher at Yale
University, the Institute for Advanced Science & Engineering in Silicon Valley,
California, the Ecole Nationale Supérieure des Mines de Paris, and the Pierre and Marie
Curie University, the science division of the Sorbonne, Steven Ericsson-Zenith created
it.[153]
153. Easy PL/I
The procedural, imperative computer programming language PL/I (also known
as Programming Language One, or PL/1) was created and released by IBM. It is made
for system programming, business, engineering, and science. Since its introduction in
the 1960s, it has been employed by academic, business, and industrial groups and is still
in use today. [154]
154. EASYTRIEVE PLUS
Easytrieve is a report generator offered by CA Technologies. The two versions
of this programming language, dubbed Easytrieve Classic and Easytrieve Plus, are used
by large enterprises that run on mainframe (z/OS, z/VM, z/VSE), UNIX, Linux, and
Microsoft Windows systems. [155]
163
155. eC
A super-set of the C language, eC (Ecere C) is an object-oriented programming
language. Ecere's cross-platform software development kit (SDK) initiative is where eC
first started to take shape. The language's objectives are to build object-oriented
constructs, reflection, properties, and dynamic modules on top of C while preserving C
compatibility and achieving the best native performance possible.
eC presently uses C as an intermediate language and GCC or Clang to carry out the final
compilation processes. To avoid the intermediary C files, there are plans to integrate
directly with LLVM. [156] The ecere-sdk package in Debian/Ubuntu and other Linux
distributions descended from it contains eC. The main website offers a Windows
installer that also includes MinGW-w64. Other systems, including as OS X, FreeBSD,
and Android, can also be developed using the free and open-source SDK that comes
with the eC compiler. Additionally, eC programs can be published to the web by
compiling them to JavaScript using Emscripten or to WebAssembly using Binaryen.
Programming "Hello, World!" in eC:
class HelloApp : Application
{
void Main()
{
PrintLn("Hello, World!");
}
}
Graphical user interface
A "Hello, World!" program programmed with a GUI:
import "ecere"
class HelloForm : Window
{
caption = "My First eC Application";
borderStyle = sizable;
clientSize = { 304, 162 };
hasClose = true;
Label label
{
this, position = { 10, 10 }, font = { "Arial", 30 },
caption = "Hello, World!!"
};
};
HelloForm hello { };
164
156. ECMAScript
A JavaScript standard called ECMAScript was created to guarantee browser
compatibility for web pages. Ecma International standardized it in the document
ECMA-262. The World Wide Web frequently uses ECMAScript for client-side
scripting, and Node.js and other runtime environments are increasingly being utilized
to create server-side applications and services. [157]
157. Edinburgh IMP
Atlas Autocode, which was first created at the University of Edinburgh in
Scotland between 1966 and 1969, is the basis for Edinburgh IMP. It is a general-purpose
language that was heavily utilized for systems programming. [158]
158. EGL
A programming technology called EGL (Enterprise Generation Language),
which was first created by IBM and is now made publicly available as the EDT (EGL
Development Tools) open source project under the Eclipse Public License (EPL), was
created to address the difficulties associated with creating modern, multi-platform
applications. It does this by offering a standard language and programming model that
can be used with various runtime platforms, frameworks, and languages. [159]
165
159. Eiffel
A proponent of object-orientation and the author of Object-Oriented Software
Construction, Bertrand Meyer and Eiffel Software created the object-oriented
programming language Eiffel. In order to improve the dependability of the development
of commercial software, Meyer created the language in 1985. Figure 77, The first
version was made available in 1986. Eiffel was recognized by ISO as a standard
language in 2005.
A "Hello, world!" program is frequently used to demonstrate the appearance and feel of
a programming language. An example of such an Eiffel program might be:
class
HELLO_WORLD
create
make
feature
make
do
print ("Hello, world!%N")
end
end
The class HELLO WORLD is contained in this application. The print system library
routine is used by the class' constructor (create routine), named make, to write the
message "Hello, world!" to the output. [160]
Figure 77 : Eiffel logo
166
160. ELAN
For learning and teaching systematic programming, ELAN is an interpreted
instructional programming language. It was created in 1974 as an alternative to teaching
with BASIC by C.H.A. Koster and a team at the Technical University of Berlin, and it
was given the "Arbeitskreis Schulsprache" seal of approval for usage in German
secondary schools. In addition to being used at Radboud University Nijmegen in the
Netherlands to teach systematic programming to students from various disciplines and
in teacher courses, it was in use up until the late 1980s in a number of schools in
Germany, Belgium, the Netherlands, and Hungary for the secondary education of
informatics. [161]
The language's architecture places a significant emphasis on structured programming
and includes a unique stepwise refinement approach that enables students to concentrate
on top-down design and bottom-up coding.
161. Elixir
Running on the BEAM virtual computer, which also supports the Erlang
programming language, Elixir is a functional, concurrent, general-purpose
programming language. Erlang serves as the foundation for Elixir, which uses the same
abstractions to create distributed, fault-tolerant applications. Additionally, Elixir offers
a design that is expandable as well as useful tools. Compile-time metaprogramming with
macros and polymorphism through protocols support the latter. [162]
The following examples can either be run directly from the command line by typing
elixir filename>, or they can be saved as a file and run that way. Figure 78.
Classic Example of a welcome message:
iex> IO.puts("Hello World!")
World, welcome!
Figure 78 : Elixir logo
167
162. Elm
Elm is a programming language for declaratively building graphical user
interfaces for web browsers. Elm is entirely functional and was created with a focus on
robustness, usability, and performance. Figure 79.
It boasts "no runtime exceptions in practice," which is made possible by the static type
checking of the Elm compiler. [163]
Figure 79 : Elm logo
163. Emacs Lisp
Emacs Emacs uses the programming language dialect Lisp as a scripting language
(a text editor family most commonly associated with GNU Emacs and XEmacs). The
majority of the editing functionality included in Emacs is implemented using it, with
the Lisp interpreter and the remaining functionality written in C. Figure 80.
Although there is an older, unrelated Lisp dialect with that name, Emacs Lisp is
frequently referred to as Elisp. [164]
Figure 80 : Emacs Lisp
168
164. Emerald
The University of Washington's Department of Computer Science's Andrew P.
Black, Norman C. Hutchinson, Eric B. Jul, and Henry M. Levy created the distributed,
object-oriented programming language Emerald in the 1980s.
In addition to supporting high performance distribution, location, and object
performance, Emerald was created to make distributed programming simpler, take
advantage of information hiding, and be a compact language. [165]
165. Epigram
A functional programming language with dependent types, Epigram comes with
an integrated development environment (IDE) in most cases. The type system of
Epigram is robust enough to represent program requirements. Supporting an easy
transition from conventional programming to integrated programs and proofs whose
correctness can be verified and confirmed by the compiler is the aim of this project.
Epigram is based on intuitionistic type theory and takes advantage of the Curry-Howard
correspondence, often known as the propositions as types principle. [166]
166. EPL (Easy Programming Language)
A proprietary visual compiled multilingual programming language is called Easy
Programming Language (EPL; Chinese: ). Due to its authentically Chinese setting, EPL
has a little following in China. (There are varieties of the language in English, Japanese,
traditional Chinese, and simplified Chinese.) [167]
167. Erlang
Erlang is a runtime environment and general-purpose, concurrent, functional
programming language. The terms "Erlang" and "Erlang/OTP," or Open Telecom
Platform (OTP), are interchangeable. Figure 81.
OTP is made up of the Erlang runtime system, a number of ready-to-use components,
primarily written in Erlang, and a set of design guidelines for Erlang programs. [168]
Figure 81 : Erlang logo
169
168. Es
The command line interpreter for Version 10 Unix and Plan 9 from Bell Labs
operating systems is rc (short for "run commands"). Although its syntax is a little bit
easier, it is similar to the Bourne shell. Tom Duff, who is better known for a peculiar C
programming language concept called "Duff's device," was the author of this. [169]
The shell script for Bourne:
if [ "$1" = "hello" ]; then
echo hello, world
else
case "$2" in
1) echo $# 'hey' "jude's"$3;;
2) echo `date` :$*: :"$@":;;
*) echo why not 1>&2
esac
for i in a b c; do
echo $i
done
fi
is expressed in rc as:
if(~ $1 hello)
echo hello, world
if not {
switch($2) {
case 1
echo $#* 'hey' 'jude''s'^$3
case 2
echo `{date} :$"*: :$*:
case *
echo why not >[1=2] }
for(i in a b c)
echo $i }
170
169. Escher
Developed by J.W. Lloyd in the middle of the 1990s, Escher is a declarative
programming language that supports both the functional programming and logic
programming models (named for M. C. Escher, "a master of endless loops"). It was
primarily intended to be a tool for study and instruction. Escher and other analogous
programming languages take the fundamental stance that a program is a representation
of a theory in some logic framework, and that the execution of the program
(computation) is a derivation from the theory. The straightforward theory of types by
Alonzo Church serves as Escher's logical foundation. [170]
170. ESPOL
A superset of ALGOL 60, the Executive Systems Problem Oriented Language
(ESPOL) allows for functions that would subsequently be referred to as system
programming languages or machine oriented high order languages (mohol), such as
halting a processor on a multiprocessing system (the Burroughs large systems were
multiprocessor systems). The Master Control Program (MCP), which ran on Burroughs
computers from the B5000 to the B6700, was written using ESPOL. Over 250 lines per
second might be compiled by the ESPOL single-pass compiler. [171]
171. Esterel
A synchronous programming language called Esterel is used to create
sophisticated reactive systems. Esterel's imperative programming model makes it
possible to describe parallelism and preemption in a straightforward manner. It is hence
suitable for control-dominated model designs. [172]
The Ecole des Mines de Paris and INRIA teams in France, directed by Gérard Berry,
began working on the language's development in the early 1980s. Compilers today
produce C code or hardware (RTL) implementations from Esterel programming (VHDL
or Verilog).
There are various compilers available, however the language is still in development.
The Esterel Studio development environment is the Esterel commercial edition.
However, the working group (P1778) was disbanded in March 2011 by the firm that
commercialized it (Synfora), which started a normalization procedure with the IEEE in
April 2007. The initial IEEE standardization proposal for the Esterel v7 Reference
Manual Version v7 30 is available to the general public.
171
172. Etoys
Etoys is an object-oriented prototype-based programming language and kidfriendly computing environment for use in education. Etoys is a free and open source
media-rich authoring environment that operates on various platforms and has a
programmable object model for a wide variety of objects. [173], Figure 82.
Figure 82 : The concept of programmable virtual beings acting on a computer screen
serves as the foundation for the Etoys system.
173. Euclid
The imperative programming language Euclid is used to create provable
programs. In the middle of the 1970s, Butler Lampson and colleagues at the Xerox
PARC lab created it. At the University of Toronto, Ric Holt oversaw the
implementation, and James Cordy served as the compiler's lead programmer in its initial
iteration. It was first made to work with the Motorola 6809 processor. The compiler
development team was given a $2 million budget over a period of two years by the
Defense Advanced Research Projects Agency of the U.S. Department of Defense and
the Canadian Department of National Defence, and it was regarded as innovative at the
time.
For several years, it was used for systems programming and secure software system
research at I. P. Sharp Associates, MITRE Corporation, SRI International, and
numerous other international institutes. [174]
174. Euler
Niklaus Wirth and Helmut Weber developed the programming language known
as Euler as an expansion and generalization of ALGOL 60. [175]
The designers wanted to make a language that is:
• Easier to learn while yet being flexible than ALGOL 60
• Useful and processed with a reasonable level of efficiency.
• Formally definable.
172
175. Euphoria
Robert Craig of Toronto, Ontario, Canada's Rapid Deployment Software
developed the programming language euphoria. Figure 83.
The first commercial release was for MS-DOS as private software after being initially
developed (but not publicly released) for the Atari ST. Version 3 of Euphoria, which
was released in 2006, made the program open-source. The project is still being managed
and developed by the openEuphoria Group. Version 4 of openEuphoria was launched
in December 2010 by the openEuphoria Group, who also gave the project a new name
and mascot. Currently, OpenEuphoria is available for Windows, Linux, macOS, and
three different types of *BSD. [176]
Figure 83 : Euphoria logo
176. EusLisp Robot Programming Language
A Lisp-based programming language is used in EusLisp. It was created with the
development of robotics software explicitly in mind and is based on object orientation.
Its first iteration ran on Unix-System5/Ustation-E20 in 1986. [177]
177. CMS EXEC (EXEC)
The IBM Virtual Machine/Conversational Monitor System (VM/CMS) operating
system comes with the CMS EXEC Processor, which is an interpreted, command
procedure control, computer scripting language.
Stuart Madnick at MIT created EXEC in 1966 after studying CTSS RUNCOM. This
processor was once known as COMMAND by the inventor before being renamed
EXEC.
EXEC 2 and REXX have supplanted CMS EXEC. The IBM CMS product will continue
to support all three—CMS EXEC, EXEC 2, and REXX. [178]
173
178. EXEC 2
The IBM Virtual Machine/System Product (VM/SP) operating system originally
included the EXEC 2 Processor, which is an interpreted, command procedure control,
computer scripting language. [179]
179. Executable UML
Both a software development methodology and a highly abstract programming
language are known as executable UML (xtUML or xUML). The book "Executable
UML: A Foundation for Model-Driven Architecture" initially introduced it in 2002. The
language "combines a subset of the executable semantics and timing rules of the UML
(Unified Modeling Language) graphical notation." The Shlaer-Mellor approach has
been replaced by the Executable UML method.
Executable UML models can be turned into a less abstract programming language to
target a particular implementation and "can be executed, tested, debugged, and
monitored for performance." Model-driven architecture (MDA) is supported by
executable UML through the specification of platform-independent models and the
compilation of those models into platform-specific models. [180]
180. Ezhil
A compact, open-source, interpreted programming language called Ezhil, written
in the Tamil language, was initially created to make it easier for native Tamil-speaking
students in the K–12 age range to learn computer programming and to develop their
numeracy and computing skills outside of the confines of English-based computer
systems. [181]
181. F
A modular, compiled, numerical programming language called F was created
specifically for scientific computing and programming. F is a subset of Fortran 95
because it was created as a contemporary Fortran. It incorporates elements of these
languages' numerical and data abstraction constructs. F supports calls to Fortran 77
programs and is backwards compatible with Fortran 77. The g95 compiler introduced F
for the first time. [182]
174
182. F# (F sharp)
A functional-first, general-purpose, strongly typed, multi-paradigm programming
language called F# (pronounced "f sharp") incorporates functional, imperative, and
object-oriented programming techniques. Figure 84.
It can produce JavaScript and GPU code and is most frequently used as a cross-platform
Common Language Infrastructure (CLI) language on the.NET platform. [183]
This comment is for an example of a hello world application.
printfn World, welcome!
Figure 84 : F-sharp logo
175
183. F*
A functional programming language called F*, which is pronounced "F star," was
developed with program verification in mind. Dependent types, monadic effects, and
refinement types are all part of its type system. Figure 85.
This enables the explicit expression of program specifications, such as functional
correctness and security attributes. The F* type-checker uses SMT solvers and manual
proofs to demonstrate that programs adhere to their specifications. For execution,
programs written in F* can be converted to OCaml, F#, and C. Additionally, earlier
iterations of F* may be converted to JavaScript.
The most recent version of F* bootstraps in both OCaml and F# and is entirely written
in a shared subset of F* and F#. It is active on GitHub and is free source (under the
Apache License 2.0). [184]
Figure 85 : F* logo
176
184. Factor
Slava Pestov developed the stack-oriented programming language Factor. Factor
provides sophisticated metaprogramming tools, automated memory management, and
dynamic typing. The language features a single implementation that includes an
interactive programming environment and a self-hosted optimizing compiler. Figure 86.
A sizable standard library is included in the Factor distribution. [185]
Figure 86 : Factor logo
185. Fantom
Developed by Brian and Andy Frank, Fantom is a general-purpose objectoriented programming language that utilizes the.NET Common Language Runtime
(CLR), JavaScript, and the Java Runtime Environment (JRE) (.NET support is
considered "prototype" status). Its main objective in terms of design is to offer a
common library API that removes the concern about whether the code will ultimately
run on the JRE or CLR. Fantom uses a curly brace syntax, just like C# and Java.
Closures in the language facilitate functional programming, while the Actor model
supports concurrency. Fantom's type system adopts a "middle of the road" strategy,
including elements of both static and dynamic typing. [186]
Here is the traditional Fantom Hello World program:
// Hello from Fantom!
class HelloWorld
{ static Void main()
{ echo("Hello, World!") } }
Note the capitalization of "Void." This is so because in Fantom, Void is a class rather
than a primitive type.
177
186. FAUST
Using libraries, audio plug-ins, or standalone apps, signal processing methods can
be implemented using FAUST (Functional AUdio STream), a domain-specific, purely
functional programming language. A FAUST program is an example of a signal
processor, which applies a mathematical function to an input signal before generating
an output signal. [187]
187. FFP
John Backus developed the programming language known as FP, or functional
programming, to support the function-level programming paradigm. It enables the
creation of programs using a collection of generally practical primitives while
eliminating named variables (a style also called tacit programming or "point free").
APL, which was created by Kenneth E. Iverson in the early 1960s, had a significant
impact on it. [188]
188. Fish
Fish is a Unix shell that emphasizes usability and interaction. Figure 87.
Fish is intended to provide functionalities to the user by default rather than through
configuration. Depending on the maintainers' preferences, the POSIX shell standards
are not strictly followed by Fish, making it an unusual shell. [189]
Figure 87 : shell of the fish. The top of the page features the tagline "fish - the
friendly interactive shell."
178
189. Fjölnir
Programming language Fjölnir, also spelled Fjolnir or Fjoelnir, was created by
professor Snorri Agnarsson of computer science at Háskóli slands (University of
Iceland), and it was primarily utilized in the 1980s. The source files typically end in.fjo
or.sma.
The foundation of Fjölnir is the idea that packages are represented by substitutions on
trees made with algebraic operators, and programs are represented as trees. For instance,
"GRUNNUR" is a package, the block of code enclosed in brackets is a package, and the
* operator replaces names in one package with elements from another in the example
"Hello World" below. In this instance, "GRUNNUR" is used to import skrifastreng,
which writes a string to the standard output. [190]
Code examples :
;; Hello world in Fjölnir
"hello" < main
{ main ->
stef(;)
stofn
skrifastreng(;"Hello, world!"),
stofnlok } *
"GRUNNUR" ;
190. FL
FL (short for "Function Level") is a programming language developed by John
Backus, John Williams, and Edward Wimmers at the IBM Almaden Research Center in
the 1980s. It was described in a report from 1989. As a replacement for Backus' older
FP language, FL was created to provide specialized support for what Backus referred to
as function-level programming. FL is a rigorous functional programming language with
dynamic typing that has throw and catch exception semantics, similar to ML. Each
function contains an implicit history argument that is used for linking to C code as well
as strictly functional input/output (I/O). A type-system that extends Hindley-Milner type
inference is available for optimization. [191]
179
191. FlagShip
Based on the xBase language dialect and conventions, FlagShip is a computer
language that supports both object-oriented and procedural programming. Figure 88.
Linux, Unix, and Microsoft Windows are only a few of the various computer platforms
that FlagShip is available for and cross-compatible with. Figure 89.
As a genuine compiler, it uses the same source code and databases to convert xBase
source code to native 32-bit or 64-bit executables.[192]
Figure 88 : FlagShip logo
Figure 89 : execute FlagShip in GUI mode or in textual i/o mode
180
192. Flavors
Howard Cannon of the MIT Artificial Intelligence Laboratory created Flavors, an
early object-oriented addition to Lisp for the Lisp processor and associated
programming language Lisp Machine. Mixins were initially introduced to programming
in Lisp. Both the original and new Flavors were message passing OO models, and
Symbolics used it for its Lisp computers before developing it into New Flavors. It had
a significant impact on the creation of the Common Lisp Object System (CLOS).
Flavors implementations are also accessible for Common Lisp. Sending messages was
replaced by invoking generic functions in New Flavors. Flavors provides before and
after daemons using the standard way (called :daemon).[193]
193. Flex
Alan Kay created the FLEX programming language in the late 1960s while
experimenting with concepts that would eventually become the Smalltalk programming
language. [194]
194. Flix
The programming language Flix was created at Aarhus University with assistance
from a group of open source contributors and support from the Independent Research
Fund Denmark. Algebraic data types, pattern matching, parametric polymorphism,
currying, higher-order functions, extensible records, channel and process-based
parallelism, and tail call elimination are supported by the Flix programming language.
Flix's type and effect system and support for first-class Datalog constraints are two of
its standout features. [195]
When the following program is built and run, it prints "Hello World!"
Define Main: Impure + Unit = Console. ("Hello World!") printLine
The main function's type and effect signature indicates that it is impure, returns a value
of type Unit, and has no parameters.
The main function is impure since it calls the impure printLine method.
181
195. FlooP
Simple programming languages called BlooP and FlooP (Bounded loop and Free
loop) were created by Douglas Hofstadter to illustrate a point in his book Gödel, Escher,
Bach. BlooP is a non-Turing-complete programming language with a bounded loop as
its primary control flow structure (i.e. recursion is not permitted). Only elementary
recursive functions can be expressed in this language, and all programs must end.
Since FlooP is a Turing-complete language that can express any computable functions,
it is identical to BlooP with the exception that it permits unbounded loops. For instance,
it can express the Ackermann function, which BlooP cannot express because it is not a
primitive recursive function. Hofstadter refers to the unbounded loops in FlooP as MUloops, borrowing language from mathematical logic. The halting problem affects all
Turing-complete programming languages, including FlooP. In general, it is impossible
to determine which programs will terminate.
BlooP and FlooP are models of computing that have occasionally been employed in
computability education. [196]
196. FLOW-MATIC (B0)
The first language for data processing that was similar to English was called
FLOW-MATIC initially known as B-0 (Business Language version 0). It influenced the
creation of COBOL and was created for the UNIVAC I at Remington Rand under Grace
Hopper from 1955 to 1959. [197]
197. FOCAL (Formulating On-Line Calculations in Algebraic
Language/FOrmula CALculator)
Formulating On-line Calculations in Algebraic Language, or FOCAL (acronym
for Formulating On-line Calculations in Algebraic Language, or FOrmula CALculator),
is an interactive interpreted programming language built on the JOHNNIAC Open Shop
System (JOSS), and it is primarily used on Digital Equipment Corporation (DEC)
Programmed Data Processor (PDP) series machines. [198]
198. FOCUS
Database queries are created using the fourth-generation (4GL) programming
language and development environment known as FOCUS. It was created by
Information Builders Inc. and was initially designed for IBM mainframe data
management and analysis. Versions for minicomputers and other platforms, like the
VAX, were subsequently implemented. Later, FOCUS was expanded to include
personal computers and, in 1997, the World Wide Web through the creation of
WebFOCUS. [199]
182
199. FOIL
Two separate programming languages were known as FOIL. [200]
• CAI-compliant language
A CAI language created in 1967 at the University of Michigan became the first
FOIL. File-Oriented Interpretive Language was the name of the language, which was
quite similar to other CAI languages like COURSEWRITER and PILOT. Whitespace
was used to attempt to block-structure the language, but this only served to make it
sound a little like ABC or BASIC.
Example:
:START COUNT=0
TY Enter the number of times you want to repeat the statement:
ACCEPT
MAX=NUMBER.(1)
:LOOP
TY This loop has run #COUNT times it will terminate when it runs #MAX times
IF COUNT<MAX,
COUNT=COUNT+1
GO TO :LOOP
TY Do you want to do this again?
ACCEPT
IF 'yes', GO TO START
IF 'no' GO TO FINISH
:FINISH
TY Goodbye!
STOP
• Language of music generation
For the Touché computer instrument, the second FOIL was a music creation
language in 1979. The Touché was a keyboard with digital tone creation and software
programming capabilities. Far Out Instrument Language was the name of the acronym,
which was followed by MetaFOIL and FOIL-83. David Rosenboom created the
language, which was based on Forth.
183
200. FORMAC (FORMula MAnipulation Compiler)
The first computer algebra system to see widespread use was called FORMAC,
or the FORmula MAnipulation Compiler. It was created as an extension of FORTRAN
IV by Jean E. Sammet and her team. The compiler was constructed as a preprocessor
that took the FORMAC program and transformed it into a FORTRAN IV program,
which was then automatically compiled.
The initial phase of construction began in 1962 and was finished in April 1964. It was
made available to IBM clients in November.
The use, manipulation, and computation of symbolic expressions were all
supported by FORMAC. Additionally, it supported rational math. [201]
201. @Formula
Lotus Notes makes use of the Formula language for scripting. Due to the fact that
many language components begin with the @-character, it is frequently referred to as
@Formula language (pronounced at-formula). Here is an illustration of a formula for
selection:
SELECT "NT0050D26" as the note ID.
During the early stages of Lotus Notes development, Ray Ozzie designed it. Formula
Language was developed primarily for string and list processing, not numerical
processing, unlike the spreadsheet language that he stole the compiler and decompiler
from, Lotus 1-2-3. It started off as a functional programming language with special text
list handling capabilities that Ray Ozzie's earlier work with Icon and Lisp had
influenced. Damien Katz rewrote the Formula language engine for Notes and Domino
6. Performance was enhanced while new language features like looping and dynamic
execution were added. [202]
202. Forth
Charles H. "Chuck" Moore created the procedural, stack-oriented programming
language and interactive environment known as Forth, which was first employed by
other programmers in 1970. Although not an abbreviation, the name of the language
was sometimes spelt FORTH in its early years. The implementations of FORTH-79 and
FORTH-83, which weren't created by Moore, ended up being de facto standards, and
ANS Forth, an official standardization of the language, was released in 1994. Before
and after ANS Forth, a vast variety of Forth derivatives were available.
The phrase "Hello, World!" is written as HELLO (--) CR.
World, welcome!
The following output is displayed on a new line when the term "CR" (Carriage Return)
is typed. the word for parsing "(dot-quote) adds code to the current definition after
reading a double-quote-delimited string so that the parsed string will be shown when
the code is executed. the character that divides the word with a space "the string Hello,
World! does not contain any of the Hello, World! string. It is required for the parser to
identify "as a word in Forth.
184
The same results can be produced by entering the following code fragment into a typical
Forth interpreter, which is also a forth console:
"Hello, World!" CR
An instant word that shows a parenthesis-delimited string after parsing it is ((dot-paren).
similar to the expression "the dividing character of the gap.
The string does not contain (from Hello, World!
The text to print is preceded by the letter CR. The Forth interpreter does not, by default,
begin output on a new line. As is customary, the interpreter displays an ok prompt and
then waits for input at the end of the preceding line. Forth's CR does not include an
implicit "flush-buffer" action, as some other programming languages do.[203]
203. Fortran – ISO/IEC 1539
A general-purpose, compiled imperative programming language known as
Fortran (FORTRAN) is best suited for mathematical and scientific computing. There
have been several versions of Fortran, and each one has added additions while mainly
maintaining compatibility with earlier ones. Figure 90.
Fortran 77 introduced structured programming and character-based data processing;
Fortran 90 added array programming, modular programming, and generic
programming; Fortran 95 introduced High Performance Fortran; Fortran 2003
introduced object-oriented programming; Fortran 2008 introduced concurrent
programming; and Coarray Fortran 2008/2018 introduced native parallel computing
capabilities. [204]
32 statements made up the FORTRAN for the IBM 704's original version, which
included the following:
EQUIVALENCE and DIMENSION statements
Three-way arithmetic IF statement that transferred control to one of three program
places based on whether the result of the arithmetic statement was negative, zero, or
positive
IF statements for controlling sense switches and sense lights, as well as IF statements
for verifying exceptions (ACCUMULATOR OVERFLOW, QUOTIENT
OVERFLOW, and DIVIDE CHECK).
ASSIGN, computed GO TO, assigned GO TO DO, and GO TO loops
FORMAT, READ, READ INPUT TAPE, WRITE, WRITE OUTPUT TAPE, PRINT,
and PUNCH are the formatted I/O commands.
READ TAPE, READ DRUM, WRITE TAPE, and WRITE DRUM are examples of
unformatted I/O.
End File, Rewind, Backspace, Pause, Stop, and Continue are examples of other I/O.
Frequency declaration (for providing optimization hints to the compiler).
The arithmetic IF statement was similar to a three-way comparison instruction (CAS—
Compare Accumulator with Storage) present on the 704 but was not easily
implementable by it. The statement gave the only method for comparing numbers,
which involved testing their discrepancy and carrying a risk of overflow. Later, "logical"
tools included in FORTRAN IV were provided to address this shortcoming.
185
The three branch scenarios of the arithmetic IF statement's original use of the
FREQUENCY statement were given branch probabilities using this statement (which is
optional).
"Hello, World!" example :
program helloworld
print *, "Hello, World!"
end program helloworld
Figure 90 : Fortran logo
186
204. Fortress
Sun Microsystems developed Fortress, an experimental high-performance
computing programming language, with funding from DARPA's High Productivity
Computing Systems project. Fortress has since been retired. Guy L. Steele Jr., whose
prior work includes Scheme, Common Lisp, and Java, was one of the language creators.
As seen in the Fortress Reference Card, here is the classic hello world program in
Fortress form:
component hello
export Executable
run() = println(“Hello, World!”)
end
Every program in Fortress that may be executed must implement the run() method
thanks to the export statement. The name supplied in the initial component statement
must match the file where the program is saved for compilation. "Hello, World!" is
displayed on the screen by the println() function. [205]
205. FP
John Backus developed the programming language known as FP, or functional
programming, to support the function-level programming paradigm. It enables the
creation of programs using a collection of generally practical primitives while
eliminating named variables (a style also called tacit programming or "point free").
APL, which was created by Kenneth E. Iverson in the early 1960s, had a significant
impact on it.
Can Programming Be Liberated from the von Neumann Style?, Backus' 1977 Turing
Award paper, which was subtitled "a functional style and its algebra of programs,"
introduced the FP language. The article aroused interest in the field of functional
programming, which eventually led to the development of contemporary functional
languages that, contrary to Backus' expectations, are mostly based on the lambda
calculus paradigm. [206]
187
206. FoxBase/FoxPro
Originally released by Fox Software and then by Microsoft for MS-DOS,
Windows, Macintosh, and UNIX, FoxPro was a text-based procedurally oriented
programming language and database management system (DBMS) that was also objectoriented. FoxPro was finally released as version 2.6. The Visual FoxPro brand saw
continuous development before being abandoned in 2007. Figure 91.
FoxPro was derived from FoxBase, which was taken from dBase III (Ashton-Tate) and
dBase II (Fox Software, Perrysburg, Ohio). Vulcan, a database application created by
Wayne Ratliff and running on CP/M, was the basis for the first commercial release of
dBase II. Due to its broad support for many relationships between various DBF files,
FoxPro was both a database management system (DBMS) and a relational database
management system (RDBMS) (tables). It lacked transactional processing,
though.[207]
Figure 91 : Cover of the FoxPro 2.6 Developer's Guide
188
207. Franz Lisp
Franz Lisp, a defunct Lisp programming language system, was created by
professor Richard Fateman and a number of students at the University of California,
Berkeley (UC Berkeley, UCB). Figure 92.
It was based largely on Maclisp and distributed with the Berkeley Software Distribution
(BSD) for the Digital Equipment Corporation (DEC) VAX minicomputer. Franz Lisp
was perhaps the most popular and commonly used Lisp system during the 1970s and
1980s, riding on the success of the BSD package. [207]
Figure 92 : 4.3 BSD from the University of Wisconsin, displaying a Franz Lisp man
page
208. Futhark
As a component of the HIPERFIT project, the functional data parallel array
programming language Futhark was initially created at DIKU. It focuses on making it
possible for data parallel programs written in a functional language to be performed on
massively parallel hardware, in particular on GPUs, with high speed. Futhark draws
heavily from NESL, but in order to support more aggressive compiler optimizations, it
has restrictions on how parallelism can be stated. Particularly unsupported is irregular
layered data parallelism. [208]
189
209. F-Script
Philippe Mougin created the object-oriented scripting language F-Script for the
macOS operating system from Apple. A Smalltalk-based interactive language called FScript makes use of the Cocoa API that comes with macOS. [210]
210. Game Maker Language
The GameMaker series of cross-platform game engines, previously known as
Animo, Game Maker (up until 2011), and GameMaker Studio, was founded by Mark
Overmars in 1999 and has been developed by YoYo Games since 2007. GameMaker's
most recent version was launched in 2022. [211], Figure 93.
Figure 93 : Game Maker logo
211. GameMonkey Script
A compact, cross-platform scripting language called GameMonkey Script was
created with game integration in mind. With the exception of their closer resemblance
to C syntax, GameMonkey and Lua are very comparable languages.
Greg Douglas and Matthew Riek created GameMonkey Script in 2002 as a closedsource undertaking for Auran Development. On the other hand, Auran authorized the
public release of GameMonkey's complete source code under the MIT License on June
12, 2003. On a variety of devices, including the Windows PC, Apple Mac, Microsoft
Xbox, Sony's PlayStation 2, PlayStation 3, Nintendo GameCube, Nintendo DS,
Nintendo Wii, and several Linux distributions, it is currently utilized for both
professional and recreational purposes. [212]
190
212. GAMS (General Algebraic Modeling System)
A high-level modeling system for mathematical optimization is the general
algebraic modeling system (GAMS). GAMS is made for modeling and resolving mixedinteger, linear, and nonlinear optimization issues. The system is designed specifically
for complicated, large-scale modeling applications and enables the user to create robust
models that can be modified to fit different circumstances. The system can be used on a
variety of computer platforms. From one platform to another, models can be moved
about. [213]
213. GAP
A computer algebra system called GAP (Groups, Algorithms and Programming)
is used for computational discrete algebra, with a focus on computational group theory.
From 1986 to 1997, GAP was created at Lehrstuhl D für Mathematik (LDFM),
Rheinisch-Westfälische Technische Hochschule Aachen, Germany. Figure 94.
The creation and upkeep of GAP was overseen by the School of Mathematical and
Computational Sciences at the University of St Andrews in Scotland after Joachim
Neubüser stepped down from his position as LDFM chair. The University of St
Andrews, RWTH Aachen, Technische Universität Braunschweig, and Colorado State
University at Fort Collins formed an equal partnership to coordinate in the summer of
2005. A fifth GAP Centre, located at the TU Kaiserslautern, was added in April 2020.
[214]
Figure 94 : GAP logo
191
214. G-code
The most popular computer numerical control (CNC) programming language is
G-code (also known as RS-274). It has numerous variations and is mostly used in
computer-aided manufacturing to control automated machine tools.
A machine controller (industrial computer) receives G-code instructions that guide the
motors on where to go, how quickly to move, and what course to take.
The two most frequent scenarios are that a cutting tool is moved in accordance with
these instructions through a toolpath inside a machine tool like a lathe or mill, removing
material to leave only the finished workpiece; or an unfinished workpiece is precisely
positioned in any of up to nine axes around the three dimensions relative to a toolpath,
and either or both can move relative to each other. The same idea applies to measuring
tools as well as noncutting equipment like shaping or burnishing tools, photoplotting,
additive processes like 3D printing, and photoplotting. [215]
215. GDScript (Godot)
A cross-platform, free and open-source game engine known as Godot was made
available under the MIT license. Before it was made available to the general public, it
was initially created by Argentine software developers Juan Linietsky and Ariel Manzur
for a number of Latin American businesses. Figure 95.
Linux, BSDs, macOS, and Microsoft Windows are just a few of the operating systems
that the development environment is compatible with. It is intended for use in the
development of 2D and 3D games for PC, mobile, and online platforms. Additionally,
it can be used to develop editors and other non-game software. [216]
Figure 95 : GDScript logo
192
216. Genie
A contemporary, all-purpose high-level programming language called Genie has
been under development since 2008. It was created as a different, easier, and cleaner
dialect for the Vala compiler while maintaining all of the Vala's capability. The compiler
and libraries used by Genie and Vala are identical, therefore the two can be used
together. There are simply syntactic differences. [217]
This example utilizes four spaces for indentation intentionally.
[indent=4]
init
print "Hello, world!"
217. GDL (Geometric Description Language)
Geometric Description Language (GDL) is the programming language used by
the Archicad library parts in computer-aided design. These CAD models have a file
format called GSM.
These objects resemble AutoCAD blocks, but they are parametric objects with
integrated 2D and 3D properties that allow for accurate depiction in any view (for
example a side view on the section, top view on plan, and perspective in the 3D view).
An Archicad library part is defined by GDL scripts according to its primary functions,
which include listing quantities, a user interface display and behavior, a 3D model, a 3D
model projected to section/elevation or a 2D plan, a 2D plan view, and a 3D model.[218]
193
218. GEORGE
Charles Leonard Hamblin created the programming language GEORGE (General
Order Generator) in 1957.
It used reverse Polish notation and was built around a push-down pop-up stack for
arithmetic operations.
There were conditionals, loops, subroutines, matrices, and vectors in the language.
A+B was written as a+b, and similarly for the other arithmetic operations of
subtraction, multiplication, and division. Algebraic expressions were written in reverse
Polish notation. The mathematical formula ax2+bx+c was expressed as an x dup b x +
c +, where 'dup' stood for 'duplicate the value.
An assignment statement to evaluate the formula y=ax2+bx+c was expressed as an x
dup b x + c + using the reverse Polish form (y).
The following is how the computer assessed the expression: the values of a and x were
pushed to the top of the accumulator stack, respectively; "dup" caused a copy of the topmost value (x) to be pushed to the top of the accumulator stack; and "Multiply" caused
the top two values, xand x, to be removed (popped) and multiplied, returning the result
to the top of the accumulator stack. The top two values on the stack (specifically, a and
x**2) were then multiplied by the second multiply (), and the result (ax**2) was then
pushed onto the top of the accumulator stack.
Likewise with the remaining words in the statement. The expression's value was
returned to storage by the last operation, (y), without the accumulator stack's state being
altered. The value at the top of the accumulator stack would be eliminated (cleared) if
it wasn't urgently needed by invoking the operation (;). [219]
The software below reads eight values and computes their sum:
0,
1, 8 rep (j)
R+
]
(P)
By moving the value zero to the top of the accumulator stack, the first line initializes
the sum.
The second line begins a loop and ends with a square bracket. It is spoken as "for 1 to 8
repeat for j."
The plus sign (+) adds the value to the (partial) sum after R causes one integer to be
read in and put to the top of the accumulator stack in the third line, leaving only the
partial sum on top.
The (P) causes the final sum to be punched on a card once the loop ends.
194
219. GLSL (OpenGL Shading Language)
A high-level shading language with a syntax based on the C programming
language is known as OpenGL Shading Language (GLSL). To provide programmers
more direct control over the graphics pipeline without requiring them to use ARB
assembly code or hardware-specific languages, the OpenGL ARB (OpenGL
Architecture Review Board) developed it. Figure 96.
New capabilities have been added to provide for more flexibility in the rendering
process at the vertex and fragment level as a result of advancements in graphics cards.
Vertex and fragment shaders are used to attain this level of programability. [220]
Figure 96 : Real-time rendering calculations in video games are sent to the GPU via
OpenGL. OpenGL Shading Language is used to create and compile shaders. The GPU
is used to run the compiled programs.
220. GNU E
A C++ extension called GNU E is used to create software systems that allow
persistent applications. As a component of the Exodus project, it was created. [221]
195
221. GNU Guile (GNU Ubiquitous Intelligent Language for
Extensions)
The chosen extension language system for the GNU Project, GNU Ubiquitous
Intelligent Language for Extensions (GNU Guile), includes an implementation of the
computer language Scheme. Figure 97. In 1993, the first version was made available.
Large portions of the Scheme standards are also included in Guile Scheme, along with
modularized extensions for a wide variety of programming tasks. [222]
Figure 97 : GNU logo
196
222. Go
Programming language Go was created at Google by Robert Griesemer, Rob
Pike, and Ken Thompson. It is statically typed and compiled. Figure 98.
Although it has memory safety, garbage collection, structural typing, and parallelism in
the CSP manner, it is syntactically identical to C. Although its official name is Go, it is
frequently referred to as Golang due to its former domain name, golang.org. [223]
package main
import "fmt"
func main() {
fmt.Println("hello world") }
Where "fmt" stands for the formatted I/O package, which is comparable to C's C file
input/output.
Figure 98 : Go logo
223. Go!
In the tradition of logic-based programming languages like Prolog, Go! is an
agent-based language. In a 2003 publication, Francis McCabe and Keith Clark described
it.[224]. Gocreators !'s define it as "a multi-paradigm programming language targeted
at the requirements of creating secure, high-quality production applications and agentbased ones. It is strongly typed, higher order, and multi-threaded (in the functional
programming sense). It provides definitions for relation, function, and action procedure.
Action operations are carried out by threads, which as needed also call functions and
query databases. Asynchronous messages are used by threads in various agents to
coordinate and communicate. Additionally, shared dynamic relations that function as
Linda-style tuple storage can be used by threads inside the same agent."
The authors also suggest that the language's mix of logic, functional, and imperative
programming methods makes it appropriate for representing ontologies.
197
224. GOAL (Game Oriented Assembly Lisp)
Game-Oriented Construction A version of the programming language Lisp called
Lisp (GOAL) was created specifically for video games by Andy Gavin and the Jak and
Daxter team at the business Naughty Dog.
It was created using Allegro Common Lisp, which was also used to create the whole
Jak and Daxter game series. [225]
225. Gödel
The general-purpose, declarative programming language Gödel follows the logic
programming paradigm. It is a strongly typed language, featuring a parametric
polymorphism type system based on many-sorted logic. Kurt Gödel, a logician, inspired
its name. A definition of the greatest common divisor (GCD) of two numbers may be
found in the following Gödel module. Not being especially efficient is not the goal; the
goal is to illustrate the declarative character of Gödel. According to the CommonDivisor
predicate, if I and j are positive integers and d is between 1 and the smaller of I and j,
then d is a common divisor of I and j if it divides both I and j exactly.
The Gcd predicate states that if d is a common divisor of I and j and there is no e that is
both a common divisor of I and j and greater than d, then d is the greatest common
divisor of I and j. [226]
MODULE GCD.
IMPORT Integers.
PREDICATE Gcd : Integer * Integer * Integer.
Gcd(i,j,d) <CommonDivisor(i,j,d) &
~ SOME [e] (CommonDivisor(i,j,e) & e > d).
PREDICATE CommonDivisor : Integer * Integer * Integer.
CommonDivisor(i,j,d) <IF (i = 0 \/ j = 0)
THEN
d = Max(Abs(i),Abs(j))
ELSE
1 =< d =< Min(Abs(i),Abs(j)) &
i Mod d = 0 &
j Mod d = 0.
198
226. Golo
Golo is software for computers and a Java virtual machine programming language
(JVM). It is straightforward and has shaky typing. It was developed in 2012 as a result
of the research efforts of the DynaMid group at the Institut national des sciences
appliquées de Lyon's Centre of Innovation in Telecommunications and Integration of
Service (CITI) Laboratory (INSA). It is made available as open-source software for free
under the terms of the Eclipse Public License 2.0. [227]
227. GOM (Good Old Mad)
For the IBM 704 and later the IBM 709, IBM 7090, IBM 7040, UNIVAC 1107,
UNIVAC 1108, Philco 210-211, and eventually the IBM S/370 mainframe computers,
MAD (Michigan Algorithm Decoder) is a programming language and compiler. MAD
is a dialect of the ALGOL language that was created in 1959 at the University of
Michigan by Bernard Galler, Bruce Arden, and Robert M. Graham. During the 1960s,
it was frequently used to instruct programming in colleges and universities and had a
small impact on the creation of the CTSS, Multics, and Michigan Terminal System
computer operating systems. [228] GOM (Good Old MAD), a reimplementation of the
original 7090 MAD for mainframe machines from the IBM System/370 family that run
the Michigan Terminal System (MTS).
Don Boettner developed GOM at the University of Michigan Computing Center in the
early 1980s.
The string "Hello, world" is printed to a terminal or screen display by the "hello, world"
example program.
PRINT FORMAT HELLOW
VECTOR VALUES HELLOW=$13h0 Hello, planet! * $
END OF PROGRAM
In this case, the character "0," which causes a double-spaced line to be printed, is
interpreted as the logical carriage control for the line.
Alternatives include using contractions, which the compiler will extend in the listing:
P'T HELLOW
V’S HELLOW = 13h0Hello, planet! * $
E'M
199
228. Google Apps Script
On the purpose of creating lightweight applications for the Google Workspace
platform, Google developed the scripting tool known as Google Apps Script. As a side
project while working as a developer on Google Sheets, Mike Harm created the first
version of Google Apps Script. When Jonathan Rochelle, the Google Docs product
manager at the time, launched a beta testing program in May 2009, Google Apps Script
was first made known to the public. All users of Google Apps Premier and Education
Edition became able to use Google Apps Script in August 2009. Although it is built on
JavaScript 1.6, it also incorporates several features from versions 1.7 and 1.8 as well as
a subset of the ECMAScript 5 API. Projects written in Apps Script are executed serverside on Google's platform. Figure 99.
Apps Script "provides simple ways to automate processes across Google products and
third party services," claims Google. Additionally, Google Docs, Sheets, and Slides addons are powered by Apps Script. [229]
Figure 99 : Google Apps Script logo
200
229. Gosu
Runs on the Java Virtual Machine, Gosu is a statically typed general-purpose
programming language. It was influenced by ECMAScript, Java, and C#. Gosu's
internal development for Guidewire Software started in 2002, and the language's initial
public release under the Apache 2 license came in 2010.
Gosu can be used as a scripting language because it has statically checked Template
files and free-form Program types (.gsp files) for scripting (.gst files). Gosu differs from
other static languages in that it can optionally run these and all other types straight from
source code without precompilation. [230]
Gosu is made possible as a scripting language via program files.
For instance, the one-line application Gosu's Hello, World!
print("Hello, World!")
Gosu classes are also executable a la Java:
class Main {
static function main(args: String[])
{
print("Hello, World!") } }
230. GOTRAN (IBM 1620)
On October 21, 1959, Figure 100. IBM launched the IBM 1620, which was
pitched as a low-cost scientific computer. It was discontinued on November 19, 1970,
after a total output of roughly 2000 units. The CPU of the IBM 1710 and IBM 1720
Industrial Process Control Systems was modified versions of the 1620. (making it the
first digital computer considered reliable enough for real-time process control of factory
equipment). [231]
Figure 100 : GOTRAN (IBM) logo
201
231. GPSS (General Purpose Simulation System)
A simulation clock progresses in discrete increments using the General Purpose
Simulation System (GPSS), a general-purpose programming language for discrete time
simulation. Transactions enter a system and are passed from one service (represented
by blocks) to another as a system is modelled. It is generally used as a simulation
language focused on process flows, which is especially useful for issues found in
factories. [232]
232. GraphTalk (Computer Sciences Corporation)
An American multinational firm called Computer Sciences Corporation (CSC)
offered expert services and information technology (IT) services. On April 3, 2017, it
combined with HP Enterprise's (formerly Electronic Data Systems) Enterprise Services
division to establish DXC Technology. [233], Figure101.
Figure 101 : CSC logo
233. GRASS
A programming language called GRASS (GRAphics Symbiosis System) was
developed for animating 2D vector graphics. The grammar of GRASS was comparable
to that of BASIC, but it also had a number of commands for expressing 2D object
animation, such as scaling, translation, and rotation over time. The Vector General 3D
graphics terminal GRASS was built for directly supported these functions. It
immediately gained popularity among artists experimenting with computer graphics as
a new medium, and Larry Cuba is most known for using it to produce the original
"attacking the Death Star will not be simple" animation in Star Wars (1977).
The language was transferred to Midway's Z Box, which was powered by Z80, as part
of a later relationship with Midway Games.[234]
202
234. Grasshopper
The Rhinoceros 3D CAD software utilizes the visual programming language and
environment known as Grasshopper. David Rutten at Robert McNeel & Associates
developed the program. Components are dropped into a canvas to form programs. The
inputs of succeeding components are then coupled with the outputs of these
components. [235], Figure 102.
Figure 102: Grasshopper window
235. Groovy (Apache Groovy)
A Java platform object-oriented programming language with compatibility for
Java syntax is called Apache Groovy. It has features that are comparable to Python,
Ruby, and Smalltalk and is both a static and dynamic language. It is compiled to Java
virtual machine (JVM) bytecode, may be used as both a programming language and a
scripting language for the Java Platform, and interacts with other Java code and libraries
without any issues. Similar to Java, Groovy employs a curly-bracket syntax. Closures,
multiline strings, and expressions contained within strings are all supported by Groovy.
Groovy's AST transformations, which are triggered by annotations, are a large part of
its power.[236]
203
236. Hack
Hack is a PHP dialect that Meta developed as a programming language for the
HipHop Virtual Machine (HHVM). The MIT License governs the open-source
implementation of the language. Figure 103.
A Hack script's basic file structure is quite different from that of a PHP script.
Hack files forbid the use of top-level declarations and omit the?php opening markup
tag. A function called the entrypoint must include code. If they are in the top-level file,
they are automatically run; however, if the file is included via include, require, or the
autoloader, they are not. The function names in Hack must be distinct within each
project, just like other functions do. For example, projects with multiple entrypoints
cannot call both main and main:
<<__EntryPoint>>
void main() function; echo "Hello, World!";
When the aforementioned PHP-inspired script is run, the browser will see the output
listed below: World, welcome!
HTML code and Hack do not mix, in contrast to PHP; XHP or another template engine
must be used instead. [237]
Figure 103 : Hack logo
204
237. HAGGIS
For Scottish students enrolled in SQA courses in the subject, Haggis is a highlevel reference programming language that is primarily used to assess computing
science. In order to bridge the gap between pseudocode and standard computer
programming, Haggis is utilized.
A student who is familiar with any of the many languages spoken in classrooms should
be able to understand the syntactic construct being used in an example thanks to the fact
that haggis is not based on any one language but rather a mixture. For this reason, it has
a variety of functional, imperative, and object-oriented programming paradigms.
Each level at which computing is evaluated by the SQA has a separate language
definition. These three definitions are proper subsets of one another, so any program
that is defined at the National 5 level is also well-defined at the Higher and Advanced
Higher levels.
Higher covers the use of record types and files, as well as the definition of procedures,
whereas Advanced Higher also incorporates object-orientation. Figure 104.
Examiners and teachers can now verify that their programs are accurately designed and
act as intended by using online Haggis interpreters. [238]
Figure 104 : Syntax and structure in Haggis are very similar to other programming
languages and can be easily learned.
238. HAL/S
NASA and affiliated agencies employ the real-time aerospace programming
language compiler and cross-compiler HAL/S (High-order Assembly
Language/Shuttle) for avionics applications (JPL, etc.). Since 1973, it has been used in
numerous American space projects, although the Space Shuttle program saw the most
extensive use of it (around 85% of the Shuttle's software was written in HAL/S). For
NASA, Intermetrics created it in 1972, and it was delivered in 1973. A PL/I dialect
called XPL is used to write HAL/S. Although HAL/S is primarily intended for
programming on-board computers, it is sufficiently all-encompassing to cover
practically all requirements in the development, testing, and maintenance of aerospace
and other real-time systems.
It was being maintained by the HAL/S project of the United Space Alliance, according
to paperwork from 2005. [239]
205
239. Halide (programming language)
Halide is a programming language for computers that makes use of memory
locality, vectorized computing, and multi-core CPUs and GPUs to write code for digital
image processing. In C++, Halide is implemented as a DSL (domain-specific
language).[240]
240. Hamilton C shell
Nicole Hamilton of Hamilton Laboratories created the Hamilton C shell, a fork
of the Unix C shell and utilities for Microsoft Windows, as a wholly original effort, not
based on any previous code. On December 12, 1988, it was initially released for OS/2,
and in July 1992 for Windows NT. Figure 105. While the Windows version is being
actively supported, the OS/2 version was retired in 2003. [241]
The Unix C shell is not the same as the Hamilton C shell in a number of ways. These
include the architecture of its compiler, the use of threads, and the choice to adhere to
Windows norms rather than Unix ones.
Figure 105 : 64-bit Hamilton C shell on a Windows 7 desktop.
206
241. Harbour
A computer programming language called Harbour is generally employed to
develop database and business programs. It is an updated, open-sourced, cross-platform
version of the previous Clipper system, which itself evolved from the 1980s and 1990s
dBase database market.
In addition to Microsoft Windows, Linux, Unix variants, many BSD offspring, Mac OS
X, MINIX 3, Windows CE, Pocket PC, Symbian, iOS, Android, QNX, VxWorks, OS/2
(including eComStation and ArcaOS), BeOS/Haiku, AIX, and MS-DOS, Harbour code
can be compiled under any of these platforms. [242]
The "hello world" program would typically be:
? "Hello, world!"
Or:
QOut( "Hello, world!" )
Or:
Alert( "Hello, world!" )
Or, enclosed in an explicit procedure:
PROCEDURE Main()
? "Hello, world!"
RETURN
207
242. Hartmann pipelines
The VM/CMS operating system has a feature called CMS Pipelines that enables
the creation and use of pipelines. A pipeline of programs runs on a stream of sequential
records. The following program in the pipeline reads the records that were written by
the previous program. Since reading and writing are carried out through a deviceindependent interface, any software can be integrated with any other program. [243]
A straightforward example that reads a disk file and distinguishes between records that
contain and do not include the text "Hello" The other entries are converted to upper
case; the modified records have the string "World!" added to each of them. After then,
the records from the two streams are merged and written to a new output file.
PIPE (end ?)
< input txt
| a: locate /Hello/
| insert / World!/ after
| i: faninany
| > newfile txt a
? a:
| xlate upper
| i:
In this illustration, the stage reads the input disk file and sends the records to the
following step. The input stream is split into two output streams during the locate stage.
Records containing Hello that are the main output of locate are sent to the insert stage.
The insert stage alters the input records in accordance with the arguments it is given
before sending them to the output. Faninany, which creates a single output stream by
combining data from all input streams, is connected to the output. The new disk file is
where the output is written. Figure 106.
The records that did not fit the selection criterion are contained in the secondary output
of locate, which is identified by the second appearance of the a: label.
In this instance, there are two interconnected pipelines making up the pipeline topology.
The pipeline set's different pipelines are distinguished from one another by the end
character (in this case, the?). Records read from the input file are routed through one of
the pipeline topology's two paths. CMS Pipelines makes sure that records get at faninany
in the sequence in which they passed via locate because neither of the routes contain
stages that need to buffer records.
With each stage on a single line, the sample pipeline is depicted in "portrait form." All
phases of a pipeline are written on a single line when it is entered as a CMS command.
208
Figure 106 : Pipelines logo
243. Haskell
Haskell is a statically typed, purely functional programming language with type
inference and lazy evaluation that can be used for any purpose. Haskell is a
programming language that was developed for use in education, research, and industry.
It was the first to introduce features like type classes, which allow type-safe operator
overloading, and monadic IO. The Glasgow Haskell Compiler is the primary Haskell
implementation (GHC). It bears the name Haskell Curry, a logician. [244]
Haskell code for "Hello, World!" (only the last line is strictly required) Figure 107.
Module Main (main) is the default in a module file and is not required by the interpreter.
IO (),This type definition can be inferred by the compiler main = putStrLn "Hello,
World!"
Figure 107 : Haskell logo
209
244. Haxe
Haxe is a high-level, cross-platform programming language and compiler that is
open source and can generate source code and apps from a single code base for a variety
of computing platforms. It is software that is available as open-source and free under
the MIT License. Figure 108.
The OCaml compiler is distributed under the terms of the GNU General Public License
(GPL) version 2. [245]
Figure 108 : Haxe logo
245. Hermes
Hermes is a distributed programming language with an open-source run-time
system that was created at IBM's Thomas J. Watson Research Center between 1986 and
1992. The main traits of Hermes were:
Language support for processes and communication between processes.
Ensuring at compile time that actions make advantage of initialized data.
Tables are collections of data that are independent of representation.
Absence of arrows. Reading an uninitialized variable is an example of how typestate
analysis was used to check for mistakes in variable transitions and rule out semantically
meaningless transitions (i.e., beginning from a value, some sequences of operations on
a variable are nonsensical). In this capacity, the compile-time initialization of data
checking is comparable to the definite assignment analysis carried out by Java, Cyclone,
and C#. The first programming languages to provide this kind of initialization checking
were Hermes and its predecessor NIL (Network Implementation Language). In reality,
typestate was utilized more frequently to produce "delete" actions that were added by
the compiler. [246]
210
246. High Level Assembly (HLA)
Randall Hyde created the High Level Assembly (HLA) language, which enables
the use of higher-level language structures to help both novice and expert assembly
developers. Both object-oriented programming and sophisticated data types are fully
supported. To enable the creation of intelligible assembly language programs and to
enable HLL programmers to pick up HLA as quickly as possible, it uses a syntax that
is loosely based on a number of high-level programming languages (HLLs), including
Pascal, Ada, Modula-2, and C++. [247]
247. HLSL
The High-Level Shader Language (HLSL), sometimes known as High-Level
Shading Language, is a proprietary shading language created by Microsoft to
supplement the shader assembly language in the Direct3D 9 API. It later became a
requirement for the unified shader model of Direct3D 10 and higher .[248]
211
248. Hollywood
Andreas Falkenhahn (Airsoft Softwair) created Hollywood, a commercially
available programming language that primarily focuses on the development of
multimedia-oriented applications. AmigaOS, MorphOS, WarpOS, AROS, Windows,
macOS, Linux, Android, and iOS are all supported by Hollywood. Figure 109.
A built-in cross compiler in Hollywood allows it to automatically save executables for
every platform it supports. The created executables can also be launched from a USB
flash drive because they are entirely independent and have no external dependencies.
Users can also create APK files by compiling their programs using an optional addon.[249]
Hollywood's version of a Hello World program would resemble this:
"Hello World!" is printed.
WaitLeftMouse
The code in the preceding paragraph launches a new window on the desktop, prints
"Hello World!" in white letters, and then waits for the left mouse button to release it.
Hollywood immediately opens the window for you. Hollywood will automatically start
a new window in 640x480 resolution for each script, unless otherwise asked.
Figure 109 : Hollywood Designer running on AmigaOS4
212
249. HolyC (TempleOS)
A lightweight operating system (OS) with a biblical motif created to represent the
Third Temple predicted in the Bible is called TempleOS (formerly J Operating System,
LoseThos, and SparrowOS). Terry A. Figure 110. Davis, an American programmer,
developed it alone over a ten-year period following a string of manic episodes that he
later referred to as a revelation from God. [250], Figure 111.
Figure 110 : HolyC (TempleOS) logo
Figure 111 : TempleOS 5.03
213
250. Hop
Hop is the name of both the web broker (server and proxy) and the Lisp-like
programming language created by Manuel Serrano for web 2.0. Bigloo Scheme is used
to write it. It is an INRIA-funded initiative. Figure 112.
Since Hop is a stratified language, both the server's and the client's program code can
be found in the same program file. The server performs computationally intensive
processes that call for system rights in order to access files or other resources. The
clients are responsible for carrying out operations related to the graphical user interface
programming. There may be many clients, such as browsers and mobile devices .[251]
Figure 112 : Hop logo
251. Hopscotch
A visual programming language called Hopscotch was created by Hopscotch
Technologies to help novice or young programmers create straightforward projects.
Users can drag and drop blocks to create scripts that can be played when activated thanks
to the straightforward user interface. The language is used on an iPad or iPhone that
supports Hopscotch. [252]
The inspiration came from Scratch, a popular programming tool in which users drag
pieces to build scripts. Hopscotch's creators sought to take a step back from Scratch so
that the principles would be a little bit simpler to understand and apply. Hopscotch and
AgentSheets have the same ideas about events and rules that combine conditions and
actions. Hopscotch provides fundamental programming building blocks like variables,
sprites (also known as objects), and text objects, as well as more sophisticated
capabilities like self-variables, math functions, and more.
English, Simplified Chinese, and Spanish are supported.
214
252. Hope
Hope is a compact functional programming language created at the University of
Edinburgh in the 1970s. It was created concurrently with ML, which was also created
at the University, and precedes Miranda and Haskell. NPL, a straightforward functional
language created by Rod Burstall and John Darlington for their work on program
transformation, served as the foundation for Hope. The first languages to provide callby-pattern evaluation and algebraic data types are NPL and Hope.
The Scottish agricultural reformer Sir Thomas Hope (c. 1681–1771), for whom Hope
Park Square in Edinburgh—where the Department of Artificial Intelligence was located
at the time Hope was being developed—was also named—was the inspiration for the
name Hope. [253]
In Hope, a factorial program is:
num -> num;
fact 0 = 1;
fact n = n*fact(n-1);
dec fact;
The program's meaning is unaffected by the clauses' order because Hope's pattern
matching always prefers more specific patterns over less specific ones. Hope requires
explicit type declarations; using a type-inference method is not an option.
Tuples and lists are two of the built-in data structures that Hope offers.
215
253. Hume
Since the year 2000, the University of St. Andrews and Heriot-Watt Universities
in Scotland have been developing Hume, a functionally oriented programming
language. Figure 113. The name of the language is both a tribute to the 18th-century
philosopher David Hume and an abbreviation for "Higher-order Unified MetaEnvironment." It aims to create a design for extremely abstract real-time embedded
systems that will yet enable accurate extraction of time and space execution costs. This
enables programmers to ensure that the execution of programs has finite time and space
requirements. [254]
Figure 113 : Hume Statue in Edinburgh
216
254. HyperTalk
Dan Winkler and Bill Atkinson developed the now-defunct high-level, procedural
programming language known as HyperTalk in 1987 for use with Apple Computer's
HyperCard hypermedia software. Programmers in HyperTalk were typically referred to
as "writers" and the act of writing programs was referred to as "scripting" because
beginner programmers were the primary audience for the language. The logical structure
of HyperTalk scripts was comparable to that of the Pascal computer language, and they
had an English-like writing style. [255]
255. Hy
By converting s-expressions into Python's abstract syntax tree, the Lisp
dialect Hy is intended to communicate with Python (AST). Figure 114.
Paul Tagliamonte announced Hy at the 2013 Python Conference (PyCon).
Hy can be used to create domain-specific languages since Lisp permits
metaprogramming, which allows for operations on code as data. [256]
The language documentation states :
=> Hello! (print "Hy!")
=> (salutationsnm "YourName");
Hy YourName! (defn salutationsnm [name] (print (+ "Hy" name "!"))))
Figure 114 : Hy logo - Cuddles the cuttlefish
217
256. Io
Act1, NewtonScript, Lua, Self, Smalltalk, and Lisp served as inspiration for the
development of the entirely object-oriented programming language known as Io.
Similar to Self and NewtonScript, Io provides a prototype-based object paradigm that
eliminates the distinction between instance and class. Figure 115.
Like Smalltalk, dynamic typing is employed, and everything is an object. Like Lisp,
programs are merely data trees. Io uses actors to support concurrency. [257]
"Hello, world!" says the omnipresent Hello world program. println
Cloned items can be used to make new ones. Differential inheritance refers to the
process in which, in Io particularly, a new, empty object is formed and only the
distinctions between it and its parent are stored within the new object. Here's an
illustration of this behavior:
A := Object clone
// creates a new, empty object named "A"
An easy factorial function in Io that is not recursive:
factorial := method(n,
if(n == 0, return 1)
res := 1
Range 1 to(n) foreach(i, res = res * i) )
Figure 115 : Io logo
The function inherently returns the result because assigning res * I to res was the last
operation, eliminating the need for an explicit return expression. The aforementioned
shows how to use ranges without using a for() loop, which would be quicker.
218
257. Icon
Icon is a highly high-level programming language that uses the idea of "goaldirected execution," in which the program returns either a "success" with valid values
or a "failure" with no valid data to return. Figure 116.
Further processing is guided by the success or failure of a specific block of code, as
opposed to conventional languages that would normally employ programmer-written
boolean logic to accomplish the same goals. Common tasks can be accomplished with
less explicit code since Icon frequently contains implicit versions of the logic for
fundamental control structures. [258]
Figure 116 : Icon logo
One of the fundamental ideas of SNOBOL was that rather than employing magic
numbers or other tricks, its functions simply returned "success" or "failure" as primitives
of the language. In most language runtime systems, there is a routine called position that
returns the location of a substring within another string. For instance, in JavaScript,
position = "Hello, World".indexOf("World") would return 7, indicating that the word
"World" is located within the string "Hello, World!". The function will "fail" if the
request is made for the position = "Hello, World".indexOf("Goodbye") since the search
term is not included in the string. This will be communicated in JavaScript, as it is in
the majority of languages, by returning a magic number, in this case -1.
A failure of this kind in SNOBOL returns the special value fail. The syntax of SNOBOL
operates directly on an operation's success or failure, skipping to designated areas of the
code without the need for a separate test. As an illustration, the code below prints "Hello,
world!" five times:
* SNOBOL program to print Hello World
I=1
LOOP OUTPUT = "Hello, world!"
I=I+1
LE(I, 5) : S(LOOP)
END
The index variable I is passed to the less-than-or-equal operator, LE, to start the loop. If
it succeeds, which indicates that I is less than 5, it branches to the specified label LOOP
and continues.
219
258. IBM Basic assembly language
The name for the low-level programming language used on the IBM System/360
and its descendant mainframes is Basic Assembly Language (BAL). The term "Basic
Assembly Language" originally exclusively referred to a very limited dialect intended
to operate under IBM Basic Programming Support (BPS/360) control on computers
with just 8 KB of main memory and just a card reader, a card punch, and a printer for
input/output. However, all assembly-language dialects on the System/360 and its
offspring quickly came to be known by their complete names and the initialism "BAL."
In 1964, BAL for BPS/360 was released alongside the System/360.
Its syntax was adopted and enhanced by assemblers running various System/360
operating systems like System/370, System/390, and System z, as well as Sperry
Corporation's UNIVAC Series 90 mainframes and Fujitsu's contemporary BS2000
mainframes. The IBM High-Level Assembler is the most recent derived language
(HLASM). These assemblers are sometimes known as ALC (for Assembly Language
Coding) or simply "assembler" by programmers who use them.
The "Branch And Link" instruction's acronym is BAL. [259]
259. IBM HAScript
Host Access Script, also known as HAScript, is a macro language created by IBM
featuring an XML syntax enabling programmatic interaction with terminal-based
applications. State machine theory serves as the foundation of HAScript.
In the latter half of the 1990s, IBM's Host On-Demand included the first commercial
deployment.
WebSphere Host On-Demand (HOD), Personal Communications, and WebSphere Host
Access Transformation Services are among the IBM software applications that employ
HAScript (HATS). The HAScript API for IBM Mainframe access enables host
emulation, which allows for the retrieval and reformatting of data from the host screen
within a website or other software application.
Due to HAScript's high system resource requirements, general process overhead, and
Java virtual machine resources, it has only received a limited degree of adoption. Due
to the fact that the communication language is not standardized globally, HAScript has
only been mildly implemented by other software businesses up to this point. [260]
260. IBM Informix-4GL
Informix created the 4GL programming language known as Informix-4GL in the
middle of the 1980s. At the time of its initial release in 1986, supported platforms were
Altos 2086, AT&T 3B2, AT&T 3B5, AT&T 3B20, and AT&T Unix PC. DEC Ultrix,
which ran on Microvax II, VAX-11/750, VAX-11/785, and VAX 8600, and Microsoft
Xenix, which ran on IBM PC AT, were also supported. [261]
220
261. IBM RPG
Introduced in 1959 for the IBM 1401, RPG is a high-level programming language
for commercial applications. It is best recognized for serving as the main programming
language for the IBM I operating system and its midrange computer product line.
Numerous distinguishing ideas, including the program cycle and the column-oriented
syntax, have historically been present in RPG. Figure 117.
The most recent version, RPG IV, has free-form syntax among other modernization
improvements. [262]
Figure 117 : IBM RPG logo
262. IDL
The programming language IDL, or Interactive Data Language, is used for data
analysis. It is well-liked in specific scientific fields, including astronomy, atmospheric
physics, and medical imaging. Although the two languages have since diverged in
specifics, they have a common syntax and shared the same codebase. Additionally, there
are implementations that are free or cost nothing, such as GNU Data Language (GDL)
and Fawlty Language (FL). [263]
263. Idris
Idris is a fully functional programming language with features including a totality
checker, dependent types, and optional lazy evaluation. Idris is a general-purpose
programming language that is related to Haskell and may be used as a proof helper.[264]
Idris' syntax bears a striking resemblance to Haskell's. In Idris, a hello world program
may resemble this:
module IO () main = putStrLn "Hello, World!" is the main main.
The main function's type signature in this program and its Haskell counterpart are
identical, with the exception of the single colon in the type signature and the absence of
the word "where" in the module declaration.
221
264. Inform
Graham Nelson first developed Inform, a computer language and interactive
fiction design system, in 1993. Programs for the Z-code or Glulx virtual machines can
be created by Inform. Figure 118. From 1993 through 1996, versions 1 through 5 were
made available. Nelson completely reworked Inform to create version 6 in the year
1996. (or Inform 6). Version 6 developed into a comparatively stable language for
creating interactive fiction over the course of the following ten years. In 2006, Nelson
introduced Inform 7, also known as Natural Inform, a brand-new language built on
natural language principles and a new set of tools centered around the metaphor of
publishing a book.[265]
Figure 118 : Inform logo
265. ISLISP
The International Organization for Standardization (ISO) and International
Electrotechnical Commission (IEC) joint working group ISO/IEC JTC 1/SC 22/WG 16
(often referred to as simply SC22/WG16 or WG16) have standardized the programming
language ISLISP, which is also capitalized as ISLisp. This working group's main
product was an international standard that was released by ISO. As ISO/IEC
13816:2007, the standard was modified and released in 2007. Although the ISLISP
language standard was officially published through ISO, there are variants that are
available that are thought to be in the public domain. [266]
222
266. J
Kenneth E. Iverson and Roger Hui created the array programming language J in
the early 1990s, heavily influenced by APL (also by Iverson).
J only uses the basic ASCII character set, resorting to the usage of the dot and colon as
inflections to make short words resembling digraphs in order to avoid repeating the APL
special-character problem. The dot or colon extends the meaning of the accessible basic
letters, making the majority of these primary (or primitive) J words useful as
mathematical symbols. Additionally, J treats a number of characters that in other
languages frequently need to be paired (like [] "" " or >) as standalone words or, when
inflected, as the single-character roots of multi-character words. Figure 119.
J is a relatively succinct array programming language that works well for statistical and
mathematical programming, particularly when working with matrices. Extreme
programming and network performance analysis have both used it. [267]
J permits style and function composition without points. As a result, some programmers
find its programs to be difficult to read and sometimes quite brief.
"Hello, World!" is the name of the "Hello, World!" program in J.
The way that hello world is implemented here mirrors how J is often used: programs are
typed into a J interpreter session, and the output of expressions is displayed. J scripts
can also be made to run independently of other programs. On a Unix system, this may
appear as follows:
#!/bin/jc
echo "Hello, world!"
“Exit”
Figure 119 : J logo
223
(Take note that current j implementations likely install this to /usr/bin or another
directory and install either jconsole or (since jconsole is needed by java) ijconsole
(perhaps the Application directory on OSX). Because of this, there is a system
dependence that the user must resolve.)
Historically, APL utilized the symbol / to denote the fold, making +/1 2 3 equal to
1+2+3. In the meanwhile, the mathematical symbol for division () was used.
J employs % to visually approximate or serve as a reminder for division because ASCII
does not include a division sign per se. (This demonstrates some of the mnemonic
qualities of J's tokens as well as some of the problems brought on by the use of ASCII.)
267. J# (J sharp)
Programmers of Java and Visual J++ used Visual J#, a deprecated
implementation of the J# programming language, as a bridge language to allow them to
leverage their existing skills and programs with the.NET Framework. It was first
released in 2002, and support for the last iteration of the product lasted until October
2017. [268]
268. J++ (J plus plus)
Microsoft's abandoned Java implementation is called Visual J++.
The language's grammar rules, syntax, and keywords were identical to those of Java. It
was first released in 1996 and was later discontinued in January 2004. J# and C# largely
took its place. Sun Microsystems, the company that created Java, filed a lawsuit against
the implementation, MSJVM, since it failed Sun's compliance testing. The MSJVM's
support for this was terminated by Microsoft on December 31, 2007. (later Oracle
bought Sun, and with it Java and its trademarks).
Although it was no longer included with Windows or its web browsers, Microsoft
resumed selling Java in 2021.
This time, it was their version of Oracle's OpenJDK, which Microsoft plans to support
for at least six years for LTS versions, or until September 2027 for Java 17. [269]
224
269. JADE
The New Zealand-based Jade Software Corporation's JADE is a proprietary
object-oriented software development and deployment platform that was originally
made available in 1996. It consists of the object database management system,
integrated application server, integrated development environment, and JADE
programming language. Figure 120.
The.NET Framework, Java, C/C++, and Web services are just a few of the additional
languages for which it offers APIs. This end-to-end development environment was
created to enable systems to be coded in a single language from the database server
down to the clients. [270]
Although the JADE platform can be used for free with a limited license for
development, there are per-process costs associated with using it.
The JADE "Hello World!" code looks like this:
helloWorld();
begin
app.msgBox("Hello, World!", "Hello, World!", MsgBox_OK_Only +
MsgBox_Information_Icon);
end;
Or
helloWorld();
begin
write "Hello, World!";
end;
Figure 120 : JADE logo
225
270. JAL
A programming language and compiler called JAL (Just Another Language) is
similar to Pascal and creates executable code for PIC microcontrollers. It is a free-format
language that may be used with a compiler on Linux, MS-Windows, and MS-DOS
(OSX support). It can be customized, expanded, and even integrated with PIC assembly
language thanks to libraries.
In 2003, Wouter van Ooijen distributed JAL as free software under the terms of the
GNU General Public License. A new version, JALV2, was created in 2006 as the result
of Stef Mientki's initiative. It was programmed by Kyle York and beta tested by a global
user group. [271]
271. Janus (concurrent constraint programming language)
K. Kahn and Vijay A. Saraswat partially described the computer programming
language Janus in the 1990 paper "Actors as a specific example of concurrent constraint
(logic) programming" It is a backtracking-free concurrent constraint language. [272]
272. Janus (time-reversible computing programming language)
A time-reversible programming language called Janus was created in 1982 at
Caltech. Tetsuo Yokoyama and Robert Glück formally described the language's
operational semantics in 2007, along with a program inverter and an invertible selfinterpreter. The TOPPS research team at DIKU provides a free Janus inverter and
interpreter. 2009 saw the addition of yet another Janus interpreter to Prolog. The
wording used in the 2007 paper is summarized in the text below. [273]
226
273. Java
In order to have as few implementation dependencies as feasible, Java is a highlevel, class-based, object-oriented programming language. In other words, compiled
Java code can run on all platforms that support Java without the need to recompile. It is
a general-purpose programming language designed to enable programmers to write
once, run anywhere (WORA). Regardless of the underlying computer architecture, Java
applications are often compiled to bytecode that can run on any Java virtual machine
(JVM). Although Java has fewer low-level features than either C or C++, it has syntax
that is similar to each of them. Unlike most traditional compiled languages, the Java
runtime has dynamic capabilities (such reflection and runtime code change). Figure 121.
According to GitHub, with 9 million developers as of 2019, Java was one of the most
widely used programming languages, especially for client-server web
applications.[274]
James Gosling created Java at Sun Microsystems in the beginning. It became a
fundamental part of Sun Microsystems' Java platform in May 1995.
Sun first made available under proprietary licenses the original and reference
implementation Java compilers, virtual machines, and class libraries. Sun had relicensed
the majority of its Java technologies under the GPL-2.0-only license as of May 2007 in
order to comply with the requirements of the Java Community Process.
Sun had relicensed the majority of its Java technologies under the GPL-2.0-only license
as of May 2007 in order to comply with the requirements of the Java Community
Process. Although Oracle provides its own HotSpot Java Virtual Machine, the
OpenJDK JVM, which is a free open-source program and is the default JVM for
practically all Linux distributions, is the official reference implementation.
Java 19 is the most recent version as of September 2022, whereas Java 17, 11, and 8 are
still in long-term support (LTS).
Figure 121 : Java logo
227
274. JavaFX Script
A member of the JavaFX family of technologies on the Java Platform, JavaFX
Script was created by Sun Microsystems. Figure 121.
In order to compete with Adobe Flex and Microsoft Silverlight, JavaFX focused on the
Rich Internet Application space, specializing in the quick creation of aesthetically
pleasing apps for desktop and mobile platforms. Integrated development environments
like NetBeans, Eclipse, and IntelliJ IDEA are compatible with JavaFX Script. JavaFX
is made available via the Sun-sponsored OpenJFX initiative under the terms of the GNU
General Public License. [275]
The declarative syntax used by JavaFX Script to build user interfaces contrasts strongly
with the verbose chain of method calls used to directly build an analogous interface in
Swing. Figure 124.
Figure 122 : JavaFX Script logo
228
Here is a straightforward JavaFX Script Hello World program:
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.text.Text;
import javafx.scene.text.Font;
Stage {
title: "Hello World"
width: 250
height: 80
scene: Scene {
content: Text {
font : Font {
size : 24 }
x: 10, y: 30
content: "Hello World" } } }
It shows the following window/frame (Figure 123):
Figure 123 : The output of the program
This program can also be written in this way:
import javafx.ext.swing.*;
var myFrame:SwingFrame = new SwingFrame();
var myLabel:Label = new Label();
myLabel.text = "Hello World!";
myFrame.width = 200;
myFrame.height = 50;
myFrame.visible = true;
myFrame.content = myLabel;
229
275. JavaScript
Along with HTML and CSS, the computer language known as JavaScript, or JS,
is one of the foundational elements of the World Wide Web. 98% of websites will utilize
JavaScript on the client side by the year 2022 to control webpage functionality,
frequently integrating third-party libraries. A dedicated JavaScript engine is available
in every major web browser and is used to run the code on users' devices. [276]
JavaScript is an ECMAScript-compliant high-level, frequently just-in-time compiled
language. It features first-class functions, prototype-based object orientation, and
dynamic typing. It supports event-driven, functional, and imperative programming
paradigms and is multi-paradigm. It offers application programming interfaces (APIs)
for using the Document Object Model, regular expressions, dates, and standard data
structures (DOM). There are no input/output (I/O) features like networking, storage, or
graphics capabilities in the ECMAScript standard. In reality, JavaScript I/O APIs are
offered by the web browser or another runtime system.
Originally only used in web browsers, JavaScript engines are now essential parts of
some servers and a wide range of applications. Node.js is the most widely used runtime
system for this application.
Even while Java and JavaScript share the same name, syntax, and standard libraries, the
two programming languages are separate and have very different designs.
230
Figure 124 : Screenshot of JavaScript source code
231
276. Jess
Ernest Friedman-Hill of Sandia National Labs created Jess, a rule engine for the
Java platform. The CLIPS programming language is a superset of this one. The original
draft was completed in 1995. The language, which is usually referred to as an expert
system shell, enables rule-based programming for the automation of expert systems.
Intelligent agent systems, which rely on a related capacity, have also evolved in recent
years.
In contrast to a procedural paradigm, where a single program contains a loop that is
executed just once, Jess uses a declarative paradigm where a technique known as pattern
matching is continuously employed to apply a set of rules to a set of facts.
Rules have the ability to alter a fact collection or run any Java code. To carry out rules,
it employs the Rete algorithm. [277]
277. JCL
On IBM mainframe operating systems, scripting languages such as "Job Control
Language" (JCL) are used to give instructions to the system on how to launch a
subsystem or conduct batch jobs.
More specifically, JCL is used to specify which programs to run, which files or devices
to use for input or output, and even even to specify when to skip a phase. In addition to
accounting data for tracking the resources utilized by a job and which machine the job
should run on, JCL parameters can also offer this information.
IBM Job Control is available in two different languages:
• one for the lineage of operating systems that starts with DOS/360 and most
recently includes z/VSE;
• a second for the lineage from OS/360 to z/OS, the latter of which now supports
Job Entry Control Language additions (JECL).
They differ greatly, although they do share a few fundamental syntax rules and ideas.
The CP and CMS components each have their own command languages; the VM
operating system does not have JCL as such. [278]
278. JEAN
In the late 1960s and early 1970s, JEAN, a dialect of the JOSS programming
language, was created for and used on ICT 1900 series computers. It was implemented
using the MINIMOP operating system. The University of Southampton employed
it.[279]
JEAN stood for "JOSS Extended and Adapted for Nineteen-hundred," the source of the
acronym. From a Teletype terminal, it was run.
232
279. Join Java
Join Java is a programming language that extends the basic Java programming
language with the join semantics of the join-calculus. It is based on the join-pattern. It
was created by Dr. Von Itzstein at the University of South Australia's Reconfigurable
Computing Lab. [280]
280. JOSS
One of the first interactive, time-sharing programming languages was JOSS
(short for JOHNNIAC Open Shop System)[a]. The use of line numbers as editing
instructions and targets for branches, statements based on boolean decisions, and an
integrated source-code editor that can execute instructions in direct or immediate
mode—features they called conversational user interfaces—are just a few of the
innovations it pioneered.[281] In contrast to most languages, which position the
condition in front in prefix notation, "if this is true, do this," JOSS employs a suffix
notation to denote conditional evaluation, "do this if this is true."
Any statement can be conditionally evaluated in this way, just like BASIC, but unlike
FORTRAN or FOCAL. For instance, one can combine the if and a Type to print a string
only if a condition is satisfied: "Hello, World!" if X=5.
Six infix comparisons, including or, and, and not, and the boolean operators =,,,, >,,
were supported by JOSS. Similar techniques were used to manage loops, such as the
For command and the start(step)end format for defining the loop bounds and step value.
For instance, the format is 1(2)10 to step from 1 to 10 by 2. Similar to If, For can be
used with any other statement: For i=1(2)10, enter "Hello, People !" Figure 125.
Keep in mind that the for statement only applies to one phrase; if you want to execute
many statements again, you would divide them into a different portion and call it using
do:
1.3 Do part 5 for i=1(1)100.
5.1 Type "Hello, World!".
5.2 Type "This is JOSS.".
The for loop's inputs can be constants, variables, or other expressions, much like in
BASIC. When the program was run, limits and loops could be set since these types of
ranges could be applied to any line of code.
233
Take the following software, for instance:
1.1 Type X.
If this were to be called normally in a manner akin to BASIC's RUN:
Take part 1.
It would result in: 0.
However, this behavior can be changed by using a loop construct in the invocation:
X = 1; execute part 1 (1)
Which would result in:
1
2
3
4
5
This makes it possible to create formulas in programs without having to include them
in loops. The user can instruct the software to loop if they so choose at program startup.
234
Figure 125 : 1970 JOSS session at RAND, where the user does a number of
straightforward direct mode calculations. Keep in mind the distinction between the
interpunct for multiplication and the period at the end of the statements
235
281. Joule
Joule is a programming language for massively parallel dataflow that is
capability-secure and intended for creating distributed applications. The concurrent
nature of it renders the order of statements within a block irrelevant to the block's
functionality. When practical, statements are carried out depending on their suggestions.
Joule operates entirely through the sending of messages. No control flow exists. Instead,
a dataflow programming language is created where the programmer describes the data
flow. [282]. At Agorics in Palo Alto, California, Joule development began in 1994. It is
regarded as the E programming language's forerunner.
282. JOVIAL
ALGOL 58 is the foundation of JOVIAL, a high-level programming language
built specifically for creating embedded systems (specialized computer systems
designed to perform one or a few dedicated functions, usually embedded as part of a
larger, more complete device, including mechanical parts). Through the 1960s and
1970s, it was a crucial programming language for systems. [283]
283. Joy
Manfred von Thun of La Trobe University in Melbourne, Australia, created the
computer science programming language Joy, which is entirely functional. Joy is not
based on lambda calculus, but on the composition of functions. It turned out to have a
lot of Forth-like characteristics, not by design but rather by independent evolution and
convergence. Additionally, John Backus' FP's function-level programming approach
served as an inspiration. [284]
With the exception of some exotic languages like Unlambda and function-level
programming languages, Joy is uncommon among functional programming languages
in that it lacks the lambda operator and thus formal parameters. Here is how the square
function might be defined in an imperative programming language (C) to demonstrate
this with a typical example:
return x * x from int square (int x);
When the function is invoked, the input to be squared replaces the parameter named x.
The identical function might be defined in a functional language (Scheme) as follows:
Square (lambda (x) (* x x)) definition
Even though this is very different, the option x is still used.
236
284. JScript
In versions of Microsoft's Internet Explorer 11 and before, JScript, a legacy
dialect of the ECMAScript standard, is used. Figure 126.
As an Active Scripting engine, JScript is used. As a result, it can be "plugged in" to OLE
Automation programs like Internet Explorer, Active Server Pages, and Windows Script
Host that support Active Scripting. Additionally, it means that these programs can
employ a variety of Active Scripting dialects, such as JScript, VBScript, or PerlScript.
The Internet Explorer 3.0 browser, released in August 1996, was the first to implement
JScript. JScript 9.0, which is a part of Internet Explorer 9, is the most recent version.
The fourth edition of the ECMAScript standard was abandoned, and JScript 10.0,
commonly referred to as JScript.NET, adds a number of additional capabilities to the
standard. Static type annotations are optional, although it must be compiled for either
version 2 or version 4 of the.NET Framework. Microsoft included a setting to disable
JScript after it was condemned for being unsecure and having numerous security flaws
"exploited by nation-state actors." [285]
Figure 126 : JScript logo
237
285. JScript .NET
Microsoft created the.NET programming language JScript.NET. [286]
The following provide excellent illustrations of linguistic distinctions between
JScript.NET and other.NET languages, along with comparisons.
Differences from C#
• JScript.NET does not require a main() function that the operating system must
call directly when executing a JScript.NET application; as a result, JScript.NET
program flow can be based on global code. JScript.NET can be very simple to
learn due to its extremely lax type checking system, as the convention of explicit
type declaration is not at all required.
• Since JScript.NET contains some functions from prior JScript versions, it does
not need explicit references to the.NET Framework Base Class Library (e.g.
functions for finding the tangent of an angle for a right triangle).
• Because JScript.NET and C syntax are so closely related, C#, Java, and C++
developers will find it very simple to learn.
• While JScript.NET can be used to develop Windows Forms apps, there will be
challenges because JScript.NET can only construct delegates for consumption.
Custom events are therefore challenging to replicate in JScript.NET.
variations from C++
• A main() method is not necessary for JScript.NET.
• Variable types do not need to be explicitly declared in JScript.NET. (In C++, this
can be contrasted to the use of templates and generics, which is loosly mimicked
by template specialization, etc.)
• JScript.NET does not necessitate explicit type casts when using variables.
Implicit casting is possible in code that is intended to fetch strings of characters
but is only used for integer values; doing the opposite at build time is possible but
may result in precision or data loss.
Using the following code :
import System;
Console.WriteLine("Hello, what's your name?");
Console.WriteLine("Type your name: "); var _name = Console.ReadLine();
Console.WriteLine("Hello, " + _name);
238
286. Julia
A dynamic, high-level programming language is Julia. Its features make it ideal
for computational research and numerical analysis. [287]
The official Julia distribution includes an interactive command-line read-eval-print loop
(REPL), which can be used to quickly experiment and test code. Figure 127.
It has a searchable history, tab completion, dedicated help, and shell modes. The
following section illustrates a sample session in which println automatically
concatenates strings:
julia> p(x) = 2x^2 + 1; f(x, y) = 1 + 2p(x)y
julia> println("Hello world!", " I'm on cloud ", f(0, 4), " as Julia supports recognizable
syntax!")
Hello world! I'm on cloud 9 as Julia supports recognizable syntax!
World, welcome! Julia now supports familiar syntax, and I'm over the moon!
By pressing ; or? after the prompt (which comes before each command), the REPL
allows users to access the system shell and help mode, respectively. The history of
commands is likewise retained, even in between sessions.
Figure 127 : Julia logo
239
287. Jython
Jython is a Java platform-compatible version of the Python programming
language. Up until 1999, the implementation was known as JPython. [288]
Any Java class can be imported and used by Python scripts. Jython programs employ
Java classes rather than Python modules, with the exception of a few standard modules.
With the exception of a few C-based modules, Jython has practically all of the modules
found in the standard Python programming language package. Swing, AWT, or SWT,
for instance, can all be used to create user interfaces in Jython. Jython may generate
Python source code statically or on-demand into Java bytecode (an intermediate
language). Figure 128.
Figure 128 : Jython logo
288. K
Arthur Whitney created the proprietary array processing programming language
K, which Kx Systems thereafter marketed. The language is the basis for various related
financial tools as well as the in-memory, column-based database known as kdb+. The
language, which was first created in 1993, is a hybrid of APL and Scheme. The
language's speed, ease of use with arrays, and expressive syntax are highlighted by its
proponents. [289]
Every sentence in the interpreted language K is assessed, and the results are shown right
away. Strings and other literal expressions evaluate to themselves. The Hello world
software is therefore unimportant: "Hello world!"
240
289. Kaleidoscope
The constraint programming language Kaleidoscope integrates constraints into
an imperative object-oriented language. To make claims about relational invariants, it
adds the keywords always, once, and assert..during (formerly while..assert). Constraint
constructors, which are not methods but rather part of objects, are used to enforce the
meanings of user-defined datatypes.
Three different iterations of Kaleidoscope demonstrate the transition from a declarative
to a more and more imperative writing style. These are the differences between
them.[290]
290. Karel
Richard E. Pattis developed the beginner-friendly programming language Karel
for his book Karel The Robot: A Gentle Introduction to the Art of Programming. In his
lectures at Stanford University in California, Pattis used the phrase. The language bears
Karel apek's name, a Czech playwright who popularized the term "robot" in his work
R.U.R.[291], Figure129.
The following is a simple example of Karel syntax:
BEGINNING-OF-PROGRAM
DEFINE turnRight AS
BEGIN
turnLeft;
turnLeft;
turnLeft;
END
BEGINNING-OF-EXECUTION
ITERATE 3 TIMES
BEGIN
turnRight;
move
END
turnoff
END-OF-EXECUTION
END-OF-PROGRAM
241
Figure 129 : Karel the Robot
291. KEE
In May 2019, IntelliCorp (IC) sold Tricentis its assets, including LiveCompare,
LiveModel, and LiveInterface. [292]
Knowledge Engineering Environment (KEE), a pioneering expert system environment
for the development and deployment of knowledge systems on Lisp machines, was
marketed by IC, a company founded in 1980. It featured a number of cutting-edge
features like truth maintenance. KEE applied the Stanford-developed Mycin backwardchaining technique. IC developed one of the first object-oriented solutions for
commercial programming development environments while porting KEE features to the
PC (LiveModel).
242
292. Kixtart
A closed-source free-format scripting language for Windows is called KiXtart.
The official website describes it as a login script processor and an improved batch
scripting language. The word "kick start" is a portmanteau in its name. [293]
293. Klerer-May System
The Klerer-May System is a programming language that was created in the
middle of the 1960s and is focused on numerical scientific programming. Its twodimensional syntax, which is based on conventional mathematical notation, is perhaps
its most notable feature.
An illustration of a statement in the computer language Klerer-May
The Klerer-May system employed a Friden Flexowriter modified to support half-line
motions for subscripts and superscripts for input and output. Eight special line-drawing
characters (resembling ) were used to create multi-line brackets and symbols for
summation, products, roots, and multi-line division or fractions. The character set also
included digits, upper-case letters, subsets of 14 lower-case Latin letters and 18 Greek
letters, arithmetic operators (+ / |), and punctuation (., ().
The reference documentation for the system was only two pages long and was designed
to be forgiving of input errors.
Melvin Klerer and Jack May created the system for the Office of Naval Research at
Columbia University's Hudson Laboratories in Dobbs Ferry, New York, using GE-200
series computers. [294]
294. KIF (Knowledge Interchange Format)
A computer language called Knowledge Interchange Format (KIF) was created
to make it possible for systems to share and reuse data from knowledge-based systems.
KIF is related to frame languages like KL-One and LOOM, but unlike those languages,
it is meant more for the exchange of knowledge between systems than for the expression
or use of knowledge.
KIF's creators compared it to PostScript. PostScript was created as an interchange
format enabling systems and devices to transfer documents rather than as a language to
store and modify documents. Similar to how KIF is intended to promote knowledge
exchange between various systems that employ various languages, formalisms,
platforms, etc. Declarative semantics apply to KIF. In contrast to processes or
procedures, it is intended to describe facts about the world. It is possible to categorize
knowledge into objects, functions, relations, and rules.
Being a formal language, it supports reasoners that may demonstrate the consistency of
a group of KIF statements and can express any arbitrary statement in first order logic.
Additionally, KIF encourages non-monotonic thinking. KIF was developed by Michael
Genesereth, Richard Fikes, and other DARPA knowledge sharing effort
participants.[295]
243
295. Kojo
For computer programming and education, Kojo is a programming language and
integrated development environment (IDE). Figure 130. It contains a wide range of
features that allow for game-playing, experimentation, creation, and learning in the
fields of computer programming, cognitive abilities, (interactive) math, graphics, art,
music, science, animation, and electronics. Kojo borrows concepts from Processing and
Logo, two computer programming languages. [296]
Figure 130 : A screenshot of Kojo
244
296. Kotlin
A general-purpose, statically typed, cross-platform programming language with
type inference is called Kotlin. The JVM version of Kotlin's standard library relies on
the Java Class Library and is meant to work seamlessly with Java, while type inference
enables more concise syntax. Figure 131. Kotlin primarily targets the JVM, although it
may also be compiled to JavaScript or native code using LLVM (for example, for frontend web applications using React) (e.g., for native iOS apps sharing business logic with
Android apps). JetBrains is responsible for language development costs, and the Kotlin
Foundation is in charge of trademark protection. [297]
Figure 131 : Kotlin logo
297. KRC
David Turner created the lazy functional language KRC (Kent Recursive
Calculator) based on SASL between November 1979 and October 1981. It has pattern
matching, guards, and ZF expressions[298] (now more usually called list
comprehensions). David Turner originally created the KRC implementation in BCPL
running on EMAS, and Simon J. Croft later created one in C running under Unix. From
1982 to 1985, KRC served as the primary language for teaching functional
programming at the University of Kent at Canterbury (UK).
298. KRL
Daniel G. Bobrow and Terry Winograd created the knowledge representation
language (KRL) while working at Xerox PARC and Stanford University, respectively.
It is a language with frames. [299]
299. KRL (KUKA Robot Language)
KRL, or the KUKA Robot Language, is a proprietary programming language
used to operate KUKA robots. It is comparable to Pascal. [300]
245
300. KRYPTON
KL-ONE (pronounced "kay ell won") is a frame language and knowledge
representation system in the vein of semantic networks and frames. The system is an
attempt to clearly describe conceptual knowledge as a hierarchical inheritance network
and to eliminate semantic indistinctness in semantic network representations. [301]
301. KornShell (ksh)
David Korn created the KornShell (ksh) Unix shell at Bell Labs in the early
1980s, and on July 14, 1983, he presented it at USENIX. The Bourne shell source code
served as the basis for the original development. The code for the Emacs and vi-style
line editing modes, respectively, were written by Bell Labs developers Mike Veach and
Pat Sullivan, who were also early contributors. As a result of user demands from Bell
Labs, KornShell incorporates numerous C shell features while also being backwardscompatible with the Bourne shell. [302]
302. Kodu
A programming integrated development environment (IDE) created by
Microsoft's FUSE Labs is called Kodu Game Lab; it was formerly known as Boku. It is
compatible with the Xbox 360 and the following versions of Microsoft Windows: XP,
Vista, 7, 8, 10, and 11. On June 30, 2009, it was made available on the Xbox Live
Marketplace. The general public can obtain a Windows version from Microsoft's FUSE
website. [303]
246
303. Kv (Kivy)
Kivy is a free and open source Python framework for creating multitouch
applications for mobile devices and other technologies (NUI). Figure 132.
It is compatible with Android, iOS, Linux, macOS, and Windows and is distributed
under the terms of the MIT License.[304]. The user interface and interactions in the
Kivy framework are described in the Kv language. Similar to other user interface
markup languages, a complete UI may be readily created and interactions attached. For
instance, one could first develop the underlying widget in Python and then build the UI
in Kv to create a loading dialog that has a file browser and a Cancel / Load button.
within main.py
(FloatLayout) class LoadDialog:
pass def load(self, filename)
pass def cancel(self)
Figure 132 : Kv logo
304. LabVIEW
National Instruments' Laboratory Virtual Instrument Engineering Workbench
(LabVIEW) 3 is a platform for system design and a development environment for a
visual programming language. [305], Figure 133.
Figure 133 : LabVIEW logo
247
305. Ladder
Initially, ladder logic was a means for writing down how relay racks were
designed and built for use in manufacturing and process control. On the ladder diagram,
each device in the relay rack would be represented by a symbol, and connections
between those devices would be displayed. The ladder diagram would also include
additional elements that are not part of the relay rack, such as pumps, heaters, and other
devices. [306]
306. LANSA
For creating desktop, web, and mobile software applications that may be installed
on Cloud, Windows, Linux, and IBM I server platforms, LANSA is an integrated
development environment (IDE).
The 'RDML / RDMLX' language, which is categorized as a 4GL, is the primary
component of the LANSA environment (4th generation language). [307]
The syntax of IBM CL, or Control Language, is closely followed by RDML. The
OS/400 operating system's "scripting language" equivalent is CL.
RDML has been expanded to become RDMLX in recent years. Additional features,
commands, types, and functions that are used in component building are included in this
updated version of the language. On Microsoft Windows, RDML and ActiveX are
integrated.
307. Lasso
Lasso is a general-purpose, high-level programming language that is used to
create application servers and server administration interfaces for internet applications.
It began as a tool for Filemaker to connect to web datasources and was later added to
Apple Computer's FileMaker 4.0 and Claris Homepage as CDML. Figure 134.
Since then, it has developed into a sophisticated language that is used to create and host
complex internet applications and web pages. [308]
Figure 134 : Lasso logo
248
308. Lava
Lava is an experimental visual object-oriented interpreter-based programming
language that uses structure editors rather than text editors in its accompanying
programming environment (the Lava Programming Environment, or LavaPE). [309]
Text entries are limited to comments, constants, and new identifiers.
LavaPE represents declarations as trees with expandable and collapseable subtrees.
Through pop-up dialogs, the declared Lava entities' properties can be changed.
309. LC-3
Little Computer 3 (LC-3) is an example of a low-level programming language,
an assembly language, that is used in computer education.
It has a straightforward instruction set yet allows for the creation of reasonably
sophisticated assembly programs, making it a potential C compiler target. Despite being
less sophisticated than x86 assembly, the language has several characteristics found in
more complex languages. It is frequently used to teaching computer science and
computer engineering students in the principles of programming and computer
architecture because of its beginner-friendly features. [310]
310. Lean
Programming language and theorem prover Lean are both used. It is founded on
the calculus of inductive constructions. [311], Figure 135.
Figure 135 : Lean logo
249
311. Legoscript
A hardware and software platform called Lego Mindstorms creates
programmable robots based on Lego building blocks. To build the mechanical systems
for each iteration, Lego Technic pieces, a set of modular sensors, and computer-related
Lego bricks are all used. The Lego bricks are used to operate the system. [312]
312. LIL
LIL, short for Little Implementation Language, was a system programming
language used on PDP-11 computers in the early days of Unix history. P. J. Plauger of
Bell Labs is the author.
By essentially introducing structured programming to the PDP-11 assembly language,
LIL tried to bridge the gap between assemblers and machine-independent system
implementation languages (such as the C programming language). LIL had PL360-like
flow control syntax and PL360-like semantics.
Fifth Edition Unix (1974) included the LIL compiler "lc," whereas Sixth Edition Unix
did not (1975). In the identical year, Plauger quit Bell Labs. [313]
313. LilyPond
A computer application and file format for music engraving is called LilyPond.
Producing scores with conventional layout guidelines, evoking the time when scores
were manually etched, is one of LilyPond's main objectives. [314], Figure 136.
Figure 136 : LilyPond music
250
314. Limbo
Applications for the Inferno operating system are written in the distributed
systems programming language known as Limbo. Sean Dorward, Phil Winterbottom,
and Rob Pike created it at Bell Labs. [315]
315. Limnor
A general-purpose, codeless, and visual programming system is called Limnor.
Users should be able to construct computer software without directly coding in a texture
programming language, according to the project's goal. Developers of software can add
to it. The basic tenet of Limnor codeless programming is to extend classes with
"Actions." [316]
316. LINC
A fourth-generation programming language, LINC ("Logic and Information
Network Compiler"), is primarily used on Unisys computer systems.
317. Lingo
John H. Thompson created the verbose object-oriented (OO) scripting language
Lingo for Adobe Director (formerly Macromedia Director). Lingo is used to create
content for Adobe Shockwave, interactive kiosks, CD-ROMs, and desktop application
applications.[318]
318. LINQ
Language Integrated Query (LINQ, pronounced "link") is a component of the
Microsoft.NET Framework that gives.NET languages access to native data querying
capabilities. It was first made available as a significant component of.NET Framework
3.5 in 2007. [319]
319. LIS
Jean Ichbiah, who later created Ada, created the system implementation
programming language LIS (Language d'Implementation de Systèmes).
On the BS2000 Siemens operating system, LIS was utilized in Karlsruhe to develop the
compiler for the Ada-0 subset of Ada. [320]
Later, the Karlsruhe Ada compilation system was rewritten entirely in Ada-0, which
was simple due to the close relationship between LIS and Ada-0.
320. LISA
A language called LISA (Language for Instruction Set Architectures) is used to
describe a processor's instruction set architecture. LISA collects the data necessary to
create the implementation hardware (in VHDL or Verilog) and software tools (compiler,
assembler, instruction set simulator, etc.) of a certain processor. [321]
251
321. Language H
NCR developed Language H, a procedural programming language that is
proprietary and based on COBOL. For use with the National-Elliott 405M and to
generate object code for the National-Elliott 803B, the first compiler was created in
August 1962. [322] The "H" is thought to stand for John C. Harwell.
322. Lisp – ISO/IEC 13816
Programming languages belonging to the Lisp family—historically known as
LISP—have a distinguished, fully parenthesized prefix notation and a long history. The
second-oldest high-level programming language still in widespread use, behind Fortran,
is Lisp, which was first described in 1960. Figure 137.
Since its inception, Lisp has evolved, and there have been numerous dialects over the
years. The most well-known general-purpose Lisp dialects today are Clojure, Scheme,
Racket, and Common Lisp. [323]
Figure 137 : Lisp logo
323. Lite-C
A subset of the C language's syntax combined with some C++ language features
make up the programming language Lite-C, which is used to create multimedia
programs and video games for personal computers. The native implementation of
multimedia and game-related objects, such as audio, photos, videos, GUI components,
2D and 3D models, collision detection, and rigid body physics, sets it apart from C.
Executables written in Lite-C are compiled rather than interpreted. Both 32-bit and 64bit versions of Windows XP or Vista support Lite-C. [324]
252
324. Lithe
David Sandberg of the University of Washington designed Lithe in 1982 as an
experimental programming language that lets users define their own syntax. In a
revolutionary way, Lithe combines the concepts of classes and syntax-directed
translation to produce a strikingly straightforward yet potent language. [325]
325. Little b
Little b is a modeling language with a focus on building modular mathematical
models of biological systems. It is a domain-specific programming language. Aneil
Mallavarapu created and wrote it. The Virtual Cell Program at Harvard Medical School,
led by mathematician Jeremy Gunawardena, is creating Little b. [326]
326. Logo
By Wally Feurzeig, Seymour Papert, and Cynthia Solomon in 1967, they created
the educational programming language known as Logo. Logo is not an abbreviation; it
is a moniker Feurzeig came up with while working at Bolt, Beranek and Newman[327]
that comes from the Greek word logos, which means "word" or "thinking."
327. Logtalk
With a feature set appropriate for large-scale programming, Logtalk is an objectoriented logic programming language that builds on and extends the Prolog language.
Encapsulation, data hiding, concern separation, and improved code reuse are all
supported by it. [328] The Prolog syntax used by Logtalk includes a few additional
operators and directives.
328. LotusScript
Since Lotus Notes version 4.0 and other products from IBM Lotus Software,
LotusScript has been the object-oriented programming language of choice.
In some ways, LotusScript is like Visual Basic. Developers who are familiar with one
can quickly grasp the syntax and organization of the other's code. Their separate
Integrated Development Environments and the integrated product-specific object
classes in each language are where the two diverge most. While LotusScript has a more
comprehensive collection of application-specific classes for Lotus Notes, Lotus Word
Pro, and Lotus 1-2-3, Visual Basic has a broader range of classes for UI manipulation.
There are classes for working with Lotus Notes databases, records (documents) in those
databases, etc. These classes can also be utilized from Visual Basic outside of the Lotus
Notes environment as OLE Automation objects. [329]
253
329. LPMud
LPMud, also known as LP, is a group of MUD server programs. Lars Pensjö
created its initial implementation, the original LPMud game driver, in 1989. (hence the
LP in LPMud). By dividing the MUD infrastructure into a virtual machine (referred to
as the driver) and a development framework written in the LPC programming language,
LPMud was groundbreaking (known as the mudlib). [330]
330. LSE
The programming language LSE, sometimes known as Langage symbolique
d'enseignement (LSE), was created at Supélec and Télémécanique between the late
1960s and the mid-1970s. It is comparable to BASIC, with the exception that the
keywords are in French rather than English. Its origins are in a previous language named
LSD that was created at Supélec. Although alternative expansions, such as Langage de
Sup-Élec or the more cynical Langage Sans Espoir (hopeless language), are also well
known, it is most frequently claimed that the acronym stands for Langage Symbolique
d'Enseignement (Symbolic Teaching Language). [331]
331. LSL
On the online multimedia platform Second Life, users can design their own
avatars and engage in user-generated content and multiplayer online virtual world
interactions. Launched on June 23, 2003, by the San Francisco company Linden Lab, it
saw significant growth for a number of years until reaching an estimated one million
regular users in 2013. Growth gradually stabilized, and by the end of 2017, there were
"between 800,000 and 900,000 active users." Figure 138.
Although massively multiplayer online role-playing games and Second Life share many
similarities, Linden Lab is adamant that their work is not a game: "There is no created
conflict, no fixed purpose." [332]
Figure 138 : LSL logo
254
332. LiveCode
Cross-platform fast application development runtime system LiveCode (formerly
Revolution and MetaCard) was inspired by HyperCard. It includes the xTalk scripting
language family member LiveCode Script (formerly MetaTalk), which is similar to
HyperTalk from HyperCard. [333]
333. LiveScript
A functional programming language called LiveScript compiles to JavaScript.
Along with many others, it was developed by Jeremy Ashkenas, who also invented
CoffeeScript, Satoshi Muramaki, and George Zahariev. (The name may be a nod to
JavaScript's beta moniker; before to its formal release in 1995, it was known as
LiveScript.[334])
334. Lua
A lightweight, high-level, multi-paradigm programming language with the
meaning "moon" in Portuguese, Lua is primarily intended for embedded use in
applications. Since the interpreter of compiled bytecode is built in ANSI C[335] and
Lua offers a very straightforward C API to integrate it into applications, Lua is crossplatform. Figure 139.
Figure 139 : Lua logo
335. Lucid
A dataflow programming language called Lucid was created with non-von
Neumann programming concepts in mind. Bill Wadge and Ed Ashcroft were
responsible for its design, which was detailed in the 1985 book Lucid, the Dataflow
Programming Language. [336]
255
336. Lustre
A declarative, synchronous, and formally specified dataflow programming
language called Lustre is used to create reactive systems. In the early 1980s, it started
out as a research undertaking. The 1991 IEEE Proceedings contains a formal
presentation of the language. It advanced to real, industrial use in a commercial product
in 1993 when Esterel Technologies' SCADE industrial environment adopted it as its
primary language. Today, it is utilized in nuclear power plants, helicopters, and key
control software for aircraft. [337]
337. LYaPAS
Arkady Zakrevsky developed the programming language known as LYaPAS, or
Logical Language for the Representation of Synthesis Algorithms, in the Soviet
Union.[338]
338. Lynx
Lynx is a remote procedure call-based programming language for massively
distributed networks. It was created in 1984 for the Charlotte multicomputer operating
system at the University of Wisconsin-Madison.
Lynx was ported to the Chrysalis operating system in 1986 at the University of
Rochester, which was using a BBN Butterfly multiprocessor. [339]
339. M Formula language
Microsoft developed the data extraction, loading, and transformation (ETL) tool
Power Query, which is used to retrieve data from sources, process it, and load it into
one or more target systems. Power Query is a completely or partially self-service
business intelligence tool that comes in a variety of forms under the Microsoft Power
Platform. Excel, Power BI, Analysis Services, Dataverse, Power Apps, Azure Data
Factory, SSIS, Dynamics 365, and cloud services like Microsoft Dataflows, including
Power BI Dataflow used with the online Power BI Service or the somewhat more
generic version of Microsoft Dataflow used with Power Automate, are just a few
examples of software that contain it.
Data modeling and ETL are closely intertwined, and Power Query can be used to create
a logical data model for transformation when the data does not already have one or when
it needs to be further developed.
Power Query is based on M, a new query language that was introduced at the time. It is
a mashup language, hence the capital M, created to write queries that combine different
types of data. It is comparable to the F Sharp computer language and is a "largely pure,
higher-order, dynamically typed, partially lazy, functional language," according to
Microsoft. The case-sensitive M language. [340]
256
340. M2001
For creating and presenting mathematical algorithms, from contemporary
discrete to classical continuous mathematics, M2001 is a modular educational
mathematical programming language. The syntax of M2001 is comparable to that of
Pascal or Modula-2 and is based on a semantic framework grounded in category theory.
Efficiency and convenience of use were given far less consideration in its development
because it is solely intended for pedagogical usage than generality and scope of
applicability. It was developed to play a significant part in helping first-year college
math students establish a formal algorithmic basis. [341]
341. M4
A part of the POSIX standard, m4 is a general-purpose macro processor found in
most Unix-like operating systems.
For the first iterations of UNIX, Brian Kernighan and Dennis Ritchie created the
language. It is an expansion of Ritchie's earlier m3 macro processor, which was created
for an unidentified AP-3 minicomputer. [342]
342. M#
M# is a domain-specific language that can be used to create websites and web
applications. It is pronounced "em sharp." It has the ability to convert entities and page
definitions into ASP.NET Web Forms, MVC, and C# code, which in turn creates the
application's user interface and business logic layer. Figure 140.
Its key objectives are to shorten development times, improve the quality of the code,
and lessen human error. [343]
Figure 140 : M# logo
257
343. Machine code
Any low-level programming language that uses machine language instructions to
control a computer's central processing unit is referred to as machine code in the field
of computer programming (CPU). Figure 141. Each instruction directs the CPU to carry
out a highly precise action, such as loading, storing, jumping, or performing an
arithmetic logic unit (ALU) operation on one or more data units in the CPU's registers
or memory. [344]
Figure 141 : Machine language monitor in a W65C816S single-board computer,
displaying code disassembly, as well as processor register and memory dumps.
258
344. Macsyma
One of the earliest general-purpose computer algebra systems currently in
widespread use is called Macsyma ("Project MAC's SYmbolic MAnipulator"). It was
initially created at MIT's Project MAC from 1968 and 1982.
In 1982, Macsyma was given a license by Symbolics and turned into a for-profit item.
Symbolics Macsyma was separated as Macsyma, Inc. in 1992, and it remained under
that company's development until 1999. For users of Microsoft's Windows XP operating
system, that version is still accessible.
The US Department of Energy continues to make the MIT Macsyma version from 1982
available to researchers and US government organizations (DOE). Bill Schelter was in
charge of maintaining that version, DOE Macsyma. It was published in 1999 under the
name Maxima and is still being actively maintained. [345]
345. MAD (Michigan Algorithm Decoder)
For the IBM 704 and later the IBM 709, IBM 7090, IBM 7040, UNIVAC 1107,
UNIVAC 1108, Philco 210-211, and eventually the IBM S/370 mainframe computers,
MAD (Michigan Algorithm Decoder) is a programming language and compiler. MAD
is a dialect of the ALGOL language that was created in 1959 at the University of
Michigan by Bernard Galler, Bruce Arden, and Robert M. Graham. During the 1960s,
it was frequently used to instruct programming in colleges and universities and had a
small impact on the creation of the CTSS, Multics, and Michigan Terminal System
computer operating systems. [346]
346. Magik
Magik is a dynamically typed object-oriented programming language that enables
multiple inheritance and polymorphism. As a component of the Smallworld
Geographical Information System, Arthur Chance of Smallworld Systems Ltd. created
and deployed it in 1989. (GIS). Magik is presently offered by GE Energy, remaining as
a part of its Smallworld technology platform, following Smallworld's acquisition in
2000. Magik (Inspirational Magik) was first released in 1990 and has since undergone
updates and improvements. 5.2 is the most recent version.
Developers of the Magik language revealed in July 2012 that they were implementing
the Magik language on the Java virtual machine. In November of the same year, Oracle
Corporation acknowledged the porting's success. [347]
259
347. Magma
The computer algebra program Magma was created to address issues in algebra,
number theory, geometry, and combinatorics. Figure 142.
It has the name of the algebraic structure known as magma. It works with Windows and
operating systems that resemble Unix.[348]
Figure 142 : Magma logo
348. Maple
In addition to being a multi-paradigm programming language, Maple is both a
symbolic and numerical computing environment. Figure 143.
It covers a wide range of technical computer topics, including numerical analysis, data
processing, visualization, and symbolic mathematics. Code generation and multidomain
physical modeling are features added by a toolbox called MapleSim. [349]
Figure 143 : Maple logo
260
349. MAPPER (now part of BIS)
Sperry Univac's MAPPER, currently referred to as BIS, is a fourth-generation
programming language. Mapper was developed in the 1970s based on some 1960s
research, but it has been kept up to date. It was given a new name and the extension
"ICE" (Internet Commerce Enabler). [350]
Implementations are now available for Windows NT, Sun Solaris, and Linux in addition
to the original platform, Sperry's Univac 1108 computer. The most cutting-edge of these
is the GUI on Windows.
350. MARK-IV (now VISION:BUILDER)
Fourth-generation MARK IV is a programming language developed by
Informatics, Inc. in the 1960s. When IBM decided to debundle its software, Informatics
seized the opportunity; MARK IV was the first "software product to achieve cumulative
sales of $10 million."
MARK IV was created for the RCA Spectra 70 and the IBM Systems (360 and 370). Its
key advantage was that it made it possible to construct applications 6–10 times faster
than with a 3GL system like COBOL. Being an early 4GL, MARK IV permitted user
development of business-related systems. A 1971 Informatics advertisement contains
multiple consumer testimonials, including:
According to our modest estimate, the MARK IV System's advantages have more than
paid for themselves in less than three months.
MARK IV manages 26 distinct factories' accounts payable, inventory, sales analyses,
etc. [351]
351. Mary
RUNIT at Trondheim, Norway, developed and used the programming language
Mary in the 1970s. It was made for systems programming, however it took a lot of
functionality from ALGOL 68. (machine-oriented programming). [352]
261
352. MATLAB
The math computing environment and proprietary multi-paradigm programming
language MATLAB were created by MathWorks. MATLAB is an acronym for
"MATrix LABoratory." Matrix manipulation, function and data visualization, algorithm
implementation, user interface building, and connecting with other programming
languages are all possible with MATLAB. Figure 144.
Although MATLAB is primarily designed for numeric computation, symbolic
computation capabilities are accessible through an optional toolbox that uses the
MuPAD symbolic engine. Graphical multi-domain simulation and model-based design
for embedded and dynamic systems are added via an additional program called
Simulink. MATLAB will have more than 4 million users by the year 2020. They have
a range of engineering, scientific, and economic backgrounds. [353]
Figure 144 : MATLAB logo
353. MASM Microsoft Assembly x86
An x86 assembler that employs the Intel syntax for MS-DOS and Microsoft
Windows is called the Microsoft Macro Assembler (MASM). Beginning with MASM
8.0, there are two versions of the assembler: one (ML64) for 64-bit sources only and the
other (for 16-bit & 32-bit assembly sources). [354]
354. MATH-MATIC
The AT-3 (Algebraic Translator 3) compiler, an early programming language for
the UNIVAC I and UNIVAC II, is marketed under the name MATH-MATIC.
A group working under Grace Hopper under the guidance of Charles Katz began to
create MATH-MATIC circa 1955. A draft manual was created in 1957, followed by a
final handbook in 1958. MATH-MATIC and FLOW-MATIC, Univac's contemporary
business-oriented languages, were comparable in terms of syntax, but FLOW-MATIC
offered arrays in place of record structures, as well as expressions in the form of algebra
and floating-point arithmetic. [355]
262
355. Maude system
Rewriting logic is implemented via the Maude system. It is similar to Joseph
Goguen's OBJ3 implementation of equational logic in terms of general strategy, but it
is based on rewriting logic rather than order-sorted equational logic and places a strong
focus on potent metaprogramming based on reflection.
There are online lessons and free software called Maude. It was initially created by SRI
International, but is now being worked on by a variety of research teams. [356]
356. Maxima
The computer algebra system (CAS) Maxima is based on a Macsyma version
from 1982. It was created in Common Lisp and is compatible with all POSIX-compliant
operating systems, including macOS, Unix, BSD, Linux, Microsoft Windows, and
Android. Figure 145. It is open-source software distributed in accordance with the GNU
General Public License (GPL). [357]
Figure 145 : Maxima logo
263
357. Max (Max Msp – Graphical Programming Environment)
A visual programming language for music and multimedia production called
Max, also referred to as Max/MSP/Jitter—was created and is still supported by the San
Francisco-based software company Cycling '74. Figure 146.
It has been utilized by musicians, performers, software developers, researchers, and
artists to produce recordings, performances, and installations during the course of its
more than thirty-year career.[358]
Figure 146 : Max logo
264
358. MaxScript internal language 3D Studio Max
A professional 3D computer graphics tool for creating 3D animations, models,
games, and photographs is Autodesk 3ds Max, formerly known as 3D Studio and 3D
Studio Max. Autodesk Media and Entertainment is in charge of its creation and
production. Modeling capabilities, a flexible plugin architecture, and a requirement for
the Microsoft Windows platform are all present in this program. Figure 147.
It is frequently employed by firms that create video games, numerous TV commercials,
and architectural visualizations. Additionally, it is utilized for pre-visualization and
cinematic effects. In addition to shaders (including ambient occlusion and subsurface
scattering), dynamic simulation, particle systems, radiosity, normal map generation and
rendering, global illumination, a customizable user interface, and its own scripting
language, 3ds Max also includes normal map creation and rendering. [359]
Figure 147 : MaxScript logo
359. Maya (MEL)
The 3D graphics software Maya from Autodesk uses a scripting language called
Maya Embedded Language (MEL) to make operations easier. With MEL, you can
complete the majority of things that Maya's GUI allows you to complete as well as some
that it doesn't. MEL provides a way to expedite difficult or repeated processes, as well
as letting users to share a particular set of commands with others who may find them
beneficial. [360]
265
360. MDL
Model Development Language (MDL), a computer language that is a derivative
of Lisp, is sometimes known informally as More Datatypes than Lisp or MIT Design
Language. Initially, it served the Project MAC Dynamic Modeling Group at
Massachusetts Institute of Technology (MIT) by offering high level language support.
The PDP-10 running ITS was used to build it in 1971, and it eventually ran on TENEX,
TOPS-20, BSD, and AEGIS. [361]
361. Mercury
A functional logic programming language designed for practical applications is
called Mercury. Figure 148. Fergus Henderson, Thomas Conway, and Zoltan Somogyi
worked on the first version at the University of Melbourne's Department of Computer
Science under Somogyi's direction, and it was made public on April 8, 1995. [362]
Figure 148 : Mercury logo
362. Mesa
Mesa is a programming language that was created in the United States at Palo
Alto, California, at the Xerox Palo Alto Research Center in the late 1970s. Because
Mesa is a "high level" programming language, the language's name is a play on the
catchphrases used at the time. [363]
363. MHEG-5 (Interactive TV programming language)
The Multimedia and Hypermedia Experts Group developed a collection of
international standards for the presentation of multimedia information, including
MHEG-5, or ISO/IEC 13522-5. (MHEG). The language is most frequently used to
describe interactive television services. [364]
266
364. Microcode
Similar to how an assembler helps create higher level code for a processor, a
microassembler is a computer application that aids in the preparation of a
microprogram, known as firmware, to control the low level operation of a computer.
The microprogram differs in that it is often solely generated by the company that makes
processors and is closely integrated with the computer hardware. On a computer that
has been microprogrammed, the microprogram executes the operations of the
instruction set that is used to write any typical program, including both application
programs and operating systems. Without changing the hardware, the manufacturer can
correct some issues, such as getting around poor hardware design, by using a
microprogram. By allowing the same hardware to execute various instruction sets,
microassembler-generated microprograms can also be used in this way.
The microprogram is constructed and then loaded into a control store to become a
component of the control unit's logic in a CPU.
Some microassemblers have a broader focus and are not specific to one type of computer
architecture. For instance, Digital Equipment Corporation employed their MICRO2
microassembler for a widely diverse range of computer architectures and
implementations by using macro-assembler-like capabilities.
Customers are typically given access to the microassembler so they can create unique
microcode if a particular computer implementation offers a writeable control store.[365]
365. Microsoft Power Fx
Microsoft Power Fx is a low-code, general-purpose programming language that
is free and open source and used to express logic throughout the Microsoft Power
Platform.
The standard was originally released in March 2021 after being first introduced at Ignite
2021. It is built using formulas similar to those in a spreadsheet so that many people
may use it. Additionally, it was influenced by programming languages and programs
like Mathematica, Miranda, and Pascal. [366]
366. MIIS
A. Neil Pappalardo and Curt W. Marble developed MIIS (Meditech Interpretive
Information System), a programming language akin to MUMPS, between 1964 and
1968 at Mass General Hospital on a DEC PDP. MUMPS proper and MIIS are the two
main directions in which MUMPS evolved. MUMPS was adopted as an ANSI and ISO
standard. When numerous MUMPS implementations standardized to be compatible,
MIIS chose to remain a proprietary system rather than standardize.
The value of a logical expression in MUMPS can be false = zero or true = non-zero,
canonically one, as an illustration of the distinctions between MUMPS and MIIS. In
MIIS, the value of true is a string that contains the ASCII delete character, while the
value of false is an empty string (code 127 decimal). [367]
267
367. Milk (programming language)
Programmers can more effectively manage memory in applications that handle
dispersed data points in enormous data sets thanks to the programming language
milk.[368]
368. MIMIC
H. E. Petersen, F. J. Sansom, and L. M. Warshawsky of the Systems Engineering
Group within the Air Force Materiel Command at the Wright-Patterson AFB in Dayton,
Ohio, developed MIMIC, known only in its capitalized form, as a simulation computer
language in 1964. Although it is an expression-oriented continuous block simulation
language, it can also contain FORTRAN-like algebraic building blocks.
The analog computer design simulator MIDAS (Modified Integration Digital Analog
Simulator) was replaced by MIMIC. With the exception of one procedure written in
COMPASS, MIMIC was entirely written in FORTRAN and executed on Control Data
supercomputers. [369]
369. Mirah
A programming language called Mirah (formerly known as Duby) was built on
the syntax of the Ruby language, local type inference, a hybrid static-dynamic type
system, and a pluggable compiler toolchain. As "a 'Ruby-like' language, possibly a
subset of Ruby syntax, that [could] compile to solid, quick, idiomatic JVM bytecode,"
Charles Oliver Nutter developed Mirah. As a play on the idea of Ruby in Java, the
Javanese word mirah alludes to the precious stone ruby. [370]
268
370. Miranda
As a replacement for his former programming languages SASL and KRC, David
Turner created Miranda, a slow, completely functional language that draws inspiration
from ML and Hope. Figure 149. The first completely functional language to receive
commercial support, Miranda was created by Research Software Ltd. of England (which
owns the trademark on the name Miranda)[371].
Figure 149 : Miranda logo
371. MIVA Script
A proprietary computer programming language called Miva Script is mostly
utilized for web applications like e-commerce. It is currently owned, created, and
maintained by Miva Merchant, Inc., a San Diego, California-based company. Miva
Script is supported by a large number of web hosts on their servers, however it is far
less common than other widely used web languages. [372]
372. ML
A general-purpose functional programming language is ML (Meta Language). It
is renowned for ensuring type safety through the use of the polymorphic Hindley-Milner
type system, which assigns the types of the majority of expressions without the need for
explicit type annotations. There is a formal proof that a well-typed ML program does
not result in runtime type errors. For function arguments, garbage collection, imperative
programming, call-by-value, and currying, ML offers pattern matching. It is one of the
few languages that has been fully characterized and proven using formal semantics, and
it is widely used in programming language research. It is frequently used to work on
other formal languages, such as in compiler development, automated theorem proving,
and formal verification, thanks to its types and pattern matching. [373]
269
373. Model 204
Model 204 (M204) is a database management system created and marketed by
Computer Corporation of America for IBM and comparable mainframe computers. It
was initially announced in 1965, and it was first used in 1972. It includes a language for
programming and a setting for creating applications. The M204 assembly language
implementation for the IBM System/360 and its descendants can handle very large
databases with transaction loads of up to 1000 TPS. [374]
374. Modelica
For the component-oriented modeling of complex systems, such as those with
mechanical, electrical, electronic, hydraulic, thermal, control, electric power, or
process-oriented subcomponents, Modelica is an object-oriented, declarative, multidomain modeling language. Figure 150. The nonprofit Modelica Association created
the open-source Modelica language. As of version 4.0.0, the Modelica Association also
creates the free Modelica Standard Library, which has 1200 functions in various fields
and roughly 1400 generic model components. [375]
Figure 150 : Modelica logo
375. Malbolge
Ben Olmstead created the esoteric programming language known as Malbolge in
1998. It is named after the Malebolge, the eighth circle of hell in Dante's Inferno.
Through the use of a base-three calculator, a counterintuitive "crazy operation," and
self-altering code, it was made expressly to be nearly impossible to operate. The
complexity of prior difficult esoteric languages (like Brainfuck and Befunge) is built
upon, but it pushes this element to the limit by drawing on the complicated history of
computer science and encryption. It is still possible to create useful Malbolge programs
despite this architecture. [376]
270
376. Modula
The Pascal programming language is a forerunner of Modula. It was created in
the middle of the 1970s by Niklaus Wirth, the same person who created Pascal, at ETH
Zurich in Switzerland. The fundamental difference between Modula and Pascal is the
module system, which is used to organize groups of related declarations into program
units. The language is described in Wirth's report, Modula. Published in 1976, a
language for modular multiprogramming. [377]
377. Modula-2
Niklaus Wirth at ETH Zurich created the hierarchical, procedural programming
language known as Modula-2 between 1977 and 1985/88. It was developed as the
language for the Lilith personal workstation's operating system and application
software. [378] Later, it was put to use outside of the Lilith for programming.
378. Modula-3
As a replacement for Modula-2+, an improved version of Modula-2, Modula-3 is
a programming language. Figure 151. Although it has influenced the designs of
languages like Java, C#, and Python in research circles, industry has not extensively
adopted it. It was created in the late 1980s at the Digital Equipment Corporation (DEC)
Systems Research Center (SRC) and the Olivetti Research Center (ORC) by Luca
Cardelli, James Donahue, Lucille Glassman, Mick Jordan (who had previously worked
at the Olivetti Software Technology Laboratory), Bill Kalsow, and Greg Nelson. [379]
Figure 151 : Modula-3 logo
379. Mohol
system programming language; these languages are made for creating system
software, which typically demands different development strategies than application
software. These languages are known as mohols, or machine-oriented high order
languages, according to Edsger Dijkstra.
In order to enable programs written in the language to use the same code on several
platforms, general-purpose programming languages frequently concentrate on generic
characteristics. ALGOL and Pascal are a couple of examples. The performance is
frequently impacted negatively by this generic quality, which typically comes at the
expense of restricting direct access to the machine's internal operations. [380]
271
380. MOO
A MOO, or "MUD, object-oriented," is a multi-user (players) concurrently
connected text-based online virtual reality system.
There are two unique but related uses for the word "MOO." One is used to describe
those programs that are descended from the original MOO server, while the other is
used to describe any MUD that organizes its database of objects using object-oriented
principles, particularly if it does so in a way that is comparable to the original MOO or
its derivatives. The majority of this article discusses the original MOO and its immediate
descendants, however for a list of MOO-like systems, see non-descendant MOOs. [381]
381. Mortran
An addition to the Fortran programming language, called Mortran (More
Fortran), is used for scientific computation. In order to increase readability and
versatility, it adds changes to the syntax, notably the usage of semicolons to finish
statements. Fortran code is created by macro-processing Mortran code.
Example:
<I=1,200; J=I;
UNTIL M(J).EQ.0 <
J=M(J);
>
IF I.NE.J <
OUTPUT I,M(J+1); (' Chain',I4,' ends with ',A4);
>
>
It should be noted that Mortran, like many preprocessors, does not perform a
thorough study of the Fortran source and may not always be open about its assumptions
and requirements. Take Mortran multiple assignment, for instance. The Mortran User
Guide states:
/ I, A(I,K), J / = SQRT(X/2.0);
produces the following FORTRAN statements:
I = SQRT(X/2.0)
A(I,K) = SQRT(X/2.0)
J = SQRT(X/2.0)
In this example, assuming the multiple assignment semantics are left to right, the
resulting Fortran implements the multiple assignment correctly only if X is not aliased
to I or to A(I,K). [382]
The only addition to the MORTRAN2 processor's ANSI standard Fortran 66 code is the
capability to assign and compare character data stored in INTEGER variables.
272
382. Mouse
Dr. Peter Grogono created the little computer programming language known as
the Mouse in the late 1970s and early 1980s. It was created as an expansion of the
MUSYS programming language, which was previously used to operate digital and
analog equipment in an electronic music studio. Mouse was created as a compact,
memory-constrained microcomputer programming language. It uses Reverse Polish
notation and is an interpreted stack-based language. In order to make an interpreter as
simple to use as possible, Mouse is made to process programs as streams of characters
that are each individually translated. [383]
383. MPD
A concurrent programming language called Multithreaded, Parallel, and
Distributed Programming (MPD) is based on the syntax of the book Foundations of
Multithreaded, Parallel, and Distributed Programming. The language's distinctive
qualities, especially that it supports all three of these concurrent programming
approaches, are listed in the name. As a subset of the SR programming language, MPD
is implemented. Although it employs a separate parser, it shares SR's run-time system
and intermediate form. So, like SR, MPD offers a wide range of concurrent
programming techniques.
Single processors, shared-memory multiprocessors, and clusters of (homogeneous)
processors are all capable of supporting MPD programs. The solution transparently
supports a wide range of processor types and Unix operating systems.[384]
Sample Code:
resource helloWorld()
writes("Hello World\n")
end
273
384. MSL
The scripting language included in mIRC, a Windows-based IRC client, is called
the mIRC scripting language (sometimes unofficially abbreviated to "mSL"). [385]
The following code was written in the remote scripts format. The word "alias" shouldn't
come before the command names if they are put into an alias file. The standard /*
comment */ and ;comment are used in test comments.
A sample of a Hello World alias is given below:
;Defines the alias 'hello' in the remote script
;Note: if this is placed in an alias script,
;the 'alias' part must be removed (result: hello {)
;Usage: /hello
alias hello {
;Displays(/echo) 'Hello World!' into the active window(-a)
echo -a Hello World! }
385. MUMPS
Massachusetts General Hospital Utility Multi-Programming System, sometimes
known as MUMPS, is an imperative, high-level programming language with a built-in
key-value database for transaction processing.
The Massachusetts General Hospital was where it was initially created for controlling
hospital laboratory information systems. [386]
274
386. MuPAD
A computer algebra system is called MuPAD. Beginning in 1997, the company
SciFace Software GmbH & Co. KG, in collaboration with the MuPAD research group
and partners from a few other universities, took over development of the software that
had been initially created by the MuPAD research group at the University of Paderborn
in Germany. Figure 152. Given the time period in which it was created, MuPAD's
graphics package was exceptionally popular. [387]
Figure 152 : MuPAD logo
387. Mystic Programming Language (MPL)
A bulletin board system program called Mystic BBS was created in 1995 and
initially made available to the general public in December 1997 for MS-DOS. It has
been ported to Linux, OS/2, OS X, and Microsoft Windows (Intel and ARM based
systems such as the Raspberry Pi). The Renegade (BBS) and Telegard bulletin board
systems were intended to be replaced by Mystic[388].
275
388. NASM
The Intel x86 architecture is assembled and disassembled via the Netwide
Assembler (NASM). Figure 153. It can be used to create programs that are 16 bits, 32
bits (IA 32), and 64 bits (x86 64). It is regarded as one of the most well-liked Linux
assemblers.
With Julian Hall's assistance, Simon Tatham wrote the original draft. It is currently
maintained by a small group under the direction of H. Peter Anvin. It is open-source
software distributed under a two-clause BSD license that has been streamlined.[389]
Figure 153 : NASM
389. Napier88
A programming language called Napier88 was developed at the University of St.
Andrews in Scotland. It is orthogonally persistent. Ron Morrison was the main designer,
and Fred Brown, Richard Connor, and Al Dearle expanded and put into practice his
initial plans. In many ways, Napier88 was ahead of its time. It was the first robustly
implemented language to combine an orthogonal persistence scheme with a
polymorphic type system.
A solid implementation of the language was made available to users from both industry
and academics; eventually, up to 1,000 registered users were counted. However, the
language was only meant to serve as a proof of concept for a persistent programming
experiment; after 1989 (the year the first implementation was actually released), the
group's interests changed and the language was no longer maintained.[390
276
390. Neko
Nicolas Cannasse created the virtual machine NekoVM as part of research and
development (R&D) projects at Motion Twin and Shiro Games, two independent video
game studios in Bordeaux, France. Figure 154. The bytecode for the high-level
dynamically typed programming language Neko serves as NekoVM's native language.
This pairing enables Neko to target NekoVM by compiling another language (like Haxe)
to NekoVM bytecode or to be used directly as an embedded scripting language. [391]
Figure 154 : Neko logo
391. Nemerle
Nemerle is a high-level, general-purpose programming language that is statically
typed and intended for platforms that use the Common Language Infrastructure
(.NET/Mono). It has features that are imperative, reflective, functional, object-oriented,
and aspect-oriented. It has a strong metaprogramming mechanism and a straightforward
syntax similar to C#. [392]
392. NESL
The SCandAL project at Carnegie Mellon created the parallel programming
language known as NESL, which was first published in 1993.
It incorporates numerous concepts from array programming languages, parallel
algorithms, and functional programming. [393]
277
393. Net.Data
Net. IBM's Data programming language is mostly used for online applications
that are database-driven.
OS: UNIX, Microsoft Windows, IBM I and z/OS
It is a form of server-side scripting that enables the dynamic creation of Web pages from
a number of data sources, extending the capabilities of Web servers.
Database management systems, both relational and non-relational, can be used as data
sources. [394]
394. NetLogo
Agent-based modeling uses the programming language and integrated
development environment (IDE) NetLogo.
In keeping with the philosophy of the computer language Logo, NetLogo was created
by Uri Wilensky to be "low threshold and no ceiling." By using agents in the form of
turtles, patches, connections, and the observer, it teaches programming fundamentals.
The educational community's teaching of young people was one target audience for
NetLogo, as was the modeling of related phenomena by domain specialists without
programming experience. Figure 155. Using NetLogo, numerous scientific articles have
been published. [395]
Figure 155 : NetLogo
278
395. NetRexx
The REXX programming language has a derivative called NetRexx, which is
open source and was developed by IBM for the Java virtual machine. It supports a
traditional REXX syntax with no reserved words, substantial additions to support
object-oriented programming in a way that is compatible with Java's object model, and
the ability to use only data types native to the JVM or the NetRexx runtime package. It
can also be used as a compiled or an interpreted language. Figure 156. The latter
provides the common Rexx data type, which combines decimal arithmetic with limitless
string precision. [396]
Figure 156 : NetRexx logo
279
396. NewLISP
A dialect of the Lisp family of programming languages, newLISP is a scripting
language. Lutz Mueller created and developed it. Figure 157. The GNU General Public
License, version 3 or later, governs the use of newLISP, a free and open-source
programming language. [397]
Figure 157 : NewLISP logo
397. NEWP
On computers running the Unisys operating system, the New Executive
Programming Language (NEWP) is a high-level programming language (MCP).
Although it can also be used to create user software, this language is used to create the
operating system and other system utilities. It is distinct from extended ALGOL, on
which it is based, by a number of constructions. Programs executing as the MCP are the
only ones to employ language operators like MEMORY, which permits direct memory
access. Burroughs Executive Systems Problem Oriented Language (ESPOL) was
replaced by NEWP[398].
398. Newspeak
A team led by Gilad Bracha is creating Newspeak, a programming language and
platform in the vein of Smalltalk and Self. The platform comes with a graphical user
interface (GUI) library, standard libraries, and an integrated development environment
(IDE). [398] The main contributors were employed by Cadence Design Systems, which
began sponsoring the project in 2006 and stopped in January 2009. [399]
280
399. NewtonScript
A prototype-based programming language called NewtonScript was developed
specifically for the Newton platform. [399] Although significantly influenced by the
Self programming language, it has been changed to better meet the demands of
embedded and mobile devices. [400]
400. Nial
A prototype-based programming language called NewtonScript was developed
specifically for the Newton platform. Figure 158. Although significantly influenced by
the Self programming language, it has been changed to better meet the demands of
embedded and mobile devices. [401]
Figure 158 : Nial logo
401. Nim
A group led by Andreas Rumpf created and developed Nim, a general-purpose,
multi-paradigm, statically typed, compiled systems programming language. With
features like compile time code generation, algebraic data types, a foreign function
interface (FFI) with C, C++, Objective-C, and JavaScript, as well as the ability to
compile to those same languages as intermediate representations, Nim is intended to be
"efficient, expressive, and elegant"[402]. It supports metaprogramming, functional,
message passing, procedural, and object-oriented programming styles.
281
402. Nix (Systems configuration language)
Using a purely functional deployment strategy, Nix is a cross-platform package
manager that installs applications into distinct folders created by cryptographic hashes.
It also serves as the name of the programming language for the tool. As an alternative
to the usual method of installing numerous versions of dependencies at once, a package's
hash takes into account the dependencies, which is said to eliminate dependency hell.
More dependable, repeatable, and portable packages are touted by this package
management methodology. [403]
403. NPL
The procedural programming language Nord Programming Language (NPL) was
developed by Norsk Data, a Norwegian minicomputer firm. It came pre-installed on the
Sintran III operating system. [404]
404. Not eXactly C (NXC)
John Hansen created the high-level programming language Not eXactly C, or
NXC, for the Lego Mindstorms NXT in 2006. NXC, short for Not eXactly C, is based
on the assembly language Next Byte Codes. NXC uses syntax similar to C. The Bricx
Command Center serves as NXC's IDE. [405]
The Mozilla Public License applies to the NXC compiler. The following is an example
of code:
task main() //sets a new task. main() is compulsory
{ OnFwd(OUT_BC,75); //ask the motors connected to ports B and C to move
forward at a power of 75.
Wait(5000); //wait for 5 seconds [the value is in milliseconds](note that 1000 = 1
second)
Off(OUT_BC); //off the motors connected to ports B and C }
282
405. Not Quite C (NQC)
For the Lego Mindstorms, Cybermaster, and LEGO Spybotics systems, Not Quite
C (NQC) is a programming language, application programming interface (API), and
native bytecode compiler toolkit.
It is essentially based on the C language, although it has particular restrictions, such as
the maximum number of permitted variables and subroutines, that vary depending on
the firmware version the RCX has. Inventor David Baum created the language. He has
written two books about it. [406]
Simple program illustration
A straightforward NQC test program for an RCX with a motor connected to output port
A would look something like this:
task main () // Main program
{ SetPower(OUT_A, OUT_FULL); // Turn on motor A at 100% power.
OnFor(OUT_A, 200); // Let the motor run for two seconds, and then turn it off.
}
Thus, motor A will go at full speed for two seconds before being turned off.
406. NSIS
The makers of Winamp, Nullsoft, support the Nullsoft Scriptable Install System
(NSIS), a script-driven installer authoring tool for Microsoft Windows. A variety of free
software licenses, principally the zlib license, are used to release NSIS. Figure 159.
With users including Amazon, Dropbox, Google, Ubisoft, FL Studio, BitTorrent, and
McAfee, it has grown to be a widely used substitute for commercial proprietary
programs like InstallShield. [407]
Figure 159 : NSIS logo
283
407. Nu
Tim Burks developed Nu, an interpreted object-oriented programming language
with a syntax resembling Lisp, as a substitute scripting language for OS X's Cocoa
application programming interface (API). Figure 160.
Additionally, Linux and the iPhone have implementations. [408]
Figure 160 : Nu window
408. NWScript
For the role-playing video game Neverwinter Nights, BioWare created the
scripting language known as NWScript. It is used in the Aurora toolkit and is based on
the C programming language. Because the Aurora toolset has not been transferred to the
Mac OS X and Linux versions of Neverwinter Nights, Neverscript, an open source thirdparty editor, has been developed. [409]
409. NXT-G
The NXT comes with a graphical programming environment called NXT-G v2.0.
By carefully building blocks and wires to encapsulate complexity, NXT-G can be
utilized for real programming. This software works well for combining autonomous
control with bluetooth or other "remote control" techniques, or for running a number of
parallel sense/respond loops (for example: wait 60 seconds, play a "bonk" sound at low
level if battery is low, loop). Parallel threads, not parallel "sequence beams," are what
they call. The language supports virtual instruments for all Lego-branded sensors and
components as well as the vast majority of third-party ones. Version 2.0 adds additional
Lego color sensor compatibility, new tutorial tasks, a remote control, and custom
graphics and sound creators. It's crucial to have community support. [410]
284
410. o:XML
On the basis of XML-syntax, o:XML is a general-purpose, dynamically typed,
object-oriented programming language that is open source. It has namespaces, regular
expressions, threading, and exception handling. Furthermore, o:XML has an expression
language that is quite similar to XPath and enables the invocation of functions on both
nodes and node sets. [411]
411. Oak
James Gosling designed the now-defunct programming language Oak in 1989,
first for the set-top box project at Sun Microsystems. Figure 161. Later, Java was created
from the original language. Gosling chose the name Oak in honor of an oak tree that
was located outside his workplace. [412]
Figure 161 : Oak logo
285
412. Oberon
Oberon is the most recent member of the Wirthian family of ALGOL-like
languages, and it was initially released in 1987 by Niklaus Wirth (Euler, ALGOL W,
Pascal, Modula, and Modula-2). Oberon was created as a consequence of a concerted
effort to make Modula-2, Pascal's direct successor, more powerful while also making it
simpler. The idea of type extension of record types is its main novel feature. It allows
for breaking the dogma of purely static data typing by creating new data types on the
foundation of current ones and relating them. Figure 162. Wirth's method of inheritance,
type extension, reflects the perspective of the parent site. Oberon was created at ETH
Zurich in Switzerland as a component of the rollout of an operating system of the same
name. The name is derived from the Oberon moon of Uranus. [413]
Figure 162 : Oberon logo
413. OBJ
Programming language family called OBJ was first developed by Jose Meseguer
and Joseph Goguen in 1976.
It belongs to the "extremely high-level" family of declarative languages. For the
massively parallel RRM, it includes abstract types, generic modules, subsorts (subtypes
with multiple inheritance), pattern-matching modulo equations, E-strategies (user
control over laziness), module expressions (for combining modules), theories, and
views (for describing module interfaces) (rewrite rule machine). [414]
The languages CafeOBJ, Eqlog, FOOPS, Kumo, Maude, OBJ2, and OBJ3 are all part
of the OBJ family.
•
OBJ2
A functional system based on equations and parametrized modules similar to Clear are
features of the computer language OBJ2.
•
OBJ3
A variation of OBJ based on order-sorted rewriting is called OBJ3. Agent-oriented,
Kyoto Common Lisp-based OBJ3 is powered by AKCL.
286
414. Object Lisp
A dialect of the Lisp language, Object Lisp was used as a computer programming
language. It was created by Lisp Machines, Inc. as an object-oriented addition to the
Lisp dialect known as Lisp Machine Lisp. Another pioneer of prototype-based
programming was Object Lisp.
Around the same time, it was viewed as a rival to other object-oriented Lisp extensions
like Flavors, used by Symbolics, Common Objects, created by HP, and CommonLoops,
used by Xerox.
Early iterations of the Macintosh Common Lisp also made use of Object Lisp. There,
Object Lisp was used to create the user interface toolkit. [415]
415. Object REXX
An object-oriented scripting language called Object REXX was created by IBM
initially for the OS/2 operating system and then for Microsoft Windows. Figure 163.
The "Classic Rexx" language, which was first developed for the Conversational Monitor
System (CMS) part of the operating system VM/SP Release 3 and later ported to
Multiple Virtual Storage (MVS), OS/2, and PC DOS, is followed by and significantly
extended[a] by this. [416]
Figure 163 : Object REXX logo
287
416. Object Pascal
Programming features for object-oriented programming (OOP) like classes and
methods are provided by the extension to the Pascal programming language known as
Object Pascal.
Apple Computer created the language first called Clascal for the Lisa Workshop
development system. Niklaus Wirth, the creator of Pascal, and Apple worked together
to create a standardized version of Clascal when Lisa made way for Macintosh. It was
given the name Object Pascal. For early iterations of the MacApp application
architecture, Object Pascal served as the primary programming language through the
middle of the 1980s. [417]
When the C++-based MacApp 3.0 was released in 1991, the language lost its status as
the primary development language for the Mac. 1996 saw the end of official support for
the software Object Pascal Example;
type
THelloWorld = object
procedure Put;
end;
var
HelloWorld: THelloWorld;
procedure THelloWorld.Put;
begin
ShowMessage('Hello, World!');
end;
begin
New(HelloWorld);
HelloWorld.Put;
Dispose(HelloWorld);
end.
417. Objective-C
A general-purpose, object-oriented programming language called Objective-C
enhances the C programming language with Smalltalk-like messaging. It was chosen by
NeXT for its NeXTSTEP operating system after being initially created by Brad Cox and
Tom Love in the early 1980s. Since Apple's macOS is directly descended from
NeXTSTEP, Objective-C was used as the default programming language for developing
macOS and iOS applications (via their respective APIs, Cocoa and Cocoa Touch) until
the release of Swift in 2014. [418]
288
418. Obliq
Programming distributed and locally multithreaded computing is made simpler
and easier using Obliq, an interpreted object-oriented language that also offers implicit
type systems and program safety. The Modula-3 interpreter gives Obliq complete access
to the capabilities of network objects in Modula-3. For Obliq, a type inference algorithm
has been created that supports record concatenation, subtyping, and recursive types. It
has also been demonstrated to be NP-complete, with the lowest complexity being O(n3)
or, given certain modeling assumptions, down to O(n2), with its best-known
implementation running in (n5).
Although explicit type declarations are permitted and taken into account by the
interpreter, Obliq does not require explicitly typed variables. Instead, variables can hold
any data type recognized by the type checker, and if they do not, an execution error for
the given expression will be displayed. The language supports booleans, integers, reals,
characters, strings, and arrays as its fundamental data types.
The standard collection of sequential control structures (conditional, iterative, and
exception handling forms), as well as unique control forms for concurrency, are
supported by Obliq (mutexes and guarded statements). Furthermore, any machine in a
dispersed network object can safely and transparently copy and clone Obliq's objects
from a distance. [419]
419. OCaml
OCaml, originally known as Objective Caml, is a general-purpose, multiparadigm programming language that adds object-oriented capabilities to the ML Caml
dialect. Figure 164. Xavier Leroy, Jérôme Vouillon, Damien Doligez, Didier Rémy,
Ascánder Suárez, and others developed OCaml in 1996. [420]
Figure 164 : OCaml logo
289
420. Occam
Occam is a concurrent programming language that has several characteristics
with communicating sequential processes (CSP) process algebra[421].
It bears the name of the philosopher William of Ockham, who also gave us the phrase
"occam's razor." Figure 165.
Figure 165 : Occam logo
421. occam-π
The Kent Retargetable occam Compiler (KRoC) team at the University of Kent
created the programming language occam, which is known as occam- (or occam-pi) in
the field of computer science. [422] The name refers to the introduction of -calculus (picalculus) concepts, particularly those involving mobile agents (processes) and data, into
occam. The language includes a number of occam 2.1 extensions, such as:
•
Nested procedures
•
Extended rendezvous;
•
Run-time process generation;
•
Mobile channels, data, and processes;
•
Recursion;
•
Protocol inheritance;
•
Array constructors;
290
422. Octave
The high-level programming language GNU Octave was created especially for
scientific and numerical calculation. Octave provides assistance with running various
numerical experiments and solving linear and nonlinear problems numerically in a
language that is largely MATLAB equivalent. 166. It can also be utilized as a language
that is batch-oriented. It is free software that complies with the rules of the GNU General
Public License and is a component of the GNU Project .[423]
Figure 166 : Octave logo
423. OmniMark
Fourth-generation programming language OmniMark is mostly utilized in the
publishing sector. Currently, Stilo International only sells it as proprietary software. The
most recent version of OmniMark was 11.0 as of July 2022[424].
291
424. Opa
Scalable web apps can be created using the open-source programming language
Opa. It can be used for both client-side and server-side scripting. Complete programs
can be written in Opa and then automatically converted by a compiler into JavaScript
for the client and Node.js for the server. Strong, static typing is used by Opa, which
might be useful in preventing security problems like SQL injections and cross-site
scripting attacks. At the OWASP conference in 2010, the language was first formally
introduced. In June 2011, the source code was made available on GitHub under the
terms of the GNU Affero General Public License. Later, the licensing was modified to
the MIT license for the framework component (library) and the AGPL license for the
compiler so that programs created using Opa may be distributed under any license,
whether it was open source or proprietary. Figure 167.
Opa can be used to create the classic Hello world program, which creates a web server
that delivers a static page with the message "Hello, web!" as its content:
Server.start(Server.http,[425]
{ title: "Hello"
, page: function() { <h1>Hello, web!</h1> } } )
It can be compiled to a stand-alone executable JS file with:
$ opa hello_web.opa
Running the resulting executable JS file launches the web application:
$ ./hello_web.js
Figure 167 : Opa logo
292
425. Opal
The Technical University of Berlin is where the functional programming
language OPAL (OPtimized Applicative Language) was originally created. [426]
This is an illustration of an OPAL program that recursively calculates the GCD.
Signature file (declaration)
SIGNATURE GCD
FUN GCD: nat ** nat -> nat
Implementation file (definition)
IMPLEMENTATION GCD
IMPORT Nat COMPLETELY
DEF GCD(a,b) == IF a % b = 0 THEN b
ELSE IF a-b < b THEN GCD(b,a-b)
ELSE GCD(a-b,b)
FI
FI
426. Open Programming Language (OPL)
The operating systems EPOC and Symbian are supported by mobile devices and
embedded systems that use the Open Programming Language (OPL). In 1984, the
British manufacturer Psion introduced it. [427]
Here is a "Hello, World!" program for the console:
PROC main:
PRINT "Hello World!"
PAUSE 40
ENDP
(Source code taken from the PCDevPrimer in the OPL Wiki.)
And here is a GUI version for Nokia's Series 80 user interface:
CONST KKeyEnter%=13
PROC hello:
dINIT "Hello"
dTEXT "","Hello World!"
dBUTTONS "OK",KKeyEnter%
DIALOG
ENDP
293
427. OpenCL
A programming language framework called OpenCL (Open Computing
Language) is used to create applications that run on a variety of heterogeneous platforms
made up of CPUs, GPUs, DSPs, FPGAs, and other processors and hardware
accelerators. Application programming interfaces (APIs) are defined by OpenCL to
control the platform and run programs on the compute devices. Figure 168.
These languages are based on C99, C++14, and C++17. OpenCL offers a standardized
interface for task- and data-based parallel computing. [428]
Figure 168 : OpenCL logo
428. OpenEdge Advanced Business Language (ABL)
Business application development language OpenEdge Advanced Business
Language, or OpenEdge ABL for short, was developed and is maintained by Progress
Software Corporation (PSC). The fourth-generation programming language uses an
English-like syntax to make software creation easier. [429] Up to version 9, the
language was known as PROGRESS or Progress 4GL. Figure 169.
However, in 2006, PSC changed the name of the language to OpenEdge Advanced
Business Language (OpenEdge ABL) to dispel a presumption in the industry that 4GLs
were less capable than other languages. Web applications are created using a subset of
the language known as SpeedScript.
Figure 169 : OpenEdge logo
294
429. OpenVera
System Science created the hardware verification language OpenVera, which
Synopsys later purchased. [430]
430. OpenQASM
An intermediary representation for quantum instructions is called Open Quantum
Assembly Language (OpenQASM; pronounced "open kazm"). A reference source code
implementation of the language was made available as part of IBM's Quantum
Information Software Kit (Qiskit) for use with their IBM Quantum Experience cloud
quantum computing platform after the language's initial description appeared in a paper
published in July 2017[431]. The language shares characteristics with well-known
hardware description languages like Verilog. At the beginning of a source file,
OpenQASM declares its version as a number, as in the statement:
ASKQASM 3;
The initial published implementations of OpenQASM are at the OpenQASM 2.0 level.
The most recent version of the standard, version 3.0, is available for viewing at the
OpenQASM repository on GitHub.
431. OPS5
The R1/XCON system, used to set up VAX systems, was the first to successfully
use a rule-based or production system computer language, known as OPS5.
The OPS series and the systems it is based on or inspired by are its genealogy.
Charles Forgy created the OPS family while he was a student at Carnegie Mellon
University in the late 1970s. OPS is thought to stand for "Official Production System."
In spite of the fact that Allen Newell's artificial intelligence research team had been
working on production systems for some time, Forgy's implementation, which was
based on his Rete algorithm, was especially effective and could scale up to more
complex problems involving hundreds or thousands of rules.
Programs run by scanning "working memory elements" (which are roughly object-like,
with classes and attributes) seeking for matches with the rules in "production memory"
employ the forward chaining inference engine that is used by OPS5. Rules feature
actions that can change or eliminate the matched element, add new ones, produce side
effects, and more. Up until there are no more matches, execution keeps on.
OPS5 can be thought of as an execution engine for a Petri net that has been expanded
with inhibitor arcs.
In the matching step, the OPS5 forward chaining technique makes it particularly
parallelizable, and numerous automatic parallelizing compilers were developed.
OPS4 was a previous iteration, and OPS83 followed.
OPS5 was initially implemented in Lisp and afterwards quickly rewritten in BLISS.
For usage with the OpenVMS, RISC ULTRIX, and DEC OSF/1 operating systems,
DEC OPS5 is an expanded implementation of the OPS5 language standard. [432]
295
432. OptimJ
The Java extension OptimJ provides language support for creating optimization
models and abstractions for processing large amounts of data. Ateji, which ceased
operations in September 2011, created the extensions and the proprietary product that
used them. [433] With OptimJ, optimization experts will have access to software
engineering tools like object-orientation and contemporary IDE support as well as a
clear and concise algebraic notation for optimization modeling. OptimJ also aims to
break down compatibility barriers between optimization modeling and application
programming tools.
433. Orc
At the University of Texas at Austin, Jayadev Misra developed the concurrent,
nondeterministic programming language known as Orc. Figure 170.
Through sites, Orc offers consistent access to computational services, such as
distributed communication and data manipulation. The programmer manages timeouts,
priorities, and failures while orchestrating the invocation of sites to accomplish a task
using four straightforward concurrency primitives. [434]
Figure 170 : Orc logo
296
434. ORCA/Modula-2
ORCA/Modula-2 is a Modula-2 compiler designed for the Apple IIGS computer
and developed in the Modula-2 programming language.
Peter Easdown created it between 1993 and 1994, and The Byte Works released it.
When it was finally released, it had been fully integrated with the programming
environment known as the Apple Programmers Workshop or ORCA/M, despite having
been initially designed separately.
On a computer with an Intel 80286 processor, a TopSpeed Modula-2 version was
initially used to create the compiler. At this time, the compiler has produced 65816
assembler source files for the Apple IIGS's ORCA/M assembly. The IBM PC was shut
down after the compiler had achieved a sufficient level of stability, and Apple IIGS was
used exclusively for development. When it was first released, the compiler included full
support for the GS/OS operating system and toolkit for the Apple IIGS.
Unfortunately, ORCA/Modula-2 never really had a big market impact because of the
failure of the Apple IIGS.
However, the compiler work was kept going for a brief period of time in 1995 before
coming to a standstill.
The compiler's source code is now available on GitHub. [435]
435. Oriel
The LeBlond Group's Power Tools series of educational books includes the
scripting language Oriel. It was initially created for Microsoft Windows 3.0 and released
in 1991 along with the book Windows 3 Power Tools. Its documentation refers to it as
a "graphics-based batch language." [436] Versions of the language, however, were also
included in the 1992 and 1994 releases of Windows 3.1 Power Tools and Windows NT
Power Tools, respectively. Figure 171.
Figure 171 : Oriel logo
297
436. Orwell
Orwell is a compact, lazy-evaluation functional programming language that was
created mostly by Martin Raskovsky and initially made public in 1984 by Philip Wadler
while he was a Research Fellow in the Oxford University Computing Laboratory's
Programming Research Group. It was created as a free substitute for Miranda, was a
precursor of Haskell, and one of the first programming languages to provide pattern
matching and list comprehensions. [437]
437. Oxygene
For Microsoft's Common Language Infrastructure, the Java Platform, and Cocoa,
RemObjects Software created Oxygene (formerly known as Chrome). Figure 172.
Based on Object Pascal from Delphi, Oxygene also draws inspiration from C#, Eiffel,
Java, F#, and other languages. [438]
Figure 172 : Oxygene logo
438. Oz
Oz is a multiparadigm programming language that was created for programming
language instruction in the Programming Systems Lab at the Université catholique de
Louvain. Concepts, Techniques and Models of Computer Programming is its standard
textbook. In 1991, Gert Smolka and his pupils created Oz for the first time.
The creation of Oz resumed in 1996 under joint development with Peter Van Roy and
Seif Haridi's research team at the Swedish Institute of Computer Science. The Mozart
Consortium, a multinational team that was initially made up of Saarland University, the
Swedish Institute of Computer Science, and the Université catholique de Louvain, has
been continuously working on Oz since 1999. In order to make Mozart development
more accessible to a wider population, management of the development was given to a
core group, the Mozart Board, in 2005. [439]
298
439. P
Microsoft and the University of California, Berkeley created P, a programming
language for asynchronous event-driven programming for the Internet of Things.
[440],Figure 173.
Figure 173 : P logo
440. P4
P4 is a programming language used to manage packet forwarding planes in
networking equipment like switches and routers. P4 is a domain-specific language
containing a variety of constructs specialized for network data forwarding, unlike a
general purpose language like C or Python. P4 is maintained by the P4 Language
Consortium, a non-profit organization housed under the Open Networking Foundation,
and is distributed as open-source, permissively licensed code. [441]
441. P′′
Corrado Böhm developed the primitive computer programming language P′′ (P
double prime) in 1964 to describe a class of Turing machines. [442]
The formal definition of P′′ (hereafter P′′) is a group of words on the four-letter alphabet
{R, λ ,(,)}, as follows:
•
P′′ contains the words R and λ .
•
If P′′ contains the words q1 and q2, then q1q2 is also a word in P′′.
•
If P′′ contains the word q, then P′′ contains the word (q).
•
The only words in P′′ are those that can be derived from the first three rules.
299
442. ParaSail
PaAn object-oriented parallel programming language is called ParaSail (Parallel
Specification and Implementation Language). Figure 174.
Both on its official website and in a blog, its concept and ongoing execution are
described[443].
A ParaSail "Hello world" application looks like this:
func Hello_World(var IO) is
IO.Println("Hello, World");
end func Hello_World;
Figure 174 : Parasail logo
300
443. PARI/GP
The primary objective of the computer algebra system PARI/GP is to make
computations in number theory easier. Figure 175.
The GNU General Public License governs versions 2.1.0 and later. Most widely used
operating systems support it. [444]
Figure 175 : PARI/GP logo
301
444. Pascal – ISO 7185
Niklaus Wirth created Pascal, an imperative and procedural programming
language, as a compact, effective language with the goal of promoting excellent
programming practices through the use of structured programming and data structuring.
It bears Blaise Pascal's name, a French mathematician, philosopher, and physicist.
[445],Figure 176.
302
Figure 176 : Pascal window
303
445. Pascal Script
The scripting language Pascal Script, which is based on the computer language
Pascal, enables automated runtime control over scriptable servers and client software.
It is carried out via a free scripting engine with a byte code interpreter and
compiler.[446]
The bulk of Object Pascal constructs are supported by Pascal Script, making it partially
compatible with Delphi, Free Pascal, and GNU Pascal.
The program was initially created by Carlo Kok under the name CajScript, changed to
Innerfuse Pascal Script with version 2.23, acquired by RemObjects, renamed once again
to RemObjects Pascal Script, and made available as open source software for the Delphi
IDE. CajScript has been ported to Free Pascal as of version 2.07. Pascal Script has been
a standard part of the Lazarus IDE since 2017.
446. PCASTL
An interpreted high-level programming language called PCASTL, or Parent and
Childset Accessible Syntax Tree Language, is used. 2008 saw Philippe Choquette
develop it. The PCASTL is made to make writing self-modifying code simpler. The
reserved words parent and childset in the language can be used to access the nodes of
the syntax tree of the current piece of code.
Similar to R, statements can be separated by semicolons but are not need to. A variable's
type can change during a session, just like in R. Balanced brackets ( and ) are used in
PCASTL to create blocks, just like in C and R. [447]
The precedence and associativity of PCASTL operators are the same as those of their C
counterparts. The ++ and — operators are used similarly to C to increment or decrement
a variable before or after it is used in an expression. For loops are defined similarly to
C. An illustration of PCASTL employing the ++ operator and the reserved word for:
for (i = 1; i < 4; i++) print(i)
Functions and comments in PCASTL are defined like in R:
# function definition (comment)
a = function()
{ print("Hello, world!") }
# function call
a()
304
447. PCF
In the field of computer science, Gordon Plotkin first introduced Programming
Computable Functions (PCF) in 1977. PCF was based on previously unpublished
research by Dana Scott. It can be compared to a simpler form of contemporary typed
functional languages like ML or Haskell or an expanded version of the typed lambda
calculus. The original PCF model was presented by Robin Milner. Milner's model was,
however, deemed inadequate because it was mostly based on PCF's syntax. In the 1990s,
the first two totally abstract models without the need of syntax were developed.
These models are based on Kripke logical relations and game semantics. Since neither
of these models was truly presentable, it was initially believed that neither was entirely
suitable. Ralph Loader, however, showed that there could not be an effectively
presentable totally abstract model since the issue of program equivalence in the financial
component of PCF cannot be resolved.[448]
448. PEARL
The computer programming language PEARL, or Process and experiment
automation realtime language, was created for multitasking and real-time programming.
High-level languages tend to be more platform-neutral. The language has undergone a
number of standardization processes since 1977 thanks to the Deutsches Institut für
Normung. The most recent version is PEARL-90, which became DIN 66253-2 in
1998.[449]
449. PeopleCode
PeopleCode, a proprietary object-oriented programming language, is used in
PeopleSoft applications to define business logic. PeopleCode has a comparable syntax
to other programming languages and is available in both strongly-typed and looselytyped versions. The bigger PeopleTools framework includes PeopleCode and its runtime environment. PeopleCode has changed over time, and the PeopleSoft applications'
inconsistent implementation of it reflects this. There is some Java programming
language interoperability available with PeopleCode.
You can refer to PeopleTools definitions, such as record definitions or pages, without
requiring hard-coded string literals, for instance, by utilizing definition name references.
Other language features, such PeopleCode data types and metastrings, show how closely
PeopleTools and Structured Query Language interact with one another (SQL).
PeopleCode's dot notation, classes, and methods resemble those of other object-oriented
languages like Java. One of the key components of PeopleTools 8 was object
syntax.[450]
305
450. Perl
Two high-level, all-purpose, interpreted, dynamic programming languages make
up the Perl family. Figures (177+178+179+180).
Prior to Perl 6's name being formally changed to Raku in October 2019, "Perl" also
referred to Perl 5, Perl 6's revised "sister language," from 2000 to 2019.[451]
Figure 177 : The Camel symbol used by O'Reilly Media
Figure 178 : The onion logo used by The Perl Foundation
Figure 179 : Alternative Perl 5 Logo
306
Figure 180 : Camelia, the logo for the Perl 6 project
451. PDL
A collection of free software array programming extensions for the Perl
programming language is known as Perl Data Language (abbreviated PDL). PDL adds
the ability to operate huge multidimensional arrays as vector objects and expands the
range of data structures that come with Perl. Additionally, it offers tools for graphical
charting and presentation, machine learning, computer modeling of physical systems,
and image processing. Higher-dimensional operations (such matrix multiplication) are
enabled, and straightforward operations are automatically vectorized across whole
arrays. [452]
452. Pharo
A cross-platform, open-source implementation of the traditional Smalltalk-80
programming language and runtime is called Pharo. Figure 181. It is built on a virtual
machine for OpenSmalltalk called Cog (VM), which evaluates a dynamic, reflective,
and object-oriented programming language with a syntax similar to Smalltalk-80. [453]
Figure 181 : Pharo logo
307
453. PHP
A general-purpose programming language designed specifically for web
development is PHP. Rasmus Lerdorf, a Danish-Canadian programmer, first developed
it in 1993, and it was made public in 1995. Figure 182.
The PHP Group now creates the PHP reference implementation. Personal Home Page
was the first meaning of PHP, however it is now used to refer to the recursive initialism.
Hypertext Preprocessor: PHP.
Figure 182 : PHP logo
A PHP interpreter, which can be implemented as a module, daemon, or Common
Gateway Interface (CGI) executable, typically processes PHP code on a web server. The
output of PHP code that has been interpreted and performed on a web server could be
any kind of data, including produced HTML or binary image data, and would make up
all or a portion of an HTTP response. Figure 183.
There are numerous web frameworks, online content management systems, and web
template systems that can be used to organize or make the development of that answer
easier. In addition, PHP may be used for a wide range of programming activities outside
the context of the web, including the control of robotic drones and standalone graphical
apps. Additionally, the command line can be used to execute PHP code directly.
Figure 183 : The elePHPant, PHP mascot
308
The following "Hello, World!" program is written in PHP code embedded in an HTML
document:
<!DOCTYPE html>
<html>
<head>
<title>PHP "Hello, World!" program</title>
</head>
<body>
<?php
echo '<p>Hello, World!</p>';
?>
</body>
</html>
The simplest version of Hello, World! can be written like this, with the closing
tag?> omitted as preferred in files containing pure PHP code, since there is no
requirement that PHP code be embedded in HTML.
The PHP interpreter only runs PHP code inside of its delimiters.?php echo "Hello,
World!"; PHP does not process anything outside of its delimiters, but non-PHP material
is still subject to the control structures that the PHP code describes.
The most popular delimiters are?php and?php to open and close PHP sections,
respectively. There is a condensed version as well. Figure 184.
Since support for them can be turned off in the local PHP setup, it is not recommended
to use such a short delimiter, which reduces the portability of script files. On the other
hand, there is no advice against using the echo short tag?=. Before PHP 5.4.0, the short
open tag configuration setting had to be enabled for this short syntax for echo to
function; starting with PHP 5.4.0, it is always accessible. All of these delimiters are used
to divide PHP code from other types of content, such JavaScript or HTML markup.
Therefore, the shortest "Hello, World!" PHP program is: <?='Hello, World!';
In XHTML and other XML documents, the first type of delimiters,?php and?>, creates
correctly formed XML processing instructions. This indicates that the resulting serverside file, which contains both PHP code and additional markup, is well-formed
XML.[454]
309
Figure 184 : A broad overview of the LAMP software bundle, displayed here together
with Squid
454. Pico
The Vrije Universiteit Brussel's Software Languages Lab is where the
programming language Pico was created. The goal of developing the language was to
teach fundamentals of programming to students who were not computer science majors.
For those who do not wish to work hard to learn a language in order to gain its elegance
and power, Pico might be considered as an attempt to create a pleasant and fun language.
They achieved this by modifying the semantics of Scheme.
The book "Structure and Interpretation of Computer Programs" by Abelson and
Sussman served as inspiration for the Software Languages Lab as they created Pico.
They were also affected by the high school or academic level programming instruction.
The word "Pico" means "little"; a small language was intended to be developed for
educational purposes. [455]
310
455. Picolisp
A programming language called PicoLisp is a variety of Lisp. Operating systems
that are compliant with the Portable Operating System Interface (POSIX), such as
Linux, can run it. Its simplicity and minimalism are its standout characteristics. Its
foundation is a cell, a single internal data type. Figure 185.
A programmer can employ three separate data types (numbers, symbols, and lists) on
the language level, which are each represented by a cell and distinguished by bits at the
cell's end. It is open-source software that was distributed for free under the MIT License
(X11). [456]
Figure 185 : Picolisp logo
456. Pict
One of the very few statically typed programming languages based on the calculus is Pict. The language was first developed at the University of Edinburgh in
1992, and since 1998, work on it has largely ceased. The language is still in the testing
phase. [457]
311
457. PILOT
A straightforward high-level programming language called Programmed Inquiry,
Learning, or Teaching (PILOT) was created in the 1960s. It was an early foray into the
field of computer-assisted instruction, much like its younger sibling LOGO.
PILOT is an imperative language that shares a fundamental form and structure with
FORTRAN and BASIC. PILOT was created by John Amsden Starkweather, a
psychology professor at the University of California, San Francisco medical center. Its
keywords are single characters, T for "type" to print text. He created Computest, a
straightforward language for automating learning exams, in 1962. He created a followup project called PILOT for different computers at the time, including the SDS 940,
beginning in 1968. [458]
The following syntactic components can be found in one line of PILOT code, going
from left to right:
•
a command letter; a choice label
•
a choice between Y (for yes) and N. (for no)
•
a possible conditional statement included in parentheses.
•
the colon (":")
•
a single operand or a group of operands separated by commas.
A label can also appear in a line by itself, unaccompanied by any other code. A
label's syntax consists of an asterisk and an identifier (alphanumeric string with
alphabetic initial character).
312
458. Pipelines
The VM/CMS operating system has a feature called CMS Pipelines that enables
the creation and use of pipelines. A pipeline of programs runs on a stream of sequential
records. The following program in the pipeline reads the records that were written by
the previous program. Since reading and writing are carried out through a deviceindependent interface, any software can be integrated with any other program.
A straightforward example that reads a disk file and distinguishes between records that
contain and do not include the text "Hello" The other entries are converted to upper
case; the modified records have the string "World!" added to each of them. After then,
the records from the two streams are merged and written to a new output file. [459]
PIPE (end ?)
< input txt
| a: locate /Hello/
| insert / World!/ after
| i: faninany
| > newfile txt a
? a:
| xlate upper
| i:
In this illustration, the stage reads the input disk file and sends the records to the
following step. The input stream is split into two output streams during the locate stage.
Records containing Hello that are the main output of locate are sent to the insert stage.
The insert stage alters the input records in accordance with the arguments it is given
before sending them to the output. Faninany, which creates a single output stream by
combining data from all input streams, is connected to the output. The new disk file is
where the output is written. Figure 186.
The records that did not fit the selection criterion are contained in the secondary output
of locate, which is identified by the second appearance of the a: label.
These entries are transferred to the secondary input stream of faninany after being
converted to upper case (by the xlate stage) (marked by the second occurrence of the i:
label). In this instance, there are two interconnected pipelines making up the pipeline
topology. The pipeline set's different pipelines are distinguished from one another by
the end character (in this case, the?). Records read from the input file are routed through
one of the pipeline topology's two paths. CMS Pipelines makes sure that records get at
faninany in the sequence in which they passed via locate because neither of the routes
contain stages that need to buffer records.
With each stage on a single line, the sample pipeline is depicted in "portrait form."
All phases of a pipeline are written on a single line when it is entered as a CMS
command.
313
Figure 186 : Pipeline logo
459. Pizza
Prior to the addition of generics to the Java programming language, there was an
open-source superset of Java 1.4 called Pizza. Pizza also included function pointers and
algebraic types with case classes and pattern matching in addition to its own approach
to incorporating generics into the language.
The creators created a Java-compatible compiler in August 2001. The majority of Pizza
apps can function in a Java environment, however some situations will provide
challenges. The final version of Pizza was made available in January 2002. After that,
its primary creators shifted their attention to the Generic Java project, a further attempt
to include generics into Java that was adopted as of version 5 of the language.
The Scala programming language has advanced the pattern matching and other
functional programming-like capabilities. According to Martin Odersky, "We intended
to more thoroughly merge the functional and object-oriented components than we had
been able to do with the Pizza language in the past.
We made a clumsier try with Pizza, and I believe we succeeded much more smoothly
with Scala." [460]
Example :
public final class Main {
public int main(String args[]) {
System.out.println(
new Lines(new DataInputStream(System.in))
.takeWhile(nonEmpty)
.map(fun(String s) -> int { return Integer.parseInt(s); })
.reduceLeft(0, fun(int x, int y) -> int { return x + y; }));
while(x == 0) { map.create.newInstance() } } }
314
460. PL-11
R.D. Russell of CERN created PL-11, a high-level machine-oriented
programming language for the PDP-11, in 1971. It is similar to PL360 and is crosscompiled on other machines. It is written in Fortran IV.
The Omega project, a particle physics facility running at CERN (Geneva, Switzerland)
in the 1970s, was where PL-11 was initially created.
The original version was created for the CII 10070, a French-made clone of the XDS
Sigma 7. It was transferred to the IBM 370/168, which was then a component of the
CERN computer center, during the end of the 1970s.
The language is described in a report from CERN. [461]
461. PL/0
PL/0 is a general-purpose programming language that is similar to, but much
easier than, Pascal. It is designed as an educational programming language. It serves as
an illustration of how to build a compiler. It was first mentioned in Niklaus Wirth's 1976
book, Algorithms + Data Structures = Programs. There are relatively few basic
arithmetic operations, no real numbers, and only "if" and "while" blocks are available
as control-flow constructs in this language. These restrictions prevent practical
application development in this language, although they aid in the compiler's
compactness and simplicity.
The example that follows is from a language like this called PL/0E. This program
generates squares for values between 1 and 10. The WriteLn procedure has mostly
taken the place of the exclamation mark in today's compiler building courses. [462]
VAR x, squ;
PROCEDURE square;
BEGIN
squ:= x * x
END;
BEGIN
x := 1;
WHILE x <= 10 DO
BEGIN
CALL square;
! squ;
x := x + 1
END
END.
315
462. PL/B
Programming Language for Business, also known as PL/B, is a business-oriented
programming language that was created by Datapoint in 1972 as an alternative to
COBOL because COBOL at the time lacked the capabilities to deal with Datapoint's
built-in keyboard and screen and could not fit into the limited memory of the company's
8-bit computers. [463]
463. PL/C
The computer language PL/I has an instructional dialect called PL/C that was
created at Cornell University's Department of Computer Science in the early 1970s
under the direction of Professor Richard W. Conway and graduate student Thomas R.
Wilcox. PL/C was created with the express purpose of being used for programming
education. The huge PL/I language was implemented almost entirely in the PL/C
compiler, which had the rare ability to never fail to compile a program by extensively
correcting many syntax problems automatically and turning any residual syntax errors
into output statements. At the time, students submitted their programs on IBM punch
cards, which meant that they might not receive their output for several hours. According
to a late 1970s textbook on PL/I, "PL/C... the compiler for PL/I developed at Cornell
University... is widely used in teaching programming." More than 250 additional
colleges have embraced PL/C. Figure 187.
Similarly, a study of programming languages conducted in the middle to late 1970s
stated that "PL/C is a commonly used dialect of PL/I." [464]
Figure 187 : Cover of book that described the PL/C dialect
316
464. PL/I – ISO 6160
Programming Language One, often known as PL/I (pronounced /pi l wn/ and
occasionally written PL/1) is a procedural, imperative programming language created
and distributed by IBM. It is made for system programming, business, engineering, and
science. Since its introduction in the 1960s, it has been employed by academic, business,
and industrial groups and is still in use today. [465]
Hello World example:
Program "Hello World"
Hello2: proc options(main);
put list ('Hello, World!');
end Hello2;
465. PL/M
Gary Kildall created and developed the high-level PL/M programming language
for Hank Smith at Intel in 1973 for its microprocessors. PL/M is an acronym for
Programming Language for Microcomputers. [466]
466. PL/P
The mid-level PL/P programming language, also known as Programming
Language for Prime (computers), was created by Prime Computer to replace Fortran IV
as their principal system programming language. A subset of PL/I was PL/P. .[467]
Later updates to the PRIMOS operating system for computers in the Prime 50
Series were primarily created in PL/P. During the early development of PRIMOS, some
Fortran IV modules were converted to PL/P.
Overtaking the employment of the Prime C compiler, the CPL (PRIMOS) scripting
language, and the Fortran IV compiler in commercial applications, PL/P was the most
widely used compiled programming language for PRIMOS applications.
317
467. PL/S
Programming Language/Systems, also known as PL/S, is a PL/I-based "machineoriented" programming language. As an alternative for assembly language for internal
software projects, IBM created Basic Systems Language (BSL) in the late 1960s; it
supported inline assembly and provided explicit control over register utilization. [468]
The batch utility IEHMOVE and the Time Sharing Option of MVT, or TSO, were two
early PL/S initiatives.
IBM began rewriting its flagship operating system in PL/S around the 1970s. IBM
rebuffed requests from users to distribute PL/S for their use, claiming that the software
was proprietary. They feared that the availability of open PL/S would provide rival PCM
vendors like Amdahl, Itel (National Advanced Systems), Storage Technology
Corporation, Trilogy Systems, Magnuson Computer Systems, Fujitsu, and Hitachi an
advantage over their rivals. Nevertheless, despite their refusal to provide a compiler,
they shipped the PL/S source code to many customers, who consequently became
accustomed to reading it.
Because it was closed PL/S, the operating system could only be easily improved and
modified by IBM.
Programming Language/Advanced Systems (PL/AS), PL/S II, PL/S III, and PL/S IV
followed PL/S, and finally PL/X (Programming Language/Cross Systems). The DPPX
operating system was created using a closely comparable language called PL/DS
(Programming Language/Distributed Systems), and PL/DS II was a port of the S/370
architecture for the DPPX/370 port.
As the demand for computers and software changed away from IBM mainframes and
MVS, IBM reversed course and started providing chosen customers with the most recent
versions of PL/S. (ISVs through the Developer Partner program.)
318
468. PL/SQL
The Oracle relational database and SQL (Procedural Language for SQL) are
procedural extensions created by Oracle Corporation. Oracle Database (since version 6;
stored PL/SQL procedures, functions, packages, and triggers are available since version
7), Times Ten in-memory database (as of version 11.2.1), and IBM Db2 all support
PL/SQL (since version 9.7). PL/SQL functionality is typically increased with each new
Oracle Database version by Oracle Corporation. [469]
Conditions and loops are examples of procedural language features found in PL/SQL.
It permits the declaration of triggers, procedures, functions, types, constants, and
variables of those sorts. It can cope with exceptions (run-time errors). It is possible to
support arrays by using PL/SQL collections. Object-oriented capabilities have been
incorporated into Oracle Database implementations starting with version 8.
Procedures, functions, packages, types, and triggers are PL/SQL units that can be
created and stored in the database for reuse by programs that use any of the Oracle
Database programmatic interfaces.
In the past, the Oracle was founded in 1992, and the first public version of PL/SQL was
released in 1995. The ISO SQL/PSM standard is implemented. [469]
469. PL360
Niklaus Wirth, Joseph W. Wells Jr., and Edwin Satterthwaite Jr. created the
system programming language PL360 (also known as PL/360) for the IBM System/360
computer at Stanford University. Although the implementation of PL360 was probably
finished when Wirth left Stanford in 1967, a description of the program wasn't released
until early 1968. [470]
319
470. PLANC
A high-level programming language is PLANC, or Programming LAnguage for
Nd Computers. Norsk Data created compilers for a number of architectures, including
the Intel x86, Motorola 68000, 88000, Nord-10 minicomputers, and ND-500
superminicomputer. [471]
The language is cross-platform software by design. At Norsk Data, it was primarily
utilized for creating high level systems software, such as the most advanced operating
systems and compilers.
Modules and procedures are used to organize PLANC programs.
The following is a very basic illustration of a PLANC program:
MODULE mod
INTEGER ARRAY : stack (0:100)
PLATFORM: mprog
FIGURINE: I j, k, and m
INISTACK stack
1 =: i
2 =: j
i+j =: k, and k = :m
ENDROUTINE
ENDMODULE
The assignment operator differs from common programming languages in that it
evaluates from left to right: It calculates the value first, then stores it. In contrast,
variables that are initialized at compile time evaluate from right to left.
The value can be stored more than once because the assignment operator returns the
value: 5 =: a =: b would place 5 in the variables A and B. It moves in the same direction
as Plankalkül, ALGOL 60, Mary (another little-known Norwegian language), and the
widely used language C. A related unique syntactic feature is the ability to design a
function to take the computed value of the expression on its left side as an input.
Additionally, there is no need for parenthesis to wrap a single additional argument. The
syntactic distinction between functions and operators is muddled by the resultant infix
notation. Conceptually, such expressions appear to have a computed value flowing from
left to right.
320
471. Plankalkül
Between 1942 and 1945, Konrad Zuse developed the computer language
Plankalkül with the idea of using it for technical purposes (German pronunciation:
[plankalkyl]). It was the first high-level programming language created by a computer.
Relational algebra and the APL programming language have both been contrasted with
plankalkül. In addition to assignment statements, subroutines, conditional statements,
iteration, floating-point arithmetic, arrays, hierarchical record structures, assertions, and
exception handling, it contains advanced features like goal-directed execution.
The generalized graph (verallgemeinerter Graph) data structure provided by the
Plankalkül can be used to depict geometrical structures. Frege's Begriffsschrift of 1879
and Plankalkül both had an unusual notation that made use of several lines (dealing with
mathematical logic). [472]
Some characteristics of the Plankalkül are:
•
Only local variables are supported.
•
functions only support call by value.
•
arrays and tuples are the only composite types.
•
there are conditional expressions
•
for and while loops.
•
no goto.
472. Planner
Programming language Planner, created at MIT by Carl Hewitt and originally
published in 1969, is frequently written as "PLANNER" in publications even though it
is not an acronym.
Subsets like Micro-Planner and Pico-Planner were first implemented, and then Julian
Davies at the University of Edinburgh with the POP-2 programming language basically
implemented the entire language as Popler. In the 1970s, key tools for artificial
intelligence research included derivatives like QA4, Conniver, QLISP, and Ether (see
scientific community metaphor), which had an impact on commercial innovations like
Knowledge Engineering Environment (KEE) and Automated Reasoning Tool
(ART).[473]
473. PLEX
The programming language PLEX (Programming Language for Exchanges) is
specialized, concurrent, and real-time. The architecture of the AXE telephone
exchanges made by Ericsson, which the proprietary PLEX language was intended to
control, is substantially related to it.
PLEX was created in the 1970s at Ericsson by Göran Hemdahl, and it has undergone
constant development ever since. In 2008, the term "cross between Fortran and a macro
assembler" was used to characterize PLEX. [474]
321
474. PLEXIL
NASA developed and is currently refining PLEXIL (Plan Execution Interchange
Language), an open source automation system.
Automation technologies including the LADEE, Edison Demonstration of Smallsat
Networks, NASA K10 rover, Mars Curiosity rover's percussion drill, Deep Space
Habitat and Habitat Demonstration Unit, Autonomy Operating System (AOS), and
procedure automation for the International Space Station all employ PLEXIL.
The PLEXIL Executive is an execution engine that implements PLEXIL and can
interface with external systems to be controlled and/or queried using a software
framework that is provided. Future NASA space missions are expected to benefit from
the automation technology demonstrated by PLEXIL.
The documentation and binaries are freely accessible as open source with a BSD license
from SourceForge.net. [475]
475. Plus
Plus is a "Pascal-like" machine implementation language from the University of
British Columbia (UBC), Canada, and it's far primarily based totally at the SUE machine
language, which changed into evolved on the University of Toronto withinside the early
1970s. Although it changed into evolved at Sperry Univac in Roseville, Minnesota, the
Univac PLUS is a separate programming language, and isn't always the difficulty of this
article. [476]
322
476. POP-11
POP-11 is an iteratively compiled reflective programming language with
numerous interpreted language-like characteristics. It is the primary language used in
the Poplog programming environment, which was created at the University of Sussex
initially and more recently at the University of Birmingham's School of Computer
Science, which also houses the main Poplog website.
The language POP-11, which was developed at Edinburgh University as an extension
of POP-2, has an open stack concept (like Forth, among others). Although it has enough
functionality for many other classes of problems, it is primarily procedural, includes
declarative language elements, including a pattern matcher, and is primarily used for
artificial intelligence research and teaching.
Since POP syntax is more recognizable to programmers of more traditional languages
like Pascal than Lisp, it is frequently used to explain symbolic programming techniques
to them. The fact that POP-11 supports first-class functions is one of its features.
The Poplog system's primary language is POP-11. The ability to support a much wider
range of extensions (including run-time extensions, like adding new data-types) than
would be possible using only a macro facility is made possible by the availability of the
compiler and compiler subroutines at run-time (a requirement for incremental
compilation).
This enabled it possible to add Prolog, Common Lisp, and Standard ML incremental
compilers as needed to facilitate development in both languages or development in the
second language without utilizing any POP-11 features. Poplog could thus be used by
academics, researchers, and programmers who were only interested in one of the
languages.
The Clementine Data-mining system, created by ISL, was the POP-11 product that was
the most successful to be created. After SPSS acquired ISL, they made the decision to
port Clementine to C++ and Java, and after much effort, they eventually succeeded (and
perhaps some loss of the flexibility provided by the use of an AI language). [477].
POP-11 was once exclusively accessible as a component of the pricey commercial
product Poplog, but from around 1999 it has been included for free in the Open Source
version of Poplog along with a number of other packages and educational libraries.
Birmingham offers an online version of ELIZA that makes use of POP-11.
David Young created a set of instructional and interactive development tools for image
processing and vision at the University of Sussex using POP-11 along with C and
Fortran, and he made them available via the Popvision extension to Poplog.
323
477. POP-2
POP-2 (also known as POP2) is a programming language that was created by
Robin Popplestone and Rod Burstall at the University of Edinburgh around 1970. POP1 was created by Robin Popplestone in 1968 and was originally known as COWSEL.
The languages LISP and ALGOL 60, as well as Peter J. Landin's theoretical concepts,
were among its numerous ancestors. It used an incremental compiler, which gave it
some of the flexibility of an interpreted language without the overhead of an interpreted
language. This flexibility included allowing new function definitions at run time and
modification of function definitions while a program was running, both of which are
features of dynamic compilation. [478]
478. PostScript
In the world of desktop publishing and electronic publishing, PostScript (PS) is a
language used to describe pages. It is a concatenative, dynamically typed programming
language. Figure 188. Between 1982 and 1984, it was developed at Adobe Systems by
John Warnock, Charles Geschke, Doug Brotz, Ed Taft, and Bill Paxton. [479]
Figure 188 : PostScript logo
479. PortablE
A meta-compiler that was created from scratch in E supports numerous targets
and can compile itself. [480]
• Windows, AmigaOS (68k), AmigaOS 4 (PPC), AROS, and MorphOS are among
the platforms available.
• Amiga E and C++ as targets.
• Status: open source, closed source, stable, mature, and freeware.
324
480. POV-Ray SDL
The Durability of Vision A cross-platform ray-tracing application called Ray
Tracer creates graphics from a text-based scene description and is most usually
abbreviated as POV-Ray. It was initially based on DKBTrace, a program created for
Amiga systems by David Kirk Buck and Aaron A. Collins. Because of the contributions
made by Alexander Enzmann, the creator of the previous Polyray raytracer, there are
additional impacts from that program. Figure 189.The source code for the free and opensource program POV-Ray is made available under the AGPL-3.0-or-later license. [481]
Figure 189 : POV-Ray SDL logo
481. Powerhouse
Originally developed by Quasar Corporation (after renamed Cognos
Incorporated) for the Hewlett-Packard HP3000 mini-computer as well as Data General
and DEC VAX/VMS systems, PowerHouse is a byte-compiled fourth-generation
programming language (or 4GL). [482]
It originally consisted of five parts:
For creating a centralized data dictionary used by all other components, use QDD, or
Quasar Data Dictionary.
A character-based screen generator is QDesign.
Quick: a character-based, interactive screen processor (running screens generated by
QDesign)
A report writer QUIS
Batch transaction processor, or QTP.
325
482. PowerBuilder – 4GL GUI application generator from Sybase
Since buying Sybase in 2010, SAP has owned the integrated development
environment known as PowerBuilder. On July 5, 2016, SAP and Appeon signed a
contract under which Appeon, a separate business, will be in charge of creating,
promoting, and maintaining PowerBuilder. Figure 190.
PowerBuilder has been upgraded with new standards throughout time. PowerBuilder
underwent a significant upgrade in 2010 to enable the Microsoft.NET Framework.
OData, dockable windows, and 64-bit native programs all received additional support
in 2014. 2019 saw the addition of functionality for quickly developing non-visual.NET
assemblies and RESTful Web APIs using the C# programming language and the.NET
Core framework. New UI technologies and cloud architecture were also incorporated
into the redesign of PowerScript client app development. [483]
According to the product roadmap, Appeon has been providing new features every 6 to
12 months that concentrate on four main priority areas: maintaining core functions,
updating application user interfaces, enhancing developer efficiency, and adding more
Cloud technologies.
Figure 190 : PowerBuilder logo
326
483. PowerShell
Microsoft's PowerShell is a tool for task automation and configuration
management that combines a command-line shell with a scripting language. With the
release of PowerShell Core on August 18, 2016, Windows PowerShell, which was
formerly a Windows-only component, became open-source and cross-platform. The
first is constructed using the.NET Framework, whereas the second uses.NET Core.
The majority of administrative operations in PowerShell are carried out using cmdlets,
which are specialized.NET classes that execute a certain operation. These operate by
gaining access to information in various data stores that are made accessible to
PowerShell via providers, such as the file system or Windows Registry. PowerShell can
have cmdlets and providers added by other developers.
Scripts, which in turn may be bundled as modules, may use cmdlets. The.NET API and
cmdlets function together.
Administrators may carry out administrative operations on both local and remote
Windows systems thanks to PowerShell's support for.NET Remoting, WSManagement, CIM, and SSH. Additionally, PowerShell has a hosting API that enables
the PowerShell runtime to be integrated into other programs. These programs can then
use PowerShell features to carry out tasks that are exposed via the graphical user
interface. By implementing the graphical management tools as PowerShell hosts that
call the required cmdlets, Microsoft Exchange Server 2007 was able to provide its
management capabilities as PowerShell cmdlets and providers.
Other Microsoft products, such as Microsoft SQL Server 2008, also make use of
PowerShell cmdlets to offer their management interface. Figure 191.
Similar to man pages in Unix shells, PowerShell has its own comprehensive consolebased help available with the Get-Help cmdlet. The Update-Assistance cmdlet can be
used to retrieve the most recent local help materials from the Internet.
Alternately, you can use the -online switch to Get-Help to get online assistance on a
case-by-case basis. [484]
Figure 191 : PowerShell logo
327
484. PPL
Thomas A. Standish created the Polymorphic Programming Language (PPL) in
1969 at Harvard University. It has an APL-like base language and is an interactive,
expandable language.
The language S has been affected by the assignment operator <- (or ←). [485]
485. Processing
In order to teach non-programmers the foundations of computer programming in
a visual context, the electronic arts, new media art, and visual design communities
created the free graphical library and integrated development environment (IDE) known
as Processing. [486]
Java is the language used by Processing, with additional simplifications like extra
classes and aliased mathematical operations.
Additionally, it offers a graphical user interface to make compilation and execution
easier. Figure 192. Other initiatives like Arduino and Wiring were inspired by the
Processing language and IDE. In Processing, the most basic "Hello World" program is
represented by the code: / This prints "Hello World." to the IDE console.
println("Hello World.");
However, due to the more visually-oriented nature of Processing, the following
code(10) is a better example of the look and feel of the language.
// Hello mouse.
void setup() {
size(400, 400);
stroke(255);
background(192, 64, 0); }
The simplest possible version of a "Hello World" program in Processing is:
// This prints "Hello World." to the IDE console.
println("Hello World.");
However, due to the more visually-oriented nature of Processing, the following
code(10) is a better example of the look and feel of the language.
328
// Hello mouse.
void setup() {
size(400, 400);
stroke(255);
background(192, 64, 0); }
void draw() {
line(150, 25, mouseX, mouseY); }
void draw() {
line(150, 25, mouseX, mouseY); }
Figure 192 : Processing logo
329
486. Prograph
Prograph is a multiparadigm, visual, object-oriented, and dataflow programming
language that use iconic symbols to describe data-related tasks. Prograph Classic and
Prograph CPX were commercial Prograph software development environments that
were offered for many years on the Apple Macintosh and Windows platforms before
being discontinued in the late 1990s. Figure 193.
The Marten software development environment has recently been released, bringing
back support for the Prograph language on macOS. [487]
Figure 193 : Prograph logo
487. Project Verona
In order to make other programming languages safer, Microsoft created Project
Verona, an experimental research programming language designed to handle memory
issues. The project is being sponsored by Microsoft Research Cambridge research
software engineer Juliana Franco and C# project manager Mads Torgensen. Imperial
College London scholars are also supporting Project Verona. Verona's ownership model
is based on groupings of objects, in contrast to Rust, where it is based on a single object.
The project's objective, according to Microsoft, is to develop a safer memory
management platform.
On GitHub, Project Verona is a live project that is open source and licensed under the
MIT License. [488]
330
488. Prolog
Prolog is a logic programming language related to computational linguistics and
artificial intelligence. Unlike many other programming languages, Prolog is intended
primarily as a declarative programming language. The program logic is expressed in
terms of relations, which are represented as facts and rules. Prolog has roots in firstorder logic, a formal logic. The first step in a calculation is to run a query over these
relations. Alain Colmerauer and Philippe Roussel created the language in 1972 in
Marseille, France, based on Robert Kowalski's procedural interpretation of Horn clauses
at the University of Edinburgh. One of the first logic programming languages was
Prolog, which is still the most widely used today and has both free and paid versions.
Along with its original intended field of usage, natural language processing, the
language has been used for automated planning, theorem proving, expert systems, term
rewriting, and type systems. The development of administrative and networked
applications, as well as graphical user interfaces, is supported by contemporary Prolog
environments. For specialized tasks that benefit from rule-based logical inquiries, such
accessing databases, using voice control systems, and filling out templates, Prolog is a
good fit. [489] Code loading is referred to as consulting in Prolog. The Prolog prompt?allows users to interact with Prolog by entering queries.
In the absence of a solution, Prolog outputs no. If there is a solution, it is printed. If the
query has more than one answer, you can insert a semicolon to request each one.
There are guidelines on good programming practice to improve code efficiency,
readability and maintainability.
Here follow some example programs written in Prolog.
An example of a query:
?- write('Hello World!'), nl.
Hello World!
true.
?-
331
489. PROMAL
Systems Management Associates' PROMAL (PROgrammer's Microapplication
Language) is a structured programming language for MS-DOS, the Commodore 64, and
the Apple II. PROMAL includes a built-in I/O library, long variable names, no line
numbers, functions and procedures with argument passing, real number type, arrays,
strings, and pointers. Indentation is a syntax feature of the language, just like ABC and
Python. [490]
When a program is run, the language's single-pass compiler creates byte code, which is
then interpreted. Figure 194.
The compiler can compile to/from disk and memory because the memory on these early
home computers was quite constrained. An editor that runs in full-screen and a
command shell are included in the C64 software package.
Figure 194 : PROMAL logo
490. Promela
Gerard J. Holzmann developed the verification modeling language PROMELA
(Process or Protocol Meta Language). The language enables dynamic concurrent
process creation, for instance to model distributed systems. Communication across
message channels can be defined in PROMELA models as either synchronous (i.e.,
rendezvous) or asynchronous (i.e., buffered). The SPIN model checker can be used to
assess PROMELA models to ensure that the modeled system exhibits the expected
behavior. As part of the Computer Aided Verification of Automata (CAVA) project, an
implementation that has been tested with Isabelle/HOL is also available. The standard
file extension for Promela files is.pml. [491]
332
491. PROSE modeling language
PROSE was the 4GL mathematical virtual machine that created the Synthetic
Calculus holistic modeling paradigm (AKA MetaCalculus). It was released in 1974 on
Control Data supercomputers as a replacement for the SLANG / CUE simulation and
optimization language created at TRW Systems. Automatic differentiation (AD), which
was designed to loop in the instruction-stack of the CDC 6600 CPU, was used for the
first time in a commercial language.
Even though PROSE was a sophisticated block-structured procedural language, its main
goal was to combine simultaneous-variable mathematical systems including
multidimensional optimization, implicit nonlinear equations, and ordinary differential
equations. In addition to the procedural syntax, each of these types of system models
featured operator templates to automate and solve them. Because the unknowns in these
automated system issues were simultaneous, it was deemed necessary to solve them as
a whole rather than breaking them down into smaller pieces or using algebraic tricks
(such as substitution). Wholeness also referred to algorithmic determinacy or
mathematical "closure," which, if not tainted by numerical instability, made solution
convergence attainable and certain in principle. [492]
492. PROTEL
Procedure Oriented Type Enforcing Language is known as Protel. It is a
programming language developed by Nortel Networks and used on switching systems
for telecommunications, like the DMS-100. The object-oriented version of Protel is
called Protel-2. The PROTEL language, which serves as the foundation for the DMS100 range of switching systems, was created to address the requirements of digital
telephony. Strongly typed, block-structured PROTEL is a language with extensible
structures, variable-sized arrays, and variable-style variable assignment. It is heavily
influenced by PASCAL and ALGOL 68. Through the addition of external compilation
and the expansion of the language's built-in data structures, PROTEL's developers
greatly improved PASCAL of the time. [493]
The operating system (SOS), application (CALLP), development environment (PLS),
and initially the processor are all closely connected with the PROTEL compiler (NT40).
The compiler itself, PLS, SOS, and CALLP are all written in PROTEL. There are certain
elements of the other components that must be included in any explanation of the
PROTEL language.
Although PROTEL has highly stringent type enforcement, the close connection of its
components allows skilled programmers to directly use internal compiler capabilities to
evade some type checking. PROTEL is regarded as being "wordy," with many reserved
words and certain comments sounding like English.
Although PROTEL source code is case-insensitive, reserved words are typically written
in upper case.
333
493. ProvideX
Midway through the 1980s, the business-oriented BASIC derivative known as
Business Basic gave rise to the computer language and development environment
known as ProvideX. ProvideX is a programming language that runs on a variety of
operating systems (Unix, Linux, Windows, and Mac OS X), and it also includes a file
system, presentation layer interface, and other elements. The development of business
applications is the language's main purpose.
Since its debut, ProvideX has incorporated features such a graphical user interface,
client-server capabilities, access to external databases, web services, and, more recently,
object-oriented programming capabilities as the computer industry has evolved.
The ProvideX product line for Independent Software Vendors has been sold, developed,
and supported by PVX Plus Technologies since its acquisition in October 2010.
Following negotiations between Sage Group, EDIAS, and PVX Plus Technologies for
almost two years, Mike King, the language's original designer, will once again be in
charge of its development. [494]
494. Pro*C
An embedded SQL programming language used by Oracle Database DBMSes is
called Pro*C (also known as Pro*C/C++). Pro*C's host language can be either C or
C++. The integrated SQL statements are translated into C or C++ function calls to the
appropriate SQL library by a precompiler during compilation. Standard C or C++ code
generated by the Pro*C precompiler is then translated into an executable by any of a
number of C or C++ compilers. [495]
334
495. Pure
The functional programming language Pure, which replaced the equational
language Q, is dynamically typed and relies on term rewriting. It offers features for
arbitrary-precision arithmetic (multiple-precision integers), macros, user-defined
operator syntax, and compilation to native code using the LLVM. Figure 195.
The GNU Lesser General Public License version 3 or later governs the distribution of
Pure, which is free and open-source software. [496]
It is relatively simple to invoke C functions using Pure.
To print the string "Hello, world!" on the terminal, the following imports the puts
function from the C library:
extern int puts(char*);
hello = puts "Hello, world!";
hello;
Figure 195 : Pure logo
335
496. Pure Data
Miller Puckette created the visual programming language Pure Data (Pd) in the
1990s for the creation of interactive computer music and multimedia works. Despite the
fact that Puckette is the program's primary author, Pd is an open-source project with a
sizable developer community working on new expansions. The BSD-3-Clause governs
its release. Linux, MacOS, iOS, Android, and Windows are all supported. IRIX and
FreeBSD both have ports.
Pd is somewhat compatible with Max/MSP, the for-profit forerunner to the Max
language, and is extremely close to Puckette's initial Max program, created while he
was at IRCAM. They can all be referred to as being part of the Patcher family of
languages. [497]
With the addition of the Graphics Environment for Multimedia (GEM) external and
externals made to work with it, such as Pure Data Packet / PiDiP for Linux and Mac OS
X, framestein for Windows, and GridFlow (as n-dimensional matrix processing, for
Linux, Mac OS X, and Windows), it is now possible to create and manipulate video,
OpenGL graphics, images, etc., in realtime with a wide range of options for interactivity
with audio, external sensors, Since Pd is built to support live collaboration across
networks and the Internet, artists connected through LAN or even in different regions
of the world can work together in real time to produce music. FUDI is a networking
protocol used by Pd. Figure 196.
Figure 196 : Pure Data logo
336
497. PureScript
A strongly typed, fully functional programming language called PureScript can
be translated into JavaScript. With the help of Electron, it is possible to create desktop,
server-side, and web applications. Figure 197.
Most of its syntax resembles that of Haskell. Row polymorphism and extensible records
are also introduced. Additionally, PureScript follows a strict evaluation technique in
contrast to Haskell. [498]
Here is a minimal "Hello world" program in PureScript:
module Main where
import Effect.Console (log)
main = log "Hello World!"
Here, the type of the program is inferred and checked by the PureScript compiler.
A more verbose version of the same program might include explicit type annotations:
module Main where
import Prelude
import Effect (Effect)
import Effect.Console (log)
main :: Effect Unit
main = log "Hello World!"
Figure 197 : PureScript logo
337
498. PWCT
PWCT is a visual programming language that is open source and free. PWCT, or
Programming Without Coding Technology, is a general-purpose visual programming
language that may be used to create systems and applications. PWCT can be used to
introduce students to programming ideas. The project was established in December
2005 as a free-open-source initiative that allows creating the source code once visual
programming is used to create apps. Numerous textual programming languages are
supported by the software for the production of code.
To learn how to develop programs step-by-step and gain a better knowledge of the
program logic, the environment supports the time dimension and allows programmers
to run programs like movies.
Changing time is done using a timeline slider which allow the programmer to select a
specific point in time to view. [499]
499. Python
A high-level, all-purpose programming language is Python. Code readability is
prioritized in its design philosophy, which makes heavy use of indentation. Figure 198.
Python uses garbage collection and has dynamic typing. It supports a variety of
programming paradigms, including procedural, object-oriented, and functional
programming as well as structured programming (especially this). Due to its extensive
standard library, it is frequently referred to as a "batteries included" language.
Python was created by Guido van Rossum in the late 1980s to replace the ABC
programming language, and it was originally made available as Python 0.9.0 in 1991.
New features like list comprehensions, cycle-detecting garbage collection, reference
counting, and support for Unicode were added to Python 2.0, which was published in
2000. The 2008 release of Python 3.0 was a significant update that is not entirely
backwards compatible with previous iterations.
Python 2 was discontinued with version 2.7.18 in 2020.[500]
Python consistently ranks as one of the most popular programming languages.
Hello world program:
print('Hello, world!')
338
Program to calculate the factorial of a positive integer:
n = int(input('Type a number, and its factorial will be printed: '))
if n < 0:
raise ValueError('You must enter a non-negative integer')
factorial = 1
for i in range(2, n + 1):
factorial *= i
print(factorial)
Figure 198 : Python logo
500. Q (programming language from Kx Systems)
Arthur Whitney created the array processing programming language Q. It is
exclusive software that Kx Systems sells. Kdb+, a disk-based and in-memory, columnbased database, using Q as its query language. Kdb+ is based on the language k, a
condensed form of APL. In order to provide a more understandable, English-like
interface, Q acts as a thin wrapper around k. Financial time series analysis is one of the
application cases since it allows for imprecise time matching. As an illustration,
consider matching the bid and ask that came before. Even though the two timestamps
are slightly different, they match. [501]
339
501. Q# (Microsoft programming language)
Quantum algorithms are expressed using the domain-specific programming
language Q# (pronounced Q sharp). Microsoft initially made it available to the public
as a component of the Quantum Development Kit. [502]
502. Qalb
A functional programming language called Qalb, also written as Qalb, Qlb, and
Alb, enables programmers to write entire programs entirely in Arabic. Ramsey Nasser,
a computer scientist at the Eyebeam Art + Technology Center in New York City, created
the programming language Qlb in 2012 as a creative endeavor and as a response to the
Anglophone bias in the vast majority of programming languages, which express their
fundamental concepts using English words. Its name, which translates to "heart," is a
recursive acronym in Arabic meaning Qlb. [503]
503. Quantum Computation Language
One of the first quantum programming languages to be used was called Quantum
Computation Language (QCL). The ability to use user-defined operators and functions
is QCL's key strength. Its classical data types are comparable to primitive data types in
C, and its syntax is similar to that of the C programming language. The same program
can use both conventional and quantum codes. [504]
The language was developed to investigate quantum computer programming ideas.
Standard quantum operators used in quantum algorithms are made available via the
QCL library, including:
• Hadamard operation on many qubits, controlled phase, and controlled-not with
multiple target qubits.
• Quantum algorithms for binary constant addition, multiplication, and
exponentiation (all modulus n)
• Quantum fourier transformation
504. QtScript
Since version 4.3.0, the Qt cross-platform application framework has included
the scripting engine QtScript.
The scripting language has a few additions, like QObject-style signal and slot
connections, that are based on the ECMAScript standard. The engine and a C++ API
for evaluating QtScript code and providing unique QObject-derived C++ classes to
QtScript are both contained in the library.
The QtScript Binding Generator offers bindings so that ECMAScript can directly utilize
the Qt API. The scripting mechanism in Amarok 2 is based on QtScript and the binding
generator. The implementation that is currently in use (as of Qt 4.7) makes use of
JavaScriptCore and won't be improved upon. With Qt 5.5, the module is no longer
supported. [505]
340
505. QuakeC
To program several aspects of the video game Quake, John Carmack of id
Software created the compiled language known as QuakeC in 1996. A programmer can
alter Quake to a significant amount with QuakeC by adding weaponry, altering the
physics and logic of the game, and creating intricate scenarios. It can be used to manage
a variety of game-related features, including the AI, triggers, and level changes. The
only game engine that utilized QuakeC was the Quake engine. Following engines used
C and, starting with id Tech 4, C++ DLL game modules for customisation. [506]
506. QPL
The act of putting up sets of instructions, referred to as quantum circuits, that can
be executed on a quantum computer is known as quantum programming. High-level
constructs can be used to express quantum algorithms utilizing quantum programming
languages. The majority of the quantum software mentioned in this article is freely
available as open-source software since the discipline is firmly grounded in the opensource ideology. [507]
507. .QL
An object-oriented query language called.QL, pronounced "dot-cue-el," is used
to get information out of relational database management systems. Figure 199.
It is similar to the object-oriented programming language Java and the common query
language SQL. Datalog is a name for a logical query language, and QL is its objectoriented version. As a result,.recursive QL's querying capabilities are ideally suited to
handling hierarchical data. [508]
Figure 199 : .QL logo
341
508. R
is a programming language that is supported by the R Core Team and the R
Foundation for Statistical Computing. It is used for statistical computing and graphics.
Ross Ihaka and Robert Gentleman, two statisticians, developed R, which is used by data
miners, bioinformaticians, and statisticians for data analysis and creating statistical
software. In order to extend the capabilities of the R language, users have created
packages. Figure 200.
R is one of the most widely used programming languages for data mining, according to
user surveys and analyses of scholarly literature databases.
R peaked at 8th place in the TIOBE index, a popularity index for programming
languages, in August 2020. As of October 2022, R is ranked 12th.
The GNU package contains the official R software environment, which is open-source
free software that is distributed under the terms of the GNU General Public License. It
is mostly written in C, Fortran, and R. (partially self-hosting). There are precompiled
executables available for several operating systems. There is a command-line interface
for R. There are also numerous third-party graphical user interfaces available, like the
integrated development environment RStudio and the notebook interface Jupyter. [509]
Figure 200 : R logo
509. R++
R++, a C++-based rule-based programming language, is defined as follows:
Rules may be defined as C++ class members with the help of the R++ extension. The
invention's programming system uses classes that have rules written in R++ to create
C++ code that fully implements the machinery needed for the rules as C++ data
members and functions of the classes involved in the rules. [510]
Bell Labs created R++ in the 1990s, but due to the Bell System divestiture, which
divided the legal ownership of the work created at the Laboratories between AT&T and
Lucent, no immediate commercial use of R++ could be made while the two corporations
argued over ownership.
342
510. Racket
With a large standard library, IDE, development tools, Typed Racket (a sister
language of Racket with a static type-checker), Swindle, FrTime, Lazy Racket, R5RS
and R6RS Scheme, Scribble, Datalog, Racklog, Algol 60, and several teaching
languages, Racket (Figure 201), is a general-purpose, multi-paradigm programming
language. [511], Figure 202.
Figure 201 : Racket logo
343
Figure 202 : DrRacket on Linux
344
511. Raku
Raku is a computer language of the Perl family. Its name was changed from Perl
6 on October 2019. Raku introduces components of numerous contemporary and ancient
languages. Although a compatibility option is included in the specification, Perl
compatibility was not a priority. Raku's design phase got under way in 2000. [512]
A popular program for introducing a language is hello world. In Raku, saying "Hello,
world" means saying it in one of several different ways. Figure 203.
Figure 203 : Raku logo
512. RAPID
To operate industrial robots made by ABB, a high-level programming language
called RAPID is used. In 1994, ABB released RAPID and the S4 Control System,
replacing the ARLA programming language. [513]
The language has the following features:
• Standard parameters:
o Procedures are a type of subprogram.
o Functions: These are used as arguments in instructions and return values
of a particular type.
o Trap routines, a method of handling interruptions.
• Logical and mathematical expressions
• Autonomous error correction
• Modular programs
• Multiple tasks
345
513. Rapira
Rapira is a procedural programming language for education that was created in
the Soviet Union and used with the Agat computer, PDP-11 clones (Electronika, DVK,
and BK series), Intel 8080, and Zilog Z80 clones (Korvet). High level constructs and a
dynamic type system are used to interpret it. The language's restricted terms (keywords),
which were originally based on Russian, were later expanded to include English and
Romanian. In comparison to early Pascal implementations, it was thought to be more
elegant and user-friendly. [514]
In Soviet classrooms, Rapira was used to teach computer programming. A text editor
and a debugger were included in the integrated development environment.
Sample program:
ПРОЦ СТАРТ()
ВЫВОД: 'Привет, мир!!!'
КОН ПРОЦ
The same, but using the English lexics :
Proc start()
Output: 'Hello, world!!!';
End proc
Languages like POP-2 and SETL, as well as ALGOL, served as the foundation of
Rapira's concept.
Rapira, for instance, implements an extremely robust, adaptable, and fascinating data
structure known as a tuple. These heterogeneous lists in Rapira provide operations like
indexing, joining, length counting, obtaining sublists, simple comparison, etc.
514. Ratfor
Programming language Ratfor (short for Rational Fortran) was developed as a
Fortran 66 preprocessor. It offers contemporary control structures to take the role of
GOTOs and statement numbers, which are not accessible in Fortran 66. [515]
346
515. Rc
Plan 9 and Version 10 Unix from Bell Labs operating systems interpreter.
Although its syntax is a little bit easier, it is similar to the Bourne shell. Tom Duff, who
is better known for a peculiar C programming language concept called "Duff's device,"
was the author of this.
Plan 9 from User Space includes a Unix port of the original rc. Although it has several
incompatible changes, Byron Rakitzis has rewritten rc for Unix-like operating
systems.[516]
Rc contains a Bourne-like for loop to traverse over lists and employs C-like control
structures in place of the original Bourne shell's ALGOL-like structures, with the
exception that it uses an if not construct rather than else. All variables in rc are lists of
strings, therefore there is no need for symbols like "$@." When enlarged, variables are
not divided again. Duff's paper describes the language.
The Bourne shell script:
If [ "$1" = "hello" ]; then
Echo hello, world
Else
Case "$2" in
1) echo $# 'hey' "jude's"$3;;
2) echo `date` :$*: :"$@":;;
*) echo why not 1>&2
Esac
For I in a b c; do
Echo $i
Done
Fi
347
516. Reason
Jordan Walke, who also invented React, developed Reason, also known as
ReasonML, as a syntactic extension and toolchain for OCaml at Facebook. Figure 204.
The compiler toolchain for OCaml is used to compile Reason's syntax to native code,
which is familiar to JavaScript programmers. The ReScript compiler can also convert
Reason code to JavaScript. [517]
Figure 204 : Reason logo
517. REBOL
Carl Sassenrath created Rebol, a multi-paradigm dynamic programming language
and cross-platform data interchange language, for network communications and
distributed computing. It introduces the idea of dialecting, which, in the opinion of the
language's creator Carl Sassenrath, is also its most noteworthy feature. Dialecting refers
to small, optimized, domain-specific languages for code and data. [518], Figure 205.
Figure 205 : REBOL logo
348
518. Red
The computer language Red was created to get over the drawbacks of the Rebol
programming language. Red, an imperative and functional programming language, was
invented by Nenad Rakoevi in 2011. Its overall usage and grammar are similar to those
of the interpreted Rebol language. [519]
Red's implementation decisions aim to produce a full stack programming language by:
Red can be used for both low-level and very high-level programming (DSLs and GUIs)
(operating systems and device drivers). The two sections of the language—Red/System
and Red—are essential to the strategy.
C-like Red/System is bundled within a Rebol lexical structure.
For example,
one would write if x > y [print "Hello"] instead of if (x > y) {printf("Hello\n");}.
Red is a homoiconic language with semantics akin to Rebol that supports
metaprogramming. Red's runtime library was created in Red/System and used a hybrid
methodology, compiling statically what it can and using an embedded interpreter for
everything else. A just-in-time compiler for sporadic instances is included in the project
roadmap, although it has not yet been implemented. Figure 206.
Red produces its own code and aims to remain independent of all other toolchains.
Therefore, using a command-line switch, Red programs can be cross-compiled from
every platform it supports to any other. Under a modified BSD license, Red and
Red/System are both distributed as open-source software. The more lenient Boost
Software License is used to distribute the runtime library.
Figure 206 : Red logo
349
519. Redcode
D. G. Jones and A. K. Dewdney invented the programming game Core War in
1984, in which two or more battle programs—referred to as "warriors"—compete for
control of a virtual computer. The abstract assembly language known as Redcode is
used to create these warfare programs. The International Core Wars Society (ICWS)
initially established the standards for the language and the virtual machine, but later
standards were decided by general agreement in the community. [520]
Each fight program loads into memory at a random position at the start of a game, after
which each program executes one instruction in turn. The object of the game is to cause
the processes of the competing programs to end (which occurs if they carry out an
incorrect instruction), giving the machine to the winning program. Figure 207.
Only eight Instructions were specified in the first version of Redcode that was published.
The number was raised to 10 by the ICWS-86 standard and to 11 by the ICWS-88
standard. 16 instructions make up the 1994 draft standard that is now in use. However,
Redcode allows a variety of addressing modes and instruction modifiers that (as of the
1994 draft standard) extend the actual number of operations that are feasible to 7168.
The underlying instruction representation is left unspecified by the Redcode standard,
and programs are given no access to it. The two address fields found in each instruction
can be used for arithmetic operations, but only copying and equality checks can be made
on the instruction codes themselves.
Figure 207 : A game of Core War running under the pMARS simulator
350
520. REFAL
A functional programming language geared at symbolic computations, such as
"string processing, language translation, [and] artificial intelligence," Refal (Recursive
Functions Algorithmic Language; Russian: A) is called "Recursive Functions
Algorithmic Language." It is one of the earliest members of this family, having been
developed from a theoretical tool in 1966 to a practical product in 1968. Refal was
created with the goal of combining mathematical simplicity with usability for building
complex systems. [521]
521. REXX
It is possible to interpret or compile the computer language Rexx (Restructured
Extended Executor). Mike Cowlishaw created it while working at IBM. Figure 208.
It is a high-level, structured programming language that is simple to understand and
learn. For a variety of computing platforms, both proprietary and open source Rexx
interpreters are available. IBM mainframe compilers are also available. [522]
Figure 208 : REXX logo
351
522. Ring
A dynamically typed, all-purpose programming language is called Ring. It can be
used as a standalone language, integrated into C/C++ projects, or extended using C/C++
code. Figure 209.
Imperative, procedural, object-oriented, functional, meta, declarative using layered
structures, and natural programming are the paradigms that are supported. The language
may be used to develop console, GUI, browser, game, and mobile apps and is portable
between platforms like Windows, Linux, macOS, Android, and WebA. [523]
Figure 209 : Ring logo
352
The same program can be written using different styles. Here is an example of the
standard "Hello, World!" program using four different styles.
The first style:
See "Hello, World!"
The second style:
Put "Hello, World!"
The third style:
Load "stdlib.ring"
Print("Hello, World!")
Another style: similar to xBase languages like Clipper and Visual FoxPro
? "Hello, World!" ( Figure 210).
Figure 210 : Ring Window
353
523. ROOP
A multiparadigm programming language called ROOP was developed at the
Chinese Chengdu University with AI applications in mind. It mixes object-oriented,
rule-based, procedural, logical, and programming techniques. [524]
524. RPG
Introduced in 1959 for the IBM 1401, RPG is a high-level programming language
for commercial applications. It is best recognized for serving as the main programming
language for the IBM I operating system and its midrange computer product line.
Numerous distinguishing ideas, including the program cycle and the column-oriented
syntax, have historically been present in RPG. Figure 211.
RPG IV is the most recent version, and it has a lot of modernization features, like freeform syntax[525].
Figure 211 : RPG logo
354
525. RPL
RPN (Reverse Polish Notation) calculators from Hewlett-HP Packard's 28, 48,
49, and 50 series use the RPL operating system and application programming language.
However, it can also be used with non-RPN calculators from the HP 38, 39, and 40
series. RPL is a threaded interpreter that implements a structured programming language
that is based on RPN and is equally capable of interpreting algebraic expressions and
formulas. RPL and Forth have several characteristics, including stack-based syntax and
list-based LISP. The stack utilized by RPL is solely constrained by available calculator
RAM, unlike the stack used by earlier HP RPN calculators, which had a set four-level
stack. In 1984, RPL was created at HP's Corvallis, Oregon, development center to
replace the practice of developing calculator operating systems in assembly language.
The HP 50g, the final pocket calculator to support RPL, was discontinued in 2015.
However, there are numerous emulators that can simulate HP's RPL calculators, and
they are available for a variety of hardware and operating systems, including iOS and
Android smartphones.[526]
526. RSL
All text editors, including Notepad, can be used to create robots that are
programmed in Robot Scripting Language (RSL). Robots are typically developed and
shared in the.prg format, but some programmers opt to encrypt their robots before
sharing them as DST files. Brad developed the scrambling software for Robot Battle
1.3, and Joseph Fowler (also known as Sorcerer) and Mark Duller later altered it to
produce two distinct programs that were both compatible with Robot Battle 1.4.
Many programming languages, including Basic, C, and JavaScript, have been compared
to RSL. The only section that is required is "init," and all other sections are determined
by an event and a priority. Each robot has one or more sections, divided by section
names and curly brackets. [527]
The Core section, which doesn't require a priority, offers information about what the
robot will do when it has nothing else to do. When activated, the Ascan typically has
the lowest priority and occurs whenever the robot is moving. The other occurrences
occur when a body collides with an object or when an object is picked up by the radar.
Commands are used to steer the robot's components.
The simplest approach to create a robot is to study the Combo, Smart Corner, Events,
Fire, Rammer, Shell, Side Liner, Target, Walls II, and Zag ones that are provided for
free with the game. Figure 212.
355
These robots show how to use the aforementioned straightforward instructions as well
as more complex strategies like the usage of radio and the variations that result from
building a robot without "command blocking" turned on.
Robot Battle is a Microsoft Windows programming game in which players create and
program flexible combat robots. Robot Battle requires strategy more than it does timing,
precision, or reflexes to be successful. The player is in charge of the programming that
sets one robot apart from another. The similar game RobotWar served as inspiration for
this one.
Figure 212 : Robot Battle logo
527. RTL/2
J.G.P. Barnes created the RTL/2 (Real-Time Language) high-level programming
language for real-time computing at Imperial Chemical Industries, Ltd. (ICI). It was
initially utilized internally at ICI before SPL International began to commercialize it in
1974. It was designed to be compact and straightforward and was based on ideas from
ALGOL 68. The British Standards Institution standardized RTL/2 in 1980. [528]
TITLE Hello World;
LET NL=10;
EXT PROC(REF ARRAY BYTE) TWRT;
ENT PROC RRJOB() INT;
TWRT("Hello World#NL#");
RETURN(1);
ENDPROC;
356
528. Ruby
Ruby is a high-level, general-purpose, interpreted programming language that
supports a variety of paradigms. It was created with a focus on simplicity and
productivity in programming. Primitive data types are objects in Ruby, just as anything
else. Midway through the 1990s, Yukihiro "Matz" Matsumoto created it in Japan. [529]
Ruby features just-in-time compilation, trash collection, and dynamic typing.
Programming paradigms including procedural, object-oriented, and functional
programming are all supported. According to its author, Perl, Smalltalk, Eiffel, Ada,
BASIC, Java, and Lisp had an effect on Ruby. Figure 213.
Figure 213 ; Ruby logo
357
529. Rust
A multi-paradigm, all-purpose programming language is called Rust.
Performance, type safety, and concurrency are highlighted in Rust. Unlike other
memory-safe languages, Rust maintains memory safety—that is, that all references
point to valid memory—without necessitating the employment of a garbage collector or
reference counting. Rust's "borrow checker" monitors the object lifetime of all
references in a program during compilation to simultaneously enforce memory safety
and prevent concurrent data races. Rust includes high-level features, such as some
functional programming structures, and is popular for systems development. [530]
Rust was developed in 2006 by software developer Graydon Hoare as a side project
when he was employed at Mozilla Research. In 2009, Mozilla formally supported the
endeavor. Rust has been embraced by businesses such as Amazon, Discord, Dropbox,
Facebook (Meta), Google (Alphabet), and Microsoft since the first stable release in May
2015. As a more recent language, Rust has drawn attention for its development and has
been the focus of academic programming language research. Figure 214.
Figure 214 : Rust logo
358
530. S
S is a statistical programming language that was primarily created by Bell
Laboratories' John Chambers, as well as (in early versions) Rick Becker and Allan
Wilks. According to John Chambers, the language's goal is "to turn ideas into software,
fast and faithfully."[531]
R, a component of the GNU free software project, serves as the current S
implementation. TIBCO Software used to market S-PLUS, a commercial product.
531. S2
Russian-owned LiveJournal, sometimes known as LiVEJOURNAL, is a social
networking site where users can maintain a blog, journal, or diary.
LiveJournal's social networking is done in quaternary time units (with four possible
states of connection between one user and another). A relationship between two users
is not required; they can be mutual friends or any of them can "friend" the other without
expecting the other to do the same. Figure 215.
Although "friend" on LiveJournal is primarily a technical term, there have been debates
regarding whether the term should be used in this way because it is emotionally charged
for many users in groups like lj dev [532] and lj biz.
A user's friends list, often known as their flist, frequently consists of many communities
and RSS feeds in addition to individual members. In general, "friending" makes it
possible for friends of a user to read protected entries and makes their entries visible on
the user's "friends page." Additionally, "friends groups" that group pals together allow
for more complicated activity.
Figure 215 : S2 logo
359
532. S3
A high-level, structured imperative programming language is called S3. For its
2900 Series mainframes, International Computers Limited (ICL) of the UK created it.
It is a system programming language that borrows syntax from ALGOL 68 but has
operators and data types that are compatible with the 2900 Series. It was the VME
operating system's implementation language. [533]
533. S-Lang
A software library for Unix, Windows, VMS, OS/2, and Mac OS X is the S-Lang
programming library. It offers components to make it easier to create text-based
applications as well as methods for embedding an interpreter for the S-Lang scripting
language. An interactive line-editing tool, procedures for creating and modifying
keymaps, and both low- and high-level screen/terminal management capabilities are all
included in the latter class of operations. Figure 216.
It is made available under the GNU General Public License. [534]
360
Figure 216 : S-Lang logo
361
534. S-PLUS
The S programming language is implemented commercially by S-PLUS, which
is offered by TIBCO Software Inc.
It includes sophisticated analytical algorithms and object-oriented programming
capabilities. [535]
The TIBCO Enterprise Runtime for R (TERR) was made available by TIBCO Software
as an alternative R interpreter in response to the rising popularity of the open source S
replacement R.
535. SA-C
only one assignment C (SA-C) is a member of the C programming language
family that is intended to be easily and directly translated into circuits, including
FPGAs. It is pronounced "sassy." SA-C does not feature pointers and arithmetic thereon
to facilitate translation. Instead, SA-C includes genuine n-dimensional arrays as firstclass objects of the language, preserving the majority of the expressiveness of C. [536]
536. SabreTalk
For the S/360 IBM mainframes running the TPF platform, SabreTalk is a no
longer supported dialect of PL/I. Eastern Air Lines, IBM, and American Airlines
worked together to create SabreTalk. PL/TPF is another name for SabreTalk
(Programming Language for TPF).
The British Airways Flight Operations system (FICO) under ALCS continues to run
SabreTalk programs utilizing a commercially available automatic converter to convert
SabreTalk programs to C programs. SabreTalk and IBM 360 Assembler were both used
in the creation of Delta Air Lines' Reservations and Operations Support Systems (OSS).
The majority of Delta's programming platform remained in Sabretalk until late in the
2010s, despite the fact that development is currently limited to C++.
Several businesses are starting the transition from SabreTalk to exclusively C-based
products due to the availability of translators from SabreTalk to C and the original
developers' decision to stop providing support. [537]
362
537. SAIL
The Stanford AI Lab's Dan Swinehart and Bob Sproull created SAIL, the Stanford
Artificial Intelligence Language, in 1970. For the PDP-10 and DECSYSTEM-20, it was
originally a sizable ALGOL 60-like language.
A symbolic data system built on an associative storage is the key component of SAIL
(based on the LEAP system of Jerry Feldman and Paul Rovner). Items can be kept in
associations or as unordered sets (triples). Processes, events, interruptions, contexts,
backtracking, and record trash collection are further features. Additionally, it contains
additional data types designed for creating association lists and search trees, blockstructured macros, and a coroutining facility. [538]
Some early versions of FTP, TeX, the PUB document formatting system, and BRIGHT,
a clinical database project funded by the National Institutes of Health, were all
interesting software systems that were programmed in SAIL.
There were six different operating systems for the PDP-10 in 1978: ITS from MIT,
WAITS from Stanford, TOPS-10 from DEC, CMU TOPS-10 from Carnegie Mellon,
TENEX from BBN, Tymcom-X from Tymshare, and TOPS-20 (DEC, based on
TENEX).
So that MIT researchers could use software created at Stanford University, SAIL was
migrated from WAITS to ITS. I/O code typically needed to be rewritten in each program
for every port.
In the 1980s, various eCAD design tools were created using MAINSAIL, a machineindependent version of SAIL that was created in the late 1970s. As of 2005, MAINSAIL
was still only in sporadic use and was easily adaptable to new CPUs and operating
systems.
538. SAKO
For the computers XYZ, ZAM-2, ZAM-21, and ZAM-41, SAKO (System
Automatycznego Kodowania Operacji; English: Automatic Operation Encoding
System) is a programming language based on the Polish language. [539]
PROGRAM DRUKUJE NAPIS HELLO WORLD
LINIA
TEKST:
HELLO WORLD
KONIEC
363
539. SAS
For data management, advanced analytics, multivariate analysis, corporate
intelligence, criminal investigation, and predictive analytics, the SAS Institute created
the statistical software package known as SAS (formerly known as "Statistical Analysis
System"). Figure 217.
From 1966 until 1976, when SAS Institute was formed, SAS was created at North
Carolina State University. In the 1980s and 1990s, SAS underwent considerable
development with the addition of new statistical techniques, extra components, and
JMP. Version 9 in 2004 introduced a point-and-click interface. In 2010, a tool for social
media analytics was added .[540]
Figure 217 : SAS logo
540. SASL
Based on the applicative subset of ISWIM, David Turner created the purely
functional programming language SASL (St Andrews Static Language, sometimes
known as St Andrews Standard Language) at the University of St Andrews in 1972.
Turner revised and reimplemented it in 1976 as a flexible (lazy) language. It was the
basis for Turner's later languages KRC and Miranda in this form, but Miranda has
polymorphic types whereas SASL looks to be untyped. [541] Burroughs Corporation
created an operating system and compiler using SASL.
364
541. Sather
An object-oriented programming language is Sather. It was created by a global
team under the direction of Steve Omohundro in the early 1990s at the International
Computer Science Institute (ICSI) at the University of California, Berkeley. It supports
generics by subclasses and trash collection. [542]
Class HELLO_WORLD is
Main is
#OUT+"Hello World\n";
End;
End;
542. Sawzall
Google employs Sawzall, a procedural domain-specific programming language,
to process a significant volume of individual log records. The earliest mention of
Sawzall was in 2003, and the szl runtime was released as open source in August 2010.
The MapReduce table aggregators have not yet been made public, therefore the opensourced runtime is not suitable for off-the-shelf large-scale data processing of several
log files. For the majority of Google's uses, Lingo (logs in Go) has taken the place of
Sawzall. [543]
365
543. Scala
Scala is a potent general-purpose programming language with statically typed
data types that supports both functional and object-oriented programming. Many of
Scala's design choices are intended to be brief and try to address Java's critics.
It is possible to compile Scala source code to Java bytecode and run it on a Java virtual
machine (JVM). Scala can also be immediately translated into a native executable or
translated into JavaScript to run in a browser. As a result of Scala's language
compatibility with Java on the JVM, libraries written in either language can be directly
referred to in Scala or Java code. Scala employs curly-brace syntax, which is akin to the
language C and is object-oriented like Java.
Since Scala 3, it has also been possible to arrange blocks using the off-side rule
(indenting), and doing so is recommended. According to Martin Odersky, this proved
to be the most beneficial feature added to Scala 3.
Contrary to Java, Scala has a number of functional programming language
characteristics, such as currying, immutability, slow evaluation, and pattern matching
(like Scheme, Standard ML, and Haskell). Additionally, it features a sophisticated type
system that supports algebraic data types, covariance and contravariance, higher-order
types (but not higher-rank types), anonymous types, operator overloading, optional
parameters, named parameters, raw strings, and an experimental exception-only version
of algebraic effects that can be compared to Java's checked exceptions in terms of
power. Figure 218.
Scala is a combination of the words scalable and language, indicating that it is intended
to expand in response to user demand. [544]
The Hello World program written in Scala 3 has this form:
@main def main() = println("Hello, World!")
Contrary to the standalone Hello World Java application, a singleton object generated
using the object keyword is utilized in place of class declarations and static declarations.
Figure 218 : Scala logo
366
544. Scheme
Programming languages in the Lisp family include Scheme. The Lambda Papers
are a collection of memoranda that were disclosed by Guy L. Steele and Gerald Jay
Sussman, who developed Scheme at the MIT AI Lab in the 1970s. It was the first Lisp
dialect to choose for lexical scope and the first to demand tail-call optimization from
implementations, providing stronger support for functional programming and related
strategies like recursive algorithms. The first programming language to offer first-class
continuations was this one. It significantly influenced the work that went into creating
Common Lisp. Figure 219.
The language of Scheme is codified in the official IEEE standard and the Revised Report
on the Algorithmic Language Scheme, which serves as a de facto standard (RnRS).
R5RS is a commonly used standard (1998). "R7RS-small" is the most recent Scheme
standard to be ratified (2013). In 2007, the R6RS, which was bigger and more modular,
was approved. Both are descended from R5RS, and the sequence below shows the
ratifications in chronological order. [545]
Figure 219 : Scheme logo
367
545. Scilab
Scilab is a high-level, numerically focused programming language that is free and
open-source, cross-platform, and designed for numerical computation. It can be used
for numerical optimization, modeling, simulation of explicit and implicit dynamical
systems, signal processing, statistical analysis, picture enhancement, fluid dynamics
simulations, and (if the necessary toolbox is installed) symbolic manipulations.
One of the two main open-source alternatives to MATLAB is Scilab, while the other is
GNU Octave. Figure 220.
Although Scilab places less emphasis on MATLAB syntactic compatibility than Octave
does, the two systems are sufficiently comparable that some writers claim it is simple
to transfer skills between them. [546]
Figure 220 : Scilab
368
546. Scratch
With a target demographic of children aged 8 to 16, Scratch is a high-level blockbased visual programming language and website that is largely geared toward kids. The
website's users, known as Scratchers, can develop projects using a block-like user
interface. Using third-party tools, projects can be exported to HTML5, Android apps,
Bundle (macOS), and EXE files. The MIT Media Lab created the service, which is
utilized all over the world and has been translated into more than 70 different languages.
In addition to other public knowledge institutions, Scratch is taught and utilized in afterschool programs, educational institutions, and colleges. Figure 221.
On the language's official website as of May 8, 2022, community statistics show that
there are over 104 million projects shared by over 90 million users, over 686 million
total projects generated (including unshared projects), and over 100 million monthly
website views. [547]
The term "scratching" refers to a practice among disc jockeys in which vinyl discs are
joined and manipulated on a turntable to create various sounds and music. By
developing and "remixing" products like video games, animations, music, and
simulations, the website allows users to creatively combine various media (including
visuals, sound, and other applications), much like scratching.
Figure 221 : Scratch logo
369
547. Script.NET
Similar to VBA in Microsoft Office programs, Script.NET or S# is a
metaprogramming language that offers scripting functionality in Microsoft.NET
applications, allowing runtime execution of customized functionality. Script.syntax
NET's is comparable to JavaScript's. It is intended to be a straightforward and effective
scripting language that enables the customization of.NET applications. The language
executes without creating additional in-memory assemblies and features a genuine
runtime interpreter. [548]
Hello world:
MessageBox.Show('Hello World!');
548. Sed
A Unix software called Sed, or "stream editor," parses and modifies text using a
short, concise computer language. Lee E. McMahon of Bell Labs created it between
1973 and 1974, and it is now accessible for the majority of operating systems. The
interactive editor ed ("editor," 1971) and the preceding qed's scripting capabilities
served as the foundation for sed ("quick editor", 1965–66). It was one of the first text
processing programs to offer regular expressions, and it is still in use today, particularly
with the substitution command. AWK and Perl are two well-liked alternatives for
"stream editing" and plaintext string manipulation. [649]
# Change the text in the input stream to "Hello, world!"
This script that says "Hello, world!" is stored in a file (such as script.txt) and can be run
by using the command sed -f script.txt inputFileName, where "inputFileName" refers to
the input text file. The first line of "inputFileName" is changed to read "Hello, world!"
before the script exits, printing the outcome just before sed ends. Past line 1, no input
lines are read or printed. "Hello, world!" is the only output as a result.
The example highlights a number of essential traits of sed:
• Most sed programs are brief and uncomplicated.
• Comments (the line that begins with the # sign) are permitted in Sed scripts.
• The most significant sed command is s (substitute).
• Sed supports basic programming via commands like q. (quit). Figure 222.
• Sed employs regular expressions like*. (zero or more of any character).
370
Figure 222 : An excerpt from GNU sed's man page
371
549. Seed7
Thomas Mertes created the general-purpose, extensible programming language
known as Seed7. It shares syntactic similarities with Ada and Pascal. It offers an
extension mechanism in addition to many other capabilities. New language constructs
can be constructed and written in Seed7, and Seed7 supports adding new syntax
elements and their meanings to the language. Programmers, for instance, can add new
statements' syntax and semantics as well as user-defined operator symbols. Comparing
the implementation of Seed7 to languages with hard-coded syntax and semantics reveals
major differences. [550]
550. Self
Self is an object-oriented programming language that uses prototypes as its
foundation. Self was initially used as an experimental test system for language design
in the 1980s and 1990s. It is dynamically typed, uses just-in-time compilation (JIT), and
approaches objects using prototypes. Figure 223.
As part of the Klein project, a fully Self-written virtual computer, Self was still being
built in 2006. The newest version, 2017.1, was made available in May 2017. [551]
Figure 223 : Self logo
551. SenseTalk
Self research developed and enhanced a number of just-in-time compilation
techniques since they were necessary for a very high level object oriented language to
run at up to half the speed of optimized C. Self was largely developed at Sun
Microsystems, and the methods they came up with were later used for Java's HotSpot
virtual machine. [552]
Self once included a Smalltalk-based implementation. This also provided incredibly
good performance because it could use JIT.
372
552. SequenceL
The main design goals of SequenceL, a general-purpose functional programming
language, platform portability/optimization, and a tool set for parallel computing, are
performance on multi-core processor hardware, programming simplicity, platform
portability/optimization, and code clarity and readability.
Its main benefit is that it enables programmers to write simple code that automatically
utilizes all available processing power without having to worry about locating
parallelisms, defining vectorization, averting race conditions, or any other difficulties
inherent in manual directive-based programming approaches like OpenMP. [553]
SequenceL programs can be compiled to multithreaded code that executes in parallel
without a programmer explicitly specifying how or what to parallelize.
The SequenceL compiler can now function with the majority of widely used
programming languages, including C, C++, C#, Fortran, Java, and Python, thanks to
versions that output parallel code in C++ and OpenCL.
Currently supporting x86, POWER8, and ARM platforms, a platform-specific runtime
handles the threads safely and automatically provides parallel performance in
accordance with the amount of cores available.
373
553. Serpent
Decentralized and open-source, Ethereum is a blockchain that supports smart
contracts. The platform's native cryptocurrency is called Ether (symbolized by ETH
with the minus sign). Ether's market valuation is second only to that of bitcoin among
cryptocurrencies.
2013 saw the creation of Ethereum by programmer Vitalik Buterin. Gavin Wood,
Charles Hoskinson, Anthony Di Iorio, and Joseph Lubin were additional Ethereum
founders. Crowdfunding for development work started in 2014, and on July 30, 2015,
the network launched. Figure 224.
Anyone can publish permanent and unchangeable decentralized applications on
Ethereum, allowing users to communicate with them.
Applications for "decentralized finance" (DeFi) offer a wide range of financial services
without the need for conventional financial intermediaries like banks, brokerages, or
exchanges, such as enabling cryptocurrency owners to borrow money against their
holdings or lend them out for interest.
NFTs, which are distinctive tokens that indicate ownership of an associated asset or
privilege and are acknowledged by a number of institutions, are likewise possible to
generate and exchange using Ethereum.
Additionally, several other cryptocurrencies have used the Ethereum blockchain as a
platform for initial coin offerings and use the ERC-20 token standard on top of it. [554]
Ethereum underwent an upgrading procedure known as "the Merge" on September 15,
2022, switching from proof-of-work (PoW) to proof-of-stake (PoS).
Figure 224 : Serpent logo
374
554. SETL
A extremely high-level programming language called SETL (SET Language) is
based on the mathematics theory of sets. At the Courant Institute of Mathematical
Sciences at New York University (NYU), it was first created by (Jack) Jacob T.
Schwartz in the late 1960s. [555]
555. Short Code
One of the first higher-level languages created for an electronic computer was
short code. Short Code statements represented mathematical expressions rather than
machine instructions, in contrast to machine code. The source code was not compiled
but rather run via an interpreter to speed up the programming process, which is also
referred to as automated programming. [556]
556. SIMPOL
Over the course of more than 20 years, Superbase, an end-user desktop database
tool, was converted from the Commodore 64 to a number of operating systems. A
programming language to automate database-oriented operations has also typically been
provided, and later versions added WYSIWYG form and report designers in addition to
more advanced programming features.
Precision Software first developed it in 1983 for the Commodore 64 and 128 and then
for the Amiga and Atari ST. The first database management system to function on a
Windows computer was this one, released in 1989. [557]
557. SIGNAL
Synced data-flow (flows + synchronization) is the foundation of the programming
language SIGNAL, where a process is a collection of equations on fundamental flows
that describe both data and control.
The SIGNAL formal model offers the ability to specify relational specifications for
systems with several clocks (polychronous systems).
Relations can be used to specify non-deterministic devices, such as a non-deterministic
bus, or external processes as partial specifications or as specifications in general (for
instance an unsafe car driver). [558]
By using SIGNAL, one may create an architecture, specify an application, and hone in
on specific components like RTOS or hardware descriptions.
A design technique that moves from specification to implementation, from abstraction
to concretization, and from synchrony to asynchrony is supported by the SIGNAL
model.
Since the 1980s, SIGNAL has mostly been developed by the INRIAEspresso team
alongside the related programming languages Esterel and Lustre.
375
558. SiMPLE
A programming development system called SiMPLE (short for SiMPLE Modular
Programming Language & Environment) was developed to make programming
accessible to all users, including amateurs.
The SiMPLE Codeworks website and forums are no longer accessible due to Bob
Bishop, the creator of SiMPLE, however they are still accessible through the internet
archive archive.org. [559]
559. SIMSCRIPT
Harry Markowitz and Bernard Hausner created SIMSCRIPT, a free-form,
English-like general-purpose simulation language, at the RAND Corporation in 1962.
It was created for large discrete event simulations and was implemented as a Fortran
preprocessor on the IBM 7090. This affected Simula. [560]
Although early versions were made available to the public, Markowitz's business,
California Analysis Center, Inc. (CACI), marketed SIMSCRIPT and created the
exclusive versions SIMSCRIPT I.5 and SIMSCRIPT II.5.
376
560. Simula
Ole-Johan Dahl and Kristen Nygaard created the simulation programming
languages Simula I and Simula 67 at the Norwegian Computing Center in Oslo in the
1960s. Figure 225.
It is roughly a superset of ALGOL 60 in terms of syntax, and Simscript's architecture
had an impact as well. [561]
An illustration of a Simula Hello World program:
Begin
OutText ("Hello, World!");
Outimage;
End;
Simula is case-insensitive.
Figure 225 : Simula logo
377
561. Simulink
Simulink is a graphical programming environment for MATLAB-based
multidomain dynamical systems that allows for modeling, simulation, and analysis. Its
main user interface consists of a graphical block diagramming tool and a set of block
libraries that can be customized. It may be used to drive MATLAB or be programmed
from it and enables close connection with the rest of the MATLAB environment.
Simulink is frequently used in digital signal processing and automatic control for
multidomain simulation and model-based design. [562], Figure 226.
Figure 226 : Simulink window
378
562. SISAL
A general-purpose single assignment functional programming language with
tight semantics, implicit parallelism, and effective array handling is called SISAL
(Streams and Iteration in a Single Assignment Language). A dataflow graph is produced
by SISAL in Intermediary Form 1. (IF1). Recursion and finite streams were added, and
it was derived from VAL (the Jack Dennis-designed value-oriented algorithmic
language). It was created to be a standard high-level language for numerical
programming on various multiprocessors and has a syntax similar to Pascal. [563]
563. SKILL
SKILL is a Lisp dialect used by Cadence Design Systems in several EDA
software packages as a scripting language and PCell (parameterized cells) description
language. It was first presented in a 1990 IEEE publication. [564]
564. SLIP
Joseph Weizenbaum created the list processing computer programming language
known as SLIP in the 1960s. Symmetric List Processor is what the name SLIP stands
for. It was initially incorporated as a Fortran programming language extension before
being integrated into MAD and ALGOL. ELIZA, an early natural language processing
computer software developed by Weizenbaum at the MIT Artificial Intelligence
Laboratory, is the most well-known program written in the language. [565]
565. SMALL
Nevil Brownlee of the University of Auckland created the computer
programming language known as Small Machine Algol Like Language (SMALL).[566]
379
566. Smalltalk
Smalltalk is a dynamically typed, object-oriented, reflective programming
language. In the 1970s, Alan Kay, Dan Ingalls, Adele Goldberg, Ted Kaehler, Diana
Merry, Scott Wallace, and others developed it in the Learning Research Group (LRG)
of Xerox PARC, primarily for constructionist learning. [567]
Smalltalk-80 was the first general release of the language. Smalltalk-like languages are
actively being developed and have devoted user communities. The Smalltalk standard,
known as ANSI Smalltalk, was approved in 1998. Figure 227.
In the 2017 Stack Overflow Developer Survey, Smalltalk came in second for "most
loved programming language," but it did not make the top 26 list for the 2018 survey.
Almost all introductions to new programming languages utilize the Hello world
program as the first program to demonstrate the language's most fundamental syntax
and environment. The program is quite easy to write in Smalltalk. The message "show:"
with the parameter "Hello, world!" is sent to the object "Transcript" in the following
code. The characters of the "show:" method's argument (the String literal "Hello,
world!") are shown in the transcript ("terminal") window when the method is called.
The transcript reads, "Hello, world!"
The results of this example would require a Transcript window to be open in order to be
visible.
Figure 227 : Smallttalk logo
380
567. SML
A general-purpose, modular, functional programming language with compiletime type checking and type inference is called Standard ML (SML). It is widely used
in the creation of theorem provers, compiler development, and programming language
research.
The language used in the Logic for Computable Functions (LCF) theorem-proving
project is called Standard ML, a contemporary dialect of ML. The formal specification
of this language, which is provided as typing rules and operational semantics in The
Definition of Standard ML, sets it apart from other widely used languages. [568]
568. Strongtalk
Strongtalk is a Smalltalk environment that offers optional support for static
typing. Strongtalk's moniker derives from its ability to perform some compile-time
checks and provide higher type safety assurances. Although it was initially created as a
commercial initiative by a small startup firm called LongView Technologies, it is now
non-commercial (trading as Animorphic Systems). [569]
569. Snap!
A free, block-based educational graphical programming language and online
community called Snap! (previously known as Build Your Own Blocks) enables
students to explore, create, and remix interactive animations, games, stories, and more
while learning about mathematical and computational concepts. Snap! has many
sophisticated features despite being influenced by Scratch. Figure 228.
Like Scratch 2, the Snap! Editor and the programs made in it are web applications that
run directly in the browser.[570]
Figure 228 : Snap! Logo
381
570. SNOBOL
Programming languages called SNOBOL ("StriNg Oriented and symBOlic
Language") were created between 1962 and 1967 at AT&T Bell Laboratories by David
J. Farber, Ralph E. Griswold, and Ivan P. Polonsky. SNOBOL4 was the last of these
languages. It was one of several text-string-oriented programming languages created in
the 1950s and 1960s, along with COMIT and TRAC.
By incorporating patterns as a first-class data type (a data type whose values can be
modified in all ways permitted to any other data type in the programming language) and
by including operators for pattern concatenation and alternation, SNOBOL4 differs
from most programming languages of its time.
Similar to later object-oriented languages like JavaScript, SNOBOL4 patterns are a type
of object and allow for various manipulations. These patterns are known as regular
expressions in JavaScript. Additionally, SNOBOL4 strings produced during execution
can be parsed or compiled and executed as programs (as in the eval function of other
languages). [571]
571. Snowball
Snowball is a compact programming language for handling strings that is used to
build stemming algorithms for use in information retrieval.
A Snowball script (a.sbl file) is converted into a thread-safe program in ANSI C, Java,
Ada, C#, Go, Javascript, Object Pascal, Python, or Rust via the Snowball compiler. Each
Snowball script creates a program file and associated header file for ANSI C. (with .c
and .h extensions). A typo that had gone unnoticed for 30 years was found in a landmark
scholarly publication by Lovins thanks to the Snowball compiler's consistency check of
its script.
Character strings, signed integers, and boolean truth values—or, to put it more simply:
strings, integers, and booleans—are the fundamental datatypes that Snowball handles.
Depending on the mode of use, Snowball's characters are either 8 bits wide or 16 bits
large. In particular, 16-bit Unicode and ASCII are both supported. In contrast to the
explicit usage of words like if, then, and break found in C and many other programming
languages, Snowball organizes the flow of control through the implicit use of signals
(each statement returns a true or false value).
The programming language SNOBOL, which it shares the idea of string patterns
sending signals that are used to control the flow of the program, inspired the choice of
the name Snowball. Because Snowball "essentially delivers a "suffix STRIPPER
GRAMmar," Dr. Martin Porter, the inventor of Snowball, "toyed with the idea of
dubbing it a "strippergram"". [572]
382
572. SOL
The United States Naval Research Laboratory and Utah State University
collaborated to create the Secure Operations Language (SOL). SOL, a domain-specific
synchronous programming language for creating distributed applications, was created
at the Naval Research Laboratory in the late 1970s and early 1980s based on software
engineering principles. A domain-specific language for creating service-based systems
is called SOL. A domain-specific Java extension called SOLj is being created
concurrently (FTDCS 2007) Sensor networks, military and space systems, healthcare
delivery, power control, and other application domains are examples. Dr. Ramesh
Bharadwaj from the Naval Research Laboratory and Dr. Supratik Mukhopadhyay from
Utah State University are the project's investigators. [573]
573. Solidity
For the purpose of building smart contracts on several blockchain systems, most
notably Ethereum, Solidity is an object-oriented programming language. Figure 229.
It was created by numerous former contributors to the Ethereum core as well as
Christian Reitwiessner and Alex Beregszaszi. Solidity programs are executed via the
Ethereum Virtual Machine. [574]
Figure 229 : Solidity logo
383
574. SOPHAEROS
The AECL and French Nuclear program simulate the transfer of fission products
in the reactor chamber using the computer code SOPHAEROS. It is used by AECL for
fuel channel safety evaluations and uses a set of aerosol dynamic rules to predict the
behavior of fission products. [575]
575. Source
A group of JavaScript dialects known as Source were created for the book
Structure and Interpretation of Computer Programs, JavaScript Edition (SICP JS). The
JavaScript Source 1, Source 2, Source 3, and Source 4 sublanguages are created to be
just expressive enough to accommodate each chapter's examples. [576]
576. SPARK
SPARK is a clearly defined programming language for computers that is based
on the Ada programming language and designed for the creation of high integrity
software for use in systems where dependable and predictable functioning is crucial. It
makes it easier to create apps that need to be safe, secure, or have business integrity.
The SPARK language originally existed in three iterations, SPARK83, SPARK95, and
SPARK2005, each based on a different version of the Ada programming language.
[577] On April 30, 2014, the SPARK language's fourth iteration, SPARK 2014, based
on Ada 2012, was made available. The language and accompanying verification tools
have undergone a complete redesign for SPARK 2014.
The SPARK language is a well-defined subset of Ada that uses contracts to specify
component specification in a way that can be verified both statically and dynamically.
The contracts in SPARK83/95/2005 are encoded as Ada comments, so any standard
Ada compiler will ignore them. However, the SPARK "Examiner" and its companion
tools process them. Figure 230.
In contrast, SPARK 2014 integrates contracts into the language's core by using the builtin "aspect" syntax of Ada 2012. Based on the GNAT/GCC infrastructure, the primary
tool for SPARK 2014 (GNATprove) reuses essentially the complete GNAT Ada 2012
front-end.
Figure 230 : SPARK logo
384
577. Speakeasy
Speakeasy was an interactive environment for numerical computing that included
an interpreted programming language. Theoretical physicist Stanley Cohen first created
it for use internally at the Physics Division at Argonne National Laboratory. He finally
established Speakeasy Computing Corporation to sell the program. [578]
A particularly durable numerical package is Speakeasy. The most recent version of the
environment, which was launched in 2006, was really constructed around a core
dynamic data repository called "Named storage" that was established in the early 1960s.
Speakeasy was created with the intention of simplifying the computing labor of
physicists at the Argonne National Laboratory. Figure 231.
Figure 231 : Speakeasy logo
578. Speedcode
For an IBM computer, the first high-level programming language was called
Speedcoding, Speedcode, or SpeedCo. John W. Backus created the language in 1953
for the IBM 701 in order to facilitate calculation with floating point values.
The challenge of configuring the IBM SSEC computer when Backus was employed to
compute astronomical locations in early 1950 gave rise to the concept.
The speedcoding system, an interpreter, prioritized usability over system resources.
Logarithms, exponentiation, and trigonometric operations were all presented as
fictitious instructions.
Pseudo-instructions were examined by the on-site program one at a time, and the proper
subroutine was then called. Additionally, the first time decimal input/output operations
were used was with speedcoding. Although technique significantly decreased the
amount of work required to write numerous jobs, Speedcoding typically resulted in
programs that ran ten to twenty times slower than machine code. The interpreter used
310 memory words, or roughly 30% of the 701's memory capacity. [579]
385
579. SPITBOL
The programming language SNOBOL4 has a compiled implementation called
SPITBOL (Speedy Implementation of SNOBOL). It was first designed to run on IBM's
System/360 and System/370 systems, but it has since been ported to the majority of
popular microprocessors, including the SPARC. Robert Dewar and Ken Belcher, who
were students at the Illinois Institute of Technology at the time, developed it.
Because of its dynamic nature, SNOBOL4 was believed to be slow, memory-intensive,
and hard to compile before the invention of SPITBOL. While delayed binding prevents
all judgments from being made at compile time, SPITBOL uses a number of different
tactics to make them as soon as feasible.
There are current iterations of the SPITBOL compiler. Since 2001, the GNU General
Public License has been used to make the source code for the original SPITBOL 360
compiler public.
An implementation of SPITBOL created in the 1970s by Robert Dewar and Anthony P.
McCann is known as MACRO SPITBOL. MINIMAL, an abstract machine's assembly
language, is used to program MACRO SPITBOL. The instruction set is deliberately
designed to provide for some flexibility in implementation, allowing for the use of
hardware operations that are advantageous for string processing.
By converting MINIMAL into MICRAL using a translator that was itself built in
SPITBOL, MINIMAL was implemented for interpretation on microcomputers. The
MICRAL interpreter and the MICRAL version of MACRO SPITBOL ran in less than
40K bytes. A collection of machine code macro substitutions that reduce the amount of
space needed for the object code and macro table are used to achieve MICRAL's severe
object code compression. Although efficient heuristics only produce answers that are
close to ideal, known methods for an optimal solution to this problem are extremely
complex. [580]
On April 17, 2009, the MACRO SPITBOL source code was made available under the
GNU General Public License.
386
580. SP/k
A subset of the PL/I programming language called SP/k was created around 1974
by R.C. Holt, D.B. Wortman, D.T. Barnard, and J.R. Cordy with the intention of
teaching programming. Over 40 universities, institutions, and research facilities in
Canada and the US used it for about ten years.
One of the first programming languages created with structured programming in mind
was SP/k. The SP/k language's features were chosen to promote systematic problem
solving by computers, make it simple to learn and use, get rid of unnecessary and
confusing constructions, and make compiling the language simple. The resulting
language was appropriate for introducing programming ideas used in a variety of
contexts, including business data processing, mathematical calculations, and nonnumeric computation.
A series of language subsets known as SP/1, SP/2,... SP/8 make up SP/k. A progressive
system for teaching computer programming is formed by each subset, which adds new
programming language elements while keeping all of the constructs from earlier subsets.
Each subset is clearly defined, complete, and independent; it may be learnt or used
without the subsequent subsets. This makes it possible for several tiers of programming
education. The Turing programming language was greatly influenced by the structure
and philosophy of SP/k. [581]
581. SPS
For the IBM 1401 machine, the first in the IBM 1400 series, Gary Mokotoff of
IBM's Applied Programming Department created the Symbolic Programming System
(SPS), an assembler. According to one account, "IBM announced this programming
system with the machine."
SPS-2 required at least 4K memory, but SPS-1 could be run on a basic computer with
1.4K memory.
In its first run, SPS-1 punched one card for each input instruction, and pass 2 required
reading this deck. SPS-1 was superseded by assemblers at the University of Chicago
and many other locations, who took advantage of the often used 4K memory
configuration to pack the output of pass one into many instructions per card. Other
assemblers were created that stored the pass-one output for short programs in memory.
Additional assemblers, programming languages, and report generators were made
available as the 1400 series developed, eventually replacing SPS in most sites. [582]
387
582. SQL
For managing data stored in a relational database management system (RDBMS)
or for stream processing in a relational data stream management system, programmers
utilize the domain-specific language known as structured query language, or SQL
(RDSMS). It is especially helpful when managing structured data, or data that includes
relationships between entities and variables.
Compared to more traditional read-write APIs like ISAM or VSAM, SQL has two key
advantages. The idea of accessing numerous records with a single command was first
proposed. The requirement to define how to access a record, such as with or without an
index, is also removed. [583]
Data query language (DQL), data definition language (DDL), data control language
(DCL), and data manipulation language are some of the common sublanguages of SQL.
SQL was originally based on relational algebra and tuple relational calculus (DML).
Data query, data manipulation (insert, update, and delete), data definition (schema
development and change), and data access control are all included in the scope of SQL.
Despite being primarily a declarative language (4GL), SQL also has procedural
components.
Edgar F. Codd's relational model was one of the first commercial languages to be used.
His seminal 1970 paper, "A Relational Model of Data for Large Shared Data Banks,"
defined the model.
It became the most used database language despite not entirely adhering to Codd's
relational paradigm.
In 1986, the American National Standards Institute (ANSI) and the International
Organization for Standardization (ISO) recognized SQL as a standard. Since then, a
wider range of functionality have been added to the standard. Despite the fact that there
are standards, the majority of SQL code needs to be modified at least slightly before
being transferred to different database systems.
388
583. SQR
A programming language called SQR (Hyperion SQR Production Reporting, Part
of OBIEE) is made for creating reports from database management systems. Structured
Query Reporter, the name's initials, suggests that it is related to SQL (Structured Query
Language). An SQR application can contain any SQL statement embedded within it.
The scalar data types in SQR are four. The first three are composed of three types of
variables: numeric (variables beginning with "#"), character string ("$"), and date ("$,"
the same as with character string variables). In order to distinguish them from character
string variables, date variables must be stated.
There are various sorts of numerical variables, including integer, floating point, etc.
Variables in database columns start with "&." The only command that can change the
values of database columns is a SQL "select" query. [584]
An array data structure is used by SQR. One or more fields, each of which is one of the
various kinds, make up an array. SQR is the equivalent of two-dimensional arrays since
each field may occur more than once. Multiple items can be changed by SQR
instructions within a single array.
Four control structures make up SQR. If-else-end, while-end, and evaluate are the first
three. The fourth option is the embedded SQL "select" statement, which enables looping
execution of SQR operations for each row of data.
To open, read, write, add, and close computer files, use SQR's instructions. Only
sequential, record-oriented file input and output is supported; random access is not.
584. Squeak
A class-based, object-oriented, and reflective programming language is called
Squeak. It was created using Smalltalk-80 by a team that included some of the program's
original creators, first at Apple Computer and then at Walt Disney Imagineering, where
it was meant to be used for internal Disney projects. Figure 232
Later on, the group would receive funding from HP Labs, SAP, and most recently, Y
Combinator. [585], Figure 233.
Figure 232 : Squeak logo
389
Figure 233 : Squeak windows
585. Squirrel
In order to satisfy the size, memory bandwidth, and real-time demands of
applications like video games, the high level imperative, object-oriented programming
language Squirrel was created.
Squirrel serves as the foundation for MirthKit, a straightforward toolset for creating and
disseminating open source, cross-platform 2D games. Both Code::Blocks and Final
Fantasy Crystal Chronicles: My Life as a King made considerable use of it for scripting.
Additionally, it is utilized for scripted events in Left 4 Dead 2, Portal 2, Thimbleweed
Park, and NewDark, an unofficial engine update for Thief 2: The Metal Age. This is in
addition to the standard C scripting. [586]
390
586. SR
A programming language called SR, or Synchronizing Resources, was created
for concurrent programming.
Resources can be individually compiled, and they encapsulate processes and the
variables they share. The main way processes interact is through operations.
The methods for invoking and servicing operations are provided with an innovative
integration by SR. As a result, it enables shared memory, semaphores, multicast, local
and remote procedure call, rendezvous, message passing, and dynamic process
formation.
The Apollo, DECstation, Data General AViiON, HP 9000 Series 300, Multimax, NeXT,
PA-RISC, RS/6000, Sequent Symmetry, SGI IRIS, Sun-3, Sun-4, and other platforms
have all received porting of version 2.2. [587]
587. S/SL
James Cordy, Ric Holt, and David Wortman created the Syntax/Semantic
Language (S/SL) at the University of Toronto in 1980 as an executable high level
specification language for recursive descent parsers, semantic analyzers, and code
generators.
Small programming language S/SL defines input, output, and error token names (&
values), semantic mechanisms (class interfaces whose methods are actually escapes to
routines in a host programming language but allow good abstraction in the pseudocode),
and a pseudocode program that defines the syntax of the input language by the token
stream it accepts. The language contains constructions for alternation, control flow, and
one-symbol look-ahead.
This pseudocode is converted by the S/SL processor into a table (byte-codes), which the
S/SL table-walker interprets (interpreter). Although additions enable it to process any
LR(k) language rather simply, the pseudocode language processes the input language in
LL(1) recursive descent mode. Excellent syntax error recovery and correction are
features of S/SL. It can be slower but is more transparent and powerful than Yacc.
It has been used to implement all phases of compilation, including scanners, parsers,
semantic analyzers, code generators, and virtual machine interpreters in multi-pass
language processors. S/"semantic SL's mechanisms" extend Its capabilities to all phases
of compilation.
PL/I, Euclid, Turing, Ada, and COBOL production commercial compilers, as well as
interpreters, command processors, and a variety of domain-specific languages, have all
been implemented using S/SL. The ZMailer mail transfer agent uses S/SL to define both
its mail router processing language and its RFC 822 email address validation. It is the
main technology used in IBM's ILE/400 COBOL compiler. [588]
391
588. Starlogo
At the Massachusetts Institute of Technology (MIT) Media Lab and Scheller
Teacher Education Program in Massachusetts, Mitchel Resnick, Eric Klopfer, and
others created the agent-based simulation language known as StarLogo. It is a dialect of
the programming language Logo, a subset of Lisp. Students can utilize StarLogo, which
was created for educational purposes, to replicate or model the behavior of decentralized
networks.
On a Connection Machine 2 parallel computer, the original StarLogo operated. A later
version was compatible with Macintosh machines. Later, it was given the moniker
MacStarLogo; it is currently known as MacStarLogo Classic. The current version of
StarLogo was created in Java and is compatible with the majority of machines.
Another kind of StarLogo is called OpenStarLogo. Although its source code is
accessible online, The Open Source Definition does not consider the license under
which it was made available to be an open-source license due to limitations on the code's
use for commercial purposes. [589]
589. Strand
Strand is a high-level symbolic language, akin to Prolog in syntax, for parallel
computing.
The British Computer Society Award for Technical Innovation 1989 went to Artificial
Intelligence Ltd. for Strand88. Computer scientists Stephen Taylor and Ian Foster
developed the language. [590]
392
590. Stata
The general-purpose statistical software package Stata (STAY-ta, also spelled
STATA on occasion) was created by StataCorp for data management, visualization,
statistics, and automated reporting. Researchers from a variety of disciplines, including
biology, epidemiology, sociology, and science, use it. Figure 234.
The first version of Stata, which was created by the Computing Resource Center in
California, was released in 1985. The business changed its name to Stata Corporation—
later StataCorp—in 1993 after relocating to College Station, Texas. A brand-new
graphics system and dialog boxes for every command were part of a significant 2003
version. Every two years since, a new version has been launched. The most recent
version, Stata 17, was made available in April 2021. [591]
Figure 234 : Stata logo
393
591. Stateflow
A control logic tool called Stateflow (created by MathWorks) is used to represent
reactive systems using state machines and flowcharts inside of a Simulink model.
Stateflow allows for the depiction of hierarchy, parallelism, and history within a state
chart by utilizing a variation of the David Harel finite-state machine terminology. State
transition tables and truth tables are also provided by Stateflow. [592]
In models of hybrid systems, while continuous dynamics (i.e., the behavior of the plant
and environment) are given using Simulink, the discrete controller is typically specified
using Stateflow. Figure 235.
Applications that specifically use Stateflow include:
• Mode logic, where a state is used to represent each discrete mode of a system.
• Task scheduling, where the Stateflow chart is used to plan when specific tasks
occur, either within the Stateflow chart or throughout the larger Simulink model.
• Fault management, where the Stateflow chart is used to control how the system
responds to faults and failures within a system.
Figure 235 : Control logic for an automatic transmission system
394
592. Subtext
For creating application software, Subtext is a moderately visual programming
language and environment. By treating copied blocks as first class prototypes for
program structure, an experimental research project aims to create a new programming
paradigm called Example Centric Programming. For frequent feedback, it employs live
text, which works similarly to what happens in spreadsheets when users edit cells. The
goal is for it to eventually mature to the point of being a useful language for everyday
use. Although the licensing has not yet been decided, it is intended to be open
software.[593]
593. SBL
Over the course of more than 20 years, Superbase, an end-user desktop database
tool, was converted from the Commodore 64 to a number of operating systems. A
programming language to automate database-oriented operations has also typically been
provided, and later versions added WYSIWYG form and report designers in addition to
more advanced programming features. [594]
594. SuperCollider
James McCartney first introduced the SuperCollider environment and computer
language for real-time audio synthesis and algorithmic composition in 1996.
Since then, it has matured into a tool utilized and improved upon by both sound
scientists and sound artists. It's a dynamic programming language that offers a
foundation for algorithmic music, interactive programming, live coding, and acoustic
research. [595]
SuperCollider is free and open-source software that was first distributed under the
conditions of the GPL-2.0-or-later in 2002 and under the GPL-3.0 - or-later as of
version 3.4. Figure 236.
Figure 236 : SuperCollider logo
395
595. Superplan
Heinz Rutishauser created the high-level programming language Superplan
between 1949 and 1951. The name is a play on the term "Rechenplan," which in Konrad
Zuse's terminology refers to a single Plankalkül program. In his 1951 book About
automatic calculation plans for program-controlled computing machines, Rutishauser
described the language (i.e. Automatically created Computation Plans for ProgramControlled Computing Machines). [596]
596. SuperTalk
SuperCard's scripting language is called SuperTalk. HyperTalk's ancestor is
SuperTalk.[597]
597. Swift (Apple programming language)
Swift is a multi-paradigm, general-purpose programming language that was
created by Apple Inc. and the open-source community. Swift was created as a
replacement for Apple's earlier programming language Objective-C, which had been
largely unchanged since the early 1980s and lacked modern language features. Swift
was first released in 2014. A crucial component of Swift's design was its ability to
interact with the vast body of Objective-C code created for Apple products over the
previous decades. Swift works with Apple's Cocoa and Cocoa Touch frameworks. It has
been a part of Xcode since version 6, which was released in 2014, and was created using
the free and open-source LLVM compiler framework. It makes use of the Objective-C
runtime library on Apple platforms, allowing C, Objective-C, C++, and Swift code to
coexist in a single program.[598]
598. Swift (parallel scripting language)
A script can be written in the inherently parallel programming language SSwif
to distribute the execution of programs over distributed computing resources, such as
clusters, clouds, grids, and supercomputers. Swift implementations are Apache License
2.0 compliant open-source software .[599]
396
599. SYMPL
The Control Data Corporation (CDC) created the defunct programming language
SYMPL for the CDC 6000 line of computers in the 1970s and 1980s. It was built using
a portion of the CDC's JOVIAL programming language as an alternative to assembly
language. Compilers, libraries, a full-screen editor, and significant subsystems were
among the significant CDC software items that were implemented in SYMPL.
SYMPL is an imperative, procedural, and compiled language. In contrast to the current
Fortran, SYMPL supports:
stronger data typing: Before use, all variables must be declared.
boolean variables, status (enumerated integer) variables, variable bit width integers
(both signed and unsigned),
Data structures, such as those that are "based" and dynamically allocated.
programming constructs with a structure,
Nested methods,
In-fix Character manipulation and "bead"
a straightforward macro tool
The fact that arrays of multi-item variables can be specified with either a "serial" or
"parallel" memory architecture is a very unique feature of SYMPL, which is also present
in JOVIAL tables. As is typical in most computer languages, a "serial" layout includes
array elements following one another in memory.
All of the various things contained within each entry of the array are grouped together
in a "parallel" pattern. For instance, if each array entry contains the items x, y, and z, a
parallel layout would group x[0]...x[n], y[0]...y[n], and z[0]...z[n] together in memory.
Since they are all adjacent to one another, this has the effect of perhaps speeding up
access to all the identical elements throughout the array.
Compared to JOVIAL, there are some simplifications, such as the lack of a fixed point
data type, table structures, and the COMPOOL idea. However, a CDC-specific system
text capability allows encapsulation of typical data declarations in place of
COMPOOLs. [600]
600. T
T is a dialect of the Scheme programming language created by Yale University's
Jonathan A. Rees, Kent M. Pitman, and Norman I. Adams in the early 1980s as a
language implementation and design experiment. [601]
601. TACL
The scripting programming language used by Tandem Computers serves as the
shell and is called TACL (the Tandem Advanced Command Language). [602]
397
602. TACPOL
The United States Army created the block-structured programming language
TACPOL (Tactical Procedure Oriented Language) for the TACFIRE Tactical Fire
Direction command and control application. PL/I and TACPOL are comparable. [603]
603. TADS (Text Adventure Development System)
Interactive fiction (IF) games can be made using the Text Adventure
Development System (TADS), a domain-specific programming language and set of
standard libraries.[604]
604. TAL
Block-structured, procedural Transaction Application Language, also known as
TAL (formerly "Tandem Application Language"), is a language designed specifically
for Tandem hardware. TAL resembles a hybrid of Pascal and C. For Tandem CISC
machines, which lacked an assembler, it served as the first system programming
language.
A microprogrammed CISC instruction set was intimately related and optimized with the
design concept of TAL, an extension of Hewlett Packard's SPL. A series of instructions
that altered data on a transient floating register stack could simply be produced from
each TAL statement. The memory allocation and call stack for the program floated
above the register stack itself.
With BEGIN and END statements, the language itself has the appearance of ALGOL
or Pascal. However, its semantics resemble C much more. It does not support passing
complicated structured parameters by value, indefinite levels of function nesting, or the
rigorous typing of the majority of variable references. Using pointers to structures,
sporadic overlays, deliberate string handling, and casts where necessary, programming
approaches are quite similar to C. [605]
Integers of the 8 bit, 16 bit, 32 bit, and (after introduced) 64 bit sizes are among the
available datatypes. There was support for null terminated character strings at the
microcode level. But this is not frequently employed.
The Tandem NonStop operating system was initially created in TAL.
Recently, TAL was deprecated in favor of new development, and a large portion of it
was rewritten in C.
TAL was updated/replaced with pTAL during the transition from CISC to RISC.
Compilers allowed TAL to be accelerated/re-compiled into Native RISC Applications.
Once again, compilers enable TAL and pTAL code to be accelerated/re-compiled into
native Itanium Applications in the current move from RISC to Intel Itanium 2.
398
605. Tcl
Tcl is a high-level, general-purpose, interpreted, dynamic programming language
(pronounce "tickle" or use as an initialism). It was intended to be really straightforward
but strong. Even programming constructs like variable assignment and procedure
declaration are transformed by Tcl into commands. Tcl supports a variety of
programming paradigms, including procedural, imperative, and functional
programming. [606]
606. Tea
Tea is a sophisticated Java environment scripting language. It mixes elements of
Java, Scheme, and Tcl. [607]
607. TECO (Text Editor and Corrector)
Originally created in 1962 for use on Digital Equipment Corporation computers,
TECO—short for Text Editor & Corrector—is a character-oriented text editor and
programming language that is now supported by PCs and Unix. TECO was created by
Dan Murphy while he was a student at the Massachusetts Institute of Technology
(MIT).[608]
608. TELCOMP
A computer language called TELCOMP was created by Bolt, Beranek, and
Newman (BBN) about 1964 and was used up until at least 1974. TELCOMP was a paid
service that BBN provided, with the first payment coming in October 1965. In 1972, the
service was sold to On-Line Systems, Inc. TELCOMP was made available in the UK
by Time Sharing, Ltd, a joint venture between BBN and businessman Richard
Evans.[609]
609. TeX
TeX, abbreviated as TEX within the system, is a typesetting system created and
written by Stanford University professor and computer scientist Donald Knuth. It was
first made available in 1978. TeX is one of the most advanced digital typographical
systems and is frequently used to typeset complicated mathematical calculations. [610]
399
610. TEX (Text Executive Programming Language)
A new programming language for their time-sharing service called TEX, an
acronym for the Text Executive text processing system, was introduced in 1979 by
Honeywell Information Systems. Around the same time as AWK, TEX was a firstgeneration scripting language created by Honeywell for use as an internal system test
automation tool. [611]
The Honeywell Time-Sharing service (TSS) line editor was given programmable
capabilities by TEX, giving users more freedom to create easy-to-use editing extensions
and write scripts to automate a variety of other time-sharing tasks that were previously
carried out by more intricate TSS FORTRAN programs.
611. TIE
Tensilica Instruction Extension, a proprietary language, is used to modify the
Xtensa processor core design.
By adding special instructions and register files, making TIE Ports and Queues for interprocessor communication, and adding pre-configured extensions (like Tensilica's DSP),
the user can modify the Xtensa architecture using TIE. Software programs can benefit
greatly from user-defined instructions that are properly targeted, and multiprocessor
communication is made simpler by TIE ports and TIE queues, which add distinct input
and output interfaces to the processor core. Using the TIE language and Xtensa Xplorer
toolset, the development and verification of the instructions required to extend the CPU
ISA are automated.
The time that is generally required for hardware verification is decreased because to
such automation.
The time spent on hardware verification, which usually accounts for a sizable portion
of the project time for a typical piece of hardware designed for the same functionality,
is reduced thanks to such automation. [612]
612. TMG (TransMo Griffer), compiler-compiler
Robert M. McClure created the recursive descent compiler-compiler TMG
(TransMoGrifier), which was first introduced in 1965. TMG operated on platforms such
as OS/360 and early Unix. It was utilized to create EPL, a precursor to PL/I. [613]
613. Tom
Programming various transformations on tree structures and XML-based
documents is a specialty of the programming language Tom. Tom is a language
extension that enhances C and Java with new matching primitives and support for
rewriting rule systems. A strategy language can be used to control the rules. [614]
400
614. Toi
The fundamental features of a programming language are provided by Toi, an
imperative, type-sensitive language. Paul Longtine created and built the language from
the bottom up. Toi is a learning tool (or toy, hence the name) for those wishing to
become acquainted with the inner workings of a programming language. It was written
in C with the intention of being an educational experience. [615]
615. Topspeed (Clarion)
Database applications are created using Clarion, a commercial, proprietary,
multi-paradigm, fourth-generation programming language (4GL), and integrated
development environment (IDE) from SoftVelocity. It can read and write several flat
file desktop database formats, such as ASCII, comma-separated values (CSV), DOS
(binary), FoxPro, Clipper, dBase, and some relational databases via ODBC, Microsoft
SQL Server, Sybase SQL Anywhere, and Oracle Database through the use of
accelerated native database drivers, as well as XML. Clarion is compatible with the
indexed sequential access method (ISAM), Structured Query Language (SQL [616]
616. TPU (Text Processing Utility)
A special programming language called DECTPU was created by Digital
Equipment Corporation (DEC) to make it simple to create multi-functional text
editors.[617]
Part of OpenVMS is TPU. It can be used on a console, a terminal, or a graphical
operating system like DECwindows.
617. Trac
Calvin Mooers created the TRAC (for Text Reckoning And Compiling)
Language between 1959 and 1964, and L. Peter Deutsch implemented it for the PDP-1
for the first time in 1964. It was one of Ted Nelson's three suggestions for "first
languages" in Computer Lib. At least until 1984, when Mooers modified TRAC T64 to
TRAC T84, TRAC T64 was in use. [618]
618. TTM
TTM is a general-purpose, string-oriented programming language for macro
processing that was created in 1968 at the California Institute of Technology by Steven
Caine and E. Kent Gordon. [619]
401
619. T-SQL (Transact-SQL)
The proprietary Transact-SQL (T-SQL) addition to SQL (Structured Query
Language), which is used to communicate with relational databases, was developed by
Microsoft and Sybase. Procedural programming, local variables, numerous support
functions for string processing, date processing, mathematics, etc., as well as
modifications to the DELETE and UPDATE statements are all additions to the SQL
standard that T-SQL makes.
The Microsoft SQL Server interface relies heavily on Transact-SQL. Regardless of the
program's user interface, any application that interacts with a SQL Server instance sends
Transact-SQL commands to the server.
SQL Server's stored procedures are server-side programs that can be run. The ability to
pass parameters is a benefit of stored procedures. [620]
620. Transcript (LiveCode)
Cross-platform fast application development runtime system LiveCode (formerly
Revolution and MetaCard) was inspired by HyperCard. It includes the xTalk scripting
language family member LiveCode Script (formerly MetaTalk), which is similar to
HyperTalk from HyperCard. [621]
621. TTCN (Tree and Tabular Combined Notation)
A computer language called TTCN is used to test web services and
communication protocols. Numerous test cases created in the TTCN programming
language make up a TTCN test suite. The language was known as Tree and Tabular
Combined Notation and was written in tables prior to version 2. Special TTCN editors
were needed to read and edit this language. TTCN was changed to Testing and Test
Control Notation with version 3. It may now be edited using conventional editors and
is more similar to modern programming languages. TTCN-3 is more adaptable than
TTCN-2 since it can be used to test both protocols and conventional software.
For execution, all versions of TTCN require certain compilers or interpreters.
TTCN is frequently used, for instance, by ETSI and ITU, to test telecommunication
protocols. Additionally, TTCN has been used to write the conformance test cases for
ETSI protocols like ISDN, DECT, GSM, EDGE, 3G, and DSRC. It is now also used to
test several protocol standards, such Bluetooth and IP.
These test cases are run against goods (such as telephones, mobile phones, service
enablers, or network components) to see if the protocol implementation complies with
the specifications laid out by telecommunication standards.
TTCN and ASN.1 are frequently mixed.[622]
402
622. Turing
Turing is a high-level, general-purpose programming language that was created
in 1982 at the University of Toronto in Ontario, Canada, by Ric Holt and James Cordy.
It was created to make learning to code easier for students enrolling in their first
computer science course. Turing is a language with a clear syntax and precise machineindependent semantics that is related to Pascal, Euclid, and SP/k.
The most recent stable version of Turing is 4.1.0. Turing 4.1.1 and 4.1.2 do not support
stand-alone operations. The syntax and functionality of Turing versions prior to 4.1.0
are out-of-date and must be used with newly produced exe files. [623]
623. TUTOR (PLATO Author Language)
Programming language TUTOR, often called PLATO Author Language, was
created at the University of Illinois at Urbana-Champaign starting in 1965 for use on
the PLATO system. Paul Tenczar originally created TUTOR with computer-assisted
instruction (CAI) and computer-managed instruction (CMI) (in computer programs
referred to as "lessons) in mind. This is why it has many features). For instance, TUTOR
provides strong answer-parsing and answer-judging commands, visuals, and
capabilities to make it easier for teachers to manage student data and statistics. The
adaptability of TUTOR and the processing power of PLATO (running on what was
considered a supercomputer in 1972), additionally made it appropriate for the
development of games, such as flight simulators, combat games, multiplayer roleplaying dungeon games, card games, word games, and educational games for medical
lessons like Bugs and Drugs (BND). TUTOR is still used today as the programming
language for the Cyber1 PLATO System, which as of June 2020 had about 5000 users
and ran the majority of the original PLATO source code. [624]
403
624. TXL
Charles Halpern-Hamu and James Cordy created the special-purpose
programming language TXL in 1985 at the University of Toronto. The initials "TXL"
were meant to stand for "Turing eXtender Language," which was the name given to the
language for its initial use in specifying and quickly prototyping extensions and variants
of the Turing programming language. However, this meaning has since been lost.
Modern TXL is especially made for quickly prototyping language-based tools, apps,
and descriptions via source transformation. It is a hybrid functional/rule-based language
that uses term rewriting at the lower level and first order functional programming at the
higher level.The formal semantics and implementation of TXL are based on formal term
rewriting, however due to the pattern specification's example-like format, the user is
mostly unaware of the term structures.
Each TXL program consists of two parts: a description of the source structures to be
transformed, specified as a (possibly ambiguous) context-free grammar using an
extended Backus-Naur Form; and a set of rules for the transformation of the tree,
specified as a combination of pattern and replacement pairs using first order functional
programming. Agile parsing and other grammar-based strategies can be expressed using
TXL, which is designed to give explicit programmer control over the interpretation,
application, order, and backtracking of both parsing and rewriting rules.
The first part uses pattern matching to parse the input expression into a tree.
The altered output is created by the second component using Term-rewriting in a
manner similar to Yacc. [625]
TXL is most frequently used for quick development of new programming languages
and dialects as well as software analysis and reengineering tasks like design recovery.
404
625. TypeScript
Microsoft created and maintains the free and open source programming language
known as TypeScript. It is a strict superset of JavaScript in terms of syntax and gives
the language optional static typing. It transpiles to Javadialect and is made for the
creation of huge applications. Existing JavaScript programs are also valid in TypeScript
because it is a superset of JavaScript.
JavaScript applications can be created with TypeScript for server-side and client-side
execution (as with Node.js or Deno). There are numerous transpilation alternatives. To
translate TypeScript to JavaScript, either the built-in TypeScript compiler or the Babel
compiler can be used.
Similar to how C++ header files can describe the structure of existing object files,
TypeScript provides definition files that can contain type information about existing
JavaScript libraries. As a result, values described in the files can be used by other
applications much like statically typed TypeScript entities. For well-known libraries like
jQuery, MongoDB, and D3.js, there are third-party header files. It is also possible to
create Node.js programs using TypeScript thanks to the availability of TypeScript
headers for the Node.js library modules. [626]
TypeScript is used to write the TypeScript compiler, which is then translated into
JavaScript. It has an Apache License 2.0 license. TypeScript was developed by Anders
Hejlsberg, the chief architect of C# and the man behind Turbo Pascal and Delphi.
626. Tynker
Tynker is a platform for learning programming for kids that teaches them game
design, web design, animation, and robotics. It offers classes in Python, CSS, Python
Modding, Creative Coding, and Minecraft Game Design.
Tynker may be used in browsers, on tablets and smartphones, and is built on HTML5
and JavaScript. [627]
405
627. Ubercode
Umple is a language for modeling with class diagrams and state diagrams as well
as object-oriented programming. A portmanteau of "UML," "ample," and "Simple," the
term Umple denotes that it is intended to offer sufficient functionality to augment
programming languages with UML capabilities. [628]
High level programming language Ubercode was created by Ubercode Software and
made available for Microsoft Windows in 2005. Eiffel and BASIC have an influence on
Ubercode. It is proprietary software and offers a 30-day free trial. Ubercode's design
objectives are as follows:
1. A language that can be compiled into Windows EXE files.
2. Automatic memory management—memory is automatically allocated and freed,
and the language lacks primitives for memory management.
3. Pre and post conditions are run-time claims that, like in Eiffel, are joined to
function declarations.
4. High-level data types, such as resizable arrays, lists, and tables, can include any
number of elements.
5. Integrated file handling—basics for handling text, binary, CSV, XML, and dBase
files transparently.
6. Ease of use—the language's structure is comparatively straightforward, making
it approachable for newcomers.
628. UCSD Pascal
The UCSD p-System, a mobile, mostly machine-independent operating system,
powers the UCSD Pascal programming language system. 1977 saw the initial release of
UCSD Pascal. The University of California, San Diego is where it was created
(UCSD).[629]
629. Umple
Umple is a language for modeling with class diagrams and state diagrams as well
as object-oriented programming. A portmanteau of "UML," "ample," and "Simple," the
term Umple denotes that it is intended to offer sufficient functionality to augment
programming languages with UML capabilities. [630]
406
630. Unicon
American computer scientist Clint Jeffery created the programming language
Unicon with help from collaborators Shamim Mohamed, Jafar Al Gharaibeh, Robert
Parlett, and others. Icon and its IDOL preprocessor were the ancestors of Unicon. In
comparison to Icon, Unicon provides superior operating system access and objectoriented programming capability.
A POSIX filesystem and networking interface, an ODBC facility, and an OO
preprocessor called Idol were the original three Icon extensions that were combined to
create Unicon. "Unified Extended Dialect of Icon" is the name's acronym. [631]
631. Uniface
Uniface is a low-code platform for enterprise application development and
deployment that may run in a variety of runtime environments, such as mobile,
mainframe, web, Service-oriented architecture (SOA), Windows, Java EE, and.NET.
Applications that are mission-critical are developed using Uniface.
Platform and database dependencies are irrelevant to Uniface applications. All major
DBMS solutions, including Oracle, Microsoft SQL Server, MySQL, and IBM Db2, can
be integrated with Uniface applications thanks to a framework that Uniface offers for
integration. Additionally, Uniface supports a wide range of other technologies,
including IBM mainframe-based products (CICS, IMS), web services, SMTP, POP
email, LDAP directories,.NET, ActiveX, Component Object Model (COM), C(++)
programs, and Java. File systems supported by Uniface include RMS (HP OpenVMS),
Sequential files, operating system text files, and RMS (HP OpenVMS) file systems.
Microsoft Windows, several Unix variants, Linux, CentOS, and IBM I are all supported
by Uniface. [632]
Complex systems that support mission-critical company operations, such as point-ofsale and web-based online shopping, financial transactions, wage administration, and
inventory control, can employ Uniface to preserve vital enterprise data. With an
effective installed base of millions of end users, it is presently utilized by thousands of
businesses across more than 30 countries. Uniface applications include portals that may
be accessed locally, via intranets, and via the internet, as well as client/server and online
apps that range from data entry to workflow.
The product and business were created in the Netherlands by Inside Automation, later
known as Uniface B.V. In 1994, the Detroit-based Compuware Corp purchased the
product and business. In 2014, Marlin Equity Partners acquired the product and business
and continued to operate it as Uniface B.V. global, with its headquarters in Amsterdam.
Rocket Software, a US company with its headquarters in Waltham, Massachusetts,
purchased Uniface in February 2021.
407
632. UNITY
For their book Parallel Program Design: A Foundation, K. Mani Chandy and
Jayadev Misra created the programming language UNITY. It is a theoretical language
that emphasizes what rather than where, when, or how things happen. The language
lacks a flow control mechanism, thus program statements execute in a nondeterministic
manner until they stop causing changes as they are being executed. Programs that would
often expire can now operate indefinitely, such as safety systems for power plants or
auto-pilot (which here converge to a fixed point). [633]
633. UnrealScript
A 3D computer graphics game engine called Unreal Engine (UE) was created by
Epic Games and debuted in the 1998 first-person shooter game Unreal. It was initially
created for first-person shooter PC games, but it has since been adapted for usage in
many different game genres and by other industries, most notably the film and television
business. The C++-based Unreal Engine is highly portable and supports a variety of PC,
mobile, console, and virtual reality platforms. Figure 237.
Unreal Engine 5, the most recent generation, was released in April 2022. After creating
an account on GitHub, its source code is accessible, and commercial use is permitted
using a royalty structure. Figure 238.
The charge is waived if developers publish on the Epic Games Store and is waived by
Epic until game makers have made US$1 million in revenue. Epic has integrated Quixellike features into the engine, which is thought to have benefited from Fortnite's financial
success. [634]
Figure 237 : Unreal Engine
408
Figure 238 : UnrealScript logo
634. Vala
The object-oriented programming language Vala leverages the GObject system
and has a self-hosting compiler that produces C code.
With prominent features including anonymous functions, signals, properties, generics,
aided memory management, exception handling, type inference, and foreach
expressions, Vala is syntactically comparable to C#. By focusing on the GObject object
system, its creators Jürg Billeter and Raffaele Sandrini hoped to add these functionalities
to the standard C runtime with minimum overhead and no additional runtime support.
It compiles to a lower-level intermediate language rather than directly to machine code
or assembly language. It is compiled from source to source to C, which is then put via
a platform-specific C compiler like GCC or Clang.
Writing vapi files that define the library interfaces is required in order to use
functionality from native code libraries. Particularly when based on GObject, writing
these interface definitions is widely documented for C libraries. For a wide variety of
libraries, including C libraries that are not based on GObject, such as the multimedia
library SDL, OpenGL, etc., bindings are currently available. [635]
409
635. Vim script
Vim is an acronym for Vi Improved and is a screen-based, open-source text
editor. It is a more effective version of Bill Joy's vi. The Stevie editor for the Amiga was
ported to create Vim, which was created by Bram Moolenaar and made available to the
public in 1991. Vim can be used as a standalone program in a graphical user interface
or through a command-line interface. Figure 239.
Cross-platform development has made it available on numerous additional platforms
since it was first released for the Amiga. Figure 240.
It was chosen as the most well-liked editor by Linux Journal readers in 2006; third in a
developer survey conducted by Stack Overflow in 2015; and sixth in a 2019 assessment
of development environments.
This is the Hello World program in Vim script.[636]
Echo "Hello, world!"
This is a simple while loop in Vim script.
Let I = 1
While I < 5
Echo "count is" i
Let I += 1
Endwhile
Unlet i
Figure 239 : Vim script
410
Figure 240 : Vim script
636. Viper (Ethereum/Ether (ETH))
Decentralized and open-source, Ethereum is a blockchain that supports smart
contracts. The platform's native cryptocurrency is called Ether (symbolized by ETH
with the minus sign). Ether's market valuation is second only to that of bitcoin among
cryptocurrencies. 2013 saw the creation of Ethereum by programmer Vitalik Buterin.
Gavin Wood, Charles Hoskinson, Anthony Di Iorio, and Joseph Lubin were additional
Ethereum founders. Crowdfunding for development work started in 2014, and on July
30, 2015, the network launched. Anyone can publish permanent and unchangeable
decentralized applications on Ethereum, allowing users to communicate with them.
Without the use of conventional financial intermediaries like brokerages, exchanges, or
banks, decentralized finance (DeFi) applications offer a wide range of financial services,
such as enabling cryptocurrency owners to borrow money against their holdings or lend
them out for interest.
Users of Ethereum can also create and exchange NFTs, which are distinctive tokens that
indicate ownership of a related asset or privilege and are accepted by a variety of
institutions. On top of the Ethereum blockchain, numerous other cryptocurrencies use
the ERC-20 token standard, and they have made use of the Ethereum platform for
ICOs.[637]
In an upgrade procedure known as "the Merge," Ethereum switched from proof-ofwork (PoW) to proof-of-stake (PoS) on September 15, 2022.
411
637. Visual DataFlex
DataFlex is a framework-based object-oriented high-level programming
language and fourth generation visual tool (4GL) for creating software applications for
Windows, the web, and mobile devices. Starting in 1982, Data Access Corporation
introduced and developed it. [638], Figure 241.
Figure 241 : DataFlex logo
638. Visual DialogScript
Microsoft Windows supports the interpreted programming language known as
Visual DialogScript (VDS). You can use it to make quick, compact programs. To
construct programs with a professional appearance, VDS offers a sizable selection of
dialog and graphical components. Because VDS programs have access to the Windows
API, it is feasible to create software that can carry out the same complex operations as
programs written in languages like Visual Basic, C++, or Delphi. [639]
412
639. Visual FoxPro
Microsoft's Visual FoxPro is a procedural programming language with an
emphasis on data and OOP features.
It was derived from FoxPro, which Fox Software first created in 1984 under the name
FoxBASE. In 1992, Fox Technologies and Microsoft combined, and as a result, the
software gained new capabilities and the suffix "Visual." On Mac OS, DOS, Windows,
and Unix, FoxPro 2.6 operated. Figure 242.
The first "Visual" edition of Visual FoxPro 3.0 only supported Windows and Mac
operating systems; later versions 5, 6, 7, and 8 were Windows-exclusive. Microsoft has
said they do not plan to make a Microsoft.NET version of the COM-based Visual
FoxPro that is already available.
Version 9.0, released in December 2004 and updated in October 2007 with the SP2
patch, was the final version of the product.[640]
Figure 242 : FoxPro Window
413
640. Visual J++ (Visual J plus plus)
Microsoft's abandoned Java implementation is called Visual J++. The language's
grammar rules, syntax, and keywords were identical to those of Java. It was first
released in 1996 and was later discontinued in January 2004. J# and C# largely took its
place. Sun Microsystems, the company that created Java, filed a lawsuit against the
implementation, MSJVM, since it failed Sun's compliance testing. The MSJVM's
support for this was terminated by Microsoft on December 31, 2007. (later Oracle
bought Sun, and with it Java and its trademarks). Although it was no longer included
with Windows or its web browsers, Microsoft resumed selling Java in 2021. This time,
it was their version of Oracle's OpenJDK, which Microsoft plans to support for at least
six years for LTS versions, or until September 2027 for Java 17. [641]
641. Visual LISP
The computer language Lisp's AutoLISP dialect was created especially for use
with the full version of AutoCAD and its offshoots, such as AutoCAD Map 3D,
AutoCAD Architecture, and AutoCAD Mechanical. The AutoCAD LT product line
does not contain either the application programming interface (API) or the interpreter
to run AutoLISP code. The browser-based AutoCAD web program includes a subset of
AutoLISP features. [642]
642. Visual Objects
Computer programs that run predominantly under Windows are made using the
object-oriented computer programming language known as Visual Objects. It is almost
mainly used to construct database programs, despite the fact that it may be used as a
general-purpose programming tool. As part of Nantucket's efforts to port the Clipper
language to Windows and transition from a procedural to an object-oriented paradigm,
the initial Visual Objects project (code-named Aspen) was launched. Additionally, it
changed Clipper from a p-code system to a full native compiler, added more C language
components (such typed variables), and added Windows extensions (such as COM,
ODBC, and later ADO).It provides the ability to create name-based connections with
its symbol datatype, which can be used to link menu events to object functions or create
direct links between server columns and controls. Computer Associates was finally
responsible for commercializing the Windows version. Unfortunately, it was launched
before it was ready for the market and almost directly competed with the Borland Delphi
product's initial release. Although the language is still in use, GrafX Software's most
recent release was version 2.8 sp4 in 2012. (version number 2838). After this, no
additional versions would be produced, according to GrafX.GrafX created Vulcan.NET,
the next iteration of the Visual Objects language, from scratch in order to be both Visual
Objects compatible and a real CLS compliant.NET language that fully utilizes the.NET
framework. [643]
414
643. Visual Prolog
Strongly typed object-oriented Prolog is an extension that was once known as
PDC Prolog and Turbo Prolog. Originally developed and marketed by the Danish
company PDC, Turbo Prolog was formerly marketed by Borland under the name Turbo
Prolog. Figure 243.
Microsoft Windows console applications, DLLs (dynamic link libraries), and CGI
programs can all be created with Visual Prolog. Additionally, it may use ODBC to
connect to databases and COM components. [644]
A compiler for Visual Prolog is included, and it produces x86 machine code. Programs
created in Visual Prolog are statically typed, in contrast to traditional Prolog. This
enables various mistakes to be detected at build time rather than ruframe time.
Figure 243 : Visual prolog window
415
644. WATFIV, WATFOR (WATerloo FORtran IV)
The computer programming language Fortran is implemented in WATFIV, often
known as Waterloo FORTRAN IV, which was created at the University of Waterloo in
Canada. It is WATFOR's replacement. From the late 1960s through the middle of the
1980s, Big WATFIV was in use. Later iterations of WATFOR succeeded WATFIV in
turn. The system gained popularity as a tool for teaching computer programming to kids
because it could accomplish the three common processes ("compile-link-go") in a single
pass.[645]
645. WebAssembly
For executable programs, WebAssembly (often shortened to Wasm) defines a
portable binary-code format, a corresponding text format, and software interfaces for
easing interactions with their host environment. Figure 244.
WebAssembly's major objective is to make it possible for high-performance programs
to run on web pages, but because it doesn't make any web-specific assumptions or offer
web-specific capabilities, it can also be used in other environments. In reality, all of the
most widely used languages already have at least some level of support because it is an
open standard that aspires to support any language on any operating system.
WebAssembly, initially released in March 2017 after being announced in 2015, was
recommended by the World Wide Web Consortium on December 5, 2019, and in 2021
it won the ACM SIGPLAN Programming Languages Software Award. The World Wide
Web Consortium (W3C), which receives support from Mozilla, Microsoft, Google,
Apple, Fastly, Intel, and Red Hat, upholds the standard. [646]
Figure 244 : WebAssembly logo
416
646. WebDNA
A server-side scripting, interpreted language with a built-in database system,
known as WebDNA, was created expressly for the World Wide Web. It is mostly used
to build apps for dynamic web pages that are driven by databases. The name was
published in 1995 and registered as a trademark in 1998. WebDNA Software
Corporation currently looks after WebDNA. [647]
647. Whiley
With the help of function preconditions, postconditions, and loop invariants, the
experimental programming language Whiley supports formal specification. It combines
elements of the functional and imperative paradigms. The typing style used by the
language is flow typing, sometimes known as flow typing.
In response to Tony Hoare's "Verifying Compiler Grand Challenge" from 2003, the
Whiley project was launched in 2009. Whiley's initial public release took place in June
of 2010.
Whiley is an open source project with contributions from a small community that was
primarily created by David Pearce. Both teaching undergraduate lectures and student
research initiatives have made use of the system. The Marsden Fund of the Royal
Society of New Zealand provided funding for it between 2012 and 2014.
The Whiley compiler generates code for the Java virtual machine and can Inter-operate
with Java and other JVM based languages.[648]
648. Winbatch
The term "scripting language" has two distinct but related definitions.
Traditionally, scripting languages have been created to automate routine processes,
which typically entail calling or delivering instructions to other programs. There are
built-in languages in many sophisticated application systems that enable users to
automate operations. Scripting languages are sometimes used to describe interpretative
languages.
There are still quite a few native scripting languages in use, despite the recent trend of
many programs having conventional scripting languages like Perl or Visual Basic built
in. Numerous scripting languages are translated into platform-neutral bytecode, which
is subsequently executed by a virtual machine (compare to Java virtual machine). [649]
417
649. Wolfram Language
A generic multi-paradigm programming language called The Wolfram Language
was created by Wolfram Research. Figure 245.
It can use any structures or data and places an emphasis on symbolic computation,
functional programming, and rule-based programming. It is the programming language
used by the Mathematica program for doing symbolic computations. [650]
Figure 245 : Wolfram language
650. Wyvern
Wyvern is a computer programming language developed by Jonathan Aldrich and
Alex Potanin with the primary focus on security and assurance for the creation of web
and mobile apps. Wyvern attempts to make secure programming easier than unsecure
programming by supporting object capabilities, being structurally typed, and other
features. The ability to safely use multiple programming languages within the same
program is one of the first features that distinguishes Wyvern. This allows programmers
to use the language that is most appropriate for each function while also enhancing the
program's security. [651]
A 'Hello World' program in Wyvern looks as follows:
Require stdout
Stdout.print("Hello World")
651. X++ (X plus plus/Microsoft Dynamics AX)
One of Microsoft's enterprise resource planning software offerings was Microsoft
Dynamics AX. It belongs to the family of Microsoft Dynamics. As a component of
Microsoft's Dynamics 365 portfolio, the web product's thick-client interface was
dropped in 2018 and it was relaunched as Microsoft Dynamics 365 for Finance and
Operations. [652]
418
652. X10
The Productive, Easy-to-Use, Reliable Computing System (PERCS) project is
being financed by DARPA's High Productivity Computing Systems (HPCS) program,
and it is being developed by IBM at the Thomas J. Watson Research Center. [653]
653. xBase++ (xBase plus plus)
The object-oriented programming language Xbase++ supports polymorphism
and multiple inheritance. It is based on the dialect and standards of the XBase language.
It supports multiple inheritance, polymorphism, and object-oriented programming and
is 100% Clipper compatible. Figure 246. Codeblocks and other xBase data types are
supported. Applications for Windows NT, 95, 98, Me, 2000, XP, VISTA, and Windows
7, 8, and 10 can be created using Xbase++. [654]
Figure 246. : xBase++ window
419
654. XBL
An XML-based markup language called XBL (XML Binding Language) is used
to modify the behavior of XUL widgets. It was developed at Netscape as an addition to
XUL in the late 1990s.
Firefox was the main application where XBL was used, but Mozilla deprecated it in
2017 and removed it entirely from Firefox in 2019.
On the other hand, the UXP fork of Firefox plans to keep supporting XBL forever.
Mozilla attempted to standardize XBL 2.0 through the W3C in 2007, but gave up on it
in 2012 due to a lack of interest from other web browser vendors. [655]
XBL is acknowledged as a significant impact in the Shadow DOM specification.
655. XC (targets XMOS architecture)
A fabless semiconductor business called XMOS
microcontrollers and audio products. [656], Figure 247.
creates
multicore
Figure 247 :XC logo
656. xHarbour
A free extended Clipper compiler that supports several platforms, xHarbour
offers a variety of graphic terminals (GTs), including console drivers, GUIs, and hybrid
console/GUIs. In addition to significant language syntax improvements, greatly
expanded run-time libraries, and extensive third party support, xHarbour is backwards
compatible with Clipper. Like the majority of dynamic languages, xHarbour can also be
used as a scripting language using an interpreter that is built in the xHarbour language
(standalone application, linkable library, MS ActiveScript engine [Windows Script
Host, HTML, ASP]). Comp.lang, a Usenet newsgroup on xHarbour.
xHarbour is a vibrant community where xHarbour-related questions are discussed. [657]
420
657. XL
French computer scientist Christophe de Dinechin has made contributions to
operating systems, programming languages, and video games. [658]
658. Xojo
Xojo, Inc. of Austin, Texas created and commercially marketed the Xojo
programming language and environment for software development aimed at macOS,
Microsoft Windows, Linux, iOS, the Web, and Raspberry Pi. Figure 248.
An exclusive object-oriented language is used by Xojo. [659]
Figure 248 : Xojo logo
659. XOTcl
Gustaf Neumann and Uwe Zdun's XOTcl is an object-oriented addition to the
Tool Command Language. It is an offshoot of MIT OTcl. A dynamic object system with
metaclasses that are influenced by CLOS serves as the foundation of XOTcl. Definitions
of classes and methods are entirely dynamic. With the use of filters and decorator
mixins, XOTcl offers language support for design patterns. [660]
660. Xod
Launched in 2016, XOD is a visual programming language for microcontrollers.
XOD began as a supported platform that worked with Raspberry Pi and Arduino boards.
It is free and open-source software distributed in accordance with version 3.0 of the
GNU Affero General Public License .[661]
421
661. XPL
The XPL programming language is based on PL/I and includes a portable onepass compiler designed in its own language as well as a tool for quickly creating
equivalent compilers for other languages called a parser generator. In 1967, XPL was
created as a tool for teaching compiler design principles and as a place for students to
begin creating compilers for their own languages.
William M. McKeeman, David B. Wortman, James J. Horning, and others at Stanford
University created and deployed XPL. At the 1968 Fall Joint Computer Conference,
XPL was initially introduced. The 1971 textbook A Compiler Generator provides a
thorough description of the procedures and compiler.
They referred to the resulting work as a "compiler generator." But that indicates that
creating a compiler for a new language or target requires little to no language- or targetspecific code. A translator writing system would be a better description of XPL. Less
new or modified programming code should be used while creating a compiler. [662]
662. XPL0
The computer programming language known as XPL0 is essentially a hybrid of
Pascal and C. It functions more like C but has a similar appearance to Pascal. Peter J.
R. Boyle developed it in 1976 because he needed a high-level language for his
microcomputer and wanted something more complex than BASIC, the then-dominant
language for personal computers.
The foundation of XPL0 is PL/0, a sample compiler from Niklaus Wirth's book
Algorithms + Data Structures = Programs. In ALGOL, the first XPL0 compiler was
created. On a Digital Group computer with a 6502 microprocessor at its core, it
produced instructions for a pseudo-machine that was put into use as an interpreter. After
being converted from ALGOL to XPL0, the compiler was able to self-compile and run
on a microcomputer. [663]
XPL0 quickly established its value in a number of 6502-based products. Otherwise, the
code for these embedded systems would have been written in assembly language, which
is far more time-consuming.
Boyle created the disk operating system Apex using XPL0. This was offered as an
alternative to Apple DOS for the Apple II computer, which was based on the 6502,
starting in 1980, along with XPL0.
Since then, XPL0 has been implemented on a dozen processors and has gained a number
of new features. The original 16-bit integers have been replaced with 32-bit ones in
optimizing native code compilers.
422
663. XQuery
With vendor-specific extensions for other data formats, XQuery (XML Query) is
a query and functional programming language that searches through and transforms
collections of organized and unstructured data that are often in the form of text and
XML (JSON, binary, etc.). The W3C's XML Query working group created the
language. The XSL Working Group, which is in charge of developing XSLT, closely
coordinates the work with that group's work on XPath, which is a subset of XQuery.
On January 23, 2007, the W3C recommended XQuery 1.0.
On April 8, 2014, XQuery 3.0 was designated as a W3C Recommendation.
On March 21, 2017, XQuery 3.1 was designated as a W3C Recommendation.
"The mission of the XML Query project is to provide flexible query facilities to extract
data from real and virtual documents on the World Wide Web, therefore finally
providing the needed interaction between the Web world and the database world.
Ultimately, collections of XML files will be accessed like databases."[664]
664. XSB
The Prolog dialect and implementation known as XSB were created at Stony
Brook University in association with Uppsala University, the Katholieke Universiteit
Leuven, the New University of Lisbon, and the software provider XSB, Inc.
With tabled resolution and HiLog, XSB expands Prolog (a standard extension of Prolog
permitting limited higher-order logic programming).
There is a Java programming interface included in the open source XSB
implementation. [665]
665. XSharp (X#)
X#, often known as XSharp or XS, is a programming language for the
Microsoft.NET platform that is compatible with xBase. The open source Roslyn
architecture, which powers the current Microsoft C# and Visual Basic.NET compilers,
is the foundation upon which X# has been created.
The xBase programming language family is made up of several dialects, and the X#
compiler is designed to handle them all. Core, Visual Objects, Vulcan.NET, xBase++,
Harbour, Foxpro, and other languages are supported. Although the project is now still
primarily closed source, it is planned to become an opensource community
initiative.[666]
423
666. XSLT
Extensible Stylesheet Language Transformations, or XSLT, is a programming
language that was initially created to convert XML documents into other XML
documents or other formats like plain text, HTML for web pages, or XSL Formatting
Objects that could then be converted into other formats like PDF, PostScript, and PNG.
Later revisions to the XSLT 1.0 specification introduced support for JSON and plaintext transformation.
The most current stable version of the language as of August 2022 is XSLT 3.0, which
attained Recommendation status in June 2017.
Implementations of XSLT 3.0 are compatible with Java,.NET, C/C++, Python, PHP,
and NodeJS. Additionally, a Javascript XSLT 3.0 library can be hosted inside of a web
browser. Additionally, XSLT 1.0 is natively supported by modern web browsers.
When using XSLT, the original document is not altered; instead, a new document is
produced using the information from an existing one. XML files are frequently used as
input documents, but anything from which the processor can construct an XQuery and
XPath Data Model, such as relational database tables or geographic information
systems, may also be used.
Although XSLT was initially intended to be a special-purpose language for
transforming XML, it is Turing-complete, which theoretically enables it to perform any
computation. [667]
424
667. Xtend
For the Java Virtual Machine, Xtend is a general-purpose high-level
programming language. The Java programming language serves as the foundation for
Xtend's syntax and semantics, however it emphasizes a shorter syntax and certain extra
features like type inference, extension methods, and operator overloading. Although it
is largely an object-oriented language, it also has functional programming capabilities,
such as lambda expressions. Xtend employs the same type system as Java and is
statically typed. Since it is converted into Java code, all current Java libraries work with
it without any issues. Figure 249.
The Xtend language and its IDE are projects at Eclipse.org that take part in the yearly
Eclipse release train. Under the terms of the Eclipse Public License, the code is open
source. Yet, the language can be compiled and run independently of the Eclipse
platform.[668]
Figure 249 : Xtend logo
668. Yorick
An interpreted programming language called Yorick was created for numerical
computation, graph displaying, and controlling sizable scientific simulation software.
Due to the array syntax, it is quite quick and expandable using C or Fortran procedures.
David H. Munro of Lawrence Livermore National Laboratory developed it in
1996.[669]
425
669. YQL
A query language similar to SQL called Yahoo! Query Language (YQL) was
developed by Yahoo! as a part of their Developer Network. Through a single Web
interface, YQL is intended to receive and change data from APIs, enabling mashups that
let developers build their own apps using the free Yahoo! Pipes tool.
After being introduced in October 2008 with access to Yahoo APIs, open data tables
from outside sources like Google Reader, the Guardian, and The New York Times were
added in February 2009. To access some of these APIs, you still need an API key. On
April 29, 2009, Yahoo made it possible to execute data tables created using YQL using
JavaScript that were hosted on the company's servers without charge. On January 3,
2019 Yahoo retired the YQL API service.[670]
670. Yoix
Yoix is a high-level, all-purpose, interpreted, object-based, dynamic
programming language used for computers. The Yoix interpreter just needs a Suncompliant JVM to run because it is implemented using standard Java technology without
the use of any add-on packages. Figure 250.
It was initially created by AT&T Labs researchers for internal usage, and since late
2000, it has been accessible as free and open source software. [671]
Figure 250 : Yoix logo
426
671. Z notation
A formal specification language for defining and modeling computing systems is
called the Z notation. It aims to clearly specify computer programs and all other
computer-based systems. [672]
672. Z shell
The Z shell (Zsh) is a Unix shell that may be used as a command interpreter for
shell scripting as well as an interactive login shell. Figure 251.
Zsh is an improved version of the Bourne shell that incorporates some Bash, ksh, and
tcsh features. [673]
Figure 251 : Z shell logo
427
673. Zebra, ZPL, ZPL2
Zebra Technologies' Zebra Programming Language (ZPL) is a page description
language principally used for labeling applications. ZPL II replaced the previous
language, however it is not entirely backwards compatible with it. Some label printers
that are not Zebras support ZPL II. Figure 252.
Later, the ANSI BASIC oriented Zebra BASIC Interpreter (ZBI), which the
manufacturer views as an improvement to ZPL II, was incorporated into printer
software. It primarily aims to prevent the need for code restructuring when switching
printers if the previous printer's software was created by a rival label printer. A possible
use of ZBI could be for when the Zebra printer receives a foreign label format, which it
would then convert to ZPL II on the fly so it can be printed.[674]
Figure 252 : Zebra logo
428
674. Zeno
An imperative procedural programming language named Zeno (after the preSocratic Greek philosopher Zeno of Elea) was created to be user-friendly and simple to
learn. In the sense that it comprises the majority of the fundamental building blocks
needed by other languages to create practical applications, Zeno is generic.
For use with Windows 95 and later Microsoft operating systems, the Zeno Interpreter
was created. The interpreter includes with built-in debugging tools, a source code text
editor, and an on-line language reference. [675]
Stephen R. Schmitt developed Zeno, and Abecedarical Systems is in charge of its
upkeep.
675. ZetaLisp
Lisp Computer A dialect of the language Lisp is the programming language
known as Lisp. It was initially created in the middle to late 1970s as the system
programming language for the Massachusetts Institute of Technology (MIT) Lisp
machines. It is a direct descendant of Maclisp. Lisp Computer The design of Common
Lisp was most heavily influenced by the Lisp dialect of the same name. Lisp Computer
Three varieties of Lisp have developed. ZetaLisp is the name of Symbolics' variation.
Although Lisp Machines, Inc. and Texas Instruments (with the TI Explorer) used the
same code base, their dialect of Lisp Machine Lisp was distinct from the one Richard
Stallman and others were maintaining at the MIT AI Lab. [676]
429
676. Zig
Andrew Kelley created the imperative, all-purpose, statically typed, compiled
system programming language known as Zig. The language supports compile-time
generics, reflection and evaluation, cross-compilation, and manual memory
management. It is designed for "robustness, optimality, and maintainability." The
language aspires to be better than C while also drawing inspiration from other
languages, such as Rust. Numerous low-level programming tools, such as packed structs
(structs without padding between fields), arbitrary-width integers, and various pointer
types, are available in Zig. In addition to being a brand-new language, Zig also has a
C/C++ compiler and may be used with either or both of these languages. The main new
feature of the latest release is the fact that the (new default) Zig compiler is now written
in Zig, making it a self-hosting compiler (the older legacy bootstrapping compiler,
written in C++, is still an option but won't be in 0.11). Figure 253.
LLVM (now version 15; legacy utilizes version 13) is still the standard backend (i.e.,
the optimizer), and LLVM is developed in C++. Zig (the compiler, not the code it
generated) is 169 MiB with LLVM, compared to 4.4 MiB without LLVM.
The previous, now legacy, compiler consumes 3.5 times more memory when
compiling, while the new Zig compiler uses significantly less memory and compiles a
little quicker. The new compiler typically produces faster executable code (i.e., better
LLVM code generation) and fixes numerous errors, however version 0.10 also includes
enhancements for the older legacy compiler.
The self-hosted compiler and linker work together seamlessly. The updated version also
includes some limited support for PlayStation 4 and 5 and experimental (tier-3)
functionality for AMD GPUs. A large number of its native targets are supported by the
older bootstrapping ("stage1") compiler, which is built in Zig and C++ and uses LLVM
13 as a back-end. The MIT License governs the compiler's open source status.
By offering various headers, such as libc and libcxx for many different platforms,
the Zig compiler exposes the ability to build C and C++ similarly to Clang using the
commands "zig cc" and "zig c++," allowing Zig's cc and c++ sub-commands to operate
as cross compilers out of the box.
Additionally, (mainly desktop) operating systems are officially supported (and
documented), and (minimum) applications for Android can and have been created (with
Android NDK, and programming for iOS also possible). Although there are unofficial
package managers, Zig doesn't have one of its own. However, a common package
manager has a milestone for 0.12. The Zig Software Foundation (ZSF), a nonprofit
organization led by Andrew Kelley that accepts donations and employs several full-time
staff members, provides funding for the development of the Zig software.[677]
430
Figure 253 : ZIG logo
677. Zonnon
A general-purpose programming language, Zonnon belongs to the same family
as Oberon, Modula, and Pascal. The author is Jürg Gutknecht.
Objects, definitions, implementations, and modules make up its conceptual model. Its
concurrent computing approach is built on active objects that communicate through
dialogs with strict grammar. Professor Jürg Gutknecht is creating the language at the
ETH Zürich Institute for Computer Systems. Zonnon presents the idea of "active
objects," which are used in computer programs to simulate concurrent real-world items.
Brian Kirk (director at Robinsons Associates), David Lightfoot (Oxford Brookes
University), Gutknecht (ETH, Zürich), and Dr. Eugene Zueff (вeни уев) collaborated
to write the Zonnon Language Report (Moscow State University). Nizhny Novgorod's
N. I. Lobachevsky State University released the first book about Zonnon (a.k.a., Nizhni
Novgorod State University). [678]
678. ZOPL
Geac Computer Corporation developed the programming language ZOPL in the
early 1970s for usage on mainframe computers used in banks and libraries. It was
comparable to Pascal and C.
"Version Z, Our Programming Language" was the acronym for ZOPL. At CGI Group
(previously RealTime Datapro), ZOPL is still in use. In the 1980s, ZOPL was ported to
VAX/VMS and Unix, and in 1998, it was ported to Windows. By 2010, it could run on
Red Hat Linux, Windows XP, 2000, and 2003. The runtime infrastructure and compiler
for the RTM (formerly ZUG) language are created in ZOPL.
ZOPL has not been widely used outside of CGI since the late 1980s, however there is
still one known functioning system where it is discovered embedded in programs written
in the KARL programming language.[679]
431
679. ZPL
The array programming language ZPL, also known as Z-level Programming
Language, was created to take the place of C and C++ in engineering and scientific
applications. ZPL programs execute quickly on both sequential and parallel systems
since its design objective was to achieve cross-platform high performance. Because ZPL
only uses implicit parallelism, it is simple and straightforward to construct highly
parallel ZPL programs.
ZPL was created by the Orca Project of the Computer Science and Engineering
Department at the University of Washington between 1993 and 1995. It was initially
known as Orca C. [680]
680. Z++
The object-oriented extension to the Z specification language is called Z++
(pronounced zed or zee in American English).
Classes can be defined in Z++, and classes can be related to one another via inheritance,
association, or aggregation. The class is the main Z++ building block. There are a lot of
optional clauses in a Z++ class. [681].
432
References
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
ISO 7185 sur le site de Karl Kleine Archived 17 February 2012 on the Wayback
Machine .
Web site, https://github.com/AndroDevcd/Sharp
Ridgway, Richard K. (1952). "Compiling Routines". Proceedings of the 1952
ACM national meeting (Toronto) ACM '52.
Web site, VPhttps://seattlewebsitedevelopers.medium.com/a-79a609154a17
Gerog P. Loczewski. "A++ - The Smallest Programming Language in the World
(1st edition)". STMV - S. Toeche-Mittler Verlag. Retrieved July 14, 2018.
"Get Started with the ABAP Development Tools for SAP NetWeaver | SAP Blogs".
Biancuzzi, Federico; Warden, Shane (April 2009). Masterminds of Programming:
Conversations with the Creators of Major Programming Languages. O'Reilly Media.
p. 32. ISBN 978-0-596-51517-1. Retrieved December 14, 2009. He was clearly
influenced by ALGOL 68's philosophy of providing constructs that can be combined
in many different ways to produce all sorts of different data structures or ways of
structuring a program. – Guido van Rossum“
van de Riet, R.P. (1973). ABC Algol: A Portable Language for Formula
Manipulation Systems. Matematisch Centrum (Amsterdam). Retrieved May
26, 2017.
"Computer Programming | ACC Computer Science and Information
Technology". sites.austincc.edu. Retrieved 2019-03-14.
"Rational Synergy Fix Pack 2(7.2.2.2) for 7.2.2". www.ibm.com. February 8, 2021.
https://en.wikipedia.org/wiki/Distributed_Application_Specification_Language
Action! Source Code - Page 2, Alfred (Chopper Commander) Posted Mon Feb 2,
2015 1:38 PM, AtariAge Forums, This is the original Action! source as I received it
from ICD. It uses the ICD cross assembler which is not included in the zip. It can be
easily converted to other formats
"Apple's lost decade, HyperCard, and what might NOT have been if Apple then was
like Apple is today". zdnet.com. April 17, 2011. Retrieved December 4, 2014.
Don Crabs (15 October 1990). "Actor offers a sophisticated OOP development
system". InfoWorld. InfoWorld Media Group, Inc.: 86–. ISSN 0199-6649.
Retrieved 18 August2011.
"Ada2012 Rationale" (PDF). adacore.com. Archived(PDF) from the original on 18
April 2016. Retrieved 5 May 2018.
Karger, David R.; Dennis Quan (2004). "Haystack: a user interface for creating,
browsing, and organizing arbitrary semistructured information". CHI '04 extended
abstracts on Human factors in computing systems. Vienna, Austria: ACM. pp. 777–
778. ISBN 1-58113-703-6.
Stal, Eva (2010). "Internationalization Of Brazilian Companies And The Role Of
Innovation In Building Competitive Advantages". Revista de Administração e
Inovação. 7 (3): 134. doi:10.5585/RAI.2010448.
433
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
Coquand, Catarina; Synek, Dan; Takeyama, Makoto. An Emacs interface for type
directed support constructing proofs and programs (PDF). European Joint
Conferences on Theory and Practice of Software 2005. Archived from the
original(PDF) on 2011-07-22.
Greenbaum, Steven; Stanley Jefferson (May 1998). "A Compiler for HP
VEE" (PDF). Hewlett-Packard Journal: 98–122.
A Marriage of Class- and Object-Based Inheritance Without Unwanted Children,
Proceedings of ECOOP'95, Springer-Verlag 1995.
"We are moving forward, from now on you can call us AIMMS", "AIMMS".
Archived from the original on 2013-10-29. Retrieved 2013-10-23.
"Aldor Programming Language". Aldor.org. Retrieved 12 February 2017.
"Preface to the Third (2000) Edition". Plan 9 Manual. Murray Hill: Bell Labs. June
2000. Retrieved 2012-10-29.
"CMU Artificial Intelligence Repository". Carnegie Mellon University. 1995-0213. Archived from the original on 23 June 2007. Retrieved 20
Rojas, Raúl; Hashagen, Ulf (2002). The First Computers: History and
Architectures. MIT Press. p. 292. ISBN 978-0262681377. Retrieved October
25, 2013.
Knuth, Donald E. (December 1964). "Backus normal Form vs Backus Naur
Form". Comm.
ACM. 7 (12):
735–
6. doi:10.1145/355588.365140. S2CID 47537431.
van Wijngaarden, Adriaan; Mailloux, Barry James; Peck, John Edward
Lancelot; Koster, Cornelis Hermanus Antonius; Sintzoff, Michel; Lindsey, Charles
Hodgson; Meertens, Lambert Guillaume Louis Théodore; Fisker, Richard G., eds.
(1976). Revised Report on the Algorithmic Language ALGOL 68(PDF). SpringerVerlag. ISBN 978-0-387-07592-1. OCLC 1991170. Archived (PDF) from
the
original on 2019-04-19. Retrieved 2019-05-11.
a b Wirth, Niklaus; Hoare, C. A. R. (June 1966). "A contribution to the
development of ALGOL". Communications of the ACM. 9: 413–432. Retrieved 7
October 2020 – via Association for Computing Machinery.
"Programming Systems Lab". Archived from the originalon 2006-10-05.
Retrieved 2006-08-08.
Liu, Jed; Myers, Andrew C. (2003). JMatch: Iterable Abstract Pattern Matching for
Java. Lecture Notes in Computer Science. Vol. 2562/2003. pp. 110–
127. doi:10.1007/3-540-36388-2_9. ISBN 978-3-540-00389-2.
Dedecker J., Van Cutsem T., Mostinckx S., D'Hondt T., De Meuter W. Ambientoriented Programming in AmbientTalk. In “Proceedings of the 20th European
Conference on Object-Oriented Programming (ECOOP), Dave Thomas (Ed.),
Lecture Notes in Computer Science Vol. 4067, pp. 230-254, Springer-Verlag.”, 2006
McCreary, Charles R. (October 1993). "Amiga E: Public Domain Programming
Gem". Amazing Computing For The Commodore Amiga. Vol. 8, no. 10. PiM
Publications. pp. 20–21. ISSN 1053-4547.
434
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
The Creator, by François Lionet, 1990, "AMOS Basic includes special facilities
which allow you to combine assembly language routines with your Basic programs."
a b Fourer, Robert; Gay, David M; Kernighan, Brian W (2003). AMPL: a
modeling language for mathematical programming. USA: Duxbury
Press/Brooks/Cole Publishing Company. ISBN 978-0-534-38809-6.
a b c "An excursion into the history of the development of programming languages
and compilers in the USSR" (in Russian) . Retrieved 27 October 2018 . A
programming language developed in 1968. at the Institute of Cybernetics of the
Academy of Sciences of the Ukrainian SSR under the guidance of Academician
V.M. Glushkov. A distinctive feature of the language are abstract data types,
calculations in arbitrary algebras, analytical transformations. It was implemented on
MIR-2 machines. Later, a version of Analytik-74 was developed, implemented on
MIR-3 machines.
Weinbub, Josef; Rupp, Karl; Selberherr, Siegfried (2010). "ViennaIPD - An Input
Control Language for Scientific Computing" (PDF). Retrieved April 27, 2019.
"[PIG-4167] Initial implementation of Pig on Spark - ASF
JIRA". issues.apache.org. Retrieved 2018-12-29.
"salesforce.com, inc. Annual Report for fiscal year ending January 31, 2022 (Form
10-K)". EDGAR. U.S. Securities and Exchange Commission. March 11, 2022.
Retrieved May 4,2022.
McIntyre, Donald B. (1991). "Language as an Intellectual Tool: From Hieroglyphics
to APL". IBM Systems Journal. 30(4): 554–581. doi:10.1147/sj.304.0554. Archived
from the original on March 4, 2016. Retrieved January 9, 2015.
"The
FirebaseDB
Component
(Experimental)". ai2.appinventor.mit.edu.
Retrieved 2019-02-14.
a b c Cook, William (2007). "AppleScript" (PDF). History of Programming
Languages (HOPL III). Proceedings of the third ACM SIGPLAN
conference. Association
for
Computing
Machinery:
1–
21. doi:10.1145/1238844.1238845. ISBN 9781595937667. S2CID 220938191.
a b Ross, Douglas T. (August 1978). "Origins of the APT Language for
Automatically Programmed Tools". ACM SIGPLAN Notices. 13 (8): 61–
99. doi:10.1145/960118.808374. ISSN 0362-1340.
"Arc Forum: Tell Arc: Arc 3.2". Arclanguage.org. Retrieved 2018-11-07.
Cowlishaw, Michael (1985). The REXX Language: A Practical Approach to
Programming (1st ed.). Prentice Hall. ISBN 0-13-780651-5.
Walker, E. F. "Orphan Detection in the Argus System". Mit/LCS/Tr-326. Archived
from the original on 2011-07-20. Retrieved 2011-03-09.
"Assembly: Review" (PDF). Computer Science and Engineering. College of
Engineering, Ohio State University. 2016. Archived (PDF) from the original on
2020-03-24. Retrieved 2020-03-24.
a b "AutoHotkey Changelog for Years 2003-2004". Autohotkey.com. Archived
from the original on 2011-11-04. Retrieved 2011-12-02.
"AutoIt Downloads". AutoIt. Retrieved 2022-11-07.
435
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
"AutoCAD LT vs. AutoCAD". Archived from the originalon 15 April 2014.
Retrieved 14 April 2014.
Embedded Systems Group Research group that develops the Averest Toolbox
Stutz, Michael (September 19, 2006). "Get started with GAWK: AWK language
fundamentals" (PDF). developerWorks. IBM. Archived (PDF) from the original on
2015-04-27. Retrieved 2015-01-29. [AWK is] often called a data-driven language - the program statements describe the input data to match and process rather than a
sequence of program steps.
a b "The State of Axum". Niklas Gustafsson. Retrieved 2011-02-28.
Ritchie, Dennis M. (1984). "The Evolution of the Unix Time-sharing
System". AT&T Bell Laboratories Technical Journal. 63 (6 Part 2): 1577–
1593. doi:10.1002/j.1538-7305.1984.tb00054.x. Archived from the original on 11
June 2015.
Salomon, David (February 1993). "6.1.4 BABBAGE". Assemblers and
Loaders (PDF). Ellis Horwood Series In Computers And Their Applications (1 ed.).
Chicester, West Sussex, UK: Ellis Horwood Limited / Simon & Schuster
International Group. pp. 184–185. ISBN 0-13-052564-2. Archived (PDF) from the
original on 2020-03-23. Retrieved 2008-10-01. [1] (xiv+294+4 pages)
"Ballerina Microservices Programming Language: Introducing the Latest Release
and "Ballerina Central"". InfoQ. Retrieved 2018-06-07.
Hamilton, Naomi (May 30, 2008). "The A-Z of Programming Languages:
BASH/Bourne-Again Shell". Computerworld. Archived from the original on
November 8, 2016. Retrieved March 1, 2022.
Kemeny, John G.; Kurtz, Thomas E. (1964). Basic: a manual for BASIC, the
elementary algebraic language designed for use with the Dartmouth Time Sharing
System (PDF) (1st ed.). Hanover, N.H.: Dartmouth College Computation
Center. Archived (PDF) from the original on October 9, 2022.
"Using batch files: Scripting; Management Services". Technet.microsoft.com.
2005-01-21. Retrieved 2012-11-30.
6th Edition Unix bc source code, the first release of bc, from May 1975, compiling
bc syntax into dc syntax
Pike, Rob (24 April 2014). "Hello Gophers". Retrieved 11 March 2016.
Niemeyer, Pat. "BeanShell Software License". beanshell.org. Retrieved January
13, 2016.
a b Source: [1] Ole Lehrmann Madsen: An overview of BETA
Wulf, W. A.; Russell, D. B.; Habermann, A. N. (December 1971). "BLISS: A
Language for Systems Programming"(PDF). Communications of the ACM. 14 (12):
780–790. doi:10.1145/362919.362936. S2CID 9564255. Also: "BLISS:
A
Language for Systems Programming". (PostScript)
Metz, Cade. "Google Blockly Lets You Hack With No Keyboard". Wired.
Douglas Hofstadter (1979), Gödel, Escher, Bach, Basic Books, Chapter XIII.
436
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
Rodrigo Barreto de Oliveira (2005). "The boo Programming Language" (PDF).
Archived from the original (PDF) on February 6, 2009. Retrieved February
22, 2009.
Aaron Bohannon, J. Nathan Foster, Benjamin C. Pierce, Alexandre Pilkiewicz, and
Alan Schmitt. Boomerang: Resourceful Lenses for String Data. In ACM SIGPLANSIGACT Symposium on Principles of Programming Languages (POPL), San
Francisco, California, January 2008. full text
"BosqueLanguage". Microsoft. March 3, 2019. Retrieved April 29, 2019.
Prinz, Peter; Crawford, Tony (December 16, 2005). C in a Nutshell. O'Reilly
Media, Inc. p. 3. ISBN 9780596550714.
Nordin, Thomas; Jones, Simon Peyton; Iglesias, Pablo Nogueira; Oliva, Dino (199905-23). "The C– Language Reference Manual".
Stroustrup, Bjarne (16 December 2021). "C++20: Reaching for the Aims of C++ Bjarne Stroustrup - CppCon 2021". CppCon. Archived from the original on 30
December 2021. Retrieved 30 December 2021.
C*: An Extended C Language for Data Parallel Programming, John R. Rose
and Guy L. Steele, Jr., in Proceedings of the Second International Conference on
Supercomputing, vol. II, L. P. Kartashev et al. eds, May 1987, pp 2–16.
"CoreCLR is the runtime for .NET Core. It includes the garbage collector, JIT
compiler, primitive data types and low-level classes.: dotnet/coreclr". November 13,
2019 – via GitHub.
Studebaker, David, "Programming Microsoft Dynamics NAV 2009," p. 8 (2009)
"Quit Command | ObjectScript Tutorial | Caché & Ensemble 2018.1.4 & 2018.1.5".
Zoulas,
Christos
(24
November
2016). "tcsh-6.20.00
is
now
available!". mx.gw.com. Archived from the original on 25 November 2016.
Retrieved 24 November 2016.
"Latest Caml Light release". Retrieved 22 February 2020.
"Scheduled events for Tuesday, July 19, 09:00 - 10:30". CppNorth, The Canadian
C++ Conference, July 17-20, 2022. CppNorth. Retrieved 21 July 2022 – via
Sched.com.
"Catrobat Credits". developer.catrobat.org. Retrieved 2021-02-28.
"Commercial Users of Functional Programming -- Lennart Augustsson". Archived
from the original on 8 February 2012. Retrieved 18 September 2016.
Web site, https://en.wikipedia.org/wiki/CDuce
Dean, Jeffrey; DeFouw, Greg; Grove, David; Litvinov, Vassily; Chambers, Craig
(1996).
"Vortex:
an
optimizing
compiler
for
object-oriented
languages". Proceedings of the 11th ACM SIGPLAN conference on Object-oriented
programming, systems, languages, and applications. OOPSLA'96. pp. 83–
100. doi:10.1145/236338.236344. ISBN 0-89791-788-X.
Furber, Steve (January 2012). "Appendix J: Timeline of major developments in
Computing in schools in England". Shut down or restart? The way forward for
computing in UK schools(PDF). The Royal Society. p. 120. Retrieved 20 June 2021.
a b "Home". ceu-lang.org.
437
"Frequently Asked Questions: What is Ceylon?". Retrieved 2015-12-04. “Ceylon is
a new programming language that's deeply influenced by Java”.
86. CFEngine Team & Community. "CFEngine 3.20.0 released - Modularity".
Northern.tech AS.
87. "Fusion Industries :: Cg and HLSL FAQ ::". 24 August 2012. Archived from the
original on 24 August 2012.
88. Veeraraghavan, Sriranga (2013). "An introduction to Ch: Implementing a
temperature converter in Ch". ComputerWorld.
89. Chamberlain, Bradford L. (2011). "Chapel (Cray Inc. HPCS Language)". In Padua,
David
(ed.). Encyclopedia
of
Parallel
Computing,
Volume
4.
Springer. ISBN 9780387097657.
90. ISBN D-201-10073-8 Aho, Ullman Principles of Compiler Design
91. Jürgen F. H. Winkler; Georg Dießl (1992). "Object CHILL—an object oriented
language for systems implementation". Proceedings of the 1992 ACM annual
conference on Communications. Kansas City, Missouri, USA: Association for
Computing Machinery. pp. 139–147. doi:10.1145/131214.131232. ISBN 0-89791472-4. Retrieved 2008-12-30.
92. "VIPER for RCA VIP owner". Intelligent Machines Journal (InfoWorld).
InfoWorld Media Group. 1978-12-11. p. 9. Retrieved 2010-01-30.
93. LaGrone, James; Aribuki, Ayodunni; Addison, Cody; Chapman, Barbara (2011). A
Runtime Implementation of OpenMP Tasks. 7th Int'l Workshop on OpenMP.
pp. 165–178. CiteSeerX 10.1.1.221.2775. doi:10.1007/978-3-642-21487-5_13.
94. "CLAIRE:
Combining Sets, Search and Rules to Better Express
Algorithms[permanent dead link]" by Yves Caseau, François-Xavier Josset and
François Laburthe (2002). A 26-page overview, intended for an academic audience,
with benchmarks
95. "Health Care Services Leader McKesson's History: Our History". McKesson.
Archived from the original on 2012-03-13. Retrieved 2012-03-14.
96. "Clean 0.7: README". Archived from the original on 2019-05-24.
97. Warren M. Littlefield (1983). DBASE - From the Dot Prompt: An Introduction to
Structured Programming using dBase IV. ISBN 0791417808.
98. Di Stefano, Antonella; Gangemi, Francesc; Santoro, Corrado (2005). ERESYE:
artificial intelligence in Erlang programs. Proceedings of the 2005
ACM SIGPLAN workshop on Erlang. Tallinn, Estonia: ACM. pp. 62–
71. doi:10.1145/1088361.1088373. ISBN 1-59593-066-3.
99. "z/OS TSO/E CLISTs". z/OS 2.1.0. IBM. 14 June 2013. Retrieved 12 May 2016.
100. Hickey,
Rich; contributors. "core.async". GitHub.com. Retrieved 2019-0707. {{cite web}}: |author2= has generic name (help)
101. "CLU files, 1976–1989". Tapes of Tech Square (ToTS) collection, MC-0741.
Department of Distinctive Collections, Massachusetts Institute of
Technology. swh:1:dir:5dc935d1c236b15a99b0750cf236b2d89ec951d0.
102. Fleet Combat Direction Systems Support Activity (1986), CMS-2Y Programmers
Reference Manual for the AN/UYK-7 and AN/UYK-43 Computers, U.S. Navy
85.
438
103. Arranga,
Edmund C.; Coyle, Frank P. (March 1997). "Cobol: Perception and
Reality". Computer. 30 (3): 127. doi:10.1109/2.573683. ISSN 0018-9162.
104. Mikes, Sam (26 March 2001). "I have seen the future, and it is COBOL?". IT
WORLD. IDG Enterprise. Retrieved 26 March2001.
105. "The Cobra Programming Language". Cobra Language LLC. Retrieved 2012-0926.
106. Heller, Martin (October 18, 2011). "Turn up your nose at Dart and smell the
CoffeeScript". InfoWorld. Retrieved 2020-07-15.
107. "Introducing
Adobe ColdFusion (2021 release)". community.adobe.com.
Retrieved January 1, 2021.
108. Ryan, Kevin. "COMAL Kernel Syntax & Semantics" (PDF). Dansk Datahistorisk
Forening. Retrieved 8 November 2017.
109. Crisman, P.A., ed. (December 31, 1969). "The Compatible Time-Sharing System,
A Programmer's Guide" (PDF). The M.I.T Computation Center. Retrieved March
10, 2022.
110. "Unmanaged,
Managed Extensions for C++, Managed and .Net
Framework". www.visualcplusdotnet.com. Retrieved 2020-07-07.
111. "ANSI
Standards
Action
December
28,
2018" (PDF). ansi.org. Archived (PDF) from the original on April 12, 2021.
112. "compass - FOLDOC - Computing Dictionary".
113. Jensen, Kathleen; Wirth, Niklaus (1974–1991). Pascal: User Manual And Report.
Springer Verlag. ISBN 978-0-387-97649-5.
114. See the example on page 87 of the IBM F28-8043 Commercial Translator General
Reference Manual, June 1960(pdf, 8.2M)
115. Thom Frühwirth. Introducing Simplification Rules. Internal Report ECRC-LP-63,
ECRC Munich, Germany, October 1991, Presented at the Workshop Logisches
Programmieren, Goosen/Berlin, Germany, October 1991 and the Workshop on
Rewriting and Constraints, Dagstuhl, Germany, October 1991.
116. "IBM System/38 Control Language Reference Manual"(PDF). IBM. 1982-09-10.
Retrieved 2021-03-24.
117. Cool: A Portable Project for Teaching Compiler Construction
118. "Release 8.16.1". 25 November 2022. Retrieved 8 December 2022.
119. "Gain the advantage with CORAL, CORAL+ and Context"(PDF). DXC
Technology. September 2017. Archived (PDF)from the original on 23 January 2021.
Retrieved 29 December2021.
120. Developers Guide To CorVision Version 5.11. CORTEX Corporation. February
1994.
121. Technical report: EPU-R-12, U Edinburgh (Apr 1966)
122. Barron, D. W.; Buxton, J. N.; Hartley, D. F.; Nixon, E.; Strachey, C. (1 August
1963). "The Main Features of CPL". The Computer Journal. 6 (2): 134–
143. doi:10.1093/comjnl/6.2.134. ISSN 0010-4620.
123. The Next Wave, High Confidence Software and Systems (HCSS) (PDF), vol. 19,
2011, archived from the original(PDF) on 2014-07-14, retrieved 2014-07-07
439
"Crystal 1.6.0 is released!". 6 October 2022. Retrieved 17 October 2022.
125. Dr. Richard Boulanger - Three Decades with Csound: The Roots, Birth, and Early
Years
126. "CSS developer guide". MDN Web Docs. Archived from the original on 2015-0925. Retrieved 2015-09-24.
127. Brandt, Jörgen; Bux, Marc N.; Leser, Ulf (2015). "Cuneiform: A functional
language for large scale scientific data analysis" (PDF). Proceedings of the
Workshops of the EDBT/ICDT. 1330: 17–26.
128. "Changes to Supported Operating Systems of Curl RTE Products". SCSK
Corporation. Archived from the original on 2019-05-13. Retrieved 2020-04-01.
129. Michael Hanus (ed.). "Curry: A Truly Integrated Functional Logic Language".
130. Computing
information
directory by
Darlene
Myers
Hildebrandt
(1988) ISBN 093311303X page 232
131. "Open Access Cyclone (programming language) Journals · OA.mg". oa.mg.
132. "Cypher: An Evolving Query Language for Property Graphs" (PDF). Proceedings
of the 2018 International Conference on Management of Data. ACM.
Retrieved 2018-06-27.
133. Behnel,
Stefan (2008). "The Cython Compiler for C-Extensions in
Python". EuroPython (28 July 2007: official Cython launch). Vilnius/Lietuva.
134. The Apple II Programmer's Catalog of Languages and Toolkits, 1993
135. "Programming in D for C++ Programmers - D Programming Language". dlang.org.
Retrieved 5 April 2022.
136. Kopec,
David
(30
June
2014). Dart
for
Absolute
Beginners.
p. 56. ISBN 9781430264828. Retrieved 24 November 2015.
137. Gonnet, G. H.; Hallett, M. T.; Korostensky, C.; Bernardin, L. (2000). "Darwin
v2.0: an interpreted computer language for the biosciences". Bioinformatics. 16 (2):
101–103. doi:10.1093/bioinformatics/16.2.101. PMID 10842729. S2CID 1531041.
138. Aarons,
Richard N. (September 4, 1984). "DataFlex: Programming
Gymnastics". PC Magazine. Vol. 3, no. 17. Ziff Davis. pp. 253–255. ISSN 08888507. Retrieved March 8,2017.
139. Huang, Green, and Loo, "Datalog and Emerging applications", SIGMOD
2011 (PDF), UC Davis.
140. "Digital introduces Datatrieve". Computerworld. March 27, 1978. p. 53.
141. "The FoxPro History - Interview with Wayne Ratliff". www.foxprohistory.org.
142. "The sources for the manual page for 7th Edition Unix dc". Archived from the
original on 2004-08-23. Retrieved 2004-06-23.
143. "VAX/VMS Software Language and Tools Handbook" (PDF). bitsavers.org. 1985.
Retrieved 2020-12-31.
144. "Announcing the Availability of RAD Studio 11.2 Alexandria". 7 September 2022.
Retrieved 7 September2022.
145. example:
GOTO(XSMALL,XMED,XLARG),XCODE J.
Scott
Canfield
(November 1982). "DIBOL, Data Entry Subroutine". DEC Professional. pp. 18–20.
124.
440
146. Geron,
Tomio (2019-04-02). "Startup Celo Aims to Make Crypto Accessible to
Mainstream Mobile Users". Wall Street Journal. ISSN 0099-9660. Retrieved 202101-25.
147. Foust, John (August 1987). "The AMICUS Network, New Fish disks". Amazing
Computing. Vol. 2, no. 8. PiM Publications. p. 85. ISSN 0886-9480.
148. Terekhov, Andrey; Bryksin, Timofey; Litvinov, Yurii. How to make visual
modeling more attractive to software developers / 11th LASER Summer School on
Software Engineering. Leading-Edge Software Engineering. September 7-13, 2014
- Elba Island, Italy
149. Stokel-Walker, Chris. "Julia: The Goldilocks language". Increment. Stripe.
Retrieved 23 August 2020.
150. DYNAMO - excerpt from manual contains much more detailed history.
151. The Variant data type is used for expressions that might return different data types,
depending on the conditions."Variant DAX Data Type". dax.guide.
152. Handy, Alex (14 November 2016). "The future of software security". SD Times.
153. Ericsson-Zenith, Steven (1 July 2011) [July 1992]. Process Interaction Models.
Seattle,
Washington,
U.S.:
CreateSpace
Independent
Publishing
Platform. ISBN 978-1463777913
154. Burroughs Corporation, "B 6700 / B 7700 PL/I Language Reference", 5001530.
Detroit, 1977.
155. Skidmore,
Lem
(25
June
1979). "Nonapplications:
Preparation
Vital". Computerworld. IDG Enterprise. 13 (26): SR/2 and SR/28. ISSN 0010-4841.
Retrieved 28 February2021.
156. "Software Developer's Journal Extra 2012/02 - Cross-Platform Development with
the Ecere SDK" (PDF). Retrieved 7 January 2016.
157. Stefanov,
Stoyan (2010). JavaScript Patterns. O'Reilly Media, Inc.
p. 5. ISBN 9781449396947. Archived from the original on 2016-06-10.
Retrieved 2016-01-12. The core JavaScript programming language [...] is based on
the ECMAScript standard, or ES for short.
158. "Early IMP Program (the world's first known self-reproducing program)".
159. EDT (EGL Development Tools)
160. "Eiffel in a Nutshell". archive.eiffel.com. Retrieved 24 August 2017.
161. ELAN implementation built by the Radboud University Nijmegen
162. elixir/LICENSE at master · elixir-lang/elixir · GitHub". GitHub.
163. Czaplicki, Evan (30 March 2012). "My Thesis is Finally Complete! "Elm:
Concurrent FRP for functional GUIs"". Reddit.
164. "Re: [Emacs-diffs] /srv/bzr/emacs/trunk r111086: gmm-utils.el (gmm-flet".
Lists.gnu.org. 2012-12-05. Retrieved 2013-08-18.
165. Black, Andrew P.; Hutchinson, Norman C.; Jul, Eric; Levy, Henry M. (1 January
2007). "The Development of the Emerald Programming Language". Proceedings of
the third ACM SIGPLAN conference on History of programming languages - HOPL
III. ACM. pp. 11–1–11-51. doi:10.1145/1238844.1238855. ISBN 978-1-59593766-7.
441
"Epigram – Official website". Retrieved 28 November 2015.
167. Official description
168. "Release 25.1.2". 24 October 2022. Retrieved 11 November2022.
169. Fischer, Manfred M. (13 December 1996). Spatial Analytical Perspectives on
GIS. ISBN 9780748403400.
170. Declarative programming in Escher, JW Lloyd, University of Bristol, Bristol, UK,
1995
171. B5500 ESPOL Reference Manual, 1967
172. Berry,
Gérard
(1999).
"The
Constructive
Semantics
of
Pure
Esterel". CiteSeerX 10.1.1.46.2076.
173. Ingalls, Dan; Kaehler, Ted; Maloney, John; Wallace, Scott; Kay, Alan (1997). Back
to the Future: The Story of Squeak, a Practical Smalltalk Written in Itself. OOPSLA
'97.
ACM.
pp. 318–326. doi:10.1145/263698.263754. ISBN 0-89791-9084. S2CID 431100.
174. B.W. Lampson, J.J. Horning, R.L. London, J.G. Mitchell and G.J. Popek 1977.
Report on the programming language Euclid. SIGPLAN Notices 12, 2 (February
1977), 1-79.
175. Wirth, Niklaus; Weber, Helmut (1966). "Euler: a generalization of ALGOL, and its
formal definition: Part I". Communications of the ACM. 9 (1): 13–25.
176. a b c "RapidEuphoria homepage". Archived from the original on 2012-07-11.
Retrieved 2010-12-30.
177. Object-Oriented Concurrent Lisp with Solid Modeling Facilities: EusLisp
178. Varian, Melinda. "VM AND THE VM COMMUNITY: Past, Present, and
Future" (PDF). Retrieved Mar 9, 2012.
179. Varian, Melinda. "VM AND THE VM COMMUNITY: Past, Present, and
Future" (PDF). Retrieved March 14, 2012.
180. G. O'Keefe (2006) "Dynamic Logic Semantics for UML Consistency" in: ModelDriven Architecture - Foundations and Applications: Second European Conference,
ECMDA-FA 2006, Bilbao, Spain, July 10–13, 2006, Proceedings. Arend Rensink
eds. p. 124
181. Annamalai,
Muthiah (28 Jul 2009). "Ezhil: A Tamil Programming
Language". arXiv:0907.4960 [cs.PL].Reference
implementation
of
Ezhil
programming language
182. The Fortran Company. "All About F". Retrieved 2014-04-28.
183. Syme, Don; Granicz, Adam; Cisternino, Antonio (2007), Expert F#, Apress
184. "Microsoft Research Inria Joint Centre". MSR-INRIA.
185. Pestov, Slava. "Slava Pestov's corner of the web".
186. Blog post about history of Fantom
187. Michon, Romain; Smith, Julius O. III (2011). "Faust-STK: a Set of Linear and
Nonlinear
Physical
Models
for
the
Faust
Programming
Language" (PDF). Proceedings of the 11th Int. Conference on Digital Audio Effects
(DAFx-11): 199–204.
166.
442
188. The
Conception, Evolution, and Application of Functional Programming
Languages Archived 2016-03-11 at the Wayback Machine Paul Hudak, 1989
189. "fish shell team members". GitHub.com. Retrieved 2021-07-28.
190. Agnarsson, Snorri; Krishnamoorthy, M. S. (1985). "Towards a theory of
packages". ACM SIGPLAN Notices. 20 (7): 117–130. doi:10.1145/17919.806833.
191. Aiken, Alexander; Williams, John H.; Wimmers, Edward L. "The FL Project:
Design of a Functional Language" (PDF). Stanford University.
192. "Visual FlagShip: Overview". flagship.de. Retrieved 2022-04-12.
193. Howard Cannon, Flavors: A non-hierarchical approach to object-oriented
programming, Symbolics Inc., 1982
194. FLEX – A flexible extendable language
195. "Apache License 2.0". 27 July 2022 – via GitHub.
196. Douglas Hofstadter (1979), Gödel, Escher, Bach, Basic Books, Chapter XIII.
197. Hopper, Grace (1978). Keynote Address, History of Programming Languages I.
ACM. pp. 16–20. ISBN 0-12-745040-8
198. McCracken, Harry (2014-04-29). "Fifty Years of BASIC, the Programming
Language That Made Computers Personal". Time. Archived from the original on
2016-02-05. Retrieved 2016-02-12.
199. Nick Rawlings (March 17, 2014). "The History of NOMAD: A Fourth Generation
Language". IEEE Annals of the History of Computing. 36: 30–
38. doi:10.1109/MAHC.2014.10.
200. FOIL - a file oriented interpretive language article at the ACM digital library
201. Sammet, Jean E. (1993). "The beginning and development of FORMAC (FORmula
MAnipulation Compiler)". Proceedings of HOPL-II, The second ACM SIGPLAN
conference
on
History
of
programming
languages.
pp. 209–
230. doi:10.1145/154766.155372. ISBN 0-89791-570-4.
202. Damien Katz (January 4, 2005). "Formula Engine Rewrite". Personal blog.
Retrieved September 30, 2016.
203. NASA applications of Forth (original NASA server no longer running, copy from
archive.org)
204. "Chapel
spec
(Acknowledgements)" (PDF).
Cray
Inc.
1
October
2015. Archived (PDF) from the original on 5 February 2016. Retrieved 14
January 2016.
205. Eric Allen; David Chase; Joe Hallett; Victor Luchangco; Jan-Willem Maessen;
Sukyoung Ryu; Guy L. Steele Jr.; Sam Tobin-Hochstadt; et al. (2008-03-31). "The
Fortress Language Specification: Version 1.0" (PDF). research.sun.com. Sun
Microsystems. Archived from the original (PDF) on 2013-01-20.
206. The Conception, Evolution, and Application of Functional Programming
Languages Archived 2016-03-11 at the Wayback Machine Paul Hudak, 1989
207. using the ibcs files from the Linux ABI on SourceForge
208. Gabriel,
Richard P. (May 1985). Performance and evaluation of Lisp
systems (PDF). Cambridge, Massachusetts: MIT Press; Computer Systems Series.
443
pp. 60, 294. ISBN 0-262-07093-6. LCCN 85-15161. It evolved into one of the most
commonly available Lisp dialects on Unix machines.
209. Henriksen, Troels; Serup, Niels G. W.; Elsman, Martin; Henglein, Fritz; Oancea,
Cosmin (2017). "Futhark: Purely Functional GPU-Programming with Nested
Parallelism and In-Place Array Updates" (PDF). Proceedings of the 38th ACM
SIGPLAN Conference on Programming Language Design and Implementation.
PLDI 2017. ACM.
210. Baird, Wolfgang (23 March 2020). "w0lfschild/F-Script".
211. Kerr, Chris. "GameMaker Studio 2 gets new low-cost 'Creators Edition'".
Retrieved 9 May 2018.
212. Web site, https://en.wikipedia.org/wiki/GameMonkey_Script
213. Kallrath,
Josef
(2004). Modeling Languages in
Mathematical
Optimization (First ed.). Norwell, USA: Kluer Academic Publishers.
p. 241. ISBN 978-1-4613-7945-4.
214. "GAP 4.12.1". www.gap-system.org. Retrieved 20 October2022.
215. Karlo Apro (2008). Secrets of 5-Axis Machining. Industrial Press Inc. ISBN 0-83113375-9.
216. Linietsky, Juan (14 January 2014). "Godot Engine - First public release!". Godot
Engine. Retrieved 2019-07-01.
217. Jamie McCracken (2008). "Introducing Genie - the smart programming language".
Archived from the original on 2011-08-18.
218. GDL Center, GRAPHISOFT's GDL knowledge base and community center
219. Hamblin, Charles Leonard (May 1957). An Addressless Coding Scheme based on
Mathematical Notation (Typescript). New South Wales University of Technology.
220. "Extend the syntax of #line and __FILE__ to support filename strings by antiagainst
· Pull Request #43 · KhronosGroup/glslang". GitHub.
221. Exodus Storage Manager
222. "GNU Guile (About Guile)". GNU Project. Guile is the GNU Ubiquitous Intelligent
Language for Extensions, the official extension language for the GNU operating
system.
223. "Is Go an object-oriented language?". Retrieved April 13,2019. Although Go has
types and methods and allows an object-oriented style of programming, there is no
type hierarchy.
224. a b c Claburn, Thomas (2009-11-11). "Google 'Go' Name Brings Accusations Of
'Evil'". InformationWeek.
Archived
from the
original on
2010-07-22.
Retrieved 2009-11-14.
225. Anthony
Newman (2017-10-28). Unsynced: The Last of Us Melee
System (Videotape). Game Developer's Conference. 37 minutes in. Archived from
the original on 2021-12-14. Retrieved 2017-11-05.
226. Website,https://web.archive.org/web/20091207092823/http://www.scs.leeds.ac.uk/
hill/GOEDEL/expgoedel.html
227. "Termination Review". projects.eclipse.org. Retrieved 24 October 2022.
444
228. An
Abbreviated description of the MAD compiler language, Fernando J.
Corbató, Jerome H. Saltzer, Neil Barta, and Thomas N. Hastings, M.I.T.
Computation Center Memorandum CC-213, June, 1963.
229. Meyer, David (August 20, 2009). "Google Apps Script gets green light". CNet.
Retrieved 26 March 2011.
230. "Gosu Programming Language Released To Public". Slashdot. 2010-11-09.
231. "Some Key Dates in IBM's Operations in Europe, the Middle East and Africa
(EMEA)" (PDF). Archived (PDF) from the original on 2022-10-10.
232. Arne Thesen; J. William Schmidt (2014). Computer Methods in Operations
Research. ISBN 978-1483260747. GPSS is a process flow oriented simulation
language
233. "Management and Board of Directors". Computer Sciences Corporation.
Retrieved July 2, 2015.
234. DeFanti, Thomas; Fenton, Jay; Donato, Nola (August 1978). "BASIC Zgrass—a
sophisticated graphics language for the Bally Home Library Computer". Proceedings
of the 5th Annual Conference on Computer Graphics and Interactive Techniques.
ACM SIGGRAPH Computer Graphics. 12 (3): 33–37.
235. Tedeschi, Arturo (January 2011). "Intervista a David Rutten". MixExperience
Tools1 (in Italian and English). Naples, Italy: MixExperience. pp. 28–29.
Retrieved February 8,2011.
236. König, Dierk; Paul King; Guillaume Laforge; Hamlet D'Arcy; Cédric Champeau;
Erik Pragt; Jon Skeet (2015). Groovy in Action, Second Edition.
Manning. ISBN 978-1-935182-44-3.
237. Bryan O'Sullivan (2014-03-28). "Where Credit Belongs for Hack". Archived from
the original on 2021-03-01. Retrieved 2019-02-06.
238. Michaelson, Greg. "Object Oriented Programming from Procedural Programming
with a little Computational Thinking" (PDF). Herriot Watt University Mathematical Computing Science. Retrieved 8 November 2016.
239. "STS Software". NSTS 1988 News Reference Manual. NASA. Retrieved 2011-0330.
240. "Halide - New Language For Image Processing". 2012. Retrieved 20
September 2013.
241. Faught, Danny (Aug 31, 1996). "The shell game". Software QA Magazine. 3 (4).
Archived from the original on March 1, 2012. Retrieved Apr 8, 2013.
242. vailtom (17 August 2009). "Harbour MiniGUI Extended Edition. | Free
Communications software downloads at". Sourceforge.net. Retrieved 9
December 2013.
243. CMS/TSO Pipelines Author's Edition Author's Edition
244. Norell, Ulf (2008). "Dependently Typed Programming in Agda" (PDF).
Gothenburg: Chalmers University. Retrieved 9 February 2012.
245. "Release alpha-1". haxe. HaxeFoundation. 2005-11-14. Retrieved 2022-04-02 –
via GitHub.
445
246. Strom,
Robert E.; Bacon, David F; Goldberg, Arthur P.; Lowry, Andy; Yellin,
Daniel M.; Yemini, Shaula (1991). Hermes - A Language for Distributed
Computing. Englewood Cliffs, NJ, USA: Prentice-Hall. ISBN 978-0-13-389537-7.
247. Randall Hyde, Write Great Code: Understanding the machine, No Starch Press,
2004, ISBN 1-59327-003-8, pp. 14–15 and used throughout the book
248. "High-level shader language (HLSL)". Microsoft Docs. Retrieved 2021-02-22.
249. Johnson, Magnus: Interview with Andreas Falkenhahn. Total Amiga 21 (2005), pp.
14-15.
250. Bruet-Ferréol, Quentin (May 13, 2014). "Temple OS, un système d'exploitation pour
parler à Dieu codé par un fou génial". Slate.fr (in French). Archived from the
original on December 21, 2014. Retrieved April 21, 2015.
251. http://hop.inria.fr/usr/local/lib/hop/2.2.0/weblets/home/articles/hoplang/article.html[dead link]
252. Hanselminutes Podcast, Show #417, Apr 04, 2014, titled "I am teaching my
daughter to code with Hopscotch - Fitzgerald Steele", 30-minute interview with
father whose daughter tried Hopscotch app on iPad.
253. Burstall R.M, MacQueen D.B, Sannella D.T. (1980) Hope: An Experimental
Applicative Language. Conference Record of the 1980 LISP Conference, Stanford
University, pp. 136-143.
254. Eekelen, Marko Van (2007). Trends in Functional Programming. Intellect Books.
p. 198. ISBN 978-1-84150-176-5.
255. Roman Knöll, Vaidas Gasiunas, Mira Mezini, "Naturalistic types", Onward! 2011:
Proceedings of the 10th SIGPLAN symposium on New ideas, new paradigms, and
reflections on programming and software, pp. 33–48, October 2011.
256. Jaworski, Michał; Ziadé, Tarek (2019). Expert Python programming (Third ed.).
Birmingham,
U.K.:
Packt
Publishing.
p. 173. ISBN 978-1-78980-6779. OCLC 1125343555.
257. Tate, Bruce (2010). "Chapter 3: Io". Seven Languages in Seven Weeks: A Pragmatic
Guide to Learning Programming Languages (1st ed.). Raleigh, North
Carolina: Pragmatic Bookshelf. p. 60, 72. ISBN 978-1934356593.
258. Schemenauer, Neil; Peters, Tim; Hetland, Magnus Lie (18 May 2001). "PEP 255 –
Simple Generators". Python Enhancement Proposals. Python Software Foundation.
Retrieved 9 February2012.
259. IBM System/360 Principles of Operation (PDF). Systems Reference Library. IBM
Corporation. A22-6821-0. Retrieved Dec 6, 2018.
260. Web site, https://en.wikipedia.org/wiki/IBM_HAScript
261. Lebensorger, Reinhard (March 9, 2013). Effiziente Datenbankentwicklung mit
INFORMIX-4GL: Design, Implementierung und Optimierung (in German).
Springer-Verlag. ISBN 978-3-322-90418-8.
262. Alex Woodie (2020-08-24). "Is It Time To Rename RPG?". itjungle.com.
Retrieved 2021-03-16.
263. Fanning, David. "Program Naming Conflicts in IDL 8". Archived from the
original on 6 March 2014. Retrieved 30 September 2014.
446
264. Brady,
Edwin (12 December 2007). "Index of /~eb/darcs/Idris". University of St
Andrews School of Computer Science. Archived from the original on 2008-03-20.
265. "Release notes for Inform v10.1.0 and v10.1.1". github.com. Retrieved August
26, 2022.
266. "ISO/IEC
13816:1997(E)". International Organization for Standardization.
Retrieved 2018-11-10.
267. Bussell, Brian; Taylor, Stephen (2006), "Software Development as a Collaborative
Writing Project", Extreme programming and agile processes in software
engineering,
Oulu,
Finland: Springer,
pp. 21–31, ISBN 978-3-540-350941 {{citation}}: Missing or empty |title= (help)
268. "Java to .NET Framework Migration Workshop: Free Online Training". Archived
from the original on 2008-04-23. Retrieved 2020-01-28.
269. "Announcing General Availability of Microsoft Build of OpenJDK". Java at
Microsoft. 2021-05-25. Retrieved 2021-08-03.
270. "Jade Software delivers Jade 7.1". ZDnet. Retrieved 21 December 2019.
271. Beta testing by: Bert van Dam, Sunish Isaac, Dave Lagzdin, Javier Martinez, Stef
Mientki, Wouter van Ooijen, Michael Reynolds, André Steenveld, Joep Suijs, Vasile
Surducan, and Michael Watterson
272. Kahn, K.; Saraswat, Vijay A. (1 October 1990). "Actors as a special case of
concurrent constraint (logic) programming". ACM SIGPLAN Notices. 25 (10): 57–
66. doi:10.1145/97946.97955. Retrieved 29 October 2019.
273. Christopher Lutz. Janus: a time-reversible language. 1986. Letter to R.
Landauer. http://tetsuo.jp/ref/janus.html.
274. Binstock,
Andrew
(May
20,
2015). "Java's
20
Years
of
Innovation". Forbes. Archived from the original on March 14, 2016.
Retrieved March 18, 2016.
275. "Steve
On Java » Announcing Visage – The DSL for Writing
UIs". steveonjava.com. Archived from the original on 2010-10-01.
276. Dickerson,
Gordon (August 31, 2018). "Learn the History of Web
Browsers". washingtonindependent.com. Retrieved August 31, 2018.
277. Friedman-Hill, Ernest (2003). Jess in Action: Rule Based Systems in Java.
Manning Publications. ISBN 9781930110892. Retrieved March 30, 2012. ISBN 1930110-89-8
278. Ashley and Fernandez, Job Control Language, p. 1.
279. Rees, M.J. (24 October 1970). "Some improvements to the MINIMOP multi-access
operating system". Software. Wiley InterScience. doi:10.1002/spe.4380010208.
Archived from the original on 5 January 2013. Retrieved 24 April 2009.
280. von Itzstein, G, Stewart. and Jasiunas, M (2003). On Implementing High Level
Concurrency in Java. Advances in Computer Systems Architecture 2003, Aizu
Japan, Springer Verlag.
281. Smith,
JW (August 1967). JOSS: Central Processing Routines (reference user
guide). RAND. RM 5270 PR. Retrieved 2012-04-16.
447
Miller, Mark Samuel (2006). "Robust composition: towards a unified approach to
access control and concurrency control". Johns Hopkins University.
283. "Ed and Kay, JOVIAL Pioneers". jovial.com. Retrieved 2021-02-23.
284. "Mathematical Foundations of Joy". Archived from the original on October 7, 2011.
285. "Disabling
legacy
scripting
engine
JScript
in
Internet
Explorer". TECHCOMMUNITY.MICROSOFT.COM.
2020-10-13.
Retrieved 2021-11-15.
286. Getting Started With JScript .NET
287. "Releases · JuliaLang/julia". GitHub. Retrieved 15 November 2022.
288. Wierzbicki, Frank (22 March 2015). "jython: 3d8067c56a1d NEWS". Retrieved 28
March 2015.
289. Iverson, Kenneth. "Notation as a Tool of Thought". Archived from the original on
2013-09-20. Retrieved 2015-02-23.
290. Marriott, Kim; Peter J. Stuckey (1998). Programming with constraints: An
introduction. MIT Press. ISBN 0-262-13341-5
291. "Who did actually invent the word 'robot' and what does it mean?". Archived
from the original on 27 July 2013. Retrieved 25 July 2013.
292. Knowledge Engineering Environment (KEE) Archived2007-09-19 at the Wayback
Machine Encyclopedia of Computer Languages
293. "KiXtart Downloads". Archived from the original on 2012-02-06.
294. Klerer, Melvin; May, Jack (1965). "A user oriented programming language". The
Computer Journal. 8 (2): 103–109. doi:10.1093/comjnl/8.2.103.
295. Andreas L. Symeonidis; Pericles A. Mitkas (15 July 2005). Agent Intelligence
Through Data Mining. Springer Science & Business Media. pp. 54–. ISBN 978-0387-24352-8.
296. "Kojo home page". Retrieved 29 August 2012.
297. "What is the correct English pronunciation of Kotlin?". 16 October 2019.
Retrieved 9 November 2019.
298. Dates in the commentary to the BCPL KRC source code for EMAS.
299. Oral history interview with Terry Winograd at Charles Babbage Institute,
University of Minnesota, Minneapolis.
300. Braumann & Brell-Cokcan 2011, p. 243.
301. Woods, W. A.; Schmolze, J. G. (1992). "The KL-ONE family" (PDF). Computers
&
Mathematics
with
Applications. 23 (2–5):
133. doi:10.1016/08981221(92)90139-9.
302. "Korn
Shell
Launcher
for
Windows
Subsystem
for
Linux
« Musings". blog.fpmurphy.com. Retrieved 2021-01-29.
303. "Commits · scoy/KoduGameLab". GitHub.com. Retrieved 2021-03-23.
304. "Kivy 2.1.0". github.com. 2022-03-06. Retrieved 2022-04-04.
305. Jeffrey., Travis (2006). LabVIEW for everyone : graphical programming made easy
and fun. Kring, Jim. (3rd ed.). Upper Saddle River, NJ: Prentice
Hall. ISBN 0131856723. OCLC 67361308.
282.
448
306. Edward
W. Kamen Industrial Controls and Manufacturing, (Academic Press,
1999) ISBN 0123948509, Chapter 8 Ladder Logic Diagrams and PLC
Implementations
307. Bettin, Joern (2001). "Practical Use of Generative Techniques in Software
Development" (PDF). OOPSLA Workshop on Generative Programming.
308. Dave, Parkhurst (April 25, 1997), "New Web tools help servers link to legacy
data", MacWEEK Magazine
309. Lava – An Object-Oriented RAD Language Designed for Ease of Learning, Use,
and Program Comprehension (PDF). Gesellschaft für Informatik. October 2001.
Retrieved 2022-06-09.
310. Yuan-Jhang Liao and Wing-Kwong Wong. "Using LC-3 Soft Core on an FPGA
Development Board for Microprocessor Labs". 2013. p. 612-613 of "Intelligent
Technologies and Engineering Systems".
311. Hales, Thomas (18 September 2018). "A Review of the Lean Theorem Prover".
Retrieved 6 October 2020.
312. "BrickLink
Reference
Catalog
Sets
Category
LEGO
Mindstorms". www.bricklink.com. Retrieved 12 April 2021.
313. Plauger, P.J. "A Little Implementation Language".
314. Nienhuys, Han-Wen (July 31, 1998). "GNU LilyPond 1.0 released". gnu-musicdiscuss (Mailing list). Retrieved February 16, 2010.
315. "Inferno Application Programming". vitanuova. vitanuova. Retrieved January
26, 2021.
316. Web site, https://en.wikipedia.org/wiki/Limnor
317. a b "Unisys has Linc to web world". Computerworld New Zealand. IDG
Communications. 2002-09-17. ISSN 0113-1494. CMPWNZ. Archived from the
original on 2016-02-16.
318. Macromedia Shockwave for Director User's Guide, Volume 1, New Riders Pub.,
01-Jan-1996
319. "Monadic Parser Combinators using C#3". Retrieved 2009-11-21.
320. Jean D. Ichbiah, The System implementation language LIS, Louveciennes, France:
Compagnie internationale pour l'informatique, 1976.
321. A. Hoffmann, H. Meyr, R. Leupers: Architecture Exploration for Embedded
Processors with LISA, Springer, 2010. ISBN 978-1441953346
322. Cormack, A.S. (November 1, 1962). "Early Operating Experience with Language
H". The Computer Journal. 5 (3): 158–161. doi:10.1093/comjnl/5.3.158.
323. "Introduction". The Julia Manual. Read the Docs. Archived from the original on
2016-04-08. Retrieved 2016-12-10.
324. "New Releases and Algo Trading News | Zorro Project". www.zorro-trader.com.
Retrieved 2022-10-18.
325. "Lithe: a language combining a flexible syntax and classes"
326. Krieger K "Life in Silico: A Different Kind of Intelligent Design" Science
312(5771):189–190
449
Abelson, Hal; Goodman, Nat; Rudolph, Lee (December 1974). "Logo
Manual". Artificial
Intelligence
Lab,
Massachusetts
Institute
of
Technology. hdl:1721.1/6226. Archived from the original on September 11, 2016.
Retrieved August 28, 2016.
328. Moura, Paulo (2011). Programming Patterns for Logtalk Parametric Objects.
Applications of Declarative Programming and Knowledge Management. Lecture
Notes
in
Computer
Science.
Vol. 6547. doi:10.1007/978-3-642-205897_4. ISBN 978-3-642-20588-0.
329. Moser, Gerd (12 March 1999). SAP® R/3® Interfacing using BAPIs: A practical
guide to working within the SAP® Business Framework. Springer Science &
Business Media. p. 45. ISBN 978-3-528-05694-0.
330. Bartle, Richard (2003). Designing Virtual Worlds. New Riders. p. 10. ISBN 0-13101816-7. LPMUD was named after its author, Lars Pensjö of the University of
Gothenburg, Sweden.
331. Hebenstreit, Jacques (2006). "The '10,000 microcomputers plan' in France". In
Jacquetta Megarry (ed.). World Yearbook of Education 1982/3: Computers and
Education. Routledge. p. 126. ISBN 978-1-136-16772-0. The language LSE
(Langage Symbolique d'Enseignement–a symbolic teaching language) was defined
at my laboratory in 1971 and implemented on the MITRA 15 and T1600, both
French-made systems.
332. "Infographic: 10 Years of Second Life". Linden Lab. June 20, 2013.
Retrieved August 4, 2014.
333. Shafer, Dan (2004). "Review: Runtime Revolution, Programming for Mere
Mortals". MacTech. 20 (5). Revolution ... grows out of HyperCard, a much-beloved
and widely used Apple Computer product that the company abandoned a few years
ago....
334. "Chapter 4. How JavaScript Was Created". speakingjs.com. Archived from the
original on 2020-02-27. Retrieved 2017-11-21.
335. Ring Team (5 December 2017). "The Ring programming language and other
languages". ring-lang.net.
336. Wadge, William W.; Ashcroft, Edward A. (1985). Lucid, the Dataflow
Programming Language. Academic Press. ISBN 0-12-729650-6. Retrieved 8
January 2015.
337. N. Halbwachs et al. The Synchronous Data Flow Programming Language
LUSTRE. In Proc. IEEE 1991 Vol. 79, No. 9. Accessed 17 March 2014.
338. "LYaPAS". Encyclopedia of Programming Languages. Archived from the
original on July 2008. Retrieved 15 July2018.
339. M. L. Scott, "The Lynx Distributed Programming Language: Motivation, Design,
and
Experience," Computer
Languages16:3/4
(1991),
pp.
209233. http://citeseer.ist.psu.edu/scott91lynx.html
340. DougKlopfenstein. "Power Query documentation - Power Query". Retrieved 202210-27.
341. A modular mathematical programming language By Ronald E. Prather [1]
327.
450
342. Brian
W. Kernighan and Dennis M. Ritchie. The m4 macro processor. Technical
report, Bell Laboratories, Murray Hill, New Jersey, USA, 1977. pdf
343. "The end of offshoring?". Business Reporter. Archived from the original on 201303-10.
344. Lagarias, Jeffrey C.; Rains, Eric; Vanderbei, Robert J. (2009) [2001-10-13]. Brams,
Stephen; Gehrlein, William V.; Roberts, Fred S. (eds.). The Kruskal
Count (PDF). The Mathematics of Preference, Choice and Order. Essays in Honor
of Peter J. Fishburn. Berlin / Heidelberg, Germany: Springer-Verlag. pp. 371–
391. arXiv:math/0110143. ISBN 978-3-540-79127-0. Archived (PDF) from
the
original on 2021-12-25. Retrieved 2021-12-25. (22 pages)
345. "Carl Engelman Memorial Fund" (PDF). The FINITE STRING Newsletter.
American Journal of Computational Linguistics, Volume 9, Numbers 3-4, July–
December 1983. Archived from the original (PDF) on 2003-04-28.
346. An Abbreviated description of the MAD compiler language, Fernando J.
Corbató, Jerome H. Saltzer, Neil Barta, and Thomas N. Hastings, M.I.T.
Computation Center Memorandum CC-213, June, 1963.
347. Jim Connors (2012-11-05). "Sprinkle Some Magik on that Java Virtual Machine".
Retrieved 2012-11-06. With this new capability GE Energy has succeeded in hosting
their Magik environment on top of the Java Virtual Machine
348. John Cannon (July 2006). "Magma 2.13 release notes".
349. "Maplesoft Media Releases". www.maplesoft.com. Retrieved 2022-03-19.
350. Del
Fiacco,
Gerry
(2008-08-23). "MAPPER:
A
Mission
Critical
Legacy". enterprisenetworksandservers.com. Archived from the original on 200808-23. Retrieved 2019-02-03.
351. MARK IV The general purpose software product line for business data
processing Informatics, Inc.
352. Web site, https://en.wikipedia.org/wiki/Mary_(programming_language)
353. Ferreira, A.J.M. (2009). MATLAB Codes for Finite Element Analysis.
Springer. ISBN 978-1-4020-9199-5.
354. Watt, Peggy; Christine McGeever (January 7, 1985). "Macintosh Vs. IBM PC At
One Year". InfoWorld. Vol. 7, no. 1. pp. 15–16. ISSN 0199-6649. The IBM PC
Macro Assembler was released in December 1981.
355. Ash, R.; Broadwin, E.; Della Valle, V.; Greene, M.; Jenny, A.; Katz, C.; Yu, L.
(1957-04-19). Preliminary Manual for MATH-MATIC and ARITH-MATIC
Systems for Algebraic Translation and Compilation for UNIVAC I and
II (PDF) (Technical report). Philadelphia: Remington Rand Univac. Archived
from the original (PDF) on 2014-12-26. Retrieved 2016-03-19.
356. "The Maude System:About". The Maude System. Retrieved 27 August 2021.
357. Barnes, David J. & Chu, Dominique (2010). "Chapter 5". Introduction to Modeling
for Biosciences. Springer. ISBN 978-1-84996-325-1.
358. Place, T.; Lossius, T. (2006). "A modular standard for structuring patches in
Max" (PDF). Jamoma. New Orleans, US: In Proc. of the International Computer
451
Music Conference 2006. pp. 143–146. Archived from the original (PDF) on 201107-26. Retrieved 2011-02-16.
359. "History of Autodesk 3ds Max". Archived from the original on October 24, 2015.
360. Mark R. Wilkins, Chris Kazmier: "MEL Scripting for Maya Animators". 2nd
edition, Morgan Kaufmann 2005; ISBN 0-12-088793-2
361. Supnik, Bob (October 25, 2006). "GET LAMP Bob Supnik Interview" (Interview).
Interviewed by Jason Scott. 15:00.
362. Somogyi, Zoltan; Henderson, Fergus; Conway, Thomas (October–December
1996). "The execution algorithm of Mercury: an efficient purely declarative logic
programming language". Journal of Logic Programming. Mercurylang.org. 29 (1–
3):
17–64. CiteSeerX 10.1.1.46.9861. doi:10.1016/S0743-1066(96)00068-4.
Retrieved 2008-08-30.
363. Geschke, Charles; Morris, James H.; Satterthwaite, Edwin H. (August 1977).
"Early Experience with Mesa". Communications of the ACM. 20 (8): 540–
552. doi:10.1145/359763.359771. S2CID 15737342.
364. ISO. "ISO/IEC 13522-5:1997 - Information technology -- Coding of multimedia
and hypermedia information -- Part 5: Support for base-level interactive
applications". Retrieved 2010-08-01.
365. "Computer Structures: Principles and Examples, Part 2, REGIONS OF
COMPUTER SPACE, Section 1, MICROPROGRAM-BASED PROCESSORS,
Seite 151 ff". McGraw-Hill Computer Science Series. Retrieved 2010-10-03.
366. Anderson, Tim (2021-03-02). "Excel-lent: Microsoft debuts low-code Power Fx
language... but it is not really new". The Register. Retrieved 2021-03-14.
367. Marilyn Lutz (1984-03-01). "OCLC's Local Library System: LS/2000". Library Hi
Tech. 2 (2): 7–16. doi:10.1108/eb047542. ISSN 0737-8831.
368. "Faster parallel computing: New programming language delivers fourfold speedups
on problems common in the age of big data." by Larry Hardesty, MIT News Office,
September 13, 2016.
369. "Tutorial 2: Numerical Solutions of ODE's" (PDF). Stanford University-Dept of
Civil and Environmental Engineering, Environmental Fluid Mechanics Lab. 200208-19. Archived from the original (PDF) on 2010-07-20. Retrieved 2012-02-26.
370. Duby: A Type-Inferred Ruby-Like JVM Language
371. Turner, D. A. (1985). Jouannaud, Jean-Pierre (ed.). "Miranda: A non-strict
functional language with polymorphic types". Functional Programming Languages
and Computer Architecture. Lecture Notes in Computer Science. Berlin, Heidelberg:
Springer. 201: 1–16. doi:10.1007/3-540-15975-4_26. ISBN 978-3-540-39677-2.
372. Patches and Downloads - Includes Empresa, Mia, Compiler and Miva Merchant
Limited Source Kit
373. Robin Milner. A theory of type polymorphism in programming. Journal of Computer
and System Sciences, 17(3):348–375, 1978.
374. O'Neil, Patrick (1987). "Model 204 Architecture and Performance". Proceedings of
the 2nd International Workshop on High Performance Transaction Systems.
Springer-Verlag. pp. 40–59.
452
375. Modelica
Association, the homepage of the non-profit Modelica Association
(developing Modelica)
376. Cooke, Andrew. "malbolge: hello world". Archived from the original on 2019-1206. Retrieved 2021-01-08.
377. Wirth,
Niklaus (1 January 1976). "Modula: a language for modular
multiprogramming". ETH Library. ETH Zurich. doi:10.3929/ethz-a-000199440.
378. "Summary of Projects by N. Wirth, 1962–1999". Department of Computer
Science. ETH Zurich.
379. "Critical Mass Modula-3 (CM3)". Critical Mass Modula-3. elego Software
Solutions GmbH. Retrieved 2020-03-21.
380. Mendicino, Sam F.; Hughes, Robert A.; Martin, Jeanne T.; McMahon, Frank H.;
Ranelletti, John E.; Zwakenberg, Richard G. "The LRLTRAN
Compiler". Communications of the ACM. 11(11): 747–755.
381. Shah, Rawn; Romine, James (1995). Playing MUDs on the Internet. John Wiley &
Sons, Inc. p. 238. ISBN 0-471-11633-5. For example, the MOO (Muds ObjectOriented) is a direct result of work in this area.
382. Mortran lecture (Japanese) from KEK (PDF)
383. Mouse: Computer Programming Language (includes source code for Mouse
interpreters)
384. MPD page at University of Arizona (copy in archive.org)
385. "Features - AdiIRC - AdiIRC Support/Bugs/Feature Requests". Per Amundsen.
Archived from the original on 2 December 2020. Retrieved 2 December 2020.
386. Tweed, Rob; James, George (2 August 2008). "MUMPS: the Internet scale
database". Archived from the original on 27 September 2021. Retrieved 25
October 2022 – via SlideShare.
387. "Symbolic math in MATLAB".
388. Arcadia BBS (Arcadia BBS, run by Nazferiti - Features Games, Files, and Gated
Usenet)
389. "Release 2.15.05". 28 August 2020. Retrieved 6 September 2020.
390. Description of Napier88 at Univ. of St Andrew's website. Accessed June 21, 2012
391. "How is Neko different from .Net's CLR or the Java's JVM ?". FAQ. NekoVM.
Retrieved 2021-03-28.
392. "JetBrains .NET Tools Blog » JetBrains and Nemerle". Blogs.jetbrains.com. 201206-27. Retrieved 2013-09-05.
393. Blelloch, Guy (1995). "NESL: A Nested Data-Parallel Language".
394. "Official site". Retrieved 2008-07-18.
395. "Release 6.3.0". 30 September 2022. Retrieved 24 October 2022.
396. IBM (2011). "ICU License - ICU 1.8.1 and later". Retrieved 2014-02-02.
397. Walling,
Rob. "An
Interview
with
Lutz
Mueller,
Creator
of
newLISP". Softwarebyrob.com. Archived from the originalon 2007-10-31.
Retrieved 2018-11-20.
398. "ClearPath
Enterprise
Servers:
NEWP
Programming
Reference
Manual" (PDF). Unisys Corporation. April 2015.
453
399. Gilad
Bracha, Peter Ahe, Vassil Bykov, Yaron Kashai and Eliot Miranda. The
Newspeak Programming Platform.
400. Smith, W. R. (1994-02-01). The Newton application architecture. Compcon Spring
'94,
Digest
of
Papers.
pp. 156–
161. doi:10.1109/CMPCON.1994.282931. ISBN 978-0-8186-5380-3.
401. "The Nial Language". GitHub. 17 December 2021.
402. "Contributors to nim-lang/Nim". GitHub. Retrieved 2022-03-23.
403. Prins, P., Suresh, J. and Dolstra, E., "Nix fixes dependency hell on all Linux
distributions," linux.com, December 22, 2008
404. Web site, https://en.wikipedia.org/wiki/Nord_Programming_Language
405. "Not eXactly C".
406. NQC tutorial by Mark Overmars
407. "OpenCandy Installer Platform Comparison". Archived from the original on 27 June
2011. Retrieved 27 June 2011.
408. "Burks: Bridges and Beyond". Archived from the originalon 2011-05-14.
Retrieved 2011-04-11.
409. Beamdog NWN Scripting Forum – BioWare's dedicated forum for scripting
discussion.
410. "What's NXT? LEGO Group Unveils Lego Mindstorms NXT Robotics Toolset at
Consumer Electronics Show" (Press release). Las Vegas, NV: The Lego Group.
January 4, 2006. Archived from the original on July 8, 2009. Retrieved 2007-09-17.
411. An alternative XML language: SuperX++
412. Jon Byous (March 12, 2003). "Java Technology: An early history" (PDF). Sun
Microsystems. Retrieved August 2, 2009. Gosling called the new language "Oak",
after the tree outside his window
413. Wirth, Niklaus (1987). From Modula to Oberon and the programming language
Oberon (Report). ETH Technical Reports D-INFK. Vol. Band 82.
Wiley. doi:10.3929/ethz-a-005363226.
414. J. A. Goguen, Higher-Order Functions Considered Unnecessary for Higher-Order
Programming. In Research Topics in Functional Programming (June 1990). pp.
309–351.
415. 14 December 1985 net.lang.lisp USENET post about the Common Lisp meeting in
Boston, 9-11 December 1985, which discusses Object Lisp
416. René Jansen (2011-12-01). "7 Reasons that Rexx Still Matters". SmartBear blog.
Retrieved 2014-02-02.
417. Tesler, Larry (1985). "Object Pascal Report". Structured Language World. 9 (3): 10–
7.
418. "Runtime Versions and Platforms". Developer.apple.com. Archived from the
original on July 20, 2016. Retrieved December 24, 2017.
419. Henglein, Fritz (1999). "Breaking through the n3 barrier: Faster object type
inference". Theory
and
Practice
of
Object
Systems. 5 (1):
57–
72. doi:10.1002/(SICI)1096-9942(199901/03)5:1<57::AID-TAPO5>3.0.CO;2-U.
454
"A J Milner - A.M. Turing Award Laureate". amturing.acm.org. Retrieved 6
October 2022.
421. occam Programming Manual. Prentice-Hall. 1984. ISBN 0-13-629296-8.
422. Barnes, Fred; Welch, Peter (14 January 2006). "occam-pi: blending the best of CSP
and the pi-calculus". Retrieved 24 November 2006.
423. John W. Eaton (2 November 2022). "Version 7.3.0 released". Retrieved 9
November 2022.
424. "Welcome to the OmniMark 11.0 documentation". OmniMark Developer
Resources. Retrieved 26 July 2022.
425. "Release 1.1.1 · MLstate/opalang". GitHub. Retrieved 2021-01-29.
426. OPAL Installation Guide
427. OPL wiki on Internet Archive containing documents detailing OPL keywords,
OPX interfaces and much other information
428. "Khronos OpenCL Registry". Khronos Group. April 27, 2020. Retrieved April
27, 2020.
429. Sadd, J. OpenEdge Development: Progress 4GL Handbook, Progress Software
Corporation, ISBN 0-923562-04-4, ISBN 978-0-923562-04-5
430. "Synopsys Acquires Systems Science, Inc". 24 July 1998.
431. qiskit-openqasm: OpenQASM specification, International Business Machines,
2017-07-04, retrieved 2017-07-06
432. Charles Forgy, OPS5 User's Manual, Technical Report CMU-CS-81-135 (Carnegie
Mellon University, 1981)
433. Rapid application development with OPTIMJ, a practitioner's experience report.
David Gravot, Patrick Viry. EURO 2010 (Lisbon)
434. Misra, Jayadev (2004). A Programming Model for the Orchestration of Web
Services. Software Engineering and Formal Methods. Beijing, China: IEEE. pp. 2–
11. doi:10.1109/SEFM.2004.1347498. ISBN 0-7695-2222-X.
435. Web site, https://github.com/pkclsoft/ORCA-Modula-2
436. Website,http://www.atarimagazines.com/compute/issue134/143_Windows_3_Pow
er_Tool.php
437. Wadler, P.L.; et al. (1988). "Introduction to Orwell 5.00". Programming Research
Group of Oxford University.
438. "Evolution of the Oxygene Language | Oxygene | Elements". Archived from the
original on 2018-01-05. Retrieved 2018-01-04.
439. Peter Van Roy and Seif Haridi (2004). Concepts, Techniques, and Models of
Computer Programming. MIT Press. There is online supporting material for this
book. The book, an introduction to the principles of programming languages, uses
Oz as its preferred idiom for examples.
440. Ankush Desai, Vivek Gupta, Ethan Jackson, Shaz Qadeer and Sriram Rajamani. "P:
Safe Asynchronous Event-Driven Programming". Microsoft. Retrieved 20
February 2017.
441. P. Bosshart; D. Daly; G. Gibb; M. Izzard; N. McKeown; J. Rexford; C. Schlesinger;
D. Talayco; A. Vahdat; G. Varghese; D. Walker (July 2014). "P4: Programming
420.
455
Protocol-Independent Packet Processors". Computer Communication Review.
Retrieved 7 April 2015.
442. "PDBL: A tool for Turing machine simulation". 4 September 2021.
443. Rumpf, Andreas (19 October 2017). "Nim without GC". Araq's Musings.
Retrieved 1 September 2020.
444. "PARI/GP Changelog". pari.math.u-bordeaux.fr. Retrieved 14 November 2022.
445. Dev-Pascal is a Pascal IDE that was designed in Borland Delphi and which
supports Free Pascal and GNU Pascal as backends.
446. Murphy, Craig (2004). "Inno Setup Revisited" (PDF). The Developers Magazine:
15–28. Retrieved 25 May 2019.
447. Hanly, Jeri R.; Elliot B. Koffman (1999). Problem Solving & Program Design in C,
Third Edition. Addison-Wesley. ISBN 0-201-35748-8.
448. Milner, Robin (1977). "Fully abstract models of typed λ-calculi" (PDF). Theoretical
Computer
Science. 4:
1–22. doi:10.1016/0304-3975(77)900536. hdl:20.500.11820/731c88c6-cdb1-4ea0-945e-f39d85de11f1.
449. Process and Experiment Automation Realtime Language
450. DeLia, Tony et al. (2001). Essential Guide to Peoplesoft Development and
Customization. Manning Publications Co.p.260
451. Larry
Wall (December 12, 2007). "Programming is Hard, Let's Go
Scripting..." Archived from the original on July 28, 2017. Retrieved April
14, 2019. All language designers have their occasional idiosyncracies. I’m just better
at it than most.
452. https://github.com/PDLPorters/pdl/releases/tag/2.080; publication date: 28 May
2022; retrieved: 6 June 2022.
453. a b Pharo by example. Andrew P. Black, Stéphane Ducasse, Oscar Nierstrasz,
Damien Pollet, Damien Cassou, Marcus Denker. [Kehrsatz] Switzerland. October
28, 2009. ISBN 978-3-9523341-4-0. OCLC 957555627.
454. Stogov, Dmitry (2015-12-04). "It's not a secret that some #PHP7 optimization ideas
came from HHVM, LuaJIT and V8". Twitter.
455. Department of Computer Science at VUB
456. "PicoLisp Download". Software Lab. Retrieved 18 November 2018.
457. Sewell, Peter; Wojciechowski, Pawel; Unyapot, Asis (2010). "Nomadic Pict:
Programming Languages, Communication Infrastructure Overlays, and Semantics
for Mobile Computation". ACM Transactions on Programming Languages and
Systems. 32 (4).
458. Rob Linwood. "PILOT Resource Center". Sourceforge project. Retrieved October
13, 2011.
459. CMS/TSO Pipelines Author's Edition Author's Edition
460. The Goals of Scala's Design
461. Russell, Robert D. (1974). T. C. Streater (ed.). PL-11: A Programming Language for
the DEC PDP-11 Computer(PDF) (Report). CERN. Retrieved 2014-05-02.
462. Liffick, Blaise W., Ed (1979), The Byte Book of Pascal, ISBN 0-07-037823-1
463. "Programming Language for Business". sysmaker.com. Retrieved 10 June 2016.
456
464. Barnes,
Robert Arthur (1979). PL/I for Programmers. New York: North Holland.
p. xv. ISBN 9780444002846.
465. Burroughs Corporation, "B 6700 / B 7700 PL/I Language Reference", 5001530.
Detroit, 1977.
466. Johnson, Herb (2019-07-21). "ISIS, Intellec, PL/M, iRMX, and Intel - 20th
century". Retrotechnology. Archived from
the
original
on
2019-10-02.
Retrieved 2020-01-29.
467. Web site, https://en.wikipedia.org/wiki/PL/P
468. W.R. Brittenham, "PL/S, Programming Language/Systems", Proc GUIDE Intl,
GUIDE 34, May 14, 1972, pp. 540–556
469. Serge Rielau (srielau@ca.ibm.com), SQL Architect, STSM, IBM. "DB2 10: Run
Oracle applications on DB2 10 for Linux, UNIX, and Windows". Ibm.com.
Retrieved 2012-07-26.
470. Wirth, Niklaus (January 1968). "PL360, a Programming Language for the 360
Computers". Journal
of
the
ACM. 15 (1):
34–
74. doi:10.1145/321439.321442. S2CID 7376057.
471. PLANC Reference Manual [ND-60.117.03]. Norsk Data.
472. Knuth,
Donald Ervin; Pardo, Luis Trabb (1976), The Early Development of
Programming Languages (PDF), Stanford University, Computer Science
Department, archived from the original (PDF) on 2017-09-12, retrieved 2017-12-28
473. Carl Hewitt Middle History of Logic Programming: Resolution, Planner, Prolog and
the Japanese Fifth Generation Project ArXiv 2009. arXiv:0904.3036
474. Johan Erikson and Björn Lisper. "A Formal Semantics for PLEX" (PDF).
Mälardalen University. Retrieved 2009-03-07.
475. Estlin, Tara; Jonsson, Ari; Pasareanu, Carina; Simmons, Reid; Tso, Kam; Verma,
Vandi
(April
2006). "Plan
Execution
Interchange
Language
(PLEXIL)" (PDF). NASA Technical Reports Server. Retrieved 8 February 2019.
476. "The Plus Systems Programming Language", Alan Ballard and Paul
Whaley, Proceedings of Canadian Information Processing Society (CIPS) Congress
84, June 1984
477. R. Burstall, A. Collins and R. Popplestone, Programming in Pop-2 University Press,
Edinburgh, 1968
478. Burstall, R.; Collins, J.; Popplestone, R. (1968). Programming in Pop-2.
Edinburgh: Edinburgh University Press.
479. Perry, T.S. (May 1988). "'PostScript' prints anything: a case history". IEEE
Spectrum. 25 (5): 42–46. doi:10.1109/6.4550. S2CID 33376390.
480. McCreary, Charles R. (October 1993). "Amiga E: Public Domain Programming
Gem". Amazing Computing For The Commodore Amiga. Vol. 8, no. 10. PiM
Publications. pp. 20–21. ISSN 1053-4547.
481. "POV-Ray: Documentation: 1.1.5.3 A Historic 'Version History'". povray.org.
Retrieved 2018-12-19.
457
482. Woodie,
Alex (2014-01-21). "Unicom Adds HP3000 Biz with Cognos ADT
Buy". Four Hundred Stuff. Retrieved 2016-03-24.
483. Martin Berner. "Appeon Signs Agreement with SAP to Bring Major Innovations to
PowerBuilder". SAP Community Network.
484. Snover, Jeffrey (May 25, 2008). "PowerShell and WPF: WTF". Windows
PowerShell Blog. Microsoft.
485. Standish, Thomas A. (August 1969). Christensen; Shaw (eds.). "Some features of
PPL – a Polymorphic Programming Language". ACM SIGPLAN
Notices (Proceedings of Extensible Language Symposium ed.). ACM Digital
Library: Association
for
Computing
Machinery. 4 (8):
20–
26. doi:10.1145/1115858.1115864. Retrieved 2018-06-23.
486. Bohnacker, Hartmut; Gross, Benedikt; Laub, Julia; Lazzeroni, Claudius (August
22, 2012), Generative Design: Visualize, Program, and Create with
Processing (1st ed.), Princeton Architectural Press, p. 472, ISBN 978-1616890773
487. a b "Products : Marten IDE 1.6". Andescotia Software. Retrieved 2019-05-31.
488. Tung, Liam. "Microsoft: Here's why we love programming language Rust and
kicked off Project Verona". ZDNet.
489. Clocksin, William F.; Mellish, Christopher S. (2003). Programming in Prolog.
Berlin; New York: Springer-Verlag. ISBN 978-3-540-00678-7.
490. Schleimer, Rachel (June 1985). "PROMAL". Ahoy!. pp. 71–72. Retrieved 27
June 2014.
491. Neumann, René (17–18 July 2014). "Using Promela in a Fully Verified Executable
LTL Model Checker" (PDF). VSTTE: Working Conference on Verified Software:
Theories, Tools, and Experiments. LNCS. Vol. 8471. Vienna: Springer. pp. 105–
114. Archived from the original (PDF) on 7 October 2015.
492. PROSE – A General Purpose Higher Level Language, Procedure Manual, Control
Data Corp. Pub No. 840003000 Rev. B (Jan 1977)
493. Krishna, Sundeep Sahay, Brian Nicholson, S. (2003). Global IT outsourcing :
software development across borders. Cambridge: Cambridge University Press.
p. 7. ISBN 978-0521816045
494. PVX Plus Technologies, "Company Announcement", "The Plus", October 8, 2010
495. Embedded SQL with Pro*C at the Wayback Machine(archived July 17, 2014)
496. Albert Gräf. "Signal Processing in the Pure Programming Language". Linux Audio
Conference 2009.
497. Danks, M. (1996). The graphics environment for max. In: Proceedings of the
International Computer Music Conference, pp. 67–70. International Computer
Music Association.
498. Matthías Páll Gissurarson (2018-09-27), "Suggesting Valid Hole Fits for TypedHoles
(Experience
Report)", ACM
SIGPLAN
Notices, 53 (7):
179–
185, doi:10.1145/3299711.3242760, S2CID 218480974
499. Fercalo, Andrei (11 March 2014). "Programming without coding technology
review". Softpedia.
458
"General
Python
FAQ
—
Python
3.9.2
documentation". docs.python.org. Archived from the original on 24 October 2012.
Retrieved 28 March 2021.
501. "Q Language Widening the Appeal of Vectors". Archived from the original on
January 1, 2007. Retrieved June 1, 2016.
502. "Solving
the quantum many-body problem with artificial neural
networks". Microsoft Azure Quantum. 15 February 2017.
503. " https://api.github.com/repos/nasser/--- " [ archive ] (accessed
onOctober 26,
2022)
504. "QCL - A Programming Language for Quantum Computers". tuwien.ac.at.
Retrieved 2017-07-20.
505. "Making Applications Scriptable: ECMAScript Compatibility". Qt 4.6. Nokia.
Archived from the original on 2010-09-28. Retrieved 5 September 2011.
506. Lasse Lehtinen (1996-07-25). "QuakeC released". Quake and QuakeWorld history.
Retrieved 2011-01-14.
507. Jarosław
Adam Miszczak (2012). High-level Structures in Quantum
Computing. ISBN 9781608458516.
508. Hervé Gallaire and Jack Minker. Logic and Databases. Plenum Press, New
York,1978.
509. Peter Dalgaard (31 October 2022). "R 4.2.2 is released". Retrieved 2
November 2022.
510. US 5768480, Crawford, Jr., James Melton; Dvorak, Daniel L. & Litman, Diane
Judith et al., "Integrating rules into object-oriented programming systems",
published 1998-06-16, assigned to Lucent Technologies Inc.
511. Tobin-Hochstadt, Sam; Gerard, Sage; Dueck, Joel; Flatt, Matthew; Software
Freedom Conservancy; Chestek, Pamela (2019-11-15). "Completing Racket's
relicensing effort". Retrieved 2019-12-27.
512. "Announce:
Raku
Perl
6
'Diwali'
6.d
Language
Specification
Release". blogs.perl.org. Zoffix Znet. 5 November 2018. Retrieved 19 August 2022.
513. "ABB RobotStudio Manual (With Rapid Reference)"
514. Tsikoza, Vitaly Arkadievich; Glagoleva, Natalia Georgievna; Nalimov, Evgeny
Viktorovich; Zemtsov, Pavel Apolinarevich; Baraz, Leonid Semenovich;
Borovikov, Yegor Vasilievich (10 August 1987). The Rapier Programming
Language. Archive of Academician Andrey Ershov (Report). AP Ershov Institute of
Informatics Systems, Siberian Branch of the Russian Academy of Sciences (ISI SB
RAS). Retrieved 16 April 2021.
515. "Another Ratfor source code". Archived from the originalon 2013-07-03. ratfiv or
ratfiv source rpm package
516. Fischer, Manfred M. (13 December 1996). Spatial Analytical Perspectives on
GIS. ISBN 9780748403400.
517. Simple, fast & type safe code that leverages the JavaScript & OCaml ecosystems:
facebook/reason, Facebook, 2019-03-23, retrieved 2019-03-23
500.
459
"Calling REBOL Rebol?". December 14, 2012. Archived from the original on
December 3, 2013. Retrieved December 2, 2013.
519. « New Red Programming Language Gets Syllable Backend », osnews.com, May
2011.
520. Wangsaw, Mintardjo. "Intro to Art in '88: Paper - Stone - Scissors Trilogy".
Retrieved 2013-03-11.
521. Turchin, Valentin F. (1989). "REFAL-5 Programming Guide and Reference
Manual". The City College of New York, New England Publishing Co., Holyoke.
522. IBM Virtual Machine Facility /370: EXEC User's Guide (PDF)(Second ed.).
International Business Machines Corporation. April 1975. GC20-1812-1.
523. M. Ayouni (29 July 2020). "A Dialogue with Mahmoud Fayed" (PDF). Springer.
524. A Rule-based and Object-oriented AI Programming Language, Tao Li, ACM
SIGPLAN Notices, Volume 30, No.12, December 1995
525. Tony Baritz; David Dunne (1991). AS/400--concepts and Facilities. McGrawHill. ISBN 978-0-07-018301-8.
526. "The Joy of Programming?". Museum of HP Calculators. 2020.
527. Robot Battle: Home (via the Wayback Machine)
528. Barnes, J.G.P. (September 1980). "The Standardisation of RTL/2". Software:
Practice
and
Experience.
Wyley. 10 (9):
707–
719. doi:10.1002/spe.4380100904. S2CID 5050804.
529. Bini,
Ola. "Ioke". Ioke.org. Archived from the original on 2011-07-21.
Retrieved 2011-07-21. inspired by Io, Smalltalk, Lisp and Ruby
530. "Rust Legal Policies". Rust-lang.org. Archived from the original on 2018-04-04.
Retrieved 2018-04-03.
531. Becker, R.A.; Chambers, J.M. (1984). S: An Interactive Environment for Data
Analysis and Graphics. Pacific Grove, CA, USA: Wadsworth &
Brooks/Cole. ISBN 0-534-03313-X.
532. "LiveJournal.com WHOIS, DNS, & Domain Info - DomainTools". WHOIS.
Retrieved 2016-12-09.
533. Hünke, Horst (1981). Software engineering environments(illustrated ed.). NorthHolland Pub. Co. p. 83. ISBN 978-0-444-86133-7.
534. Davis, John (26 November 2017). "A little bit about me". John E. Davis Software.
Archived from the original on 31 May 2020. Retrieved 1 June 2020.
535. Bajuk-Yorgan, Lou. "What Makes TIBCO Enterprise Runtime for R (TERR)
Unique?". TIBCO Software Inc. Retrieved 28 January 2018.
536. Initial paper describing SA-C
537. S. J. Hobson, "ALCS -- A High-Performance High-Availability DB/DC Monitor",
p. 136 (footnote 2) in High Performance Transaction Systems, 2nd International
Workshop, Asilomar Conference Center, Pacific Grove, California, USA, September
28-30, 1987, Proceedings. Lecture Notes in Computer Science 359, Springer
1989, ISBN 3-540-51085-0.
538. "PUB Manual". Nomodes.com. Retrieved 30 December2017.
518.
460
539. Prace
Zakładu Aparatów Matematycznych PAN, "System Automatycznego
Kodowania SAKO – opis języka", PAN – Warszawa 1961,
540. Arthur Li (10 April 2013). Handbook of SAS DATA Step Programming. CRC Press.
p. 149. ISBN 978-1-4665-5238-8.
541. Turner, D.A. "An Implementation of SASL". University of St. Andrews,
Department of Computer Science Technical Report. TR/75/4.
542. Sather-W 1.3 project page (archived link from year 2002)
543. Rob Pike, Sean Dorward, Robert Griesemer, Sean Quinlan. Interpreting the Data:
Parallel Analysis with Sawzall
544. Fogus, Michael (6 August 2010). "MartinOdersky take(5) toList". Send More
Paramedics. Retrieved 2012-02-09.
545. Common LISP: The Language, 2nd Ed., Guy L. Steele Jr. Digital Press;
1981. ISBN 978-1-55558-041-4. "Common Lisp is a new dialect of Lisp, a
successor to MacLisp, influenced strongly by ZetaLisp and to some extent by
Scheme and InterLisp."
546. Holopainen, Timo (2000). "Modelling and simulation of multitechnological machine
systems" (PDF).
547. Schorow,
Stephanie (14 May 2007). "Creating from Scratch". MIT
News. Archived from the original on 13 October 2018. Retrieved 18 May 2019.
548. Script.NET Homepage
549. The sed FAQ, Section 2.1". Retrieved 2013-05-21.
550. Mertes, Thomas (12 March 2022). "New Seed7 Release 2022-03-12". Retrieved 12
March 2022 – via SourceForge.
551. Ungar, David; Smith, Randall B. (2007). "Self". Proceedings of the Third ACM
SIGPLAN Conference on History of Programming Languages (HOPL
III). doi:10.1145/1238844.1238853. ISBN 9781595937667. S2CID 220937663.
552. "SenseTalk Mathematical Operators".
553. "Dr. Daniel Cooke at Texas Multicore Technologies". Archived from the
original on 2016-03-04. Retrieved 2016-02-24.
554. Sigalos, MacKenzie. "Ethereum's massive software upgrade just went live — here's
what it does". CNBC. Retrieved 15 September 2022.
555. J.T. Schwartz; R.B.K. Dewar; E. Dubinsky; E. Schonberg (1986). Programming
with sets. An Introduction to SETL. Springer-Verlag New York Inc. ISBN 978-14613-9577-5.
556. Sebesta, R. W. Concepts of Programming languages. 2006; M6 14:18 pp.
44. ISBN 0-321-33025-0.
557. "Superbase and SIMPOL Together Again". Superbase. 28 November 2014.
Retrieved 12 May 2020.
558. The Polychrony toolset dedicated to SIGNAL (official website of Polychrony)
559. "SiMPLE -- the Computer Programming Language for Kids!". Archived from the
original on 2012-08-18. Retrieved 2012-08-24.
461
560. Reviews,
C.
T.
I.
(2016). Simulation
With
Arena. ISBN 9781467273411. SIMSCRIPT ... was implemented asa Fortran preprocessor on the IBM
7090
561. Sylvester,
Peter. "IBM
System
360/370
Compiler
and
Historical
Documentation" (The Simula Standard and other historical documentation).
562. "System Requirements and Platform Availability by Product". mathworks.com.
Retrieved 15 October 2015.
563. Retire Fortran?: a debate rekindled, David Cann, August 1992, Communications of
the ACM, Volume 35, Issue 8
564. Barnes, T. J.: “SKILL: a CAD system extension language”, 27th ACM/IEEE Design
Automation Conference, 1990. Proceedings; pp. 266-271
565. Weizenbaum, Joseph (1976). Computer Power and Human Reason: From Judgment
to Calculation. New York: W.H. Freeman and Company. pp. 2, 3, 6, 182,
189. ISBN 0-7167-0464-1.
566. Nevil Brownlee staff page, Center for Applied Internet Data Analysis
567. "Alto I Schematics" (PDF). Bitsavers. p. 54. Retrieved 21 July 2016.
568. "Standard ML Basis Library". smlfamily.github.io. Retrieved 2022-01-10.
569. Bracha, Gilad; Griswold, David (1993). "Strongtalk: Typechecking Smalltalk in a
Production Environment". Proceedings of the OOPSLA'93 Conference on Objectoriented Programming Systems, Languages and Applications: 215–230.
570. "UC Berkeley EECS - CS10 : The Beauty and Joy of Computing - Fall
2011". inst.eecs.berkeley.edu. Retrieved 21 May 2017.
571. Ierusalimschy, Roberto; de Figueiredo, Luiz Henrique; Celes, Waldemar
(2007), "The Evolution of Lua" (PDF), HOPL III: Proceedings of the third ACM
SIGPLAN
conference
on
History
of
programming
languages:
26, doi:10.1145/1238844.1238846
572. "Snowball: Quick introduction", Martin Porter, web page. Retrieved 2 September
2014.
573. Bharadwaj, Ramesh (2002). "SOL: A Verifiable Synchronous Language for
Reactive Systems". Electronic Notes in Theoretical Computer Science. 65 (5):
140. doi:10.1016/S1571-0661(05)82565-4.
574. Afshar, Vala (17 July 2017). "Ethereum Is The Second Most Valuable Digital
Currency, Behind Bitcoin". HuffPost. Retrieved 10 April 2019.
575. Adrian V. Gheorghe and Ralf Mock. Risk Engineering: Bridging Risk Analysis With
Stakeholders Values. Springer, Jan 1, 1999. pg. 72
576. Douglas
Crockford
(2008). JavaScript:
The
Good
Parts.
O'Reilly. ISBN 9780596517748.
577. "SPARK - The SPADE Ada Kernel (including RavenSPARK)". AdaCore.
Retrieved 30 June 2021.
578. The Speakasy Computing Corporation's channel on YouTube
579. Shasha, Dennis Elliot; Lazere, Cathy (1998). Out of their Minds: The Lives and
Discoveries
of
15
Great
Computer
Scientists.
New
York,
462
USA: Copernicus, Springer-Verlag
New
York,
Inc. ISBN 0-387-982698. LCCN 98-16911. SPIN 10693423.
580. Robert B. K. Dewar; Anthony P. McCann (1979). MINIMAL - A Machine
Independent Assembly Language. Computer Science Department Technical Report.
Vol. No. 12. Courant Institute of Mathematical Sciences.
581. Holt, Richard; Wortman, D. (February 1974). "A sequence of structured subsets of
PL/I". Retrieved 2009-09-17.
582. 1401 History
583. Paul, Ryan (24 October 2005). "A guided tour of the Microsoft Command
Shell". Ars Technica. Retrieved 10 April2011.
584. Web site, https://en.wikipedia.org/wiki/SQR
585. Ingalls, Dan; Kaehler, Ted; Maloney, John; Wallace, Scott; Kay, Alan (1997). "Back
to the Future: the story of Squeak, a practical Smalltalk written in itself". ACM
SIGPLAN
Notices.
ACM
Digital
Library. 32 (10):
318–
326. doi:10.1145/263700.263754. Retrieved 2011-06-12.
586. MirthKit Developer Wiki Archived 2014-02-11 at the Wayback Machine
587. Gregory R. Andrews, Ronald A. Olsson: The SR Programming Language:
Concurrency in Practice, ISBN 0-8053-0088-0
588. J. R. Cordy, R. C. Holt and D. B. Wortman, "S/SL: Syntax/Semantic Language Introduction and Specification", Technical Report CSRG-118, Computer Systems
Research Group, University of Toronto, Sept. 1980
589. "StarLogo TNG". MIT Scheller Teacher Education Program Education
Arcade. Massachusetts Institute of Technology. Retrieved 2019-07-15.
590. Foster,
Ian;
Stephen
Taylor: Strand:
new
concepts
in
parallel
programming. ISBN 9780138505875.
591. Cox, Nicholas J. "Statalist FAQ". Statalist: The Stata Forum. Retrieved 24
April 2021.
592. Gregoire
Hamon and John Rushby. "An Operational Semantics for
Stateflow" (PDF). Presented at Fundamental Approaches to Software Engineering
(FASE) Barcelona, Spain, March 2004. SRI International Computer Science
Laboratory.
593. Subtext: uncovering the simplicity of programmingJonathan Edwards. In OOPSLA
October ’05: Proceedings of the 20th annual ACM SIGPLAN conference on Objectoriented programming, systems, languages, and applications.
594. "Superbase and SIMPOL Together Again". Superbase. 28 November 2014.
Retrieved 12 May 2020.
595. J. McCartney, SuperCollider: A new real time synthesis language, in Proc.
International Computer Music Conference (ICMC’96), 1996, pp. 257–258.
596. Rutishauser,
Heinz (1951), "Über automatische Rechenplanfertigung bei
programmgesteuerten Rechenanlagen", Zeitschrift für Angewandte Mathematik und
Mechanik (in German), 31: 255, doi:10.1002/zamm.19510310820
597. Web site, https://en.wikipedia.org/wiki/SuperTalk
463
"Swift, Objectively". Swift is proprietary and closed: It is entirely controlled by
Apple and there is no open source implementation.
599. Wilde, Michael; Hategan, Mihael; Wozniak, Justin M.; Clifford, Ben; Katz, Daniel
S.; Foster, Ian (2011). "Swift: A language for distributed parallel
scripting" (PDF). Parallel
Computing. 37(9):
633–
652. CiteSeerX 10.1.1.658.8990. doi:10.1016/j.parco.2011.05.005.
Archived
from the original(PDF) on 2014-06-06.
600. Ninety-nine Bottles of Beer program - written in SYMPL
601. Slade, Stephen (1987). The T programming language : a dialect of LISP. Englewood
Cliffs, NJ: Prentice-Hall. ISBN 978-0-13-881905-7. OCLC 16094677.
602. "HP Integrity NonStop BladeSystem NB50000c - overview". Hewlett-Packard
Development Company. 2001. Retrieved 12 October 2012.
603. Litton Data Systems, Inc. (1975). TACPOL Reference Manual Programming
Support System. Document USACSCS-TF-4-1.
604. Montfort, Nick (2005). Twisty Little Passages: An Approach to Interactive Fiction.
MIT Press. p. 201. ISBN 978-0-262-63318-5. Retrieved 25 April 2020.
605. Web site, https://en.wikipedia.org/wiki/Transaction_Application_Language
606. Lerdorf, Rasmus (2007-04-26). "PHP on Hormones – history of PHP presentation
by Rasmus Lerdorf given at the MySQL Conference in Santa Clara, California". The
Conversations Network. Retrieved 2009-12-11.
607. Hunter, Jason; Crawford, William (April 3, 2001). Java Servlet Programming: Help
for
Server
Side
Java
Developers.
"O'Reilly
Media,
Inc.".
p. 423. ISBN 9780596000400 – via Internet Archive. tea programming language.
608. TECO pocket guide. Digital Equipment Corporation. 1978. Archived from the
original on 2008-02-07. Retrieved 2012-05-24.
609. "Leo
Beranek Oral History". Institute of Electrical and Electronics
Engineers (IEEE). Archived from the original on 2004-08-05. Retrieved 2004-0916.
610. Yannis Haralambous. Fonts & Encodings (Translated by P. Scott Horne). Beijing;
Sebastopol, Calif: O’Reilly Media, 2007, pp. 235.
611. TEX User Guide (DF72) - Honeywell Information Systems, Copyright 1979
612. TIE
syntax
highlight
script
for Vim editor : http://www.vim.org/scripts/script.php?script_id=1964
613. Knuth, Donald (1990). P. Deransart; M. Jourdan (eds.). "The Genesis of Attribute
Grammars" (PDF). Proceedings of the International Conference on Attribute
Grammars and their Applications (Paris, France). New York: Springer-Verlag.
614. Emilie Balland, Paul Brauner, Radu Kopetz, Pierre-Etienne Moreau and Antoine
Reilles (April 2008). "Tom Manual"(PDF).
615. "banna
- useless things". Archived from the original on 2016-10-24.
Retrieved 2016-10-23.
616. "Health Care Services Leader McKesson's History: Our History". McKesson.
Archived from the original on 2012-03-13. Retrieved 2012-03-14.
598.
464
"DEC Text Processing Utility Reference Manual". Archived from the original on
2018-05-10. Retrieved 2018-05-09.
618. Carol Loeb Mir. "A Comparison of String Handling in Four Programming
Languages". 1972.
619. Greenwald, I.D. and Kane, M, The Share 709 System: Programming and
Modification. JACM 6 No. 2 (1959). pp. 128–133.
620. "T-SQL Improvements in SQL Server 2012", Jonathan Allen on Mar 19, 2012,
infoq.com
621. Shafer, Dan (2004). "Review: Runtime Revolution, Programming for Mere
Mortals". MacTech. 20 (5). Revolution ... grows out of HyperCard, a much-beloved
and widely used Apple Computer product that the company abandoned a few years
ago....
622. TTCN-3 Quick Reference Card
623. Fluck, A., Webb, M., Cox, M., Angeli, C., Malyn-Smith, J., Voogt, J., & Zagami, J.
(2016). Arguing for computer science in the school curriculum. Journal of
Educational Technology & Society, 19(3), 38-46.
624. from page 4 of The TUTOR Language by Bruce Sherwood, 1974.
625. "Archived copy". Archived from the original on 2005-05-21. Retrieved 2008-0319.
626. Bright, Peter (3 October 2012). "Microsoft TypeScript: the JavaScript we need, or a
solution looking for a problem?". Ars Technica. Condé Nast. Retrieved 26
April 2015.
627. "With 5M Users Already On Board, Tynker Goes Mobile To Help Kids Learn To
Code On The iPad". TechCrunch. Retrieved 25 February 2015.
628. http://isbndb.com/d/book/design_of_very_high_level_computer_languages.html (V
HLL principles)
629. As of May 2006, UCSD has released portions of the p-System written before June
1, 1979, for non-commercial use. (Note: Webpage resizes browser window.)
630. Badreddin, Omar (2012). "A Manifestation of Model-Code Duality: Facilitating the
Representation of State Machines in the Umple Model-Oriented Programming
Language". PhD Thesis, University of Ottawa.
631. Clinton Jeffery (August 1998). "Closure-Based Inheritance and Inheritance Cycles
in Idol" – via ResearchGate.
632. Gartner: Uniface company profile
633. K. Mani Chandy and Jayadev Misra (1988) Parallel Program Design: A Foundation.
634. Edwards, Benj (May 25, 2009). "From The Past To The Future: Tim Sweeney
Talks". Gamasutra. Archived from the original on August 9, 2017.
Retrieved November 18, 2018.
635. "Vala - Compiler Using the GObject Type System". GNOME Project. News
section. Retrieved 3 September 2022.
636. "Vim 9.0"; subtitle: vim online; retrieved: 1 July 2022; publication date: June 2022.
637. "Clients
- ethernodes.org - The Ethereum Network & Node
Explorer". ethernodes.org. Retrieved 10 September 2022.
617.
465
"InfoNews/Software, CP/M, DataFlex". InfoWorld. Vol. 4, no. 9. IDG. March 8,
1982. p. 46. ISSN 0199-6649.
639. "Visual DialogScript - A Quick Tour". www.jm-tech.com. Archived from the
original on 25 January 1998. Retrieved 13 January 2022.
640. "Visual FoxPro 9.0 Updates". Visual FoxPro Developer Center. Microsoft.
Retrieved 7 June 2013.
641. Rogers, Dan (December 1, 1996). "Microsoft's Visual J++ 1.0". Dr Dobb's Journal.
642. "VBA support in AutoCAD 2011". Archived from the original on 15 April 2014.
Retrieved 14 April 2014.
643. "Google
newsgroup
'comp.lang.clipper.visual-objects'".
Retrieved 11
September 2019.
644. Webster, Bruce F. (September 1986). "Two Fine Products". BYTE. p. 335.
645. Clarence B. Germain (1965). Programming the IBM 1620(2nd ed.). Prentice-Hall.
p. 62.
646. Mozilla. "Understanding WebAssembly text format". MDN Web Docs. Retrieved 9
December 2019.
647. "Smith Micro Software Ships WebCatalog(TM) 4.0, Featuring Expanded Wizard
Capabilities for Building Online Stores", PR Newswire. PR Newswire Association
LLC., June 7, 2000[dead link]
648. Hoare, Tony (2003). "The Verifying Compiler: A Grand Challenge for Computing
Research". Journal
of
the
ACM. 50:
63–
69. doi:10.1145/602382.602403. S2CID 441648.
649. "Christopher Diggins: What is a concatenative language". Drdobbs.com. 2008-1231. Retrieved 2013-07-01.
650. Wolfram, Stephen. "Tini Veltman (1931–2021): From Assembly Language to a
Nobel
Prize—Stephen
Wolfram
Writings". stephenwolfram.comwritings.
Retrieved 22 January 2021.
651. Wyvern on GitHub
652. Dynamics Lifecycle Services Communication (2016-05-27). "May 2016 release
notes". Microsoft. Microsoft Dynamics Lifecycle Services Engineering Blog.
Retrieved 2016-05-31.
653. Ebcioğlu, Kemal; Saraswat, Vijay; Sarkar, Vivek. "X10: Programming for
Hierarchical
Parallelism
and
NonUniform
Data
Access". CiteSeerX 10.1.1.135.9826.
654. "Home of Alaska Software". www.alaska-software.com. Retrieved 2019-11-07.
655. Castro, Jorge O. (2004-06-15). "Ars Technica sits down with Scott Collins from
Mozilla.org". Ars Technica. p. 2. Archived from the original on 2018-02-22.
Retrieved 2018-11-28.
656. Peter Clarke (6 September 2007). "XMOS raises $16 million in Series A
funding". EE Times Europe. Retrieved 2 February2009.
657. Object Oriented Harbour GUI (ooHG)
638.
466
de Dinechin, Christophe (October 2000). "C++ exception handling for IA64" (PDF). IEEE Concurrency. ACM. 8 (4): 72–79. doi:10.1109/4434.895109.
Retrieved 24 February2014.
659. Xojo (December 9, 2014). "Xojo, Inc. Announces Xojo 2014 Release 3; Includes
Support For Developing Native iOS Applications". Xojo. Retrieved 2014-12-09.
660. Neumann, Gustav; Zdun, Uwe (February 2000). "XOTcl, an Object-Oriented
Scripting Language" (PostScript). Retrieved 2014-07-03.
661. Verma, Adarsh (2017-06-22). "XOD: A New And Open Source Visual
Programming Language For Arduino, Raspberry Pi, Etc". Fossbytes.
Retrieved 2018-05-13.
662. Shustek, Len (2016-08-02). "In His Own Words: Gary Kildall". Remarkable
People. Computer History Museum.
663. Fish,
Larry (February 1979). "A Block-Structured Language for
Microcomputers". Kilobaud, p. 24.
664. Kilpeläinen, Pekka (2012). "Using XQuery for problem solving" (PDF). Software:
Practice
and
Experience. 42 (12):
1433–
1465. doi:10.1002/spe.1140. S2CID 15561027.
665. T. Swift and D.S. Warren (2011), XSB: Extending the Power of Prolog using
Tabling. Theory and Practice of Logic Programming (TPLP), Cambridge University
Press, 2011.
666. XSharp extension for Visual Studio (Microsoft Visual Studio Marketplace
667. "Introduction". XSL Transformations (XSLT) Version 1.0 W3C Recommendation.
W3C. 16 November 1999. Retrieved November 7, 2012.
668. Sven Efftinge. "Official Xtend Homepage at". Eclipse.org. Retrieved 2013-09-14.
669. Yorick Language Quick Reference Guide
670. Perez, Juan Carlos (April 29, 2009). "Yahoo Extends YQL Web Data Query
Platform". PC World.
671. "The Yoix® Scripting Language". Internet Archive Wayback Machine. July 1,
2016. Archived from the original on September 21, 2015. Retrieved November
20, 2016.
672. Abrial, Jean-Raymond (1974), "Data Semantics", in Klimbie, J. W.; Koffeman, K.
L. (eds.), Proceedings of the IFIP Working Conference on Data Base
Management, North-Holland, pp. 1–59
673. "unposted: Release 5.9". sourceforge.net. May 14, 2022. Retrieved May 16, 2022.
674. "ColorWorks CW-C6500A Color Inkjet Label Printer with Auto Cutter
(Matte)". Epson. Retrieved 31 July 2021. Compatible with ZPL II
675. Zeno 1.3 Website
676. Huebner, Hans, ed. (January 1984). "Lisp Machine Manual, Hypertext (6th)
edition". GitHub. Retrieved November 30,2018.
677. Kelley,
Andrew. "Introduction
to
the
Zig
Programming
Language". andrewkelley.me. Retrieved 8 November2020.
678. Gutnecht, Jürg and Eugene Zueff (Computer Systems Institute, ETH Zürich,
Switzerland). "Zonnon for .NET - A Language and Compiler Experiment."
658.
467
(Archive, Springer link) in: Böszörményi, László and Peter Schojer
(editors). Modular Programming Languages: Joint Modular Languages Conference,
JMLC 2003, Klagenfurt, Austria, August 25–27, 2003, Proceedings. Springer,
September 29, 2003. ISBN 3540407960, 9783540407966.
679. Or...
"Our
Programming
Language,
with
a
Z" http://hopl.info/showlanguage.prx?exp=2641&language=ZOPL
680. "Chapel spec (Acknowledgements)" (PDF). Cray Inc. 2015-10-01. Retrieved 201601-14.
681. Lano, K.C., Z++, an Object-Oriented Extension to Z. Z User Workshop, Oxford
1990, Springer, Workshops in Computing, 1991, pp. 151–172.
468
Contents
4……….. Abstract
5……….. Introduction
7……….. Princess Farah and her friends
8……….. Prince Salah and his fame
9……….. Moses and Taha, Princes of Magic
10……….. Aseel, Princess of beauty
12……….. Bashaa'r, The Sleeping Princess
14……….. Tuqa, Princess of Butterflies
16……….. The Inhabitants of the six Provinces
17……….. Conclusion
19……….. A.NET (A#/A sharp)
19……….. A-0 System
20……….. A+ (A plus)
21……….. A++
22……….. ABAP
22……….. ABC
23……….. ABC ALGOL
23……….. ACC
23……….. Accent (Rational Synergy)
24……….. Ace DASL (Distributed Application Specification Language)
25……….. Action!
27……….. ActionScript
28……….. Actor
28……….. Ada – ISO/IEC 8652
30……….. Adenine (Haystack)
30……….. AdvPL
31……….. Agda
32……….. Agilent VEE (Keysight VEE)
32……….. Agora
33……….. AIMMS
34……….. Aldor
35……….. Alef
36……….. ALF
37……….. ALGOL 58
38……….. ALGOL 60
40……….. ALGOL 68
42……….. ALGOL W
44……….. Alice (Alice ML)
45……….. Alma-0
469
46……….. AmbientTalk
47……….. Amiga E
48……….. AMOS (AMOS BASIC)
49……….. AMPL
49……….. Analitik
50……….. AngelScript
51……….. Apache Pig latin
52……….. Apex (Salesforce.com, Inc)
53……….. APL
54……….. App Inventor for Android's visual block language (MIT App Inventor)
55……….. AppleScript
55……….. APT
56……….. Arc
56……….. ARexx
57……….. Argus
57……….. Assembly language (ASM)
59……….. AutoHotkey
59……….. AutoIt
61……….. AutoLISP / Visual LISP
62……….. Averest
63……….. AWK
64……….. Axum
65……….. B
66……….. Babbage
68……….. Ballerina
69……….. Bash
71……….. BASIC
75……….. Batch file (Windows/MS-DOS)
78……….. bc (basic calculator)
79……….. BCPL
79……….. BeanShell
80……….. BETA
81……….. BLISS
82……….. Blockly
83……….. BlooP
86……….. Boo
86……….. Boomerang
87……….. Bosque
88……….. C – ISO/IEC 9899
90……….. C-- (C minus minus)
91……….. C++ (C plus plus) – ISO/IEC 14882
92……….. C*
93……….. C# (C sharp) – ISO/IEC 23270
470
96……….. C/AL
97……….. Caché ObjectScript
98……….. C Shell (csh)
101……….. Caml
102……….. Carbon
103……….. Catrobat
103……….. Cayenne (Lennart Augustsson)
104……….. CDuce
104……….. Cecil
105……….. Céu
106……….. Ceylon
109……….. CFEngine
110……….. Cg (High-Level Shader/Shading Language [HLSL])
111……….. Ch
112……….. Chapel (Cascade High Productivity Language)
113……….. Charm
114……….. CHILL
114……….. CHIP-8
115……….. ChucK
116……….. Cilk (also Cilk++ and Cilk plus)
118……….. Claire
118……….. Clarion
119……….. Clean
121……….. Clipper
122……….. CLIPS
123……….. CLIST
124……….. Clojure
126……….. CLU
126……….. CMS-2
127……….. COBOL – ISO/IEC 1989
129……….. CobolScript – COBOL Scripting language
129……….. Cobra
129……….. CoffeeScript
130……….. ColdFusion
131……….. COMAL
131……….. COMIT
132……….. Common Intermediate Language (CIL)
133……….. Common Lisp (also known as CL)
133……….. COMPASS
134……….. Component Pascal
134……….. COMTRAN
134……….. Constraint Handling Rules (CHR)
135……….. Control Language
471
136……….. Cool
137……….. Coq
140……….. Coral 66
140……….. CorVision
140……….. COWSEL
140……….. CPL
141……….. Cryptol
141……….. Crystal
142……….. Csound
143……….. CSS
145……….. Cuneiform
147……….. Curl
148……….. Curry
148……….. Cybil
148……….. Cyclone
148……….. Cypher Query Language
149……….. Cython
151……….. CEEMAC
152……….. D (also known as dlang)
153……….. Dart
154……….. Darwin
154……….. DataFlex
155……….. Datalog
155……….. DATATRIEVE
156……….. dBase
157……….. dc
157……….. DCL (DIGITAL Command Language)
158……….. Delphi
159……….. DIBOL
159……….. DinkC
160……….. Draco
160……….. DRAKON
161……….. Dylan
161……….. DYNAMO
161……….. DAX (Data Analysis Expressions)
162……….. E
163……….. Ease
163……….. Easy PL/I
163……….. EASYTRIEVE PLUS
164……….. eC
165……….. ECMAScript
165……….. Edinburgh IMP
165……….. EGL
472
166……….. Eiffel
167……….. ELAN
167……….. Elixir
168……….. Elm
168……….. Emacs Lisp
169……….. Emerald
169……….. Epigram
169……….. EPL (Easy Programming Language)
169……….. Erlang
170……….. es
171……….. Escher
171……….. ESPOL
171……….. Esterel
172……….. Etoys
172……….. Euclid
172……….. Euler
173……….. Euphoria
173……….. EusLisp Robot Programming Language
173……….. CMS EXEC (EXEC)
174……….. EXEC 2
174……….. Executable UML
174……….. Ezhil
174……….. F
175……….. F# (F sharp)
176……….. F*
177……….. Factor
177……….. Fantom
178……….. FAUST
178……….. FFP
178……….. Fish
179……….. Fjölnir
179……….. FL
180……….. FlagShip
181……….. Flavors
181……….. Flex
181……….. Flix
182……….. FlooP
182……….. FLOW-MATIC (B0)
182……….. FOCAL (Formulating On-Line Calculations in Algebraic
Language/Formula CALculator)
182……….. FOCUS
183……….. FOIL
184……….. FORMAC (FORMula MAnipulation Compiler)
473
184……….. @Formula
184……….. Forth
185……….. Fortran – ISO/IEC 1539
187……….. Fortress
187……….. FP
188……….. FoxBase/FoxPro
189……….. Franz Lisp
189……….. Futhark
190……….. F-Script
190……….. Game Maker Language
190……….. GameMonkey Script
191……….. GAMS (General Algebraic Modeling System)
191……….. GAP
192……….. G-code
192……….. GDScript (Godot)
193……….. Genie
193……….. GDL (Geometric Description Language)
194……….. GEORGE
195……….. GLSL (OpenGL Shading Language)
195……….. GNU E
196……….. GNU Guile (GNU Ubiquitous Intelligent Language for Extensions)
197……….. Go
197……….. Go!
198……….. GOAL (Game Oriented Assembly Lisp)
198……….. Gödel
199……….. Golo
199……….. GOM (Good Old Mad)
200……….. Google Apps Script
201……….. Gosu
201……….. GOTRAN (IBM 1620)
202……….. GPSS (General Purpose Simulation System)
202……….. GraphTalk (Computer Sciences Corporation)
202……….. GRASS
203……….. Grasshopper
203……….. Groovy (Apache Groovy)
204……….. Hack
205……….. HAGGIS
205……….. HAL/S
206……….. Halide (programming language)
206……….. Hamilton C shell
207……….. Harbour
208……….. Hartmann pipelines
209……….. Haskell
474
210……….. Haxe
210……….. Hermes
211……….. High Level Assembly (HLA)
211……….. HLSL
212……….. Hollywood
213……….. HolyC (TempleOS)
214……….. Hop
214……….. Hopscotch
215……….. Hope
216……….. Hume
217……….. HyperTalk
217……….. Hy
218……….. Io
219……….. Icon
220……….. IBM Basic assembly language
220……….. IBM HAScript
220……….. IBM Informix-4GL
221……….. IBM RPG
221……….. IDL
221……….. Idris
222……….. Inform
222……….. ISLISP
223……….. J
224……….. J# (J sharp)
224……….. J++ (J plus plus)
225……….. JADE
226……….. JAL
226……….. Janus (concurrent constraint programming language)
226……….. Janus (time-reversible computing programming language)
227……….. Java
228……….. JavaFX Script
230……….. JavaScript
232……….. Jess
232……….. JCL
232……….. JEAN
233……….. Join Java
233……….. JOSS
236……….. Joule
236……….. JOVIAL
236……….. Joy
237……….. JScript
238……….. JScript .NET
239……….. Julia
475
240……….. Jython
240……….. K
241……….. Kaleidoscope
241……….. Karel
242……….. KEE
243……….. Kixtart
243……….. Klerer-May System
243……….. KIF (Knowledge Interchange Format)
244……….. Kojo
245……….. Kotlin
245……….. KRC
245……….. KRL
245……….. KRL (KUKA Robot Language)
246……….. KRYPTON
247……….. KornShell (ksh)
246……….. Kodu
247……….. Kv (Kivy)
247……….. LabVIEW
248……….. Ladder
248……….. LANSA
248……….. Lasso
249……….. Lava
249……….. LC-3
249……….. Lean
250……….. Legoscript
250……….. LIL
250……….. LilyPond
251……….. Limbo
251……….. Limnor
251……….. LINC
251……….. Lingo
251……….. LINQ
251……….. LIS
251……….. LISA
252……….. Language H
252……….. Lisp – ISO/IEC 13816
252……….. Lite-C
253……….. Lithe
253……….. Little b
253……….. Logo
253……….. Logtalk
253……….. LotusScript
254……….. LPC
476
254……….. LSE
254……….. LSL
255……….. LiveCode
255……….. LiveScript
255……….. Lua
255……….. Lucid
256……….. Lustre
256……….. LYaPAS
256……….. Lynx
256……….. M Formula language
257……….. M2001
257……….. M4
257……….. M#
258……….. Machine code
259……….. Macsyma
259……….. MAD (Michigan Algorithm Decoder)
259……….. Magik
260……….. Magma
260……….. Maple
261……….. MAPPER (now part of BIS)
261……….. MARK-IV (now VISION:BUILDER)
261……….. Mary
262……….. MATLAB
262……….. MASM Microsoft Assembly x86
262……….. MATH-MATIC
263……….. Maude system
263……….. Maxima
264……….. Max (Max Msp – Graphical Programming Environment)
265……….. MaxScript internal language 3D Studio Max
265……….. Maya (MEL)
266……….. MDL
266……….. Mercury
266……….. Mesa
266……….. MHEG-5 (Interactive TV programming language)
267……….. Microcode
267……….. Microsoft Power Fx
267……….. MIIS
268……….. Milk (programming language)
268……….. MIMIC
268……….. Mirah
269……….. Miranda
269……….. MIVA Script
269……….. ML
477
270……….. Model 204
270……….. Modelica
270……….. Malbolge
271……….. Modula
271……….. Modula-2
271……….. Modula-3
271……….. Mohol
272……….. MOO
272……….. Mortran
273……….. Mouse
273……….. MPD
274……….. MSL
274……….. MUMPS
275……….. MuPAD
275……….. Mystic Programming Language (MPL)
276……….. NASM
276……….. Napier88
277……….. Neko
277……….. Nemerle
277……….. NESL
278……….. Net.Data
278……….. NetLogo
279……….. NetRexx
280……….. NewLISP
280……….. NEWP
280……….. Newspeak
281……….. NewtonScript
281……….. Nial
281……….. Nim
282……….. Nix (Systems configuration language)
282……….. NPL
282……….. Not eXactly C (NXC)
283……….. Not Quite C (NQC)
283……….. NSIS
284……….. Nu
284……….. NWScript
284……….. NXT-G
285……….. o:XML
285……….. Oak
286……….. Oberon
286……….. OBJ
287……….. Object Lisp
287……….. Object REXX
478
288……….. Object Pascal
288……….. Objective-C
289……….. Obliq
289……….. OCaml
290……….. occam
290……….. occam-π
291……….. Octave
291……….. OmniMark
292……….. Opa
293……….. Opal
293……….. Open Programming Language (OPL)
294……….. OpenCL
294……….. OpenEdge Advanced Business Language (ABL)
295……….. OpenVera
295……….. OpenQASM
295……….. OPS5
296……….. OptimJ
296……….. Orc
297……….. ORCA/Modula-2
297……….. Oriel
298……….. Orwell
298……….. Oxygene
298……….. Oz
299……….. P
299……….. P4
299……….. P′′
300……….. ParaSail
301……….. PARI/GP
302……….. Pascal – ISO 7185
304……….. Pascal Script
304……….. PCASTL
305……….. PCF
305……….. PEARL
305……….. PeopleCode
306……….. Perl
307……….. PDL
307……….. Pharo
308……….. PHP
310……….. Pico
311……….. Picolisp
311……….. Pict
312……….. PILOT
313……….. Pipelines
479
314……….. Pizza
315……….. PL-11
315……….. PL/0
316……….. PL/B
316……….. PL/C
317……….. PL/I – ISO 6160
317……….. PL/M
317……….. PL/P
318……….. PL/S
319……….. PL/SQL
319……….. PL360
320……….. PLANC
321……….. Plankalkül
321……….. Planner
321……….. PLEX
322……….. PLEXIL
322……….. Plus
323……….. POP-11
324……….. POP-2
324……….. PostScript
324……….. PortablE
325……….. POV-Ray SDL
325……….. Powerhouse
326……….. PowerBuilder – 4GL GUI application generator from Sybase
327……….. PowerShell
328……….. PPL
328……….. Processing
330……….. Prograph
330……….. Project Verona
331……….. Prolog
332……….. PROMAL
332……….. Promela
333……….. PROSE modeling language
333……….. PROTEL
334……….. ProvideX
334……….. Pro*C
335……….. Pure
336……….. Pure Data
337……….. PureScript
338……….. PWCT
338……….. Python
339……….. Q (programming language from Kx Systems)
340……….. Q# (Microsoft programming language)
480
340……….. Qalb
340……….. Quantum Computation Language
340……….. QtScript
341……….. QuakeC
341……….. QPL
341……….. .QL
342……….. R
342……….. R++
343……….. Racket
345……….. Raku
345……….. RAPID
346……….. Rapira
346……….. Ratfor
347……….. Rc
348……….. Reason
348……….. REBOL
349……….. Red
350……….. Redcode
351……….. REFAL
351……….. REXX
352……….. Ring
354……….. ROOP
354……….. RPG
355……….. RPL
355……….. RSL
356……….. RTL/2
357……….. Ruby
358……….. Rust
359……….. S
359……….. S2
360……….. S3
360……….. S-Lang
362……….. S-PLUS
362……….. SA-C
362……….. SabreTalk
363……….. SAIL
363……….. SAKO
364……….. SAS
364……….. SASL
365……….. Sather
365……….. Sawzall
366……….. Scala
367……….. Scheme
481
368……….. Scilab
369……….. Scratch
370……….. Script.NET
370……….. Sed
372……….. Seed7
372……….. Self
372……….. SenseTalk
373……….. SequenceL
374……….. Serpent
375……….. SETL
375……….. Short Code
375……….. SIMPOL
375……….. SIGNAL
376……….. SiMPLE
376……….. SIMSCRIPT
377……….. Simula
378……….. Simulink
379……….. SISAL
379……….. SKILL
379……….. SLIP
379……….. SMALL
380……….. Smalltalk
381……….. SML
381……….. Strongtalk
381……….. Snap!
382……….. SNOBOL
382……….. Snowball
383……….. SOL
383……….. Solidity
384……….. SOPHAEROS
384……….. Source
384……….. SPARK
385……….. Speakeasy
385……….. Speedcode
386……….. SPITBOL
387……….. SP/k
387……….. SPS
388……….. SQL
389……….. SQR
389……….. Squeak
390……….. Squirrel
391……….. SR
391……….. S/SL
482
392……….. Starlogo
392……….. Strand
393……….. Stata
394……….. Stateflow
395……….. Subtext
395……….. SBL
395……….. SuperCollider
396……….. Superplan
396……….. SuperTalk
396……….. Swift (Apple programming language)
396……….. Swift (parallel scripting language)
397……….. SYMPL
397……….. T
397……….. TACL
398……….. TACPOL
398……….. TADS (Text Adventure Development System)
398……….. TAL
399……….. Tcl
399……….. Tea
399……….. TECO (Text Editor and Corrector)
499……….. TELCOMP
399……….. TeX
400……….. TEX (Text Executive Programming Language)
400……….. TIE
400……….. TMG (TransMo Griffer), compiler-compiler
400……….. Tom
401……….. Toi
401……….. Topspeed (Clarion)
401……….. TPU (Text Processing Utility)
401……….. Trac
401……….. TTM
402……….. T-SQL (Transact-SQL)
402……….. Transcript (LiveCode)
402……….. TTCN (Tree and Tabular Combined Notation)
403……….. Turing
403……….. TUTOR (PLATO Author Language)
404……….. TXL
405……….. TypeScript
405……….. Tynker
406……….. Ubercode
406……….. UCSD Pascal
406……….. Umple
407……….. Unicon
483
407……….. Uniface
408……….. UNITY
408……….. UnrealScript
409……….. Vala
410……….. Vim script
411……….. Viper (Ethereum/Ether (ETH))
412……….. Visual DataFlex
412.………. Visual DialogScript
413……….. Visual FoxPro
414……….. Visual J++ (Visual J plus plus)
414……….. Visual LISP
414……….. Visual Objects
515……….. Visual Prolog
416……….. WATFIV, WATFOR (WATerloo FORtran IV)
416……….. WebAssembly
417……….. WebDNA
417……….. Whiley
417……….. Winbatch
418……….. Wolfram Language
418……….. Wyvern
418……….. X++ (X plus plus/Microsoft Dynamics AX)
419……….. X10
419……….. xBase++ (xBase plus plus)
420……….. XBL
420……….. XC (targets XMOS architecture)
420……….. xHarbour
421……….. XL
421……….. Xojo
421……….. XOTcl
421……….. Xod
422……….. XPL
422……….. XPL0
423……….. XQuery
423……….. XSB
423……….. XSharp (X#)
424……….. XSLT
425……….. Xtend
425……….. Yorick
426……….. YQL
426……….. Yoix
427……….. Z notation
427……….. Z shell
428……….. Zebra, ZPL, ZPL2
484
429……….. Zeno
429……….. ZetaLisp
430……….. Zig
431……….. Zonnon
431……….. ZOPL
432……….. ZPL
432……….. Z++
433……….. References
469……….. Content
Alhamdulillah
485
Alhamdulillah
486
Download