Skip to main content

DirectFlow: A Domain-Specific Language for Information-Flow Systems

  • Conference paper
ECOOP 2007 – Object-Oriented Programming (ECOOP 2007)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 4609))

Included in the following conference series:

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • 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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Kohler, E., Morris, R., Chen, B., Jannotti, J., Kaashoek, M.F.: The Click modular router. ACM Transactions on Computer Systems 18(3), 263–297 (2000)

    Article  Google Scholar 

  2. Abadi, D.J., Carney, D., Çetintemel, U., Cherniack, M., Convey, C., Lee, S., Stonebraker, M., Tatbul, N., Zdonik, S.: Aurora: a new model and architecture for data stream management. International Journal on Very Large Data Bases 12(2), 120–139 (2003)

    Article  Google Scholar 

  3. Krasic, C., Walpole, J., Feng, W.: Quality-adaptive media streaming by priority drop. In: Papadopoulos, C., Almeroth, K.C. (eds.) Network and Operating System Support for Digital Audio and Video, 13th International Workshop, NOSSDAV 2003, June 2003, pp. 112–121 (2003)

    Google Scholar 

  4. Murphy-Hill, E., Lin, C., Black, A.P., Walpole, J.: Can Infopipes facilitate reuse in a traffic application? In: Companion to the 20th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, October 2005, pp. 100–101. ACM Press, New York (2005)

    Chapter  Google Scholar 

  5. Hart, J.K., Martinez, K.: Environmental sensor networks: A revolution in the earth system science? Earth-Science Reviews 78, 177–191 (2006)

    Article  Google Scholar 

  6. Thies, W., Karczmarek, M., Amarasinghe, S.: StreamIt: a language for streaming applications. In: Horspool, R.N. (ed.) CC 2002 and ETAPS 2002. LNCS, vol. 2304, pp. 179–195. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  7. Consel, C., Hamdi, H., Réveillère, L., Singaravelu, L., Yu, H., Pu, C.: Spidle: a DSL approach to specifying streaming applications. In: Pfenning, F., Smaragdakis, Y. (eds.) GPCE 2003. LNCS, vol. 2830, pp. 1–17. Springer, Heidelberg (2003)

    Google Scholar 

  8. Black, A.P., Huang, J., Koster, R., Walpole, J., Pu, C.: Infopipes: an abstraction for multimedia streaming. Multimedia Systems 8(5), 406–419 (2002)

    Article  Google Scholar 

  9. Koster, R., Black, A.P., Huang, J., Walpole, J., Pu, C.: Thread transparency in information flow middleware. In: Guerraoui, R. (ed.) Middleware 2001. LNCS, vol. 2218, pp. 121–140. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  10. Grand, M.: 6. In: Patterns in Java: a catalog of reusable design patterns illustrated in UML, vol. 1, pp. 155–163. John Wiley & Sons, Chichester (1998)

    Google Scholar 

  11. Shivers, O., Might, M.: Continuations and transducer composition. In: PLDI’06: Proceedings of the 2006 ACM SIGPLAN Conference on Programming Language Design and Implementation, June 2006, pp. 295–307. ACM Press, New York (2006)

    Chapter  Google Scholar 

  12. Hoare, C.A.R.: Communicating Sequential Processes. In: Series in Computer Science, Prentice-Hall International, Upper Saddle River, NJ, USA (1985)

    Google Scholar 

  13. SGS-THOMSON Microelectronics Ltd.: occam 2.1 Reference Manual (1995)

    Google Scholar 

  14. Vlissides, J.: 3. In: Pattern Hatching: Design Patterns Applied, pp. 85–101. Addison-Wesley, Reading (1998)

    Google Scholar 

  15. Stoy, J.E., Strachey, C.: OS6 — an experimental operating system for a small computer. Part 2: input/output and filing system. Computer Journal 15(3), 195–203 (1972)

    Article  Google Scholar 

  16. Ritchie, D.M.: A stream input-output system. AT&T Bell Laboratories Technical Journal 63(8), 1897–1910 (1984)

    Google Scholar 

  17. Papadopoulos, G.A., Arbab, F.: Coordination Models and Languages. In: The Engineering of Large Systems, September 1998. Advances in Computers, vol. 46, pp. 329–400. Academic Press, London (1998)

    Google Scholar 

  18. Welch, P.H.: Process oriented design for Java: concurrency for all. In: Arabnia, H.R. (ed.) Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA 2000), June 2000, vol. 1, pp. 51–57. CSREA Press (2000)

    Google Scholar 

  19. Black, A.P.: An asymmetric stream communication system. In: Proceedings of the Ninth ACM Symposium on Operating System Principles, October 1983, pp. 4–10. ACM Press, New York (1983)

    Chapter  Google Scholar 

  20. Nordlander, J., Carlsson, M.: Reactive objects in a functional language: an escape from the evil “I”. In: Proceedings of the Third Haskell Workshop (June 1997)

    Google Scholar 

  21. Nordlander, J., Jones, M.P., Carlsson, M., Kieburtz, R.B., Black, A.P.: Reactive objects. In: Proceedings of the Fifth IEEE International Symposium on Object-Oriented Real-Time Distributed Computing, April 2002, pp. 155–158. IEEE Computer Society Press, Los Alamitos (2002)

    Chapter  Google Scholar 

  22. Feo, J.T., Cann, D.C., Oldehoeft, R.R.: A report on the Sisal language project. Journal of Parallel and Distributed Computing (Special issue: data-flow processing) 10(4), 349–366 (1990)

    Google Scholar 

  23. Jones, S.P. (ed.): Haskell 98 Language and Libraries: The Revised Report. Cambridge University Press, Cambridge, UK (2003)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Erik Ernst

Rights and permissions

Reprints and permissions

Copyright information

© 2007 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Lin, Ck., Black, A.P. (2007). DirectFlow: A Domain-Specific Language for Information-Flow Systems. In: Ernst, E. (eds) ECOOP 2007 – Object-Oriented Programming. ECOOP 2007. Lecture Notes in Computer Science, vol 4609. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-73589-2_15

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-73589-2_15

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-73588-5

  • Online ISBN: 978-3-540-73589-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics