blob: 8a40310f7fabccc77b311ceda6e868ff6ae595eb [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1252">
<TITLE>Eclipse Language
Development Toolkit</TITLE>
<link rel="stylesheet" href="../eclipse-webtools/templates/eclipse/eclipse.css"></head>
</HEAD>
<BODY LANG="en-US" TEXT="#000000" LINK="#0000ee" VLINK="#551a8b" >
<P STYLE="margin-bottom: 0in">&nbsp;
</P>
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=5>
<TR>
<TD WIDTH=60%>
<P ALIGN=LEFT><b>
<font face="Verdana, Arial, Helvetica, sans-serif" size="6">Language
Development Toolkit</font></b><BR>
<FONT COLOR="#8080ff" FACE="Arial, Helvetica, sans-serif" SIZE="1">A
Technology Project Proposal</FONT></P>
</TD>
<TD WIDTH=40%>
<P><IMG SRC="Idea.jpg" NAME="Graphic1" ALIGN=MIDDLE HSPACE=50 WIDTH=120 HEIGHT=86 BORDER=0></P>
</TD>
</TR>
</TABLE>
<P>This project proposal is in the <A HREF="/org/documents/Eclipse Development Process 2003_11_09 FINAL.pdf">Proposal
Phase</A> 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
<a href="http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.ldt">http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.ldt</a> newsgroup.</P>
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0>
<COL WIDTH=252*>
<COL WIDTH=4*>
<TR>
<TD COLSPAN=2 WIDTH=100% VALIGN=TOP BGCOLOR="#0080c0">
<P ALIGN=LEFT><FONT COLOR="#ffffff"><FONT FACE="Arial, Helvetica"><B>Project
Organization</B></FONT></FONT></P>
</TD>
</TR>
<TR>
<TD WIDTH=99%>
<P>The Language Development Toolkit Project (LDT) is a proposed open-source Project
under the <a href="/technology/">Technology PMC</a> of eclipse.org. The Charter will describe the organization of the project, roles and
responsibilities of the participants, and development
process for the project.</P>
</TD>
<TD WIDTH=1% VALIGN=TOP></TD>
</TR>
</TABLE>
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=5>
<TR>
<TD VALIGN=TOP BGCOLOR="#0080c0">
<P ALIGN=LEFT><FONT COLOR="#ffffff"><FONT FACE="Arial, Helvetica"><B>Overview</B></FONT></FONT></P>
</TD>
</TR>
<TR>
<TD>
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 (Java annotation values, JSP, BPELJ),
sometimes within a project (schema-to-Java bindings), and always in
terms of the sheer number of languages needed to create and deploy a
production strength enterprise application.<p>The project is aimed
at eliminating the silos that form around individual languages, so
that common services can be shared, and so that the analysis and
compilation technology developed for one language can be repurposed
easily when other languages compile to, or contain fragments written
in, the original. This technology project provides a collaborative
arena for developing these concepts and integrating them with
established projects, including the JDT, JSP language
implementation, and XML Schema support. As elements in this project
mature, they will move into the Eclipse platform to serve as part of
the common infrastructure available to all Eclipse developers. </p>
<p>The initial project focus is on the Java family of languages,
with three main goals in mind for enhancing the existing JDT
services and APIs: </p>
<ul>
<li><b>Adding APT and the Mirror Type system. </b>Adding support
for annotation processing and programmatic type mirroring to the
JDT suitable for providing source editing and code generation
services for JSR 175 annotations. Diagnostics and types from
generated files will be first class participants in the user’s
Java experience, including dynamic updating from user edits. Long
term goals also include declarative support for nested languages
(such as XML or SQL) as the content of string-valued annotations
and incorporation of upcoming JSRs in this domain. </li>
<li><b>Enhanced support for Java fragments nested in other
languages.</b> Source files today present increasingly complex
problems. JSP and BPELJ, e.g., are composites of multiple
different languages, and compiling them requires translation into
Java source, then compiling the Java, and then back-patching the
diagnostic messages into the original source. By providing
language APIs for identifying the nested language regions and
helping the implementer compose them into translated source files,
the infrastructure can make existing language implementations,
such as Java, useful to a wider community, and make the process of
compiling and authoring composite source files more
straightforward. Work includes identifying reusable data
structures and algorithms, such as offset-mapping buffers, that
are applicable to multiple host languages. </li>
<li><b>Enhanced support for XML Schema-to-Java bindings and other
“translation to Java” use cases.</b> IDL, Schema, grammars, and
other languages often have Java code generation, but these
“generated Java” cases are not well integrated into the JDT
services or user experience. Work in this area includes
generalizing Java’s project model, providing scalable techniques
for handling large numbers of generated Java source files in
memory, 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. </li>
</ul>
<p>Beyond the Java language family, BEA and other companies also see
a long term goal of replicating the JDT source editing functionality
in a more language neutral setting, which would enable Eclipse
plugin providers to quickly and easily establish new languages.
Factoring out common facilities for user editing, program
navigation, project modeling, dependency management, and work queues
would lower the cost of implementing additional languages in the
Eclipse platform by providing language-aware services, helping to
avoid the duplication of effort required today.</TD>
</TR>
</TABLE>
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0>
<COL WIDTH=256*>
<TR>
<TD WIDTH=100% VALIGN=TOP BGCOLOR="#0080c0">
<P ALIGN=LEFT><b><font face="Arial, Helvetica" color="#FFFFFF">
Project Organization</font></b></P>
</TD>
</TR>
<TR>
<TD WIDTH=100%>
<table border="0" cellpadding="2" cellspacing="5" width="100%">
<tr>
<td colspan="3">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
&quot;fit-for-purpose&quot; embedded client platform.<br>
<br>
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.<br>
<br>
Finally, since Technology Sub-projects are not meant to be
ongoing, there are four possible evolutionary paths for the LDT subproject:<ol>
<li>The project is merged back into the mainline Eclipse
Platform top-level project.</li>
<li>The project is moved to a permanent state as a Tools
Platform project.</li>
<li>The technology proves to be insufficient for Eclipse and
the work is set aside.</li>
<li>Sufficient interest and uptake of the Eclipse community
drive creation of a new top-level project for this technology. </li>
</ol>
<p>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. </p>
</td>
</tr>
</table>
</TD>
</TR>
<TR>
<TD WIDTH=100%></TD>
</TR>
</TABLE>
<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=5>
<TR>
<TD VALIGN=TOP BGCOLOR="#0080c0">
<p ALIGN="LEFT"><b><font face="Arial, Helvetica" color="#FFFFFF">
Interested Parties</font></b></TD>
</TR>
<TR>
<TD>
<p><b>Suggested Project Leads and Committers</b><br>
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.<br>
<br>
Rather than canvas the Eclipse community at large, the
submitters of this proposal welcome interested parties to post
to the <a href="http://www.eclipse.org/newsportal/thread.php?group=eclipse.technology.ldt">eclipse.technology.ldt newsgroup</a> and ask to be added to the
list as interested parties or to suggest changes to this
document.</p>
<p><b>Interim Leads</b><ul>
<li>Tim Wagner, BEA (twagner at bea.com)</li>
</ul>
<b>Interested Companies</b><ul>
<li><a href="http://www.bea.com/">BEA</a></li>
</ul>
<p><b>Potential Committers</b></p>
<ul>
<li>Tim Hanson, BEA</li>
<li>Theodora Yeung, BEA</li>
<li>Mike Kaufman, BEA</li>
<li>Walter
Harley, BEA</li>
<li>Ted Carroll, BEA</li>
<li>Gary Horen, BEA</li>
</ul>
</TD>
</TR>
</TABLE>
<P><BR><BR>
</P>
</BODY>
</HTML>