Viewing Ada from a process model perspective
Abstract
This paper compares two programming language paradigms for large software systems. The first is based upon nested block structure and static binding, augmented with abstract data types and concurrency, as exemplified by Ada. The second is based upon processes with disjoint data spaces which communicate by passing messages over dynamically bound ports as exemplified by the process model of NIL. We argue that the process model paradigm is simpler, has better support for modularity and programming-in-the-large, and results in more reliable and maintainable programs. We suggest usage restrictions and language extensions which allow Ada to support a process model with minimal change to the language. We show that our suggested modification of Ada yields a considerably simpler language.