Title :
Design of large-scale polylingual systems
Author :
Grechanik, Mark ; Batory, Don ; Perry, Dewayne E.
Author_Institution :
UT Center for Adv. Res. in Software Eng., Univ. of Texas at Austin, TX, USA
Abstract :
Building systems from existing applications written in two or more languages is common practice. Such systems are polylingual. Polylingual systems are relatively easy to build when the number of APIs needed to achieve language interoperability is small. However, when the number of distinct APIs become large, maintaining and evolving polylingual systems becomes a notoriously difficult task. In this paper, we present a simple, practical, and effective way to develop, maintain, and evolve large-scale polylingual systems. Our approach relies on recursive type systems whose instances can be manipulated by reflection. Foreign objects (i.e. objects that are not defined in a host programming language) are abstracted as graphs and path expressions are used for accessing and manipulating data. Path expressions are implemented by type reification - turning foreign type instances into first-class objects and enabling access to and manipulation of them in a host programming language. Doing this results in multiple benefits, including coding simplicity and uniformity that we demonstrate in a complex commercial project.
Keywords :
application program interfaces; open systems; software architecture; software maintenance; software prototyping; API; application programming interface; language interoperability; large-scale polylingual systems; recursive type systems; system design; system development; system evolution; system maintenance; Application software; Buildings; Computer languages; Data mining; Large-scale systems; Reflection; Software engineering; Software systems; Turning; Web pages;
Conference_Titel :
Software Engineering, 2004. ICSE 2004. Proceedings. 26th International Conference on
Print_ISBN :
0-7695-2163-0
DOI :
10.1109/ICSE.2004.1317458