Report Number: CS-TR-81-867
Institution: Stanford University, Department of Computer Science
Title: ADAM - an Ada based language for multi-processing
Author: Luckham, David C.
Author: Larsen, Howard J.
Author: Stevenson, David R.
Author: Henke, Friedrich W. von
Date: July 1981
Abstract: Adam is an experimental language derived from Ada. It was
developed to facilitate study of issues in Ada
implementation. The two primary objectives which motivated
the development of Adam were: to program supervisory packages
for multitask scheduling, and to formulate algorithms for
compilation of Ada tasking.
Adam is a subset of the sequential program constructs of Ada
combined wlth a set of parallel processing constructs which
are lower level than Ada tasking. In addition, Adam places
strong restrictions on sharing of global objects between
processes. Import declarations and propagate declarations are
A compiler has been implemented in Maclisp on a DEC PDP-10.
It produces assembly code for a PDP-10. It supports separate
compilatlon, generics, exceptions, and parallel processes.
Algorithms translating Ada tasking into Adam parallel
processing have been developed and implemented. An
experimental compiler for most of the final Ada language
design, including task types and task rendezvous constructs,
based on the Adam compiler, is presently available on
PDP-10's. This compiler uses a procedure call implementation
of task rendezvous, but wlll be used to develop and study