Actor-Oriented Models for Codesign

Most current hardware engineering practice is deeply rooted in discrete-event modeling and synchronous design. Most current software engineering is deeply rooted in procedural abstractions. The latter says little about concurrency and temporal properties, whereas the former lacks many of modularity capabilities of modern programming languages. Actor-oriented design emphasizes concurrency and communication between components while maintaining modularity. Components called actors execute and communicate with other actors. In contrast to the interfaces in object-oriented design (methods, principally, which mediate transfer of the locus of control), interfaces in actor-oriented design (which we call ports) mediate communication. But the communication is not assumed to involve a transfer of control. This paper discusses the structure of actor-oriented models and shows how data and behavioral type systems enhance modularity and re-use potential while enabling designs that embrace concurrency and time. This paper shows how components can be designed for re-use through parameterization and behavioral polymorphism, and how component specialization can offset the performance costs of doing so.

[1]  Edward A. Lee,et al.  System-Level Types for Component-Based Design , 2001, EMSOFT.

[2]  Edward A. Lee,et al.  Taming heterogeneity - the Ptolemy approach , 2003, Proc. IEEE.

[3]  Edward A. Lee Modeling concurrent real-time processes using discrete events , 1999, Ann. Softw. Eng..

[4]  Ulrik Pagh Schultz,et al.  Automatic program specialization for Java , 2000, TOPL.

[5]  Alberto L. Sangiovanni-Vincentelli,et al.  System-level design: orthogonalization of concerns andplatform-based design , 2000, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[6]  Gul A. Agha,et al.  Concurrent object-oriented programming , 1993, CACM.

[7]  Carl Hewitt,et al.  Viewing Control Structures as Patterns of Passing Messages , 1977, Artif. Intell..

[8]  Edward A. Lee,et al.  Actor-Oriented Design of Embedded Hardware and Software Systems , 2003, J. Circuits Syst. Comput..

[9]  Bran Selic,et al.  Real-time object-oriented modeling , 1994, Wiley professional computing.

[10]  Jeannette M. Wing,et al.  A behavioral notion of subtyping , 1994, TOPL.

[11]  E.A. Lee,et al.  Synchronous data flow , 1987, Proceedings of the IEEE.

[12]  Pierre Bricaud,et al.  Reuse methodology manual for system-on-chip designs , 1998 .

[13]  Gabor Karsai,et al.  The Generic Modeling Environment , 2001 .

[14]  Stephen Neuendorffer,et al.  Implementation Issues in Hybrid Embedded Systems , 2003 .

[15]  Alberto L. Sangiovanni-Vincentelli,et al.  Compositional Modeling in Metropolis , 2002, EMSOFT.

[16]  Thomas A. Henzinger,et al.  Giotto: a time-triggered language for embedded programming , 2001, Proc. IEEE.

[17]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[18]  Edward A. Lee,et al.  Overview of the Ptolemy project , 2001 .

[19]  Thomas A. Henzinger,et al.  Interface automata , 2001, ESEC/FSE-9.

[20]  Edward A. Lee,et al.  A behavioral type system and its application in Ptolemy II , 2004, Formal Aspects of Computing.

[21]  Gabor Karsai,et al.  Model-Integrated Computing , 1997, Computer.

[22]  Edward A. Lee,et al.  A component-based approach to modeling and simulating mixed-signal and hybrid systems , 2002, TOMC.

[23]  Stephen A. Edwards,et al.  The semantics and execution of a synchronous block-diagram language , 2003, Sci. Comput. Program..

[24]  Jeff Magee,et al.  The Koala Component Model for Consumer Electronics Software , 2000, Computer.