Alphabetical list of programming languages

Most of the language descriptions have been snipped from resource pages conserning them.

If you are looking for a development enviroment for a given language and can not find one on the one of the relevant pages listed below, the links on the index page might prove helpful.

Back to index.


<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


[...] It embodies a rich set of functions and operators, a modern graphical user interface with many widgets and automatic synchronization of widgets and variables, asynchronous execution of functions associated with variables and events, dynamic loading of user compiled subroutines, and many other features. Execution is by a rather efficient interpreter. A+ was created at Morgan Stanley. Primarily used in a computationally-intensive business environment, many critical applications written in A+ have withstood the demands of real world developers over many years. Written in an interpreted language, A+ applications tend to be portable.

A+: a programming language for actual programmers


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 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,


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

The Alan Home Pages


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


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 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

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...

Amiga E on the Web


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

AMPL Modeling language for Mathematical programming


Array Processing Language.

APL FAQ at University of Waterloo


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."

The GNU Awk User's Guide


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

User's Reference to B


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 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


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


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

BLISS Language Reference Manual


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!


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


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 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


Centum is an interpreted language that is intended to make it easy to express algorithms in, and is a hybrid between functional programming and object oriented programming.



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 (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


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.

CLAIRE - The Art of Elegant Programming


Lazy functional language.

Clean Homepage


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

Kobol, Fujitsu COBOL, Flexus COBOL


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



This language is designed for modeling concurrency and advanced computation. It provides lazy evaluation in multithreating[sic] programs, with object-oriented and functional style of semanthic.

CORN Programming language


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 Archives


An evolutionary language that fuses parts of C,C++ and Java.

The D Programming Language, Book about D, D programming reference, D frontend for GCC, D compiler


«DIGITAL Command Language.» Used as the equivalent of a shell on the VMS operating system.

OpenVMS Documentation


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


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



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


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

elastiC World


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 System/OTP is a platform-independent development environment as well as a runtime platform pioneered by Ericsson [...]

Erlang Systems, Erlang


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


Felix is new, high power, Open Source, community based programming language which provides an ML style type system with a syntax that C++ programmers should find easy to learn. It generates C++ and supports both use of C++ types as primitives, as well as embedding in existing C++ written architectures in a natural manner.



ferite is a scripting language and engine all in one managable chunk. It is designed to be easily extended in terms of API, and to be used within other applications making them more configurable and useful to the end user. It has a syntax similiar to a number of other langauges but remains clean and it's own language. [The description from the Debian package mentions Perl, Python, C, Java and Pascal as influences.]


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, The ForthFreak wiki


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

Fortran related links


Sun's attempt at a new HPC language.

Links "The Fortress Language Spec v0.618"


Fuzzy Relational Inference Language. Logic programming language closely related to Prolog, but adds fuzzy logic features.

Fril - Downloadable resources


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


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.



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 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.



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


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


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


A design system for interactive fiction.



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


«Object-Oriented Programming for the Internet.»

JavaSoft Home Page


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.

Main page for the programming language JOY


Kx Systems describes K as an application development kit integrating

Kx Systems


NI LabVIEW is the graphical development environment for creating flexible and scalable test, measurement, and control applications rapidly and at minimal cost. With LabVIEW, engineers and scientists interface with real-world signals, analyze data for meaningful information, and share results and applications. Regardless of experience, LabVIEW makes development fast and easy for all users.

National Instruments LabVIEW page


an experimental object-oriented rapid application development (RAD) language with parameterized ("virtual") types, refactoring and component support, which replaces text editors completely by structure editors

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


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.

CLiki for the TUNES project: LIFE entry


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


Lingo is a high level Windows programming language with automatic memory management, simple class structure, large library, working example programs, developer environment, dialog editor, compiler and debugger. [...] Lingo has been under development for about 10 years.

Learn to Program with Lingo!


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 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").

LOGO computer programming language for learners


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 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


MC# - is a high-level object oriented programming language based on .NET Platform created specially for developing complex industrial program systems that could use multiprocessor architectures. It's an adaptation of the base idea of Polyphonic C# language (nowadays also known as Cdelta - Benton N., Cardelli L., Fournet C., Microsoft Research Laboratory, Cambridge, UK) for the case when we have concurrent distributed computations. This language has taken the best ideas from languages: C#, Polyphonic C# (nowadays known as C-Omega or C# 3.0) and T-System (T++ language).

MC# Home page


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.



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


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 (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 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 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


Nemerle is a high-level statically-typed programming language for the .NET platform. It offers functional, object-oriented and imperative features. It has a simple C#-like syntax and a powerful meta-programming system.

Nemerle home page


Multimedia authoring tool.

NeoSoft Corporation


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 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-2 is a general-purpose programming language in the tradit ion of Pascal and Modula-2. Its most important features are block structure, modularity, separate compilation, static typing with strong type checking (also across module boundaries), and type extension with type-bound procedures.Type extension makes Oberon-2 an object-oriented language.

Optimizing Oberon-2 Compiler


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.

comp.lang.objective-c Newsgroup FAQs


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


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


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


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

The Mozart Programming System


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 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 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.



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


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 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


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.

Introduction to Pliant Programming Language


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


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

Prolog Resource Guide


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


An Equational Programming Language. Q is a functional programming language based on term rewriting. Thus, a Q program or "script" is simply a collection of equations which are used to evaluate expressions in a symbolic fashion.

Sourceforge, Encyklopedic article, "This document describes the Q programming language and system, version 4.5, 14 October 2003. Written by Albert Gräf, University of Mainz."


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 R Project for Statistical Computing



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 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, Rexx Language Association website


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.

Who Knew You Could Do That with RPG IV?


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



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 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.

A Guide to the S Language


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 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.



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


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

/pub/languages/setl2 at, Programming with Sets


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


A High Performance, Portable, Parallel Programming Language.

Sisal Lives


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


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.



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 stands for "Text Adventure Development System".


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 Developer Site


Some of Theta's features are:



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



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

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

WinBatch (WIL)

WinBatch is an easy-to-use yet very powerful programming tool - capable of automating any task involving Windows. Use it for simple tasks like connecting PC's to network servers, printing batch jobs out at odd hours, and much more. At the heart of WinBatch is our Windows Interface Language (WIL). It's a high-level programming language for automating Windows; hundreds of Windows tasks are pre-coded for you. Operations that require pages of code in other programming languages are just a single function call in WinBatch.

Winbatch, the Batch Language for Windows


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.



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 2006-02-14.

Steinar Knutsen