by Krysia Broda et al
Publisher: Prentice Hall Trade 1994
Number of pages: 311
The book is divided into two complementary parts, the first on Programming and the second on Logic. Though they are both about logical reasoning, the first half concerns the ideas about programs that the reasoning is intended to capture, while the second half is more about the formal machinery. The distinction is somewhat analogous to that often seen in books about programming languages a first part is an introduction to programming using the language, and a second part is a formal report on it. To read the book from scratch, one would most likely read the two parts in parallel, and this is in fact how the material was used for the computer science course at Imperial College. However, the division into two reasonably disjoint parts means that people who already have some background in logic can see the programming story told without interruption.
Home page url
Download or read it online for free here:
by Shriram Krishnamurthi - Brown University
Many people would regard this as being two books in one. One book is an introduction to programming, teaching you basic concepts of organizing data and the programs that operate over them. The other book is an introduction to programming languages.
by Keijo Ruohonen - Tampere University of Technology
In these notes the classical Chomskian formal language theory is fairly fully dealt with, omitting however much of automata constructs and computability issues. Surveys of Lindenmayer system theory and the mathematical theory of codes are given.
by Monti Ben-Ari - John Wiley & Sons
The book explains what alternatives are available to the language designer, how language constructs should be used for safety and readability, how language constructs are implemented, the role of language in expressing and enforcing abstractions.
by David Schmidt - Kansas State University
Denotational semantics is a methodology for giving mathematical meaning to programming languages and systems. This book was written to make denotational semantics accessible to a wider audience and to update existing texts in the area.