Re: Ometa vs XTreams PEG, PetitParser, Helvetia

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
12 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: Ometa vs XTreams PEG, PetitParser, Helvetia

Hannes Hirzel
On 3/30/11, Nikolay Suslov <[hidden email]> wrote:

> >From conceptual and practical point of view,
> OMeta - is not yet another "system tool" written for Squeak or another fork,
> in contrary to XTreams (a generalized stream/iterator framework written in
> Smalltalk) burned in Pharo. OMeta is a language which allows to simplify an
> existed tools in it's hosted language (Squeak, Pharo, JavaScript, etc) where
> it is implemented, while not porting, learning and using another ones, like
> XTreams. So, redefined tools with OMeta could become really portable and
> mobile, ready for using in any other fork, even in another language, like
> JavaScript.
>
> Regards,
> Nikolay

XTreams is primarily a generalized stream/iterator framework.  It
contains PEG parser generation facilities, which I assume might use
XTreams. If not the PEG parser stuff could be separated.

Nikolay, what you write is interesting but too terse for me to
understand. If I understand you right you mean that OMeta goes beyond
the PEG parser in XTreams and PetitParser (L. Renggli) and Helvetia (L
Renggli).

In which ways does OMeta go beyond these other tools?

AND: Of course very welcome that you run for the board.

--Hannes

Reply | Threaded
Open this post in threaded view
|

Re: Ometa vs XTreams PEG, PetitParser, Helvetia

Nikolay Suslov
Hannes,

On Thu, Mar 31, 2011 at 2:26 PM, Hannes Hirzel <[hidden email]> wrote:
On 3/30/11, Nikolay Suslov <[hidden email]> wrote:
> >From conceptual and practical point of view,
> OMeta - is not yet another "system tool" written for Squeak or another fork,
> in contrary to XTreams (a generalized stream/iterator framework written in
> Smalltalk) burned in Pharo.

Oh! That's Gmail's check spelling fault, sorry.
I meant: XTreams was borned in Pharo (not burned :)
 

XTreams is primarily a generalized stream/iterator framework.  It
contains PEG parser generation facilities, which I assume might use
XTreams. If not the PEG parser stuff could be separated.
 
Nikolay, what you write is interesting but too terse for me to
understand. If I understand you right you mean that OMeta goes beyond
the PEG parser in XTreams and PetitParser (L. Renggli) and Helvetia (L
Renggli).

In which ways does OMeta go beyond these other tools?


