Concurrency, Device Abstraction and Real-Time Processing in AMPLE

The development of the Automated Manufacturing Programming Language Environment (AMPLE) at the US National Institute of Standards and Technology, formerly the National Bureau of Standards, began in 1984. The technical goal of this project was to design and implement a system that would permit reliable off-line programming of workstation-level industrial equipment [7, 9, 11, 12]. The first decision that had to be made was the selection of the family of programming languages to which the target system would belong. Because it was very clear that this selection would profoundly affect the final design, the alternative possibilities were thoroughly explored during the summer of 1984, leading finally to the selection of the Lisp family. This selection was then, and remains even now, a controversial one, since the natural audience for AMPLE would be more comfortable with a derivative of FORTRAN [6]. This decision was based on an analysis of the technical requirements that AMPLE would have to satisfy, and particularly upon the requirement that the system have at least that degree of symbolic processing capability to be able to generate code for a large number manufacturing devices, which have their own native languages.