Alphabetical List of Programming Languages

General: Main page  Overview  Concept History  Alphabetical List
Timelines: Timeline #1  Timeline #2  Timeline #3
Languages: C/C++  Java  Visual Studio
Most of the language descriptions have been snipped from resource pages conserning them.

<bigwig>

<bigwig> is a high-level programming language for developing interactive Web services. Complete specifications are compiled into a conglomerate of lower-level technologies such as HTML, CGI Scripts, JavaScript, HTTP Authentication, and Java Applets.

The <bigwig> Project

ABC

ABC is an interactive programming language and environment for personal computing, originally intended as a good replacement for BASIC. It was designed by first doing a task analysis of the programming task.

ABC is easy to learn (an hour or so for someone who has already programmed), and yet easy to use. Originally intended as a language for beginners, it has evolved into a powerful tool for beginners and experts alike.

A Short Introduction to the ABC Language

Ada

Ada is a computer programming language originally designed to support the construction of long-lived, highly reliable software systems. Its design emphasizes readability, avoids error-prone notation, encourages reuse and team coordination, and it is designed to be efficiently implementable.

A significant advantage of Ada is its reduction of debugging time. Ada tries to catch as many errors as reasonably possible, as early as possible. Many errors are caught at compile-time by Ada that aren't caught or are caught much later by other computer languages. Ada programs also catch many errors at run-time if they can't be caught at compile-time (this checking can be turned off to improve performance if desired). In addition, Ada includes a problem (exception) handling mechanism so that these problems can be dealt with at run-time.

The Home of the Brave Ada Programmers, AdaPower.com

Alan

Tool for creating interactive fiction. Alan has focused more on the authoring aspects than on the programming.

The Alan Home Pages

ALF

ALF is a language which combines functional and logic programming techniques. The foundation of ALF is Horn clause logic with equality which consists of predicates and Horn clauses for logic programming, and functions and equations for functional programming.

The ALF System

Algol

The youngest, and probably the most influental of the three big, classic languages. (The other two being Lisp and Fortran.)

Open Directory's entry on Algol

Alloy

ALLOY is a higher level parallel programming language appropriate for programming massively parallel computing systems. It is based on a combination of ideas from functional, object oriented and logic programming languages.

Alloy resources at ftp.funet.fi

Amiga E

E is a powerful and flexible object oriented / procedural / unpure functional higher programming language, mainly influenced by languages such as C++, Ada, Lisp etc., and Amiga E a very fast compiler for it, with features such as speed of >20000 lines/minute on a 7 Mhz amiga, inline assembler and linker integrated into compiler, large set of integrated functions, great module concept with v40 includes as modules, flexible type-system, quoted expressions, immediate and typed lists, parametric and inclusion polymorphism, exception handling, inheritance, data-hiding, methods, multiple return values, default arguments, register allocation, fast memory management, unification, LISP-Cells, gui-toolkit, (macro-) preprocessor, very intuitive and powerful source-level debugger, easy .library linking, and much more...

E on Aminet

AMPL

A comprehensive and powerful algebraic modeling language for inear and nonlinear optimization problems, in discrete or continuous variables.

AMPL Modeling language for Mathematical programming

APL

Array Processing Language.

APL FAQ at University of Waterloo

AWK

awk is a programming language, named after its three original authors:
they write: "Awk is a convenient and expressive programming language that can be applied to a wide variety of computing and data-manipulation tasks."

Effective AWK Programming

B

B is a computer language intended for recursive, primarily non-numeric applications typified by system programming.

User's Reference to B

BASIC

