‹Programming› 2020
Mon 23 - Thu 26 March 2020 Porto, Portugal
Mon 23 Mar 2020 14:00 - 15:30 at W4 - Session the Third Chair(s): Johan Fabry

A compiler is a program that translates source code written in a particular language into another language, for instance from C to x86 machine code. Internally, the whole process is typically split into multiple phases that handle one particular aspect of this translation.Roughly speaking, one can distinguish three main phases: parsing, semantic analysis and code generation. The first phase typically consists of transforming the input into a tree-shaped representation of the program, to which the second phase assigns a meaning. The last phase consists of translating this intermediate representation into the output language.

In this session, we will focus on this last phase, and use LLVM to translate abstract syntax trees (ASTs) to executable code. LLVM is a compiler toolchain that handles code generation, while being agnostic to the input language. It is based on its own internal representation, LLVM IR, which is then transformed to machine code for a particular architecture. Our goal will be to translate a program expressed in the form of an AST into LLVM IR. This will challenge us to find and implement techniques to encode high-level language features, such as object-orientation, into a much more lower-level constructions

Mon 23 Mar

Displayed time zone: Belfast change

14:00 - 15:30
Session the ThirdCoCoDo at W4
Chair(s): Johan Fabry Raincode Labs, Belgium
14:00
90m
Demonstration
From Abstract Syntax Trees to Machine Code with LLVM
CoCoDo
Dimi Racordon University of Geneva, Centre Universitaire d'Informatique, Geneva, Switzerland