2017Unpublished venueRequires access

The CakeML Compiler Explorer Visualizing how a verified compiler transforms expressions

Rikard Hjort, Jakob Holmgren, Christian Persson

Open publisher page 0 citations

Abstract

This report documents the development of a compiler explorer that provides insight to the inner workings of the CakeML compiler. The compiler explorer can interactively present information about an expression’s origin and descent at different stages of compilation. The compiler explorer consists of a web application presenting the expression information and the CakeML compiler with our additions that enable the tracking of expressions. The CakeML compiler is developed in the HOL4 system; the web application user interface in React and the web server in PHP. Getting insight into the inner workings of a compiler is difficult. Several tools exist for other compilers that either explain how a section of the source code relates to the compiled machine code or provide snapshots of different compiler phases. While these features are useful by themselves, combining them would give better insight into the compiler’s transformations. The compiler explorer provides such a combination. The gained insight provided by the compiler explorer can both help developers of the CakeML compiler find new optimizations and improve education about the compiler.

About this research paper

What this paper is about

This report documents the development of a compiler explorer that provides insight to the inner workings of the CakeML compiler. The compiler explorer can interactively present information about an expression’s origin and descent at different stages of compilation. The compiler explorer consists of a web application presenting the expression information and the CakeML compiler with our additions that enable the tracking of expressions. The CakeML compiler is developed in the HOL4 system; the web application user interface in React and the web server in PHP. Getting insight into the inner workings of a compiler is difficult. Several tools exist for other compilers that either explain how a section of the source code relates to the compiled machine code or provide snapshots of different compiler phases. While these features are useful by themselves, combining them would give better insight into the compiler’s transformations. The compiler explorer provides such a combination. The gained insight provided by the compiler explorer can both help developers of the CakeML compiler find new optimizations and improve education about the compiler.

Why it matters

A significance statement is not available in the OpenAlex record.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available abstract

This report documents the development of a compiler explorer that provides insight to the inner workings of the CakeML compiler. The compiler explorer can interactively present information about an expression’s origin and descent at different stages of compilation. The compiler explorer consists of a web application presenting the expression information and the CakeML compiler with our additions that enable the tracking of expressions. The CakeML compiler is developed in the HOL4 system; the web application user interface in React and the web server in PHP. Getting insight into the inner workings of a compiler is difficult. Several tools exist for other compilers that either explain how a section of the source code relates to the compiled machine code or provide snapshots of different compiler phases. While these features are useful by themselves, combining them would give better insight into the compiler’s transformations. The compiler explorer provides such a combination. The gained insight provided by the compiler explorer can both help developers of the CakeML compiler find new optimizations and improve education about the compiler.

Key concepts: Compiler, Computer science, Compiler correctness, Compiler construction, Interprocedural optimization, Programming language, Optimizing compiler, Loop optimization

Related papers

Back to paper searchBrowse research topicsOriginal source
The CakeML Compiler Explorer Visualizing how a verified compiler transforms expressions — Research Paper | ScholarLens