Litcius/Paper detail

ExeBench: an ML-scale dataset of executable C functions

Jordi Armengol-Estapé, Jackson Woodruff, Alexander Brauckmann, José Wesley de Souza Magalhães, Michael O’Boyle

202221 citationsDOI

Abstract

Machine-learning promises to transform compilation and software engineering, yet is frequently limited by the scope of available datasets. In particular, there is a lack of runnable, real-world datasets required for a range of tasks ranging from neural program synthesis to machine learning-guided program optimization. We introduce a new dataset, ExeBench, which attempts to address this. It tackles two key issues with real-world code: references to external types and functions and scalable generation of IO examples. ExeBench is the first publicly available dataset that pairs real-world C code taken from GitHub with IO examples that allow these programs to be run. We develop a toolchain that scrapes GitHub, analyzes the code, and generates runnable snippets of code. We analyze our benchmark suite using several metrics, and show it is representative of real-world code. ExeBench contains 4.5M compilable and 700k executable C functions. This scale of executable, real functions will enable the next generation of machine learning-based programming tasks.

Topics & Concepts

ExecutableToolchainComputer scienceBenchmark (surveying)ScalabilityProgramming languageCode (set theory)SuiteArtificial intelligenceSource codeSoftwareScale (ratio)Scope (computer science)Source lines of codeKey (lock)Machine learningOperating systemSet (abstract data type)ArchaeologyGeodesyPhysicsQuantum mechanicsHistoryGeographySoftware Engineering ResearchSoftware Testing and Debugging TechniquesMachine Learning and Data Classification