Assisting code evolution (refactoring, adaptation, parallelisation, etc.) can be handy for improving code quality and execution speed. Generally, tools assisting developers are tailored to some language, making analyses approaches hard to be applied in practice when using a different language. In this paper, we propose a cross-language framework for implementing analyses on object-oriented code. By separating the logic for computing metrics, or detecting code smells, that lets us identify the need for improvements, from code exploration, we enable developers designing high-level recommendation tools that can be effectively applied on the most common object-oriented languages, such as e.g. Java and C++. Code exploration components will provide inspection and data commonly needed for representing the details of the code, such as control and data dependencies, or object and method lists. These will be language-specific and provided by the framework itself.

JSCAN: Designing an Easy to use LLVM-Based Static Analysis Framework

Fornaia A.;Scafiti S.;Tramontana E.
2019

Abstract

Assisting code evolution (refactoring, adaptation, parallelisation, etc.) can be handy for improving code quality and execution speed. Generally, tools assisting developers are tailored to some language, making analyses approaches hard to be applied in practice when using a different language. In this paper, we propose a cross-language framework for implementing analyses on object-oriented code. By separating the logic for computing metrics, or detecting code smells, that lets us identify the need for improvements, from code exploration, we enable developers designing high-level recommendation tools that can be effectively applied on the most common object-oriented languages, such as e.g. Java and C++. Code exploration components will provide inspection and data commonly needed for representing the details of the code, such as control and data dependencies, or object and method lists. These will be language-specific and provided by the framework itself.
978-1-7281-0676-2
LLVM; Parallelism; Refactoring; Static Analysis
File in questo prodotto:
Non ci sono file associati a questo prodotto.

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: http://hdl.handle.net/20.500.11769/377429
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus 1
  • ???jsp.display-item.citation.isi??? ND
social impact