Author: Augusto Sampaio
Publisher: World Scientific
ISBN: 9789810223915
Category : Computers
Languages : en
Pages : 216
Book Description
This book investigates the design of compilers for procedural languages, based on the algebraic laws which these languages satisfy. The particular strategy adopted is to reduce an arbitrary source program to a general normal form, capable of representing an arbitrary target machine. This is achieved by a series of normal form reduction theorems which are proved algebraically from the more basic laws. The normal form and the related reduction theorems can then be instantiated to design compilers for distinct target machines. This constitutes the main novelty of the author's approach to compilation, together with the fact that the entire process is formalised within a single and uniform semantic framework of a procedural language and its algberaic laws. Furthermore, by mechanising the approach using the OBJ3 term rewriting system it is shown that a prototype compiler is developed as a byproduct of its own proof of correctness.
An Algebraic Approach to Compiler Design
Algebraic Approaches to Program Semantics
Author: Ernest G. Manes
Publisher: Springer Science & Business Media
ISBN: 1461249627
Category : Computers
Languages : en
Pages : 358
Book Description
In the 1930s, mathematical logicians studied the notion of "effective comput ability" using such notions as recursive functions, A-calculus, and Turing machines. The 1940s saw the construction of the first electronic computers, and the next 20 years saw the evolution of higher-level programming languages in which programs could be written in a convenient fashion independent (thanks to compilers and interpreters) of the architecture of any specific machine. The development of such languages led in turn to the general analysis of questions of syntax, structuring strings of symbols which could count as legal programs, and semantics, determining the "meaning" of a program, for example, as the function it computes in transforming input data to output results. An important approach to semantics, pioneered by Floyd, Hoare, and Wirth, is called assertion semantics: given a specification of which assertions (preconditions) on input data should guarantee that the results satisfy desired assertions (postconditions) on output data, one seeks a logical proof that the program satisfies its specification. An alternative approach, pioneered by Scott and Strachey, is called denotational semantics: it offers algebraic techniques for characterizing the denotation of (i. e. , the function computed by) a program-the properties of the program can then be checked by direct comparison of the denotation with the specification. This book is an introduction to denotational semantics. More specifically, we introduce the reader to two approaches to denotational semantics: the order semantics of Scott and Strachey and our own partially additive semantics.
Publisher: Springer Science & Business Media
ISBN: 1461249627
Category : Computers
Languages : en
Pages : 358
Book Description
In the 1930s, mathematical logicians studied the notion of "effective comput ability" using such notions as recursive functions, A-calculus, and Turing machines. The 1940s saw the construction of the first electronic computers, and the next 20 years saw the evolution of higher-level programming languages in which programs could be written in a convenient fashion independent (thanks to compilers and interpreters) of the architecture of any specific machine. The development of such languages led in turn to the general analysis of questions of syntax, structuring strings of symbols which could count as legal programs, and semantics, determining the "meaning" of a program, for example, as the function it computes in transforming input data to output results. An important approach to semantics, pioneered by Floyd, Hoare, and Wirth, is called assertion semantics: given a specification of which assertions (preconditions) on input data should guarantee that the results satisfy desired assertions (postconditions) on output data, one seeks a logical proof that the program satisfies its specification. An alternative approach, pioneered by Scott and Strachey, is called denotational semantics: it offers algebraic techniques for characterizing the denotation of (i. e. , the function computed by) a program-the properties of the program can then be checked by direct comparison of the denotation with the specification. This book is an introduction to denotational semantics. More specifically, we introduce the reader to two approaches to denotational semantics: the order semantics of Scott and Strachey and our own partially additive semantics.
Algebraic Methods in Semantics
Author: M. Nivat
Publisher: CUP Archive
ISBN: 9780521267939
Category : Computers
Languages : en
Pages : 664
Book Description
This book, which contains contributions from leading researchers in France, USA and Great Britain, gives detailed accounts of a variety of methods for describing the semantics of programming languages, i.e. for attaching to programs mathematical objects that encompass their meaning. Consideration is given to both denotational semantics, where the meaning of a program is regarded as a function from inputs to outputs, and operational semantics, where the meaning includes the sequence of states or terms generated internally during the computation. The major problems considered include equivalence relations between operational and denotational semantics, rules for obtaining optimal computations (especially for nondeterministic programs), equivalence of programs, meaning-preserving transformations of programs and program proving by assertions. Such problems are discussed for a variety of programming languages and formalisms, and a wealth of mathematical tools is described.
Publisher: CUP Archive
ISBN: 9780521267939
Category : Computers
Languages : en
Pages : 664
Book Description
This book, which contains contributions from leading researchers in France, USA and Great Britain, gives detailed accounts of a variety of methods for describing the semantics of programming languages, i.e. for attaching to programs mathematical objects that encompass their meaning. Consideration is given to both denotational semantics, where the meaning of a program is regarded as a function from inputs to outputs, and operational semantics, where the meaning includes the sequence of states or terms generated internally during the computation. The major problems considered include equivalence relations between operational and denotational semantics, rules for obtaining optimal computations (especially for nondeterministic programs), equivalence of programs, meaning-preserving transformations of programs and program proving by assertions. Such problems are discussed for a variety of programming languages and formalisms, and a wealth of mathematical tools is described.
Foundations of Algebraic Specification and Formal Software Development
Author: Donald Sannella
Publisher: Springer Science & Business Media
ISBN: 3642173365
Category : Computers
Languages : en
Pages : 594
Book Description
This book provides foundations for software specification and formal software development from the perspective of work on algebraic specification, concentrating on developing basic concepts and studying their fundamental properties. These foundations are built on a solid mathematical basis, using elements of universal algebra, category theory and logic, and this mathematical toolbox provides a convenient language for precisely formulating the concepts involved in software specification and development. Once formally defined, these notions become subject to mathematical investigation, and this interplay between mathematics and software engineering yields results that are mathematically interesting, conceptually revealing, and practically useful. The theory presented by the authors has its origins in work on algebraic specifications that started in the early 1970s, and their treatment is comprehensive. This book contains five kinds of material: the requisite mathematical foundations; traditional algebraic specifications; elements of the theory of institutions; formal specification and development; and proof methods. While the book is self-contained, mathematical maturity and familiarity with the problems of software engineering is required; and in the examples that directly relate to programming, the authors assume acquaintance with the concepts of functional programming. The book will be of value to researchers and advanced graduate students in the areas of programming and theoretical computer science.
Publisher: Springer Science & Business Media
ISBN: 3642173365
Category : Computers
Languages : en
Pages : 594
Book Description
This book provides foundations for software specification and formal software development from the perspective of work on algebraic specification, concentrating on developing basic concepts and studying their fundamental properties. These foundations are built on a solid mathematical basis, using elements of universal algebra, category theory and logic, and this mathematical toolbox provides a convenient language for precisely formulating the concepts involved in software specification and development. Once formally defined, these notions become subject to mathematical investigation, and this interplay between mathematics and software engineering yields results that are mathematically interesting, conceptually revealing, and practically useful. The theory presented by the authors has its origins in work on algebraic specifications that started in the early 1970s, and their treatment is comprehensive. This book contains five kinds of material: the requisite mathematical foundations; traditional algebraic specifications; elements of the theory of institutions; formal specification and development; and proof methods. While the book is self-contained, mathematical maturity and familiarity with the problems of software engineering is required; and in the examples that directly relate to programming, the authors assume acquaintance with the concepts of functional programming. The book will be of value to researchers and advanced graduate students in the areas of programming and theoretical computer science.
Proof Theory and Algebra in Logic
Author: Hiroakira Ono
Publisher: Springer
ISBN: 9811379971
Category : Philosophy
Languages : en
Pages : 164
Book Description
This book offers a concise introduction to both proof-theory and algebraic methods, the core of the syntactic and semantic study of logic respectively. The importance of combining these two has been increasingly recognized in recent years. It highlights the contrasts between the deep, concrete results using the former and the general, abstract ones using the latter. Covering modal logics, many-valued logics, superintuitionistic and substructural logics, together with their algebraic semantics, the book also provides an introduction to nonclassical logic for undergraduate or graduate level courses.The book is divided into two parts: Proof Theory in Part I and Algebra in Logic in Part II. Part I presents sequent systems and discusses cut elimination and its applications in detail. It also provides simplified proof of cut elimination, making the topic more accessible. The last chapter of Part I is devoted to clarification of the classes of logics that are discussed in the second part. Part II focuses on algebraic semantics for these logics. At the same time, it is a gentle introduction to the basics of algebraic logic and universal algebra with many examples of their applications in logic. Part II can be read independently of Part I, with only minimum knowledge required, and as such is suitable as a textbook for short introductory courses on algebra in logic.
Publisher: Springer
ISBN: 9811379971
Category : Philosophy
Languages : en
Pages : 164
Book Description
This book offers a concise introduction to both proof-theory and algebraic methods, the core of the syntactic and semantic study of logic respectively. The importance of combining these two has been increasingly recognized in recent years. It highlights the contrasts between the deep, concrete results using the former and the general, abstract ones using the latter. Covering modal logics, many-valued logics, superintuitionistic and substructural logics, together with their algebraic semantics, the book also provides an introduction to nonclassical logic for undergraduate or graduate level courses.The book is divided into two parts: Proof Theory in Part I and Algebra in Logic in Part II. Part I presents sequent systems and discusses cut elimination and its applications in detail. It also provides simplified proof of cut elimination, making the topic more accessible. The last chapter of Part I is devoted to clarification of the classes of logics that are discussed in the second part. Part II focuses on algebraic semantics for these logics. At the same time, it is a gentle introduction to the basics of algebraic logic and universal algebra with many examples of their applications in logic. Part II can be read independently of Part I, with only minimum knowledge required, and as such is suitable as a textbook for short introductory courses on algebra in logic.
Symbolic Logic and Mechanical Theorem Proving
Author: Chin-Liang Chang
Publisher: Academic Press
ISBN: 0080917283
Category : Mathematics
Languages : en
Pages : 349
Book Description
This book contains an introduction to symbolic logic and a thorough discussion of mechanical theorem proving and its applications. The book consists of three major parts. Chapters 2 and 3 constitute an introduction to symbolic logic. Chapters 4-9 introduce several techniques in mechanical theorem proving, and Chapters 10 an 11 show how theorem proving can be applied to various areas such as question answering, problem solving, program analysis, and program synthesis.
Publisher: Academic Press
ISBN: 0080917283
Category : Mathematics
Languages : en
Pages : 349
Book Description
This book contains an introduction to symbolic logic and a thorough discussion of mechanical theorem proving and its applications. The book consists of three major parts. Chapters 2 and 3 constitute an introduction to symbolic logic. Chapters 4-9 introduce several techniques in mechanical theorem proving, and Chapters 10 an 11 show how theorem proving can be applied to various areas such as question answering, problem solving, program analysis, and program synthesis.
Programming Concepts and Methods PROCOMET ’98
Author: David Gries
Publisher: Springer
ISBN: 0387353585
Category : Computers
Languages : en
Pages : 488
Book Description
This book constitutes the Proceedings of the IFIP Working Conference PRO COMET'98, held 8-12 June 1998 at Shelter Island, N.Y. The conference is organized by the t'wo IFIP TC 2 Working Groups 2.2 Formal Description of Programming Concepts and 2.3 Programming Methodology. WG2.2 and WG2.3 have been organizing these conferences every four years for over twenty years. The aim of such Working Conferences organized by IFIP Working Groups is to bring together leading scientists in a given area of computer science. Participation is by invitation only. As a result, these conferences distinguish themselves from other meetings by extensive and competent technical discus sions. PROCOMET stands for Programming Concepts and Methods, indicating that the area of discussion for the conference is the formal description of pro gramming concepts and methods, their tool support, and their applications. At PROCOMET working conferences, papers are presented from this whole area, reflecting the interest of the individuals in WG2.2 and WG2.3.
Publisher: Springer
ISBN: 0387353585
Category : Computers
Languages : en
Pages : 488
Book Description
This book constitutes the Proceedings of the IFIP Working Conference PRO COMET'98, held 8-12 June 1998 at Shelter Island, N.Y. The conference is organized by the t'wo IFIP TC 2 Working Groups 2.2 Formal Description of Programming Concepts and 2.3 Programming Methodology. WG2.2 and WG2.3 have been organizing these conferences every four years for over twenty years. The aim of such Working Conferences organized by IFIP Working Groups is to bring together leading scientists in a given area of computer science. Participation is by invitation only. As a result, these conferences distinguish themselves from other meetings by extensive and competent technical discus sions. PROCOMET stands for Programming Concepts and Methods, indicating that the area of discussion for the conference is the formal description of pro gramming concepts and methods, their tool support, and their applications. At PROCOMET working conferences, papers are presented from this whole area, reflecting the interest of the individuals in WG2.2 and WG2.3.
How to Prove It
Author: Daniel J. Velleman
Publisher: Cambridge University Press
ISBN: 0521861241
Category : Mathematics
Languages : en
Pages : 401
Book Description
Many students have trouble the first time they take a mathematics course in which proofs play a significant role. This new edition of Velleman's successful text will prepare students to make the transition from solving problems to proving theorems by teaching them the techniques needed to read and write proofs. The book begins with the basic concepts of logic and set theory, to familiarize students with the language of mathematics and how it is interpreted. These concepts are used as the basis for a step-by-step breakdown of the most important techniques used in constructing proofs. The author shows how complex proofs are built up from these smaller steps, using detailed 'scratch work' sections to expose the machinery of proofs about the natural numbers, relations, functions, and infinite sets. To give students the opportunity to construct their own proofs, this new edition contains over 200 new exercises, selected solutions, and an introduction to Proof Designer software. No background beyond standard high school mathematics is assumed. This book will be useful to anyone interested in logic and proofs: computer scientists, philosophers, linguists, and of course mathematicians.
Publisher: Cambridge University Press
ISBN: 0521861241
Category : Mathematics
Languages : en
Pages : 401
Book Description
Many students have trouble the first time they take a mathematics course in which proofs play a significant role. This new edition of Velleman's successful text will prepare students to make the transition from solving problems to proving theorems by teaching them the techniques needed to read and write proofs. The book begins with the basic concepts of logic and set theory, to familiarize students with the language of mathematics and how it is interpreted. These concepts are used as the basis for a step-by-step breakdown of the most important techniques used in constructing proofs. The author shows how complex proofs are built up from these smaller steps, using detailed 'scratch work' sections to expose the machinery of proofs about the natural numbers, relations, functions, and infinite sets. To give students the opportunity to construct their own proofs, this new edition contains over 200 new exercises, selected solutions, and an introduction to Proof Designer software. No background beyond standard high school mathematics is assumed. This book will be useful to anyone interested in logic and proofs: computer scientists, philosophers, linguists, and of course mathematicians.
Program Verification
Author: Timothy T.R. Colburn
Publisher: Springer Science & Business Media
ISBN: 9401117934
Category : Computers
Languages : en
Pages : 454
Book Description
Among the most important problems confronting computer science is that of developing a paradigm appropriate to the discipline. Proponents of formal methods - such as John McCarthy, C.A.R. Hoare, and Edgar Dijkstra - have advanced the position that computing is a mathematical activity and that computer science should model itself after mathematics. Opponents of formal methods - by contrast, suggest that programming is the activity which is fundamental to computer science and that there are important differences that distinguish it from mathematics, which therefore cannot provide a suitable paradigm. Disagreement over the place of formal methods in computer science has recently arisen in the form of renewed interest in the nature and capacity of program verification as a method for establishing the reliability of software systems. A paper that appeared in Communications of the ACM entitled, `Program Verification: The Very Idea', by James H. Fetzer triggered an extended debate that has been discussed in several journals and that has endured for several years, engaging the interest of computer scientists (both theoretical and applied) and of other thinkers from a wide range of backgrounds who want to understand computer science as a domain of inquiry. The editors of this collection have brought together many of the most interesting and important studies that contribute to answering questions about the nature and the limits of computer science. These include early papers advocating the mathematical paradigm by McCarthy, Naur, R. Floyd, and Hoare (in Part I), others that elaborate the paradigm by Hoare, Meyer, Naur, and Scherlis and Scott (in Part II), challenges, limits and alternatives explored by C. Floyd, Smith, Blum, and Naur (in Part III), and recent work focusing on formal verification by DeMillo, Lipton, and Perlis, Fetzer, Cohn, and Colburn (in Part IV). It provides essential resources for further study. This volume will appeal to scientists, philosophers, and laypersons who want to understand the theoretical foundations of computer science and be appropriately positioned to evaluate the scope and limits of the discipline.
Publisher: Springer Science & Business Media
ISBN: 9401117934
Category : Computers
Languages : en
Pages : 454
Book Description
Among the most important problems confronting computer science is that of developing a paradigm appropriate to the discipline. Proponents of formal methods - such as John McCarthy, C.A.R. Hoare, and Edgar Dijkstra - have advanced the position that computing is a mathematical activity and that computer science should model itself after mathematics. Opponents of formal methods - by contrast, suggest that programming is the activity which is fundamental to computer science and that there are important differences that distinguish it from mathematics, which therefore cannot provide a suitable paradigm. Disagreement over the place of formal methods in computer science has recently arisen in the form of renewed interest in the nature and capacity of program verification as a method for establishing the reliability of software systems. A paper that appeared in Communications of the ACM entitled, `Program Verification: The Very Idea', by James H. Fetzer triggered an extended debate that has been discussed in several journals and that has endured for several years, engaging the interest of computer scientists (both theoretical and applied) and of other thinkers from a wide range of backgrounds who want to understand computer science as a domain of inquiry. The editors of this collection have brought together many of the most interesting and important studies that contribute to answering questions about the nature and the limits of computer science. These include early papers advocating the mathematical paradigm by McCarthy, Naur, R. Floyd, and Hoare (in Part I), others that elaborate the paradigm by Hoare, Meyer, Naur, and Scherlis and Scott (in Part II), challenges, limits and alternatives explored by C. Floyd, Smith, Blum, and Naur (in Part III), and recent work focusing on formal verification by DeMillo, Lipton, and Perlis, Fetzer, Cohn, and Colburn (in Part IV). It provides essential resources for further study. This volume will appeal to scientists, philosophers, and laypersons who want to understand the theoretical foundations of computer science and be appropriately positioned to evaluate the scope and limits of the discipline.
Theoretical Approaches to Non-Numerical Problem Solving
Author: R. B. Banerji
Publisher: Springer Science & Business Media
ISBN: 364299976X
Category : Mathematics
Languages : en
Pages : 477
Book Description
Advances in computer technology have pointed out the next important area of computer applications: solution of non-numerical problems. It is hardly necessary to emphasize the importance of these kind of problems. First of all most of the decisions one has to make in real-life situations are non-numerical in the first instance and can be represented as numerical problems only as approximations which are often only partially valid. Second, to use the computer to its full potential it should be employed as a logical machine, capable of deduction, and not just as a numerical calculating machine. Thus the computer would extend man's capability for logical reasoning and not just for his capability to do fast and accurate calculation. It is not a new area; indeed non-numerical problems are central in fields such as artificial intelligence, heuristic programming, pattern recognition, classification and information-processing (and retrival) etc. However, it is fair to assess that progress in the area has not been quite as expected. One of the reasons was a lack of conceptual and theoretical framework in which to investigate different classes of non-numerical problems to improve understanding of various types of problems and methods for their solutions and furthermore to enable the methods which have been proven as effective in one situation to be used in another situation with appropriately similar structure.
Publisher: Springer Science & Business Media
ISBN: 364299976X
Category : Mathematics
Languages : en
Pages : 477
Book Description
Advances in computer technology have pointed out the next important area of computer applications: solution of non-numerical problems. It is hardly necessary to emphasize the importance of these kind of problems. First of all most of the decisions one has to make in real-life situations are non-numerical in the first instance and can be represented as numerical problems only as approximations which are often only partially valid. Second, to use the computer to its full potential it should be employed as a logical machine, capable of deduction, and not just as a numerical calculating machine. Thus the computer would extend man's capability for logical reasoning and not just for his capability to do fast and accurate calculation. It is not a new area; indeed non-numerical problems are central in fields such as artificial intelligence, heuristic programming, pattern recognition, classification and information-processing (and retrival) etc. However, it is fair to assess that progress in the area has not been quite as expected. One of the reasons was a lack of conceptual and theoretical framework in which to investigate different classes of non-numerical problems to improve understanding of various types of problems and methods for their solutions and furthermore to enable the methods which have been proven as effective in one situation to be used in another situation with appropriately similar structure.