Software Analysis And Transformation
Towards Multi-lingual Programming Environments
Tijs van der Storm, Jurgen Vinju [Science of Computer Programming, 2013]
Towards Multi-lingual Programming Environments Tijs van der Storm, - - PowerPoint PPT Presentation
S oftware Analysis And Transformation Towards Multi-lingual Programming Environments Tijs van der Storm, Jurgen Vinju [Science of Computer Programming, 2013] (a grand challenge for SLE) TOPLAS 1985 Most programming environments are much
Software Analysis And Transformation
Tijs van der Storm, Jurgen Vinju [Science of Computer Programming, 2013]
SWAT - SoftWare Analysis And Transformation
“Most programming environments are much too complex.“ “… bringing the total number of languages that must be mastered to at least four.” “One way of simplifying … is to reduce the number
languages…” “A programmer interacting with a typical computer systems has to be something of a polyglot”
SWAT - SoftWare Analysis And Transformation
the editor commands, the refactoring UI, etc. etc.
SWAT - SoftWare Analysis And Transformation
Programming languages
configuration files for using frameworks and libraries
data
meta-data
and refactoring, analysis
each of these artefacts have semantics which influences the quality of the software product
the artefacts depend on each
expected result the artefacts’ supporting tools evolve (independently) the artefacts must co-evolve
SWAT - SoftWare Analysis And Transformation
Maybe it’s not so bad! Let’s just:
what real software looks like… (some of us might…)
projects use the Reflection API in a ‘harmful’ manner [Landman2017]
depend on such Reflection via libraries.
available IDE features in Java IDEs
SWAT - SoftWare Analysis And Transformation
SWAT - SoftWare Analysis And Transformation
“In this paper we propose to view the de facto multiplicity of languages that a programmer is subjected to as a single, federated language.” “What is the syntax of this language? What is its semantics?” “How do we model name resolution, declarations, uses, control flow, data flow, and types for this language?” “Given answers to these questions, we will have a principled method of modeling cross language semantic dependency.”
SWAT - SoftWare Analysis And Transformation
full dependence relation between collaborating software artefacts written in different existing software languages “in a broad sense”
for each “federated language” which is the de-facto composition in each project
integration
systems)
SWAT - SoftWare Analysis And Transformation
intermediate semantic models, given by a shared meta-modeling language
mechanism of language artefacts at different levels
Programming Environments” [Lang 1986]
this then.
sticked our necks out far enough to have to find
SWAT - SoftWare Analysis And Transformation
problem
modelled into the underlying semantics of (almost) al .NET languages
dynamic and highly variable
dynamic semantics for all of them
enough details for any IDE support
problem; if that design becomes the de- factor standard, we can charge ahead.
SWAT - SoftWare Analysis And Transformation
and give Scala more modularity) [Tip 2014]
SWAT - SoftWare Analysis And Transformation
Let’s start there.
Applications” [Lämmel et al. 2011]
“Different programming languages can be involved in the implementation of a single software application. In these software applications, source code of one programming language interacts with code of a different language. By refactoring an artifact of one programming language, the interaction of this artifact with an artifact written in another programming language may break. We present a study on refactoring an software application that contains artifacts of different languages.”
SWAT - SoftWare Analysis And Transformation
SWAT - SoftWare Analysis And Transformation
. “… [these] assume a future world in which all software will be written in a more integrated fashion, or a world in which all existing software will be transformed into the new integrated perspective.”
“In [this] proposal the multiplicity of artifacts remains as it is. We take the reverse
engineering stance towards the languages, and the forward engineering stance towards their IDE: to make all their syntactic and semantic inter-relations manifest. “
SWAT - SoftWare Analysis And Transformation
LB’s like ASF+SDF, TXL and DMS, Eli have always been applied to reverse engineering as well as forward engineering The two application fields have to come together to make multi-language IDEs come true
SWAT - SoftWare Analysis And Transformation
= java+interf://java/util/List;
barriers
SWAT - SoftWare Analysis And Transformation
SWAT - SoftWare Analysis And Transformation
SWAT - SoftWare Analysis And Transformation