Skip to main content

Language Development Toolkit


This project proposal is in the Proposal Phase and is posted here to solicit community feedback, additional project participation, and ways the project can be leveraged from the Eclipse membership-at-large. You are invited to comment on and/or join the project. Please send all feedback to the news://news.eclipse.org/eclipse.technology.ldt newsgroup.

Project Organization

The Language Development Toolkit Project (LDT) is a proposed open-source Project under the Technology PMC of eclipse.org. The Charter will describe the organization of the project, roles and responsibilities of the participants, and development process for the project.

Overview

Eclipse provides a flexible and extensible framework for third parties to implement solutions for authoring, editing, and building files in a particular language. Increasingly, however, modern software artifacts are concerned with multiple languages: sometimes within a single source file (JSP, BPEL, Java annotation values), sometimes within a project (schema and IDL bindings), and always in terms of the sheer number of languages needed to create and deploy a production strength enterprise application.

The LDT project proposes several areas of language development related to the Java Development Toolkit (JDT), Structured Source Editor (SSE), XML Schema Project (XSD), and other language-centric technologies within the Eclipse family today. Components of the LDT are designed to interoperate with existing Eclipse language technologies, where appropriate, and development of common language infrastructure (versus copy-and-paste) should be considered a guiding principle.
  • XML-based Languages (XDSLs). Defining extensible semantic checking infrastructure that enables XML-based DSLs (domain specific languages) to be easily defined and rapidly turned into a high fidelity editing experience. This includes exploring declarative extensions of XML Schema as well as programmatic frameworks that extend basic XML analysis with domain-specific semantics and customized editing operations.
  • Enhanced support for XML Schema-to-Java bindings and other “translation to Java” use cases. IDL, Schema, grammars, and other languages often have Java code generation, but these “generated Java” cases are not integrated into the JDT services or user experience. Work in this area includes generalizing the JDT’s project model to multiple languages, providing scalable techniques for handling large numbers of generated Java source files, and supporting the use of JSR 175 annotations to track the provenance of generated material, so that user type navigation can cross language boundaries as seamlessly as it crosses file boundaries today.
  • Shared Editing Infrastructure and Reified Language Modeling. Exploring potential reuse among the JDT, CDT, and SSE editing frameworks and the creation of a reified language model that can inform a generic (but language aware) editing service. In addition to refactoring commonality, the goal is to provide appropriate leverage to new languages that avoids a "copy and paste" approach to their editing needs. This component will also target reusable language-neutral infrastructure, such as frameworks for dependency and work queue management.
  • Multi-language Debugging. Creating infrastructure for support debugging of scripting languages and for defining cross-language breakpoint and stepping operations in the context of a multilingual stack frame.

Project Organization

We propose that this project be undertaken as a Technology Subproject rather than part of the Eclipse Platform Project. Being a Technology subproject gives the project room to experiment with the technology without disruption to the mainline Eclipse developers and users. In addition, we feel that it is vitally important to involve developers from the embedded market so we create a truly "fit-for-purpose" embedded client platform.

With that said, it is also important to retain as much continuity as possible with the existing Eclipse Platform; therefore, we propose that existing committers from the Eclipse Platform also be part of this project.

Finally, since Technology Sub-projects are not meant to be ongoing, there are four possible evolutionary paths for the LDT subproject:
  1. The project is merged back into the mainline Eclipse Platform top-level project.
  2. The project is moved to a permanent state as a Tools Platform project.
  3. The technology proves to be insufficient for Eclipse and the work is set aside.
  4. Sufficient interest and uptake of the Eclipse community drive creation of a new top-level project for this technology.

These paths are not mutually exclusive. Some combination of some or all of these paths may be the result of the work done in this project.

Interested Parties

Suggested Project Leads and Committers
This section captures the list of companies that have expressed interest in the project and/or its components, and as such will be updated periodically to reflect the growing interest in this project.

Rather than canvas the Eclipse community at large, the submitters of this proposal welcome interested parties to post to the eclipse.technology.ldt newsgroup and ask to be added to the list as interested parties or to suggest changes to this document.

Interim Leads

  • Tim Wagner, BEA (twagner at bea.com)
Interested Companies

Potential Committers

  • Tim Hanson, BEA
  • Jess Garms, BEA
  • Theodora Yeung, BEA
  • Mike Kaufman, BEA
  • Walter Harley, BEA
  • Ted Carroll, BEA
  • Gary Horen, BEA



Back to the top