The Smalltalk IDE contains an advanced debugger that allows the programmer to explore and change the program as it is executing.
Over the last years, the Smalltalk 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.
To solve this problem, the student will have to:
- implement a user interface using the Spec framework
- extend the AST Interpreter to support debugging (e.g., single step execution)
- extend the debugger model to use the AST interpreter
- integrate with Object Centric Debugging
Benefits to the Student
- learn about Abstract Syntax Trees, Debuggers and IDEs.
- learn about advanced concepts of language implementation.
- learn about design and implementation of debuggers for dynamic languages
- understand how programming languages and IDEs are implemented;
- integration into a prolific community, fond of software development and programming languages;
- potential integration as a master and/or PhD student within research groups of the community around the world (France, Switzerland, Chile, Belgium, Argentina).
Benefits to the Community
For the Smalltalk 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 the development of Smalltalk IDEs themselves.