Be My Guest: Normalizing and Compiling Programs using a Host Language
Licentiate thesis, 2020
In practice, on the other hand, compilation is a process that transforms programs in a language to machine code, and thus makes the programming
language a usable one. In this thesis, we investigate means of normalizing and compiling programs in a language using another language as the "host".
Leveraging a host to work with programs of a "guest" language enables reuse of the host's features that would otherwise be strenuous to develop.
The specific tools of interest are Normalization by Evaluation and Embedded Domain-Specific Languages, both of which rely on a host language for their purposes. These tools are applied to solve problems in three different domains: to show that exponentials (or closures) can be eliminated from a categorical combinatory calculus, to propose a new proof technique based on normalization for showing noninterference, and to enable the programming of resource-constrained IoT devices from Haskell.
programming languages
embedded domain-specific languages
normalization by evaluation
Author
Nachiappan Valliappan
Chalmers, Computer Science and Engineering (Chalmers), Information Security
Exponential Elimination for Bicartesian Closed Categorical Combinators
ACM International Conference Proceeding Series,;(2019)p. 1-13
Paper in proceeding
Simple Noninterference by Normalization
Proceedings of the ACM Conference on Computer and Communications Security,;(2019)p. 61-72
Paper in proceeding
Towards Secure IoT Programming in Haskell
Haskell 2020 - Proceedings of the 13th ACM SIGPLAN International Symposium on Haskell, co-located with ICFP 2020,;(2020)p. 136-150
Paper in proceeding
Octopi: Säker Programering för Sakernas Internet
Swedish Foundation for Strategic Research (SSF) (RIT17-0023), 2018-03-01 -- 2023-02-28.
Areas of Advance
Information and Communication Technology
Subject Categories (SSIF 2011)
Computer Science
Computer Systems
Publisher
Chalmers