An educational software system of a tiny self-compiling C compiler, a tiny self-executing RISC-V emulator, and a tiny self-hosting RISC-V hypervisor. Selfie is a project of the Computational Systems Group at the Department of Computer Sciences of the University of Salzburg in Austria. The Selfie Project provides an educational platform for teaching undergraduate and graduate students the design and implementation of programming languages and runtime systems. The focus is on the construction of compilers, libraries, operating systems, and even virtual machine monitors. The common theme is to identify and resolve self-reference in systems code which is seen as the key challenge when teaching systems engineering, hence the name. Selfie is implemented in a single (!) file and kept minimal for simplicity. There is also a simple in-memory linker, a RISC-U disassembler, a garbage collector, L1 instruction and data caches, a profiler, and a debugger with replay.

Features

  • Selfie generates ELF binaries that run on real RISC-V hardware
  • Selfie is designed as 64-bit system and requires as such a 64-bit system to run (LP64 data model)
  • Selfie also compiles on systems that support compiling and executing 32-bit binaries
  • Selfie becomes a 32-bit system that generates and executes 32-bit binaries out-of-the-box
  • Selfie is a self-contained 64-bit, 11-KLOC C implementation of a self-compiling compiler called starc
  • The common theme is to identify and resolve self-reference in systems code

Project Samples

Project Activity

See All Activity >

License

BSD License

Follow Selfie

Selfie Web Site

Other Useful Business Software
Paessler: Easy to Use With Enterprise Power. Free Trial Icon
Paessler: Easy to Use With Enterprise Power. Free Trial

A low-code dashboard makes monitoring intuitive for any admin, while scripting and custom sensors give experts full control.

You shouldn't have to choose between a monitoring tool that's easy to use and one that's powerful enough for a complex environment. PRTG's low-code interface lets any admin build dashboards, set alerts and monitor devices without scripting, while custom sensors and full API access are there when your team needs deeper control. One platform, no compromise. Download a free 30-day trial now.
Get Free Download
Rate This Project
Login To Rate This Project

User Reviews

Be the first to post a review of Selfie!

Additional Project Details

Operating Systems

Linux, Mac, Windows

Programming Language

C

Related Categories

C Compilers, C Education Software, C Disassemblers

Registered

2022-05-25