Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
The art of Prolog: advanced programming techniques
The art of Prolog: advanced programming techniques
LUSTRE: a declarative language for real-time programming
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Virtual classes: a powerful mechanism in object-oriented programming
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Kaleidoscope: mixing objects, constraints, and imperative programming
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Synchronous programming with events and relations: the SIGNAL language and its semantics
Science of Computer Programming
Reuse of off-the-shelf components in C2-style architectures
ICSE '97 Proceedings of the 19th international conference on Software engineering
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
MultiJava: modular open classes and symmetric multiple dispatch for Java
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
An Event-Based Architecture Definition Language
IEEE Transactions on Software Engineering
Specifying Distributed Software Architectures
Proceedings of the 5th European Software Engineering Conference
Frappé: Functional Reactive Programming in Java
PADL '01 Proceedings of the Third International Symposium on Practical Aspects of Declarative Languages
Integrating Constraints with an Object-Oriented Language
ECOOP '92 Proceedings of the European Conference on Object-Oriented Programming
Architectural Reasoning in ArchJava
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
The Python Language Reference Manual
The Python Language Reference Manual
Embedding dynamic dataflow in a call-by-value language
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
Living it up with a live programming language
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
A Rigorous Model of Service Component Architecture
Electronic Notes in Theoretical Computer Science (ENTCS)
Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
Verifying event-driven programs using ramified frame properties
Proceedings of the 5th ACM SIGPLAN workshop on Types in language design and implementation
A model of component-based programming
FSEN'07 Proceedings of the 2007 international conference on Fundamentals of software engineering
Component adaptation and assembly using interface relations
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
A survey on reactive programming
ACM Computing Surveys (CSUR)
Hi-index | 0.00 |
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.