A Stub Generator for Multilanguage RPC in Heterogeneous Environments
IEEE Transactions on Software Engineering - Special issue on distributed systems
Systematic software development using VDM
Systematic software development using VDM
A Remote Procedure Call Facility for Interconnecting Heterogeneous Computer Systems
IEEE Transactions on Software Engineering
Understanding Z: a specification language and its formal semantics
Understanding Z: a specification language and its formal semantics
Network computing system reference manual
Network computing system reference manual
Automated support for seamless interoperability in polylingual software systems
SIGSOFT '96 Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering
Flick: a flexible, optimizing IDL compiler
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
A tool framework for static and dynamic analysis of object-oriented software with templates
Proceedings of the 2000 ACM/IEEE conference on Supercomputing
Flexible and Optimized IDL Compilation for Distributed Applications
LCR '98 Selected Papers from the 4th International Workshop on Languages, Compilers, and Run-Time Systems for Scalable Computers
Concert/C: a language for distributed programming
WTEC'94 Proceedings of the USENIX Winter 1994 Technical Conference on USENIX Winter 1994 Technical Conference
Multi-protocol web services for enterprises and the grid
EuroWeb'02 Proceedings of the 2002 international conference on EuroWeb
SIR: inter-program concurrency support for SR programs
Computer Languages, Systems and Structures
Hi-index | 0.00 |
In the Concert multilanguage distributed programming system, interface specification is the responsibility of programming languages, not a separate IDL. However, an IDL is still necessary in order to define equivalence between declarations in different languages. A single representation is also desirable internally to economize on aspects of the implementation. Consequently, Concert has an IDL as an intermediate language, produced by compiler front-ends and not normally manipulated by programmers. It is formally separated into a contract, which defines interoperability and an endpoint modifier, which captures the local choice of representation. Only contracts are used to define interface equivalence. Our choice of what kinds of information to put in the contract was motivated by a desire to be minimal, thereby enabling maximum feasible interoperability between different expressions of the same abstraction in the same or different languages.