[Excerpts from the SJCC 67 Program, Atlantic City, N.J., Convention Hall

April 18-20, 1967 ; the sessions listed were marked by Douglas Engelbart in the program]

 

Tuesday, April 18 Afternoon

Session 7: HANDLING THE GROWTH BY DEFINITION OF MECHANICAL LANGUAGES - A SPECIAL TUTORIAL SESSION

PROFESSOR SAUL GORN

The Moore School of Engineering, University of Pennsylvania,

Philadelphia, Pennsylvania

Mechanical languages in general, and programming languages in particular tend to behave in many ways thought to be characteristic of natural languages:

They tend to cluster into systems of mutually intertranslatable languages, each with its own efficiencies. The author calls these "categories of languages."

They tend, with essentially the same processing, to be applicable to many "vocabulary systems." The author calls them "language functions" applicable to many "alphabets" to form similar languages.

They tend to grow by allowing new, simpler forms of expressions to be used instead of older (more complicated) forms. When this is done by many people independently, there will be a tendency for the language to split into different dialects, jargons, or even languages among which intercommunication is difficult unless processors are available which identify where new expressions are applicable, trace the effects in the older expressions of the elimination of newer ones, and determine when expressions are equivalent.

The author illustrates how he believes we may attack such questions in the future by considering a strongly structured category of language functions in which alphabets may change by "explicit definitions."

 

 

Wednesday, April 19

Morning

Session 13: MACROMODULAR COMPUTER SYSTEMS

Chairman:

WESLEY A. CLARK

Computer Research Laboratory

Washington University, St. Louis, Missouri

The macromodular approach to computer design emphasizes flexibility and simplicity. There are two advantages to this approach:

First, an experimental element is added to the theoretical and simulational techniques now available to the system designer. Perhaps this can most effectively be employed in research groups having as their main objectives the creation of advanced computer systems for specialized applications. Because of the relative ease with which a given configuration of macromodules can be altered, it is possible for a group to actively work with many different forms to find optimal configurations for different problem classes.

Second, it makes possible a smoothness of growth and refinement in an operating computing system. Because of the electronic independence of macromodules, it is relatively easy to expand a macromodular system to add new functions without seriously affecting the continuity of on-going work and without jeopardizing any existing investment in programs and operating procedures. Macromodular systems are capable of unlimited growth and functional enrichment.

These properties of macromodular systems are of growing importance in the search for more effective information processing systems.

 

A FUNCTIONAL DESCRIPTION OF MACROMODULES

SEVERO M. ORNSTEIN

MISHELL J. STUCKI

WESLEY A. CLARK

Washington University, St. Louis, Missouri

This paper describes a set of macromodular building blocks such as registers, adders, memories, control devices, etc., from which it is possible for the electronically-naive to construct large and complex computers that work. Machines are assembled by plugging the modules into cells of a special frame which provides for communication between adjacent cells. Explicit data pathways and control structures are then made by plugging in standardized cables. All pieces of a system are therefore recoverable and systems can be reconfigured easily.

Data modules process twelve-bit word-segments; greater word lengths are obtained by interconnecting modules. Memory modules hold 4096 twelve-bit segments and can also be interconnected to form larger arrays. Particular attention is given to the problem of designing control structures. The control signals for a given process are routed along the cables of a control network whose topology is isomorphic to the flow diagram representing the process. The step from conception to realization can therefore be made directly.

 

LOCAL DESIGN OF MACROMODULES

MISHELL J. STUCKI

SEVERO M. ORNSTEIN

WESLEY A. CLARK

Washington University, St. Louis, Missouri\

The approach used in the solution of the principal problems encountered in the logical design of macromodules is presented. The problems arise, in general, from two aspects of macromodular systems: 1) the physical separation of modules within a system is not constrained and data signal propagation times between modules are therefore unknown; 2) macromodular control is asynchronous.

The approach taken is to make all control signals self-timing and to force data-validation signals along paths parallel to the data paths to insure that control does not get ahead of data. A set of basic logic elements capable of handling asynchronous signals has been defined, and logical design of the modules is accomplished primarily in terms of these elements rather than in terms of traditional gates and flip-flops. This approach is illustrated in the design of the logic for data transfer and word-length extension.

 

