Enabling Go Program Analysis in Rascal

Abstract

In this paper, we present early work on the foundation of a program analysis framework for the Go programming language. This framework, named Go AiR (Analysis in Rascal), currently provides support for extracting abstract syntax trees from Go source code, working with multiple Go projects and multiple versions of a single Go project (based on Git version history), and code exploration through the use of Rascal features for working with representations of source code. We discuss the structure of the framework, describe the mapping from Go to Rascal and how this was tested, present sample code showing how the framework can be used to explore Go source code, and discuss future extensions to the framework to support program analysis and verification.

Publication
Proceedings of the 23rd IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM 2023), Engineering track
Mark Hills
Mark Hills
Associate Professor

My research interests include programming languages, program analysis, and software engineering.