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
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.
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
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.
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:
- The project is merged back into the mainline Eclipse
Platform top-level project.
- The project is moved to a permanent state as a Tools
- The technology proves to be insufficient for Eclipse and
the work is set aside.
- 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.
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
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
- Tim Wagner, BEA (twagner at bea.com)
- Tim Hanson, BEA
- Jess Garms, BEA
- Theodora Yeung, BEA
- Mike Kaufman, BEA
- Walter Harley, BEA
- Ted Carroll, BEA
- Gary Horen, BEA