ENGINEERING DESIGN OF MACROMODULES

ASHER S. BLUM

THOMAS J. CHANEY

RICHARD E. OLSEN

Washington University, St. Louis, Missouri

Freeing the macromodular system designer from the need to consider electronic problems has required unusual care in the design of the individual modules and their interconnections. Because of the unlimited variety of machine configurations, it is not possible to use a single frame reference ground. Inasmuch as high speed, low level, D.C.-coupled logic circuits are used, the noise immunity requirements are severe. Transmission of data and control signals are carried out by means of twisted wire pairs, and shielding to reduce signal pick-up from outside sources surrounds all system components and cables. Power distribution, interfacing to peripheral equipment, and general mechanical features will be described. Projected design goals in the areas of circuitry, connectors, cables, and frames are discussed.

 

A MACROMODULAR SYSTEMS SIMULATOR (MS2)

RICHARD A. DAMMKOEHLER

Washington University, St. Louis, Missouri

The development of a macromodular systems simulator (MS2) and its use in the simulation of experimental information processors is presented.

MS2 is a control program and programming language that facilitates the design and subsequent realization of macromodular computer systems. MS2 is written in TRAC, a string processing language develop by C. Mooers, and selected because of the functional similarity between the macromodular control network and Mooers' concept of an active string.

Input to the simulator consists of a standard set of TRAC definitions for the basic macromodules, a description of the organization of the target machine, the program to be executed by the target machine, and data required by that program. Output from MS2 consists of a continuos trace of the control network of the target machine as it executes its program and the results of the computations performed.

 

A MACROMODULAR META MACHINE

WILLIAM E. BALL

Washington University, St. Louis, Missouri

The macromodular concept makes it possible to realize alternative computer designs with ease. However, a change in computer design usually implies that existing programs will no longer function correctly. It appears, then, that a flexibility in software equivalent to that of hardware must be maintained. This can be achieved by defining a very small (fixed) macromodular computer dedicated to compiling a high level language compiler for a target (variable) machine.

The operation of the compiler computer is based on the compiler-compiler syntax-directed approach proposed by Schorre in his Meta II language. The design of a machine to implement the Meta II concept is described in terms of the MS2 simulation language and connection diagrams.

 

THE CHASM: A MACROMODULAR COMPUTER FOR ANALYZING NEURON MODELS

CHARLES E. MOLNAR

SEVERO M. ORNSTEIN

ANTHARVEDI ANNE

Washington University, St. Louis, Missouri

A special purpose computer has been designed in macromodular form to solve a general class of Markov processes encountered in the study of neuron models. The machine consists of a macromodular processor coupled with a LINC in a "fixed plus variable" configuration. The macromodular professor carries out the recursive algorithm used to derive the properties of Markov processes, while the LINC generates parameters, controls boundary conditions, and provides input-output for the machine.

The macromodular part of the CHASM contains 54 macromodules, two of which are memory modules. The major part of the computation consists of calculating the probability distribution for the state variable of the Markov process at time 't + delta-t' from the known distribution at time 't.' Each of these distributions is stored as 1024 24-bit memory entries. The remaining memory is used to store tables which characterize the transition mechanism of the particular Markov process being studied. The speed of the CHASM is about one hundred times greater than that of the LINC alone in this application.

 

 

Wednesday, April 19

Afternoon

Session 17: TECHNIQUES IN PROGRAMMING LANGUAGE-PART I

Chairman:

GRACE M. HOPPER

Univac Philadelphia, Pennsylvania

Standardization of certain programming languages has provided impetus for devising methods of constructing compilers and, inevitably, of implementing still more languages. This session concerns itself with three methods of construction of programs: a technique of using a questionnaire to define a program in an application area and constructing the program; a system for generating a compiler whose source and object languages may be rigorously defined by the user; and a system which supplies a general purpose compiler whose input languages may be defined by the user. The session will conclude with a panel discussion of the papers.

 

