voice greeting(aiff, 58k)

Professor Emeritus

Department of Computer Science

Iowa City, Iowa 52242

e-mail: fleck AT cs.uiowa.edu

My initial research efforts were in algebraic automata theory and formal
languages. These areas investigate highly abstract models of computing
devices and languages, and apply them to examine the ultimate limits of
information processing by mechanical devices. I still find this body of
theoretical material helps to provide much better insight into many
practical aspects of computing, and I have recently published a textbook,
**Formal Models of Computation**,
in this area.

The recognition of the compelling role of data structures in the
programming process, together with a proliferation of programming languages
and embedded facilities next fueled an interest in
formalizing common data structures in
a setting independent of any specific programming language.
This is accomplished by developing a formal model of a data
structure that reflects its essential organizing properties.
The creation of an abstract definitional framework then provides a basis
for precise analysis of the descriptive capacity of a data
structure. One aspect of this work appeared as a chapter in the
book
**Current Trends in Programming Methodology: Data Structuring.**
It was hardly coincidence that formal language concepts were found to be
highly useful for this topic as well.

My most recent area of research interest is foundations of programming and programming languages. This includes the formal syntax and semantics of programming languages, methodology for construction of correct programs, and methods for formal verification of program correctness. It also includes methodology for program specification at a level abstract enough to avoid particulars such as algorithm and data structure selection, plus transformation techniques for evolving more efficient programs from prototypes known to be correct. Declarative programming languages (i.e., logic and functional paradigms) facilitate developing prototypes directly from formal specifications, and then admit general transformation techniques, and provide a natural setting for this approach. The vastly higher level of abstraction available in logic programming has led me to prefer this paradigm for prototype construction.

- A. C. Fleck biographical data
- A. C. Fleck publication citations
- A. C. Fleck course pages
- 22C:2 First Year Seminar (fall '03)
- 22C:34 Discrete Structures (spring '04)
- 22C:111 Programming Language Concepts ( fall '05)
- 22C:135 Introduction to Computation Theory (fall '02)
- 22C/55:181 Formal Methods in Software Engineering (spring '06)
- 22C:185 Foundations of Programming Languages (fall '04)
- 22C:193 Logic Programming (fall '98)

- Mathematics Genealogy entry
- Reflections on becoming a computer scientist
- Burma-Shave roadway signs
- Department of Computer Science.