Again, I just could repeat, OMeta is not yet another tool, like PEG parser stuff, that could be founded in XTreams, Helvetica or PetitParser and others. It is a language, furthermore it is an object-oriented language for pattern matching. And it is based just on a variant of PEGs, which have been extended to handle arbitrary data types.
Thinking, that I couldn't say better then it is written on the author's site and his paper (http://www.tinlizzie.org/~awarth/papers/dls07.pdf), how OMeta goes beyond.

Regards,
Nikolay

 
AND: Of course very welcome that you run for the board.

--Hannes




Reply | Threaded
Open this post in threaded view
|

Re: Ometa vs XTreams PEG, PetitParser, Helvetia

Casey Ransberger-2
OMeta is ridiculously cool. You can do source to source translation in some cases, for example, without a pretty printer by running your grammar transformations through backward. I'm not aware of any other system that let's you do that.

There's a small dilemma here for me. The experimental side of my being that says "what if?" loves the idea, bit the professional side of me worries that we'd be solving problems that don't exist in Squeak (I don't hack on the compiler much, or on the Slang code,) but when I punch Cmd-S, my Smalltalk code compiles happily and consistently. Introducing new parsing technology is likely to break stuff, and compilers are complex animals. Yes, I recognize that OMeta could potentially speak to this complexity (it's designed for that.)

Actually, I think OMeta's most potentially interesting application in the context of Squeak would be improving Slang. It'd be kind of cool if we could use it to try out new features, etc. Turing completeness and all (compiler people, correct me if I'm wrong here) we might be able to use something like hygenic macros and a little bit of support code (maybe a plugin?) to get, say, closure behavior in Slang. Wouldn't it be cool if Slang got to be so powerful that you didn't need to reach for C to do low level stuff (in any context) anymore?

I'd rather attack the things that make industrial adoption a hard sell, though. One such "real problem" is modularity. I think Environments or perhaps Worlds is a better overall investment for the community than OMeta at this time. If we can get industry engaged with Squeak, we will have riches in terms of people who are strongly motivated to improve Squeak.

The other "real problem" I see is weak support for interoperability with other systems, particularly in the tools department. Further exploration of the use of e.g. Git for SCM would be really interesting to me.

On Mar 31, 2011, at 5:25 AM, Nikolay Suslov <[hidden email]> wrote:

Hannes,

On Thu, Mar 31, 2011 at 2:26 PM, Hannes Hirzel <[hidden email]> wrote:
On 3/30/11, Nikolay Suslov <[hidden email]> wrote:
> >From conceptual and practical point of view,
> OMeta - is not yet another "system tool" written for Squeak or another fork,
> in contrary to XTreams (a generalized stream/iterator framework written in
> Smalltalk) burned in Pharo.

Oh! That's Gmail's check spelling fault, sorry.
I meant: XTreams was borned in Pharo (not burned :)
 

XTreams is primarily a generalized stream/iterator framework.  It
contains PEG parser generation facilities, which I assume might use
XTreams. If not the PEG parser stuff could be separated.
 
Nikolay, what you write is interesting but too terse for me to
understand. If I understand you right you mean that OMeta goes beyond
the PEG parser in XTreams and PetitParser (L. Renggli) and Helvetia (L
Renggli).

In which ways does OMeta go beyond these other tools?


Again, I just could repeat, OMeta is not yet another tool, like PEG parser stuff, that could be founded in XTreams, Helvetica or PetitParser and others. It is a language, furthermore it is an object-oriented language for pattern matching. And it is based just on a variant of PEGs, which have been extended to handle arbitrary data types.
Thinking, that I couldn't say better then it is written on the author's site and his paper (http://www.tinlizzie.org/~awarth/papers/dls07.pdf), how OMeta goes beyond.

Regards,
Nikolay

 
AND: Of course very welcome that you run for the board.

--Hannes





Reply | Threaded
Open this post in threaded view
|

Re: Ometa vs XTreams PEG, PetitParser, Helvetia

Randal L. Schwartz
>>>>> "Casey" == Casey Ransberger <[hidden email]> writes:

Casey> OMeta is ridiculously cool. You can do source to source
Casey> translation in some cases, for example, without a pretty printer
Casey> by running your grammar transformations through backward. I'm not
Casey> aware of any other system that let's you do that.

Except maybe XTreams PEG. :)

--
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<[hidden email]> <URL:http://www.stonehenge.com/merlyn/>
Smalltalk/Perl/Unix consulting, Technical writing, Comedy, etc. etc.
See http://methodsandmessages.posterous.com/ for Smalltalk discussion

Reply | Threaded
Open this post in threaded view
|

Re: Ometa vs XTreams PEG, PetitParser, Helvetia

Hannes Hirzel
At this very moment I think we just need to make sure we can load
OMeta and XTreams into the release 4.2 and the ongoing development
trunk version so that people can compare and get a better idea.


1)
Randal, in January I loaded XTreams into the current version at that
time. You recently did as well a trial load, what is the script to
load it?

2)
Regarding OMeta, I did a load I think last October --- what do I need
to do as of now to load it?

3)
Does somebody more closely follow the development of PetitParser and
Helvetia on the Pharo side and could give a short report on what is
happening there? (Or just some pointers to helpful Pharo list mails)

--Hannes

On 3/31/11, Randal L. Schwartz <[hidden email]> wrote:

>>>>>> "Casey" == Casey Ransberger <[hidden email]> writes:
>
> Casey> OMeta is ridiculously cool. You can do source to source
> Casey> translation in some cases, for example, without a pretty printer
> Casey> by running your grammar transformations through backward. I'm not
> Casey> aware of any other system that let's you do that.
>
> Except maybe XTreams PEG. :)
>
> --
> Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
> <[hidden email]> <URL:http://www.stonehenge.com/merlyn/>
> Smalltalk/Perl/Unix consulting, Technical writing, Comedy, etc. etc.
> See http://methodsandmessages.posterous.com/ for Smalltalk discussion
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Ometa vs XTreams PEG, PetitParser, Helvetia

