We use cookies to distinguish you from other users and to provide you with a better experience on our websites. Close this message to accept cookies or find out how to manage your cookie settings.
To save content items to your account,
please confirm that you agree to abide by our usage policies.
If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account.
Find out more about saving content to .
To save content items to your Kindle, first ensure [email protected]
is added to your Approved Personal Document E-mail List under your Personal Document Settings
on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part
of your Kindle email address below.
Find out more about saving to your Kindle.
Note you can select to save to either the @free.kindle.com or @kindle.com variations.
‘@free.kindle.com’ emails are free but can only be saved to your device when it is connected to wi-fi.
‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.
This new book on mathematical logic by Jeremy Avigad gives a thorough introduction to the fundamental results and methods of the subject from the syntactic point of view, emphasizing logic as the study of formal languages and systems and their proper use. Topics include proof theory, model theory, the theory of computability, and axiomatic foundations, with special emphasis given to aspects of mathematical logic that are fundamental to computer science, including deductive systems, constructive logic, the simply typed lambda calculus, and type-theoretic foundations.
Clear and engaging, with plentiful examples and exercises, it is an excellent introduction to the subject for graduate students and advanced undergraduates who are interested in logic in mathematics, computer science, and philosophy, and an invaluable reference for any practicing logician’s bookshelf.
This new book on mathematical logic by Jeremy Avigad gives a thorough introduction to the fundamental results and methods of the subject from the syntactic point of view, emphasizing logic as the study of formal languages and systems and their proper use. Topics include proof theory, model theory, the theory of computability, and axiomatic foundations, with special emphasis given to aspects of mathematical logic that are fundamental to computer science, including deductive systems, constructive logic, the simply typed lambda calculus, and type-theoretic foundations.
Clear and engaging, with plentiful examples and exercises, it is an excellent introduction to the subject for graduate students and advanced undergraduates who are interested in logic in mathematics, computer science, and philosophy, and an invaluable reference for any practicing logician’s bookshelf.
This new book on mathematical logic by Jeremy Avigad gives a thorough introduction to the fundamental results and methods of the subject from the syntactic point of view, emphasizing logic as the study of formal languages and systems and their proper use. Topics include proof theory, model theory, the theory of computability, and axiomatic foundations, with special emphasis given to aspects of mathematical logic that are fundamental to computer science, including deductive systems, constructive logic, the simply typed lambda calculus, and type-theoretic foundations.
Clear and engaging, with plentiful examples and exercises, it is an excellent introduction to the subject for graduate students and advanced undergraduates who are interested in logic in mathematics, computer science, and philosophy, and an invaluable reference for any practicing logician’s bookshelf.
This new book on mathematical logic by Jeremy Avigad gives a thorough introduction to the fundamental results and methods of the subject from the syntactic point of view, emphasizing logic as the study of formal languages and systems and their proper use. Topics include proof theory, model theory, the theory of computability, and axiomatic foundations, with special emphasis given to aspects of mathematical logic that are fundamental to computer science, including deductive systems, constructive logic, the simply typed lambda calculus, and type-theoretic foundations.
Clear and engaging, with plentiful examples and exercises, it is an excellent introduction to the subject for graduate students and advanced undergraduates who are interested in logic in mathematics, computer science, and philosophy, and an invaluable reference for any practicing logician’s bookshelf.
This book proves some important new theorems in the theory of canonical inner models for large cardinal hypotheses, a topic of central importance in modern set theory. In particular, the author 'completes' the theory of Fine Structure and Iteration Trees (FSIT) by proving a comparison theorem for mouse pairs parallel to the FSIT comparison theorem for pure extender mice, and then using the underlying comparison process to develop a fine structure theory for strategy mice. Great effort has been taken to make the book accessible to non-experts so that it may also serve as an introduction to the higher reaches of inner model theory. It contains a good deal of background material, some of it unpublished folklore, and includes many references to the literature to guide further reading. An introductory essay serves to place the new results in their broader context. This is a landmark work in inner model theory that should be in every set theorist's library.
Scheme combines power and simplicity. Scheme is derived from Lisp, which John McCarthy developed—inspired in part by Alonzo Church’s work on the λ-calculus—while exploring ideas about computability, recursive functions, and models of computation. McCarthy intended Lisp for computing with symbolic data he called S-expressions. S-expressions are based on lists, and the name “Lisp” was formed from “list processing.” Lisp programs can be concise and natural programs, and they often resemble mathematical definitions of the functions they compute. Lisp has been used heavily in artificial intelligence for over fifty years, and in 1971, McCarthy received ACM’s Turing Award for contributions to artificial intelligence.
An abstract data type is not the only way to hide the representation of data: a representation can also be hidden in an object. An object is a bundle of operations—often called methods—that may share hidden state. An object interacts with other objects by sending messages; each message activates a method on the receiving object. An object’s methods can see the representation of the object’s own state, but not the representations of the states of other objects.
Chapters 1 to 7 don’t give us many ways to organize data. S-expressions are great, but you might have noticed that they serve as a kind of high-level assembly language on top of which you have to craft your own data structures. For programming at scale, that’s not good enough—programmers need to define proper data structures whose shapes and contents are known.
Congratulations! You now have some solid skills using functions, types, modules, objects, and more. You also have a cognitive framework that you can use to learn new programming languages, and if you’re like my students, you’ll be pleasantly surprised at how broadly your skills apply. Now you get the dessert menu. As your server, I recommend some tasty treats: languages that are superlative, unusual, or popular. Many are widely recognized as interesting or important, and some are just to my personal taste. Together, they offer a variety of jumping-off points, ranging from younger, less proven ideas to fashionable ideas drawn from the headlines.
In your prior programming experience, you may have used a procedural language such as Ada 83, Algol 60, C, Cobol, Fortran, Modula-2, or Pascal. Or you may have used a procedural language extended with object-oriented features, such as Ada 95, C#, C++, Eiffel, Java, Modula-3, Objective C, or Python—although these hybrid languages support an object-oriented style, they are often used procedurally.