Debugging Ambient-Oriented Programs
Context
AmbientTalk[3] is a distributed programming language especially designed for developing applications deployed on mobile ad hoc networks. AmbientTalk is a small, dynamically typed object-oriented language which combines elements from languages such as Scheme (closures), Smalltalk (pure OO) and Self (prototypes and delegation). What makes the language suitable for developing mobile ad hoc applications is its actor-based, event-driven concurrency model in combination with its built-in peer-to-peer, publish/subscribe service discovery abstractions. The language is a so-called ambient-oriented programming language which treats network partitions as a normal mode of operation.
Problem
Program errors are hard to find because of the cause-effect gap between the time when an error occurs and the time when the error becomes apparent to the programmer [7]. Currently, AmbientTalk has very limited debugging support. Similar to traditional (sequential) debugging techniques, it provides a stack trace upon an exception. However, there is no support for inter-actor debugging, so there are no means to trace causality links when sending asynchronous messages amongst actors.
Objective
The goal of the research training and thesis proposal is to define debugging support for ambient-oriented programming and implement a first prototype in AmbientTalk. More concretely, we foresee the following steps:
-Literature study about alternative debugging frameworks: omniscient debugging [1,2,4], event-based debugging [5], replay-based debugging [6], query-based debugging [7], etc.
-Learn AmbientTalk and explore the Urbiflock framework, a non-trivial application written in AmbientTalk.
-Comparative study of the possible solutions for debugging ambient-oriented programs.
-Analysis of the specific requirements for an ambient-oriented debugger. For example, how to deal with dedicated ambient-oriented features such as classless object model, asynchronous message passing, first-class messages, futures, mirror-based reflection, etc.
-Prototype a debugger for AmbientTalk based on the analysis. Interesting features include, but are not limited to:
- get event trace.
- inspecting objects ( similar to SmallTalk inspector).
- inspecting the actor mailbox.
- inspecting (local) far references.
For more information contact us or come to visit us on Friday, May 8th in the afternoon at Prog lab from 3pm.
Stijn Timbermont
email: stimberm at vub …
office: 10F733
Elisa Gonzalez Boix
email: egonzale at vub …
office 10F731
References
[1] G. Pothier and É. Tanter. Back to the Future: Omniscient Debugging. IEEE Software, 2009. (bib).
[2] http://pleiad.dcc.uchile.cl/tod/
[3] T. Van Cutsem, S. Mostinckx, E. Gonzalez Boix, J. Dedecker, and W. De Meuter. AmbientTalk: Object-oriented Event-driven Programming in Mobile Ad hoc Networks. International Conference of the Chilean Computer Science Society (SCCC2007), 8-9 November, 2007.
[4] www.lambdacs.com/debugger/
[5] http://www.erights.org/elang/tools/causeway/
[6] http://www.replaydebugging.com/
[7] Lencevicius, Hölzle and Singh. Dynamic Query-Based Debugging of Object-Oriented Programs, Journal Automated Software Engineering, Vol. 10, num 1, 2003.