The C programming language
A Value Transmission Method for Abstract Data Types
ACM Transactions on Programming Languages and Systems (TOPLAS)
Communications of the ACM
HYDRA: the kernel of a multiprocessor operating system
Communications of the ACM
On the unification of data and program abstraction in Ada
POPL '83 Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Mechanisms for compile-time enforcement of security
POPL '83 Proceedings of the 10th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Guardians and actions: linguistic support for robust, distributed programs
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
On the composition of processes
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The finalization operation for abstract types
ICSE '81 Proceedings of the 5th international conference on Software engineering
Symmetric intertask communication
ACM Transactions on Programming Languages and Systems (TOPLAS)
IBM Journal of Research and Development
Dimensions of object-based language design
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Asynchronous communication on Occam
ACM SIGPLAN Notices
Process semantics: universal axioms compositional rules, and applications
PODC '88 Proceedings of the seventh annual ACM Symposium on Principles of distributed computing
Granularity of modules in object-based concurrent systems
OOPSLA/ECOOP '88 Proceedings of the 1988 ACM SIGPLAN workshop on Object-based concurrent programming
Experience with Charlotte: Simplicity and Function in a Distributed Operating System
IEEE Transactions on Software Engineering
Interactive blackbox debugging for concurrent languages
PADD '88 Proceedings of the 1988 ACM SIGPLAN and SIGOPS workshop on Parallel and distributed debugging
Programming languages for distributed computing systems
ACM Computing Surveys (CSUR)
High-level language debugging for concurrent programs
ACM Transactions on Computer Systems (TOCS)
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
A comparison of the object-oriented and process paradigms
OOPWORK '86 Proceedings of the 1986 SIGPLAN workshop on Object-oriented programming
Viewing Ada from a process model perspective
SIGAda '85 Proceedings of the 1985 annual ACM SIGAda international conference on Ada
The Gutenberg operating system kernel
ACM '86 Proceedings of 1986 ACM Fall joint computer conference
The worm program model: an application centred point of view for distributed architecture design
EW 3 Proceedings of the 3rd workshop on ACM SIGOPS European workshop: Autonomy or interdependence in distributed systems?
Extending Typestate Checking Using Conditional Liveness Analysis
IEEE Transactions on Software Engineering
High-level language support for programming distributed systems
CASCON '91 Proceedings of the 1991 conference of the Centre for Advanced Studies on Collaborative research
CASCON '92 Proceedings of the 1992 conference of the Centre for Advanced Studies on Collaborative research - Volume 2
Concert/C: a language for distributed programming
WTEC'94 Proceedings of the USENIX Winter 1994 Technical Conference on USENIX Winter 1994 Technical Conference
A new programming methodology for long-lived software systems
IBM Journal of Research and Development
Hi-index | 0.00 |
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.