Effects, Capabilities, and Boxes
This is the artifact accompanying the paper:
Effects, Capabilities, and Boxes: From Scope-based Reasoning to Type-based Reasoning and Back
by Jonathan Immanuel Brachthäuser, Philipp Schuster, Edward Lee, and Aleksander Boruch-Gruszecki
In Proceedings of the International Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), 2022.
Learn MoreIn this interactive demo we will take you through a brief introduction to System C and a quick tour of its features.
You can find all examples from the paper on this page.
Editors
In general, you will find a lot of small code snippets that can you can typecheck and run in the browser. For example, this is a program that prints out “Hello World!”. Try clicking typecheck and run to load the editor (this can take a while the first time).
def sayHello(): Unit {
println("Hello World!")
}
The editor comes with basic support for System C – try hovering over println
!
You can also modify the program and then click typecheck and run again to run the typechecker.
Alternatively, in the editor you can also use the keybinding <CTRL+Enter>
on Windows or <CMD+Enter>
on MacOS.
REPLs
Sometimes you will also find REPL windows. To run the code example, just click the run button!
sayHello()
Like with other editors, you can freely change the REPL input. Since REPLs are always single-line, you can simply press <ENTER>
instead of clicking run.