Higher-Order and Symbolic Computation

, Volume 23, Issue 4, pp 465–487 | Cite as

Trends in Trends in Functional Programming 1999/2000 versus 2007/2008

  • Peter Achten
  • Marko van Eekelen
  • Pieter Koopman
  • Marco T. Morazán
Article

Abstract

The Trends in Functional Programming Symposia are an annual event dedicated to promoting new research directions in functional programming and to investigating the relationship between functional programming and other branches of Computer Science. The TFP series started in 1999 and the 2008 meeting marked the first decade of the symposium. In this paper we identify and discuss the trends presented at TFP using a macro-vision lens that looks at topics in the first two volumes of TFP and the two most recent volumes of TFP. The goal is to calibrate how trends have changed over a decade instead of analyzing trends with a micro-vision lens that focuses on changes from year to year. The major trends identified are work on parallel functional programming, types, formal verification, implementation of functional languages, and application development.

Keywords

Trends Functional parallel programming Types Verification Implementation Applications 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Abadi, M., Cardelli, L., Pierce, B., Plotkin, G.: Dynamic typing in a statically typed language. ACM Trans. Program. Lang. Syst. 13(2), 237–268 (1991) CrossRefGoogle Scholar
  2. 2.
    Abadi, M., Cardelli, L., Pierce, B., Plotkin, G., Rèmy, D.: Dynamic typing in polymorphic languages. In: Proceedings of the 3rd Workshop on ML and Its Applications, WML ’92, San Francisco, CA, USA, June 1992 Google Scholar
  3. 3.
    Achten, P., Koopman, P., Morazán, M. (eds.): Trends in Functional Programming. Trends in Functional Programming, vol. 9. Intellect, Nijmegen (2009) Google Scholar
  4. 4.
    Aiken, A.: Modern languages for modern parallel computing (invited lecture, abstract only). In: ICFP ’99: Proceedings of the 4th ACM SIGPLAN International Conference on Functional Programming, New York, NY, USA, p. 8. ACM, New York (1999) CrossRefGoogle Scholar
  5. 5.
    Baker, P., Jervis, C., King, D.J.: An industrial use of FP: a tool for generating test scripts from system specifications. In: Michaelson, G., Trinder, P.W., Loidl, H.-W. (eds.) Trends in Functional Programming. Trends in Functional Programming, vol. 1, pp. 126–134. Intellect, Nijmegen (1999) Google Scholar
  6. 6.
    Baker-Finch, C.A.: An abstract machine for parallel lazy evaluation. In: Michaelson, G., Trinder, P.W., Loidl, H.-W. (eds.) Trends in Functional Programming. Trends in Functional Programming, vol. 1, pp. 154–160. Intellect, Stirling (1999) Google Scholar
  7. 7.
    Baker-Finch, C.A., King, D.J., Trinder, P.W.: An operational semantics for parallel lazy evaluation. In: ACM-SIGPLAN International Conference on Functional Programming (ICFP’00), pp. 162–173. ACM, New York (2000) CrossRefGoogle Scholar
  8. 8.
    Bakewell, A., Runciman, C.: The space usage problem: an evaluation kit for graph reduction semantics. In: Gilmore, S. (ed.) Trends in Functional Programming. Trends in Functional Programming, vol. 2, pp. 115–128. Intellect/University of St. Andrews, St. Andrews (2000) Google Scholar
  9. 9.
    Ballereau, O., Loulergue, F., Hains, G.: High level BSP programming: BSML and BSλ. In: Michaelson, G., Trinder, P.W., Loidl, H.-W. (eds.) Trends in Functional Programming. Trends in Functional Programming, vol. 1, pp. 29–40. Intellect, Nijmegen (1999) Google Scholar
  10. 10.
    Bernstein, K.L., Stark, E.W.: Debugging type errors (full version). Technical report, State University of New York at Stony Brook, Computer Science Department, November 1995 Google Scholar
  11. 11.
    Bertot, Y., Casterán, P.: Interactive theorem proving and program development. Coq’art: the calculus of inductive constructions. In: Texts in Theoretical Computer Science. Springer, Berlin (2004) Google Scholar
  12. 12.
    Bove, A., Dybjer, P., Sicard-Ramírez, A.: Embedding a logical theory of constructions in Agda. In: PLPV ’09: Proceedings of the 3rd Workshop on Programming Languages Meets Program Verification, New York, NY, USA, pp. 59–66. ACM, New York (2008) CrossRefGoogle Scholar
  13. 13.
    Boyer, R.S., Strother Moore, J.: Proving theorems about LISP functions. J. Assoc. Comput. Mach. 22(1), 129–144 (1975) MathSciNetMATHCrossRefGoogle Scholar
  14. 14.
    Brady, E.: Ivor, a proof engine. In: Proceedings 18th International Symposium on the Implementation of Functional Languages, IFL’06—Revised Selected Papers, Budapest, Hungary, September 2006. Lecture Notes in Computer Science, vol. 4449, pp. 145–162. Springer, Berlin (2006) Google Scholar
  15. 15.
    Brady, E., McKinna, J., Hammond, K.: Constructing correct circuits: verification of functional aspects of hardware specifications with dependent types. In: Morazán, M.T. (ed.) Trends in Functional Programming, New York City, USA, April 2–4, 2007. Trends in Functional Programming, vol. 8, pp. 159–176. Intellect/The University of Chicago Press, Bristol/Chicago (2007) Google Scholar
  16. 16.
    Brady, E., Herrmann, C., Hammond, K.: Lightweight invariants with full dependent types. In: Achten, P., Koopman, P., Morazán, M. (eds.) Trends in Functional Programming. Trends in Functional Programming, vol. 9, pp. 161–177. Intellect, Nijmegen (2009) Google Scholar
  17. 17.
    Brown, D.F., Garmendia-Doval, A.B., McCall, J.A.W.: A functional framework for the implementation of genetic algorithms: comparing Haskell and standard ML. In: Gilmore, S. (ed.) Trends in Functional Programming. Trends in Functional Programming, vol. 2, pp. 27–38. Intellect/University of St. Andrews, St. Andrews (2000) Google Scholar
  18. 18.
    Campbell, B.: Amortised memory analysis using the depth of data structures. In: Castagna, G. (ed.) Programming Languages and Systems: 18th European Symposium on Programming, ESOP 2009. Lecture Notes in Computer Science, vol. 5502, pp. 190–204. Springer, Berlin (2009) Google Scholar
  19. 19.
    Campbell, B.: Prediction of linear memory usage for first-order functional programs—best student paper. In: Achten, P., Koopman, P., Morazán, M. (eds.) Trends in Functional Programming. Trends in Functional Programming, vol. 9, pp. 1–16. Intellect, Nijmegen (2009) Google Scholar
  20. 20.
    Chitil, O.: Compositional explanation of types and algorithmic debugging of type errors. In: ICFP ’01: Proceedings of the 6th ACM SIGPLAN International Conference on Functional Programming, New York, NY, USA, pp. 193–204. ACM Press, New York (2001) CrossRefGoogle Scholar
  21. 21.
    Christiansen, J., Fischer, S.: Easycheck—test data for free. In: FLOPS ’08: Proceedings of the 9th International Symposium on Functional and Logic Programming. Lecture Notes in Computer Science, vol. 4989. Springer, Berlin (2008) Google Scholar
  22. 22.
    Claessen, K., Hughes, J.: QuickCheck: a lightweight tool for random testing of Haskell programs. In: Proceedings of the 5th International Conference on Functional Programming, ICFP ’00, Montreal, Canada, pp. 268–279. ACM Press, New York (2000) CrossRefGoogle Scholar
  23. 23.
    Cole, M.: Algorithmic Skeletons: Structured Management of Parallelism. Research Monographs in Parallel and Distributed Computing. MIT Press, Cambridge (1989) Google Scholar
  24. 24.
    Conchon, S., Filliâtre, J.-C., Signoles, J.: Designing a generic graph library using ML functors. In: Morazán, M.T. (ed.) Trends in Functional Programming, New York City, USA, April 2–4, 2007. Trends in Functional Programming, vol. 8, pp. 124–140. Intellect/The University of Chicago Press, Bristol/Chicago (2007) Google Scholar
  25. 25.
    Constable, R.L., Allen, S.F., Bromley, H.M., Cleaveland, W.R., Cremer, J.F., Harper, R.W., Howe, D.J., Knoblock, T.B., Mendler, N.P., Panangaden, P., Sasaki, J.T., Smith, S.F.: Implementing Mathematics with the Nuprl Proof Development System. Prentice-Hall/Cornell University, Ithaca (1995) Google Scholar
  26. 26.
    Cooper, E., Lindley, S., Wadler, P., Yallop, J.: Links: web programming without tiers. In: Proceedings of the 5th International Symposium on Formal Methods for Components and Objects, FMCO ’06, CWI, Amsterdam, The Netherlands, 7–10 November 2006, vol. 4709. Springer, Berlin (2006). Google Scholar
  27. 27.
    Courtney, A.: Modeling user interfaces in a functional language. PhD thesis, Yale University, May 2004 Google Scholar
  28. 28.
    Covino, E., Pani, G.: Complexity certification of C++ template metaprogramming. In: Achten, P., Koopman, P., Morazán, M. (eds.) Trends in Functional Programming. Trends in Functional Programming, vol. 9, pp. 145–160. Intellect, Nijmegen (2009) Google Scholar
  29. 29.
    Curtis, S.: An application of functional programming: quilting. In: Gilmore, S. (ed.) Trends in Functional Programming. Trends in Functional Programming, vol. 2, pp. 145–158. Intellect/University of St. Andrews, St. Andrews (2000) Google Scholar
  30. 30.
    Damas, L., Milner, R.: Principal type schemes for functional programs. In: Proceedings of the 9th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL’82, pp. 207–212. ACM, New York (1982) CrossRefGoogle Scholar
  31. 31.
    Danielsson, N.A., Hughes, J., Jansson, P., Gibbons, J.: Fast and loose reasoning is morally correct. In: POPL’06: Proceedings of the 33rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, New York, NY, USA, pp. 206–217. ACM, New York (2006) Google Scholar
  32. 32.
    Dean, J., Ghemawat, S.: MapReduce: simplified data processing on large clusters. Commun. ACM 51(1), 107–113 (2008) CrossRefGoogle Scholar
  33. 33.
    Dosch, W., Wiedemann, B.: List homomorphisms with accumulation and indexing. In: Michaelson, G., Trinder, P.W., Loidl, H.-W. (eds.) Trends in Functional Programming. Trends in Functional Programming, vol. 1, pp. 135–143. Intellect, Nijmegen (1999) Google Scholar
  34. 34.
    Duggan, D.: Correct type explanation. In: Workshop on ML, pp. 49–58. ACM SIGPLAN, New York (1998) Google Scholar
  35. 35.
    Faxén, K.-F.: The costs and benefits of cloning in a lazy functional language. In: Gilmore, S. (ed.) Trends in Functional Programming. Trends in Functional Programming, vol. 2, pp. 1–12. Intellect/University of St. Andrews, St. Andrews (2000) Google Scholar
  36. 36.
    Gaudiot, J., Lee, L.: Multiprocessor systems programming in a high-level data-flow language. In: Parallel Architectures and Languages Europe, Volume 1: Parallel Architectures, PARLE 1987. Lecture Notes in Computer Science, vol. 258, pp. 134–151 (1987) CrossRefGoogle Scholar
  37. 37.
    Gava, F., Loulergue, F.: Semantics of a functional BSP language with imperative features. In: Joubert, G.R., Nagel, W.E., Peters, F.J., Walter, W.V. (eds.) Parallel Computing: Software Technology, Algorithms, Architectures and Applications, PARCO 2003, Dresden, Germany. Advances in Parallel Computing, vol. 13, pp. 95–102. Elsevier, Amsterdam (2004) CrossRefGoogle Scholar
  38. 38.
    Ghani, N., Johann, P.: Short cut fusion for effects. In: Achten, P., Koopman, P., Morazán, M. (eds.) Trends in Functional Programming. Trends in Functional Programming, vol. 9, pp. 113–128. Intellect, Nijmegen (2009) Google Scholar
  39. 39.
    Gilmore, S.: Deep type inference for mobile functions. In: Michaelson, G., Trinder, P.W., Loidl, H.-W. (eds.) Trends in Functional Programming. Trends in Functional Programming, vol. 1, pp. 41–49. Intellect, Nijmegen (1999) Google Scholar
  40. 40.
    Gilmore, S. (ed.): Trends in Functional Programming. Trends in Functional Programming, vol. 2. Intellect/University of St. Andrews, St. Andrews (2000) Google Scholar
  41. 41.
    Goldberg, B., Hudak, P.: Alfalfa: distributed graph reduction on a hypercube multiprocessor. In: Graph Reduction: Proceedings of a Workshop at Santa Fé, New Mexico. Lecture Notes in Computer Science, vol. 279, pp. 94–113. Springer, Berlin (1986) Google Scholar
  42. 42.
    Goldman, R., Gabriel, R., Sexton, C.: Qlisp: an interim report. In: Parallel Lisp: Languages and Systems. Lecture Notes in Computer Science, vol. 441, pp. 161–181. Springer, Berlin (1989) CrossRefGoogle Scholar
  43. 43.
    Green, M., Abdallah, A.E.: Interfacing java with Haskell. In: Michaelson, G., Trinder, P.W., Loidl, H.-W. (eds.) Trends in Functional Programming. Trends in Functional Programming, vol. 1, pp. 79–88. Intellect, Nijmegen (1999) Google Scholar
  44. 44.
    Gronski, J., Flanagan, C.: Unifying hybrid types and contracts. In: Morazán, M.T. (ed.) Trends in Functional Programming, New York City, USA, April 2–4, 2007. Trends in Functional Programming, vol. 8, pp. 54–70. Intellect/The University of Chicago Press, Bristol/Chicago (2007) Google Scholar
  45. 45.
    Grov, G., Michaelson, G.: Towards a box calculus for hierarchical Hume. In: Morazán, M.T. (ed.) Trends in Functional Programming, New York City, USA, April 2–4, 2007. Trends in Functional Programming, vol. 8, pp. 71–88. Intellect/The University of Chicago Press, Bristol/Chicago (2007) Google Scholar
  46. 46.
    Guillemette, L.-J., Monnier, S.: One vote for type families in Haskell! In: Achten, P., Koopman, P., Morazán, M. (eds.) Trends in Functional Programming. Trends in Functional Programming, vol. 9, pp. 81–96. Intellect, Nijmegen (2009) Google Scholar
  47. 47.
    Haack, C., Wells, J.B.: Type error slicing in implicitly typed higher-order languages. In: ESOP’03: Proceedings of the 12th European Symposium on Programming, Berlin, Heidelberg, pp. 284–301. Springer, Berlin (2003) Google Scholar
  48. 48.
    Halstead, R.H. Jr.: New ideas in parallel lisp: language design, implementation, programming tools. In: Proceedings of the US/Japan Workshop on Parallel Lisp: Languages and Systems. Lecture Notes in Computer Science, vol. 441, pp. 2–57. Springer, Berlin (1989) Google Scholar
  49. 49.
    Halstead, R.H.: Multilisp: a language for concurrent symbolic computation. ACM Trans. Program. Lang. Syst. 7, 501–538 (1985) MATHCrossRefGoogle Scholar
  50. 50.
    Hammond, K.: Hume: a concurrent language with bounded time and space behaviour. In: Proc. 7th IEEE International Conference on Electronic Control Systems, ICECS 2K, Lebanon, pp. 407–411 (2000) Google Scholar
  51. 51.
    Hammond, K., Loidl, H.W., Partridge, A.: Visualising granularity in parallel programs: a graphical winnowing system for Haskell. In: HPFC’95—High Performance Functional Computing, pp. 208–221 (1995) Google Scholar
  52. 52.
    Hammond, K., Al Zain, A., Cooperman, G., Petcu, D., Trinder, P.W.: Symgrid: a framework for symbolic computation on the grid. In: Kermarrec, A.-M., Bougé, L., Priol, T. (eds.) Euro-Par. Lecture Notes in Computer Science, vol. 4641, pp. 457–466. Springer, Berlin (2007) Google Scholar
  53. 53.
    Hanus, M.: Curry: a multi-paradigm declarative language (system description). In: Bry, F., Freitag, B., Seipel, D. (eds.) Twelfth Workshop Logic Programming, WLP 1997, München, Germany, 17–19 September 1997 Google Scholar
  54. 54.
    Hayashi, Y., Cole, M.: BSP-based cost analysis of skeletal programs. In: Michaelson, G., Trinder, P.W., Loidl, H.-W. (eds.) Trends in Functional Programming. Trends in Functional Programming, vol. 1, pp. 20–28. Intellect, Nijmegen (1999) Google Scholar
  55. 55.
    Heeren, B.J.: Top quality type error messages. PhD thesis, Universiteit Utrecht, The Netherlands, September 2005 Google Scholar
  56. 56.
    Heeren, B., Hage, J., Swierstra, S.D.: Constraint based type inferencing in helium. In: Silaghi, M.-C., Zanker, M. (eds.) Workshop Proceedings of Immediate Applications of Constraint Programming, Cork, Ireland, September 2003, pp. 59–80 (2003) Google Scholar
  57. 57.
    Henglein, F.: Dynamic typing: syntax and proof theory. Sci. Comput. Program. 22(3), 197–230 (1994) MathSciNetMATHCrossRefGoogle Scholar
  58. 58.
    Herman, D., Tomb, A., Flanagan, C.: Space-efficient gradual typing. In: Morazán, M.T. (ed.) Trends in Functional Programming, New York City, USA, April 2–4, 2007. Trends in Functional Programming, vol. 8, pp. 1–18. Intellect/The University of Chicago Press, Bristol/Chicago (2007) Google Scholar
  59. 59.
    Hernandez, F., Peña, R., Rubio, F.: From GranSim to paradise. In: Michaelson, G., Trinder, P.W., Loidl, H.-W. (eds.) Trends in Functional Programming. Trends in Functional Programming, vol. 1, pp. 11–19. Intellect, Nijmegen (1999) Google Scholar
  60. 60.
    Hidalgo-Herrero, M., Ortega-Mallén, Y.: A distributed operational semantics for a parallel functional language. In: Gilmore, S. (ed.) Trends in Functional Programming. Trends in Functional Programming, vol. 2, pp. 89–102. Intellect/University of St. Andrews, St. Andrews (2000) Google Scholar
  61. 61.
    Hindley, R.J.: The principal type scheme of an object in combinatory logic. Trans. Am. Math. Soc. 146, 29–60 (1969) MathSciNetMATHGoogle Scholar
  62. 62.
    Hofmann, M., Jost, S.: Static prediction of heap space usage for first-order functional programs. In: Proceedings of the 30th ACM Symposium on Principles of Programming Languages, POPL, New Orleans. ACM, New York (2003) Google Scholar
  63. 63.
    Horváth, Z., Lövei, L., Csörnyei, Z., Kozsik, T., Víg, A., Nagy, T., Király, R., Tóth, M., Kitlei, R.: Refactoring Erlang programs. In: 2nd Central European Functional Programming School, CEFP 2007, Cluj-Napoca, Romania, June 2007 Google Scholar
  64. 64.
    Hu, L., Hutton, G.: Compiling concurrency correctly: cutting out the middle man. In: Proceedings of the Symposium on Trends in Functional Programming, Komárno, Slovakia, June 2009 Google Scholar
  65. 65.
    Hu, L., Hutton, G.: Towards a verified STM. In: Achten, P., Koopman, P., Morazán, M. (eds.) Trends in Functional Programming. Trends in Functional Programming, vol. 9, pp. 129–144. Intellect, Nijmegen (2009) Google Scholar
  66. 66.
    Ito, T., Matsui, M.: A parallel lisp language PaiLisp and its kernel specification. In: Proceedings of the US/Japan Workshop on Parallel Lisp: Languages and Systems. Lecture Notes in Computer Science, vol. 441, pp. 58–100. Springer, Berlin (1989) CrossRefGoogle Scholar
  67. 67.
    Joubert, G.R., Nagel, W.E., Peters, F.J., Walter, W.V. (eds.): In: Parallel Computing: Software Technology, Algorithms, Architectures and Applications, PARCO 2003, Dresden, Germany. Advances in Parallel Computing, vol. 13. Elsevier, Amsterdam (2004) Google Scholar
  68. 68.
    Klusik, U., Peña, R., Segura, C.: Bypassing of channels in Eden. In: Michaelson, G., Trinder, P.W., Loidl, H.-W. (eds.) Trends in Functional Programming. Trends in Functional Programming, vol. 1, pp. 2–10. Intellect, Nijmegen (1999) Google Scholar
  69. 69.
    Klusik, U., Loogen, R., Priebe, S.: Controlling parallelism and data distribution in Eden. In: Gilmore, S. (ed.) Trends in Functional Programming. Trends in Functional Programming, vol. 2, pp. 53–64. Intellect/University of St. Andrews, St. Andrews (2000) Google Scholar
  70. 70.
    Knowles, K., Flanagan, C.: Hybrid type checking. ACM Trans. Program. Lang. Syst. 32(2), 1–34 (2010) CrossRefGoogle Scholar
  71. 71.
    Koopman, P., Plasmeijer, R.: Testing reactive systems with Gast. In: Gilmore, S. (ed.) Proceedings of the 5th Symposium on Trends in Functional Programming, TFP ’03, pp. 111–129. Intellect Books, Bristol (2004). ISBN 1-84150-122-0 Google Scholar
  72. 72.
    Koopman, P., Alimarine, A., Tretmans, J., Plasmeijer, R.: Gast: generic automated software testing. In: Peña, R., Arts, T. (eds.) Revised Selected Papers of the 14th International Symposium on the Implementation of Functional Languages, IFL ’02. Lecture Notes in Computer Science, vol. 2670, pp. 84–100. Springer, Berlin (2003) Google Scholar
  73. 73.
    Lakin, M., Pitts, A.: A metalanguage for structural operational semantics. In: Morazán, M.T. (ed.) Trends in Functional Programming, New York City, USA, April 2–4, 2007. Trends in Functional Programming, vol. 8, pp. 19–35. Intellect/The University of Chicago Press, Bristol/Chicago (2007) Google Scholar
  74. 74.
    Lämmel, R.: Reuse by program transformation. In: Michaelson, G., Trinder, P.W., Loidl, H.-W. (eds.) Trends in Functional Programming. Trends in Functional Programming, vol. 1, pp. 144–153. Intellect, Nijmegen (1999) Google Scholar
  75. 75.
    Li, H., Thompson, S.: Formalisation of Haskell refactorings. In: van Eekelen, M., Hammond, K. (eds.) Trends in Functional Programming (2005) Google Scholar
  76. 76.
    Lindblad, F.: Property directed generation of first-order test data. In: Morazán, M.T. (ed.) Trends in Functional Programming, New York City, USA, April 2–4, 2007. Trends in Functional Programming, vol. 8, pp. 105–123. Intellect/The University of Chicago Press, Bristol/Chicago (2007) Google Scholar
  77. 77.
    Loidl, H.-W., Klusik, U., Hammond, K., Loogen, R., Trinder, P.W.: GpH and Eden: comparing two parallel functional languages on a Beowulf cluster. In: Gilmore, S. (ed.) Trends in Functional Programming. Trends in Functional Programming, vol. 2, pp. 39–52. Intellect/University of St. Andrews, St. Andrews (2000) Google Scholar
  78. 78.
    Loitsch, F., Serrano, M.: Hop client-side compilation. In: Morazán, M.T. (ed.) Trends in Functional Programming, New York City, USA, April 2–4, 2007. Trends in Functional Programming, vol. 8, pp. 141–158. Intellect/The University of Chicago Press, Bristol/Chicago (2007) Google Scholar
  79. 79.
    Loogen, R., Ortega-Mallén, Y., Peña-Marí, R.: Parallel functional programming in Eden. J. Funct. Program. 15(3), 431–475 (2005) MATHCrossRefGoogle Scholar
  80. 80.
    Loulergue, F.: Parallel composition and bulk synchronous parallel functional programming. In: Gilmore, S. (ed.) Trends in Functional Programming. Trends in Functional Programming, vol. 2, pp. 77–88. Intellect/University of St. Andrews, St. Andrews (2000) Google Scholar
  81. 81.
    Loulergue, F.: Distributed evaluation of functional BSP programs. Parallel Process. Lett. 11(4), 423–437 (2001) Google Scholar
  82. 82.
    Loulergue, F.: Parallel juxtaposition for bulk synchronous parallel ML. In: Euro-Par 2003. Lecture Notes in Computer Science, vol. 2790, pp. 781–788. Springer, Berlin (2003) Google Scholar
  83. 83.
    Loulergue, F., Hains, G., Foisy, C.: A calculus of functional BSP programs. Sci. Comput. Program. 37(1–3), 253–277 (2000) MathSciNetMATHCrossRefGoogle Scholar
  84. 84.
    McAdam, B.J.: Generalising techniques for type debugging. In: Michaelson, G., Trinder, P.W., Loidl, H.-W. (eds.) Trends in Functional Programming. Trends in Functional Programming, vol. 1, pp. 50–58. Intellect, Nijmegen (1999) Google Scholar
  85. 85.
    McAdam, B.J., Kennedy, A., Benton, N.: Type inference for MLj. In: Gilmore, S. (ed.) Trends in Functional Programming. Trends in Functional Programming, vol. 2, pp. 159–172. University of St. Andrews, St. Andrews (2000) Google Scholar
  86. 86.
    Meyer, B.: Eiffel: The Language. Prentice Hall, New York (1992) MATHGoogle Scholar
  87. 87.
    Michaelson, G., Trinder, P.W., Loidl, H.-W. (eds.): Trends in Functional Programming. Trends in Functional Programming, vol. 1. Intellect, Stirling (1999) Google Scholar
  88. 88.
    Middelkoop, A., Dijkstra, A., Swierstra, D.: A leaner specification for GADTs. In: Achten, P., Koopman, P., Morazán, M. (eds.) Trends in Functional Programming. Trends in Functional Programming, vol. 9, pp. 65–180. Intellect, Nijmegen (2009) Google Scholar
  89. 89.
    Milner, R.: A theory of type polymorphism in programming. J. Comput. Syst. Sci. 17(3), 348–375 (1978) MathSciNetMATHCrossRefGoogle Scholar
  90. 90.
    Montenegro, M., Peña, R., Segura, C.: A space consumption analysis by abstract interpretation. In: van Eekelen, M., Shkaravska, O. (eds.) Proceedings International Workshop on Foundational and Practical Aspects of Resource Analysis, FOPARA’09, Eindhoven, The Netherlands, November 3, 2009. Lecture Notes in Computer Science, vol. 6324, pp. 34–50. Springer, Berlin (2009) CrossRefGoogle Scholar
  91. 91.
    Morazán, M.T. (ed.): Trends in Functional Programming, New York City, USA, April 2–4, 2007. Trends in Functional Programming, vol. 8. Intellect/The University of Chicago Press, Bristol/Chicago (2007) Google Scholar
  92. 92.
    Morazán, M.T., Troeger, D.R.: The MT architecture and allocation algorithm. In: Michaelson, G., Trinder, P.W., Loidl, H.-W. (eds.) Trends in Functional Programming. Trends in Functional Programming, vol. 1, pp. 98–105. Intellect, Nijmegen (1999) Google Scholar
  93. 93.
    Mu, S.-C., Ko, H.-S., Jansson, P.: Algebra of programming in Agda: dependent types for relational program derivation. J. Funct. Program. 19, 545–579 (2009). doi:10.1017/S0956796809007345 MathSciNetMATHCrossRefGoogle Scholar
  94. 94.
    Nöcker, E.G.J.M.H., Smetsers, J.E.W., van Eekelen, M.C.J.D., Plasmeijer, M.J.: Concurrent CLEAN. In: Proc. of Parallel Architectures and Languages Europe, PARLE ’91, Eindhoven, the Netherlands. Lecture Notes in Computer Science, vol. 505, pp. 202–219. Springer, Berlin (1991) CrossRefGoogle Scholar
  95. 95.
    Norell, U.: Towards a practical programming language based on dependent type theory. PhD thesis, Chalmers University of Technology (2007) Google Scholar
  96. 96.
    Oury, N., Swierstra, W.: The power of pi. In: ICFP’08: Proceedings of the 2008 SIGPLAN International Conference on Functional Programming, pp. 39–50 (2008) CrossRefGoogle Scholar
  97. 97.
    Page, R., Eastlund, C., Felleisen, M.: Functional programming and theorem proving for undergraduates: a progress report. In: FDPE ’08: Proceedings of the 2008 ACM SIGPLAN Workshop on Functional and Declarative Programming in Education, New York, NY, USA, September 21, 2008, pp. 21–30. ACM, New York (2008) CrossRefGoogle Scholar
  98. 98.
    Pardo, A., Fernandes, J.P., Saraiva, J.: Shortcut fusion rules for the derivation of circular and higher-order monadic programs. In: Proceedings ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, PEPM’09, Savannah, Georgia, USA, January 19–20, 2009, pp. 81–90 (2009) Google Scholar
  99. 99.
    Pareja, C., Peña, R., Rubio, F., Segura, C.: Optimizing Eden by transformation. In: Gilmore, S. (ed.) Trends in Functional Programming. Trends in Functional Programming, vol. 2, pp. 13–26. Intellect/University of St. Andrews, St. Andrews (2000) Google Scholar
  100. 100.
    Peyton-Jones, S.: Parallel implementations of functional programming languages. Comput. J. 32(2) (1989) Google Scholar
  101. 101.
    Pil, M.: Dynamic types and type dependent functions. In: Hammond, K., Davie, T., Clack, C. (eds.) Proceedings of the 10th International Symposium on the Implementation of Functional Languages, IFL ’98, London, UK. Lecture Notes in Computer Science, vol. 1595, pp. 169–185. Springer, Berlin (1999) Google Scholar
  102. 102.
    Plasmeijer, R., van Eekelen, M.: Functional Programming and Parallel Graph Rewriting. Addison-Wesley, Reading (1993). ISBN 0-201-41663-8 MATHGoogle Scholar
  103. 103.
    Plasmeijer, R., Achten, P., Koopman, P.: An introduction to iTasks: defining interactive work flows for the web. In: Proceedings of the 2nd Central European Functional Programming School, CEFP ’07, Cluj-Napoca, Romania, 23–30 June 2007 Google Scholar
  104. 104.
    Rabhi, F.A., Lapalme, G., Zomaya, A.Y.: A functional design framework for genetic algorithms. In: Michaelson, G., Trinder, P.W., Loidl, H.-W. (eds.) Trends in Functional Programming. Trends in Functional Programming, vol. 1, pp. 116–125. Intellect, Nijmegen (1999) Google Scholar
  105. 105.
    Runciman, C., Naylor, M., Lindblad, F.: SmallCheck and lazy smallCheck: automatic exhaustive testing for small values. In: Proceedings of the ACM SIGPLAN 2008 Haskell Symposium, New York, NY, USA, pp. 37–48. ACM, New York (2009). ISBN: 978-1-60558-064-7 Google Scholar
  106. 106.
    Schrijvers, T., Sulzmann, M.: Confluence for non-full functional dependencies. In: Achten, P., Koopman, P., Morazán, M. (eds.) Trends in Functional Programming. Trends in Functional Programming, vol. 9, pp. 49–64. Intellect, Nijmegen (2009) Google Scholar
  107. 107.
    Schrijvers, T., Peyton Jones, S.L., Sulzmann, M., Vytiniotis, D.: Complete and decidable type inference for GADTs. In: Hutton, G., Tolmach, A.P. (eds.) Proceeding of the 14th ACM SIGPLAN International Conference on Functional Programming, ICFP 2009, Edinburgh, Scotland, UK, pp. 341–352. ACM, New York (2009) CrossRefGoogle Scholar
  108. 108.
    Sculthorpe, N., Nilsson, H.: Optimisation of dynamic, hybrid signal function networks. In: Achten, P., Koopman, P., Morazán, M. (eds.) Trends in Functional Programming. Trends in Functional Programming, vol. 9, pp. 97–112. Intellect, Nijmegen (2009) Google Scholar
  109. 109.
    Sérot, J.: CAMLFLOW: a CAML to data-flow graph translator. In: Gilmore, S. (ed.) Trends in Functional Programming. Trends in Functional Programming, vol. 2, pp. 129–144. Intellect/University of St. Andrews, St. Andrews (2000) Google Scholar
  110. 110.
    Serrano, M., Gallesio, E., Loitsch, F.: Hop, a language for programming the web 2.0. In: Proceedings of the 11th International Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA ’06, Portland, Oregon, USA, 22–26 October 2006, pp. 975–985 (2006) Google Scholar
  111. 111.
    Sestoft, P.: Deriving a lazy abstract machine. J. Funct. Program. 7(3), 231–264 (1997) MathSciNetMATHCrossRefGoogle Scholar
  112. 112.
    Shkaravska, O., Kersten, R., van Eekelen, M.: Test-based inference of polynomial loop-bound functions. In: Krall, A., Mössenböck, H. (eds.) PPPJ’10: Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java. ACM Digital Proceedings Series, pp. 99–108 (2010) Google Scholar
  113. 113.
    Shkaravska, O., van Eekelen, M., Tamalet, A.: Collected size semantics for functional programs over lists. In: Scholz, S.-B. (ed.) Revised Selected Papers of the 20th International Symposium on the Implementation and Application of Functional Languages, IFL. Lecture Notes in Computer Science, vol. 5836. Springer, Berlin (2010, to appear) Google Scholar
  114. 114.
    Søndergaard, H., Sestoft, P.: Referential transparency, definiteness and unfoldability. Acta Inform. 27, 505–517 (1990) MathSciNetCrossRefGoogle Scholar
  115. 115.
    Sonmez, N., Perfumo, C., Stipic, S., Cristal, A., Unsal, O.S., Valero, M.: UnreadTVar: extending Haskell software transactional memory for performance. In: Morazán, M.T. (ed.) Trends in Functional Programming, New York City, USA, April 2–4, 2007. Trends in Functional Programming, vol. 8, pp. 89–104. Intellect/The University of Chicago Press, Bristol/Chicago (2007) Google Scholar
  116. 116.
    Stuckey, P.J., Sulzmann, M., Wazny, J.: Interactive type debugging in Haskell. In: Haskell ’03: Proceedings of the 2003 ACM SIGPLAN Workshop on Haskell, New York, NY, USA, pp. 72–83. ACM, New York (2003) CrossRefGoogle Scholar
  117. 117.
    Swierstra, W., Altenkirch, T.: Dependent types for distributed arrays—best student paper. In: Achten, P., Koopman, P., Morazán, M. (eds.) Trends in Functional Programming. Trends in Functional Programming, vol. 9, pp. 17–32. Intellect, Nijmegen (2009) Google Scholar
  118. 118.
    Szymanski, B.K.: Parallel Functional Languages and Compilers. Frontier Series. ACM, New York (1991) MATHGoogle Scholar
  119. 119.
    Tamalet, A., Shkaravska, O., van Eekelen, M.: Size analysis of algebraic data types. In: Achten, P., Koopman, P., Morazán, M. (eds.) Trends in Functional Programming. Trends in Functional Programming, vol. 9, pp. 33–48. Intellect, Nijmegen (2009) Google Scholar
  120. 120.
    Thiemann, P.: WASH/CGI: server-side web scripting with sessions and typed, compositional forms. In: Krishnamurthi, S., Ramakrishnan, R. (eds.) Proceedings of the 4th International Symposium on the Practical Aspects of Declarative Programming, PADL ’02, Portland, OR, USA, 19–20 January 2002. Lecture Notes in Computer Science, vol. 2257, pp. 192–208. Springer, Berlin (2002) Google Scholar
  121. 121.
    Trinder, P.W., Hammond, K., Mattson, J.S. Jr., Partridge, A.S., Peyton Jones, S.L.: GUM: a portable parallel implementation of Haskell. In: PLDI ’96: Proceedings of the ACM SIGPLAN 1996 Conference on Programming Language Design and Implementation, New York, NY, USA, pp. 79–88. ACM, New York (1996) CrossRefGoogle Scholar
  122. 122.
    Trinder, P.W., Hammond, K., Loidl, H.-W., L, S., Peyton Jones, S.L.: Algorithm + strategy = parallelism. J. Funct. Program. 8, 23–60 (1998) MATHCrossRefGoogle Scholar
  123. 123.
    van Eekelen, M.C.J.D. (ed.): Revised Selected Papers from the 6th Symposium on Trends in Functional Programming, TFP 2005, Tallinn, Estonia, 23–24 September 2005. Trends in Functional Programming, vol. 6. Intellect, Bristol (2007) Google Scholar
  124. 124.
    van Eekelen, M., de Mol, M.: Proof tool support for explicit strictness. In: Butterfield, A., Grelck, C., Huch, F. (eds.) Revised Selected Papers of the 17th International Symposium on the Implementation and Application of Functional Languages, IFL ’05, Dublin, Ireland, 19–21 September 2006. Lecture Notes in Computer Science, vol. 4015, pp. 37–54. Springer, Berlin (2006) Google Scholar
  125. 125.
    van Eekelen, M., Shkaravska, O., van Kesteren, R., Jacobs, B., Poll, E., Smetsers, S.: AHA: amortized heap space usage analysis. In: Morazán, M.T. (ed.) Trends in Functional Programming, New York City, USA, April 2–4, 2007. Trends in Functional Programming, vol. 8, pp. 36–53. Intellect/The University of Chicago Press, Bristol/Chicago (2007) Google Scholar
  126. 126.
    Vervoort, M., Plasmeijer, R.: Lazy dynamic input/output in the lazy functional language Clean. In: Peña, R., Arts, T. (eds.) Revised Selected Papers of the 14th International Symposium on the Implementation of Functional Languages, IFL ’02, Madrid, Spain, September 2003. Lecture Notes in Computer Science, vol. 2670, pp. 101–117. Springer, Berlin (2003) Google Scholar
  127. 127.
    Wadler, P.: Deforestation: transforming programs to eliminate trees. Theor. Comput. Sci. 73(2), 231–248 (1990) MathSciNetMATHCrossRefGoogle Scholar
  128. 128.
    Walton, C.D.: An abstract machine for memory management. In: Michaelson, G., Trinder, P.W., Loidl, H.-W. (eds.) Trends in Functional Programming. Trends in Functional Programming, vol. 1, pp. 89–97. Intellect, Nijmegen (1999) Google Scholar
  129. 129.
    Wand, M.: Finding the source of type errors. In: Proceedings Symposium on Principles of Programming Languages, POPL’86, St. Petersburg Beach, Florida, January 1986, pp. 38–43. ACM, New York (1986) Google Scholar
  130. 130.
    Widera, M., Beierle, C.: How to combine the benefits of strict and soft typing. In: Michaelson, G., Trinder, P.W., Loidl, H.-W. (eds.) Trends in Functional Programming. Trends in Functional Programming, vol. 1, pp. 68–78. Intellect, Nijmegen (1999) Google Scholar
  131. 131.
    Widera, M., Beierle, C.: Detecting common elements of types. In: Gilmore, S. (ed.) Trends in Functional Programming. Trends in Functional Programming, vol. 2, pp. 173–184. Intellect/University of St. Andrews, St. Andrews (2000) Google Scholar
  132. 132.
    Yang, J.: Explaining type errors by finding the source of a type conflict. In: Michaelson, G., Trinder, P.W., Loidl, H.-W. (eds.) Trends in Functional Programming. Trends in Functional Programming, vol. 1, pp. 59–67. Intellect, Nijmegen (1999) Google Scholar

Copyright information

© Springer Science+Business Media, LLC 2011

Authors and Affiliations

  • Peter Achten
    • 1
  • Marko van Eekelen
    • 1
    • 2
  • Pieter Koopman
    • 1
  • Marco T. Morazán
    • 3
  1. 1.Radboud University NijmegenNijmegenThe Netherlands
  2. 2.Open University of the NetherlandsHeerlenThe Netherlands
  3. 3.Seton Hall UniversitySouth OregonUSA

Personalised recommendations