programming language

A programming language is a language for directing the operation of a computer.

See Also

Tcl and other languages

Description

Programming languages are categorized in various ways:

The role they play in a system
scripting language or system language
data primitives
objects, values
design features
dynamic, stack-based
targeted use
data query, list processing, string processing, pattern matching, modeling
mode of execution
interpreted, compiled
field
markup, formula translation, logic
level of abstraction
assembly language
mutability
Imperative language: Data is mutable. Dynamic Language: The program is mutable. Functional language: Nothing is mutable.
scope
domain-specific, general-purpose
style
declarative, imperative
technique
control flow, data flow, rules-based, Meta Programming
paradigm
functional programming, object-oriented

Almost none of these categories are mutually-exclusive, but are more like dimensions that fix the "coordinates" of a language. Tcl is one of the few languages that can legitimately claim to be almost all of these things, as a random stroll through this wiki will evidence.

Languages

Language connoisseurs have provided various languages with a presence on this wiki:

Ada
Applescript
Arc
APL
Assembly Language
the least common denominator
awk
bash
BASIC
Beatnik
Brainfuck
C
C#
Cobol
C++
D
Delphi
Dylan
ECMAscript (Javascript)
Eiffel
Euphoria
elisp
Erlang
execline
Factor
A concatenative programming language.
Forth
F3
Flare
A failed attempt at a Lisp-like language in XML
Forth
Fortran
Funge
g
Groovy
an agile dynamic language for the JVM combining lots of great features from languages like Python, Ruby and Smalltalk and making them available to the Java developers using a Java-like syntax
Guile
An embeddable Scheme implementation, intended by the FSF to be the universal scripting engine
Haskell
polymorphicly-typed, lazy, purely functional language
Hecl
scripting language implemented in Java
Icon Programming Language
A block-structured, pascal-influenced, descendant of Snobol.

Io Programming Language: A language similar to Tcl in that it is homoiconic - code and data are interchangeable.

J
a descendant of APL particularly strong in the mathematical, statistical, and logical analysis of data
Java
class-based, object-oriented, with a virtual machine featuring automatic memory management, developed and championed by Sun
javascript
a prototype-based scripting language designed specifically to be embedded into the Netscape web browser
Joy
See Playing Joy
ksh
L
LIL
LISP
Logo
Lua
Malbolge
MEL
A scripting and command language included in Maya
Mercury
A GPL logic functional programming, with the semantics of modern functional programming, the expressiveness of logic languages, a strong type system, a module system, a mode system, algebraic data types, parametic polymorphism, support for higher order programming and a determinism system.
Metafont
Font compiler written by Donald E. Knuth, so that he could create fonts for his TeX program.
m4
ML
A family of statically-typed (with type-inference), strict, impure functional programming languages.
Mozart
Nim (formerly Nimrod)
Statically-typed, imperative.
Objective C
Oberon
An object-oriented evolutionary descendant of Modula-2.
Pascal, by Niklaus Wirth
Initially developed for teaching programming at ETH Zürich.
Perl
Phantom
Interpreted language designed for large-scale interactive distributed applications; based on a safe extended subset of Modula-3; includes a Tk binding.
PHP
A scripting language mainly designed for web development.
PL/I
Postscript
PowerPro
Processing
Prolog
Python
R
Ratfor
Rebol
Rexx
Ruby
Sather
Scheme
Self
Prototype-based dynamic object-oriented.
SLIDE: Scene Language for Interactive Dynamic Environments
Smalltalk
SML
SQL
snobol
Tcl
The most valuable of them all.
Thyrd
TkScript
Unrelated to Tk
TOS
TRAC
Visual Basic