Skip to main content
main-content
Top

About this book

This book provides an introduction to the essential concepts in programming languages, using operational semantics techniques. It presents alternative programming language paradigms and gives an in-depth analysis of the most significant constructs in modern imperative, functional and logic programming languages. The book is designed to accompany lectures on programming language design for undergraduate students. Each chapter includes exercises which provide the opportunity to apply the concepts and techniques presented.

Table of Contents

Preliminaries

Frontmatter

Chapter 1. Introduction

This book is concerned with programming languages. Programming languages are tools for writing software; they enable the user to communicate with the computer.
Maribel Fernández

Chapter 2. Mathematical Background

We start this chapter with a summary of basic concepts and notations for sets and first-order logic formulas, which will be used in the rest of the book.
Maribel Fernández

Imperative Languages

Frontmatter

Chapter 3. General Features of Imperative Languages

The first programming languages were designed to follow closely the physical design of a computer. The languages that evolved from them, usually called imperative programming languages, are still influenced by the architecture of the computer: they mirror the features of the Von Neumann machine, abstracting from superfluous details and retaining the essential aspects of this architecture.
Maribel Fernández

Chapter 4. Operational Semantics of Imperative Languages

The discussion of programming language features in the previous chapter was informal. However, informal semantic descriptions may be imprecise, as the following example shows.
Maribel Fernández

Functional Languages

Frontmatter

Chapter 5. General Features of Functional Languages

The imperative programming languages we discussed in the previous part all share a common design idea: to make easier and more efficient use of Von Neumann computers, basically by providing
Maribel Fernández

Chapter 6. Operational Semantics of Functional Languages

In this chapter, we will give a precise, formal description of the main features of functional programming languages. For this we will use the same tools that we applied in the study of the operational semantics of imperative languages in Chap. 4: transition systems.
Maribel Fernández

Logic Languages

Frontmatter

Chapter 7. General Features of Logic Programming Languages

We have already discussed two approaches to programming: the imperative and the functional programming paradigms. If we had to single out one major difference between functional and imperative programs, we could perhaps say that functional programs are concerned with what needs to be computed whereas imperative programs specify how to compute it.
Maribel Fernández

Chapter 8. Operational Semantics of Prolog

In this chapter, we describe the operational interpretation of Prolog programs. More precisely, we describe how a Prolog interpreter solves goals in the context of a given program.
Maribel Fernández

Chapter 9. Answers to Selected Exercises

This chapter contains brief answers to a selection of exercises from previous chapters.
Maribel Fernández
Additional information