BASIC (standing for Beginner's All Purpose Symbolic Instruction Code) is a system developed at Dartmouth College in 1964 under the directory of J. Kemeny and T. Kurtz. It was implemented for the G.E.225. It was meant to be a very simple language to learn and also one that would be easy to translate. Furthermore, the designers wished it to be a stepping-stone for students to learn on of the more powerful languages such as FORTRAN or ALGOL.

The BASIC Archives, XST

BCPL

BCPL is a simple typeless language that was designed in 1966 by Martin Richards and implemented for the first time at MIT in the Spring of 1967.

BCPL, Martin Richards's BCPL Reference Manual, 1967

BETA

Object-oriented programming originated with the Simula language developed by Kristen Nygaard in Oslo in the 1960s. Since then, OOP has achieved great prominence with the commercial success of C++, Smalltalk, and Eiffel. Now, from the birthplace of OOP, comes the new BETA programming language, for which this book is both tutorial and reference. It provides a clear introduction to the basic concepts of OOP and an easy learning curve from simple programs to more advanced applications in BETA for students and programmers.

The BETA Home Page

Bliss

Rather low level language used, among other things, in the development of VMS.

Bliss documentation

Blue

Blue is an object-oriented programming language that was developed especially for teaching. It runs in an integrated programming enviroment that includes a graphical program structure editor, a text editor, a debugger, a library browser, and more. It was developed for teaching ob[j]ect-oriented concepts to first-year students.

The Blue Page - Teaching Object Oriented Programming

Business Rules!

Business Rules! is the progeny of Workstation Basic. It will still support legacy applications and still maintains the emphasis on using minimal system resources that was so important early on. It has grown to incorporate many new technologies including advanced indexing, the ability to access platform-dependant devices directly with generic syntax calls, output spooling, externalization of functions (libraries), many platform-independent commands that mimic O.S. commands, Windows compatibility features and functionality, and much more.

Business Rules!

C

According to The New Hacker's Dictionary:

C /n./

1. The third letter of the English alphabet. 2. ASCII 1000011. 3. The name of a programming language designed by Dennis Ritchie during the early 1970s and immediately used to reimplement Unix; so called because many features derived from an earlier compiler named `B' in commemoration of its parent, BCPL. (BCPL was in turn descended from an earlier Algol-derived language, CPL.) Before Bjarne Stroustrup settled the question by designing C++, there was a humorous debate over whether C's successor should be named `D' or `P'. C became immensely popular outside Bell Labs after about 1980 and is now the dominant language in systems and microcomputer applications programming. See also languages of choice, indent style.

C is often described, with a mixture of fondness and disdain varying according to the speaker, as "a language that combines all the elegance and power of assembly language with all the readability and maintainability of assembly language".

C Resources on the web

C++

An extension to the C language developed primarily by B.Stroustrup at AT&T Bell Laboratories: it supports object-oriented programming among other enhancements.

WWW C++ Information

Cecil

Cecil is a purely object-oriented language intended to support rapid construction of high-quality, extensible software. Cecil incorporates multi-methods, a simple prototype-based object model, a mechanism to support a structured form of computed inheritance, module-based encapsulation, and a flexible static type system which allows statically- and dynamically-typed code to mix freely.

UW Cecil/Vortex Project

Charity

Charity is functional in style. That is, programmers familiar with declarative paradigms (functional and logic programmers) should find Charity easy to grasp.

Charity is based on the theory of strong categorical datatypes. These are divided into two subclasses: the inductive datatypes (built up by constructors in the familiar way) and the coinductive datatypes (broken down by destructors). Programs over these datatypes are expressed by folds (catamorphisms) and by unfolds (anamorphisms), respectively.

CHARITY - Home Page

CHILL

CHILL (CCITT High Level Language) is a general procedural programming language which is mainly used in the field of telecommunications. As a general programming language it is by no means limited to this field. A number of CHILL programming environments are also implemented in CHILL.

CHILL Homepage, Guide to GNU Chill

CLAIRE

CLAIRE is a high-level functional and object-oriented language with advanced rule processing capabilities. It is intended to allow the programmer to express complex algorithms with fewer lines and in an elegant and readable manner.

The CLAIRE programming Language

Clean

Lazy functional language.

Clean Homepage

COBOL

COmmon Business Oriented Language. Sometimes referred to as a subset of english, rather than a programming language.

The Flexus COBOL Page, VisualAge COBOL

COMAL

COMon Algorithmic Language. Originally intended as a language for beginners. A language similar to BASIC with Pascal-like structure.

UniComal

cT

The cT programming language is an algorithmic language like C, Pascal, Fortran, and Basic, but greatly enhanced by multimedia capabilities, including easy-to-use support for color graphics, mouse interactions, and even movies in QuickTime or Video for Windows format.

The cT Programming Language and Environment

DCL

½IGITAL Command Language.» Used as the equivalent of a shell on the VMS operating system.

OpenVMS DCL Dictionary

Dialect

Procedural language inspired by Basic, supports pre-compilation of code, exceptions, regular expressions, etc.

The Dialect Programming Language

Dylan

Dylan is a general-purpose high-level programming language, designed for use both in application and systems programming. Dylan includes garbage collection, run-time type checking, selective dynamism, error recovery, and a module system. These features simplify programming and support attractive debugging and development tools.

Gwydion Dylan

E

[...] secure distributed object platform and scripting language for writing Capability-Based Smart Contracts.

ERights.Org

Egg

An interpreter for an anonymous computer language described in A Discipline of Computer Programming by Edsger Dijkstra. The interpreter is written by Andrew Cooke.

Dijkstra's Egg

Eiffel

Eiffel is an advanced object-oriented programming language that emphasizes the design and construction of high-quality and reusable software.

SmallEiffel The GNU Eiffel Compiler, Eiffel Liberty

elastiC

elastiC is a portable high-level object-oriented interpreted language with a C like syntax.

elastiC World

Elf

Elf is a constraint logic programming language based on the LF Logical Framework. [...] Elf is a uniform meta-language for specifying, implementing, and proving properties of programming languages and logics.

The Elf Meta-Language

Erlang

Erlang System/OTP is a platform-independent development environment as well as a runtime platform pioneered by Ericsson [...]

Erlang Systems, Erlang

Escher

Declarative, general-purpose programming language [...]

Declarative Programming in Escher

Euphoria

Euphoria is a simple, flexible, and easy-to-learn programming language. It lets you quickly and easily develop programs for DOS and Windows. A Linux version is coming soon. [...] Although Euphoria provides subscript checking, uninitialized variable checking and numerous other run-time checks, it is extremely fast. People have used it to develop high-speed 32-bit DOS games, as well as 32-bit Windows programs.

The Official Euphoria Programming Page

Forth

Forth provides an interactive programming environment. Its primary uses have been in scientific and industrial applications such as instrumentation, robotics, process control, graphics and image processing, artificial intelligence and business applications. The principal advantages of Forth include rapid, interactive software development and efficient use of computer hardware.

Forth is often spoken of as a language because that is its most visible aspect. But in fact, Forth is both more and less than a conventional programming language: more in that all the capabilities normally associated with a large portfolio of separate programs (compilers, editors, etc.) are included within its range and less in that it lacks (deliberately) the complex syntax characteristic of most high-level languages.

Forth Information on Taygeta

Fortran

One of the widely used, early languages. Big in number crunching programming.

Fortran related links

FPL

Frexx Programming Language (FPL) is an interpreting script/macro language shared library, designed to be flexible and easy inserted in any code.

The official FPL home page

GNU E

GNU E is a persistent, object oriented programming language developed as part of the Exodus project. GNU E extends C++ with the notion of persistent data, program level data objects that can be transparently used across multiple executions of a program, or multiple programs, without explicit input and output operations.

GNU E at ftp.cs.wisc.edu

Guile

Guile is an interpreter for the Scheme programming language, nicely packaged as a library you can link into your programs. Your program has full access to the interpreter's data structures, so you can extend Guile with your own primitives, datatypes and syntax. The result is a scripting language tailored to your application.

Guile

Gödel

Gödel is a declarative, general-purpose programming language in the family of logic programming languages. It is a strongly typed language, the type system being based on many-sorted logic with parametric polymorphism. It has a module system. Gödel supports infinite precision integers, infinite precision rationals, and also floating-point numbers. It can solve constraints over finite domains of integers and also linear rational constraints. It supports processing of finite sets. It also has a flexible computation rule and a pruning operator which generalises the commit of the concurrent logic programming languages. Considerable emphasis is placed on Gödel's meta- logical facilities which provide significant support for meta-programs that do analysis, transformation, compilation, verification, debugging, and so on.

The Gödel Programming Language

Haskell

Haskell is a `purely functional' language. Computation proceeds by replacing expressions with their value. While all computer languages incorporate functions to some degree, Haskell programs are composed solely of functions. Haskell is based on lambda calculus, hence the l we use as a logo. The language is named for the logician Haskell B. Curry, whose work provided much of the logical basis for our language.

Haskell

Hugo

Hugo is a text adventure compiler and runtime engine, written by Kent Tessman.

ftp://ftp.gmd.de/if-archive/programming/hugo/

ICI

ICI is a programming language with a dynamic, object based data model with the flow control constructs and operators of C. It is designed for use in many environments, including embedded systems, as an adjunct to other programs and as a text based interface to compiled libraries.

ICI at ftp.ntua.gr

Icon

Icon is a high-level, general-purpose programming language with a large repertoire of features for processing data structures and character strings. Icon is an imperative, procedural language with a syntax reminiscent of C and Pascal, but with semantics at a much higher level.

The Icon Programming Language

Inform

A design system for interactive fiction.

Inform 6, ftp://ftp.gmd.de/if-archive/programming/

J

J is a very high level general-purpose language, with a strong emphasis on functional programming and array processing. J was designed and developed by Ken Iverson and Roger Hui, and implemented by Iverson Software Inc (ISI).

J is distinguished by its simple and consistent rules, a large set of built-in functions, powerful facilities for defining new operations, and a general and systematic treatment of arrays. It is ideal for complex analytical work, modelling, and rapid application development.

J Software

Java

«Object-Oriented Programming for the Internet.»

JavaSoft Home Page

Joy

The language Joy is a purely functional programming language. Whereas all other functional programming languages are based on the application of functions to arguments, Joy is based on the composition of functions. All such functions take a stack as argument and produce a stack as value. Consequently much of Joy looks like ordinary postfix notation.

Synopsis of the Language JOY

Juice

Juice is a new technology for distributing executable content across the World Wide Web. Juice differs from Java in several important aspects that allow it to outperform Java in many "downloadable Applets" applications. Juice is intended to be a complement to Java, giving users a choice: Java or Juice.

Juice Homepage

K

Kx Systems describes K as an application development kit integrating

Kx Systems

Lava

A new experimental OO programming language and programming environment, which replaces text editors by structure editors, and which supports design patterns and components.

LavaPE: The Object- and Component-Oriented Lava Program Development Environment

LIFE

LIFE (Logic, Inheritance, Functions, and Equations) is an experimental programming language proposing to integrate three orthogonal programming paradigms proven useful for symbolic computation. From the programmer's standpoint, it may be perceived as a language taking after logic programming, functional programming, and object-oriented programming. From a formal perspective, it may be seen as an instance (or rather, a composition of three instances) of a Constraint Logic Programming scheme due to Hoehfeld and Smolka refining that of Jaffar and Lassez.

LIFE - Logic, Inheritance, Functions, and Equations

Limbo

Limbo is a programming language intended for applications running distributed systems on small computers. It supports modular programming, strong type checking at compile- and run-time, interprocess communication over typed channels, automatic garbage collection, and simple abstract data types. It is designed for safe execution even on small machines without hardware memory protection.

The Limbo Programming Language

LISP

According to The New Hacker's Dictionary:

LISP /n./

[from `LISt Processing language', but mythically from `Lots of Irritating Superfluous Parentheses'] AI's mother tongue, a language based on the ideas of (a) variable-length lists and trees as fundamental data types, and (b) the interpretation of code as data and vice-versa. Invented by John McCarthy at MIT in the late 1950s, it is actually older than any other HLL still in use except FORTRAN. Accordingly, it has undergone considerable adaptive radiation over the years; modern variants are quite different in detail from the original LISP 1.5. The dominant HLL among hackers until the early 1980s, LISP now shares the throne with C.

