scispace - formally typeset
Search or ask a question
DOI

A Basis for a Mathematical Theory of Computation

30 Dec 1899-
TL;DR: In this paper, the mathematical theory of computation is discussed and several descriptive formalisms with a few examples of their use and theories that enable to prove the equivalence of computations expressed in these formalisms are also presented.
Abstract: Publisher Summary This chapter discusses the mathematical theory of computation. Computation essentially explores how machines can be made to carry out intellectual processes. Any intellectual process that can be carried out mechanically can be performed by a general purpose digital computer. There are three established directions of mathematical research that are relevant to the science of computation—namely, numerical analysis, theory of computability, and theory of finite automata. The chapter explores what practical results can be expected from a suitable mathematical theory. Further, the chapter presents several descriptive formalisms with a few examples of their use and theories that enable to prove the equivalence of computations expressed in these formalisms. A few mathematical results about the properties of the formalisms are also presented.
Citations
More filters
Book
01 Jan 1993
TL;DR: This paper presents a guide to the literature the self-applicable scheme specializer, a partial evaluator for a subset of scheme for a first-order functional languages.
Abstract: Functions, types and expressions programming languages and their operational semantics compilation partial evaluation of a flow chart languages partial evaluation of a first-order functional languages the view from Olympus partial evaluation of the Lambda calculus partial evaluation of prolog aspects of Similix - a partial evaluator for a subset of scheme partial evaluation of C applications of partial evaluation termination of partial evaluation program analysis more general program transformation guide to the literature the self-applicable scheme specializer.

1,549 citations


Cites background from "A Basis for a Mathematical Theory o..."

  • ...McCarthy is probably the rst to give program transformation rules, in the form of provable equivalences between program phrases [180]....

    [...]

  • ...Program transformation has been studied for many years since John McCarthy's groundbreaking paper [180]....

    [...]

Book
01 Jan 1981
TL;DR: Describes basic programming principles and their step-by- step applications and shows how to apply them to real-world problems.
Abstract: Describes basic programming principles and their step-by- step applications. Numerous examples are included.hIt?4001? 0000000

1,457 citations

Book
01 Jan 1979
TL;DR: This paper presents a meta-modelling simulation of the response of the immune system to changes in the environment through the course of natural selection.
Abstract: • Constraint domains in which the possible values that a variable can take are restricted to a finite set. • Examples: Boolean constraints, or integer constraints in which each variable is constrained to lie in within a finite range of integers. • Widely used in constraint programming. • Many real problems can be easily represented using constraint domains, e.g.: scheduling, routing and timetabling. • They involve choosing amongst a finite number of possibilities. • Commercial importance to many businesses: e.g. deciding how air crews should be allocated to aircraft flights. • Developed methods by different research communities: Arc and node consistency techniques (artificial intelligence). Bounds propagation techniques (constraint programming). Integer programming (operations research).

1,123 citations

Journal ArticleDOI
TL;DR: The simplifier finds a normal form for any expression formed from individual variables that is a theorem it is simplified to the constant true, so the simplifier can be used as a decision procedure for the quantifier-free theory containing these functions and predicates.
Abstract: A method for combining decision procedures for several theories into a single decision procedure for their combination is described, and a simplifier based on this method is discussed. The simplifier finds a normal form for any expression formed from individual variables, the usual Boolean connectives, the equality predicate =, the conditional function if-then-else, the integers, the arithmetic functions and predicates +, -, and ≤, the Lisp functions and predicates car, cdr, cons, and atom, the functions store and select for storing into and selecting from arrays, and uninterpreted function symbols. If the expression is a theorem it is simplified to the constant true, so the simplifier can be used as a decision procedure for the quantifier-free theory containing these functions and predicates. The simplifier is currently used in the Stanford Pascal Verifier.

1,017 citations


Cites background from "A Basis for a Mathematical Theory o..."

  • ...When an expression does not simplify to a constant such as t r ue , our simplifier re turns a variant of cond normal form (see McCar thy [6]), a l though this is not necessarily the most satisfactory form....

    [...]

Journal ArticleDOI
01 May 1995
TL;DR: Dataflow process networks are shown to be a special case of Kahn process networks, a model of computation where a number of concurrent processes communicate through unidirectional FIFO channels, where writes to the channel are nonblocking, and reads are blocking.
Abstract: We review a model of computation used in industrial practice in signal processing software environments and experimentally and other contexts. We give this model the name "dataflow process networks," and study its formal properties as well as its utility as a basis for programming language design. Variants of this model are used in commercial visual programming systems such as SPW from the Alta Group of Cadence (formerly Comdisco Systems), COSSAP from Synopsys (formerly Cadis), the DSP Station from Mentor Graphics, and Hypersignal from Hyperception. They are also used in research software such as Khoros from the University of New Mexico and Ptolemy from the University of California at Berkeley, among many others. Dataflow process networks are shown to be a special case of Kahn process networks, a model of computation where a number of concurrent processes communicate through unidirectional FIFO channels, where writes to the channel are nonblocking, and reads are blocking. In dataflow process networks, each process consists of repeated "firings" of a dataflow "actor." An actor defines a (often functional) quantum of computation. By dividing processes into actor firings, the considerable overhead of context switching incurred in most implementations of Kahn process networks is avoided. We relate dataflow process networks to other dataflow models, including those used in dataflow machines, such as static dataflow and the tagged-token model. We also relate dataflow process networks to functional languages such as Haskell, and show that modern language concepts such as higher-order functions and polymorphism can be used effectively in dataflow process networks. A number of programming examples using a visual syntax are given. >

