A language used to write instructions for the computer. It lets the programmer express data processing in a symbolic manner without regard to machine-specific details.
From Source Code to Machine Language
The statements that are written by the programmer are called "source language," and they are translated into the computer's "machine language" by programs called "assemblers," "compilers" and "interpreters." For example, when a programmer writes MULTIPLY HOURS TIMES RATE, the verb MULTIPLY must be turned into a code that means multiply, and the nouns HOURS and RATE must be turned into memory locations where those items of data are actually located.
Grammar and Syntax
Like human languages, each programming language has its own grammar and syntax. There are many dialects of the same language, and each dialect requires its own translation system. Standards have been set by ANSI for many programming languages, and ANSI-standard languages are dialect free. However, it can take years for new features to be included in ANSI standards, and new dialects inevitably spring up as a result.
Low Level and High Level
Programming languages fall into two categories: low-level assembly languages and high-level languages. Assembly languages are available for each CPU family, and each assembly instruction is translated into one machine instruction by the assembler program. With high-level languages, a programming statement may be translated into one or several machine instructions by the compiler.
Following is a brief summary of the major high-level languages. Look up each one for more details. For a list of high-level programming languages designed for client/server development, see client/server development system
Programming language for Flash programs. See Flash
Comprehensive, Pascal-based language used by the Department of Defense. See Ada
International language for expressing algorithms. See ALGOL
Used for statistics and mathematical matrices. Requires special keyboard symbols. See APL
Developed as a timesharing language in the 1960s. It has been widely used in microcomputer programming in the past, and various dialects of BASIC have been incorporated into many different applications. Microsoft's Visual Basic is widely used. See BASIC
and Visual Basic
Developed in the 1970s at AT&T. Widely used to develop operating systems and commercial applications. Unix was the first OS written in C. C++ (C plus plus) is the object-oriented version of C that is popular because it combines objects with traditional C programming syntax. See C
Pronounced "C-sharp." A Microsoft .NET language based on C++ with elements from Visual Basic and Java. See .NET Framework
A dialect of LISP geared to multithreading. See Clojure
Developed in the 1960s. Widely used for mini and mainframe programming. See COBOL
Widely used in the past for business applications. See dBASE Plus
Pronounced "F-sharp." A Microsoft .NET scripting language based on ML. See F#
Developed in the 1960s, FORTH has been used in process control and game applications. See FORTH
Developed in 1954 by IBM, it was the first major scientific programming language and continues to be widely used. Some commercial applications have been developed in FORTRAN. See FORTRAN
Object-oriented language styled after C/C++ from Google. Go was made public in 2012. See Go
Java-based language that simplifies various functions. See Groovy
Pure functional programming language developed in the 1990s. See Haskell
The programming language developed by Sun and repositioned for Web use. It is widely used on the server side, although client applications are also used. See Java
A programming language designed for financial analysis and other numerical computations. See Julia
Developed in 1960. Used for AI applications. Its syntax is very different than other languages. See LISP
Cross-platform, interpreted language that generates Mac, Windows, Linux, iOS and Android apps from the same source code. See LiveCode
Developed in the 1960s, it was noted for its ease of use and "turtle graphics" drawing functions. See Logo
Fast, lightweight scripting language that runs on Windows, Unix/Linux and smartphone platforms. See Lua
Originally MUMPS (Massachusetts Utility MultiProgramming System), it includes its own database. It is widely used in medical applications. See M
A programming language that spawned OCaml and F#. See ML
Enhanced version of Pascal introduced in 1979. See Modula-2
A version of C used to program Mac and iOS apps. See Objective-C
A dialect of the ML language family that is used for industrial strength applications. See OCaml
A language for programmable network devices. See P4
Originally an academic language developed in the 1970s. Borland commercialized it with its Turbo Pascal. See Pascal
A scripting language used on the Web to write CGI scripts. See Perl
Widely used server-side language embedded in Web pages along with HTML. A major Web language. See PHP
Developed in France in 1973. Used throughout Europe and Japan for AI applications. See Prolog
A scripting language used for AI applications, system utilities and Internet scripts. Developed in Amsterdam by Guido van Rossum. See Python
Runs on IBM mainframes and OS/2. Used as a general-purpose macro language. See REXX
Offers memory-safe features with low-level control. See Rust
A Java-like language that runs in a Java Virtual Machine (JVM). See Scala
An Apple language that adds features to Objective-C. See Swift
Version of BASIC for Windows programming from Microsoft that has been widely used. See Visual Basic
A dBASE language and development system from Microsoft. See Visual FoxPro
Even More Languages!
Programmers must use standard names for the instruction verbs (add, compare, etc.), and companies generally use standard names for the data in their databases. However, programmers "make up" names for the functions (subroutines) in their own programs, and they make up dozens of them, essentially creating their own language. But since they dislike documenting their code, the readability of that language is critical.
Just Make It Up!
Unless naming conventions are enforced or pair programming is used, whereby one person looks over the shoulders of the other, programmers can make up names that make no sense whatsoever. The bane of programmers is having to modify someone else's program that has unclear names and few comments. It often requires tracing the logic one statement at a time.
In fact, if programmers use careless naming, they can have a miserable time reading their own code later. See pair programming
, to the recruiter
and naming fiascos
No Language, Just Wires
In 1946, the ENIAC was programmed by plugging wires from one socket to another. That led to the plugboards on tabulating machines and later to programming languages. See tabulator
and Hollerith machine
. (Image courtesy of Rare Book & Manuscript Library, University of Pennsylvania.)