Note: HLL is an acronym for "High-Level Language" (as opposed to for instance assembler).

Common Lisp the Language, 2nd Edition

LOGO

Logo is a computer programming language designed for use by learners, including children. One of the ideas guiding its creation was the principle "low floor, high ceiling." This means that it should be easy for the novice programmer to get started (the "low floor") writing programs and getting satisfaction doing so, but that the language should be powerful and extensive in a "sky is the limit" sort of way (the "high ceiling").

A FAQ on LOGO, LOGO computer programming language for learners

Lua

Lua is a programming language originally designed for extending applications, but also frequently used as a general-purpose, stand-alone language. Lua combines simple procedural syntax (similar to Pascal) with powerful data description constructs based on associative arrays and extensible semantics. Lua is dynamically typed, interpreted from bytecodes, and has automatic memory management with garbage collection, making it ideal for configuration, scripting, and rapid prototyping.

The Programming Language Lua

Matlab

MATLAB is an intuitive language and a technical computing environment. It provides core mathematics and advanced graphical tools for data analysis, visualization, and algorithm and application development.

The MathWorks: Developers of MATLAB

MCPL

MCPL is a simple typeless language which is based on BCPL. It makes extensive use of pattern matching somewhat related to that used in ML and Prolog, and some other features come from C.

