<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://lambda-the-ultimate.org">
<channel>
 <title>Lambda the Ultimate - LtU Forum</title>
 <link>http://lambda-the-ultimate.org/taxonomy/term/1/0</link>
 <description>Main Discussion Forum</description>
 <language>en</language>
<item>
 <title>Scala Lift Off Unconference review</title>
 <link>http://lambda-the-ultimate.org/node/2808</link>
 <description>&lt;p &gt;I was just a gadfly, so LtU folks who actually presented etc. at the unconference can talk more in-depth, but it seemed to me that Scala is getting &lt;a href=&quot;http://liftweb.net/index.php/Scala_lift_off&quot;&gt;serious momentum&lt;/a&gt;. More power to it, we could stand to have a &quot;better&quot; Java.&lt;p &gt;
[Edit: I am promoting this to the front page. Click to read more details, as they are posted to the discussion group. -- Ehud]&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/1">LtU Forum</category>
 <pubDate>Mon, 12 May 2008 13:33:16 -0400</pubDate>
</item>
<item>
 <title>service course in logic and logic programming:  crazy?</title>
 <link>http://lambda-the-ultimate.org/node/2807</link>
 <description>&lt;p &gt;This coming fall, I&#039;m teaching our department&#039;s service course for non-majors.  The topic is open, and in the past I&#039;ve offered a version using Mark Guzdial&#039;s Python-based image processing course and another surveying algorithms and algorithm analysis (a la David Harel&#039;s &lt;em &gt;Algorithmics&lt;/em&gt;).&lt;/p&gt;
&lt;p &gt;For this fall, I&#039;m thinking about offering a course introducing programming from the logic programming point of view.  The students will, for the most part, have the mathematical maturity of Oregon high school graduates who are afraid of math, which is to say, essentially nothing.  Almost none of them will have any background in either programming or logic, and I&#039;ll have the standard &quot;fear factor&quot; to overcome, as well.  &lt;/p&gt;
&lt;p &gt;At a minimum, then, I&#039;ll have to include a few weeks on propositional logic before diving in to actual programming.  My inclination for programming is to use Prolog, probably the SWI compiler, for its fairly rich standard library.  Beyond that, however, I&#039;m pretty much at sea, and would really appreciate some suggestions.  I&#039;ve never taught a logic programming course before (other than as a component in a senior-level PL class), certainly not at such a low level, and this is not, in general, an area of expertise for me.&lt;/p&gt;
&lt;p &gt;If you were to teach such a course (or if you have already), what would you consider an appropriate range and ordering of topics?  Any ideas for cool applications?  Sudoku solvers are a neat possibility:  I&#039;d love other ideas.  Do you know of similar courses that have been successfully deployed?&lt;/p&gt;
&lt;p &gt;Is this idea insane?&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/1">LtU Forum</category>
 <pubDate>Sat, 10 May 2008 13:11:18 -0400</pubDate>
