Submitted: July 2019

Abstract

PseuCo is a programming language created for teaching concurrency in the lecture “Nebenläufige Programmierung” (NP, “concurrent programming” in English). It supports shared variables like Java and message passing like Go. It can be translated to Java with a pseuCo-to-Java compiler.

Multiple threads reading and writing shared variables in both pseuCo and Java is a common situation when data races are discussed in this lecture. Reading and writing the same variable can happen in one source code line, such as n--, but it would be clearer to see them as individual operations in separate lines, thus easier to explain data races.

The Java Debugger (jdb), with a command-line user interface though, can step deeper into bytecode lines. One bytecode line contains only one instruction and solves the read-and-write on one line problem. IDEs, such as Eclipse and IntelliJ IDEA, have a graphical user interface (GUI), but only support stepping through source code lines.

The debugger to be presented in this thesis is a debugger with basic functionalities plus the advantage of an IDE and the jdb: a GUI and a stepping into bytecode functionality.