Theory of computing in computer science education, Summaries of Theory of Computation

rower sense to exclude numerical analysis. Thus, theory of computing includes the theory of finite automata, formal languages, computability, computational ...

Typology: Summaries

2022/2023

Uploaded on 05/11/2023

photon
photon 🇺🇸

4.6

(5)

223 documents

1 / 8

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
857
Theory
of
computing
in
computer
science
education
by
PATRICK
C.
FISCHER
University
of
Waterloo
Waterloo,
Ontario,
Canada
INTRODUCTION
Theory
of
computing
means
the
abstract
study
of
the
nature
of
computation
and
computing
devices.
By
con-
vention,
the
terminology
is
usually
applied
in
a
nar-
rower
sense
to
exclude
numerical
analysis.
Thus,
theory
of
computing
includes
the
theory
of finite
automata,
formal
languages,
computability,
computational
com-
plexity,
and
some
aspects
of
switching
circuit
theory
and
logical
design.
The
deviation
from
the
literal
mean-
ing
of
the
term
may
have
cc^l__
red
because
numerical
analysis
was
already
a
well-established
subject
when
the
other
components
of
this
area
were
in
their
infancy.
On
the other
hand,
it
may
be
a
reflection
of
the
empha-
sis
on
discrete
mathematics
by
workers
in
theory
of
computing,
in
contrast
to
the
preponderance
of
con-
tinuous
methods
in
numerical
analysis.
In
Curriculum
68,
theory
of
computing
was
repre-
sented
by
the
following
courses.*
B3
Discrete
Structures
16
Switching
Theory
17
Sequential
Machines
(Automata
Theory)
Al
Formal
Languages
and
Syntactic
Analysis
A7
Theory
of
Computability
CURRICULUM
TRENDS
Lower-level
courses
The
courses
83,
IG
and
17
above
have
been
remark-
ably
stable,
perhaps
because
of
the
relative
distance
of
their
content
from
the
frontiers
of
research.
Perhaps
some
minor
changes
might
be
considered:
Course
B3
could
include
some
material
on
the
first-order
predicate
calculus
rather
than
just
tho
propositional
calculus,
and
Course
17
still
lacks
a
textbook
which
is
teachable
and
'
Comm.
ACM
11, 3
(March,
1968),
pp.
151-197.
has
a
good
balance
between
intuition
and
rigor.
Never-
theless,
the
1968
descriptions
for
these
courses
are
still
a
very
good
approximation
to
current
course
offerings
in
a
number
of
university
and
college
departments
of
computer
science.
Formal
languages
Turning
now
to
the
advanced-level
courses,
one
finds
more
updating
needed.
Developments
in
formal
lan-
guage
theory
have
taken
place
in
both
the
area
of
parsing
methods
and
the
study
of
abstract
families
of
languages.
An
updated
course
Al
would
probably
do
well
to
assimilate
a
greater
proportion
of
the
new
material
in
the
former
area,
thus
shifting
the
overall
orientation
of
the
course
more
toward
the
practical
side.
In
order
to
make
room
for this
recent
material,
a
few
lectures
worth
of
the
most
basic
material,
e.g.,
the
notion
of
a
formal
grammar
as
a
generator
of
a
language
and
some
of
the
equivalent
interpretations
in
terms
of
abstract
machines,
could
be
introduced
earlier
as
part
of
the
course
I-X
proposed
below.
Theory
of
computability
A
considerable
amount
of
activity
has
taken
place
within
the
area
covered
by
Course
A7,
and
much
of
the
new
material
is
already
entering
the
computer
science
course
offerings
of
several
universities.
The
new
ma-
terial
lies
principally
in
three
areas:
1.
computational
complexity,
2.
analysis
of
algorithms,
3.
program
schemata.
We
will
discuss
these
areas
briefly
in
order
to
define
their
scopes,
but
will
not
attempt
a
survey
of
the
many
interesting
results
which
have
been
obtained.
pf3
pf4
pf5
pf8

Partial preview of the text

Download Theory of computing in computer science education and more Summaries Theory of Computation in PDF only on Docsity!

857

Theory of computing in computer science education

by PATRICK^ C.^ FISCHER University (^) of Waterloo Waterloo, Canada