MCPL

Mercury

Mercury is a new logic/functional programming language, which combines the clarity and expressiveness of declarative programming with advanced static analysis and error detection features. Its highly optimized execution algorithm delivers efficiency far in excess of existing logic programming systems, and close to conventional programming systems. Mercury addresses the problems of large-scale program development, allowing modularity, separate compilation, and numerous optimization/time trade-offs.

The Mercury home page

Miranda

The aim of the Miranda system is to provide a modern functional language, embedded in an `industrial quality' programming environment. It is now being used at a growing number of sites for teaching functional programming and as a vehicle for the rapid prototyping of software.

The Miranda Programming Language

ML

ML (which stands for Meta-Language) is a family of advanced programming languages with [usually] functional control structures, strict semantics, a strict polymorphic type system, and parametrized modules. It includes Standard ML, Lazy ML, CAML, CAML Light, and various research languages. Implementations are available on many platforms, including PCs, mainframes, most models of workstation, multi-processors and supercomputers. ML has many thousands of users, is taught at many universities (and is the first programming language taught at some).

A Gentle Introduction to ML

Modula-2

Modula-2 is a programming notation that corrects some of the deficiencies of Pascal. It is suitable for learning programming, for large projects written and maintained in the fashion of professional software engineers, and for real time embedded systems.

A FAQ on Modula-2

Modula-3

Modula-3 is a member of the Pascal family of languages. Designed in the late 1980s at Digital Equipment Corporation and Olivetti, Modula-3 corrects many of the deficiencies of Pascal and Modula-2 for practical software engineering. In particular, Modula-3 keeps the simplicity of type safety of the earlier languages, while providing new facilities for exception handling, concurrency, object-oriented programming, and automatic garbage collection. Modula-3 is both a practical implementation language for large software projects and an excellent teaching language.

Modula-3 Home Page, Modula-3 Resource Page

NeoBook

Multimedia authoring tool.

NeoSoft Corporation

NESL

NESL is a parallel language developed at Carnegie Mellon by the SCandAL project. It integrates various ideas from the theory community (parallel algorithms), the languages community (functional languages) and the system's community (many of the implementation techniques). The most important new ideas behind NESL are
  1. Nested data parallelism: this feature offers the benefits of data parallelism, concise code that is easy to understand and debug, while being well suited for irregular algorithms, such as algorithms on trees, graphs or sparse matrices [...].
  2. A language based performance model: this gives a formal way to calculated the work and depth of a program. These measures can be related to running time on parallel machines.

NESL: A Parallel Programming Language

NetRexx

NetRexx is a new human-oriented programming language, designed as an effective and simple alternative to the Java language. With NetRexx, you can create programs and applets for the Java environment faster and more easily than by programming in Java. Using Java classes is especially easy in NetRexx, as the different types of numbers and strings that Java expects are handled automatically by the language.

Inspired by two very different programming languages, Rexx and Java, NetRexx blends the easy-to-learn syntax of Rexx with the robustness and portability of the Java environment. The result is a language which is tuned for both scripting and application development, and is therefore truly general-purpose.

NetRexx at IBM

Oberon

Oberon is both a programming language in the Pascal-Modula tradition and a modern operating system for single-user personal workstations. Its highlights are:

The Oberon Home Page

Object Oriented Turing

The Turing family of programming languages feature an easy to learn syntax that provides strong error checking to make programming easier. They include all of Pascal's features and more. While Turing is a completely "safe" language, providing no direct access to the hardware, it's extension, Object Oriented Turing, includes concurrency, exception handling, objects, classes and inheritance, and systems programming language features; it is an alternative to languages like C and Modula.

Turing and Object Oriented Turing Home Page

Objective-C

Objective-C was designed by Brad J. Cox, whose primary purpose was to add the main features of SmallTalk-80 to the C language. His work led to an object-oriented language, with a complete programming enviroment inspired by SmallTalk-80, even comprising a large part of the later's basic library.

Objective-C Home Page, comp.lang.objective-c Newsgroup FAQs

Obliq

Obliq is a lexically-scoped untyped interpreted language that supports distributed object-oriented computation. An Obliq computation may involve multiple threads of control within an address space, multiple address spaces on a machine, heterogeneous machines over a local network, and multiple networks over the Internet. Obliq objects have state and are local to a site. Obliq computations can roam over the network, while maintaining network connections.

Obliq Quick Start

Occam

A programming language which facilitates writing parallel programs, allowing the programmer to specify whether processes are to be executed sequentially or in parallel. Based on CSP, it was originally developed for the Transputer.

The Occam Archive

Octave

GNU Octave is a high-level language, primarily intended for numerical computations. It provides a convenient command line interface for solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with Matlab. It may also be used as a batch-oriented language.

Octave Home Page

Oz

[...] a concurrent object-oriented language with dataflow synchronization. Oz combines concurrent and distributed programming with logical constraint-based inference, [...]

The Mozart Programming System

Pascal

PASCAL is a programming language named after the 17th century mathematican Blaise Pascal. Pascal

Strict rules make it difficult for the programmer to write bad code!

Pascal Programming

Perl

Perl is an interpreted language optimized for scanning arbitrary text files, extracting information from those text files, and printing reports based on that information. It's also a good language for many system management tasks. The language is intended to be practical (easy to use, efficient, complete) rather than beautiful (tiny, elegant, minimal). It combines (in the author's opinion, anyway) some of the best features of C, sed, awk, and sh, so people familiar with those languages should have little difficulty with it.

The Perl Language Home Page

Phantom (Phi)

Phantom is a new interpreted language designed to address some of the problems presented by large-scale, interactive, distributed applications such as distributed conferencing systems, multi-player games, and collaborative work tools. Phantom combines the distributed lexical scoping semantics of Obliq with a substantial language core.

Phantom Home Page

PHP

PHP Version 3.0 is an HTML-embedded scripting language. Much of its syntax is borrowed from C, Java and Perl with a couple of unique PHP-specific features thrown in. The goal of the language is to allow web developers to write dynamically generated pages quickly.

PHP: Hypertext Preprocessor

Pike (LPC)

Pike is a dynamic language with a syntax that looks like C. It is simple to learn, doesn't need long compilation passes and has powerful builtin data types that allows simple and fast data manipulation. Pike is GPL which means that anybody can fetch if for free and use it for almost any purpose they please.

Pike

PiXCL

PiXCL (PIxel-based eXtendable Command Language) is a [...] Windows scripting language that includes a large set of image processing commands and a TWAIN-device command set. It is intended to be used to quickly create image acquisition, display and processing applications. Includes string, integer, float, integer64 and double variable types and arrays. Comes in three versions: FreePiXCL (unrestricted, earlier demo version with 560 functions), PiXCL (700+ functions) and geoPiXCL (50+ extra image processing and analysis functions). All versions include an EXE compiler.

VYSOR Integration Inc

PL/B

The PL/B programming language, which was originally developed in 1972 as DATABUS(R), is currently the primary business programming language for over 250,000 workstations in over 40 countries and is supported by at least nine independent compiler companies on a broad range of hardware and operating systems.

PL/B supports highly interactive business application programming in individual and shared network environments. It has been developed to be easily learned in shorter time frames and by less experienced personnel than a majority of other standard languages. The language structure lends itself not only to easy code generation, but also to easy automated code analysis and reengineering which J15 feels are important considerations for future business programming environments.

Note: J15 is the technical committee for the development of the ANSI standard for PL/B.

J15 - Programming Language PL/B

PL/I

PL/I is a general-purpose programming language, which is used for solving problems in a variety of fields such as commerce, science (including mathematics, physics, chemistry), engineering (incl. civil, electrical, aeronautics), medicine and so on. It can be used for system programming, and the facilitites are such that it is rarely if ever necessary to resort to machine-language or high-level language programming to solve problems.

PL/I resources

Pliant

It's a bit difficult to describe what Pliant is, since it is more a new generation of language than an improvement in a given programming language family. The main idea behind Pliant: instead of building a slightly new language that has a few new interresting features, build a newer, very tiny language with a very simple syntax, where most advanced features can be written in the language itself, as modules.

Pliant home page

Postscript

PostScript is a programming language optimized for printing graphics and text (whether on paper, film, or CRT is immaterial). In the jargon of the day, it is a page description language. It was introduced by Adobe in 1985 and first (to my knowledge) appeared in the Apple LaserWriter. The main purpose of PostScript was to provide a convenient language in which to describe images in a device independent manner. This device independence means that the image is described without reference to any specific device features (e.g. printer resolution) so that the same description could be used on any PostScript printer (say, a LaserWriter or a Linotron) without modification.

A First Guide to Postscript

Prolog

PROgrammation en LOGique. Designed originally for natural-language processing.

Prolog Resource Guide

Python

Python is an interpreted, interactive, object-oriented programming language. It is often compared to Tcl, Perl, Scheme or Java.

Python combines remarkable power with very clear syntax. It has modules, classes, exceptions, very high level dynamic data types, and dynamic typing. There are interfaces to many system calls and libraries, as well as to various windowing systems (X11, Motif, Tk, Mac, MFC, Gtk, Qt). New built-in modules are easily written in in C or C++. Python is also usable as an extension language for applications that need a programmable interface.

Python Language Home Page, PythonLabs

R

R, also known as `GNU S', is a system for statistical computation and graphics. It consists of a language plus a run-time environment with graphics, a debugger, access to certain system functions, and the ability to run programs stored in script files. R implements a language which is not entirely unlike the S language developed at AT&T Bell Laboratories by Rick Becker, John Chambers and Allan Wilks. Indeed in the absence of an R manual, you can (mostly) get along by using the S manual.

