tag:blogger.com,1999:blog-52124356001605000232024-03-19T09:48:20.016+01:00The Meta-Environment BlogNews, facts and opinions about The Meta-Environment, The Rascal domain specific language for source code analysis and transformation, ASF+SDF and their applicationsJurgenhttp://www.blogger.com/profile/14838802521749663582noreply@blogger.comBlogger31125tag:blogger.com,1999:blog-5212435600160500023.post-24637325757025620612010-01-19T13:29:00.000+01:002010-01-19T13:29:32.599+01:00The Future of ASF+SDF and The Meta-EnvironmentMany of you have noticed; Rascal is in full swing while development on the ASF+SDF Meta-Environment has slowed down. In this post we will inform you what the plans are and provide some motivation. <br />
<br />
<font style="font-weight: bold;"><br />
The short story</font> is that <a href="http://www.meta-environment.org/Meta-Environment/Rascal">Rascal</a> is the successor of <a href="http://www.meta-environment.org/Meta-Environment/ASF+SDF">ASF+SDF</a> and the Rascal Meta-Environment (based on <a href="http://www.eclipse.org/imp">IMP</a>) is the successor of <a href="http://www.meta-environment.org/">The ASF+SDF Meta-Environment</a>. The ASF+SDF Meta-Environment will be distributed and maintained still, but most of our effort will be spent on Rascal. </p><p><font style="font-weight: bold;">The future of Rascal</font> will be discussed in detail in a future post, as well as the future of the "PDB Values" (program database values) library/plugin that is used in the Rascal implementation.</p><p><font style="font-weight: bold;">The future of ASF+SDF</font> is limited to small bug fixing. We will not make any changes to ASF+SDF anymore. Rascal has (if not will have) all the features of ASF+SDF so it has become obsolete. We might fix some bugs on request, but only if time permits. The distribution of the source code of ASF+SDF will continue as long as possible (at least a few years). Binary distributions will be made available if time permits. Note that ASF+SDF and SDF are used in the implementation of Rascal. </p><p><font style="font-weight: bold;">The future of SDF</font> is guaranteed for now. We will continue to maintain SDF as we have done in the past years. This means all bugs will be fixed and releases will be made when necessary. SDF has a large user group who we would like to keep satisfied. We are open to feature suggestions and enhancements, but we explicitly solicit for help in implementing them. Let us know if you have an affinity with SDF and its algorithms and you want to contribute. We are also open to suggestions for new approaches to parsing. </p><p><font style="font-weight: bold;">The Meta-Environment</font> lives on as The Rascal Meta-Environment. The features of the Meta-Environment as a language-parametric IDE are largely made obsolete by Eclipse and Eclipse IMP. By connecting Rascal to IMP we have constructed a new Meta-Environment: The Rascal Meta-Environment. The brand name "Meta-Environment" will therefore live on in this product. As time progresses, more and more grammarware and language workbench features of the ASF+SDF Meta-Environment will be ported to the Rascal Meta-Environment. </p><p><font style="font-weight: bold;">The future of ToolBus</font> is not yet completely clear. The latest version of the ToolBus - ToolBusNG - is scheduled to survive. It may or not may be used as a part of the Rascal Meta-Environment. The C version of the ToolBus is <font style="font-style: italic;">out of service</font>. </p><p><font style="font-weight: bold;">The future of the ATerm libraries</font> is guaranteed. The ATerm libraries are to be maintained indefinitely. They have found widespread use which merits a continued investment. Few extensions or enhancements are to be expected. This statement also holds for the shared-objects library. The ATerm libraries are not used as the basic symbolic data representation and computation vehicle for Rascal. Instead Rascal is based on IMP's PDB values, which are a superset of the ATerm data-type including sets, relations and maps for example. You may expect more information on PDB values in a future post. </p><p><font style="font-weight: bold;">The future of JJTraveler</font> is undecided. Although we have maintained it for a while and it is used by the ATerm library, we have received limited feedback. We expect hardly any enhancements or extensions to JJTraveler. Type-safe tree traversal (and other data-structures) is a feature of Rascal. Most of our own code that needs such a feature will therefore be written in Rascal. </p><p><font style="font-weight: bold;">There is no future for ApiGen</font>. ApiGen is a tool that is used in implementing and bootstrapping the ASF+SDF Meta-Environment. As such it will be maintained while the ASF+SDF Meta-Environment is online. Apigen will not be distributed or maintained for development outside of this purpose. Although ApiGen is an extremely useful tool for ATerm programming, we feel its error reporting capability and usability does not warrant further distribution. Rascal provides an alternative way of manipulating symbolic data (like ATerms) in a high-level and type-safe manner. We expect Rascal code to replace all our C/Java+ATerm based code in the future. </p><p><font style="font-weight: bold;">Thank you!</font> We are proud to contribute to the ASF+SDF Meta-Environment and happy to keep it online for the near future. Thank you for your use, applications, support and research in the past 10 years! We hope that we have given you a clear picture of what to expect from us with respect to ASF+SDF and related software. Look out for Rascal, its the future of The Meta-Environment!</p><p>The Meta-Environment Team </p>Jurgenhttp://www.blogger.com/profile/14838802521749663582noreply@blogger.com23tag:blogger.com,1999:blog-5212435600160500023.post-20627557762987338422009-10-22T17:33:00.004+02:002009-10-22T17:47:12.827+02:00Software Evolution course at UvA uses Rascal alpha milestone 2Today, October 22nd 2009, we have created an Eclipse update site for Rascal. It features the second milestone of Rascal and its IDE based on <a href="http://www.eclipse.org/imp">Eclipse IMP</a>.
<p>
This second milestone (alpha quality) release is prompted by the start of the <a href="http://studiegids.uva.nl/web/sgs/nl/c/2056.html">Software Evolution course at the Universiteit van Amsterdam</a>. Approximately 50 students will pioneer in using Rascal to reverse engineer a Java application, applying source code metrics, design recovery queries and smell detection queries.
<p>
The release represents another intermediate step towards a full release of Rascal. The improvements with respect to the previous alpha release are too numerous to mention. It's more stable, that's for sure.
<p>
Note that we do have a number of language syntax and semantics changes ahead of us before a first beta release of the Rascal language. The current version is ready for early experimentation though.
<p>
I would like to thank Paul Klint, Tijs van der Storm, Emilie Balland, Arnold Lankamp, Anya Helene Bagge, Claus Brabrand, Bas Basten, Joppe Kroon, Mark Hills, Jeroen van de Bos, Tobias Baanders, Erich Ocean and Vadim Zaytsev for either developing Rascal or providing valuable feedback!Jurgenhttp://www.blogger.com/profile/14838802521749663582noreply@blogger.com2tag:blogger.com,1999:blog-5212435600160500023.post-6755334287550786252009-07-15T12:02:00.009+02:002009-07-15T13:42:54.914+02:00The introduction of Rascal at the GTTSE SummerschoolWe have introduced the Rascal language at the <a href="http://gttse.wikidot.com/">GTTSE Summerschool</a> by giving a three hour tutorial and a demonstration. First of all, thanks to the organizers and the attendees. We have had the pleasure of a large and interested audience!
<p>
Rascal is a domain specific language that covers the full scope of software analysis and transformation. It is currently being developed by the Meta-Environment team.
<p>
The goal of the tutorial at GTTSE was to show the concepts, syntax and semantics of Rascal. How it can be applied to different kinds of software analysis and transformation tasks was also explained. A secondary goal was to obtain feedback from potential users of Rascal and other designers of meta programming systems on Rascal.
<p>
Please find the lecture notes <a href="http://www.meta-environment.org/pub/Meta-Environment/Rascal/rascal-slides.pdf">here</a>.
<p>
We can organize the feedback by splitting the audience in <ul> <li> Colleagues in the meta programming area working on similar systems</li> <li> Master and PhD students in (meta-)modeling and meta-programming </li></ul>.
<p>
From the first group we received encouraging remarks on the functionality of the language. Regarding the syntax and semantics our presentation left some confusion on the conceptual basis of the language. The experts want to see how features in the language map to formal concepts. They want a clear picture of how the integration of general control and data flow features with software analysis and software transformation features works on a conceptual level. Is it still conceptually simple?
<p>
The answer is yes: Rascal is a simple procedural language with structured control flow, exceptions and lexically scoped backtracking. And, all data is immutable (functional). This is the basic framework of the language. The expression sub-languages are a functional sub-set of the language. The expression operator suite unifies operations often done in either software analysis or software transformation or both. Two examples are the pattern matching operator and the set comprehension operator. Any kind of more complex feature in the Rascal language, such as rewrite rules, can easily be given a transformational semantics into the core of Rascal.
<p>
From the second group &emdash; some of who immediately downloaded the alpha evaluation version &emdash; we received usability feedback. We mentioned the design guideline of "the principle of least surprise" in our presentations. Already some syntax was surprising, like the necessity of terminating commands in the Rascal shell with a semicolon (;). As we announced, the alpha version is unfinished and contains several annoying bugs. We were happy to have found out that some people have taken the time to submit <a href="http://bugzilla.sen.cwi.nl:8080/index.cgi">bugreports</a>. Thanks! We are working hard to finish the Rascal implementation.
<p>
<span style="font-weight:bold;">The most active bugger on our bugzilla will win a Rascal T-Shirt! The competition has started last week and a winner will be selected at X-mas time 2009.
</span>
<p>
Did you know this?<ul>
<li>A beta version is expected in October 2009</li>
<li>Rascal covers all features of ASF+SDF and RScript</li>
<li>It comes with both a commandline shell and an Eclipse/IMP-based IDE</li>
<li>It already has a significant standard library that includes interfaces to the Eclipse project environment and the Eclipse Java Development Tools (JDT).
</ul>Jurgenhttp://www.blogger.com/profile/14838802521749663582noreply@blogger.com1tag:blogger.com,1999:blog-5212435600160500023.post-82260254777109339612009-06-27T14:53:00.004+02:002009-06-27T15:05:29.736+02:00Rascal: Preparing for take-offFive month ago I have prepared you for the arrival of our new kid on the block: Rascal. In the meantime we have not done a lot of blogging but we did do a lot of programming and documentation and Rascal is now reaching a first alpha version.
If you want to have a glimpse at how the language looks like, have a look at the 100 page user manual:
<a href="http://www.meta-environment.org/doc/books//analysis/rascal-manual/rascal-manual.pdf">http://www.meta-environment.org/doc/books//analysis/rascal-manual/rascal-manual.pdf</a>
or if you prefer the html version:
<a href="http://www.meta-environment.org/doc/books//analysis/rascal-manual/rascal-manual.html">http://www.meta-environment.org/doc/books//analysis/rascal-manual/rascal-manual.html</a>
From this you can see that we have made major progress.
<p>This is our elevator pitch about the main benefits offered by Rascal:</p> <div class="itemizedlist"><ul type="disc"><li> <p><span class="bold"><strong>Sophisticated built-in data types</strong></span> provide standard solutions for many meta-programming problems.</p> </li><li> <p><span class="bold"><strong>Safety</strong></span> is achieved by finding most errors even before the program is executed and by making common errors like missing initializations or wrong pointers impossible.<em><span class="remark">
</span></em></p> </li><li> <p><span class="bold"><strong>Pattern matching</strong></span> is used to analyze even the most complex datastructures.</p> </li><li> <p><span class="bold"><strong>Syntax definitions</strong></span> make it possible to define new and existing languages and to write tools for them.</p> </li><li> <p><span class="bold"><strong>Visiting</strong></span> makes it easy to traverse datastructures and to extract information from them or to synthesize results.</p> </li><li> <p><span class="bold"><strong>Functions as values </strong></span>permit programming styles with high re-use.</p> </li><li> <p><span class="bold"><strong>Generic types</strong></span> allow writing functions that are applicable for many different types.</p> </li><li> <p><span class="bold"><strong>Local type inference</strong></span> makes local variable declarations redundant.</p> </li><li> <p><span class="bold"><strong>Familiar</strong></span> <span class="bold"><strong>syntax</strong></span> in a <span class="emphasis"><em>what-you-see is-what-you-get style</em></span> is used even for sophisticated concepts and this makes the language easy to learn and easy to use.</p> </li><li> <p><span class="bold"><strong>Eclipse integration</strong></span> makes Rascal programming a breeze. All familiar tools are at your fingertips.</p> </li></ul></div> <p>Interested? Read the manual.</p><p>If you are really courageous try the alpha version that you can find at:</p> <a href="http://www.meta-environment.org/Meta-Environment/Rascal">http://www.meta-environment.org/Meta-Environment/Rascal</a><p>We will first present Rascal at the <a href="http://gttse.wikidot.com/">GTTSE summer school in Braja</a> and we will keep you posted on the initial reactions there.</p><p>
</p><p>
</p>Paul Klinthttp://www.blogger.com/profile/09483231403714502248noreply@blogger.com1tag:blogger.com,1999:blog-5212435600160500023.post-57151508620245371632009-02-22T17:09:00.004+01:002009-02-22T17:49:18.836+01:00Rascal, the new kid on the blockFor those of you who have been following our commit messages it is clear: we are furiously working on a new system called "Rascal". But why? And what is it about? In this and subsequent messages I will try to clarify this.
Why a new language? The success in solving automatic analysis and transformation problems achieved by a language like ASF+SDF makes it clear that with the increasing scale and complexity of the problems that are being solved, more language support would be welcome.
We are still excited about the many good features of ASF+SDF like
<ul><li>Fully user-definable syntax.</li><li>Conditional rewriting.</li><li>Modular language definitions.
</li><li>Fast execution.</li></ul>In recent years, we have been experimenting with a tiny new language called RScript, it provides a typed relational calculus and is very useful for doing program analysis. Inspired by this, we asked ourselves the question: is it possible to keep the features of ASF+SDF and integrate them with RScript? Would this be a starting point for designing the additonal language features we are looking for?
The briefest possible summary is therefore: Rascal = ASF+SDF+RScript
This means that we are adding:
<ul><li>A new type system, including definitions for abstract data types, higher-order functions, and more.</li><li>New data types: lists, sets, relations.</li><li>New control structures, i.e. comprehensions, loops, execptions.
</li></ul>Of course, while designing such a new language we can profit from the extensive experience the ASF+SDF user community has gained while solving analysis and transformation problems. Some of the items on the wish list are:
<ul><li>Concrete and abstract datatypes.</li><li>More efficient processing of grammar modules.</li><li>More features for resolving ambiguities.
</li><li>Seemless integration with a host language like Java.</li><li>Seemless integration with an IDE like Eclipse.</li></ul>Typical problems to be solved:
<ul><li>Concise and efficient refactoring of Java programs.</li><li>Finding software bugs.</li><li>Large scale software conversions and transformations.
</li></ul>Now that the initial requirements are becoming clear, you may wonder how Rascal looks like. That will be the topic of a next message.Paul Klinthttp://www.blogger.com/profile/09483231403714502248noreply@blogger.com1tag:blogger.com,1999:blog-5212435600160500023.post-50642410813058221202008-11-13T11:55:00.005+01:002008-11-13T12:01:01.561+01:00ASF+SDF Meta-Environment 2.0.3 releasedReleasing the Meta-Environment came high on our priority list this week. We have released version 2.0.3 which fixes the distribution and build issues of the previously released <a href="http://meta-environment.blogspot.com/2008/09/asfsdf-meta-environment-201-released.html">2.0.1 version</a>.
Version 2.0.3 should compile and run well on MacOSX versions.
See <a href="http://www.meta-environment.org/Meta-Environment/Download">http://www.meta-environment.org/Meta-Environment/Download</a>Jurgenhttp://www.blogger.com/profile/14838802521749663582noreply@blogger.com1tag:blogger.com,1999:blog-5212435600160500023.post-67765873109428289702008-09-11T11:24:00.009+02:002008-09-12T15:23:21.548+02:00On the difference between a release and a release candidate<p>Question: Is ASF+SDF Meta-Environment 2.0.1-RC4 newer or older than ASF+SDF Meta-Environment 2.0.1?</p>
<p>
We have added the RC postfix - release candidate - to indicate a preview of a version that is to be released after a number of pre-releases. Version 2.0.1 is thus the final version after the unfinished pre-releases 2.0.1-RC1 through 2.0.1-RC4.
</p><p>
We expect to release small bugfixes on 2.0.1 this year, called 2.0.x with increasing numbers for x.
Non-backward compatible changes, or otherwise de-stabilizing changes will lead to 2.y versions. We are working on 3.z in parallel.</p>Jurgenhttp://www.blogger.com/profile/14838802521749663582noreply@blogger.com0tag:blogger.com,1999:blog-5212435600160500023.post-56529164060955002122008-09-08T10:26:00.006+02:002008-09-12T15:23:55.325+02:00ToolBus is now implemented in JavaThe ToolBus was re-implemented in Java. This re-implementation facilitates:
<ul>
<li>Porting The Meta-Environment to Windows</li>
<li>Integrating The Meta-Environment as an Eclipse plugin</li>
</ul>
ToolBus-NG, as the new version is called, is an integral part of <a href="http://www.meta-environment.org">The ASF+SDF Meta-Environment 2.x.</a>
Also, it is the base for researching the T-script language and the ToolBus architecture as a vehicle for service oriented programming and web applications.Jurgenhttp://www.blogger.com/profile/14838802521749663582noreply@blogger.com0tag:blogger.com,1999:blog-5212435600160500023.post-9078464643168868632008-09-08T10:18:00.004+02:002008-09-12T15:24:31.054+02:00SDF 2.6.3 releasedWe have released SDF 2.6.3. Apart from some bugfixes this release includes a new version of the <span style="font-weight:bold;">sdf2table</span> commandline tool.
To facilitate the port of SDF to Windows, we have replaced the sdf2table shell script with a binary tool. This tool simulates all the features of the old script. It can also load SDF modules starting from a single top module and searching for imported modules in a colon-separated search path. This removes the need for 'packing' or 'dumping' the full SDF definition file before using sdf2table!
<pre>
$ sdf2table -h
Use this program to generate a parse table from an SDF definition.
It can generate tables from full SDF definition files, parse trees
of full SDF definition files, or search for modules itself starting
from a top module name and using a search path.
Common usage patterns:
sdf2table -c -m <topModule> -o <file>.tbl
sdf2table -c -m <topModule> -p <searchPath> -o <file>.tbl
sdf2table -m <topModule> -i <definitionFile>.def -o <file>.tbl
sdf2table -m <topModule> -i <definitionTree>.def.pt -o <file>.tbl
sdf2table -c -d -m <topModule> -o <definitionFile>.def.pt
Usage: sdf2table [options]
Options:
-b output terms in BAF format (default)
-c collect SDF modules from the search path
-d only collect an SDF definition
-g take kernel sdf as input and generate table
-h display help information (usage)
-i filename input from file (default stdin, can be repeated)
-l filename log statistic information
-m modulename name of top module (default Main)
-n only normalization of grammar
-o filename output to file (default stdout)
-p path colon separated search path for SDF modules (default '.')
-t output terms in plaintext format
-v verbose mode
-V reveal program version (i.e. 5.0)
</pre>Jurgenhttp://www.blogger.com/profile/14838802521749663582noreply@blogger.com0tag:blogger.com,1999:blog-5212435600160500023.post-70241346617036714992008-09-08T09:41:00.014+02:002008-09-12T15:24:51.387+02:00ASF+SDF Meta-Environment 2.0.1 released<p>We have released The ASF+SDF Meta-Environment 2.0.1!</p>
<p>
The 2.x release has been coming for a while. The release candidates RC1, RC2 and RC3 have been used in several local projects and in courses for the Master Software Engineering at the UvA. After some bug fixing we are now happy to announce version 2.0.1.
</p>
<p>
Please <span style="font-weight: bold;">download</span> bundled source distributions or binary installers for linux <a href="http://www.meta-environment.org/Meta-Environment/Download">here</a>.
</p>
<p>
The <a href="http://www.meta-environment.org/">ASF+SDF Meta-Environment</a> 2.0.1. is a programming language workbench, featuring advanced syntax definition and term rewriting functionality, as well as IDE and visualization features.
Among other applications, it is used to implement Domain Specific Languages, Software Analyses and Source-to-source Transformations.
</p>
<p>
The 2.x release has many features, which we will not list here. Please refer to the extensive <a href="http://www.meta-environment.org/Meta-Environment/Documentation">documentation</a>.
</p>
<p>
<span style="font-weight: bold;">This is a high-level overview:</span>
<ul>
<li> Integrated support for syntax definition in SDF, including
<ul>
<li> modular syntax definitions (any context-free grammar) in SDF</li>
<li> an SDF static checker </li>
<li> automatic parser generation </li>
<li> generated syntax editors with configurable syntax highlighting </li>
<li> parse tree and parse forest visualizations </li>
</ul></li>
<li> Integrated support for source analysis and transformation in ASF+SDF, including
<ul>
<li> ASF+SDF, featuring conditional term rewriting with concrete syntax for source code patterns, syntax safe transformation and generation of source code and automated tree traversal.
</li><li> ASF editors, with syntax highlighting.</li>
<li> ASF static checker </li>
<li> ASF interpreter, featuring 'hifi' source-to-source transformation (i.e. no loss of source code comments)</li>
<li> ASF compiler, extremely fast compiled term rewriting systems </li>
<li> Automatic IDE integration for language support programmed in ASF+SDF:
<ul>
<li> Syntax highlighting </li>
<li> Static checkers</li>
<li> Reverse engineering and software visualization</li>
<li> SVG drawing </li>
</ul></li>
<li> Integrated ASF step-wise debugger.</li>
</ul> </li>
</ul>
</p>
<p>
<span style="font-weight: bold;">For users of the 1.5.x series of The Meta-Environment, these are the major differences:</span>
<ul>
<li>The Meta-Environment integrates editors in tabbed windows, instead of interfacing with Emacs or ViM</li>
<li>ASF+SDF now features fully structured lexical constructor functions, and is therefore now completely "syntax safe".</li>
<li>The ASF static checker detects more errors and generates warnings for common programming errors</li>
<li>There is a lot of online <a href="http://www.meta-environment.org/Meta-Environment/Documentation">documentation</a> now!</li>
</ul>
</p>
<p>
<span style="font-weight: bold;">What the future holds? </span>
</p>
<p>
Development and maintenance on the 2.x series will continue for a while. In parallel, the Meta-Environment team is working on the following:
<ul>
<li>"Rascal" - a domain specific language for integrated software analysis and transformation</li>
<li>Facilitating source code fact extraction using "DeFacto"</li>
<li>Contributing to <a href="http://www.eclipse.org/imp">Eclipse IMP</a>, a platform for IDE construction</li>
<li>Port of The Meta-Environment to Eclipse IMP</li>
<li>SDF ambiguity diagnostics</li>
</ul>
</p?Jurgenhttp://www.blogger.com/profile/14838802521749663582noreply@blogger.com1tag:blogger.com,1999:blog-5212435600160500023.post-48361746408524252182008-08-31T10:37:00.006+02:002008-09-12T15:25:14.579+02:00Using The Meta-Environment for Model Driven EngineeringDuring the last week of August, the 16th Joint Smalltalk Conference of the <a href="http://www.esug.org/">European Smalltalk User Group (ESUG)</a> was held in Amsterdam, at <a href="http://www.cwi.nl/">CWI</a>. As part of the "meta-modelling" day (Tuesday) I gave a talk on how the ASF+SDF Meta-Environment could be used for <a href="http://en.wikipedia.org/wiki/Model_Driven_Engineering">Model Driven Engineering (MDE)</a>. <div>
</div><div>During the discussion there seemed to be some interest as to how the Meta-Environment relates to <a href="http://www.cs.ucla.edu/%7Eawarth/ometa/">OMeta</a>, developed by Alessandro Warth. In this post I would like to clarify some of the distinctions.</div><div>
</div><div>First of all OMeta uses a grammar formalism that is based on <a href="http://en.wikipedia.org/wiki/Parsing_expression_grammar">parsing expression grammars (PEGs)</a>, whereas the Meta-Environment is based on the <a href="http://www.syntax-definition.org/">syntax definition formalism (SDF)</a>, which allows the specification of arbitrary context-free grammars (CFGs). As a result, in Ometa, you won't risk writing ambiguous grammars (that is, grammars which allow multiple derivations for the same string). However, you will have to mould your language's grammar until it fits the PEG framework. In SDF you can write your grammar much more declaratively, and use the full power of CFGs to describe your language. As a consequence, there is a risk of ambiguity. SDF provides a number of disambiguation constructs to amend this situation (follow restrictions, priorities, rejects). </div><div>
</div>Another difference between OMeta and the Meta-Environment is how languages are given semantics. In the Meta-Environment, all computation is done using (source-to-source) transformation. This means that grammars do not have semantic actions that are executed during parsing. Instead, a transformation engine can be provided with a set of rewrite rules that transforms one language to another. Interpretation, compilation, type checking etc. are all implemented as source-to-source transformations. In OMeta, on the other hand, grammar rules are decorated with semantic actions that are executed during parsing. These actions are written in an (general purpose) OMeta host language (which is a parameter of OMeta).<div>
</div><div>If you look at these distinctions, one could say that OMeta is better at defining (small) <span style="font-style: italic;">interpreters</span> that require a general purpose language and a full-fledged host environment. On the other hand, the Meta-Environment is better fit for constructing <span style="font-style: italic;">compilers</span> and code generation because compilers are essentially (source-to-source) transformations. In addition, the generality of the parsing technology behind the Meta-Environment allows it to be used for other task as well: analysis and transformation of legacy systems.
Currently, when implementing a <a href="http://en.wikipedia.org/wiki/Domain_Specific_Language">Domain Specific Language (DSL)</a> using the Meta-Environment one has to resort to code generation for integration with the environment (e.g. for dealing with stuff like files, databases, GUI libraries, sockets etc. — anything that cannot be easily expressed as source-to-source transformation...). It would be interesting to see if the parsing power of SDF could be combined with the(much more dynamic and late-bound) interpretation model of OMeta to make the development o<a href="http://en.wikipedia.org/wiki/Domain_Specific_Language"></a>f DSLs more light-weight. </div><div>
</div>tvdstormhttp://www.blogger.com/profile/14625580667837684431noreply@blogger.com0tag:blogger.com,1999:blog-5212435600160500023.post-89516703883497376232008-08-28T01:30:00.000+02:002008-08-28T16:17:46.032+02:00LDTA 2009<a href="http://www.ldta.info">http://www.ldta.info</a> publishes call for papers for LDTA 2009Jurgenhttp://www.blogger.com/profile/14838802521749663582noreply@blogger.comtag:blogger.com,1999:blog-5212435600160500023.post-5736145338651578842008-08-21T22:00:00.000+02:002008-08-28T16:16:47.093+02:00New webserver for www.meta-environment.org<a href="http://www.meta-environment.org">http://www.meta-environment.org</a> moved to its own server hardware. To facilitate future growth and to bundle the web servers for The Meta-Environment open source project a new server was installed. The first site to move was <a href="http://www.meta-environment.org">www.meta-environment.org</a> itself. Later bugzilla and sisyphus will follow.Jurgenhttp://www.blogger.com/profile/14838802521749663582noreply@blogger.comtag:blogger.com,1999:blog-5212435600160500023.post-76739780778890601662008-07-01T21:00:00.000+02:002008-08-28T16:15:25.179+02:00Eclipse versionThe Meta-Environment team has started parallel development on an Eclipse version of The Meta-Environment. It is based on <a href="http://www.eclipse.org/imp">http://www.eclipse.org/imp</a> and will support all features of Meta-Environment 2.0.Jurgenhttp://www.blogger.com/profile/14838802521749663582noreply@blogger.comtag:blogger.com,1999:blog-5212435600160500023.post-47127209715012798942007-09-25T16:11:00.000+02:002008-08-28T16:12:32.898+02:00Meta-Environment 2.0, Release Candidate 3 is online, and SDF 2.5 releasedWith the release of Meta-Environment 2.0RC3, SDF 2.5 was also released. This release candidate also supplies a binary installer for Linux/i386.
See also:
<ul>
<li> <a href="http://www.meta-environment.org/Meta-Environment/Downloads">Downloads</a> for source distribution of The ASF+SDF Meta-Environment 2.0 RC3
<li> <a href="http://www.meta-environment.org/Meta-Environment/Downloads">Downloads</a> for binary linux installer of The ASF+SDF Meta-Environment 2.0 RC3
<li> <a href="http://www.meta-environment.org/Meta-Environment/Downloads">Downloads</a> for source distribution of SDF 2.5
<li> <a href="http://www.meta-environment.org/Meta-Environment/Downloads">Downloads</a> for binary linux installer of SDF 2.5
</ul>Jurgenhttp://www.blogger.com/profile/14838802521749663582noreply@blogger.comtag:blogger.com,1999:blog-5212435600160500023.post-33382196762917125682007-05-09T16:10:00.000+02:002008-08-28T16:12:24.922+02:00The Meta-Environment will be released under the BSD license<span style="font-size:100%;">All forthcoming releases and release candidates of The Meta-Environment and its sub-components will be released under the <a href="http://www.meta-environment.org/Meta-Environment/BSDLicense">BSD License</a>.</span>Jurgenhttp://www.blogger.com/profile/14838802521749663582noreply@blogger.comtag:blogger.com,1999:blog-5212435600160500023.post-77258274022283197582007-03-25T16:09:00.000+02:002008-08-28T16:10:12.054+02:00The Module Manager presented at LDTA 2007The module manager, which is a core component of The Meta-Environment, and the prime vehicle for instantiating IDE's for other domain specific languages was presented by Taeke Kooiker at the Seventh Workshop on Language Descriptions, Tools and Applications (<a href="http://www.ldta.info">LDTA</a>)Jurgenhttp://www.blogger.com/profile/14838802521749663582noreply@blogger.comtag:blogger.com,1999:blog-5212435600160500023.post-59692880692950024232007-03-23T15:03:00.000+01:002008-08-28T16:04:20.449+02:00The Meta-Environment demo at CSMR 2007The Meta-Environment 2.0, release candidate 2 was demonstrated to a mixed academic and industrial audience at the <a href="http://www.cs.vu.nl/csmr2007" target="_top">11th European Conference on Software Maintenance and Reengineering</a>. This demonstration included the Software Visualization plugin for The Meta-Environment. This plugin was constructed by master students of the <a href="http://www.software-engineering-amsterdam.nl/" target="_top">Universiteit van Amsterdam</a> in a project for the courses Software Process and Software Construction. The plugin will be made available with release candidate 3.Jurgenhttp://www.blogger.com/profile/14838802521749663582noreply@blogger.comtag:blogger.com,1999:blog-5212435600160500023.post-39914654052024496622007-03-11T20:00:00.000+01:002008-08-28T16:13:37.906+02:00SDF on its own websiteThe primary reference for SDF is now <a href="http://www.syntax-definition.org">http://www.syntax-definition.org</a>
The Meta-Environment team has always made SDF available as a separately distributable and usable product. Due to this policy, SDF is now used by many different projects and people. Now, we also present SDF on its own website.Jurgenhttp://www.blogger.com/profile/14838802521749663582noreply@blogger.comtag:blogger.com,1999:blog-5212435600160500023.post-82857465090407328402007-02-26T16:00:00.000+01:002008-08-28T16:35:27.628+02:00Meta-Environment 2.0, Release Candidate 2 is online, and SDF 2.4 releasedSee <a href="http://www.meta-environment.org/Meta-Environment/ReleaseNotes" class="twikiLink">ReleaseNotes</a> for a description of the next release candidate of the ASF+SDF Meta-Environment. With this release, <a href="http://www.meta-environment.org/Meta-Environment/SDF" class="twikiLink">SDF</a> 2.4 was also released. This release candidate is the first to supply a binary installer for Linux/i386. See also: </span></p><ul style="font-weight: bold;"><li> <a href="http://www.meta-environment.org/Meta-Environment/ReleaseNotes">ReleaseNotes</a></li><li> <a href="http://www.meta-environment.org/Downloads" class="twikiLink">Downloads</a> for source distribution of The ASF+SDF Meta-Environment 2.0 RC2 </li><li> <a href="http://www.meta-environment.org/Meta-Environment/Downloads" class="twikiLink">Downloads</a> for binary linux installer of The ASF+SDF Meta-Environment 2.0 RC2 </li></ul>
<a href="http://www.meta-environment.org/pub/Meta-Environment/WebNews/smallcake.jpg"><img src="http://www.meta-environment.org/pub/Meta-Environment/WebNews/smallcake.jpg" alt="Meta-Environment Cake" width="100%"/></a>Jurgenhttp://www.blogger.com/profile/14838802521749663582noreply@blogger.comtag:blogger.com,1999:blog-5212435600160500023.post-52251047783640461302007-02-09T15:59:00.000+01:002008-08-29T13:34:26.761+02:00ATerms in Top Ten most cited Software Engineering PapersThe January issue of the journal <strong>Information and Software Technology</strong> publishes a <a href="http://dx.doi.org/10.1016/j.infsof.2006.08.004" target="_top">list of most cited articles in software engineering</a> that were published in the year 2000. The original ATerm article ("Efficient Annotated Terms", M.G.J. van den Brand, H.A. de Jong, P. Klint and P.A. Olivier, Software-Practice and Experience 30 (3):259-291 Mar 2000) appears on the sixth position. A follow-up paper describing applications of ATerms appears in that same journal and can be found at <a href="http://homepages.cwi.nl/%7Epaulk/publications/aterms2.pdf" target="_top">ATerms for manipulation and exchange of structured data: It's all about sharing</a>.Jurgenhttp://www.blogger.com/profile/14838802521749663582noreply@blogger.comtag:blogger.com,1999:blog-5212435600160500023.post-54403652619604882032007-02-01T21:00:00.000+01:002008-08-29T13:35:46.677+02:00Plugin ArchitectureHayco de Jong defends his dissertation at the Universiteit van Amsterdam on component technology with its application to the infra-structure of The Meta-Environment. <p>See also: </p><ul><li> <a href="http://ICTregie.nl"></a><a target="_top">ICTregie.nl</a></li><li> <a href="http://www.metamud.org/%7Ejong"></a><a target="_top">http://www.metamud.org/~jong</a></li></ul>Jurgenhttp://www.blogger.com/profile/14838802521749663582noreply@blogger.comtag:blogger.com,1999:blog-5212435600160500023.post-63636443928850821032007-01-23T15:56:00.000+01:002008-08-29T13:33:37.499+02:00The Documentation FrontlinesThe documentation project of The Meta-Environment 2.0 is progressing at a steady pace. See <a href="http://www.meta-environment.org/Meta-Environment/Documentation" class="twikiLink">Documentation</a>. Most of the old manual is updated already. The first guided tour (flash) demo was put online yesterday.<p>All progress made on the documentation front is published online immediately.</p>Jurgenhttp://www.blogger.com/profile/14838802521749663582noreply@blogger.comtag:blogger.com,1999:blog-5212435600160500023.post-52772999143059198492007-01-15T21:00:00.000+01:002008-08-29T13:32:39.150+02:00Using the Meta-Environment for COBOL Analysis and TransformationNiels Veerman defends at the Vrije Universiteit Amsterdam his dissertation on Cobol analysis and transformation using The Meta-Environment. His cases include goto elimination and the detection of 'mines' in COBOL source code. See <a href="http://www.cs.vu.nl/%7Enveerman/research/thesis.pdf" target="_top">http://www.cs.vu.nl/~nveerman/research/thesis.pdf</a>. Also see the popular article in the (Dutch) newspaper Computable <a href="http://www.computable.nl/artikel.jsp?id=1839499" target="_top">http://www.computable.nl/artikel.jsp?id=1839499</a> <p> </p>Jurgenhttp://www.blogger.com/profile/14838802521749663582noreply@blogger.comtag:blogger.com,1999:blog-5212435600160500023.post-72150328927661042262006-12-24T21:00:00.000+01:002008-08-29T13:28:20.938+02:00Extension of ApigenAntoine Reilles defends his dissertation in Nancy using ATerms and extending ApiGen into GOM. See <a href="http://www.loria.fr/%7Ereilles/papers/manuscrit.pdf" target="_top">http://www.loria.fr/~reilles/papers/manuscrit.pdf</a> (in French).Jurgenhttp://www.blogger.com/profile/14838802521749663582noreply@blogger.com