skip to main content
10.1145/158511.158524acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article
Free Access

Imperative functional programming

Published:01 March 1993Publication History

ABSTRACT

We present a new model, based on monads, for performing input/output in a non-strict, purely functional language. It is composable, extensible, efficient, requires no extensions to the type system, and extends smoothly to incorporate mixed-language working and in-place array updates.

References

  1. S Abramsky{1990}, "Computational interpretations of linear logic," DOC 90/20, Dept of Computing, Imperial College.Google ScholarGoogle Scholar
  2. PM Achten, JHG van Groningen gz MJ Plasmeijer {1992}, "High-level specification of I/O in functional languages," in Proc Glasgow Workshop on FunctionaI Programming, Launchbury et al, ed., Springer Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. A Bloss {Sept 1989}, "Update analysis and the efficient implementation of functional aggregates," in FunctionaI Programming Languages and Computer Architecture, London, ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. A Dwelly{Sept 1989}, "Dialogue combinators and dynamic user interfaces," in Functional Programming Languages and Computer Architecture London, ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. DK Gifford & JM Lucassen {Aug 1986}, "Integrating functional and imperative programming," in ACM Conference on Lisp and Functional Programming, MIT, ACM, 28-38. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. J-Y Girard {1987}, "Linear Logic," Theoretical Computer Science 50, 1-102. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. A Gordon{Feb 1989}, "PFL+: a kernel scheme for functional I/O," TR 160, Computer Lab, University of Cambridge.Google ScholarGoogle Scholar
  8. JC Guzman & P Hudak{1990}, "Single-threaded polymorphic lambda calculus," in Proc 5th Annual IEEE Symposium on Logic in Computer Science.Google ScholarGoogle Scholar
  9. K Hammond, PL Wadler & D Brady {1991}, "Imperate: be imperative," Department of Computer Science, Univ of Glasgow.Google ScholarGoogle Scholar
  10. P Hudak{July 1992}, "Continuation-based mutable abstract datatypes, or how to have your state and munge it too," YALEU/DCS/RR-914, Department of Computer Science, Yale University.Google ScholarGoogle Scholar
  11. P Hudak, SL Peyton Jones, PL Wadler, Arvind, B Boutel, J Fairbairn, J Fasel, lVt Guzman, K ttammond, J Hughes, T Johnsson, R. Kieburtz, RS Nikhil, W Partain &: J Paterson {May 1992}, "Report on the functional programming language Haskell, Version 1.2," SIGPLAN Notices 27.Google ScholarGoogle Scholar
  12. P Hudak & RS Sundaresh{March 1989}, "On the expressiveness of purely-functional I/O systems." YALEU/DCS/RR-665, Department of Computer Science, Yale University.Google ScholarGoogle Scholar
  13. Paul Hudak {Aug 1986}, "A semantic model of reference counting and its abstraction," Proc A CM Conference on Lisp and Functional Programming. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. E Ireland{March 1989}, "Writing interactive and fileprocessing functional programs," MSc thesis, Victoria University of Wellington.Google ScholarGoogle Scholar
  15. P Jouvelot & D Gifford {Jan 1991}, "Algebraic reconstruction of types and effects," in 18'th ACM Symposium on Principles of Programming Languages (POPL), Orlando, ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Kent Karlsson{1982}, "Nebula- a functional operating system," Chalmers Inst, Goteborg.Google ScholarGoogle Scholar
  17. BW Kernighan & DM Ritchie {1978}, The C programming language, Prentice Hall. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. E Moggi{june 1989}, "Computational lambda calculus and monads," in Logic in Computer Science, California, IEEE. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. JT O'Donnell{1985}, "Dialogues: a basis for constructing programming environments," in t~roc A CM Symposium on Language lssues in Programming Environments, Seattle~ ACM, 19-27. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. N Perry {1991}, "The implementation of prac.~ical fun,> tional programming languages," PhD thesis, Inlperial College, London.Google ScholarGoogle Scholar
  21. SL Peyton Jones{1992}, "Implementing lazy functional languages on stock hardware: the SpirMess Tagless G-machine," JournM of Functionaj Progranlruing (to appear).Google ScholarGoogle Scholar
  22. SL Peyton Jones {Oct 1988}, "Converting streams to continuations and vice versa," Electronic mail on Haskell mailing list.Google ScholarGoogle Scholar
  23. SL Peyton jones & J Launchbury {Sept 1991}, "Unboxed values as first class citizens," in Functional Programming Languages and Computer Architeo. tufa, Boston, Hughes, ed., LNCS 523, Springer Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. J Reynolds {1981}, "The essence of Algol," in Algorithmic Languages, de Bakker & van Vliet, ads., North Holland, 345-372.Google ScholarGoogle Scholar
  25. J Reynolds {1989}, "Syntactic control of interference, part II," in International Colloquium on Automata, Languages, and Programming. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. DA Schmidt {Apr 1985}, "Detecting global variables in denotational specifications," TOPLAS 7. 299-310. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. V Swamp, US Reddy &: E ireland {Sept 1991}, "Assignments for applicative languages," it, Functional Programming Languages" and Computer Architecture, Boston, Hughes, ed., LNCS 523, Springer Verlag, 192-214. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. SJ Thompson {1989}, "Interactive funciional programs- a method and a formal semantics," in Declaratiw~. Programming, DA Turner, ed., Addison Wesley.Google ScholarGoogle Scholar
  29. M Tofte {Nov 1990}, "Type inference for polymorphic references," Information and Colnputation 89. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. PL Wadler {1990}, "Linear types can change the world!," in Programming concepts and methods, M Bro3" & C Jones, ads., North Holland.Google ScholarGoogle Scholar
  31. PL Wadler{Jan 1992}, "The essence of functional programming," in Proc Principles of Programming Languages, ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. PL Wadler{june 1990}, "Comprehending monads," in Proc ACM Conference on Lisp and Functional Programming, Nice, ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. D Wakeling{Nov 1990}, "Linearity alld laziness," Phi) thesis, Department of Computer Scie~me, University of York.Google ScholarGoogle Scholar

Index Terms

  1. Imperative functional programming

        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
        • Published in

          cover image ACM Conferences
          POPL '93: Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
          March 1993
          510 pages
          ISBN:0897915607
          DOI:10.1145/158511

          Copyright © 1993 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 1 March 1993

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • Article

          Acceptance Rates

          POPL '93 Paper Acceptance Rate39of199submissions,20%Overall Acceptance Rate824of4,130submissions,20%

          Upcoming Conference

          POPL '25

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader