skip to main content
10.1145/289423.289430acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
Article
Free Access

A theory of core fudgets

Authors Info & Claims
Published:29 September 1998Publication History

ABSTRACT

The Fudgets system is a toolkit for developing graphical applications in the lazy functional programming language Haskell. In this paper we develop an operational semantics for a subset of this system, inspired by ideas from concurrency theory. A semantic theory based on bisimulation is defined and shown to be a congruence. We consider two applications of this theory: firstly, some equational rules useful for reasoning about Fudget programs are verified; secondly, we show how the operational semantics can be used to check the correctness of implementations of the Fudgets system.

References

  1. 1.E. Astesiano, A. Giovini, and G. Reggio. Generalized bisimulation in relational specification. In Proceedings of Symposium on Theoretical Aspects of Computer Science, volume 294 of Lecture Notes in Computer Science, pages 207-226. Springer-Verlag, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 2.G. Boudol. Towards a lambda calculus for concurrent and communicating systems. In TAPSOFT '8g, volume 351 of LNCS, pages 149-161, 1989. Google ScholarGoogle Scholar
  3. 3.M. Carlsson and T. Hallgren. Programming with fudgets. Available by anonymous FTP from pub/users/hallgren on ftp.cs.chalmers.se., December 1994.Google ScholarGoogle Scholar
  4. 4.M. Carlsson and T. Hallgren. The Fudget Library distribution. Available by anonymous FTP from pub/haskell/chalmers on ftp. ca. chalmers, se., 1995.Google ScholarGoogle Scholar
  5. 5.M. Carlsson and T. Hallgren. Fudgets - Purely Functional Processes with applications to Graphical User Interfaces. PhD thesis, Department of Computing Science, Chalmers University of Technology, 1998.Google ScholarGoogle Scholar
  6. 6.W. Ferreira, M. Hennessy, and A. Jeffrey. A theory of weak bisimulation for core cml. Computer Science Technical Report 95:05, School of Cognitive and Computing Sciences, University of Sussex, 1995.Google ScholarGoogle Scholar
  7. 7.S. Finne and S. L. P. Jones. Composing Haggis. In Eurographics Workshop on Programming Paradigms in Computer Graphics, April 1995.Google ScholarGoogle Scholar
  8. 8.S. Finne and S. L. P. Jones. Concurrent Haskell. In Proceedings of the Twenty Third A CM Symposium on Principles of Programming Languages (POPL), 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9.A. D. Gordon. Functional Programming and Input/Output. PhD thesis, University of Cambridge, August 1992.Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10.A. D. Gordon. Bisimilarity as a theory of functional programming. Mini-course. BRICS Notes Series NS- 95-3, Brics, Aarhus University, 1995. Extended version of MFPS'95 and Glasgow FP'94 papers.Google ScholarGoogle Scholar
  11. 11.T. Hallgren and M. Carlsson. Programming with Fudgets. In J. Jeuring and E. Meijer, editors, Advanced Functional Programming, volume 925 of Lecture Notes in Computer Science, pages 137-182. Springer Verlag, May 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12.D. J. Howe. Equality in lazy computation systems. In Proceedings of the Fourth IEEE Symposium on Logic in Computer Science, pages 198-203, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 13.G. Kahn. A preliminary theory for parallel programs. Rapport de Recherche 6, IRIA, January 1973.Google ScholarGoogle Scholar
  14. 14.K. Karlsson. Nebula: A functional operating system. Technical report, Programming Methodology Group, Chalmers University of Technology and University of Gothenburg, 1981.Google ScholarGoogle Scholar
  15. 15.P. Landin. A correspondence between algol 60 and church's lambda-notation: Part i and ii. In Communications of the A CM, volume 8, pages 89-101,158-165, February and March 1965. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 16.R. Milner. Communication and Concurrency. Prentice Hall, 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. 17.R. Milner. Functions as processes. Research Report No. 1154, INRIA, February 1990.Google ScholarGoogle Scholar
  18. 18.R. Milner. The polyadic rr-calculus: a tutorial. Technical Report ECS--LFCS-91-180, Laboratory for Foundations of Computer Science, Department of Computer Science, University of Edinburgh, UK, October 1991.Google ScholarGoogle Scholar
  19. 19.R. Milner, J. Paxrow, and D. Walker. A calculus of mobile processes, parts I and II. Technical Report ECS- LFCS-89-85 and 86, Department of Computer Science, The University of Edinburgh, 1989.Google ScholarGoogle Scholar
  20. 20.R. Milner and M. Tofte. Co-induction in relational semantics. In Theoretical Computer Science, volume 87, pages 209-220, September 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 21.R. D. Nicola and M. C. B. Hennessy. Testing equivalences for processes. Theoretical Computer Science, 34:73-133, 1984.Google ScholarGoogle ScholarCross RefCross Ref
  22. 22.R. Noble. Lazy Functional Components for Graphical User Interfaces. PhD thesis, Dept. of Computer Science, University of York, November 1995.Google ScholarGoogle Scholar
  23. 23.D. M. Park. Concurrency on automata and infinite sequences. In Conference on Theoretical Computer Science, volume 104 of Lecture Notes in Computer Science. Springer-Verlag, 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. 24.J. Peterson and K. Hammond. Report on the Programming Language HaskeU, A Non-strict, Purely Functional Language (Version 1.3). Technical Report YALEU/DCS/RR-1106, Yale University, Department of Computer Science, May 1996.Google ScholarGoogle Scholar
  25. 25.B. C. Pierce and D. N. Turner. Pict: A programming language based on the pi-calculus. Technical Report CSC1476, Computer Science Department, Indiana University, 1997.Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. 26.A. M. Pitts. A co-induction principle for recursively defined domains. Theoretical Computer Science, 124:195- 219, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. 27.G. D. Plotkin. A structural approach to operational semantics. Technical Report FN-19, DAIMI, Aarhus University, September 1981.Google ScholarGoogle Scholar
  28. 28.P. Sewell. On implementations and semantics of a concurrent programming language. In A. Mazurkiewicz and J. Winkowski, editors, Proceedings of CONCUR '97. LNCS 12~3, pages 391-405. Springer-Verlag, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. 29.C. J. Taylor. Formalising and Reasoning about Furlgets. Ph.d. thesis, Department of Computer Science, University of Nottingham, To appear.Google ScholarGoogle Scholar
  30. 30.B. Thomsen. Calculi for Higher Order Communicating Systems. Ph.d. thesis, Department of Computing, Imperial College, 1990.Google ScholarGoogle Scholar
  31. 31.P. Wadler. The essence of functional programing (invited talk). In Proceedings of the Nineteenth A CM Symposium on Principles of Programming Languages (POPL), pages 1-14, January 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. A theory of core fudgets

          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
            ICFP '98: Proceedings of the third ACM SIGPLAN international conference on Functional programming
            September 1998
            351 pages
            ISBN:1581130244
            DOI:10.1145/289423

            Copyright © 1998 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: 29 September 1998

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • Article

            Acceptance Rates

            ICFP '98 Paper Acceptance Rate30of77submissions,39%Overall Acceptance Rate333of1,064submissions,31%

            Upcoming Conference

            ICFP '24

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader