skip to main content
research-article

Classes and inheritance in actor-oriented design

Published:24 July 2009Publication History
Skip Abstract Section

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.

References

  1. Agha, G. 1986. ACTORS: A Model of Concurrent Computation in Distributed Systems. The MIT Press Series in Artificial Intelligence. MIT Press, Cambridge. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Agha, G. 1990. Concurrent object-oriented programming. Commun. ACM 33, 9, 125--140. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  6. 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 ScholarGoogle Scholar
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle Scholar
  9. 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 ScholarGoogle Scholar
  10. Craig, I. 2001. The Interpretation of Object-Oriented Programming Languages. Springer-Verlag, Berlin. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. Dennis, J. B. 1974. First version data flow procedure language. Tech. rep. MAC TM61, MIT Laboratory for Computer Science.Google ScholarGoogle Scholar
  13. 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 ScholarGoogle Scholar
  14. 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 ScholarGoogle ScholarCross RefCross Ref
  15. Esser, R. 1996. Ph.d. thesis.Google ScholarGoogle Scholar
  16. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  17. Fritzson, P. 2003. Principles of Object-Oriented Modeling and Simulation with Modelica 2.1. Wiley, Hoboken. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  20. Goessler, G. and Sifakis, J. 2005. Composition for component-based modeling. Sci. Comput. Program. 55. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  22. Hewitt, C. 1977. Viewing control structures as patterns of passing messages. J. Artif. Intell. 8, 3, 323--363.Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  24. 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 ScholarGoogle ScholarCross RefCross Ref
  25. Johnson, S. C. 1994. Objecting to objects. In Proceedings of the USENIX Winter Technical Conference. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Karsai, G. 1995. A configurable visual programming environment: A tool for domain-specific programming. IEEE Comput. 36--44. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. 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 ScholarGoogle Scholar
  28. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  29. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  30. Lee, E. A. 2006. The problem with threads. Computer 39, 5, 33--42. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. 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 ScholarGoogle Scholar
  32. 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 ScholarGoogle ScholarCross RefCross Ref
  33. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  34. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  35. Lynch, N. A. 1996. Distributed Algorithms. Morgan Kaufmann, San Francisco, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. 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 ScholarGoogle Scholar
  37. Patel, H. D. and Shukla, S. K. 2004. SystemC Kernel Extensions for Heterogeneous System Modelling. Kluwer, Amsterdam, The Netherlands. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Priess-Crampe, S. and Ribenboim, P. 1996. Generalized ultrametric spaces I. Abhandlungen aus dem Mathematischen Seminar der Universität Hamburg. 66, 55--73.Google ScholarGoogle Scholar
  39. Reppy, J. H. 1991. Cml: A higher-order concurrent language. SIGPLAN Notices 26, 6, 293--305. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  41. Selic, B., Gullekson, G., and Ward, P. 1994. Real-Time Object-Oriented Modeling. John Wiley and Sons, New York, NY. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  43. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  44. Sutherland, I. E. 1963. Sketchpad: A man-machine graphical communication system. Tech. rep. 296, MIT Lincoln Laboratory.Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. Sutherland, W. R. 1966. The on-line graphical specification of computer procedures. Ph.d. thesis. MIT.Google ScholarGoogle Scholar
  46. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  47. Wan, Z., Taha, W., and Hudak, P. 2001. Real-time FRP. ACM SIGPLAN Notices 36, 10, 146--156. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Classes and inheritance in actor-oriented design

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!