[Cuis] OMeta 2

H. Hirzel hannes.hirzel at gmail.com
Thu May 21 01:33:42 CDT 2015


And from here http://www.vpri.org/pdf/tr2008003_experimenting.pdf (end
of section 1.2)

<citation>
ll computation takes place inside a world, which captures all of the
side effects—changes to global, local, and instance variables, arrays,
etc.—that happen inside it.

Worlds provide multiple views on the state of a program, and mechanisms
for interacting among these views. They subsume the mechanisms of backtracking,
tentative evaluation, possible worlds, undo, and many similar control
and state regimes.

We shall see that while it is often convenient for programmers to use
worlds directly,
there are also cases where worlds are better suited as a kind of
“semantic building
block” for higher-level language constructs.
</citation>

On 5/21/15, H. Hirzel <hannes.hirzel at gmail.com> wrote:
> And from here
> http://www.tinlizzie.org/~awarth/papers/dls07.pdf  (section 3 intro)
>
> <citation>
> By making OMeta an object-oriented language (i.e., making grammars
> analogous to classes and productions analogous to methods), several
> interesting things became possible.
> </citation>
>
> On 5/21/15, H. Hirzel <hannes.hirzel at gmail.com> wrote:
>> From the description of OMeta
>>
>> http://www.vpri.org/pdf/tr2008003_experimenting.pdf
>>
>> By extending Parsing Expression Grammars (PEGs) [For04] with support for
>> pattern
>> matching on arbitrary datatypes, left recursion, and parameterized and
>> higher-order
>> rules, OMeta gives programmers a natural and convenient way to
>> implement parsers,
>> visitors, and tree transformers, all of which can be extended in
>> interesting ways using
>> familiar object-oriented mechanisms. This makes OMeta particularly
>> well-suited as a
>> tool for building language implementations and extensions.
>>
>> On 5/21/15, H. Hirzel <hannes.hirzel at gmail.com> wrote:
>>> Great achievement, Phil!
>>>
>>> I did a test and the provided examples work fine.
>>>
>>> For convenience I combine below the installation instructions taken
>>> from different mails from yesterday.
>>>
>>> --Hannes
>>>
>>>
>>>
>>> A. Reestablish #compilerClass in Cuis
>>>
>>> 1) Unzip attached file compilerClass.zip
>>> 2) start Cuis 2330
>>> 3) Open file list
>>> 4) click on 2331
>>> 5) click on [install]
>>> 6) click on 2332
>>> 7) click on [install]
>>>
>>>
>>>
>>> B. pull down the OMeta*.st files from
>>> https://github.com/pbella/Cuis-Ports
>>>
>>>
>>>
>>> C. File in in the  following sequence
>>>       - OMeta2-stage1.st
>>>       - OMeta2-stage2a.st
>>>       - OMeta2-stage2b.st
>>>
>>> also see notes: https://github.com/pbella/Cuis-Ports#ometa-2
>>>
>>>
>>> D. Check examples in the
>>>      OMeta2Examples
>>>    class
>>>
>>>         OMeta2Examples match: 5 with: #fact.
>>> 	OMeta2Examples matchAll: '1234' with: #number.
>>> 	OMeta2Examples matchAll: 'abc123' with: #identifier.
>>> 	OMeta2Examples matchAll: #($a $b $c 1 2 3 #(4 5)) with: #structure.
>>> 	OMeta2Examples matchAll: 'howdy' with: #greeting.
>>>
>>>
>>>
>>>
>>> On 5/20/15, Phil (list) <pbpublist at gmail.com> wrote:
>>>> ... is alive!  Several caveats so please check out the README for the
>>>> latest updates as things progress:
>>>> https://github.com/pbella/Cuis-Ports#ometa-2
>>>>
>>>> Thanks,
>>>> Phil
>>>>
>>>>
>>>> _______________________________________________
>>>> Cuis mailing list
>>>> Cuis at jvuletich.org
>>>> http://jvuletich.org/mailman/listinfo/cuis_jvuletich.org
>>>>
>>>
>>
>




More information about the Cuis mailing list