PROGRAMMING BY QUESTIONNAIRE

ALLEN S. GINSBERG

HARRY M. MARKOWITZ

PAULA M. OLDFATHER

The RAND Corporation

Programming by questionnaire brings together four components that form a program generator: a questionnaire, permitting the definition of the scope and logic of a program to be generated; a statement list, containing the commands necessary for program construction; a set of decision tables relating the answers to the questionnaire to the statement list; and an editor program processing the first three elements to construct the desired program and define the input data required from the user. The technique is illustrated by application to a job shop simulation program generator.

 

COMPILER GENERATION USING FORMAL SPECIFICATION OF PROCEDURE-ORIENTED AND MACHINE LANGUAGES

PHILIP GILBERT

Teledyne Systems Company

Hawthorne, California

WILLIAM G. McLELLAN

Intelligence Data Processing Section

Rome Air Development Center, New York

A compiler generation system is described which is rigorously based and which allows formal specification both of the source (procedure-oriented) languages and of the object (machine-oriented) languages. An intermediate or "buffer" language, BASE, is interposed, reducing the required transformation to two logically independent subtransformations. A method is supplied for rigorously defining the entrant languages and the transformation techniques described. The system, so far, includes those elements in BASE necessary to produce ALGOL, FORTRAN and JOVIAL compilers.

 

AN EXPERIMENTAL GENERAL PURPOSE COMPILER

R. S. BANDAT

R. L. WILKINS

Western Union Telegraph Company

Paramus, New Jersey

A general purpose compiler is described whose required input is a description of the desired source language in a defined meta-language and certain semantics routines. The compiler itself, written in FORTRAN, has been experimentally implemented on a GE-235.

 

 

Wednesday, April 19

Afternoon

Session 22: TECHNIQUES IN PROGRAMMING LANGUAGES-PART II

Chairman:

ROBERT J. ROSSHEIM

Auerbach Corporation, Philadelphia, Pennsylvania

Programming language development often starts with existing standard languages that expand to meet new application requirements. Alternatively, there may be development of new languages and processors for special purposes.

This session includes a FORTRAN language extension to include the use of graphic display devices, and an ALGOL extension for on-line programming. These papers are followed by descriptions of a special language for data reduction applications, a command language for on-line problem solving, and an experimental time-sharing system.

 

DAMAG: A MULTI-ACCESS SYSTEM FOR ON-LINE ALGOL PROGRAMMING

A. AUROUX

J. BELLINO

L. BOLLIET

University of Grenoble, Grenoble, France

A system using a satellite computer has been implemented and programmed to allow on-line programming in ALGOL. Incremental compilation and execution, insertion, extraction, inclusion and concentration of files is allowed in both conversational and batch modes. This moves toward the goal of man-machine interaction in program construction and evaluation.

 

GRAF: GRAPHIC ADDITIONS TO FORTRAN

A. HURWITZ

J.P. CITRON

IBM Los Angeles Scientific Center

J.B. YEATON

Health Science Computing Facility

UCLA Los Angeles, California

With growing widespread use of graphic display devices, an easy-to-use high-level graphic display language has become a necessity. GRAF is intended to fill a gap between the two extremes of a package of subroutines in FORTRAN as opposed to custom-designed single-use graphical display programming systems. In GRAF, new statements are added to the FORTRAN language.

GRAF will be easier to implement, easier to teach to FORTRAN programmers, and easier to read. It was designed to extend OS/360 FORTRAN IV (E Level subset) and to operate with the IBM 2250 Mod display device.

 

THE MULTILANG ON-LINE PROGRAMMING SYSTEM

R.L. WEXELBLAT

Bell Telephone Laboratories

Holmdel, New Jersey

A system containing a language and a retrieval file structure based on descriptions has been implemented using a disc-file, central and satellite processors and character display consoles. Both program and data may be accessed in the language by means of logical combinations of descriptors. The system language is both an executive and programming language.

 

RPL: A DATA REDUCTION LANGUAGE

FRANK C. BEQUAERT

The MITRE Corporation

Bedford, Massachusetts

