Ada Development Tools (ADT)

This is a draft of a proposal. This is not an official Eclipse proposal. This draft is not for publication or linking at this time.

Introduction

The Ada Development Tools is a proposed open source project under the Eclipse Tools Project.

This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process document) and is written to declare its intent and scope. This proposal is written to solicit additional participation and input from the Eclipse community. You are invited to comment on and/or join the project. Please send all feedback to the http://www.eclipse.org/newsportal/thread.php?group=eclipse.tools.adt newsgroup.  

Background

The Ada language was designed by a team led by Jean Ichbiah at CII Honeywell Bull and became an ISO standard in 1983. Ada is a type safe procedural programming language with support for many object oriented features, as well as support for runtime checking, exceptions, generics and parallel processing. Subsequent revisions to the language, commonly known as Ada95 and Ada 2005, were created to correct perceived shortcomings to the language and strengthen support for OO programming practices. Ada is frequently found in mission-critical and safety-critical systems such as those used in avionics, aeronautics and rail transportation.

Ada compilers and development environments are available as proprietary commercial products as well as open source projects. Different Ada environment providers often have their own IDE. In fact, due to the longevity of Ada, some providers  offer multiple IDEs for their various Ada tools. The same challenges (editor functionality, integration with third party tools and CM systems, displaying debugging information, etc.) have been faced and solved in a myriad of ways, with varied results.

Scope

The objectives of the ADT project are to:

  • Create a standard, vendor neutral Ada development environment for Eclipse. ADT should maintain as close as possible, the look and feel of the CDT and JDT, in order to mesh well with the Eclipse environment, as well as aid developers who need multi-language capabilities, or who need to transition between languages.

  • Provide a standard Ada environment with which third party tool developers can easily work, regardless of the choice of underlying compiler technology. Such tools would include, but are not limited to, modeling tools, editor tools, static and dynamic code analysis tools (ex coverage, profiling), refactoring tools, configuration management tools. 

  • Act as an additional reference for the ongoing process of making the Eclipse framework more able to easily support a variety of native and embedded language development environments (through interaction with projects such as CDT, DSDP and Safari.)

Description

We propose to contribute the sources to AonixADT as a baseline for the Eclipse ADT project. AonixADT, modeled after the CDT and JDT, is a commercial plugin for Ada development. It has been in development since 2004 and in use by industrial customers since 2005. AonixADT currently provides supports for ObjectAda (Aonix's own Ada95 offering) as well as GNAT "commercial" (GMGPL'ed) and  non-commercial (GPL'ed) open source offerings. GNAT is the Ada component of GCC, the Gnu Compiler Collection. AonixADT v3.2.1 is available on Windows, Linux x86 and Sparc Solaris, and supports native as well as cross (i.e. embedded) development. 

AonixADT's core features include Ada project configuration and navigation, Ada builder, customizable project creation wizards, coloring Ada95 syntactic editor with semantic code assist and semantic browse/search capabilities, Ada debugger interface, an Ada source reformatter as well as support for various Eclipse/CDT basic functionalities (tasks, bookmarks, error navigation from the problem view, etc.) 

AonixADT is organized into core features, and separate toolchain support. The primary focus of the ADT project will be on core functionalities. The integration of specific Ada toolchains will be done either as components within ADT (assuming sufficient community interest), or by interested parties (vendors, developers) outside of the context of the ADT project.  It is the goal of ADT to provide a  well documented manner to add toolchains, and to be structured and developed in such a way as to make common core functionality available to all toolchain components.

Organization

Mentors

Committers

The initial committers will initially focus on re-architecturing/extending the code base to provide an open, well documented API.  Our agile development process will follow eclipse.org's standards for openness and transparency.  Our goal is to provide the infrastructure and APIs needed to allow the integration of additional tools. We also plan to help improve the Eclipse platform by submitting patches and extension point suggestions.  The initial team will consist of:

Interested parties

We have had discussions with various customers and members of the Ada community who have expressed interest in contributing to an open source ADT project. As this project proposal is publicized, we expect to be able to name specific organizations and people who will be interested in becoming committers, contributors, testers and users. Here are the types of people and organizations who would be interested- 

  • All Ada vendors (either with or without an existing Ada plugin product)

  • The Gnu Ada open source project

  • The Mac Ada open source project

  • Makers of complementary Ada development tools (analysis tools, refactoring tools, etc.)

  • Current users of AonixADT

  • University faculty and students

Developer community

The developer community will be mostly drawn from the list above. Additionally, since a skillset combining Ada and Eclipse plugin development experience is almost certainly restricted to a handful of individuals at this point, developers with knowledge of the Eclipse API and Eclipse plugin development, but who may not be familar with Ada (ex- JDT, CDT, Photran developers) are solicited. 

We are expecting and will actively pursue during the proposal and incubation phases, active participation from Ada vendors. It is possible that they may not be able to budget a full-time committer, but perhaps each vendor can contribute (funding, or a partly funded developer) in order to create one or more full-time committers.

User community

The existing Ada developer community will be the primary user base. This includes an important presence in academia since Ada is frequently used in programming courses.

In addition, Aonix has made available a free download of AonixADT. On average 50 people a week download the product, leaving a valid email address. These 1000+ downloaders will be contacted to inform them of the proposal and solicit their participation and/or comments.

Tentative Plan

This initial plan is based on the equivalent of three to four full-time committers.

1) ADT 0.5.0 Initial release. 10/2007.

The goal of this release is to bring the initial code contribution under the Eclipse project framework and make sure that the resources, procedures and roles necessary to release an Eclipse project are understood, defined, put in place and functioning properly. To incite the user community to take this initial version of ADT out for a spin, 0.5.0 will include initial versions of ObjectAda and GNAT toolchain components. It is anticipated that the committers will be coming up to speed during the development of this release, so part of the role of the committers already familar with ADT will be to help the other committers (and contributers) to obtain a working understanding of ADT internals. 

2) ADT 0.6.0 Multi-vendor support. 01/2008.

The goal of this release will be to produce a version of Hibachi that is usable with at least all the compilers provided by the committers' companies. No major new functionality is planned, however bugs discovered in 0.5.0 will be addressed.

3) ADT 0.9.0 CDT / API Re-architecture. 06/2008.

By this point, the committers will be far enough along the learning curve to be able to re-architecture Hibachi to take advantage of the latest CDT developments and to create a stable, robust set of APIs.

4) ADT 1.0.0 -  Robust DSDP Integration. 10/2008.  

For its first major release, Hibachi must support embedded development as well as it does native development. This release is scheduled to be able to take advantage of the improvements that DSDP will see in the Ganymede release.

Codename

As a tribute to Jean Ichbiah the designer of Ada, we propose to give ADT the codename "Hibachi". Hibachi is:
a) A small portable charcoal grill (US)
b) Slang for a basketball player "in the zone"
c) An anagram for (Jean) Ichbiah, b. 25 March 1940  d. 26 January 2007