Skip to main content

Introduction to Programming Languages

  • Chapter
  • First Online:
World of Computing
  • 1263 Accesses

Abstract

This chapter presents a short history of programming languages, starting with machine languages, to assembly languages, to early high-level procedural languages such as Fortran and COBOL, to later high-level languages such as Pascal and C and to object-oriented languages such as C++ and Java. Functional programming languages and logic programming languages are discussed, and there is a short discussion on the important area of syntax and semantics.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 49.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    This is true of code generated by native compilers. Other compilers may compile the source code to the object code of a Virtual Machine, and the translator module of the Virtual Machine translates the bytecode of the Virtual Machine to the corresponding native machine instruction. That is, the Virtual Machine translates each generalised machine instruction into a specific machine instruction (or instructions) that may then be executed by the processor on the target computer. A computer language such as C requires a separate compiler for each computer platform (i.e. computer and operating system). However, a language such as Java comes with a virtual machine for each platform. This allows the source code statements in these programs to be compiled just once, and they may then be executed on any platform.

  2. 2.

    The study of programming language semantics commenced in the 1960s. It includes work done by Hoare on Axiomatic Semantics; work done by Gordon Plotkin on Operational Semantics; and work done by Scott and Strachey on Denotational Semantics.

  3. 3.

    Norwegian Research originally developed object-oriented programming with their work on Simula 67 in the late 1960s.

  4. 4.

    Mary Hopper was a programmer on the Mark 1, Mark II and Mark III and UNIVAC 1 computers. She was the technical advisor to the CODASYL committee.

  5. 5.

    The semi-colon in Pascal is used as a statement separator, whereas it is used as a statement terminator in C.

  6. 6.

    It is very easy to write incomprehensible code in C and even a 1 line of C code can be incomprehensible. The maintenance of poorly written code is a challenge unless programmers follow good programming practice. This discipline needs to be enforced by formal reviews of the source code.

  7. 7.

    Information hiding is a key contribution by Parnas to computer science. He has also done work on mathematical approaches to software quality using tabular expressions (O’Regan 2017b).

  8. 8.

    The inventors of Simula 67 were Ole-Johan Dahl and Kristen Nygaard.

  9. 9.

    Dahl and Nygaard were working on ship simulations and were attempting to address the huge number of combinations of different attributes from different types of ships. Their insight was to group the different types of ships into different classes of objects, with each class of objects being responsible for defining its own data and behaviour

  10. 10.

    Higher order functions are functions that take functions as arguments or return a function as a result. They are known as operators (or functionals) in mathematics.

  11. 11.

    Monads are used in functional programming to express input and output operations without introducing side effects. The Haskell functional programming language makes use of uses this feature.

  12. 12.

    This is the most common algorithm used to perform type inference, which is concerned with determining the type of the value derived from the eventual evaluation of an expression.

  13. 13.

    Lisp is a multi-paradigm language rather than a functional programming language.

  14. 14.

    Iverson received the Turing Award in 1979 for his contributions to programming language and mathematical notation. The title of his Turing award paper was “Notation as a tool of thought”.

  15. 15.

    This essentially expresses that the names of bound variables are unimportant.

  16. 16.

    This essentially expresses the idea of function application.

  17. 17.

    This essentially expresses the idea that two functions are equal if and only if they give the same results for all arguments.

  18. 18.

    First-order logic allows quantification over objects but not functions or relations. Higher order logics allow quantification of functions and relations.

  19. 19.

    For example, the constructive proof of the statement ∃x such that x = √4 (i.e. there is an x such that x is the square root of 4) provides more than a proof of existence, and an actual object satisfying the existence criteria is explicitly produced (i.e. that x = 2 or x − −2).

  20. 20.

    John McCarthy received the Turing Award in 1971 for his contributions to artificial intelligence. He also developed the programming language LISP.

  21. 21.

    Chomsky made important contributions to linguistics and the theory of grammars. He is more widely known today as a critic of United States foreign policy.

  22. 22.

    Backus–Naur form is named after John Backus and Peter Naur. It was created as part of the design of Algol 60, and used to define the syntax rules of the language.

  23. 23.

    Of course, what the programmer has written may not be what the programmer had intended.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Gerard O’Regan .

Rights and permissions

Reprints and permissions

Copyright information

© 2018 Springer International Publishing AG, part of Springer Nature

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

O’Regan, G. (2018). Introduction to Programming Languages. In: World of Computing. Springer, Cham. https://doi.org/10.1007/978-3-319-75844-2_8

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-75844-2_8

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-75843-5

  • Online ISBN: 978-3-319-75844-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics