Debugger Improvements

Research Team:
Team leader (HDR):
Stéphane Ducasse
Project leader:
Stéphane Ducasse and Marcus Denker

Project Context

Pharo ( is a new open-source Smalltalk-inspired programming language and environment [2]. It provides a platform for innovative development both in industry and research.


The Pharo IDE contains an advanced debugger that allows the programmer to explore and change the program as it is executing.

Over the last years, the Pharo community has realized a number of experiments and libraries that, taken together, form a powerful core of a new, even more advance debugger subsystem:

  • a new Debugger Model
  • A first graphical user interface for this model
  • an AST (Abstract Syntax Tree) Interpreter
  • Research in the direction of Object Centric Debugging

The goal of this internship is to take the exiting code and build a new debugger infrastructure.

Work plan

To solve this problem, the student will have to:

  • Implement a User Interface using the Spec Framework of Pharo 2.0
  • Extend the AST Interpreter to support debugging (eg. single step execution)
  • Extend the Debugger Model to use AST Interpreter
  • Integrate with Object Centric Debugging

Benefits for the Pharo Community

For the Pharo community, the current debugger is an indispensable tool for daily development. An improved debugger will have a direct impact on the productivity of every developer and will, last but not least, support even the continues further development of Pharo itself.

Benefits for the student

  • Learn about Abstract Syntax Trees, Debuggers and IDEs.
  • Learn more about advanced concepts of language implementation.
  • Design and implementation of debuggers for dynamic languages
  • Integration into a prolific research group, fond of software development and programming languages;
  • Understanding of how programming languages and IDEs are implemented;
  • Potential integration as a master and/or PhD student either within the group or within one of its numerous partners around the world (Switzerland, Chile, Belgium, Argentina, Italy).


[1] Jorge Ressia. Object-Centric Reflection. PhD thesis, University of Bern, October 2012.

[2] Benjamin Van Ryseghem, Stéphane Ducasse, and Johan Fabry. Spec, a framework for the specification and reuse of UIs and their models. In Proceedings of ESUG International Workshop on Smalltalk Technologies (IWST 2012)

[3] Vrany, Jan; Bergel, Alexandre: The debbuggable interpreter design pattern

[4] Andrew Black, Stéphane Ducasse, Oscar Nierstrasz, Damien Pollet, Damien Cassou and Marcus Denker, Pharo by Example, Square Bracket Associates, 2009, ISBN 978-3-9523341-4-0