Jack B. Dennis


Jack B. Dennis is Professor of Computer Science and Engineering, Emeritus, at M.I.T.


As an M.I.T. undergraduate, Jack Dennis joined the VI-A Cooperative Program in Electrical Engineering, working at the Air Force Cambridge Research Laboratories on projects in speech processing and novel radar systems. As a graduate student, he was an early user of the Whirlwind computer, and developed an innovative program for solving the "transportation problem", a classical case of linear programming. In a summer job at Bell Telephone Laboratories, he designed and constructed special test equipment for the barrier grid storage tube, a key element for an experimental electronic telephone switching system.


He completed the doctorate in Electrical Engineering in 1958, writing a dissertation that explored the strong analogy of mathematical programming problems to the solution of certain kinds of electrical networks. In Mathematical Programming and Electrical Networks, this analogy was shown to yield new algorithms for mathematical programming problems, and the extension of duality theory to quadratic and general convex programming formulations. He then joined the M.I.T. faculty in the Department of Electrical Engineering and was promoted to full professor in 1969.


Professor Dennis designed an extensive set of hardware alterations and additions to a DEC PDP-1 computer to create a time-shared computer system suited to support research in electronics, communications, and computer science. It was one of the first interactive, time-shared computers that began operation around 1963. One of several novel features of this system was the ability of a user to employ a symbolic debugging tool (an early version of the DDT program) with no possibility of disruption of the debugger by the program under test. Similar features were later incorporated into the SDS 940 computer used in the Genie time-sharing system at the University of California at Berkeley, and into the design of the DEC PDP-11/45 computer, the machine model that supported development of the UNIX operating system at Bell Laboratories.


In the early days of M.I.T.'s Project MAC, Professor Dennis worked with Edward Glaser of the Multics team to specify the unique segment addressing and paging mechanisms that became a fundamental part of the General Electric model 645 computer (later the Honeywell 6180). In recognition of his contributions to the Multics project, Dr. Dennis was elected Fellow of the IEEE.


As leader of the Computation Structures Group, M.I.T. Laboratory for Computer Science, from 1963 through 1985, Professor Dennis directed a research program that developed aspects of computer architecture and programming languages based on dataflow models of program representation and execution. These developments led to dataflow projects at many universities and research institutes around the world, and won the ACM/IEEE Eckert-Mauchly Award for Professor Dennis in 1984. During this period, Professor Dennis supervised the doctoral research of more than twenty-five graduate students in topics ranging from the theory of Petri nets and the semantics of programming languages to computer system architecture and performance analysis. Group activities included construction of a dataflow engineering model to demonstrate the validity of dataflow concepts and the feasibility of asynchronous packet routing networks.  In 1994 he was inducted as a Fellow of the ACM.


Professor Dennis provided consulting services to computer manufacturers including Digital Equipment Corporation, IBM, RCA, and Burroughs. He was a principal member of the consulting firm Research and Consulting, Incorporated, which evaluated a major computer development program of the Navy, and advised the U.S. government committee responsible for the development of the Common DoD Language--the activity that led to the Ada standard language for embedded applications. On several occasions Dr. Dennis assisted in the evaluation new computer ventures.


In his teaching at M.I.T. Prof. Dennis developed six subjects in new areas of computer theory and computer systems: (1) Theoretical Models for Computation. The material developed for this subject was published as a book, Machines, Languages, and Computation, written with former graduate students Peter Denning and Joseph Qualitz. (2) Computation Structures. This was the intial version of the basic computer architecture subject of M.I.T.'s undergraduate curriculum in Computer Science. It was unique in its emphasis on the relation of hardware and software technology to the implementation of programming languages. (3) Structure of Computer Systems. This graduate subject treated advanced concepts in computer architecture and operating systems. (4) Semantic Theory for Computer Systems. A graduate subject that introduced, for the first time at M.I.T., advanced principles of semantic theory for computer programs and languages, and studied their application to the specification and design of computer hardware and software systems. (5) Semantics of Parallel Computation. This graduate subject treated the various means researchers have conceived for representing concurrency in hardware and software systems. (6) Computer System Architecture: This was one of four core subjects introduced as a common base for graduate education in computer science. Professor Dennis taught the first offering of the subject in collaboration with Professor Arvind.


Prof. Dennis' professional activities include his current participation in IFIP Working Group 2.8: Functional Programming and his earlier work in IFIP Working Group 2.2: Formal Description of Programming Concepts. He organized several workshop meetings relating to dataflow concepts, concurrency in computation, and semantic foundations for structured programming. In 1967 he was principle organizer of the first ACM Symposium on Operating System Principles.


Between 1987 and 2001 Prof. Dennis served as an independent consultant and research scientist on projects primarily concerned with parallel computer hardware and software.


As Visiting Scientist at the NASA Research Institute for Advanced Computer Science Dr. Dennis developed strategies for using the Sisal functional programming language to write data parallel programs for the Connection Machine, and began the design and programming of the Paradigm Compiler. For Boeing Aerospace, he developed parallel implementations of signal processing algorithms and specified a high-performance multiprocessor for their implementation based on dataflow principles.


In the 1989-1990 academic year, Prof. Dennis collaborated with Prof. Gao Guang-Rong at McGill University in studies of processing element architecture, and array operations in functional programming languages.


From July 1992 through June 1994 Dr. Dennis worked with the Architecture Group of Carlstedt Elektronik, Gothenburg, Sweden. The company was developing a novel parallel computer architecture using associative processor chips for process control and embedded system applications. Dr. Dennis developed and analyzed reduction and data-driven implementations for functional programming languages, including mechanisms for distributed program execution, resource management including distributed garbage collection, and load balancing. This work involved the use of formal specifications (operational semantics) to help guide product specification decisions.


From 1995 to 2001 Prof. Dennis served as Chief Scientist of Acorn Networks, Inc., a company engaged in developing high-performance silicon devices for the communications infrastructure. His work led to an innovative design for a high-performance network processor using multithreading and novel techniques for packet synchronization and instruction level parallelism.