Compiler Construction with Basic Programming Languages Constructs and Generalized Interpreting Automata

by   Christiano Braga, et al.

We have been developing and applying an approach to teach compiler construction that has been showing very promising results (reported by students and the author alike), and we believe that the main reasons for that are: (i) a hands-on approach, in teams, where students actually do the job and classes are essentially meetings to present and discuss the development of their project, very few lectures; (ii) a ludic approach, where they are stimulated, for instance, to create a logo to their project, relating it to things they identify with (such as a warlock on World of Warcraft); the use of real-world project development tools, and share their successes and failures; and, last but not least, (iii) a formal semantic framework that allows for efficient execution and yet a precise way to describe standard components of a compiler together with additional validation components for programs in the language being compiled. Our formal framework is comprised by Generalized Interpreting Automata, an automata-based formalism to describe the operational semantics of programming languages that generalizes Gordon Plotkin's Interpreting Automata approach, and the Basic Programming Languages Constructs (BPLC) library, a set of programming languages constructs inspired by Peter Mosses' Component-Based Semantics.


page 1

page 2

page 3

page 4


π: Towards a Simple Formal Semantic Framework for Compiler Construction

This paper proposes π, a formal semantic framework for compiler construc...

Fundamental Constructs in Programming Languages

Specifying the semantics of a programming language formally can have man...

A Tool for Describing and Checking Natural Semantics Definitions of Programming Languages

Many universities have courses and projects revolving around compiler or...

Programming Unikernels in the Large via Functor Driven Development

Compiling applications as unikernels allows them to be tailored to diver...

Investigating Compilation Errors of Students Learning Haskell

While functional programming is an efficient way to express complex soft...

langcc: A Next-Generation Compiler Compiler

Traditionally, parsing has been a laborious and error-prone component of...

Definitions and Semantic Simulations Based on Object-Oriented Analysis and Modeling

We have proposed going beyond traditional ontologies to use rich semanti...

Please sign up or login with your details

Forgot password? Click here to reset