| <!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"> |
| </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 users |
| 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 Javas 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 |
| "fit-for-purpose" 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> |