Google Summer of Code 2009 Ideas/PrologIDE
The ide4edu doesn't really have a Prolog IDE as of yet. A bit of work has been done which incorporates a previously developed, SWING-based Prolog IDE into an editor, using the SWT-AWT bridge. It's fairly ugly. The main portion of this project would be to strip the GUI from the engine and create a proper Eclipse-like IDE for the Prolog interpreter. Another goal is to abstract out the notion of the interpreter, so that different Prolog interpreters can be used (this is similar to what is done in the SchemeLite IDE).
The first task for this project would be to separate the UI from the Prolog Interpreter. The previous UI will be thrown away. The interpreter will remain and will be hooked up after the new UI is implemented. This task mostly just consists of pulling the interpreter out into its own isolated bundle of code.
To provide support for multiple interpreters, an interface needs to be broken out and documented. The isolated interpreter will need to implement this interface, and an extension point will need to be created. This will provide support for other prolog interpreters other than the above-mentioned one.
- Design the user interface for the prolog editor and evaluator. Maintaining similarities with the SchemeLite IDE and other Eclipse-based IDEs is a good thing. Ideas include an editor area, where definitions are given, evaluator view, where queries can be run, and a Prolog perspective. (one week)
- Implement the above design, after approval and feedback. Breakdown:
- Editor Area, with syntax highlighting and possibly code completion (two weeks) - Evaluator View, which runs the queries through the interpreter (two weeks) - Prolog Perspective - provide a nice perspective centred around prolog development. (one week)
Schedule and Milestones
- Isolated prolog interpreter - Interpreter interface and extension point - Basic Prolog perspective with primitive editor and evaluator
- Finished editor area with syntax highlighting and code completion - Completed evaluator view
- misc. UI improvements - bug fixing and cleanup