Foundations for the study of software architecture
ACM SIGSOFT Software Engineering Notes
The mythical man-month (anniversary ed.)
The mythical man-month (anniversary ed.)
Automated support for seamless interoperability in polylingual software systems
SIGSOFT '96 Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering
Software interoperability: principles and practice
Proceedings of the 21st international conference on Software engineering
Data on the Web: from relations to semistructured data and XML
Data on the Web: from relations to semistructured data and XML
Java Native Interface: Programmer's Guide and Reference
Java Native Interface: Programmer's Guide and Reference
Architectural Mismatch: Why Reuse Is So Hard
IEEE Software
Architectural Mismatch: Why Reuse Is So Hard
IEEE Software
Revised Papers from the Second International Workshop on Engineering Distributed Objects
EDO '00 Revised Papers from the Second International Workshop on Engineering Distributed Objects
The Exu Approach to Safe, Transparent and Lightweight Interoperability
COMPSAC '01 Proceedings of the 25th International Computer Software and Applications Conference on Invigorating Software Development
IWSSD '98 Proceedings of the 9th international workshop on Software specification and design
Mockingbird: Flexible Stub Compilation from Pairs of Declarations
ICDCS '99 Proceedings of the 19th IEEE International Conference on Distributed Computing Systems
Polylingual systems: an approach to seamless interoperability
Polylingual systems: an approach to seamless interoperability
Finding Errors in Interoperating Components
IWICSS '07 Proceedings of the Second International Workshop on Incorporating COTS Software into Software Systems: Tools and Techniques
Architectural Mismatch in Service-Oriented Architectures
SDSOA '07 Proceedings of the International Workshop on Systems Development in SOA Environments
Checking type safety of foreign function calls
ACM Transactions on Programming Languages and Systems (TOPLAS)
Superimposition: a language-independent approach to software composition
SC'08 Proceedings of the 7th international conference on Software composition
Language-independent reference checking in software product lines
FOSD '10 Proceedings of the 2nd International Workshop on Feature-Oriented Software Development
Deriving configuration interfaces from feature models: a vision paper
Proceedings of the Sixth International Workshop on Variability Modeling of Software-Intensive Systems
Polymorphic type inference for the JNI
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
Type checking annotation-based product lines
ACM Transactions on Software Engineering and Methodology (TOSEM)
Hi-index | 0.00 |
Building systems from existing applications writtenin two or more languages is common practice. Such systemsare polylingual. Polylingual systems are relatively easyto build when the number of APIs needed to achieve languageinteroperability is small. However, when the numberof distinct APIs become large, maintaining and evolvingpolylingual systems becomes a notoriously difficult task.In this paper, we present a simple, practical, and effectiveway to develop, maintain, and evolve large-scale polylingualsystems. Our approach relies on recursive type systemswhose instances can be manipulated by reflection. Foreignobjects (i.e. objects that are not defined in a host programminglanguage) are abstracted as graphs and path expressionsare used for accessing and manipulating data. Pathexpressions are implemented by type reification 驴 turningforeign type instances into first-class objects and enablingaccess to and manipulation of them in a host programminglanguage. Doing this results in multiple benefits, includingcoding simplicity and uniformity that we demonstrate in acomplex commercial project.