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.
- 1."Reference Manual for the Ada Programming Language", Draft Proposed ANSI Standard Document, ACM AdaTec, July 1982.Google Scholar
- 2.Fabry, F. S., "Capability Based Addressing", CACM 17, 7 July 1974. Google ScholarDigital Library
- 3.Hailpern, B. and Owicki S., "Modular Verification of Concurrent Programs", IBM Research Report RC 9130, 1981.Google Scholar
- 4.Halim, N., and Pershing, J., "A New Language for Writing Portable and Secure Systems", IBM Research Report RC 9650Google Scholar
- 5.Herlihy, M. and Liskov B., "A Value Transmission Method for Abstract Data Types", ACM TOPLAS Vol. 4 No. 4, October 1982. Google ScholarDigital Library
- 6.Kernighan, B., and Ritchie, D., The C Programming Language, Prentice-Hall, Inc., 1978. Google ScholarDigital Library
- 7.Liskov, B. and Snyder A., "Structured Exception Handling" Computation Structures Group Memo 155, MIT, December 1977.Google Scholar
- 8.Liskov, B., Scheifler, R., "Guardians and Actions: Linguistic Support for Robust, Distributed Programs", Ninth Symposium on Principles of Programming Languages, Albuquerque, 1982. Google ScholarDigital Library
- 9.Liskov, B., "On Linguistic Support for Distributed Programs", IEEE Transactions on Software Engineering, 8, 3, May 1982.Google Scholar
- 10.NIL Reference Manual, IBM T. J. Watson Research Laboratory, RC 9732.Google Scholar
- 11.Parr, F. N., and Strom, R. E., "A High Level Language for Distributed Systems Programming, IBM Systems Journal, April, 1983.Google ScholarDigital Library
- 12.Pratt, V. R., "On the Composition of Processes", Ninth Symposium on Principles of Programming Languages, Albuquerque, January 1983. Google ScholarDigital Library
- 13.Schwartz, R. L., and Melliar-Smith P. M., "The Finalization Operation for Abstract Data Types", Proc. IEEE 5th International Conference on Software Engineering, March, 1981. Google ScholarDigital Library
- 14.Sherman, M., Hisgen, A. and Rosenberg J., "A Methodology for Programming Abstract Data Types in Ada", Proc. AdaTEC Conference on ADA, October 1982.Google ScholarDigital Library
- 15.Strom, R. E., "Mechanisms for Compile-Time Enforcement of Security", Tenth Symposium on Principles of Programming Languages, Austin, January 1983. Google ScholarDigital Library
- 16.Wegner, P., "On the Unification of Data and Program Abstraction in ADA", Tenth Symposium on Principles of Programming Languages, Austin, January 1983. Google ScholarDigital Library
- 17.Wulf, W. A., et al., "HYDRA the Kernel of a Multiprocessor Operating System" CACM 17, 6 June 1974. Google ScholarDigital Library
Index Terms
- NIL: An integrated language and system for distributed programming
Recommendations
Negative UV-NIL (NUV-NIL) - A mix-and-match NIL and UV strategy for realisation of nano- and micrometre structures
This paper presents a novel strategy for aligning patterns created with nano-imprint lithography (NIL) and UV lithography, similar to a mix-and-match process, which allows for the fabrication of large and small features in a single layer of resist. The ...
Imprinted polymer stamps for UV-NIL
Thermal step and stamp nanoimprint lithography (SSIL) offers an alternative to fabricate transparent polymer stamps for UV-imprinting. The fabrication process does not require any other subsequent steps, e.g. dry etching or anti adhesive coating. In ...
NIL: An integrated language and system for distributed programming
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 ...
Comments