INTRODUCTION

Theory (^) of computing means^ the^ abstract^ study^ of^ the nature of^ computation^ and^ computing^ devices.^ By^ con-

vention, the terminology is usually applied^ in^ a nar-

rower sense^ to exclude^ numerical^ analysis.^ Thus,^ theory

of computing includes the theory of finite^ automata, formal languages, computability, computational com- plexity, and (^) some aspects of switching circuit theory and logical design. The deviation^ from the literal^ mean- ing of the term may have cc^l__^ red because numerical analysis (^) was already a well-established subject when the other components of^ this^ area^ were in^ their^ infancy.

On the other hand, it may^ be a^ reflection of the empha-

sis (^) on discrete mathematics by workers in theory of computing, in contrast to the preponderance^ of^ con-

tinuous methods in^ numerical^ analysis.

In Curriculum 68,^ theory of computing^ was^ repre- sented by the following courses.*

B3 Discrete^ Structures 16 Switching Theory 17 Sequential Machines (Automata Theory) Al Formal Languages and^ Syntactic^ Analysis A7 Theory^ of Computability

CURRICULUM TRENDS

Lower-level courses

The (^) courses 83,^ IG and^17 above have^ been^ remark-

ably stable, perhaps because of the relative^ distance of

their (^) content from the frontiers of research. Perhaps some (^) minor changes might be considered: Course B could include some material^ on the^ first-order^ predicate

calculus rather than just^ tho propositional^ calculus,^ and

Course 17 still lacks a textbook which is teachable and

' Comm.^ ACM^ 11, 3^ (March,^ 1968),^ pp.^ 151-197.

has (^) a good balance between intuition and^ rigor.^ Never-

theless, the 1968 descriptions^ for^ these^ courses^ are^ still

a very (^) good approximation to current course offerings in (^) a number of university and^ college departments^ of computer science.

Formal languages

Turning now to the advanced-level courses,^ one finds

more updating^ needed. Developments^ in^ formal^ lan-

guage theory have taken place in^ both^ the^ area^ of parsing methods and the study of abstract families^ of languages. An^ updated^ course^ Al^ would^ probably^ do well (^) to assimilate a (^) greater proportion of the new material in the former^ area,^ thus^ shifting^ the^ overall orientation of the course more toward^ the^ practical

side. In order to make room for this recent material,^ a

few lectures worth of^ the^ most^ basic^ material, e.g.,^ the

notion of a^ formal grammar as^ a^ generator^ of^ a^ language and some of the equivalent interpretations in^ terms^ of

abstract machines, could be introduced earlier as part

of the course I-X proposed^ below.

Theory of computability

A considerable (^) amount of activity^ has^ taken^ place within the area covered^ by^ Course^ A7,^ and^ much^ of^ the new material is already^ entering^ the^ computer^ science course offerings^ of^ several^ universities.^ The^ new^ ma- terial lies principally in three areas:

  1. computational^ complexity,
  2. analysis of algorithms,
  3. program schemata.

We will^ discuss^ these^ areas^ briefly^ in^ order^ to^ define their scopes, but will (^) not attempt a survey^ of the many interesting results^ which^ have^ been^ obtained.

858 Spring^ Joint^ Computer^ Conference,^1972

Computational complexity

The first^ of^ these^ areas^ dates^ back^ to^ 19G0^ when^ M. Rabin suggested^ that^ one^ could^ study^ the^ classification of computable^ functions^ according^ to^ the^ degree^ of

difficulty of computing^ thcm.^ (Until^ then,^ the^ main

efforts in computability^ theory^ were,^ in^ fact,^ directed

toward understanding^ and^ classifying^ the^ unconfut-

able functions in^ order^ to^ gain^ insight^ into^ the^ founda-

tions of mathematics.)^ Thus,^ this^ area^ is^ the^ oldest^ of

the three and^ was the^ first^ to^ split^ off^ from^ the^ tradi-

tional computability^ theory^ (often^ called^ recursive^ func-

tion theory)^ ,^ which began^ in^ the^ 1930'5.

In computational complexity^ studies,^ the^ most^ com-

mon overall^ approach^ is^ to^ consider^ programs^ which

