Skip to main content

SuperGlue: Component Programming with Object-Oriented Signals

  • Conference paper

Part of the Lecture Notes in Computer Science book series (LNCS,volume 4067)

Abstract

The assembly of components that can handle continuously changing data results in programs that are more interactive. Unfortunately, the code that glues together such components is often difficult to write because it is exposed to many complicated event-handling details. This paper introduces the SuperGlue language where components are assembled by connecting their signals, which declaratively represent state as time-varying values. To support the construction of interactive programs that require an unbounded number of signal connections, signals in SuperGlue are scaled with object-oriented abstractions. With SuperGlue’s combination of signals and objects, programmers can build large interactive programs with substantially less glue code when compared to conventional approaches. For example, the SuperGlue implementation of an email client is around half the size of an equivalent Java implementation.

Keywords

  • Object Type
  • Component Program
  • Interactive Program
  • Java Code
  • Signal Connection

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

This is a preview of subscription content, access via your institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (Canada)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (Canada)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (Canada)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Aldrich, J., Chambers, C., Notkin, D.: Architectural Reasoning in ArchJava. In: Magnusson, B. (ed.) ECOOP 2002. LNCS, vol. 2374, pp. 334–367. Springer, Heidelberg (2002)

    CrossRef  Google Scholar 

  2. Aldrich, J., Sazawal, V., Chambers, C., Notkin, D.: Language support for connector abstractions. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, Springer, Heidelberg (2003)

    Google Scholar 

  3. Benveniste, A., Geurnic, P.L., Jacquemot, C.: Synchronous programming with events and relations: the Signal language and its semantics. Science of Computer Programming (1991)

    Google Scholar 

  4. Berry, G.: The Foundations of Esterel. MIT Press, Cambridge (1998)

    Google Scholar 

  5. Bracha, G., Cook, W.: Mixin-based inheritance. In: OOPSLAECOOP. SIGPLAN Notices, vol. 25 (10), pp. 303–311. ACM Press, New York (1990)

    Google Scholar 

  6. Caspi, P., Pilaud, D., Halbwachs, N., Plaice, J.A.: LUSTRE: a declarative language for programming synchronous systems. In: Proceedings of POPL (1987)

    Google Scholar 

  7. Clifton, C., Leavens, G.T., Chambers, C., Millstein, T.D.: Multijava: Modular open classes and symmetric multiple dispatch for Java. In: Proceedings of OOPSLA. SIGPLAN Notices, vol. 35(10), pp. 130–145. ACM Press, New York (2000)

    Google Scholar 

  8. Cooper, G.H., Krishnamurthi, S.: Embedding Dynamic Dataflow in a Call-by-Value Language. In: Sestoft, P. (ed.) ESOP 2006 and ETAPS 2006. LNCS, vol. 3924, pp. 294–308. Springer, Heidelberg (2006)

    CrossRef  Google Scholar 

  9. Courtney, A.: Frappé: Functional Reactive Programming in Java. In: Ramakrishnan, I.V. (ed.) PADL 2001. LNCS, vol. 1990, pp. 29–44. Springer, Heidelberg (2001)

    CrossRef  Google Scholar 

  10. Elliott, C., Hudak, P.: Functional reactive animation. In: Proceedings of ICFP. SIGPLAN Notices, vol. 32 (8), pp. 263–273. ACM Press, New York (1997)

    CrossRef  Google Scholar 

  11. Freeman-Benson, B.N.: Kaleidoscope: Mixing objects, constraints and imperative programming. In: Proceedings of OOPSLA and ECOOP. SIGPLAN Notices, vol. 25 (10), pp. 77–88. ACM Press, New York (1990)

    Google Scholar 

  12. Freeman-Benson, B.N., Borning, A.: Integrating Constraints with an Object-Oriented Language. In: Lehrmann Madsen, O. (ed.) ECOOP 1992. LNCS, vol. 615, pp. 268–286. Springer, Heidelberg (1992)

    CrossRef  Google Scholar 

  13. Goldberg, A., Robson, D.: SmallTalk-80: The Language and its Implementation. Addison-Wesley, Reading (1983)

    MATH  Google Scholar 

  14. Hudak, P., Courtney, A., Nilsson, H., Peterson, J.: Arrows, robots, and functional reactive programming. In: Jeuring, J., Jones, S.L.P. (eds.) AFP 2002. LNCS, vol. 2638, pp. 159–187. Springer, Heidelberg (2003)

    CrossRef  Google Scholar 

  15. IBM. The Eclipse Project, http://www.eclipse.org/

  16. Luckham, D., Vera, J.: An event-based architecture definition language. IEEE Transactions on Software Engineering 21 (1995)

    Google Scholar 

  17. Madsen, O.L., Moeller-Pedersen, B.: Virtual classes - a powerful mechanism for object-oriented programming. In: Proceedings of OOPSLA, October 1989, pp. 397–406 (1989)

    Google Scholar 

  18. Magee, J., Dulay, N., Eisenbach, S., Kramer, J.: Specifying distributed software architectures. In: Proceedings of ESEC (1995)

    Google Scholar 

  19. Matsumoto, Y.: Ruby: Programmers’ Best Friend, http://www.ruby-lang.org/en/

  20. Medvidovic, N., Oreizy, P., Taylor, R.N.: Reuse of off-the-shelf components in C2-style architectures. In: Proceeding of ICSE, pp. 692–700. IEEE Computer Society, Los Alamitos (1997)

    CrossRef  Google Scholar 

  21. Odersky, M., et al.: The scala language specification. Technical report, EPFL, Lausanne, Switzerland (2004), http://scala.epfl.ch

  22. Sterling, L., Shapiro, E.: The Art of Prolog: Advanced Programming Techniques. MIT Press, Cambridge (1986)

    MATH  Google Scholar 

  23. Sun Microsystems, Inc. The JavaMail API, http://java.sun.com/products/javamail/

  24. Sun Microsystems, Inc. The Swing API, http://java.sun.com/products/jfc/

  25. van Rossum, G., Drake, F.L.: The Python Language Reference Manual (Sepember 2003), http://www.python.org/doc/current/ref/ref.html

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and Permissions

Copyright information

© 2006 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

McDirmid, S., Hsieh, W.C. (2006). SuperGlue: Component Programming with Object-Oriented Signals. In: Thomas, D. (eds) ECOOP 2006 – Object-Oriented Programming. ECOOP 2006. Lecture Notes in Computer Science, vol 4067. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11785477_15

Download citation

  • DOI: https://doi.org/10.1007/11785477_15

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-35726-1

  • Online ISBN: 978-3-540-35727-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics