Introducing Certified Compilation in Education by a Functional Language Approach

06/27/2019
by   Per Lindgren, et al.
0

Classes on compiler technology are commonly found in Computer Science curricula, covering aspects of parsing, semantic analysis, intermediate transformations and target code generation. This paper reports on introducing certified compilation techniques through a functional language approach in an introductory course on Compiler Construction. Targeting students with little or no experience in formal methods, the proof process is highly automated using the Why3 framework. Underlying logic, semantic modelling and proofs are introduced along with exercises and assignments leading up to a formally verified compiler for a simplistic imperative language. This paper covers the motivation, course design, tool selection, and teaching methods, together with evaluations and suggested improvements from the perspectives of both students and teachers.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
07/26/2022

Reimplementing the Wheel: Teaching Compilers with a Small Self-Contained One

We report on a one-semester compiler construction course based on the id...
research
07/21/2017

A Verified Compiler for Probability Density Functions

Bhat et al. developed an inductive compiler that computes density functi...
research
01/03/2022

Automated Theorem Proving in the Classroom

We report on several scenarios of using automated theorem proving softwa...
research
07/26/2022

Teaching Functional Programmers Logic and Metatheory

We present a novel approach for teaching logic and the metatheory of log...
research
02/05/2020

Patterns for Name Analysis and Type Analysis with JastAdd

In the last two decades, tools have been implemented to more formally sp...
research
10/04/2020

A Course on Controllers

Over the last four years, we have developed a series of lectures, labs a...
research
03/05/2018

The Sequent Calculus Trainer with Automated Reasoning - Helping Students to Find Proofs

The sequent calculus is a formalism for proving validity of statements f...

Please sign up or login with your details

Forgot password? Click here to reset