Multi-Language Benchmark Generation via L-Systems

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: da Silva, Vinícius Francisco, Leite, Heitor, Pereira, Fernando Magno Quintão
Format: Preprint
Published: 2025
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866908722702319616
author da Silva, Vinícius Francisco
Leite, Heitor
Pereira, Fernando Magno Quintão
author_facet da Silva, Vinícius Francisco
Leite, Heitor
Pereira, Fernando Magno Quintão
contents L-systems are a mathematical formalism proposed by biologist Aristid Lindenmayer with the aim of simulating organic structures such as trees, snowflakes, flowers, and other branching phenomena. They are implemented as a formal language that defines how patterns can be iteratively rewritten. This paper describes how such a formalism can be used to create artificial programs written in programming languages such as C, C++, Julia and Go. These programs, being large and complex, can be used to test the performance of compilers, operating systems, and computer architectures. This paper demonstrates the usefulness of these benchmarks through multiple case studies. These case studies include a comparison between clang and gcc; a comparison between C, C++, Julia and Go; a study of the historical evolution of gcc in terms of code quality; a look into the effects of profile guided optimizations in gcc; an analysis of the asymptotic behavior of the different phases of clang's compilation pipeline; and a comparison between the many data structures available in the Gnome Library (GLib). These case studies demonstrate the benefits of the L-System approach to create benchmarks, when compared with fuzzers such as CSmith, which were designed to uncover bugs in compilers, rather than evaluating their performance.
format Preprint
id arxiv_https___arxiv_org_abs_2512_17616
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle Multi-Language Benchmark Generation via L-Systems
da Silva, Vinícius Francisco
Leite, Heitor
Pereira, Fernando Magno Quintão
Programming Languages
68N15
D.3.0
L-systems are a mathematical formalism proposed by biologist Aristid Lindenmayer with the aim of simulating organic structures such as trees, snowflakes, flowers, and other branching phenomena. They are implemented as a formal language that defines how patterns can be iteratively rewritten. This paper describes how such a formalism can be used to create artificial programs written in programming languages such as C, C++, Julia and Go. These programs, being large and complex, can be used to test the performance of compilers, operating systems, and computer architectures. This paper demonstrates the usefulness of these benchmarks through multiple case studies. These case studies include a comparison between clang and gcc; a comparison between C, C++, Julia and Go; a study of the historical evolution of gcc in terms of code quality; a look into the effects of profile guided optimizations in gcc; an analysis of the asymptotic behavior of the different phases of clang's compilation pipeline; and a comparison between the many data structures available in the Gnome Library (GLib). These case studies demonstrate the benefits of the L-System approach to create benchmarks, when compared with fuzzers such as CSmith, which were designed to uncover bugs in compilers, rather than evaluating their performance.
title Multi-Language Benchmark Generation via L-Systems
topic Programming Languages
68N15
D.3.0
url https://arxiv.org/abs/2512.17616