The Comprehensive R Archive Network

REBOL

REBOL Is...

In general terms, REBOL is a small, flexible language for sharing content (documents, databases, programs, multimedia) between people, computers, processes, and networks.

In technical terms, REBOL is a distributed object language which interprets symbolic, dynamically-scoped, relational environments. (You wanted to know... [...])

Home of the REBOL Language

Rexx

Rexx is a procedural programming language that allows programs and algorithms to be written in a clear and structured way. It is easy to use by experts and casual users alike. Rexx has been designed to make easy the manipulation of the kinds of symbolic objects that people normally deal with such as words and numbers. Although Rexx has the capability to issue commands to its host environment and to call programs and functions written in other languages, Rexx is also designed to be independent of its supporting system software when such commands are kept to a minimum.

Ian's Rexx title page

RPG

RPG (Report Program Generator) is a programming language that originated as a report-building program used in DEC and IBM minicomputer operating systems and evolved into a fully procedural programming language. Its latest version, RPG III, is supported by IBM's leading minicomputer system, the AS/400. Historically, RPG has probably been the second most used programming language, after COBOL, for commercial applications on mid-range computers.

Eraserhead RPG, VisualAge RPG and CODE/400

RPL/2

A descendant of Reverse Polish Lisp, obviously. Intended for symbolic and scientific computation. Almost fully compatible with RPL on HP-28S.

