|
|
Showing 1 - 3 of
3 matches in All Departments
1.1. What This Book is About This book is a study of * subrecursive
programming systems, * efficiency/program-size trade-offs between
such systems, and * how these systems can serve as tools in
complexity theory. Section 1.1 states our basic themes, and
Sections 1.2 and 1.3 give a general outline of the book. Our first
task is to explain what subrecursive programming systems are and
why they are of interest. 1.1.1. Subrecursive Programming Systems A
subrecursive programming system is, roughly, a programming language
for which the result of running any given program on any given
input can be completely determined algorithmically. Typical
examples are: 1. the Meyer-Ritchie LOOP language [MR67,DW83], a
restricted assem- bly language with bounded loops as the only
allowed deviation from straight-line programming; 2. multi-tape
'lUring Machines each explicitly clocked to halt within a time
bound given by some polynomial in the length ofthe input (see
[BH79,HB79]); 3. the set of seemingly unrestricted programs for
which one can prove 1 termination on all inputs (see
[Kre51,Kre58,Ros84]); and 4. finite state and pushdown automata
from formal language theory (see [HU79]). lOr, more precisely, the
collection of programs, p, ofsome particular general-purpose
programming language (e. g., Lisp or Modula-2) for which there is a
proof in some par- ticular formal system (e.g., Peano Arithmetic)
that p halts on all inputs.
1.1. What This Book is About This book is a study of * subrecursive
programming systems, * efficiency/program-size trade-offs between
such systems, and * how these systems can serve as tools in
complexity theory. Section 1.1 states our basic themes, and
Sections 1.2 and 1.3 give a general outline of the book. Our first
task is to explain what subrecursive programming systems are and
why they are of interest. 1.1.1. Subrecursive Programming Systems A
subrecursive programming system is, roughly, a programming language
for which the result of running any given program on any given
input can be completely determined algorithmically. Typical
examples are: 1. the Meyer-Ritchie LOOP language [MR67,DW83], a
restricted assem- bly language with bounded loops as the only
allowed deviation from straight-line programming; 2. multi-tape
'lUring Machines each explicitly clocked to halt within a time
bound given by some polynomial in the length ofthe input (see
[BH79,HB79]); 3. the set of seemingly unrestricted programs for
which one can prove 1 termination on all inputs (see
[Kre51,Kre58,Ros84]); and 4. finite state and pushdown automata
from formal language theory (see [HU79]). lOr, more precisely, the
collection of programs, p, ofsome particular general-purpose
programming language (e. g., Lisp or Modula-2) for which there is a
proof in some par- ticular formal system (e.g., Peano Arithmetic)
that p halts on all inputs.
This book presents developments of a language independent theory of
program structure. The theory features a simple, natural notion of
control structure which is much broader than in other theories of
programming languages such as denotational semantics and program
schemes. This notion permits treatment of control structures which
involve not only the denotation of programs (i.e., their
input/output behavior), but also their structure, size, run times,
etc. The theory also treats the relation of control structure and
complexity properties of programming languages. The book focuses on
expressive interdependencies of control structures (which control
structures can be expressed by which others). A general method of
proving control structures expressively independent is developed.
The book also considers characterizations of the expressive power
of general purpose programming languages in terms of control
structures. Several new characterizations are presented and two
compactness results for such characterizations are shown.
|
|