Programming Languages

Information Technology Resources

A programming language is a stylized communication technique intended to be used for controlling the behavior of a machine (often a computer). Like human languages programming languages have syntactic and semantic rules used to define meaning.

Thousands of different programming languages have been created and new ones are created every year. (see list of programming languages). Few languages ever become sufficiently popular that they are used by more than a few people, but professional programmers are likely to use dozens of different languages during their career.

Definitions of programming language

There is no universally agreed definition for the term programming language. The following is a list of some of the methods that have been used to categorize a language as being a programming language.

-What it is used for. For instance, a programming language is a language used to write programs.

-Those involved in the interaction. For instance, a programming language differs from natural languages in that natural languages are used for interaction between people, while programming languages are used for communication from people to machines (this rules out languages used for computer to computer interaction).

-The constructs it contains. For instance, a programming language contains constructs for defining and manipulating data structures, and for controlling the flow of execution.

-Its expressive power. The theory of computation provides a classification of languages based on the range of computations expressible by them, with the most expressive language being one that is Turing complete (the language needs to contain at least a looping construct and a method of storing values, ie, variables). Any program that can be written in a language that is Turing complete can also be written in another language that is Turing complete. Some examples of languages that are not Turing complete are pure HTML (the use of embedded PHP or Javascript makes it Turing complete) and SQL (SQL vendors invariably add language extensions that create a Turing complete language, e.g., PL/SQL).

Features of a Programming Language

Each programming language can be thought of as a set of formal specifications concerning syntax, vocabulary, and meaning.

These specifications usually include:

  • Type system
  • Data structures
  • Instruction and control flow
  • Design philosophy
  • Compilation and interpretation

Those languages that are widely used – or have been used for a considerable period of time – have standardization bodies that meet regularly to create and publish formal definitions of the language and discuss the extension of existing definitions.

History of programming languages

The development of programming languages follows closely the development of the physical and electronic processes used in today's computers.

Programming languages have been under development for years and will remain so for many years to come. They got their start with a list of steps to wire a computer to perform a task. These steps eventually found their way into software and began to acquire newer and better features. The first major languages were characterized by the simple fact that they were intended for one purpose and one purpose only, while the languages of today are differentiated by the way they are programmed in, as they can be used for almost any purpose. And perhaps the languages of tomorrow will be more natural with the invention of quantum and biological computers.

Charles Babbage is often credited with designing the first computer-like machines, which had several programs written for them (in the equivalent of assembly language) by Ada Lovelace.

In the 1940s the first recognizably modern, electrically powered computers were created. Some military calculation needs were a driving force in early computer development, such as encryption, decryption, trajectory calculation and massive number crunching needed in the development of atomic bombs. At that time, computers were extremely large, slow and expensive: advances in electronic technology in the post-war years led to the construction of more practical electronic computers. At that time only Konrad Zuse imagined the use of a programming language (developed eventually as Plankalkül) like those of today for solving problems.

Subsequent breakthroughs in electronic technology (transistors, integrated circuits, and chips) drove the development of increasingly reliable and more usable computers. The first widely used high-level programming language was FORTRAN, developed during 1954–57 by an IBM team led by John W. Backus. It is still widely used for numerical work, with the latest international standard released in 2004. A Computer Languages History graphic shows a timeline from FORTRAN in 1954.

Shortly after, Lisp was introduced. Lisp was based on lambda calculus, and is far more regular in its syntax than most non-Lisp derived languages.

Dennis Ritchie developed the C programming language, initially for DEC PDP-11 in 1970.

During the 1970s, Xerox PARC developed Smalltalk, an object oriented language.

Based on the development of Smalltalk and other object oriented languages, Bjarne Stroustrup developed a programming language based on the syntax of C, called C++ in 1985.

Sun Microsystems released Java in 1995 which became very popular as an introductory programming language taught in universities. Microsoft presented the C# programming language in 2001 which is very similar to C++ and Java. There are many, many other languages

Object-oriented programming language

An object-oriented programming language (also called an OO language) is one that allows or encourages, to some degree, object-oriented programming methods.

Simula (1967) is generally accepted as the first language to have the primary features of an object-oriented language. It was created for making simulation programs, in which what came to be called objects were the most important information representation. Smalltalk (1972 to 1980) is arguably the canonical example, and the one with which much of the theory of object-oriented programming was developed.