RPL/2

Ruby

Ruby is the interpreted scripting language for quick and easy object-oriented programming. It has many features to process text files and to do system management tasks (as in perl).

Ruby Home Page

S

S is a very high level language and an environment for data analysis and graphics. S was written by Richard A. Becker, John M. Chambers, and Allan R. Wilks of AT&T Bell Laboratories Statistics Research Department. More recently, other Bell Labs researchers have made major contributions to a new modeling capability in S. The S language is the form in which S users express their computations. The environment provides facilities for data management, support for many graphics devices, etc. S is useful for computation in a wide range of applications. It's a very general tool, so that applications are not restricted to any particular subject area.

Frequently Asked Questions about S, A Guide to the S Language

Sather

Sather is an object oriented language designed to be simple, efficient, safe, flexible and non-proprietary. One way of placing it in the "space of languages" is to say that it aims to be as efficient as C, C++, or Fortran, as elegant as and safer than Eiffel, and support higher-order functions and iteration abstraction as well as Common Lisp, CLU or Scheme.

Sather home page

Scheme

Scheme is a statically scoped and properly tail-recursive dialect of the Lisp programming language invented by Guy Lewis Steele Jr. and Gerald Jay Sussman. It was designed to have an exceptionally clear and simple semantics and few different ways to form expressions. A wide variety of programming paradigms, including imperative, functional, and message passing styles, find convenient expression in Scheme.

