<meta name="robots" content="noindex" />
Background
Large software projects may typically have components written in different languages. Companies that have a large software codebase may face the issue of applying security, efficiency and quality metrics for a product spanning many languages. A developer or developer organization may choose one language for numerical computation and another for use interface implementation, or they may have inherited or be mandated to work with legacy code in one language while extending functionality with another. While there are many such drivers promoting multilingual codebases, they come with significant software engineering challenges. Although a software development environment might support multiple languages (e.g., Eclipse IDEs) it may leave the language boundaries - language interoperability - opaque. While it may be possible to automatically inspect individual language components of the codebase for software engineering metrics, it may be difficult or impossible to do this on a single accurate description of the complete multilingual codebase.
Heterogeneous or multilingual codebases arise in many cases because software has been developed over a long period by both in-house and external software developers. Libraries for numerical computation may have been constructed in FORTRAN, C and C++ for example, and front-end libraries may have been built in
JavaScript.
A multilingual codebase gives rise to many software engineering issues, including:
- Redundancy, e.g., procedures in several different language libraries for the same functionality, necessitating refractoring
- Debugging complexity as languages interact with each other in unexpected ways
- Security issues relating to what information is exposed when one language procedure is called from another
The object of the MLSA (
MultiLingual Static Analysis) Research Group is to develop software engineering tools that address large multilingual codebases in a lightweight, open and extensible fashion. One of the key tools and prerequisites for several kinds of software analysis is the call graph. The call graph is also where language boundaries directly meet. We have chosen to focus on the issues of generating multilingual call graphs using C/C++, Python and
JavaScript interoperability examples. The MLSA architecture is a lightweight architectureconcept for static analysis of multilingual software.
Permissions
- Persons/group who can view/change the page:
-- (c) Fordham University Robotics and Computer Vision