skip to main content
10.1145/1133981.1134016acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
Article

Continuations and transducer composition

Published:11 June 2006Publication History

ABSTRACT

On-line transducers are an important class of computational agent; we construct and compose together many software systems using them, such as stream processors, layered network protocols, DSP networks and graphics pipelines. We show an interesting use of continuations, that, when taken in a CPS setting, exposes the control flow of these systems. This enables a CPS-based compiler to optimise systems composed of these transducers, using only standard, known analyses and optimisations. Critically, the analysis permits optimisation across the composition of these transducers, allowing efficient construction of systems in a hierarchical way.

References

  1. Olin Shivers. Control-flow analysis in Scheme. In Proceedings of the SIGPLAN '88 Conference on Programming Language Design and Implementation, June 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. John Launchbury and Tim Sheard. Warm fusion: Deriving build-catas from recursive definitions. In Proceedings of the ACM Functional Programming and Computer Architecture, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Olin Shivers. The semantics of Scheme control-flow analysis. In Proceedings of the First ACM SIGPLAN and IFIP Symposium on Partial Evaluation and Semantics-Based Program Manipulation, June 1991. Published as SIGPLAN Notices 26(9):190--198, Association for Computing Machinery, September 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Barbara Liskov. A History of CLU. Technical Report 561, MIT Laboratory for Computer Science, April 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. John Reppy. CML: A higher-order concurrent language. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, ACM (June 1991). Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Olin Shivers. Continuations and threads: Expressing machine concurrency directly in advanced languages. In Proceedings of the Second ACM SIGPLAN Workshop on Continuations, January 1997, Paris. Also available as BRICS Notes Series NS-96-13, University of Aarhus, Denmark.Google ScholarGoogle Scholar
  7. Andrew W. Appel. Compiling with Continuations. Cambridge University Press, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Matthew Might and Olin Shivers. Environmental analysis via ΔCFA. In Proceedings of the 33rd Annual ACM Symposium on Principles of Programming Languages (POPL 2006), Charleston, South Carolina, January 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Philip Wadler. Deforestation: transforming programs to eliminate trees. Theoretical Computer Science, pages 231--248. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Sanjeev Kumar, et al. ESP: A language for programmable devices. In Proceedings of the 2001 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pages 309--320, Snowbird, Utah, June 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Philip Wadler. The essence of functional programming. In Proceedings of the 19th Symposium on Principles of Programming Languages, pages 1--14, ACM, Jan 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. A short cut to deforestation. Andrew Gill, John Launchbury and Simon L. Peyton Jones. In Proceedings of the FPCA '93 Conference on Functional Programming Languages and Computer Architecture, pages 223--232, Copenhagen, Denmark, June 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Philip Wadler. Monads for functional programming. Advanced Functional Programming, Ed. J. Jeuring and E. Meijer, Springer Verlag, LNCS. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Todd A. Proebsting and Scott A. Watterson. Filter Fusion. In Proceedings of the 23rd symposium on Principles of Programming Languages (POPL'96), ACM, 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Control-Flow Analysis of Higher-Order Languages. Ph.D. dissertation, Carnegie Mellon University, May 1991. Technical Report CMU-CS-91-145, School of Computer Science. (Also available via anonymous ftp as URL ftp://cs.cmu.edu/afs%2Fcs.cmu.edu%2Fuser%2Fshivers%2Flib%2Fpapers/diss.ps.Z.)Google ScholarGoogle Scholar
  16. Olin Shivers. The anatomy of a loop: a story of scope and control. In Proceedings of the 10th ACM SIGPLAN International Conference on Functional Programming (ICFP 2005), pages 2--14, Tallinn, Estonia, September 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Philip Wadler. Linear types can change the world. Programming Concepts and Methods, Ed. M. Broy and C. Jones, North Holland.Google ScholarGoogle Scholar
  18. Chih-ping Chen and Paul Hudak. Rolling your own mutable ADT-a connection between linear types and monads. In Proceeding of the 24th ACM Symposium on Principles of Programming Languages, January 1997, Paris, France. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Eugenio Moggi. Computational lambda-calculus and monads. In Symposium on Logic in Computer Science, Asilomar,California, IEEE, June 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. David Kranz. Orbit: An Optimizing Compiler for Scheme. Ph.D. dissertation, Yale University, February 1988. Research Report 632, Department of Computer Science. A conference-length version of this dissertation appears in SIGPLAN 86. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Alan J. Perlis. Epigrams on programming. Sigplan 17 #9, September 1980. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. I. E. Sutherland and G. W. Hodgman. Reentrant polygon clipping. Communications of the ACM 17(1), pages 32--42, January 1974. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Guy L. Steele Jr. RABBIT: A Compiler for SCHEME. Technical Report 474, MIT AI Lab, May 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Robert Hieb, R. Kent Dybvig and Carl Bruggeman. Representing control in the presence of first-class continuations. In Proceedings of the ACM SIGPLAN'90 Conference on Programming Language Design and Implementation (PLDI), pages 66--77, White Plains, New York, June 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Richard Kelsey and Paul Hudak.Realistic compilation by program transformation. In Proceedings of the 16th Annual ACM Symposium on Principles of Programming Languages, January 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. David N. Turner, Philip Wadler, Christian Mossin. Once upon a type. In Proceedings of the 7th International Conference on Functional Programming and Computer Architecture, San Diego, California, June 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Shortcut fusion for accumulating parameters & zip-like functions. Josef Svenningsson. In Proceedings of the Seventh ACM SIGPLAN International Conference on Functional Programming (ICFP 2002), Pittsburgh, Pennsylvania, October 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Olin Shivers. Useless-variable elimination. In proceedings of Workshop on Static Analysis of Equational, Functional and Logic Programs, Université Bordeaux I, LaBRI, Bordeaux, France, October, 1991.Google ScholarGoogle Scholar

Index Terms

  1. Continuations and transducer composition

        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

        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!