Better off looking at my blog.

http://awelonblue.wordpress.com

I'm still working on a concept of generative grammars for stable
pseudo-state. It's described in a few of my blog articles, including the
most recent ones.

On Mon, Mar 19, 2012 at 2:52 PM, John Nilsson <j...@milsson.nu> wrote:

> Maybe not what you are looking for, but you might find
> http://awelon.org/ interesting.
>
> BR,
> John
>
> 2012/3/19 Benoît Fleury <benoit.fle...@gmail.com>:
> > Hi,
> >
> > I was wondering if there is any language out there that lets you describe
> > the behavior of an "object" as a grammar.
> >
> > An object would receive a stream of events. The rules of the grammar
> > describe the sequence of events the object can respond to. The "semantic
> > actions" inside these rules can change the internal state of the object
> or
> > emit other events.
> >
> > We don't want the objects to send message to each other. A bus-like
> > structure would collect events and dispatch them to all interested
> objects.
> > To avoid pushing an event to all objects, the "bus" would ask first to
> all
> > objects what kind of event they're waiting for. These events are the
> > possible alternatives in the object's grammar based on the current
> internal
> > state of the object.
> >
> > It's different from object-oriented programming since objects don't talk
> > directly to each other.
> >
> > A few questions the come up when thinking about this:
> >  - do we want backtracking? probably not, if the semantic actions are
> > different, it might be awkward or impossible to undo them. If the
> semantic
> > actions are the same in the grammar, we might want to do some factoring
> to
> > remove repeated semantic actions.
> >  - how to represent time? Do all objects need to share the same clock?
> Do we
> > have to send "tick" events to all objects?
> >  - should we allow the parallel execution of multiple scenarios for the
> same
> > object? What does it make more complex in the design of the object's
> > behavior? What does it make simpler?
> >
> > If we assume an object receive a tick event to represent time, and using
> a
> > syntax similar to ometa, we could write a simplistic behavior of an ant
> this
> > way:
> >
> > # the ant find food when there is a food event raised and the ant's
> position
> > is in the area of the food
> > # food indicates an event of type "food", the question mark starts a
> > semantic predicate
> > findFood    = food ?(this.position.inRect(food.area))
> >
> > # similar rule to find the nest
> > findNest     = nest ?(this.position.inRect(nest.area))
> >
> > # at every step, the ant move
> > move         = tick (=> move 1 unit in current direction (or pick random
> > direction if no direction))
> >
> > # the gatherFood scenario can then be described as finding food then
> finding
> > the nest
> > gatherFood = findFood (=> pick up food, change direction to nest)
> >                     findNest (=> drop food, change direction to food
> source)
> >
> > There is probably a lot of thing missing and not thought through.
> >
> > But I was just wondering if you know a language to do this kind of
> things?
> >
> > Thanks,
> > Benoit.
> >
> > _______________________________________________
> > fonc mailing list
> > fonc@vpri.org
> > http://vpri.org/mailman/listinfo/fonc
> >
> _______________________________________________
> fonc mailing list
> fonc@vpri.org
> http://vpri.org/mailman/listinfo/fonc
>



-- 
bringing s-words to a pen fight
_______________________________________________
fonc mailing list
fonc@vpri.org
http://vpri.org/mailman/listinfo/fonc

Reply via email to