NIL
- 1 June 1983
- proceedings article
- Published by Association for Computing Machinery (ACM)
- Vol. 18 (6), 73-82
- https://doi.org/10.1145/800226.806853
Abstract
This paper presents features of the NIL programming language which support the construction of distributed software systems: (1) a process model in which no pointers or shared data are visible, (2) interprocess communication via synchronous and asynchronous message passing, (3) compile-time typestate checking, guaranteeing module isolation and correct finalization of data, (4) dynamic binding of statically typed ports under the control of capabilities. We discuss how these features are defined in NIL, illustrate the consequences of these decisions for the design of distributed systems, and compare these decisions with those made in other programming languages with similar objectives.Keywords
This publication has 9 references indexed in Scilit:
- Mechanisms for compile-time enforcement of securityPublished by Association for Computing Machinery (ACM) ,1983
- On the unification of data and program abstraction in AdaPublished by Association for Computing Machinery (ACM) ,1983
- NIL: A high-level language for distributed systems programmingIBM Systems Journal, 1983
- A methodology for programming abstract data types in AdaPublished by Association for Computing Machinery (ACM) ,1982
- A Value Transmission Method for Abstract Data TypesACM Transactions on Programming Languages and Systems, 1982
- On the composition of processesPublished by Association for Computing Machinery (ACM) ,1982
- Guardians and actionsPublished by Association for Computing Machinery (ACM) ,1982
- Capability-based addressingCommunications of the ACM, 1974
- HYDRACommunications of the ACM, 1974