Programming Language
Programming Language
Many programming languages have some form of written specification of their syntax (form)
and semantics (meaning). Some languages are defined by a specification document. For
example, the C programming language is specified by an ISO Standard. Other languages, such as
Perl, have a dominant implementation that is used as a reference.
The earliest programming languages predate the invention of the computer, and were used to
direct the behavior of machines such as Jacquard looms and player pianos. Thousands of
different programming languages have been created, mainly in the computer field, with many
more being created every year. Most programming languages describe computation in an
imperative style, i.e., as a sequence of commands, although some languages, such as those that
support functional programming or logic programming, use alternative forms of description.
Definitions
Abstractions: Programming languages usually contain abstractions for defining and manipulating
data structures or controlling the flow of execution. The practical necessity that a programming
language support adequate abstractions is expressed by the abstraction principle; this principle
is sometimes formulated as recommendation to the programmer to make proper use of such
abstractions. Expressive power: The theory of computation classifies languages by the
computations they are capable of expressing. All Turing complete languages can implement the
same set of algorithms. ANSI/ISO SQL and Charity are examples of languages that are not Turing
complete, yet often called programming languages .[10][11]
Markup languages like XML, HTML or troff, which define structured data, are not generally
considered programming languages. Programming languages may, however, share the syntax
with markup languages if a computational semantics is defined. XSLT, for example, is a Turing
complete XML dialect. Moreover, LaTeX, which is mostly used for structuring documents, also
contains a Turing complete subset.
The term computer language is sometimes used interchangeably with programming language.
However, the usage of both terms varies among authors, including the exact scope of each. One
usage describes programming languages as a subset of computer languages. In this vein,
languages used in computing that have a different goal than expressing computer programs are
generically designated computer languages. For instance, markup languages are sometimes
referred to as computer languages to emphasize that they are not meant to be used for
programming. Another usage regards programming languages as theoretical constructs for
programming abstract machines, and computer languages as the subset thereof that runs on
physical computers, which have finite hardware resources. John C. Reynolds emphasizes that
formal specification languages are just as much programming languages as are the languages
intended for execution. He also argues that textual and even graphical input formats that affect
the behavior of a computer are programming languages, despite the fact they are commonly not
Turing-complete, and remarks that ignorance of programming language concepts is the reason
for many flaws in input formats.
Specification
Main article: Programming language specification
A programming language specification can take several forms, including the following:
An explicit definition of the syntax, static semantics, and execution semantics of the language.
While syntax is commonly specified using a formal grammar, semantic definitions may be
written in natural language (e.g., as in the C language), or a formal semantics (e.g., as in
Standard ML and Scheme specifications).
A description of the behavior of a translator for the language (e.g., the C++ and Fortran
specifications). The syntax and semantics of the language have to be inferred from this
description, which may be written in natural or a formal language.
A reference or model implementation, sometimes written in the language being specified (e.g.,
Prolog or ANSI REXX]). The syntax and semantics of the language are explicit in the behavior of
the reference implementation.
Implementation
Main article: Programming language implementation
Programs that are executed directly on the hardware usually run several orders of magnitude
faster than those that are interpreted in software.[citation needed]
History
A selection of textbooks that teach programming, in languages both popular and obscure. These are
only a few of the thousands of programming languages and dialects that have been designed in history.
Early developments
The first programming languages predate the modern computer. The 19th century had
"programmable" looms and player piano scrolls which implemented what are today recognized
as examples of domain-specific languages. By the beginning of the twentieth century, punch
cards encoded data and directed mechanical processing. In the 1930s and 1940s, the formalisms
of Alonzo Church's lambda calculus and Alan Turing's Turing machines provided mathematical
abstractions for expressing algorithms; the lambda calculus remains influential in language
design.
In the 1940s, the first electrically powered digital computers were created. The first high-level
programming language to be designed for a computer was Plankalkül, developed for the German
Z3 by Konrad Zuse between 1943 and 1945. However, it was not implemented until 1998 and
2000.
Programmers of early 1950s computers, notably UNIVAC I and IBM 701, used machine
language programs, that is, the first generation language (1GL). 1GL programming was quickly
superseded by similarly machine-specific, but mnemonic, second generation languages (2GL)
known as assembly languages or "assembler". Later in the 1950s, assembly language
programming, which had evolved to include the use of macro instructions, was followed by the
development of "third generation" programming languages (3GL), such as FORTRAN, LISP,
and COBOL. 3GLs are more abstract and are "portable", or at least implemented similarly on
computers that do not support the same native machine code. Updated versions of all of these
3GLs are still in general use, and each has strongly influenced the development of later
languages. At the end of the 1950s, the language formalized as ALGOL 60 was introduced, and
most later programming languages are, in many respects, descendants of Algol. The format and
use of the early programming languages was heavily influenced by the constraints of the
interface.
overall structure:
nature: The two most common kinds of programming languages are procedural and object
oriented.
format: The two basic formats for programming languages are free form and column. Older
programming languages were typically designed to fit into the columns of Hollerith “punch”
cards, with specific fields being reserved for specific purposes. Modern programming langauges
are free form in the sense that there are no specific columns that various items must line up in.
lexical elements
character set: There are two character sets to consider: the source code character set and the
execution character set. The source code character set is the set of characters allowed for writing
source code programs. The execution character set is the set of characters recognized and used
by running programs. These may be the same character set, but usually are different (usually
there are more characters allowed in the execution character set and some languages have
mechanisms for specifically handling multiple execution character sets. The source code
character set can vary for different parts of the language. Some programming languages have
case sensitive source code character sets (that is, identifiers that differ only in case are considered
to be different identifiers), while other programming languages have case insensitive source code
character sets (that is, identifiers that differ only in case are considered to be the same identifier).
Very few programming languages require a specific character encoding for the execution
character set. Some of the common character encodings in use include ASCII, EBCDIC, and
UniCode. A common cross-platform programming error is to assume a specific character set. For
example, the expression ('Z' - 'A' + 1) will produce the number of letters in the alphabet (26)
when either ASCII or UniCode is used, but will produce the answer 41 when EBCDIC is used
(because the letters of the alphabet are not encoded consecutively in EBCDIC). Another common
error regards the use of the high eight bit characters in ASCII, which are typically different on
each different operating system.
white space: White space is any blanks (or space characters) in the source code. Some
programming languages define additional characters as white space. These may include
horizontal tab, vertical tab, end of line, form feed, carriage return, and line feed. In some
programming languages, comments are treated as white space. White space is sometimes
compacted into a single space character by the compiler. White space may be optional or
required (and whether it is optional or required can vary at different parts of the source code).
line termination: Some modern programming languages ignore line returns, while others use
them as dividing lines between instructions (sometimes with a special character to indicate that
an instruction continues on more than one line and sometimes with a special character to allow
more than one instruction per line).
line length: Some programming languages have fixed line lengths, while others have variable
line lengths. Fixed line lengths typically occur with programming languages that use columns.
multibyte characters: Some programming languages have special multibyte encodings for
some characters. It is common to have an escape character(s) to allow programmers to indicate
special characters (such as non-printable characters, line breaks, characters reserved as special
symbols, etc.) in character or string constants. Some programming languages have special
character sequences for encoding required characters on older hardware that doesn’t support all
of the required source code character set. Some programming languages include have special
sequences for encoding multi-byte characters (such as non-Roman alphabets).
comments: Every programming language except for machine language (writing in raw binary
opcodes) has some system for comments (and comments are sometimes even interspersed as
ASCII data between raw binary machine code). Comments are used to to make programs self-
documenting for future human maintenance or modification (most of the life of any successful
software is in maintenance, not initial programming). Comments are either removed or replaced
with white space.
tokens: Tokens are the basic lexical building blocks of source code. Characters are combined
into tokens according to the rules of the programming language. There are five classes of tokens:
identifiers, reserved words, operators, separators, and constants.
identifiers:
reserved words:
operators: Operators are tokens used to indicate an action to be taken (usually arithmetic
operations, logical operations, bit operations, and asignment operations). Operators can be
simple operators (a single character token) or compound operators (two or more character
tokens).
separators: Separators are tokens used to separate other tokens. Two common kinds of
separators are indicators of an end of an instruction and separators used for grouping.
constants:
control structures:
There are three basic kinds of control structures: sequences, branching, and loops. Corrado
Böhm and Guiseppe Jacopini presented the proof of the Structured Theorem (which states that
any logic problem can be solved with only sequence, choice (IFTHENELSE), and repetition
(DOWHILE) structures) in “Flow Diagrams, Turing Machines and Languages with Only Two
Formation Rules”, Communications of the ACM, No. 5, May 1966, pp 366-371.
sequential structures:
Sequential structures are structures that are stepped through sequential. These are also called
sequences or iterative structures. Basic arithmetic, logical, and bit operations are in this category.
Data moves and copies are sequences. Most register and processor control operations are
sequences. Some computer scientists group subroutines and functions as a special kind of
sequence, while others group them as a special kind of branching structure.
branching structures:
Branching structures consist of direct and indirect jumps (including the infamous “GOTO”),
conditional jumps (IF), nested ifs, and case (or switch) structures.
loop structures:
The basic looping structures are DO iterative, do WHILE, and do UNTIL. An infinite loop is
one that has no exit. Normally, infinite loops are programming errors, but event loops and task
schedulers are examples of intentional infinite loops.
objects:
Object oriented programming does not fit neatly into the three basic categories, because the
three basic categories of control structures describe procedural programming. The internal
implementation of at least some methods will use the three basic structures, but this is hidden
from other objects.
machine code:
Machine code can be written using the three basic structures, although on some particular
processors it may not be possible to write all of the structures as atomic code. Atomic means all
as one unit. On some processors it may be necessary to construct some structures with a series of
machine instructions instead of with a single machine instruction.
exception processing:
Exception processing also doesn’t fall into the three basic categories. Normally, exception
processing only occurs in low level assembly or machine language programming. Some high
level languages provide “on conditions”, or the ability to designate routines to be run when an
exception or other special event occurs. The actual code that runs during the exception can be
written with just the three basic structures.
misc structures:
There are some kinds of structures that don’t neatly fall into the above categories. Böhm-
Jacopini’s theory states that only the three basic structures are necessary, but obviously other
structures do exist. Use of these other structures is generally contraindicated (you will almost
certainly regret the decision to use them).
data structures:
All information in binary digital computers is actually stored as a series of binary ones and
zeros. Those sequences of binary data are interpretted by the processor, by software, or by
humans as having some other meaning (numbers, characters, logic states, or complex data
structures).
PROGRAMMING LANGUAGES:
A-0 history: Grace Hopper started work on A-0 in 1951
A-0 (also known as AT-3), the first compiler, was created in 1952 by Grace Murray Hopper. She
later created A-2, ARITH-MATIC, MATH-MATIC, and FLOW-MATIC, as well as being one of the
leaders in the development of COBOL. Grace Hopper was working for Remington rand at the
time. Rand released the language as MATH-MATIC in 1957.
MATH-MATIC was released by the Rand Corporation in 1957. The language was derived from
Grace Murray Hopper’s A-0.
FLOW-MATIC, also called B-0, was created in 1957 by Grace Murray Hopper.
Ada history: Originally intended by the U.S. military as a unified language for
embedded systems, government bureaucrats attempted to make it an all-purpose language.
Ada was first released in 1983 (ADA 83), with major releases in 1995 (ADA 95) and
2005 (ADA 2005). Ada was created by the U.S. Department of Defense (DoD),
originally intended for embedded systems and later intended for all military computing
purposes.
Ada is named for Augusta Ada King, the Countess of Lovelace, the first computer
programmer in modern times.
“Ada is a computer language. It was the result of the efforts of numerous people, four of
whom stand out: Jean D. Ichbiah, William E. Carlson, David Fisher, and William A.
Whitaker. Together they recognized the need for a common computer language for the
U.S. Department of Defense, to replace the over 400 different computer languages and
dialects previously in use there, and worked to develop this single one. Ada is a powerful
language, allowing types, subprograms, input-output facilities for numerous devices,
parallel processing, exception handling, and many other functions. Please note that it is
named for Countess Augusta Ada Lovelace, daughter of Lord Byron, and is therefore not
an acronym.” —Language Finger, Maureen and Mike Mansfield Library, University of
Montana.
with Ada.Text_IO;
use Ada.Text_IO;
procedure HelloWorld is
begin
Ada.Text_IO.Put_Line("Hello World");
end HelloWorld;
IAL (International Algebraic Logic) started in 1958 as the project later renamed ALGOL 58.
The theoretical definition of the language was published. No compiler available.
ALGOL (ALGOrithmic Language) was released in 1960. Major releases in 1960 (ALGOL
60) and 1968 (ALGOL 68). ALGOL was originally intended for scientific computations.
ALGOL is the first block-structured labguage and is considered to be the first second
generation computer language. This was the first programming language that was designed to be
machine independent.
ALGOL became the most popular programming language in Europe in the mid- and late-
1960s.
ALGOL introduced such concepts as: block structure of code (marked by BEGIN and END),
scope of variables (local variables inside blocks), BNF (Backus Naur Form) notation for defining
syntax, dynamic arrays, reserved words, IF THEN ELSE, FOR, WHILE loop, the := symbol for
assignment, SWITCH with GOTOs, and user defined data types.
ALGOL W was created in 1966 by Niklaus Wirth. ALGOL W included RECORDs, dynamic
data structures, CASE, passing parameters by value, and precedence of operators.
ALGOL 68 in 1968 introduced the =+ token to combine assignment and add, UNION, and
CASTing of types. It included the IF THEN ELIF FI structure, CASE structure, and user-defined
operators.
BEGIN
OUTSTRING(2, "Hello World");
END.
Alphard history: Alphard (named for the brightest star in Hydra) was designed by
William Wulf, Mary Shaw, and Ralph London of Carnegie-Mellon University in 1974. A Pascal-
like language intended for data abstraction and verification. Make use of the “form”, which
combined a specification and an implementation, to give the programmer control over the
impolementation of abstract data types.
AspectJ history: AspectJ (Aspect for Java) was created at the Palo Alto Research
Center in 2001.
Tiny BASIC created by Dr. Wong in 1975 runs on Intel 8080 and Zilog Z80 computers.
“BASIC was one of the first computer languages invented. It was developed by John G.
Kemeny and Thomas E. Kurtz, two mathematics professors at Dartmouth College in 1964, with
the aim of providing their students with an easily learned language that could still handle
complicated programming projects. The acronym stands for Beginner’s All-purpose Symbolic
Instruction Code. Since then there have been many revisions and versions of it. Just as with other
popular computer languages, there is a version of BASIC for just about every brand of computer,
and most of these differ slightly. Additionally, QBasic is a version of BASIC written by
Microsoft to incorporate structured programming into BASIC, and to take advantage of other
capabilities of modern personal computers. QBasic has most of the features of standard BASIC
plus many enhancements. There is another dialect called Visual BASIC, plus its offshoot, VBA,
or Visual Basic for Applications. VBScript is a subset of VBA, designed to be ‘light.’” —
Language Finger, Maureen and Mike Mansfield Library, University of Montana
BCPL history: BCPL (Basic CPL) was created in 1969 in England. Intended as
a simplified version of CPL, includes the control structures For, Loop, If Then, While, Until
Repeat, Repeat While, and Switch Case.
“BCPL was an early computer language. It provided for comments between slashes. The name
is condensed from “Basic CPL”; CPL was jointly designed by the universities of Cambridge and
London. Officially, the “C” stood first for “Cambridge,” then later for “Combined.” --
Unofficially it was generally accepted as standing for Christopher Strachey, who was the main
impetus behind the language.” —Language Finger, Maureen and Mike Mansfield Library,
University of Montana.
“C is a computer programming language. It was developed out of the construction of the
UNIX operating system. It has a modular programming structure and is thus useful in object
oriented programming, as well as in developing graphical user interfaces. C++ is a superset of C.
Other dialects include Small-C and Visual C.” —Language Finger, Maureen and Mike Mansfield
Library, University of Montana.
#include <stdio.h>
main()
{
printf("Hello World\n");
}
#include <iostream.h>
COBOL history: COBOL (COmmon Business Oriented Language) was created in May
1959 by the Short Range Committee of the U.S. Department of Defense (DoD) for business
programming. The CODASYL committee (COnference on DAta SYstems Languages) worked from May
1959 to April 1960. Official ANSI standards included COBOL-68 (1968), COBOL-74 (1974), COBOL-85
(1985), and COBOL-2002 (2002). COBOL 97 (1997) introduced an object oriented version of COBOL.
COBOL programs are divided into four divisions: identification, environment, data, and procedure. The
divisions are further divided into sections. Introduced the RECORD data structure. Emphasized a verbose
style intended to make it easy for business managers to read programs. Admiral Grace Hopper is
recognized as the major contributor to the original COBOl language and as the inventor of compilers.
IDENTIFICATION DIVISION.
PROGRAN-ID. HelloWorld.
AUTHOR. Milo.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
INPUT-OUTPUT SECTION.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
LINKAGE SECTION.
PROCEDURE DIVISION.
DISPLAY "Hello World".
STOP RUN.
history: Prolog (PROgramming LOGic) was created in 1972 in France by Alan Colmerauer with
Philippe Roussel. Introduces Logic Programming.
“C.A.R. Hoare wrote a paper in 1978 about parallel computing in which he included a
fragment of a language. Later, this fragment came to be known as CSP. In it, process
specifications lead to process creation and coordination. The name stands for Communicating
Sequential Processes. Later, the separate computer language Occam was based on CSP.” —
Language Finger, Maureen and Mike Mansfield Library, University of Montana.
dBASE II history: dBASE II was created in 1980 by Wayne Ratliff at the Jet
Propulsion Laboratories in Pasadena, California. The original version of the language was called
Vulcan. Note that the first version of dBASE was called dBASE II.
Dylan history: Dylan was created in 1992 by Apple Computer and others.
Dylan was originally intended for use with the Apple Newton, but wasn’t finished in time.
hello-world();
ECMAScript history: ECMAScript (named for the European standards group
E.C.M.A.) was created in 1997
Eiffel history: Eiffel (named for Gustave Eiffel, designer of the Eiffel Tower)
was released in 1986 by Bertrand Meyer. Work started on September 14, 1985.
“Eiffel is a computer language in the public domain. Its evolution is controlled by Nonprofit
International Consortium for Eiffel (NICE), but it is open to any interested party. It is intended to
treat software construction as a serious engineering enterprise, and therefore is named for the
French architect, Gustave Eiffel. It aims to help specify, design, implement, and change quality
software.” —Language Finger, Maureen and Mike Mansfield Library, University of Montana.
Forth history: Forth was created by Charles H. Moore in 1968. Stack based language.
Forth was a reference to Moore’s claim that he had created a courth generation programming
language.
Forth used to write the program to control the Kitt Peaks telescope.
The first commercial FORTRAN program was run in 1957 at Westinghouse. The first compile
run produced a missing comma diagnostic. The second attempt was a success.
“FORTRAN is a computer language first developed in the 1950’s and still used today. Its
name comes from “formula translation,” revealing its early use in processing mathematics.
Dialects include FORTRAN 77and FORTRAN 90. Versions include FORTRAN II, IV, and V,
WATFOR, and WATFIV.” —Language Finger, Maureen and Mike Mansfield Library,
University of Montana.
“Often referred to as a scientific language, FORTRAN was the first high-level language, using
the first compiler ever developed. Prior to the development of FORTRAN computer
programmers were required to program in machine/assembly code, which was an extremely
difficult and time consuming task, not to mention the dreadful chore of debugging the code. The
objective during its design was to create a programming language that would be: simple to learn,
suitable for a wide variety of applications, machine independent, and would allow complex
mathematical expressions to be stated similarly to regular algebraic notation. While still being
almost as efficient in execution as assembly language. Since FORTRAN was so much easier to
code, programmers were able to write programs 500% faster than before, while execution
efficiency was only reduced by 20%, this allowed them to focus more on the problem solving
aspects of a problem, and less on coding.” —Neal Ziring, The Language Guide, University of
Michigan
“FORTRAN was so innovative not only because it was the first high-level language [still in
use], but also because of its compiler, which is credited as giving rise to the branch of computer
science now known as compiler theory. Several years after its release FORTRAN had developed
many different dialects, (due to special tweaking by programmers trying to make it better suit
their personal needs) making it very difficult to transfer programs from one machine to another.”
—Neal Ziring, The Language Guide, University of Michigan
PROGRAM HELLO
WRITE(UNIT=*, FMT=*) 'Hello World'
END
FP history: FP was presented by John Backus in his 1977 Turing Award lecture Can
Programming be Liberated From the von Neumann Style? A Functional Style and its Algebra of
Programs.
GAP history: GAP (Groups, Algorithms, and Programming) was developed in 1986 by
Johannes Meier, Werner Nickel, Alice Niemeter, Martin Schönert, and others. Intended to
program mathematical algorithms
“HTML stands for HyperText Machine (or Markup) Language. HTML is a subset of SGML.
It is a computer language used to create webpages. A newer version now exists, called Dynamic
HTML, or DHTML.” —Language Finger, Maureen and Mike Mansfield Library, University of
Montana.
<html>
<head>
<title>Hello World</title>
</head>
<body>
<p>Hello World</p>
</body>
</html>
HyperTalk history: HyperCard was created by William Atkinson in 1987.
HyperTalk was the scripting language built into HyperCard.
“Apple Computer Company created a product called HyperCard for use in dealing with
hypertext and hypermedia on their Macintosh computer. HyperTalk is HyperCard’s
programming language. (Hypertext is the use of a computer to automate links and follow their
paths from one portion of text to another, going wherever the information which the user seeks is
located. Hypermedia is the same idea within a multimedia environment.)”
history: Icon, based on SNOBOL, was created in 1977 by faculty, staff, and
students at the University of Arizona. Structured types include list, set, and table (dictionary).
“Icon is a high-level, general purpose programming language, with many features for processing
symbolic data such as strings of chains and structures. Icon grew out of a desire to find a more
easily implemented language than SNOBOL. First implemented in 1979 (and written in Ratfor),
Icon has been continually developed and refined. It is an expression-level language more
powerful than Pascal or C. In Icon, a string of characters IS a value.” —Language Finger,
Maureen and Mike Mansfield Library, University of Montana.
Java history: Java (named for coffee) was created by James Gosling and others at Sun
Microsystems for embedded systems and released for applets in 1995. Original work started in
1991 as an interactive language under the name Oak. Rewritten for the internet in 1994.
“Java is a computer language, but very powerful, intended to be machine and operating-
system independent. Java will enable whatever functions the piece you call up or download has,
including sound, video, etc., on your screen. It also is interactive, and can produce dynamic
images on your screen, not just static ones. It was developed by Sun Micro. There is a dialect
called Hot Java; on the other hand, JavaScript is a separate language.” —Language Finger,
Maureen and Mike Mansfield Library, University of Montana.
Java should not be confused with Microsoft’s J++. Microsoft was worried about the success of
Java for two reasons: (1) Java directly competed with Windows CE as a system for embedded
devices, and (2) Java is cross-platform and therefore threatens the dominance of Windows. So,
Microsoft created their own version of Java, which was purposely slightly different. In addition
to adding a few Microsoft-only objects (available only when used on the latest versions of
Windows) and dropping a few general Java objects, Microsoft purposely made some objects
behave differently in their version than in pure Java. The prupose was to sew confusion and
cause Java programs written on Microsoft platforms to fail on other platforms and Java programs
written on other platforms to fail on Microsoft platforms, hoping this would lead to a widespread
belief that Java was unreliable. For a period of time, Sun used the “Pure Java” slogan to try to
distinguish between Microsoft’s version and the real thing. Eventually Sun won in court and and
got a U.S> federal court order preventing Microsoft from calling their own language “Java”.
Microsoft was forced to switch to an alternate name (“J++”).
import java.applet.*;
import java.awt.*;
Public class HelloWorld extends Applet
{
public void paint(Graphics g)
{
g.drawstring("Hello World".,10,10);
}
}
JavaScript nature: scripting language with both object oriented and block structured
features
“JavaScript is the scripting language developed by Netscape for use with the Java computer
language. It is designed for smaller applications than Java, yet it is a full-blown, powerful,
general-purpose programming language. Microsoft calls it Jscript. JavaScript and Jscript are very
differently implemented from Java. The language is also known as ECMAScript.”
history: LISP (LISt Processing) was created n 1958 and released in 1960 by John McCarthy
of MIT. LISP is the second oldest programming language still in common use. LISP was
intended for writing artificial intelligence programs.
history: Logo was created in 1967 (work started in 1966) by Seymour Papert. Intended as a
programming language for children. Started as a drawing program. Based on moving a “turtle”
on the computer screen.
history: Modula-2 was released in 1979. Created by Niklaus Wirth at ETH in Zurich,
Switzerland. Wirth also created the Lilith computer, a Modula-2 machine.
Modula-2 was based on Pascal and Modula. “Modula-2 has separately compiled library
modules, and makes much less use of blocks (begin...) than Standard Pascal. Identifiers are case
sensitive; there is no goto label; and I/O is in libraries rather than built in. The IF statement is
more versatile; and there are facilities for concurrent programming via coroutines. Extended
Pascals may have some of these features.” according to Modula-2 FAQ
MODULE HelloWorld;
FROM InOut IMPORT WriteString, WriteLn;
BEGIN
WriteString('Hello World');
WriteLn;
END HelloWorld.
history: Pascal (named for French religious fanatic and mathematician Blaise Pascal) was
created in 1970 by Niklaus Wirth on a CDC 6000-series computer. Work started in 1968. Pascla
intended as a teaching language to replace BASIC. Programs compiled to an intermediate P-
code, that is platform independent.
“The computer language Pascal was developed between 1968 and 1971, from ALGOL. It was
named for the French mathematician Blaise Pascal. Its highly-structured nature makes it
especially well-suited for developing algorithms.” —Language Finger, Maureen and Mike
Mansfield Library, University of Montana.
SYNTAX: Hello World example
history: Perl (Practical Extracting and Report Language) was created by Larry Wall in 1987.
Intended to replace the Unix shell, Sed, and Awk. Used in CGI scripts.
<?php
echo "Hello World\n";
?>
Plantalkül history: Plankalkül (Plan Calculus), created in 1945 by Konrad Zuse for
the Z3 computer in Nazi germany, may have been the first programming language (other than
assemblers). This was a surprisingly advanced programming language, with many features that
didn’t appear again until the 1980s.
PL/I history: Work on PL/I started in 1963. PL/I (Programming Language One) was
created in 1964 at IBM’s Hursley Laboratories in the United Kingdom. PL/I was intended as an
all-purpose langauge to combine the scientific abilities of FORTRAN with the business
capabilities of COBOL, plus additional facilities for systems programming. Also borrows from
ALGOL 60. Originally called NPL, or New Programming Language. Introduces storage classes
(automatic, static, controlled, and based), exception processing (On conditions), Select When
Otherwise conditional structure, and several variations of the DO loop. Numerous data types,
including control over precision
/Courier findfont
14 scalefont
setfont
0 0 moveto
(Hello World) show
showpage
Pov-Ray history: Pov-Ray (Persistence of Vision) was created in 1991 by D.B.A. Collins
and others. A language for describing 3D images
Prolog history: Prolog (PROgramming LOGic) was created in 1972 in France by Alan
Colmerauer with Philippe Roussel. Introduces Logic Programming.
Python history: Python (named for Monty Python Flying Circus) was created in 1991 by
Guido van Rossum. A scripting language with dynamic types intended as a replacement for Perl.
nature: object oriented language; interpreted language
Relational Language history: Relational Language was created in 1981 by Clark and
Gregory
SASL history: SASL (Saint Andrews Static Language) was created by D. Turner in 1976.
Intended for teaching functional programming. Based on ISWIM. Unlimited data structures.
Scala history: Scala was created February 2004 by Ecole Polytechnique Federale de
Lausanne. Object oriented language that implements Python features in a Java syntax.
Scheme history: Scheme, based on LISP, was created by Guy Lewis Steele Jr. and Gerald
Jay Sussman at MIT in 1975.
Scriptol history: Scriptol (Scriptwriter Oriented Language) was created by Dennis G.
Sureau in 2001. New control structuress include for in, while let, and scan by. Variables and
literals are objects. Supports XML as data structure
Short Code history: Short Code created in 1949. This programming language was compiled
into machine code by hand.
SmallTalk history: SmallTalk was created in 1969 at Xerox PARC by a team led by Alan Kay,
Adele Goldberg, Ted Kaehler, and Scott Wallace. Fully object oriented programming language
that introduced a graphic environment with windows and a mouse.
SNOBOL history: SNOBOL (StroNg Oriented symBOli Language) was created in 1962 by
D.J. Farber, R.E. Griswold, and F.P. Polensky at Bell Telephone Laboratories. Intended for
processing strings, the language was the first to use associative arrays, indexed by any type of
key. Had features for pattern-matching, concatenation, and alternation. Allowed running code
stored in strings. Data types: integer, real, array, table, pattern, and user defined types.
SQL history: SQL (Standard Query Language) was designed by Donald D. Chamberlin and
Raymond F. Boyce of IBM in 1974. SQl was designed for data base queries.
Larry Ellison wrote the first version of Oracle database by himself in about six months. That is
genius. Data bases typically take large teams (sometimes hundreds of programmers) at least a
year.
Hello World example
Standard ML history: Standard ML, based on ML, was created in 1984 by R. Milner of the
University of Edinburgh.
UML history: UML (Unified Modeling Language) was created by Grady Booch, Jim
Rumbaugh, and Ivar Jacobson in 1996 by combining the three modeling languages of each of the
authors
UNIX shell script history: UNIX shell scripts (such as sh, csh, and bash) are used for
controlling a UNIX machine from the command line.
Visual basic Visual Basic .NET (VB.NET or VB .NET) is a version of Microsoft's Visual Basic that
was designed, as part of the company's .NET product group, to make Web services applications easier to
develop. According to Microsoft, VB .NET was reengineered, rather than released as VB 6.0 with added
features, to facilitate making fundamental changes to the language. VB.NET is the first fully object-
oriented programming (OOP) version of Visual Basic, and as such, supports OOP concepts such as
abstraction, inheritance, polymorphism, and aggregation
SAMPLE CODE: