Tools and Materials for IN[59]570, Spring 2023

The course IN5570 (MSc) / IN9570 (PhD) on Distributed Objects teaches the fundamental principles of applying object-orientation in a distributed setting. The course is taught using the Emerald programming language, an object-oriented language (in a classical, pre-Java sense) for programming distributed applications.

In this folder, you will find the relevant course materials and handed out source code for exercises and assignments for the 2025 instance of the course.

Getting Started, using Docker.

  1. Install Docker.
  2. Using the provided Makefile, run the command "make environment".
  3. Alternatively run the command "make fresh" (may require configuration if you are not running Linux with gnome).

Compiling and running programs.

The container file-system is ephemeral (will disappear after you close the container). However, it will mount your current directory as a volume. Your changes in this directory will persist.

The container provides two programs ec and emx. The former compiles an emerald program, the latter runs it.

Emerald Modes

Emerald modes are available for:

If you make a mode, let us know!

Pro tip of the day.

The -R flag connects an emerald node to another node. So

emx -R<host-identifier>:<host-port> [program.x]

Connects the runtime of an emerald node to the runtime of another.