Communicating sequential processes
Communicating sequential processes
A report on the Sisal language project
Journal of Parallel and Distributed Computing - Special issue: data-flow processing
Patterns in Java, volume 1: a catalog of reusable design patterns illustrated with UML
Patterns in Java, volume 1: a catalog of reusable design patterns illustrated with UML
ACM Transactions on Computer Systems (TOCS)
Thread Transparency in Information Flow Middleware
Middleware '01 Proceedings of the IFIP/ACM International Conference on Distributed Systems Platforms Heidelberg
StreamIt: A Language for Streaming Applications
CC '02 Proceedings of the 11th International Conference on Compiler Construction
Quality-adaptive media streaming by priority drop
NOSSDAV '03 Proceedings of the 13th international workshop on Network and operating systems support for digital audio and video
Infopipes: an abstraction for multimedia streaming
Multimedia Systems
An asymmetric stream communication system
SOSP '83 Proceedings of the ninth ACM symposium on Operating systems principles
Aurora: a new model and architecture for data stream management
The VLDB Journal — The International Journal on Very Large Data Bases
Spidle: a DSL approach to specifying streaming applications
Proceedings of the 2nd international conference on Generative programming and component engineering
Can infopipes facilitate reuse in a traffic application?
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Continuations and transducer composition
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Session-Based Distributed Programming in Java
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Type-Directed Compilation for Multicore Programming
Electronic Notes in Theoretical Computer Science (ENTCS)
EventJava: An Extension of Java for Event Correlation
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
Hi-index | 0.00 |
Programs that process streams of information are commonly built by assembling reusable information-flow components. In some systems the components must be chosen from a pre-defined set of primitives; in others the programmer can create new custom components using a general-purpose programming language. Neither approach is ideal: restricting programmers to a set of primitive components limits the expressivity of the system, while allowing programmers to define new components in a general-purpose language makes it difficult or impossible to reason about the composite system. We advocate defining information-flow components in a domain-specific language (DSL) that enables us to infer the properties of the components and of the composed system; this provides us with a good compromise between analysability and expressivity. This paper presents DirectFlow, which comprises a DSL, a compiler and a runtime system. The language allows programmers to define objects that implement information-flow components without specifying how messages are sent and received. The compiler generates Java classes by inferring the message sends and methods, while the run-time library constructs information-flow networks by composition of DSL-defined components with standard components.