Selfie and the Basics

Speaker:  Christoph Kirsch – Salzburg, Austria
Topic(s):  Software Engineering and Programming

Abstract

Imagine a world in which virtually everyone at least intuitively understands the fundamental principles of information and computation. In such a world computing would be as natural to people as using a calculator or making plans for the weekend. Computer science, however, is still a young field compared to others and lacks maturity, despite the enormous demand created by information technology. To address the problem we would like to encourage everyone in the computer science community to go back to their favorite topic and identify the absolute basics that they feel are essential for understanding the topic. We present here our experience in trying to do just that with programming languages and runtime systems as our favorite topic. We argue that understanding the construction of their semantics and the self-referentiality involved in that is essential for understanding computer science. We have developed selfie, a tiny self-compiling C compiler, self-executing RISC-V emulator, and self-hosting RISC-V hypervisor all implemented in a single, self-contained file using a tiny subset of C. Selfie has become the foundation of our classes on the design and implementation of programming languages and runtime systems. Teaching selfie has also helped us identify some of the absolute basics that we feel are essential for understanding computer science in general.

About this Lecture

Number of Slides:  38
Duration:  45 minutes
Languages Available:  English, German
Last Updated: 

Request this Lecture

To request this particular lecture, please complete this online form.

Request a Tour

To request a tour with this speaker, please complete this online form.

All requests will be sent to ACM headquarters for review.