[Cuis] OMeta
Germán Arduino
garduino at gmail.com
Sat May 23 10:10:40 CDT 2015
I need to find the time to understand all these interesting topics, but I
fear to become as the guy of the video :D
2015-05-20 15:18 GMT-03:00 Phil (list) <pbpublist at gmail.com>:
> On Wed, 2015-05-20 at 13:50 -0400, Phil (list) wrote:
> > On Wed, 2015-05-20 at 13:05 +0000, H. Hirzel wrote:
> > > This is a file-out of which component from which source?
> > >
> >
> > A Smalltalk/Squeak scanner/parser from OMeta 2 (it ships as part of the
> > OMeta which is why it's a tricky package to load: parts of it are
> > written in itself). This is what 'pure' OMeta code looks like... in
> > most real world usage there would be squeak code on the right-hand side
> > action ('=> [some squeak code]') when a rule of interest is matched that
> > might, for example, populate an AST.
> >
> > Fascinating, I'd never looked at how this code was used before until you
> > asked: In OMeta it's used to determine whether it's looking at Squeak
> > code since it will get handed both OMeta and Squeak code. The
> > fascinating part is that it's written twice: once in Smalltalk as part
> > of the stage 1 in bootstrap and then again in stage 2 in OMeta once the
> > foundation exists. So Casey can partially get his wish now: look at how
> > stage 1 does it vs stage 2 to see the difference between pure Smalltalk
> > and OMeta. For example the arrayConstr method in Squeak:
> >
> > arrayConstr
> > ^ self ometaOr: {[true
> > ifTrue: [self apply: #token withArgs: {'{'}.
> > self apply: #expr.
> > self
> > many: [true
> > ifTrue: [self
> apply: #token withArgs: {'.'}.
> > self
> apply: #expr]].
> > self ometaOr: {[self apply: #token
> withArgs: {'.'}]. [self apply:
> > #empty]}.
> > self apply: #token withArgs: {'}'}]]. [true
> > ifTrue: [self apply: #token withArgs: {'{'}.
> > self apply: #token withArgs: {'}'}]]}
> >
> > and here's the OMeta version:
> >
> > arrayConstr =
> >
> > "{" expr ("." expr)* ("." | empty) "}"
> > | "{" "}"
> >
> > >
> > >
> > > On 5/20/15, Phil (list) <pbpublist at gmail.com> wrote:
> > > > On Sat, 2015-05-16 at 14:18 -0700, Casey Ransberger wrote:
> > > >> It would be very cool to have a Cuis compiler written in OMeta to
> compare
> > > >> and contrast with the one we have inherited from Smalltalk. The
> > > >> performance of the two would be interesting to compare, as would be
> the
> > > >> number of source lines of code, as well as that foggy "legibility"
> thing.
> > > >>
> > > >
> > > > We've been so busy on the other thread(s), I forgot to show you this
> > > > (just a starting point, but still):
> > > >
> >
> > <snip>
>
> Having gone through this exercise in the various threads has gotten me
> to the point where I believe OMeta 2 functionality can best be
> summarized thusly: https://youtu.be/-1TTN-Ev2KI?t=55s
>
>
>
> _______________________________________________
> Cuis mailing list
> Cuis at jvuletich.org
> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://jvuletich.org/pipermail/cuis_jvuletich.org/attachments/20150523/37c32d60/attachment-0004.html>
More information about the Cuis
mailing list