Title | ComPy-Learn: A toolbox for exploring machine learning representations for compilers |
Publication Type | Conference Paper |
Year of Publication | 2020 |
Authors | Brauckmann, A., Goens, A., Castrillon, J. |
Conference Name | 2020 Forum for Specification and Design Languages (FDL) |
Keywords | Clang, Clang compiler, Code Representations, compiler heuristics, compiler security, compilers, compositionality, ComPy-Learn, developer productivity, empirical evaluation, graph representations, learning (artificial intelligence), LLVM, LLVM compiler backend, machine learning, Metrics, Optimization, Pipelines, Predictive models, program code, program compilers, program diagnostics, Program processors, pubcrawl, public domain software, Resiliency, Scalability, software engineering, software engineering tools, software performance, syntax-level language information, Task Analysis, Tools, Training, Vulnerability prediction |
Abstract | Deep Learning methods have not only shown to improve software performance in compiler heuristics, but also e.g. to improve security in vulnerability prediction or to boost developer productivity in software engineering tools. A key to the success of such methods across these use cases is the expressiveness of the representation used to abstract from the program code. Recent work has shown that different such representations have unique advantages in terms of performance. However, determining the best-performing one for a given task is often not obvious and requires empirical evaluation. Therefore, we present ComPy-Learn, a toolbox for conveniently defining, extracting, and exploring representations of program code. With syntax-level language information from the Clang compiler frontend and low-level information from the LLVM compiler backend, the tool supports the construction of linear and graph representations and enables an efficient search for the best-performing representation and model for tasks on program code. |
DOI | 10.1109/FDL50818.2020.9232946 |
Citation Key | brauckmann_compy-learn_2020 |