are "efficient"^ in^ the^ sense^ that they^ either^ do^ not^ ex- ceed a^ bound^ on^ resources available^ at^ execution^ time or do^ not^ exceed^ a^ bound^ on^ those^ available^ at^ compile

time. Thus, one either considers^ all^ programs^ which^ are

sufficiently "fast" or^ sufficiently^ "small"^ and^ deter- mines which functions can be computed^ by such^ pro- grams. The classes^ of^ functions^ obtained^ relative^ to^ a given resource bound arp^ calbd^ "complexity^ classes," and (^) one principal aim of this^ area is^ to^ study^ their mathematical properties. Examples^ of^ resources^ related to execution of a (^) program which have been studied^ are:

number of steps on a Turing^ machine,^ memory^ cycles

on a random-access machine,^ total^ memory^ space

needed on (^) a typical computer, number^ of^ bitwise^ opera-

tions on^ any^ computer.^ Examples^ of^ resources^ related

to compilation of a program are:^ program size^ (in^ bits), depth of nesting of DO^ loops^ in^ a^ FORTRAN-like language, number of blocks in a program.

In addition,^ the^ features^ of all^ computations^ with^ re-

source bounds have been^ axiomatized^ by^ M.^ Blum,

and a number of machine-independent^ results^ have been proved. Thus,^ mathematical^ rigor^ has^ reinforced the programmer's intuition in verifying^ that^ for^ any computable function there are arbitrarily bad^ (e.g.,^ slow or huge) programs which^ do,^ in^ fact,^ compute^ the

function. On the other^ hand,^ the^ "best"^ programs^ for

a function cannot always be ciTectively^ found.^ Further- more, some functions simply have no^ best programs. The notion^ of^ "time-space^ trade^ off"^ is^ beginning^ to be the object of^ study^ via^ the^ consideration^ of^ com- plexity of finite functions^ (i.e.,^ functions^ which^ need^ to be evaluated for only a^ finite number of^ inputs).^ Until

recently, finite functions had been dismissed as^ trivial,

since all finite functions can be^ computed^ quickly^ via programs with large tables^ built^ into^ them.^ By^ taking program size^ into^ account,^ a^ rich^ enough^ structure^ is

available to permit the investigations of this subarea.

Another related concept is that of randomness,^ since^ a sequence (^) can be considered to be essentially random

if a program to^ print it involves^ the^ equivalent^ of

storing the entire sequence in the program.^ Conversely,

a non-random^ sequence^ is^ one^ which^ can^ be^ predicted and therefore computed^ by^ a^ relatively^ short^ program. The techniques used^ to^ prove^ theorems^ in^ computa-

tional complexity^ theory^ tend^ to^ be^ closely^ related^ to

techniques used in automata theory^ and^ recursive

function theory. Thus,^ proofs may^ involve diagonal

constructions, counting arguments or analysis^ of ratc-

of-growth of resource needs.^ The^ results^ in^ this^ area have had^ relatively^ little^ direct^ practical^ application^ in the sense that the algorithms^ produced^ generally^ com-

pute functions of only theoretical^ interest.^ However,^ a

great deal of understanding about the^ nature^ of^ com- putation and the relationship between machine^ organi- zation and^ computational^ efficiency^ is^ being^ obtained.

Analysis (^) of algorithms