976 citations

References
More filters
Book
01 Jan 1993
TL;DR: This paper presents a guide to the literature the self-applicable scheme specializer, a partial evaluator for a subset of scheme for a first-order functional languages.
Abstract: Functions, types and expressions programming languages and their operational semantics compilation partial evaluation of a flow chart languages partial evaluation of a first-order functional languages the view from Olympus partial evaluation of the Lambda calculus partial evaluation of prolog aspects of Similix - a partial evaluator for a subset of scheme partial evaluation of C applications of partial evaluation termination of partial evaluation program analysis more general program transformation guide to the literature the self-applicable scheme specializer.

1,549 citations

Book
01 Jan 1981
TL;DR: Describes basic programming principles and their step-by- step applications and shows how to apply them to real-world problems.
Abstract: Describes basic programming principles and their step-by- step applications. Numerous examples are included.hIt?4001? 0000000

1,457 citations

Book
01 Jan 1979
TL;DR: This paper presents a meta-modelling simulation of the response of the immune system to changes in the environment through the course of natural selection.
Abstract: • Constraint domains in which the possible values that a variable can take are restricted to a finite set. • Examples: Boolean constraints, or integer constraints in which each variable is constrained to lie in within a finite range of integers. • Widely used in constraint programming. • Many real problems can be easily represented using constraint domains, e.g.: scheduling, routing and timetabling. • They involve choosing amongst a finite number of possibilities. • Commercial importance to many businesses: e.g. deciding how air crews should be allocated to aircraft flights. • Developed methods by different research communities: Arc and node consistency techniques (artificial intelligence). Bounds propagation techniques (constraint programming). Integer programming (operations research).

1,123 citations

Journal ArticleDOI
TL;DR: The simplifier finds a normal form for any expression formed from individual variables that is a theorem it is simplified to the constant true, so the simplifier can be used as a decision procedure for the quantifier-free theory containing these functions and predicates.
Abstract: A method for combining decision procedures for several theories into a single decision procedure for their combination is described, and a simplifier based on this method is discussed. The simplifier finds a normal form for any expression formed from individual variables, the usual Boolean connectives, the equality predicate =, the conditional function if-then-else, the integers, the arithmetic functions and predicates +, -, and ≤, the Lisp functions and predicates car, cdr, cons, and atom, the functions store and select for storing into and selecting from arrays, and uninterpreted function symbols. If the expression is a theorem it is simplified to the constant true, so the simplifier can be used as a decision procedure for the quantifier-free theory containing these functions and predicates. The simplifier is currently used in the Stanford Pascal Verifier.

1,017 citations

Journal ArticleDOI
01 May 1995
TL;DR: Dataflow process networks are shown to be a special case of Kahn process networks, a model of computation where a number of concurrent processes communicate through unidirectional FIFO channels, where writes to the channel are nonblocking, and reads are blocking.
Abstract: We review a model of computation used in industrial practice in signal processing software environments and experimentally and other contexts. We give this model the name "dataflow process networks," and study its formal properties as well as its utility as a basis for programming language design. Variants of this model are used in commercial visual programming systems such as SPW from the Alta Group of Cadence (formerly Comdisco Systems), COSSAP from Synopsys (formerly Cadis), the DSP Station from Mentor Graphics, and Hypersignal from Hyperception. They are also used in research software such as Khoros from the University of New Mexico and Ptolemy from the University of California at Berkeley, among many others. Dataflow process networks are shown to be a special case of Kahn process networks, a model of computation where a number of concurrent processes communicate through unidirectional FIFO channels, where writes to the channel are nonblocking, and reads are blocking. In dataflow process networks, each process consists of repeated "firings" of a dataflow "actor." An actor defines a (often functional) quantum of computation. By dividing processes into actor firings, the considerable overhead of context switching incurred in most implementations of Kahn process networks is avoided. We relate dataflow process networks to other dataflow models, including those used in dataflow machines, such as static dataflow and the tagged-token model. We also relate dataflow process networks to functional languages such as Haskell, and show that modern language concepts such as higher-order functions and polymorphism can be used effectively in dataflow process networks. A number of programming examples using a visual syntax are given. >

976 citations