wiki:Projects/EclipseForGOAL

Eclipse for GOAL

Introduction

The development environment distributed with GOAL has been built more or less from scratch using a third-party editor called jEdit. As a result, more sophisticated functionality that is available in mature environments such as Eclipse is missing in GOAL's development environment. Examples of what is missing include sophisticated file management, syntax error highlighting integrated into the editor, and subversion support.

The goal of this project is to create an Eclipse plugin that provides an integrated development environment for GOAL within this well-known environment. This project is the MSc project of Vincent Koeman at the Delft University of Technology. Vincent also developed a plugin for NetBeans, which can be found here. The Netbeans plugin provides support for writing programs, e.g., improved syntax highlighting, project and file management, in-line errors and warnings, subversion support, SWI-Prolog facilities, auto-updating, and more. It does not provide support, however, for debugging GOAL agent programs. It is the aim of this project to also integrate debugging support for GOAL into the Eclipse environment.

Approach

The following plan has been created for creating a more mature GOAL IDE:

  1. Code writing (creation) support:
    1. Make all standard text editing and project management features available, including:
      • file content outline
      • in-line error display while editing
      • auto-completion
      • syntax highlighting
      • code browsing, e.g., links that allow to jump to definitions of predicates, actions, modules; queries that generate references to locations of use of defined predicates, etc.
    2. Embed a documentation ('Javadoc-like') feature in the editor that results in proper code documentation. This should document the rules in a GOAL agent program but also generate an 'ontology' automatically. An ontology for a GOAL agent provides an overview and description of all predicates, percepts, and actions used in the program, and currently needs to be manually created by GOAL developers.
    3. Integration of basic static analysis functionality, including the detection of defined but unused predicates, actions, and modules and used predicates, etc. which are undefined; option to generate warnings when basic design guidelines are violated such as the use of an adopt or drop action other than the event module or a module that is (only) called from the event module.
  2. Execution support:
    1. Provide functionality for running and pausing a GOAL multi-agent system.
    2. Provide breakpoint functionality.
    3. Develop (new) functionality for introspecting the state of an agent. Cognitive overload should be avoided here by creating, e.g., to many windows while sufficient information should be displayed to facilitate debugging. An additional requirement is to take performance of the display functionality into account which is a problem in the IDE developed from scratch for GOAL.
    4. Develop functionality to display messages that are exchanged between agents.
    5. Develop support for navigating through a state history of an agent program.
  3. Debugging Support:
    1. Provide debugging support such as display of relevant features of an agent's state for evaluating a rule's condition and an action's precondition.
    2. Provide support for code-stepping.
    3. Provide Prolog (visual) trace features in order to more easily debug a knowledge-base.
    4. Integrate automated testing support (automated testing support is developed by another project).
  4. Modification support?:
    1. Add refactoring support. If time allows, it would a nice-to-have to add support for refactoring program code.
  5. Testing Framework
    1. Integrate automated testing support (automated testing support is developed by another project).

Literature Research

A survey of the literature on development environments in general and specifically for agent-oriented programming was done at the start of the project. The report can be downloaded here.

Contact

For any issues, suggestions, etcetera, the developer of this plug-in can be reached at vincent_lammeren@hotmail.com.

Minutes

Project minutes: VincentMinutes?

Last modified 4 years ago Last modified on Aug 27, 2013, 4:44:12 PM

Attachments (2)

Download all attachments as: .zip