## Introduction to the Theory of Programming LanguagesThe design and implementation of programming languages, from Fortran and Cobol to Caml and Java, has been one of the key developments in the management of ever more complex computerized systems. Introduction to the Theory of Programming Languages gives the reader the means to discover the tools to think, design, and implement these languages. It proposes a unified vision of the different formalisms that permit definition of a programming language: small steps operational semantics, big steps operational semantics, and denotational semantics, emphasising that all seek to define a relation between three objects: a program, an input value, and an output value. These formalisms are illustrated by presenting the semantics of some typical features of programming languages: functions, recursivity, assignments, records, objects, ... showing that the study of programming languages does not consist of studying languages one after another, but is organized around the features that are present in these various languages. The study of these features leads to the development of evaluators, interpreters and compilers, and also type inference algorithms, for small languages. |

### What people are saying - Write a review

We haven't found any reviews in the usual places.

### Contents

1 | |

The Language PCF | 15 |

From Evaluation to Interpretation | 32 |

Compilation | 43 |

PCF with Types | 51 |

Type Inference | 63 |

References and Assignment | 73 |

Records and Objects | 81 |

Epilogue | 89 |

92 | |

93 | |

### Other editions - View all

Introduction to the Theory of Programming Languages Gilles Dowek,Jean-Jacques Lévy No preview available - 2011 |

Introduction to the Theory of Programming Languages Gilles Dowek,Jean-Jacques Lévy No preview available - 2010 |

### Common terms and phrases

abstract machine algorithm apply arguments arity associated big-step operational semantics big-step semantics bind any variable Bruijn call by name call by value Caml compiler construct denotational semantics element environment equations evaluate example Exercise extend PCF extension of PCF fix f fun fix x t fix x:nat fixed point theorem fixfun f x form fun free variables fun x:nat fun yp function f inductive definition instructions interpret the term irreducible closed terms irreducible term least fixed point machine language natural number notion numeric constant object ordering relation pair PCF term Popenv programming languages Pushenv real numbers redex reduces references result semantics of PCF sequence small-step operational semantics stack strategy structural induction subset substitution term fix term fun x term let term of type Theory of Programming thunk Topics in Computer ttue tuple tuue type inference type nat Undergraduate Topics weakly complete