Towards Lakosian Multilingual Software Design Principles

06/19/2019
by   Damian M. Lyons, et al.
0

Large software systems often comprise programs written in different programming languages. In the case when cross-language interoperability is accomplished with a Foreign Function Interface (FFI), for example pybind11, Boost.Python, Emscripten, PyV8, or JNI, among many others, common software engineering tools, such as call-graph analysis, are obstructed by the opacity of the FFI. This complicates debugging and fosters potential inefficiency and security problems. One contributing issue is that there is little rigorous software design advice for multilingual software. In this paper, we present our progress towards a more rigorous design approach to multilingual software. The approach is based on the existing approach to the design of large-scale C++ systems developed by Lakos. The Lakosian approach is one of the few design methodologies to address physical design rather than just logical design. Using the MLSA toolkit developed in prior work for analysis of multilingual software, we focus in on one FFI -- the pybind11 FFI. An extension to the Lakosian C++ design rules is proposed to address multilingual software that uses pybind11. Using a sample of 50 public GitHub repositories that use pybind11, we measure how many repositories would currently satisfy these rules. We conclude with a proposed generalization of the pybind11-based rules for any multilingual software using an FFI interface.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/03/2018

Lightweight Multilingual Software Analysis

Developer preferences, language capabilities and the persistence of olde...
research
08/03/2018

Lightweight Call-Graph Construction for Multilingual Software Analysis

Analysis of multilingual codebases is a topic of increasing importance. ...
research
04/05/2022

On the Transferability of Pre-trained Language Models for Low-Resource Programming Languages

A recent study by Ahmed and Devanbu reported that using a corpus of code...
research
04/12/2023

SmartChoices: Augmenting Software with Learned Implementations

We are living in a golden age of machine learning. Powerful models are b...
research
12/03/2021

Multilingual training for Software Engineering

Well-trained machine-learning models, which leverage large amounts of op...
research
09/28/2022

Multilingual Search with Subword TF-IDF

Multilingual search can be achieved with subword tokenization. The accur...
research
12/18/2019

Towards an automatic recognition of mixed languages: The Ukrainian-Russian hybrid language Surzhyk

Language interference is common in today's multilingual societies where ...

Please sign up or login with your details

Forgot password? Click here to reset