</item>
<item>
 <title>OO via first class enviroments: Bla</title>
 <link>http://lambda-the-ultimate.org/node/2806</link>
 <description>&lt;p &gt;(Since &lt;a href=&quot;http://strlen.com/sheep/index.html&quot;&gt;SHEEP&lt;/a&gt; isn&#039;t out yet) The &lt;a href=&quot;http://strlen.com/bla/index.html&quot;&gt;programming language Bla&lt;/a&gt;&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;&quot;breaks with referential transparency and allows use of assignment as well&quot;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p &gt;and/but&lt;/p&gt;
&lt;blockquote &gt;&lt;p &gt;&quot;[via] &#039;1st class environments&#039;, Bla integrates functional and object orientedness in a tiny language, in an elegant and natural way. However, on top of this core language, Bla adds quite a few concepts to make programming practical.&quot;&lt;/p&gt;&lt;/blockquote&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/1">LtU Forum</category>
 <pubDate>Fri, 09 May 2008 19:10:59 -0400</pubDate>
</item>
<item>
 <title>FringeDC informal meeting Saturday May 10th</title>
 <link>http://lambda-the-ultimate.org/node/2804</link>
 <description>&lt;p &gt;FringeDC is a group in the Washington DC area interested in fringe and&lt;br &gt;
functional languages (Lisp, Haskell, Arc, Prolog, etc.)&lt;/p&gt;
&lt;p &gt;If you&#039;re in the DC area, please join us this Saturday over a beer!&lt;/p&gt;
&lt;p &gt;http://www.lisperati.com/fringedc.html&lt;br &gt;
http://www.lisperati.com/may10th.html&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/1">LtU Forum</category>
 <pubDate>Thu, 08 May 2008 08:40:26 -0400</pubDate>
</item>
<item>
 <title>In what case a system doesn&#039;t benefit from MapReduce? Do you know any example which doesn&#039;t benefit from MapReduce</title>
 <link>http://lambda-the-ultimate.org/node/2802</link>
 <description>&lt;p &gt;I am making a research on MapReduce.&lt;/p&gt;
&lt;p &gt;It&#039;s easy to find out about MapReduce. But my concern is about the systems that don&#039;t benefit from Mapreduce. Why they don&#039;t? &lt;/p&gt;
&lt;p &gt;I want to search about a few softare systems which didn&#039;t/don&#039;t implement , benefit from MapReduce.&lt;/p&gt;
&lt;p &gt;Any information will help.&lt;/p&gt;
&lt;p &gt;Thank You&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/1">LtU Forum</category>
 <pubDate>Tue, 06 May 2008 23:36:55 -0400</pubDate>
</item>
<item>
 <title>Statistical Defect Detection?</title>
 <link>http://lambda-the-ultimate.org/node/2797</link>
 <description>&lt;p &gt;Okay, it&#039;s not quite the right place for this, but I&#039;m stumped and many of you keep tabs on this kind of stuff.&lt;/p&gt;
&lt;p &gt;A long time ago I ran into a paper on something I remember being called &quot;statistical defect detection&quot;, wherein some clever people wrote software to record which branches were taken leading up to a crash and used those to determine, statistically, which lines of code were most likely to be responsible.&lt;/p&gt;
&lt;p &gt;I can&#039;t find it any more. Can anyone else remember it? Maybe you can help me find it?&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/1">LtU Forum</category>
 <pubDate>Sun, 04 May 2008 14:01:25 -0400</pubDate>
</item>
<item>
 <title>programming languages and facial hair</title>
 <link>http://lambda-the-ultimate.org/node/2795</link>
 <description>&lt;p &gt;This is all in fun, but look at &lt;a href=&quot;http://blogs.microsoft.co.il/blogs/tamir/archive/2008/04/28/computer-languages-and-facial-hair-take-two.aspx&quot;&gt;this blog&lt;/a&gt;...&lt;/p&gt;
&lt;p &gt;He clearly needs a pic of &lt;a href=&quot;http://www-formal.stanford.edu/jmc/jmcbw.jpg&quot;&gt;John McCarthy&lt;/a&gt;,&lt;br &gt;
and one of &lt;a href=&quot;http://www.cs.ualberta.ca/k-12students/images/iverson.jpg&quot;&gt;Ken Iverson&lt;/a&gt;.&lt;/p&gt;
&lt;p &gt;(Presumably APL was successful at first becuse of &lt;a href=&quot;http://www.vector.org.uk/archive/v223/APL_1130.htm&quot;&gt;Larry Breed&lt;/a&gt;.)&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/1">LtU Forum</category>
 <pubDate>Tue, 29 Apr 2008 20:56:11 -0400</pubDate>
</item>
<item>
 <title>A Cybernetics DSL?</title>
 <link>http://lambda-the-ultimate.org/node/2794</link>
 <description>&lt;p &gt;My introduction to formal systems was in a cybernetics class. The more I learn about concepts in programming language design, and the direction that hardware seems to be evolving, the more I think that a domain specific language for cybernetics would be a worthwhile experiment. Has someone done this already? I see glimmers of possibility in the pi-calculus, functional-reactive programming, dataflow languages, DSL&#039;s for audio synthesis. I was intregued, back when &lt;a href=&quot;http://lambda-the-ultimate.org/node/1578&quot;&gt;this old thread&lt;/a&gt; was posted, by Hank Thediek&#039;s comments, and some others following along his line of thinking. It has haunted me since.&lt;/p&gt;
&lt;p &gt;I would love to be told that someone has already made such and such language and this is why it does not work to integrate cybernetic models into programming. But, if it has not been really tried, I have an instinct that tells me the results could be very interesting.&lt;/p&gt;
&lt;p &gt;On a untested brainstorm kind of level, it seems like feedback could be a refinement of a closure variable or monad, the concept of a system that can be open or closed to energy, perturbation, information, or control seems to map well to varying levels of scoping, encapsulation and information hiding... etc. Of course, alot of the information theory and computation theory that evolved through with and leading up to cybernetcs are also ancestors of modern computer science, but it really seems like the low hanging fruit is still ripe and yet to be plucked.&lt;/p&gt;
&lt;p &gt;The biggest rift I see between computer science and cybernetics is that cybernetics seems optimized for systems where components are unknowable or unpredictable (harsh external environments, hostile or incompetent users, incomplete or error-prone measurements, heuristic behaviors), while computer science seems to always strive for complete information, provability. To attempt what is surely an overgeneralization, but something close to what I mean: a cyberneticist adds redundancy to prevent failure, a computer scientist eliminates redundancy to simplify models (and then any reader of the daily wtf would be able to tell you: a software developer puts in redundancy in a way that increases the chances of failure).&lt;/p&gt;
&lt;p &gt;Since cybernetics was designed for systems with heterogeneous and loosely coupled components with a minimum of (well specified) information flow, it seems like an ideal model for programming with multiple processes/computers, for human/computer interaction design, and for compiler/language design (finding the best fit of a high level formal model and a limited state machine representation of that model).&lt;/p&gt;
&lt;p &gt;To sum up: is there a cybernetic DSL that someone made that I can try? Is cybernetics just out of fashion, or technically unsound and superseded, my teachers just those last conservative dinosaurs who never admitted they were wrong? Have cybernetic principles been tested and dismissed as a failure, integrated so sloppily that we no longer know what we knew in the &#039;50s, or simply overlooked?&lt;/p&gt;
&lt;p &gt;Please forgive the rambling of this post, I am trying to talk about something I have a incomplete understanding of, and would be honored to have others here help me clarify these things.&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/1">LtU Forum</category>
 <pubDate>Tue, 29 Apr 2008 13:48:48 -0400</pubDate>
</item>
<item>
 <title>is there anybody knows about the origin &quot;Dope Vector&quot;?</title>
 <link>http://lambda-the-ultimate.org/node/2792</link>
 <description>&lt;p &gt;In computer programming, a dope vector is a data structure used to hold information about an array, especially its memory layout.&lt;/p&gt;
&lt;p &gt;A dope vector typically contains information about the type of array element, rank of an array, the extents of an array, and the stride of an array as well as a pointer to block in memory containing the array elements.&lt;/p&gt;
&lt;p &gt;It is often used in compilers to pass entire arrays between procedures in a high level language like Fortran.&lt;/p&gt;
&lt;p &gt;from, wikipedia.org&lt;/p&gt;
&lt;p &gt;I am questioning about the origin dope vector~ why they use &quot;dope&quot;?&lt;br &gt;
dope has many meanings, isn&#039;t it? affix or drug..and so on..&lt;/p&gt;
&lt;p &gt;please explain to me more clearly&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/1">LtU Forum</category>
 <pubDate>Sun, 27 Apr 2008 14:35:43 -0400</pubDate>
</item>
<item>
 <title>Is Halting Problem Valid for P?</title>
 <link>http://lambda-the-ultimate.org/node/2791</link>
 <description>&lt;p &gt;Hi All&lt;/p&gt;
&lt;p &gt;I was discussing halting halting problem with one of my friend yesterday. He asked me a good question. Here is the question:&lt;br &gt;
&quot;Let P be the class of all Pascal programs that don&#039;t use go to ,while and repeat statements, nor recursive procedure calls.Is Halting Problem Valid for P?&quot; &lt;/p&gt;
&lt;p &gt;Now the interesting thing is that halting problem is valid if it has infinite loop and a program can not contain a loop until it has a recursive procedure like goto, while and for loop etc. So I think we can not get halting problem for P (the class of all Pascal programs) that don&#039;t use recursive procedure.&lt;/p&gt;
&lt;p &gt;But Still I have confusion in my mind. May be there exist a program which can contain infinite loop without using recursive procedure. I tried to find but I couldn&#039;t think any such program. So I want to know &quot;Does anybody know any example in which halting problem is valid even if the program don&#039;t use loops and recursive procedure calls?&quot;&lt;/p&gt;
&lt;p &gt;OR if you don&#039;t know any example then tell me what do you think about this problem. Is Halting Problem valid for P? If yes, Why?&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/1">LtU Forum</category>
 <pubDate>Sat, 26 Apr 2008 16:00:20 -0400</pubDate>
</item>
<item>
 <title>Dao 1.0 preview version is released</title>
 <link>http://lambda-the-ultimate.org/node/2790</link>
 <description>&lt;p &gt;Hi,&lt;/p&gt;
&lt;p &gt;This language has been introduced to this forum before in &lt;a href=&quot;http://lambda-the-ultimate.org/node/2085&quot;&gt;Dao, a new programming language&lt;/a&gt;, now I would like to bring to your attention the latest release of Dao (1.0-preview version). Dao is a simple yet powerful object-oriented programming language featured by, optional typing, BNF-like macro system, regular expression, multidimensional numeric array, asynchronous function call for concurrent programming etc.&lt;/p&gt;
&lt;p &gt;Since the last beta release (2006 november), a number of new features have been added to the language with some significant improvements on the implementation. Here I will just list some of them:&lt;/p&gt;
&lt;p &gt;1. Added a new typing system, so that the type of a variable can be either declared explicitly or inferred implicitly, and type checking is performed at compiling time when possible. More over the type information is used for function overloading and function specialization (with type-optimized VM instructions) according to parameter types. Some types can be compounded into new types, e.g., list, tuple...&lt;/p&gt;
&lt;p &gt;2. A flexible macro-system that allows writting macro in a form close to BNF, and can be used to define new syntax;&lt;/p&gt;
&lt;p &gt;3. Added Asynchronous Function Call (AFC) and Message Passing Interface (MPI) for further support for concurrent and distributed programming (still experimental);&lt;/p&gt;
&lt;p &gt;4. Added a few new data types, in particular, among which, there is the new tuple type in which each of the items is typed independently, for example, if a tuple is consisted of an integer and a string, then the type of the tuple will be tuple; Moreover the items of a Dao tuple can have field names.&lt;/p&gt;
&lt;p &gt;5. The internal data storage scheme is improved to reduce memory overheads for simple types.&lt;/p&gt;
&lt;p &gt;6. Added special support for the main() function, so that the command line arguments are mapped to the function parameters, and are checked against the paremeter types of main().&lt;/p&gt;
&lt;p &gt;7. Improved representation of C/C++ types, so that their inheritance relationships can be still valid in Dao, and they can be derived by Dao classes directly.&lt;/p&gt;
&lt;p &gt;Moreover, this release has included a tool (tools/autobind.dao) which can do semi-automated wrapping of C/C++ libraries. In fact, many of the modules released this time are generated by this tool. Just to list the modules released this time:&lt;br &gt;
DaoCamellia (image processing),&lt;br &gt;
DaoCGI (CGI Web programming),&lt;br &gt;
DaoCLoader (running time wrapping of C libraries, slightly similar to the ctype module of Python),&lt;br &gt;
DaoDataModel (database handling, can be used to set up mappng between data tables and Dao class types),&lt;br &gt;
DaoFastCGI (CGI Web programming),&lt;br &gt;
DaoLapack (linear algebra library),&lt;br &gt;
DaoMagick (image processing),&lt;br &gt;
DaoMGL (math plotting),&lt;br &gt;
DaoMySQL (database),&lt;br &gt;
DaoOpenGL (3D graphics),&lt;br &gt;
DaoSDL (multi-media),&lt;br &gt;
DaoTCC (embedding C codes into Dao scripts),&lt;br &gt;
DaoXML (handling XML documents and fetching web pages from web servers),&lt;br &gt;
DaoZlib (compression),&lt;br &gt;
DaoVTK (3D data and model visualization).&lt;/p&gt;
&lt;p &gt;I believe this release has become suitable for some practical applications, and worth to be tried out. Then a formal release of the 1.0 version will be made available during this august or september. I would be very grateful, if anyone can give me some suggestions for improvement, and feature requests are of course also welcome. Thanks and&lt;/p&gt;
&lt;p &gt;enjoy,&lt;/p&gt;
&lt;p &gt;Limin&lt;/p&gt;
&lt;p &gt;&lt;a href=&quot;http://www.xdao.org&quot;&gt;home page&lt;/a&gt;&lt;br &gt;
&lt;a href=&quot;http://sourceforge.net/projects/daoscript/&quot;&gt;sourceforge project&lt;/a&gt;&lt;br &gt;
&lt;a href=&quot;https://sourceforge.net/project/showfiles.php?group_id=141871&amp;amp;package_id=273540&amp;amp;release_id=594971&quot;&gt;download&lt;/a&gt;&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/1">LtU Forum</category>
 <pubDate>Fri, 25 Apr 2008 18:26:42 -0400</pubDate>
</item>
<item>
 <title>Resume using continuations</title>
 <link>http://lambda-the-ultimate.org/node/2789</link>
 <description>&lt;p &gt;I am looking at a way to implement Resume in a CPS-based intermediate language. Resume allows to try again a calculation with a different value.&lt;/p&gt;
&lt;p &gt;If I mark the resume value with ^retry I want to do:&lt;/p&gt;
&lt;pre &gt;1 + ^retry 8  (* 9 *)
retry 5       (* 6 *)&lt;/pre&gt;&lt;p &gt;
In CPS, 1 + 8 may look like:&lt;/p&gt;
&lt;pre &gt;lambda (k) (k (+ 1 8))&lt;/pre&gt;&lt;p &gt;
Then I will extract the continuation around &quot;8&quot; to save it in a &quot;retry&quot; variable:&lt;/p&gt;
&lt;pre &gt;lambda (k) ((lambda (n) (k (+ 1 n))) 8)
lambda (k) ((lambda (k&#039;) (k&#039; 8)) (lambda (n) (k (+ 1 n))))
(* save continuation *)
lambda (k) ((lambda (k&#039;) (do ((set! retry k&#039;) (k&#039; 8)))) (lambda (n) (k (+ 1 n))))&lt;/pre&gt;&lt;p &gt;
I could do the same transformation for an arbitrary nested variable. What I do not like is that I use a &quot;global&quot; variable retry which I set!, but the alternative is to pass it around as a function parameter-- not very convenient.&lt;/p&gt;
&lt;p &gt;Is my reasoning correct? Is there a better way?&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/1">LtU Forum</category>
 <pubDate>Fri, 25 Apr 2008 12:49:50 -0400</pubDate>
</item>
<item>
 <title>2nd Revision of &quot;Thoughts about the Best Introductory Language&quot;</title>
 <link>http://lambda-the-ultimate.org/node/2788</link>
 <description>&lt;p &gt;
I finally got my act together and &lt;a href=&quot;http://www.shlomifish.org/philosophy/computers/education/introductory-language/&quot;&gt;updated
my &quot;Thoughts about the Best Introductory Language&quot; essay&lt;/a&gt;, with many corrections, some
clarifications and several other enhancements. See &lt;a href=&quot;http://lambda-the-ultimate.org/node/2194&quot;&gt;the previous discussion of it&lt;/a&gt; here.
&lt;/p&gt;

&lt;p &gt;
The licence is still CC-by.
&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/1">LtU Forum</category>
 <pubDate>Fri, 25 Apr 2008 01:35:08 -0400</pubDate>
</item>
<item>
 <title>On Presenting Operational Semantics</title>
 <link>http://lambda-the-ultimate.org/node/2787</link>
 <description>&lt;p &gt;So as I understand it, describing a language semantics in terms of execution by the SECD machine, is an acceptable presentation of small-step operational semantics. What I don&#039;t know is whether small-step operation semantics are still in fashion or considered outdated. One of the practical advantages of small-step operational semantics presented in this manner, seems to me at least, that it facilitates the verification of the language semantics, and for other people to create their own implementations. Is this the common wisdom?  &lt;/p&gt;
&lt;p &gt;Well given that, I have to wonder why not describe the small-step operational semantics using an even simpler stack machine, one without registers or environment (instead allowing first-class functions on the stack). That seems to me to offer some advantages over the SECD machine. For example, we obviously don&#039;t have to worry about environment and registers, and we also don&#039;t need to perform defunctionalization. &lt;/p&gt;
&lt;p &gt;I am asking, because I want to formally present the semantics (without regard for types) of a simple imperative OO language with some functional features. &lt;/p&gt;
&lt;p &gt;Some of my reading material concerning operational semantics: &lt;/p&gt;
&lt;ul &gt;
&lt;li &gt;&lt;a href=&quot;http://www.brics.dk/RS/03/33/&quot;&gt;A Rational Deconstruction of Landin&#039;s SECD Machine&lt;/a&gt; by Olivier Danvy&lt;/li&gt;
&lt;li &gt;&lt;a href=&quot;http://www.cs.uiowa.edu/~slonnegr/plf/Book/&quot;&gt;Syntax and Semantics of Programming Languages&lt;/a&gt; by Ken Slonneger, specifically &lt;a href=&quot;http://www.cs.uiowa.edu/~slonnegr/plf/Book/Chapter8.pdf&quot;&gt;Chapter 8&lt;/a&gt;&lt;/li&gt;
&lt;li &gt;&lt;a href=&quot;http://www.cl.cam.ac.uk/Teaching/2000/Semantics/sempl.ps.gz&quot;&gt;Lecture Notes on Semantics of Programming Languages&lt;/a&gt; by Andrew Pitts&lt;/li&gt;
&lt;/ul&gt;
&lt;p &gt;Please feel free to add more to my list. &lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/1">LtU Forum</category>
 <pubDate>Thu, 24 Apr 2008 12:32:39 -0400</pubDate>
</item>
<item>
 <title>Tom 2.6 released : matching constraints, strategic programming with java objects</title>
 <link>http://lambda-the-ultimate.org/node/2786</link>
 <description>&lt;p &gt;&lt;a href=&quot;http://gforge.inria.fr/projects/tom/&quot;&gt;Tom 2.6&lt;/a&gt; was just released, and includes a whole lot of interesting things.&lt;/p&gt;
&lt;p &gt;Among them, there are :&lt;br &gt;
- the introduction of constraints in the matching algorithm, improving the readability of programs&lt;br &gt;
- strategies now work with zero efforts on any java data structure, all you have to do is provide the tom mapping, which you already did since you use %match&lt;br &gt;
- a much better integration of the &lt;a href=&quot;http://antlr.org/&quot;&gt;antlr&lt;/a&gt; parser generator&lt;br &gt;
- term graph rewriting&lt;/p&gt;
&lt;p &gt;have fun !&lt;/p&gt;
&lt;p &gt;The complete &lt;a href=&quot;http://gforge.inria.fr/frs/shownotes.php?release_id=2004&quot;&gt;announce&lt;/a&gt;:&lt;br &gt;
-------------------------------------------------------------------------&lt;br &gt;
Tom 2.6 announcement&lt;/p&gt;
&lt;p &gt;It is our great privilege and pleasure to announce the availability of&lt;br &gt;
Tom version 2.6 .&lt;/p&gt;
&lt;p &gt;This release continues our work on the integration of pattern matching&lt;br &gt;
and rule based programming facilities into Java and C.&lt;/p&gt;
&lt;p &gt;Tom is a pattern matching compiler developed at &lt;a href=&quot;http://www.inria.fr/&quot;&gt;INRIA&lt;/a&gt;. It is&lt;br &gt;
particularly well-suited for programming various transformations on&lt;br &gt;
trees/terms and XML based documents. Its design follows our research on&lt;br &gt;
the semantics and the efficient compilation of rule based languages.&lt;/p&gt;
&lt;p &gt;Many applications have been developed in Tom, both in academia and&lt;br &gt;
industry. Among them, let us mention:&lt;br &gt;
  - the Tom compiler itself&lt;br &gt;
  - languages semantics, interpreters and program transformation tools&lt;br &gt;
  - a generator of canonical abstract syntax trees (Gom)&lt;br &gt;
  - a proof assistant for supernatural deduction&lt;br &gt;
  - a compiler algorithm for anti-pattern matching and disunification&lt;/p&gt;
&lt;p &gt;Tom is a complex compiler which adds powerful constructs to Java and C:&lt;br &gt;
rewrite rules, strategies, non linear syntactic matching, associative&lt;br &gt;
matching with neutral element (a.k.a. list-matching), XML based pattern&lt;br &gt;
matching, string matching, and equational rewriting.&lt;br &gt;
This offers the possibility to analyze and transform any kind of&lt;br &gt;
data-structure. Tom can be used for large scale developments and&lt;br &gt;
applications. It comes with a detailed documentation, as well as with&lt;br &gt;
programming and debugging support.&lt;/p&gt;
&lt;p &gt;This new release contains many improvements and new features:&lt;/p&gt;
&lt;p &gt;- new alternative syntax for &#039;%match&#039;, based on atomic constraints&lt;br &gt;
        that can be combined with &#039;&amp;amp;&amp;amp;&#039; and &#039;||&#039; operators. This gives a&lt;br &gt;
        higher expressiveness and conciseness. Works also in &#039;%strategy&#039;&lt;/p&gt;
&lt;p &gt;- hand-written strategies became easier to write. No more &#039;Forward&#039;&lt;br &gt;
        class is needed.&lt;/p&gt;
&lt;p &gt;- strategy support for hand-written mappings&lt;/p&gt;
&lt;p &gt;- new tool based on ANTLR 3 for implementing parsers that&lt;br &gt;
        directly output Gom terms: GomAntlrAdapter.&lt;/p&gt;
&lt;p &gt;- term-graph rewriting support in Gom&lt;/p&gt;
&lt;p &gt;- Gom&#039;s lists now implement the interface Collection. Consequently,&lt;br &gt;
        Java&#039;s classic iteration techniques can be employed.&lt;/p&gt;
&lt;p &gt;- several speed-ups of the compilation process as well as for the&lt;br &gt;
        generated code.&lt;/p&gt;
&lt;p &gt;- a lot of new features for the Eclipse plug-in, including the&lt;br &gt;
availability of all the functionalities of the Java editor for&lt;br &gt;
&quot;.t&quot; files ( a complete list is available on the plug-in page:&lt;br &gt;
&lt;a href=&quot;http://tom.loria.fr/plugin.php&quot;&gt;http://tom.loria.fr/plugin.php&lt;/a&gt; )&lt;/p&gt;
&lt;p &gt;Tom is available, in open source (GPL/BSD License), from the web page:&lt;/p&gt;
&lt;p &gt;    &lt;a href=&quot;http://tom.loria.fr/&quot;&gt;http://tom.loria.fr/&lt;/a&gt;&lt;/p&gt;
&lt;p &gt;    Best regards,&lt;br &gt;
    Tom&#039;s development team&lt;/p&gt;</description>
 <category domain="http://lambda-the-ultimate.org/taxonomy/term/1">LtU Forum</category>
 <pubDate>Thu, 24 Apr 2008 05:59:43 -0400</pubDate>
</item>
</channel>
</rss>
