Modelling programming language semantics using a common semantic model
Cong Phuoc Huynh
Department of Computer Science
University of Canterbury
Software Engineers are interested in understanding software structure in order to manage its complexity, and to assure and improve its quality. Semantic models can inform tools to communicate this information to humans. The .NET framework provides a common semantic underpinning for a wide range of programming languages in an intermediate language. Nevertheless, there is a semantic gap between the intermediate language and specific programming languages. This research aims to model the mapping between the common semantic concepts and programming language specific concepts.
The main benefit of the mapping is to allow us to define metrics, heuristics and visualizations on a set of common semantics and to compare them rigourously across various programming languages.
We propose an architecture for mapping the semantics of multiple programming languages to .NET. In addition, we analyze and design a bidirectional mapping between Java and .NET as part of this architecture. The mapping model is implemented based on existing Java and .NET semantic
models, and has been verified on a number of Java and .NET applications.