Jump to ratings and reviews
Rate this book

Semantics of Programming Languages: Structures and Techniques

Rate this book
Semantics of Programming Languages exposes the basic motivations and philosophy underlying the applications of semantic techniques in computer science. It introduces the mathematical theory of programming languages with an emphasis on higher-order functions and type systems. Designed as a text for upper-level and graduate-level students, the mathematically sophisticated approach will also prove useful to professionals who want an easily referenced description of fundamental results and calculi. Basic connections between computational behavior, denotational semantics, and the equational logic of functional programs are thoroughly and rigorously developed. Topics covered include models of types, operational semantics, category theory, domain theory, fixed point (denotational). semantics, full abstraction and other semantic correspondence criteria, types and evaluation, type checking and inference, parametric polymorphism, and subtyping. All topics are treated clearly and in depth, with complete proofs for the major results and numerous exercises.

441 pages, Hardcover

First published September 14, 1992

4 people are currently reading
46 people want to read

About the author

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
1 (10%)
4 stars
4 (40%)
3 stars
4 (40%)
2 stars
1 (10%)
1 star
0 (0%)
Displaying 1 - 2 of 2 reviews
Profile Image for Ushan.
801 reviews79 followers
December 28, 2010
Function (defined using Haskell syntax)

fac n = if n==0 then 1 else n * fac (n-1)

is really the limit of an infinite sequence of functions

fac0 n = if n==0 then 1 else ┴
fac1 n = if n==0 then 1 else n * fac0 (n-1)
fac2 n = if n==0 then 1 else n * fac1 (n-1)
...

In order to speak of a limit, you need to define a topology. In order to see how the limit in Haskell becomes the limit in the machine language Haskell is translated into, you need to define continuous functions. If you spend much of your life doing it, you will become a post-Doc Haskell programmer.
21 reviews4 followers
March 29, 2016
The lack of examples makes it hard to follow some concepts. A reader who already knows about category theory, lambda-calculus would be fit for reading the book. Also, there are some syntactical mistakes, which made it even harder to understand.
Displaying 1 - 2 of 2 reviews

Can't find what you're looking for?

Get help and learn more about the design.