Abstract
Actor-oriented components emphasize concurrency and temporal semantics and are used for modeling and designing embedded software and hardware. Actors interact with one another through ports via a messaging schema that can follow any of several concurrent semantics. Domain-specific actor-oriented languages and frameworks are common (Simulink, LabVIEW, SystemC, etc.). However, they lack many modularity and abstraction mechanisms that programmers have become accustomed to in object-oriented components, such as classes, inheritance, interfaces, and polymorphism, except as inherited from the host language. This article shows a form that such mechanisms can take in actor-oriented components, gives a formal structure, and describes a prototype implementation. The mechanisms support actor-oriented class definitions, subclassing, inheritance, and overriding. The formal structure imposes structural constraints on a model (mainly the “derivation invariant”) that lead to a policy to govern inheritance. In particular, the structural constraints permit a disciplined form of multiple inheritance with unambiguous inheritance and overriding behavior. The policy is based formally on a generalized ultrametric space with some remarkable properties. In this space, inheritance is favored when actors are “closer” (in the generalized ultrametric), and we show that when inheritance can occur from multiple sources, one source is always unambiguously closer than the other.
- Agha, G. 1986. ACTORS: A Model of Concurrent Computation in Distributed Systems. The MIT Press Series in Artificial Intelligence. MIT Press, Cambridge. Google Scholar
Digital Library
- Agha, G. 1990. Concurrent object-oriented programming. Commun. ACM 33, 9, 125--140. Google Scholar
Digital Library
- Agha, G., Frolund, S., Kim, W., Panwar, R., Patterson, A., and Sturman, D. 1993. Abstraction and modularity mechanisms for concurrent computing. IEEE Paral. Distrib. Tech. Syst. App. 1, 2, 3--14. Google Scholar
Digital Library
- Agha, G. A., Mason, I. A., Smith, S. F., and Talcott, C. L. 1997. A foundation for actor computation. J. Funct. Program. 7, 1, 1--72. Google Scholar
Digital Library
- Arvind, Nikhil, R. S., Rosenband, D., and Dave, N. 2004. High-level synthesis: An essential ingredient for designing complex asics. In Proceedings of the International Conference on Computer-Aided Design (ICCAD). IEEE, Los Alamitos. Google Scholar
Digital Library
- Baccelli, F., Cohen, G., Olster, G. J., and Quadrat, J. P. 1992. Synchronization and Linearity: An Algebra for Discrete Event Systems. Wiley, New York.Google Scholar
- Bjesse, P., Claessen, K., Sheeran, M., and Singh, S. 1998. Lava: Hardware design in haskell. In Proceedings of the International Conference on Functional Programming. ACM, New York, 174--184. Google Scholar
Digital Library
- Brooks, C., Lee, E. A., Liu, X., Neuendorffer, S., Zhao, Y., and Zheng, H. 2004. Heterogeneous concurrent modeling and design in Java. Tech. rep. Technical Memorandum UCB/ERL M04/27, University of California.Google Scholar
- Buck, J. T., Ha, S., Lee, E. A., and Messerschmitt, D. G. 1994. Ptolemy: A framework for simulating and prototyping heterogeneous systems. Int. J. Comput. Simul. 4, 155--182.Google Scholar
- Craig, I. 2001. The Interpretation of Object-Oriented Programming Languages. Springer-Verlag, Berlin. Google Scholar
Digital Library
- Davis, J. 2000. Order and containment in concurrent system design. Ph.D. Thesis, Tech. rep. UCB/ERL M00/47, EECS Department, University of California, Berkeley. Google Scholar
Digital Library
- Dennis, J. B. 1974. First version data flow procedure language. Tech. rep. MAC TM61, MIT Laboratory for Computer Science.Google Scholar
- Eker, J. and Janneck, J. W. 2003. Cal language report: Specification of the cal actor language. Tech. rep. UCB/ERL M03/48, University of California, Berkeley.Google Scholar
- Eker, J., Janneck, J. W., Lee, E. A., Liu, J., Liu, X., Ludvig, J., Neuendorffer, S., Sachs, S., and Xiong, Y. 2003. Taming heterogeneity: The Ptolemy approach. Proc. IEEE 91, 2, 127--144.Google Scholar
Cross Ref
- Esser, R. 1996. Ph.d. thesis.Google Scholar
- Esser, R. and Janneck, J. W. 2001. A framework for defining domain-specific visual languages. In Proceedings of the Workshop on Domain Specific Visual Languages, in Conjunction with ACM Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA-01). ACM, New York. Google Scholar
Digital Library
- Fritzson, P. 2003. Principles of Object-Oriented Modeling and Simulation with Modelica 2.1. Wiley, Hoboken. Google Scholar
Digital Library
- Gamma, E., Helm, R., Johnson, R., and Vlissides, J. 1994. Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley, Upper Saddle River, NJ. Google Scholar
Digital Library
- Goessler, G. and Sangiovanni-Vincentelli, A. 2002. Compositional modeling in metropolis. In Proceeding of the 2nd International Workshop on Embedded Software (EMSOFT). Springer-Verlag, Berlin. Google Scholar
Digital Library
- Goessler, G. and Sifakis, J. 2005. Composition for component-based modeling. Sci. Comput. Program. 55. Google Scholar
Digital Library
- Herrera, F. and Villar, E. 2006. A framework for embedded system specification under different models of computation in systemc. In Proceedings of the Design Automation Conference (DAC). ACM, New York. Google Scholar
Digital Library
- Hewitt, C. 1977. Viewing control structures as patterns of passing messages. J. Artif. Intell. 8, 3, 323--363.Google Scholar
Digital Library
- Jackson, E. K. and Sztipanovits, J. 2006. Towards a formal foundation for domain specific modeling languages. In Proceeding of the Internation Conference on Embedded Software (EMSOFT). ACM, New York, 53--62. Google Scholar
Digital Library
- Jantsch, A. and Sander, I. 2005. Models of computation and languages for embedded system design. IET Proc. Comput. Digital Tech. 152, 2, 114--129.Google Scholar
Cross Ref
- Johnson, S. C. 1994. Objecting to objects. In Proceedings of the USENIX Winter Technical Conference. Google Scholar
Digital Library
- Karsai, G. 1995. A configurable visual programming environment: A tool for domain-specific programming. IEEE Comput. 36--44. Google Scholar
Digital Library
- Karsai, G., Maroti, M., Ldeczi, K., Gray, J., and Sztipanovits, J. 2003. Type hierarchies and composition in modeling and meta-modeling languages. IEEE Trans. Control Syst. Tech.Google Scholar
- Keutzer, K., Malik, S., Newton, A. R., Rabaey, J., and Sangiovanni-Vincentelli, A. 2000. System level design: Orthogonolization of concerns and platform-based design. IEEE Trans. Comput.-Aid. Des. Integr. Circ. Syst. 19, 12. Google Scholar
Digital Library
- Ledeczi, A., Bakay, A., Maroti, M., Volgyesi, P., Nordstrom, G., Sprinkle, J., and Karsai, G. 2001. Composing domain-specific design environments. IEEE Comput., 44--51. Google Scholar
Digital Library
- Lee, E. A. 2006. The problem with threads. Computer 39, 5, 33--42. Google Scholar
Digital Library
- Lee, E. A. and Neuendorffer, S. 2000. Moml: A modeling markup language in XML. Tech. rep. UCB/ERL M00/12, University of California, Berkeley.Google Scholar
- Lee, E. A., Neuendorffer, S., and Wirthlin, M. J. 2003. Actor-oriented design of embedded hardware and software systems. J. Circ. Syst. Comput. 12, 3, 231--260.Google Scholar
Cross Ref
- Liao, S., Tjiang, S., and Gupta, R. 1997. An efficient implementation of reactivity for modeling hardware in the scenic design environment. In Proceedings of the Design Automation Conference (DAC). ACM, New York. Google Scholar
Digital Library
- Lynch, N., Segala, R., Vaandrager, F., and Weinberg, H. 1996. Hybrid I/O automata. In Hybrid Systems III, R. Alur, T. Henzinger, and E. Sontag, Eds. Lecture Notes in Computer Science, vol. 1066. Springer-Verlag, 496--510. Google Scholar
Digital Library
- Lynch, N. A. 1996. Distributed Algorithms. Morgan Kaufmann, San Francisco, CA. Google Scholar
Digital Library
- Mathaikutty, D. A., Patel, H. D., and Shukla, S. K. 2004. A functional programming framework of heterogeneous model of computation for system design. In Proceedings of the Forum on Design and Specification Languages (FDL). ESCI.Google Scholar
- Patel, H. D. and Shukla, S. K. 2004. SystemC Kernel Extensions for Heterogeneous System Modelling. Kluwer, Amsterdam, The Netherlands. Google Scholar
Digital Library
- Priess-Crampe, S. and Ribenboim, P. 1996. Generalized ultrametric spaces I. Abhandlungen aus dem Mathematischen Seminar der Universität Hamburg. 66, 55--73.Google Scholar
- Reppy, J. H. 1991. Cml: A higher-order concurrent language. SIGPLAN Notices 26, 6, 293--305. Google Scholar
Digital Library
- Sander, I. and Jantsch, A. 2004. System-modeling and transformational design refinement in forsyde. IEEE Trans. Comput.-Aid. Des. Circ. Syst. 23, 1, 17--32. Google Scholar
Digital Library
- Selic, B., Gullekson, G., and Ward, P. 1994. Real-Time Object-Oriented Modeling. John Wiley and Sons, New York, NY. Google Scholar
Digital Library
- Stewart, D. B., Volpe, R., and Khosla, P. 1997. Design of dynamically reconfigurable real-time software using port-based objects. IEEE Trans. Softw. Engin. 23, 12, 759--776. Google Scholar
Digital Library
- Strehl, K., Thiele, L., Gries, M., Ziegenbein, D., Ernst, R., and Teich, J. 2001. Funstatean internal design representation for codesign. IEEE Trans. VLSI Syst. 9, 4, 524--544. Google Scholar
Digital Library
- Sutherland, I. E. 1963. Sketchpad: A man-machine graphical communication system. Tech. rep. 296, MIT Lincoln Laboratory.Google Scholar
Digital Library
- Sutherland, W. R. 1966. The on-line graphical specification of computer procedures. Ph.d. thesis. MIT.Google Scholar
- Thies, W., Karczmarek, M., and Amarasinghe, S. 2002. StreamIt: A language for streaming applications. In Proceedings of the 11th International Conference on Compiler Construction. Springer-Verlag, Berlin. Google Scholar
Digital Library
- Wan, Z., Taha, W., and Hudak, P. 2001. Real-time FRP. ACM SIGPLAN Notices 36, 10, 146--156. Google Scholar
Digital Library
Index Terms
Classes and inheritance in actor-oriented design
Recommendations
A Modified Inheritance Mechanism Enhancing Reusability and Maintainability in Object-Oriented Languages
APSEC '96: Proceedings of the Third Asia-Pacific Software Engineering ConferenceIn object-oriented languages, encapsulation and inheritance play an important part for software reusability and maintainability. The separation of subtyping and inheritance makes inheritance a more flexible mechanism reusing code. The main enhanced ...
Parallelism in Object-Oriented Languages: A Survey
Fourteen concurrent object-oriented languages are compared in terms of how they deal with communication, synchronization, process management, inheritance, and implementation trade-offs. The ways in which they divide responsibility between the programmer,...
An empirical study of overriding in open source Java
ACSC '10: Proceedings of the Thirty-Third Australasian Conferenc on Computer Science - Volume 102Inheritance is a key feature of object-oriented programming. Overriding is one of the most important parts of inheritance, allowing a subclass to replace methods implemented in its superclass. Unfortunately, the way programmers use overriding in ...






Comments