Giotto

Giotto is a domain designed by Christoph Meyer Kirsch to realize the semantics of the Giotto language, designed by Tom Henzinger, Ben Horowitz, and Christoph Meyer Kirsch. The semantics is a particular flavor of a synchronous model. Each component executes a specified number of times per iteration. The number of times it executes is called its frequency, and it defaults to one. The frequency can be specified to be something other than one by simply adding a parameter to the component named frequency, and then giving it a value different from one.

A particular feature of Giotto semantics is that the arcs connecting components are updated with a new value at well-defined points in the execution, irrespective of their execution time. If the frequency of the actor producing the data for the arc is one, then the value is updated only between iterations. Thus, each arc begins empty (having no value present), and acquires a value at the end of the first iteration.

If a component has frequency greater than one, then its output arcs are updated more than once per iteration. Suppose the frequency is two. Then its output arcs will be updated twice per iteration, but only the final update will be visible to components with frequency one (and only on the next iteration). If a component with frequency two is a destination of one of its outputs, then that component will see each update, but only in its next invocation. Thus, the second invocation of the destination in the iteration will see the value produced by the first invocation of the source in the iteration.

Giotto imposes the additional constraint that the frequencies of all components in a model bear harmonic relationships with one another. This means, for example, that frequencies of 2 and 3 cannot coexist in the same model. Frequencies 2 and 4 or 3 and 6 can, however, coexist.

The Giotto domain is highly preliminary, and the example models are not particularly interesting. Watch this space for more interesting examples.

References

  1. Haiyang Zheng, Edward Lee Christoph Kirsch, "Giotto Domain," a chapter from
    C. Brooks, E.A. Lee, X. Liu, S. Neuendorffer, Y. Zhao, H. Zheng (eds.), "Heterogeneous Concurrent Modeling and Design in Java (Volume 3: Ptolemy II Domains)," EECS Department, University of California, Berkeley, UCB/EECS-2008-37, April 15, 2008.
  2. M.A.A. Sanvido and Aaron Walburg, "Giotto Tutorial," Memorandum No. UCB/ERL M04/30, August 14, 2004, EECS Department, University of California at Berkeley, Berkeley, CA 94720, U.S.A
  3. Giotto Website