COMEX: A Tool for Generating Customized Source Code Representations
Learning effective representations of source code is critical for any Machine Learning for Software Engineering (ML4SE) system. Inspired by natural language processing, large language models (LLMs) like \textit{Codex} and \textit{CodeGen} treat code as generic sequences of text and are trained on huge corpora of code data, achieving state of the art performance on several software engineering (SE) tasks. However, valid source code, unlike natural language, follows a strict structure and pattern governed by the underlying grammar of the programming language. Current LLMs do not exploit this property of the source code as they treat code like a sequence of tokens and overlook key structural and semantic properties of code that can be extracted from code-views like the Control Flow Graph (CFG), Data Flow Graph (DFG), Abstract Syntax Tree (AST), etc. Unfortunately, the process of generating and integrating code-views for every programming language is cumbersome and time consuming. To overcome this barrier, we propose our tool \textit{COMEX} - a framework that allows researchers and developers to create and combine multiple code-views which can be used by machine learning (ML) models for various SE tasks. Some salient features of our tool are: (i) it works directly on source code (which need not be compilable), (ii) it currently supports Java and C#, (iii) it can analyze both method-level snippets and program-level snippets by using both intra-procedural and inter-procedural analysis, and (iv) it is easily extendable to other languages as it is built on \emph{tree-sitter} - a widely used incremental parser that supports over 40 languages. We believe this easy-to-use code-view generation and customization tool will give impetus to research in source code representation learning methods and ML4SE. The demonstration of our tool can be found at https://youtu.be/GER6U87FVbU
Paper (COMEX_tool_demo.pdf) | 952KiB |
Wed 13 SepDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
15:30 - 17:00 | Code Generation 2Research Papers / NIER Track / Tool Demonstrations at Plenary Room 2 Chair(s): Marianne Huchard LIRMM | ||
15:30 12mTalk | COMEX: A Tool for Generating Customized Source Code Representations Tool Demonstrations Debeshee Das Indian Institute of Technology Tirupati, Noble Saji Mathews University of Waterloo, Canada, Alex Mathai , Srikanth Tamilselvam IBM Research, Kranthi Sedamaki Indian Institute of Technology Tirupati, Sridhar Chimalakonda IIT Tirupati, Atul Kumar IBM India Research Labs Pre-print Media Attached File Attached | ||
15:42 12mTalk | Fast and Reliable Program Synthesis via User Interaction Research Papers Yanju Chen University of California at Santa Barbara, Chenglong Wang Microsoft Research, Xinyu Wang University of Michigan, Osbert Bastani University of Pennsylvania, Yu Feng University of California at Santa Barbara File Attached | ||
15:55 12mTalk | From Misuse to Mastery: Enhancing Code Generation with Knowledge-Driven AI Chaining Research Papers Xiaoxue Ren Zhejiang University, Xinyuan Ye Australian National University, Dehai Zhao CSIRO's Data61, Zhenchang Xing , Xiaohu Yang Zhejiang University File Attached | ||
16:08 12mTalk | Generative Type Inference for Python Research Papers Yun Peng Chinese University of Hong Kong, Chaozheng Wang The Chinese University of Hong Kong, Wenxuan Wang Chinese University of Hong Kong, Cuiyun Gao Harbin Institute of Technology, Michael Lyu The Chinese University of Hong Kong Pre-print File Attached | ||
16:21 12mTalk | Compiler Auto-tuning via Critical Flag Selection Research Papers | ||
16:34 12mTalk | Enhancing Code Safety in Quantum Intermediate Representation NIER Track File Attached | ||
16:47 12mTalk | CAT-LM: Training Language Models on Aligned Code And Tests Research Papers Nikitha Rao Carnegie Mellon University, Kush Jain Carnegie Mellon University, Uri Alon Carnegie Mellon University, Claire Le Goues Carnegie Mellon University, Vincent J. Hellendoorn Carnegie Mellon University Media Attached File Attached |