Frank Shearar
On 2011/04/01 11:17, Hannes Hirzel wrote:
> At this very moment I think we just need to make sure we can load
> OMeta and XTreams into the release 4.2 and the ongoing development
> trunk version so that people can compare and get a better idea.

> 1)
> Randal, in January I loaded XTreams into the current version at that
> time. You recently did as well a trial load, what is the script to
> load it?

Installer ss
     project: 'MetacelloRepository';
     install: 'ConfigurationOfXtreams'.
ConfigurationOfXtreams project bleedingEdge load

> 2)
> Regarding OMeta, I did a load I think last October --- what do I need
> to do as of now to load it?

Hans-Martin Mosner's done all the hard work, making a Monticello
Configuration: http://www.squeaksource.com/OMeta/OMeta2.mcm

It loads cleanly into Squeak trunk.

> 3)
> Does somebody more closely follow the development of PetitParser and
> Helvetia on the Pharo side and could give a short report on what is
> happening there? (Or just some pointers to helpful Pharo list mails)

I'm trying to install Helvetia (well, LanguageBoxes, specifically) at
the moment. It has massive dependencies: OmniBrowser, ECompletion,
Polymorph, ... that I'm slowly wading through. (What's frustrating is I
don't care about the UI integration (and I don't see why Helvetia's
_core_ should plug into _any_ UI))

> --Hannes
>
> On 3/31/11, Randal L. Schwartz<[hidden email]>  wrote:
>>>>>>> "Casey" == Casey Ransberger<[hidden email]>  writes:
>>
>> Casey>  OMeta is ridiculously cool. You can do source to source
>> Casey>  translation in some cases, for example, without a pretty printer
>> Casey>  by running your grammar transformations through backward. I'm not
>> Casey>  aware of any other system that let's you do that.
>>
>> Except maybe XTreams PEG. :)

To be fair, you do need to be careful with your rules if you want to run
them backwards. Kaehler & Warth give an example (which I know you
already know about, Casey) at
http://www.viewpointsresearch.org/pdf/m2008001_parseback.pdf

>>
>> --
>> Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
>> <[hidden email]>  <URL:http://www.stonehenge.com/merlyn/>
>> Smalltalk/Perl/Unix consulting, Technical writing, Comedy, etc. etc.
>> See http://methodsandmessages.posterous.com/ for Smalltalk discussion

frank

Reply | Threaded
Open this post in threaded view
|

Re: Ometa vs XTreams PEG, PetitParser, Helvetia

Sean P. DeNigris
Administrator
Hey Frank,

Frank Shearar wrote
I'm trying to install Helvetia (well, LanguageBoxes, specifically) at
the moment. It has massive dependencies: OmniBrowser, ECompletion,
Polymorph, ... that I'm slowly wading through.
Were you successful in loading everything? And did you publish the installation code anywhere? I was just thinking about these projects in Pharo 1.3...

Frank Shearar wrote
(What's frustrating is I
don't care about the UI integration (and I don't see why Helvetia's
_core_ should plug into _any_ UI))
Did you ask Lukas?

Cheers,
Sean
Cheers,
Sean
Reply | Threaded
Open this post in threaded view
|

Re: Ometa vs XTreams PEG, PetitParser, Helvetia

Frank Shearar-3
On 19 August 2011 22:42, Sean P. DeNigris <[hidden email]> wrote:

> Hey Frank,
>
>
> Frank Shearar wrote:
>>
>> I'm trying to install Helvetia (well, LanguageBoxes, specifically) at
>> the moment. It has massive dependencies: OmniBrowser, ECompletion,
>> Polymorph, ... that I'm slowly wading through.
>>
> Were you successful in loading everything? And did you publish the
> installation code anywhere? I was just thinking about these projects in
> Pharo 1.3...

I stalled with a laptop screen dying with my half-completed work on
it, and then distracted by PetitParser. Having given a bunch of
half-baked excuses :) it's high time I restarted my efforts.

> Frank Shearar wrote:
>> (What's frustrating is I
>> don't care about the UI integration (and I don't see why Helvetia's
>> _core_ should plug into _any_ UI))
>>
> Did you ask Lukas?