OO languages can be grouped into several broad classes, determined by the extent to which they support all features and functionality of object-orientation and objects: classes, methods, polymorphism, inheritance, and reusability.

  • Languages called "pure" OO languages, because everything in them is treated consistently as an object, from primitives such as characters and punctuation, all the way up to whole classes, prototypes, blocks, modules, etc. They were designed specifically to facilitate, even enforce, OO methods. Examples: Smalltalk, Eiffel, Ruby.
  • Languages designed mainly for OO programming, but with some procedural elements. Examples: Java, Python.
  • Languages that are historically procedural languages, but have been extended with some OO features. Examples: C++, Fortran 2003, Perl.
  • Languages with most of the features of objects (classes, methods, inheritance, reusability), but in a distinctly original, even elegant, form. Examples: Oberon, and successor Oberon-2.
  • Languages with abstract data type support, but not all features of object-orientation, sometimes called object-based languages. Examples: Modula-2 (with excellent encapsulation and information hiding), Pliant.

Inheritance and polymorphism are usually used to reduce code bloat. Abstraction and encapsulation are used to increase code clarity, quite independent of the other two traits.


These links have been provided for informational purposes only. We have not evaluated them. does not have any relationship with them. Some of the links may be outdated as they have not been recently updated.

Essentials of Programming Languages: The goal of this book is to give students a deep, hands-on understanding of the essential concepts of programming languages, using Scheme as an executable metalanguage. Because Scheme is a wide-spectrum language, it enables us to write both at the very high level needed to produce a concise, comprehensible interpreter and at the much lower level needed to understand how that interpreter might be coded in assembly language, or transformed into a compiler.

Resources for Programming Language Research: A collection of information and resources for research in programming language theory, design, implementation, and related areas. Additions and corrections are welcome!

Visual Language Research Bibliography: This page is a structured bibliography of papers pertaining to visual language (VL) research. It also contains a brief list of links to other, related resources about visual language research.

Programming Languages: Topics within this page: Object-Oriented Languages, Documentation Generator Tools, Functional Languages, Free Implementations, Logic Programming Languages, Language Design Issues/Mistakes, Text Formatting Languages (TeX,HTML).

Dictionary of Programming Languages: Welcome to the Dictionary of Programming Languages, a compendium of computer coding methods assembled to provide information and aid your appreciation for computer science history. The dictionary currently has over 120 entries.

THE Language List: The largest and most comprehensive list on the net by the CUI group at University of Geneva and Bill Kinnersley, with good search capability, and links to FTP sites for compilers and tools. Some of the links on the list may be outdated.

The Random Programming Languages List: Have you ever programmed something just for fun? Written a program just for the challenge of writing it? Have you ever wondered whether there are languages that are more fun than C? Have you ever wondered what life would be like without our nifty tools? If so, this is the page for you. It might be the page for you even if you didn't answer yes, but it is definitely the page for you if you did.

Programming Languages: Every serious student of computing should be familiar with a range of different languages (for example, I used a mixture of C, C++, Delphi, JavaScript, Perl and Tcl/Tk to create this CD). This collection includes compilers and other resources for a wide variety of programming languages, including conventional procedural languages, object-oriented languages, functional languages, logic programming languages, scripting languages, and some just plain weird languages. You can choose which are which!

Review of Programming Languages: When Tunes is ready, this page will be made a query-driven database (with standard query forms) where languages/implementations couples will be classified upon the characteristics below. Meanwhile, please forgive the bad quality of this page, and think about enhancing it by your contributions.

Google Directory - Programming Languages: The content of the Google directory is based on the Open Directory and is enhanced using Google's own technology.

Suggestions for Further Reading

Attribution: Some information for this article has been adapted from wikipedia under Creative Commons Attribution-ShareAlike License.

Disclaimer: The external links provided herein are third-party links. We do not have any control over them and we cannot guarantee their accuracy or their authenticity. The links are being provided as a convenience and for informational purposes only; they do not constitute an endorsement or an approval by of any of the products, services or opinions of the corporation or organization or individual. bears no responsibility for the accuracy, legality or content of the external site or for that of subsequent links. Any transactions that you enter into with a vendor, merchant or other party listed in this site or linked from this site are solely between you and that vendor, merchant or other party. Contact the external site for answers to questions regarding its content.

Translate the Page