This area has evolved as a^ branch of^ computational complexity but has recently acquired its own distinctive character as well as a sizable^ group^ of^ converts.^ (It^ is still new enough to have no standard^ name; other names include^ "efficient^ algorithms,"^ "optimal^ algo-

rithms," and "concrete computational^ complexity.")

Again, interest is in the degree of difficulty of^ computing

functions. However, one now tends^ to^ focus^ on^ a^ given

function (or (^) a relatively small^ class^ of^ functions)^ and to-attempt to (^) determine the complexity of^ the^ best^ algo-

rithms for computing^ it,^ if^ such^ exist^ and^ can^ be^ found.

If optimal algorithms are not known,^ lower^ bounds

on complexity measures^ are^ investigated^ and^ near- optimal algorithms sought. Examples^ of^ functions^ or

procedures considered include: sorting,^ determination

of the median of a sample,^ polynomial^ evaluation, matrix multiplication, checking^ graph^ isomorphism. In analysis^ of^ algorithms,^ the^ measures^ of^ complexity

are all oriented toward execution^ efficiency^ rather^ than

program structure.^ Examples^ of^ measures^ commonly used are:^ the number of^ multiplications^ and/or divisions

executed, number^ of^ all^ arithmetic^ operations,^ number

of data references, number of^ data^ comparisons.^ Th<" measures thus^ involve^ quantities^ which^ arc^ basic^ in most programming^ systems.^ Furthermore,^ by^ consider- ing only programs which^ compute^ a^ given^ function, rather than studying^ all^ programs possessing^ a^ certain degree of efficiency (regardless of what^ they^ compute efficiently), (^) one limits himself to programs computmß functions of practical^ interest,^ and^ his^ search^ for^ an algorithm which is both efficient^ and^ useful follows^ mon* closely that of the programmer^ than^ the^ theoretician. For these^ reasons,^ analysis^ of^ algorithms^ has^ a^ con- siderably more practical flavor than (other)^ computa- tional complexity^ theory.

Course I-X: Introduction^ to^ computability^ theory^ and formal languages

Approach

This course is^ designed^ to^ introduce^ the^ advanced

undergraduate or first-year^ graduate^ to^ formal^ systems of computation^ (including^ formal^ languages)^ and^ to give him^ a^ basic^ understanding^ of^ the^ nature^ of^ the unsolvability phenomena which^ pervade^ attempts^ to deduce correctness of^ programs,^ equivalence^ of^ algo- rithms, etc. Prerequisite: Course B3 or a course^ in^ logic^ or^ algebra.

Content

1. The intuitive^ notion^ of^ effective^ computability^ as

involving the existence of^ an^ algorithm.^ The^ Turing machine as one precise^ formal^ model^ for^ the^ notion.

Equivalence of the computing^ power^ of^ the^ standard

class of Turing^ machines^ with^ classes^ obtained^ by^ vary-

ing the control structure^ of^ the^ mpchme^ (e^ g.,^ Wang's

single-address serial^ memory^ machines)^ and^ the^ data structure of^ the^ machine^ (e.g.,^ more^ than^ one^ tape,

multiheaded tapes,^ ..-dimensional^ tapes,^ nonerasing

tapes, random-access^ storage,^ etc.).

2. Universal^ Turing^ machines,^ i.e.,^ the^ construction

of (^) an interpretive^ program^ to^ simulate^ other^ Turing

machine programs.

3. The unsolvability^ of^ the^ halting^ problem;^ the

effective production^ of^ counterexamples^ for^ alleged " halting^ problem^ solvers.^ Some^ other^ unsolvable^ prob-

lems (blank^ tape^ halting^ problem,^ printing^ problem,

etc.). Some^ solvable^ problems^ (computations^ on

bounded space,^ etc.)^.

4. Numerical^ approaches^ to^ computability.^ Primi-

tive recursive and^ recursive^ functions.^ Encodings^ of lists of^ integers^ into^ single^ integers^ (pairing^ functions)

and encodings^ of^ computations^ (arithmctization).

  1. Other^ models^ for^ digital^ computation:^ program

machines, loop machines,^ machines^ with^ pushdown

stores, stacks,^ counters,^ etc.^ Simulation^ of^ Turing^ ma- chines by^ machines^ with^ only^ two^ counters.

6. Post^ combinatorial^ systems^ and^ formal^ grammars

as a special^ case.^ Production^ notation^ for^ specifying

grammars. Recursively^ enumerable,^ context-sensitive,

context-free and^ finite-state^ grammars.^ Examples^ of

languages of^ varying^ complexity,^ e.g.,^ a

nb n (^) , (^) a"b n^ C.

Proof that an^ b"c" is^ not^ context-free.

7. Grammars^ vs.^ abstract^ machines.^ Representations

of the above^ in^ terms^ of^ Turing^ machines,^ linear

bounded automata, one-pushdown^ machines,^ finite-

state automata,^ respectively.

  1. Unsolvability^ of^ the^ Post^ correspondence^ problem. Applications to unsolvability^ problems^ in^ formal languages.

References — Course^ I-X

The richest sources of^ material^ for^ this^ course^ are Minsky and Hopcroft-Ullman.^ ABA6^ The^ former^ has

good, readable coverage^ of^ 1-5,^ above,^ and^ part^ of^ G.

The latter has^ a^ more^ formal^ approach^ and^ covers^ G-S

very well.

Al S AANDERAA P^ C^ FISCHER The solvability^ of the^ halting^ problem^ for^ 2-stale^ Post machines J ACM^14 1907 pp^ 677- A2 (^) M DAVIS Computability and^ unsolvability McGraw-Hill New^ York^1958 210 pp A3 P C FISCHER On (^) formalisms for Turing^ machines J ACM 12 1905 pp^ 570- A4 (^) S GINSBURG Mathematical theory^ of^ context-free^ languages McGraw-Hill New^ York^ 190G^243 pp A5 II (^) HERMES Enumcrability, decidability, computability Academic Press^ New^ York^1905 245 pp A6 J E HOPCROFT J^ D^ ULLMAN Formal languages^ and^ their^ relation^ to^ automata Addison-Wesley (^) Pub Co lnc 1969 242 pp A7 S (^) C KLEENE Mathematical logic Wiley (^) New York 1967 398 pp A8 (^) M L MINSKY Computation: Finite and^ infinite machines Prentice-Hall Englewood^ Cliffs^ NJ^ 1967 317^ pp A9 J MYIIILL Linear bounded^ automata WADD Tech Note^ 60-165^ Wright-Patterson^ Air^ Force Base Ohio^1960 AlO E L POST Recursive unsolvability^ of a^ problem^ of^ Thue J Symbol^ Logic.^11 1947 pp^ 1- All (^) II ROGERS JR Theory (^) of recursive (^) functions and^ effective computability McGraw-Hill New^ York^1967 482 pp Al2 J (^) C SHEPIIERDSON II^ E.^ STURGIS

Computability of recursive functions

J ACM 10 1903^ pp^ 217- Al3 B A (^) TRAKUTENBROT Algorithms and automatic computing^ machines Translation by^ J Kristian^ J^ D^ McCawley^ and^ S^ A^ SchmiU D C Heath Boston 1903 101 pp Al4 A M TURING On computable^ numbers,^ with^ an^ application^ to^ the Entscheidungsprobli m Proc London^ Math^ Soc^ Ser^ 2 42^ 1930-1937^ pp^ 230-lw Corr ibid 43 1937 pp^ 544- Al5 II (^) WANG A variant to Turing's^ theory^ of computing^ machines J ACM 4 1957 pp^ 61-

" ii^ I^ i^ —-t^^«———— ii^ ■.^ ii'^ v^ -■'i.ii'*<BW_«)PWßWW_W-^_-________WW

I I

Advanced computability^ theory i

No single^ solution^ is^ proposed^ for^ taking^ Course^ A7, now bereft^ of^ both^ basic^ computability^ theory^ and^ re-

cursive function^ theory,^ and^ refurbishing^ it^ with^ more

relevant material^ while^ retaining^ the^ computational

complexity theory^ previously^ contained^ there.^ One

reasonable approach^ would^ be^ to^ convert^ the^ course

into a^ survey-in-depth^ of^ all^ three^ areas^ described

above. The^ most^ generous^ answer^ (for^ devotees^ of^ com- putability theory)^ would^ be^ to^ convert^ A7^ into^ a^ course on computational^ complexity^ theory^ and^ to^ establish new courses^ in^ both^ algorithm^ analysis^ and^ program

schemata. This,^ in^ fact,^ is^ the^ current^ situation^ in^ the

graduate program at^ Waterloo.^ However,^ graduate

course offerings are obviously^ highly^ dependent^ upon the interests^ and^ quantity of^ faculty^ members.^ (Until

the current^ academic^ year^ Waterloo^ offered^ courses

equivalent to I-X^ and^ a^ single^ graduate^ term^ course^ in computability theory.^ The^ latter^ course^ took^ the survey-in-depth approach.) Activity in analysis^ of^ algorithms^ has^ grown^ so

rapidly that the accretion of^ new^ results^ and^ interest-

ing algorithms has far^ exceeded^ progress^ in^ determining underlying principles. Thus,^ it^ will^ be^ difficult^ to^ keep

a course in^ this^ area^ from^ becoming^ a^ collection^ of

programming tricks.^ Nevertheless,^ courses^ in^ analysis

of algorithms have already^ sprung^ up^ at^ a^ number^ of universities and are attracting^ respectable^ enrollment figures. Furthermore,^ the^ potential^ value^ of^ such^ a course for persons who^ think^ they^ like^ programming and dislike all theory outweighs^ the^ difficulties^ due^ to the (^) roughness of the area and^ lack^ of^ adequate^ peda- gogical material.^ Thus,^ it^ is^ quite^ likely^ that^ many schools will choose to^ offer^ a^ course^ in^ analysis^ of^ algo- rithms regardless of whether^ or not^ the^ computational

complexity and program schemata^ theory^ arc^ covered

as well. If this turns out to be the^ case,^ the^ best^ solution

for (^) Course A7 would be to embrace both of^ these^ latter areas. A list of topics and^ references^ in^ each^ of^ the^ three areas is given below. In view^ of^ the^ discussion^ just

concluded, these are not to be interpreted^ as^ specific

recommendations for courses^ but^ only^ as^ a^ sample^ of material in each of the areas.

ADVANCED TOPICS^ AND^ REFERENCES

As stated previously, the topics^ and^ references^ pre- sented (^) below arc (^) not all inclusive and^ are not^ suggestions for (^) throe separate courses.

Computational complexity

Topics

1. Complexity^ classes^ defined^ in^ terms^ of^ Turing

machine time bounds,^ space^ bounds,^ and^ tape

reversals (^) 'B21^ ' B::

  1. Models^ for^ real-time^ computation,^ Turing^ ma- chines with many^ tapes^ vs.^ one^ or^ two^ tapes,^ Turing machines with many heads per tape^ vs.^ one^ head^ per taPC 8!3.8_4,8_9,

3. Random-access^ register^ machines,^ iterative^ arrays,

n-counter machines^ and^ real-time^ countability,^ other computing devices.^82 ' 89 ' 815 '^816 -^836

  1. Axiomatic approaches^ to^ machine^ structure, bounded action and bounded^ activity^ machines.^810 '^835

5. Complexity classification by^ functional^ definition,

primitive recursive^ functions,^ the^ Grzegorczyk^ classes, honest functions,^ loop program^ machines.^88 -^826 - 830 -^831

  1. Axioms^ for^ machine-dependent^ complexity theory, existence^ of^ arbitrarily^ bad^ programs^ and^ arbi- trarily hard-to-compute^ functions,^ speed-up^ theorem.^83

7. Machine-independent^ complexity^ classes,^ uniform

hierarchj (compression) theorem,^ honesty^ theorem,

gap theorem,^ union^ theorem.^820

8. Complexity^ of^ finite^ functions,^ expressive^ power

of programs, random^ sequences.^84 '^87 -^825

References— Computational^ complexity

In general, only^ material^ appearing^ in^ standard

journals and written in^ English^ is^ given.^ Thus,^ a^ num- ber of recent^ results^ and^ papers^ in^ foreign^ languages,

principally Russian, containing^ relevant^ material^ have

been omitted. Fairly^ comprehensive^ coverage^ of^ ma-

chine-independent complexity^ theory^ as^ well^ as^ some additional references are found^ in^ the^ paper^ by^ Hart- manis and Hopcroft. 820 Two previous^ references^ are also relevant to^ this^ area.^ A9^ - Al

An extensive "Bibliography^ on^ computational^ com-

plexity" was compiled^ by^ M. I.^ Irland^ and^ the^ author in October,^ 1970,^ but^ has^ not^ been^ published.^ A^ limited number of copies^ are^ available^ as^ Research^ Report CSRR 2025,^ Department of^ Computer^ Science,^ Uni- versity of Waterloo. Bl A V^ AHO^ J^ E^ HOPCROFT^ J^ D^ ULLMAN Time and^ tape^ complexity^ of^ pushdown^ automaton languages Information and^ Control^13 pp^ 180- B2 A J ATRUBIN A onc-dimcn.'iional real-time^ ikrativc^ multiplier J ACM^14 1905 pp^ 394- B3 M BLUM A machine-independent^ theory^ of^ the^ complexity^ of^ recursive functions J ACM 14 1967 pp^ 322-

/

i

i

!

!

/

o-a-ifc. (^) "a!mU.: ;""»_ 4

Theory of (^) Computing (^) in Computer (^) Science Education 863

2. Polynomial^ evaluation. Optimality of Horner's

rule in^ general^ case,^ preconditioning. (^) Evaluation of (^) a polynomial at (^) more than (^) one point. 07

3. Lower bounds for addition and multiplication of

integers. Methods for multiplying in fewer than n 2 bit-

wise operations.^ Fast Fourier transforms and their

application to multiplication. osoBo

012

i. Sorting and searching methods. Treesort, radix

sorts, polyphase (^) sorts. (^) Lower bounds (^) on the (^) number (^) of comparisons (^) necessary. (^) Finding (^) the ith largest (^) in a (^) set

of elements. Evaluation cf binary searching, AVL

trees. (^) '

5. Graph algorithms. Planarity testing, connected

components (^) of a graph, (^) transitive (^) closure.

6. Miscellaneous algorithms. Matrix transposing in a

paging (^) environment, garbage (^) collection, (^) g.c.d. (^) of poly-

nomials, power of an expression, etc. 01

References— Analysis of algorithms

A considerable amount of current material is avail-

able only (^) in the form (^) of (^) course notes or (^) technical re-

ports. Such items have been omitted here although

courses (^) being (^) taught in analysis (^) of (^) algorithms (^) are draw-

ing up to half of their material from such sources. Thus,

the (^) references (^) below (^) serve (^) more to give (^) the flavor of this (^) area (^) than to (^) constitute any (^) approximation (^) to a

complete set of source material. Presumably much of

the (^) current (^) material will (^) appear in (^) standard (^) journals

within a year.

Many informal working papers in this area can be

found in recent Proceedings of the ACM Symposia on

Theory of Computing (available from ACM) and

Proceedings (^) of (^) the lEEE (^) Symposia (^) on (^) Switching and Automata Theory (^) (available (^) from (^) the lEEE (^) or the lEEE (^) Computer (^) Group). Also, a (^) "Bibliography on the analysis (^) of algorithms" (^) has been (^) compiled (^) by Professor

E- M. Reingold, Department of Computer Science,

University (^) of (^) Illinois at (^) Urbana. (^) As of (^) the (^) time of writing (^) it has (^) not been published.

Cl A (^) BRAUER On (^) addition chains Bull (^) Amer (^) Math Soc (^45 1939) pp (^) 736- C2 (^) C (^) A R (^) HOARE

Computer (^) J 5 1962 pp (^) 10- C3 (^) J E (^) HOPCROFT L (^) KERR On (^) minimizing the (^) number (^) of multiplications (^) necessary matrix (^) multiplication for SIAM J Appl^ Math 20 1971 pp (^) 30- c (^4) R M (^) KARP W L (^) MIRANKEU Parallel (^) search (^) for a (^) maximum

J Combinatorial Theory 4 1968 pp 19-

C5 (^) D E KNUTH The (^) art (^) of computer (^) programming, (^) volume. (^2) Addison-Wesley (^) Reading (^) Massachusetts (^1969) sections 4.3.3, 4.6.3, (^) and (^) 4.6. C6 (^) D (^) E KNUTH The (^) art (^) of computer programming, (^) volume (^3) Addison-Wesley (^) Reading (^) Massachusetts to appear (^1972) section 5. C7 V Ya PAN Methods (^) of computing (^) values (^) of polynomials Uspehi (^) Mat Nauk (^21 1966) PP 103-131 (^) Russian English translation in (^) Russian Math (^) Surveys 21 1966 pp (^) 105- CS A (^) SCHONHAGE Multiplication (^) of large (^) numbers Computing (^1 1906) pp (^) 182-196 (German (^) with English summary) (^) See Comput (^) Rev (^8 1967) review (^) number 11544 C9 P (^) M SPIRA The time required (^) for group multiplication J ACM (^16 1969) pp (^) 235- ClO (^) V STRASSEN Gaussian elimination is (^) not optimial Numer Math 13 1969 pp (^) 354- Cll S (^) WINOGRAD On ihe time required (^) to perform (^) addition J ACM 12 1965 pp (^) 277- Cl2 S (^) WINOGRAD On the (^) time required (^) lo perform multiplication J ACM 14 1967 pp (^) 793-SO Cl3 S^ WINOGRAD On the^ number (^) of multiplications (^) necessary (^) to compute certainfunctions Comm (^) Pure Appl (^) Math 23 1970 pp (^) 165-

Program (^) schemata

Topics

1. Flowchart schemata. Interpretations of schemata.

Herbrand Interpretations. Undecidability of halting

and equivalence problems. Various notions of

equivalence.o4olo

2. Special^ classes of flowchart schemata: lanov

schemata, two-location schemata, nested-loop ('while')

schemata. Translation of flowchart schemata to 'while'

schemata.

3. Recursive schemata. Translation of flowchart

schemata to recursive schemata. Recursive schemata

with no equivalent flowchart schemata. Dccidable

properties (^) of monadic (^) recursive schemata. (^) Equivalence

methods for recursive schemata; truncation induction." 5

4. Models of parallel computation. Determinancy;

deadlocks. (^) Equivalence-preserving (^) transformations; in- creasing (^) and decreasing (^) the (^) 'parallelism'. o

5. Correctness of programs, choice of predicates asso-

ciated with locations in a program. m-D "-D»

6. Formal definitions of program structure. 01 ' Dl

i

i !

-JEA.J

i^1

v _„»-h._i.x.^ 'i-iftiT"-^ ii^ '■>*■^ iV|,|t'"'- Si

Spring Joint^ Computer^ Conference,^1972

References—Program^ schemata

Some papers^ concerned^ with^ program^ definition^

and

programming semantics^ are^ included^ as^ well^

as (^) those dealing directly^ with^ program^ schemata.^ As^

before,

much current^ material^ has^ not^ made^ its^ way^ into^ the

accessible literature.

Dl E ENGELER Algorithmic approximations J Computer^ Syst^ Sci^5 1971 pp^ 67- D2 (^) R W FLOYD Assigning meaning lo programs In Proc Symposia^ in^ Applied^ Mathematics^19 American Mathematical Society^1907 pp^ 19- D3 R M KARP^ R^ E^ MILLER Parallel program^ schemata J Computer^ Syst^ Sci^3 1969 pp^ 147- D4 D C LUCKHAM^ D^ M^ R^ PARK M S PATERSON On (^) formalised computer^ programs J Computer^ Syst^ Sci^4 1970 pp^ 220- D5 j McCarthy A basis for a^ mathematical^ theory^ of^ compulation In Computer^ Programming^ and^ Formal^ Systems North-Holland Amsterdam^1963 pp^ 33-

D6 Z MANNA '

The correctness^ of^ programs J Computer^ Syst^ Sci^3 1909 pp^ 119-

D7 Z^ MANNA^ R^ WALDINGER

Toward automatic^ program^ synthesis Comm ACM^14 1971 pp^ 151- D8 R MILNER Program schemes and^ recursive^ function^ theory In Machine Intelligence^5 Edinburgh^ University^ Press 1970 pp^ 39- D9 D^ PARK Fixpoint induction^ and^ proofs^ of^ program^ properties Ibid pp^ 59- DlO M S PATERSON Program schemata In Machine^ Intelligence^3 Edinburgh^ University^ Press 190S pp^ 18- Dll D SCOTT Outline of a^ mathematical^ theory^ of^ computation Tech Monograph^ PRG-2^ Oxford^ University^ Computing Laboratory Programming^ Research^ Group^19 <0^24 pp Dl2 D (^) SCOTT The lattice^ of flow diagrams Tech Monograph^ PRG-3^ Oxford^ University^ Computing Laboratory Programming^ Research^ Group^ 19/0^ o/^ pp

ACKNOWLEDGMENTS

The author^ gratefully^ acknowledges^ the^ material^

and

suggestions provided^ by^ E.^ A.^ Ashcroft,^ M.^ J.^

Fischer,

A°R. Meyer,^ J.^ I.^ Munro^ and^ E.^ M.^ Reingold.