As always, Lukas is very helpful and polite. I suggested a plan of
attack that he thinks isn't unreasonable, and once I reload the bits
and pieces I will attempt to break Helvetia into several packages - a
core, with no UI dependencies at all, a Pharo integration package, and
a Squeak integration package. Or at least rip out the UI integration
so I can use the core, and hope to attract helpers for any UI
integration :)

frank

> Cheers,
> Sean
>
> --
> View this message in context: http://forum.world.st/Re-Ometa-vs-XTreams-PEG-PetitParser-Helvetia-tp3418056p3756190.html
> Sent from the Squeak - Dev mailing list archive at Nabble.com.
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Ometa vs XTreams PEG, PetitParser, Helvetia

Sean P. DeNigris
Administrator
In reply to this post by Randal L. Schwartz
Randal L. Schwartz wrote
Casey> OMeta is ridiculously cool. You can do source to source
Casey> translation in some cases, for example, without a pretty printer
Casey> by running your grammar transformations through backward. I'm not
Casey> aware of any other system that let's you do that.

Except maybe XTreams PEG. :)
Are there any examples of that, by chance?
Cheers,
Sean
Reply | Threaded
Open this post in threaded view
|

Re: Ometa vs XTreams PEG, PetitParser, Helvetia

Chris Cunnington-4

On Apr 7, 2015, at 11:18 PM, Sean P. DeNigris <[hidden email]> wrote:

Randal L. Schwartz wrote
Casey> OMeta is ridiculously cool. You can do source to source
Casey> translation in some cases, for example, without a pretty printer
Casey> by running your grammar transformations through backward. I'm not
Casey> aware of any other system that let's you do that.

Except maybe XTreams PEG. :)

Are there any examples of that, by chance?

If you look in the docs [1] you’ll start to look for subclasses of XTActor/PEG.Actor such as PEG.WikiGenerator. They are not present in Squeak or Pharo because Nicolas Cellier did not port them over. I think it was because they were plugged into other packages such as XML.Element, So the answer to your question is no. The way to find classes like WikiGenerator is to install Cincom’s VisualWorks (on a Mac for example) and include the Streams-Parsing-Tests package. Then adapt to Squeak/Pharo. 

Chapter 3, p. 100, footnote 9 of “Squeak Personal Computing and Multimedia” mentions a “Squeak demo for blowing students minds.” That’s a label Mark used for presenting the contents of a lecture he gave to students. It’s reasonable to assume that whatever was the balance of that presentation is material you’ve already been exposed to by reading Mark’s book. However, if you order the book from amazon.coom, it comes with a rich CD-ROM assembled by Stephen T. Pope with content I would expect would blow your mind. 

Chris 

[1] https://code.google.com/p/xtreams/wiki/Parsing



-----
Cheers,
Sean
--
View this message in context: http://forum.world.st/Re-Ometa-vs-XTreams-PEG-PetitParser-Helvetia-tp3418056p4818261.html
Sent from the Squeak - Dev mailing list archive at Nabble.com.




Reply | Threaded
Open this post in threaded view
|

Re: Ometa vs XTreams PEG, PetitParser, Helvetia

Sean P. DeNigris
Administrator
Chris Cunnington-4 wrote
>> Casey> OMeta is ridiculously cool. You can do source to source
>> Casey> translation in some cases, for example, without a pretty printer

If you look in the docs [1] you’ll start to look for subclasses of XTActor/PEG.Actor such as PEG.WikiGenerator...
Sorry, I should have been more specific. I meant examples of source to source translation with Xtreams or a pointer on how to try...
Cheers,
Sean
Reply | Threaded
Open this post in threaded view
|

Re: Ometa vs XTreams PEG, PetitParser, Helvetia

Frank Shearar-3
On 8 April 2015 at 12:29, Sean P. DeNigris <[hidden email]> wrote:
> Chris Cunnington-4 wrote
>>>> Casey> OMeta is ridiculously cool. You can do source to source
>>>> Casey> translation in some cases, for example, without a pretty printer
>>
>> If you look in the docs [1] you’ll start to look for subclasses of
>> XTActor/PEG.Actor such as PEG.WikiGenerator...
>
> Sorry, I should have been more specific. I meant examples of source to
> source translation with Xtreams or a pointer on how to try...

I only know of http://www.vpri.org/pdf/m2008001_parseback.pdf.

frank