Skip to content

1. Introduction to Programming Languages

1 What are programming languages

Imperative Languages

Language Creation Date Developer Purpose Notes
Fortran 1950s John Backus (IBM) Scientific computing Updated in 1966, 1977, 1990
Cobol 1950s Grace Hopper (Ministry of Defense) Business computing Designed as short-term solution, but still in use today
Pl/1 1960s IBM Scientific computing Stayed with IBM computers; has all features of Cobol and Algol
Algol 1960s International Group Scientific computing
Pascal 1970s Niklaus Wirth (ETH Zurich) Scientific computing
C 1970s Dennis Ritchie (Bell Labs) System programming Influenced by Algol, the famous one is ANSI C.
C++ 1980s Bjarne Stroustrup (Bell Labs) System programming Object-oriented version of C
Ada 1980s US Department of Defense Military systems
Ada 95 1990s US Department of Defense Military systems

Data oriented languages

Language Creation Date Developer Purpose Notes
Lisp 1950s John McCarthy (MIT) Artificial intelligence famous DS: Linked List.
APL 1960s Kenneth Iverson (IBM) Scientific computing Famous Ds: Vector and Matrix. Designed for mathematical notation.
Snobol 1960s Bell Labs String manipulation Famous DS: String.
Icon 1970s Ralph Griswold (University of AZ) String manipulation Famous DS: String.
Setl 1970s Jacob T. Schwartz (NYU) Set manipulation Famous DS: Set.

Object oriented languages

Language Creation Date Developer Purpose Notes
Simula 1960s Kristen Nygaard (Norway) Simulation The first OOP language.
Smalltalk 1970s Alan Kay (Xerox PARC) Education
Eiffel 1980s Bertrand Meyer (ETH Zurich) Software engineering
Java 1990s Sun Microsystems Internet programming

2 Elements of Programming Languages

  • Syntax: The form of the program.
  • Semantics: The meaning of the program.
  • Data: The data manipulated by the program using language native data types and data structures.
  • Type checking: The process of ensuring that the program is manipulating data in a manner consistent with the data type.
  • Control structures: If, while, for, etc.
  • Subprograms: Functions, procedures, methods, etc.
  • Modules: A collection of subprograms with a common purpose.

3 Von Neumann, Turing, and Church

  • Von Neuman:
    • All programs and instructions are stored in memory to enable general-purpose computing.
  • Alan Turing:
    • Student of Von Neuman.
    • Turning Complete: A system that can compute anything that can be computed using a Turing Machine.
    • Computability relies on the ability to change the state of the machine (assignment, load to memory, compute, save the change back).
    • A task is computable if it is possible to specify a sequence of instructions which will result in the completion of the task when they are carried out by some machine.
  • Alonzo Church:
    • Student of Von Neuman.
    • Invented Lambda Calculus, which is the basis of functional programming languages.

References


  1. Ben-Ari, M. (2006). Understanding programming languages. Weizman Institute of Science. Chapter 1: What are programming languages. 

  2. Ben-Ari, M. (2006). Understanding programming languages. Weizman Institute of Science. Chapter 2: Elements of Programming Languages. 

  3. UoPeople. (2023). CS4402 Video Lecture 2: von Neumann, Turing, and Church. https://my.uopeople.edu/mod/kalvidres/view.php?id=370741