Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Archived » IMP » IMP Examples
IMP Examples [message #14412] Tue, 23 October 2007 02:18 Go to next message
Stan Sutton is currently offline Stan SuttonFriend
Messages: 121
Registered: July 2009
Senior Member
IMP comes with several built-in examples:

* There are IMP-based IDEs that you can run; some of these are part of
the IMP meta-tooling

* With little or no programming you can create a running IMP IDE for an
example language

* You can look at the code that implements each of these IDEs


IMP-based IDEs

One IMP-based IDE in the IMP release is the LPG IDE. When you run one
of the LPG Grammar wizards, some LPG grammar files are generated. These
are ".g" and ".gi" files. If you double-click on one of these files,
they should open automatically in the LPG editor in the LPG IDE. No
special invocation of the editor or IDE is needed. When you're
examining the file file in the editor, or looking at the outliner view,
you're using the LPG IDE.

Another IMP-based IDE in the IMP release is the "PrefSpecs" IDE.
PrefSpecs is the IMP DSL for specifying IDE preferences and preference
pages. When you run the New Preferences Specification wizard a
preferences specification file is generated (a ".pfsp" file). When you
double-click on one of these files, it opens in the PrefSpecs editor in
the PrefSpecs IDE.

Yet another IMP-based IDE that is bundled with the IMP release is the
X10DT. X10 is not part of the IMP meta-tooling; it is a general-purpose
programming language. It is defined and implemented as an extension of
Java with special support for parallel programming. Documentation and
examples of X10 code can be found in the X10 project on SourceForge
(http://sourceforge.net/projects/x10/),

There are other IMP-based IDEs that are under development as part of the
IMP meta-tooling.


IDE Development:

Just running the various IMP wizards will let you construct a
functioning IDE without any significant additional programming, just
based on the example grammar and service implementations contained in
the generated skeleton implementations.

First create a plug-in project and run the New Language wizard. We name
the langauge "LEG" (for "Little Expression Grammar") and give "leg" as
the filename extension.

Next run the LPG Grammar and Parser Wrapper wizard. This generates a
skeleton grammar specification that contains a complete grammar for the
LEG language, a simple but nontrivial example language. The LPG builder
will generate a functioning LEG scanner and parser based on this example
grammar.

If you do just this much you will have a functioning LEG IDE, albeit
with very limited functionality. To exercise the LEG IDE, you need to
run a runtime workbench from your IDE-development workbench. In the
runtime workbench, create a Java project. In the source folder, create
a file with the filename extension ".leg." (An example is provided
below--but you can write your own based on the grammar.) If you
double-click on the .leg file it will open up in the LEG editor. This
will look like a very plain text editor. However, if you create a LEG
file that has syntax errors you should see these annotated in the
editor. Parsing is the one service that the LEG IDE has at this point.

In the IDE development project you can run additional wizards to create
example implementations for additional services. For instance you can
run the wizards for the token colorer, outliner, and source-text
folding. If you then restart the runtime workbench and reopen the .leg
file, you should see these additional features in the LEG IDE. If you
run additional wizards you can create additional services, most of which
will work as-is in the LEG IDE.


IMP IDE Code:

If you check out the IMP projects from the CVS repository, you can see
the source code for various IDEs that are in use or under development in
IMP:

* Project org.eclipse.imp.lpg.runtime contains the implementation of the
LPG IDE

* Project org.eclipse.imp.prefspecs contains the implementation of the
PrefSpecs IDE

* Project org.eclipse.imp.x10dt.ui contains elements of the X10DE
implementation

Various other projects contain in-progress implementations for several
other IDEs (look for the ".g" files that define the grammars of their
languages)



An example LEG program:

This program should parse correctly.

int exp2(int x) {
int res;
res = 1;
while(x > 0) {
res = res * 2;
x = x - 1;
}
return res;
}

void main() {
int xavier = 5;
int yahoo;

int yams;
int yellow;
yahoo = exp2(12) * xavier + 22;

yams = 23 + exp2(7);
{
int zanzibar;
zanzibar = xavier + yahoo + 90;
}
exp2(3);
exp2(4);

}
Re: IMP Examples [message #14471 is a reply to message #14412] Tue, 23 October 2007 07:14 Go to previous message
Eclipse UserFriend
Originally posted by: hiteshn.mail.gmail.com

Thanks a ton, Stan!


"Stanley Sutton" <suttons@us.ibm.com> wrote in message
news:ffjllh$ren$1@build.eclipse.org...
>
> IMP comes with several built-in examples:
>
> * There are IMP-based IDEs that you can run; some of these are part of the
> IMP meta-tooling
>
> * With little or no programming you can create a running IMP IDE for an
> example language
>
> * You can look at the code that implements each of these IDEs
>
>
> IMP-based IDEs
>
> One IMP-based IDE in the IMP release is the LPG IDE. When you run one of
> the LPG Grammar wizards, some LPG grammar files are generated. These are
> ".g" and ".gi" files. If you double-click on one of these files, they
> should open automatically in the LPG editor in the LPG IDE. No special
> invocation of the editor or IDE is needed. When you're examining the file
> file in the editor, or looking at the outliner view, you're using the LPG
> IDE.
>
> Another IMP-based IDE in the IMP release is the "PrefSpecs" IDE. PrefSpecs
> is the IMP DSL for specifying IDE preferences and preference pages. When
> you run the New Preferences Specification wizard a preferences
> specification file is generated (a ".pfsp" file). When you double-click
> on one of these files, it opens in the PrefSpecs editor in the PrefSpecs
> IDE.
>
> Yet another IMP-based IDE that is bundled with the IMP release is the
> X10DT. X10 is not part of the IMP meta-tooling; it is a general-purpose
> programming language. It is defined and implemented as an extension of
> Java with special support for parallel programming. Documentation and
> examples of X10 code can be found in the X10 project on SourceForge
> (http://sourceforge.net/projects/x10/),
>
> There are other IMP-based IDEs that are under development as part of the
> IMP meta-tooling.
>
>
> IDE Development:
>
> Just running the various IMP wizards will let you construct a functioning
> IDE without any significant additional programming, just based on the
> example grammar and service implementations contained in the generated
> skeleton implementations.
>
> First create a plug-in project and run the New Language wizard. We name
> the langauge "LEG" (for "Little Expression Grammar") and give "leg" as the
> filename extension.
>
> Next run the LPG Grammar and Parser Wrapper wizard. This generates a
> skeleton grammar specification that contains a complete grammar for the
> LEG language, a simple but nontrivial example language. The LPG builder
> will generate a functioning LEG scanner and parser based on this example
> grammar.
>
> If you do just this much you will have a functioning LEG IDE, albeit with
> very limited functionality. To exercise the LEG IDE, you need to run a
> runtime workbench from your IDE-development workbench. In the runtime
> workbench, create a Java project. In the source folder, create a file
> with the filename extension ".leg." (An example is provided below--but
> you can write your own based on the grammar.) If you double-click on the
> .leg file it will open up in the LEG editor. This will look like a very
> plain text editor. However, if you create a LEG file that has syntax
> errors you should see these annotated in the editor. Parsing is the one
> service that the LEG IDE has at this point.
>
> In the IDE development project you can run additional wizards to create
> example implementations for additional services. For instance you can run
> the wizards for the token colorer, outliner, and source-text folding. If
> you then restart the runtime workbench and reopen the .leg file, you
> should see these additional features in the LEG IDE. If you run
> additional wizards you can create additional services, most of which will
> work as-is in the LEG IDE.
>
>
> IMP IDE Code:
>
> If you check out the IMP projects from the CVS repository, you can see the
> source code for various IDEs that are in use or under development in IMP:
>
> * Project org.eclipse.imp.lpg.runtime contains the implementation of the
> LPG IDE
>
> * Project org.eclipse.imp.prefspecs contains the implementation of the
> PrefSpecs IDE
>
> * Project org.eclipse.imp.x10dt.ui contains elements of the X10DE
> implementation
>
> Various other projects contain in-progress implementations for several
> other IDEs (look for the ".g" files that define the grammars of their
> languages)
>
>
>
> An example LEG program:
>
> This program should parse correctly.
> int exp2(int x) {
> int res;
> res = 1;
> while(x > 0) {
> res = res * 2;
> x = x - 1;
> }
> return res;
> }
>
> void main() {
> int xavier = 5;
> int yahoo;
>
> int yams;
> int yellow; yahoo = exp2(12) * xavier + 22;
>
> yams = 23 + exp2(7);
> {
> int zanzibar;
> zanzibar = xavier + yahoo + 90;
> }
> exp2(3);
> exp2(4);
>
> }
>
>
>
>
Re: IMP Examples [message #568479 is a reply to message #14412] Tue, 23 October 2007 07:14 Go to previous message
Eclipse UserFriend
Originally posted by: hiteshn.mail.gmail.com

Thanks a ton, Stan!


"Stanley Sutton" <suttons@us.ibm.com> wrote in message
news:ffjllh$ren$1@build.eclipse.org...
>
> IMP comes with several built-in examples:
>
> * There are IMP-based IDEs that you can run; some of these are part of the
> IMP meta-tooling
>
> * With little or no programming you can create a running IMP IDE for an
> example language
>
> * You can look at the code that implements each of these IDEs
>
>
> IMP-based IDEs
>
> One IMP-based IDE in the IMP release is the LPG IDE. When you run one of
> the LPG Grammar wizards, some LPG grammar files are generated. These are
> ".g" and ".gi" files. If you double-click on one of these files, they
> should open automatically in the LPG editor in the LPG IDE. No special
> invocation of the editor or IDE is needed. When you're examining the file
> file in the editor, or looking at the outliner view, you're using the LPG
> IDE.
>
> Another IMP-based IDE in the IMP release is the "PrefSpecs" IDE. PrefSpecs
> is the IMP DSL for specifying IDE preferences and preference pages. When
> you run the New Preferences Specification wizard a preferences
> specification file is generated (a ".pfsp" file). When you double-click
> on one of these files, it opens in the PrefSpecs editor in the PrefSpecs
> IDE.
>
> Yet another IMP-based IDE that is bundled with the IMP release is the
> X10DT. X10 is not part of the IMP meta-tooling; it is a general-purpose
> programming language. It is defined and implemented as an extension of
> Java with special support for parallel programming. Documentation and
> examples of X10 code can be found in the X10 project on SourceForge
> (http://sourceforge.net/projects/x10/),
>
> There are other IMP-based IDEs that are under development as part of the
> IMP meta-tooling.
>
>
> IDE Development:
>
> Just running the various IMP wizards will let you construct a functioning
> IDE without any significant additional programming, just based on the
> example grammar and service implementations contained in the generated
> skeleton implementations.
>
> First create a plug-in project and run the New Language wizard. We name
> the langauge "LEG" (for "Little Expression Grammar") and give "leg" as the
> filename extension.
>
> Next run the LPG Grammar and Parser Wrapper wizard. This generates a
> skeleton grammar specification that contains a complete grammar for the
> LEG language, a simple but nontrivial example language. The LPG builder
> will generate a functioning LEG scanner and parser based on this example
> grammar.
>
> If you do just this much you will have a functioning LEG IDE, albeit with
> very limited functionality. To exercise the LEG IDE, you need to run a
> runtime workbench from your IDE-development workbench. In the runtime
> workbench, create a Java project. In the source folder, create a file
> with the filename extension ".leg." (An example is provided below--but
> you can write your own based on the grammar.) If you double-click on the
> .leg file it will open up in the LEG editor. This will look like a very
> plain text editor. However, if you create a LEG file that has syntax
> errors you should see these annotated in the editor. Parsing is the one
> service that the LEG IDE has at this point.
>
> In the IDE development project you can run additional wizards to create
> example implementations for additional services. For instance you can run
> the wizards for the token colorer, outliner, and source-text folding. If
> you then restart the runtime workbench and reopen the .leg file, you
> should see these additional features in the LEG IDE. If you run
> additional wizards you can create additional services, most of which will
> work as-is in the LEG IDE.
>
>
> IMP IDE Code:
>
> If you check out the IMP projects from the CVS repository, you can see the
> source code for various IDEs that are in use or under development in IMP:
>
> * Project org.eclipse.imp.lpg.runtime contains the implementation of the
> LPG IDE
>
> * Project org.eclipse.imp.prefspecs contains the implementation of the
> PrefSpecs IDE
>
> * Project org.eclipse.imp.x10dt.ui contains elements of the X10DE
> implementation
>
> Various other projects contain in-progress implementations for several
> other IDEs (look for the ".g" files that define the grammars of their
> languages)
>
>
>
> An example LEG program:
>
> This program should parse correctly.
> int exp2(int x) {
> int res;
> res = 1;
> while(x > 0) {
> res = res * 2;
> x = x - 1;
> }
> return res;
> }
>
> void main() {
> int xavier = 5;
> int yahoo;
>
> int yams;
> int yellow; yahoo = exp2(12) * xavier + 22;
>
> yams = 23 + exp2(7);
> {
> int zanzibar;
> zanzibar = xavier + yahoo + 90;
> }
> exp2(3);
> exp2(4);
>
> }
>
>
>
>
Previous Topic:Regarding the IMP project!
Next Topic:Some more queries @ IMP!
Goto Forum:
  


Current Time: Fri Apr 26 21:22:56 GMT 2024

Powered by FUDForum. Page generated in 0.03707 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top