A computer language to facilitate the writing of digital computer programs for the reduction of recorded digital data is described. This language is a conversational pre-compiler written in FORTRAN which produces an output program in FORTRAN. The language is currently operational on an SDS-930 computer.

 

EXPERIMENTAL AUTOMATIC INFORMATION STATION: AIST-O

A. P. ERSHOV

G. I. KODZUHIN

G. P. MAKAPOV

M. I. NECHEPURENKO

I. V. POTTOSIN

Computer Center, USSR

Academy of Science

Novosibirsk, USSR

AIST-O is an experimental time-sharing system being developed for a multi-processor system formed from the M-220 computer as a working processor and the MINSK-22 as the coordinating and monitoring computer. Its purpose is to provide the computing center with experience in the theory of time-sharing, the applications of time-sharing, and the statistical analysis of information flow in such an environment. It also explores opportunities for greater access to the computing facility by means of multiple remote consoles.

 

 

Thursday, April 20

Morning

Session 26: TECHNIQUES IN PROGRAMMING LANGUAGES-PART III

Chairman:

JOHN W. CARR, III

University of Pennsylvania

Philadelphia, Pennsylvania

This session represents a broad spectrum of techniques for the development and specification of programming languages and includes: (1) Machine Synthesis of Programs; (2) Applications of Languages; (3) On-Line Programming Systems; and (4) Syntax-Oriented Recognizers and Compilers. Three distinguished panelists will offer a critique after each group of papers is presented.

 

AN ALGORITHMIC SEARCH PROCEDURE FOR PROGRAM GENERATION

M. H. HALSTEAD

G. T. UBER

K. R. GIELOW

Lockheed Missiles and Space Company

Sunnyvale, California

A computer program has been written which by brute force search takes certain sets of numeric data describing arithmetic functions and produces sequences of computer or higher level language (NELIAC) instructions that give the correct numerical results. The resulting programs include conditional expressions.

 

A SYSTEM OF MACRO-GENERATION FOR ALGOL

H. LEROY

Campagnie des Machines Bull

Paris, France

This paper describes a system and a macro-ALGOL language which, upon execution of any program in the language, produces a new program (containing ALGOL).

 

COMMEN: A NEW APPROACH TO PROGRAMMING LANGUAGES

LEO J. COHEN

Leo J. Cohen Associates

Trenton, New Jersey

By having available four syntactical categories for statement types - declarators, assignments, procedure calls, and verbs - this implemented compiler system has the ability to compound the language of verbs (analogous to macros) into a high level problem-oriented language. Its goal is to unify the several languages required to program, document, command, and converse with computers.

 

SPRINT: A DIRECT APPROACH TO LIST-PROCESSING LANGUAGES

CHARLES A. KAPPS

University of Pennsylvania

Philadelphia, Pennsylvania

This implemented growing machine-independent system manipulates "words" of up to 179 characters. A word may be a data list or program list, dependent on context. Any list has a name which itself is a word. Three basic memory areas are used: an associative memory with words retrievable by name, a collection of pushdowns, and two pushdowns executions areas. A factorial program and the computation of 44! are described.

 

SYNTAX-CHECKING AND PARSING OF CONTEXT-FREE LANGUAGES BY PUSHDOWN-STORE AUTOMATA

VICTOR B. SCHNEIDER

Northwestern University

Evanston, Illinois

This demonstrates, by examples, an algorithm that constructs computer realizable machines for syntax checking and parsing of computer programs constructed from context-free grammars. The resulting automaton is a pushdown-store, one-way automaton that accepts strings belonging to the grammar.

 

THE DESIGN AND IMPLEMENTATION OF A TABLE-DRIVEN COMPILER SYSTEM

C. L. LIU

G. D. CHANG

M.I.T. Cambridge, Massachusetts

R. E. MARKS

University of Illinois

Urbana, Illinois

The idea of syntax-directed compiler is extended in this "table-driven" compiler which, in addition to syntax tables, has tables to control allocation of storage space as well as assembly of binary codes. The system has been implemented with the goal of providing an environment for design of compilers.