Simulation of Procedure Variables Using Ada Tasks
IEEE Transactions on Software Engineering
Communications of the ACM
CLU Reference Manual
Mechanisms for compile-time enforcement of security
POPL '83 Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
NIL: An integrated language and system for distributed programming
Proceedings of the 1983 ACM SIGPLAN symposium on Programming language issues in software systems
Nesting in Ada programs is for the birds
SIGPLAN '80 Proceedings of the ACM-SIGPLAN symposium on The ADA programming language
IBM Journal of Research and Development
Dimensions of object-based language design
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Programming languages for distributed computing systems
ACM Computing Surveys (CSUR)
Integrated Environments for Formally Well-Founded Design and Simulation of Concurrent Systems
IEEE Transactions on Software Engineering
Hi-index | 0.00 |
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.