lunduniversity.lu.se

Computer Science

Faculty of Engineering, LTH

2019 and later

CS MSc Thesis Presentation 25 January 2024

Föreläsning

From: 2024-01-25 11:15 to 12:00
Place: E:2405 (Glasburen)
Contact: birger [dot] swahn [at] cs [dot] lth [dot] se


One Computer Science MSc thesis to be presented on 25 January

Thursday, 25 January there will be a master thesis presentation in Computer Science at Lund University, Faculty of Engineering.

The presentation will take place in E:2405 (Glasburen).

Note to potential opponents: Register as an opponent to the presentation of your choice by sending an email to the examiner for that presentation (firstname.lastname@cs.lth.se. Do not forget to specify the presentation you register for! Note that the number of opponents may be limited (often to two), so you might be forced to choose another presentation if you register too late. Registrations are individual, just as the oppositions are! More instructions are found on this page.)


11:15-12:00 in E:2405 (Glasburen)

Presenter: Nicholas Boyd Isacsson
Title: Type Checker Generation using Reference Attribute Grammars
Examiner: Niklas Fors
Supervisor: Christoph Reichenbach

Static type checkers are a popular method for early detection of bugs in computer programs, by ensuring the correct data types are used throughout the program. One approach for implementing type checkers are Reference Attribute Grammars (RAGs), a formalism for specifying the static semantics of programming languages by declaring attributes on an abstract tree-representation of the program, and is used by the JastAdd meta-compilation system. This report contains a study on the usability of JastAdd to programmatically generate executable type checkers from syntax-directed typing rules. This aims to provide integration with existing compilers implemented with JastAdd, as well as a playground for type systems usable as an educational tool. We find RAGs to be a flexible model for syntax-directed typing rules, and our software was able to support simple values, nodes with premises placing demands on their children, and those with rules requiring type variables. It proved difficult to provide compile-time verification of the typing rules, and further work is required to extend the compiler to support type environments, a necessity for most real-world type systems.

Link to popular science summary: To be uploaded