Scheme

Self

Designed for expressive power and malleability, Self combines a pure, prototype-based object model with uniform access to state and behavior. Unlike other languages, Self allows objects to inherit state and to change their patterns of inheritance dynamically.

The Self Project

SETL

SET Language. One of the few languages with sets as a basic data type.

The SETL Home Page (a.k.a. David Bacon's Home Page), /pub/languages/setl2 at cs.nyu.edu, Programming with Sets

Simula

SIMULA is an object-oriented programming language. It has been applied to almost all kinds of data processing.

The language was defined in 1967 in the "SIMULA Common Base Language". The language definition has been maintained by the SIMULA Standards Group (SSG), and the latest definition is found in the "SIMULA Standard", adopted by the SSG in 1986.

SIMULA has been implemented on almost all types of computers, ranging from large mainframes to workstations and PC's.

Simula history

Sisal

A High Performance, Portable, Parallel Programming Language.

Sisal at Lawrence Livermore

Smalltalk

An early object-oriented language that arguably takes the idea of OO to an extreme. Designed to be extremely easily usable.

http://www.smalltalk.org/

SNOBOL

SNOBOL is a special purposed language developed to provide a powerful means of doing character string manipulation. Accordingly SNOBOL has a collection of powerful operations for doing string pattern matchings. The most common early application of SNOBOL was to write text editors.

The SNOBOL Programming Language, SNOBOL LANGUAGE WEB PAGE

SR

SR (Synchronizing Resources) is a language for writing concurrent programs. The main language constructs are resources and operations. Resources encapsulate processes and variables they share; operations provide the primary mechanism for process interaction. SR provides a novel integration of the mechanisms for invoking and servicing operations. Consequently, all of local and remote procedure call, rendezvous, message passing, dynamic process creation, multicast, and semaphores are supported. SR also supports shared global variables and operations.

The SR Programming Language

TADS

TADS stands for "Text Adventure Development System".

ftp://ftp.gmd.de/if-archive/programming/tads/

Tcl

Tcl (Tool Command Language; pronounce "tickle") is a string-based scripting language and an interpreter for that language that is designed to be easy to embed in other applications.

Tcl in the WWW Virtual Library, Tcl Developer Site

Theta

Some of Theta's features are:

Theta

TOM

An object oriented language derived from C. The language promotes usability, as opposed to reusability.

TOM

V

V is a new parallel programming language based on C.

V extends C with a new type constructor for vectors and introduces parallelism using an apply-to-each construct and some built-in primitives. The apply-to-each allows the simultaneous application of built-in and user-defined functions at all or some elements of a vector.

The Parallel Programming Language V

Visual Basic

Visual Basic was originally thought of as a replacement for the Windows shell, using insertable third party objects as components in the user interface. Microsoft bought the rights to the idea from Alan Cooper in 1988, and replaced the crude scripting language with a modified version of their QuickBasic, making it a programming language with a visual UI designer. The commercial product was released in 1992.

Visual Basic Instinct

Yorick

The Yorick programming language includes scientific visualization functions (with output to your screen, PostScript, or binary CGM), text and binary I/O functions for reading and writing numbers by the millions, and basic linear algebra functions adapted from the LAPACK library.

Yorick

ZPL

ZPL is a new array programming language designed from first principles for fast execution on both sequential and parallel computers. [...] Users with scientific computing experience can generally learn ZPL in a few hours. Those who have used MATLAB or Fortran 90 may already be acquainted with array programming style.

The ZPL Parallell Programming Language

Last updated 2001-11-12.

Steinar Knutsen

Note: This page is modified from Alphabetical list of programming languages.