The NIL distributed systems programming language: A status report
This paper is a summary of ongoing research activities related to the programming language NIL, a high level language for concurrent and distributed systems developed at IBM Yorktown.
We first present a short summary of the major features of NIL. These include the NIL system model, which is a dynamically evolving network of loosely coupled processes, communicating by message passing; the abstract NIL computation model; and typestate, which is a refinement of type systems allowing a compiler to assume an important subset of program validation.
We then discuss issues related to providing a semantic theory for NIL, and list some general requirements a semantic model should satisfy to be applicable to practical concurrent and distributed systems. We discuss the fit between CCS, which we are studying as a possible candidate for such a semantic theory, and these requirements.
Finally we describe some recent work on transformations which map NIL programs to efficient distributed and parallel implementations.
KeywordsOutput Port Input Port Type Family Finite State Automaton Interface Type
Unable to display preview. Download preview PDF.
- [APT 80]Apt, Krzysztof, Nissim Francez and Willem P. de Roever “A Proof System for Communicating Sequential Processes ACM TOPLAS, July, 1980.Google Scholar
- [COD 70]Codd, E. F. ‘A Relational Model of Data for Large Shared Data Banks', Communications of the ACM, vol 13, No 6., June 1970.Google Scholar
- [HAI 82]Hailpern, B., Verifying Concurrent Processes Using Temporal Logic, Lecture Notes in Computer Science, no. 129, 1982.Google Scholar
- [HOA 78]Hoare, C. A. R. ‘Communicating Sequential Processes’ CACM August, 1978Google Scholar
- [KAR 83]Karjoth, Gunter ‘A Behavioral Description Language for the Formal Treatment of Protocols in Distributed Systems’ Proc. Protocol Specification, Testing and Verification, iii North Holland, June 1983Google Scholar
- [KEL 83]Keller, Robert M., and Prakash Panangaden, ‘An Archival Approach to the Semantics of Indeterminate Operators’ Draft Report, University of Utah.Google Scholar
- [LAM 83]Lamport, L., 'specifying Concurrent Program Modules’ ACM TOPLAS 5:2, April 1983 July 1978.Google Scholar
- [MIL 80]Milner, Robin ‘A Calculus of Communicating Systems', Springer-Verlag Lecture Notes in Computer Science #92, 1980.Google Scholar
- [MIS 81]Misra, Jayadev, and K. Mani Chandy ‘Proofs of Networks of Processes’ IEEE Transactions on Software Engineering July, 1981.Google Scholar
- [MIS 82]Misra, Jayadev, K. Mani Chandy and Tod Smith ‘Proving Safety and Liveness of Communicating Processes with Examples’ Proc. Principles of Distributed Computing August, 1982.Google Scholar
- [PRA 82]Pratt, V.R. ‘On the Composition of Processes’ Ninth Symposium on Principles of Programming Languages, Albuquerque NM, January 1982.Google Scholar
- [SMO 84]Smolka, S., "A CCS Semntics for NIL", IBM Research Report, in preparation.Google Scholar
- [STR 83a]Strom, R. E., "Mechanisms for Compile-Time Enforcement of Security", Tenth Symposium on Principles of Programming Languages, Austin, January 1983.Google Scholar
- [STR 83b]Strom, R. E., and Yemini, S. ‘NIL: An Integrated Language and System for Distributed Programming', IBM Research Report RC9949.Google Scholar
- [STR 84a]Strom, R. E., and Yemini, S. ‘Optimistic Recovery: An Asynchronous Approach to Fault Tolerance in Distributed Systems’ in proc. FTCS-14, June 1984, also available as IBM Research Report RC 10353.Google Scholar
- [STR 84b]Strom, R. E. and Yemini, S., 'synthesizing Distributed Protocols through Optimistic Transformations’ Proc. Fourth International Workshop on Protocol Specification, Testing and Validation, Skytop Penn. June 1984, to be published by North Holland, 1984.Google Scholar