The book contains a completely new presentation of classical results in the field of Lambda Calculus, together with new results. The text is unique in that it presents a new calculus (Parametric Lambda Calculus) which can be instantiated to obtain already known lambda-calculi. Some properties, which in the literature have been proved separately for different calculi, can be proved once for the Parametric one. The lambda calculi are presented from a Computer Science point of view, with a particular emphasis on their semantics, both operational and denotational.
The parametric lambda calculus is a metamodel for reasoning about various kinds of computations. Its syntactic definition is based on the notion of "sets of input values", and different lambda calculi can be obtained from it by instantiating such sets in suitable ways. The parametric lambda calculus is used as a tool for presenting in a uniform way basic notions of programming languages, and for studying with a uniform approach some lambda calculi modeling different kinds of computations, such as call-by-name, both in its lazy and non-lazy versions, and call-by-value. The parametric presentation allows us both to prove in one step all the fundamental properties of different calculi, and to compare them with each other. The book includes some classical results in the field of lambda calculi, but completely rephrased using the parametric approach, together with some new results. The lambda calculi are presented from a computer science viewpoint, with particular emphasis on their semantics, both operational and denotational. This book is dedicated to researchers, and can be used as a textbook for masters or Ph.D. courses on the foundations of computer science.
This handbook with exercises reveals in formalisms, hitherto mainly used for hardware and software design and verification, unexpected mathematical beauty. The lambda calculus forms a prototype universal programming language, which in its untyped version is related to Lisp, and was treated in the first author's classic The Lambda Calculus (1984). The formalism has since been extended with types and used in functional programming (Haskell, Clean) and proof assistants (Coq, Isabelle, HOL), used in designing and verifying IT products and mathematical proofs. In this book, the authors focus on three classes of typing for lambda terms: simple types, recursive types and intersection types. It is in these three formalisms of terms and types that the unexpected mathematical beauty is revealed. The treatment is authoritative and comprehensive, complemented by an exhaustive bibliography, and numerous exercises are provided to deepen the readers' understanding and increase their confidence using types.
Combinatory logic and lambda-calculus, originally devised in the 1920's, have since developed into linguistic tools, especially useful in programming languages. The authors' previous book served as the main reference for introductory courses on lambda-calculus for over 20 years: this long-awaited new version is thoroughly revised and offers a fully up-to-date account of the subject, with the same authoritative exposition. The grammar and basic properties of both combinatory logic and lambda-calculus are discussed, followed by an introduction to type-theory. Typed and untyped versions of the systems, and their differences, are covered. Lambda-calculus models, which lie behind much of the semantics of programming languages, are also explained in depth. The treatment is as non-technical as possible, with the main ideas emphasized and illustrated by examples. Many exercises are included, from routine to advanced, with solutions to most at the end of the book.
This book constitutes the refereed proceedings of the 7th International Conference on Typed Lambda Calculi and Applications, TLCA 2005, held in Nara, Japan in April 2005. The 27 revised full papers presented together with 2 invited papers were carefully reviewed and selected from 61 submissions. The volume reports research results on all current aspects of typed lambda calculi, ranging from theoretical and methodological issues to applications in various contexts.
This book constitutes the refereed proceedings of the Second International Conference on Computability in Europe, CiE 2006, held in Swansea, UK, June/July 2006. The book presents 31 revised full papers together with 30 invited papers, including papers corresponding to 8 plenary talks and 6 special sessions on proofs and computation, computable analysis, challenges in complexity, foundations of programming, mathematical models of computers and hypercomputers, and Gödel centenary: Gödel's legacy for computability.
This volume contains the invited and the contributed papers selected for p- th sentation at SOFSEM 2008, the 34 Conference on Current Trends in Theory and Practice of Computer Science, which was held January 19-25, 2008, in the Atrium Hotel, Novy þ Smokovec, High Tatras in Slovakia. SOFSEM (originally SOFtware SEMinar), as an annual international c- ference devoted to the theory and practice of computer science, aims to foster cooperationamongprofessionalsfromacademiaandindustryworkinginallareas in this?eld. Developing over the years from a local event to a fully international and well-established conference, contemporary SOFSEM continues to maintain the best of its original Winter School aspects, such as a high number of invited talks and in-depth coverage of novel research results in selected areas within computer science. SOFSEM 2008 was organized around the following tracks: - Foundations of Computer Science (Chair: Juhani Karhum· aki) - Computing by Nature (Chair: Alberto Bertoni) - Networks, Security, and Cryptography (Chair: Bart Preneel) - Web Technologies (Chair: Pavol Nþ avrat) The SOFSEM 2008 Program Committee consisted of 75 international - perts, representing active areas of the SOFSEM 2008 tracks with outstanding expertise and an eye for current developments, evaluating the submissions with the help of 169 additional reviewers. An integral part of SOFSEM 2008 was the traditional Student Research - rum (chaired by Ma þria Bielikovþ a), organized with the aim of presenting student projectsinthetheoryandpracticeofcomputerscienceandtogivestudentsfe- back on both originality of their scienti?c results and on their work in progress.
Over time, basic research tends to lead to specialization – increasingly narrow t- ics are addressed by increasingly focussed communities, publishing in increasingly con ned workshops and conferences, discussing increasingly incremental contri- tions. Already the community of programming languages is split into various s- communities addressing different aspects and paradigms (functional, imperative, relational, and object-oriented). Only a few people manage to maintain a broader view, and even fewer step back in order to gain an understanding about the basic principles, their interrelation, and their impact in a larger context. The pattern calculus is the result of a profound re-examination of a 50-year - velopment. It attempts to provide a unifying approach, bridging the gaps between different programming styles and paradigms according to a new slogan – compu- tion is pattern matching. It is the contribution of this book to systematically and elegantly present and evaluate the power of pattern matching as the guiding paradigm of programming. Patterns are dynamically generated, discovered, passed, applied, and automatically adapted, based on pattern matching and rewriting technology, which allows one to elegantly relate things as disparate as functions and data structures. Of course, pattern matching is not new. It underlies term rewriting – it is, for example, inc- porated in, typically functional, programming languages, like Standard ML – but it has never been pursued as the basis of a unifying framework for programming.