Design of Large-Scale Polylingual Systems

  • Authors:
  • Mark Grechanik;Don Batory;Dewayne E. Perry

  • Affiliations:
  • University of Texas at Austin;University of Texas at Austin;University of Texas at Austin

  • Venue:
  • Proceedings of the 26th International Conference on Software Engineering
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.