From the Publisher:
The descriptive power and semantic elegance of modern functional languages make it possible to develop correct programs relatively quickly. Efficient implementations of functional languages, employing graph rewriting techniques, have only recently become available. This book illustrates the techniques of functional programming in Miranda and Clean, and focuses on the computational model of Graph Rewriting Systems for both sequential and parallel machines. Highlights of the book include a clear tutorial guide to functional programming in Miranda and Clean, in-depth coverage of implementation on both sequential and parallel machines, and unique focus on Graph Rewriting Systems as a computational model. The book will be equally valuable for students taking courses in functional programming, and for programmers or systems designers who are keen to explore state-of-the-art programming and implementation techniques. The Concurrent Clean System, which is available from the authors, offers the opportunity to write both sequential and parallel applications (including window-based systems) in a pure, lazy functional language.
Cited By
- de la Tour T and Echahed R Combining Parallel Graph Rewriting and Quotient Graphs Rewriting Logic and Its Applications, (1-18)
- Henry S ViperVM Proceedings of the 2nd ACM SIGPLAN workshop on Functional high-performance computing, (3-12)
- Danvy O and Zerny I (2013). Three syntactic theories for combinatory graph reduction, ACM Transactions on Computational Logic, 14:4, (1-27), Online publication date: 1-Nov-2013.
- Polonsky A and Barendregt H An Ontology of States Essays Dedicated to Rinus Plasmeijer on the Occasion of His 61st Birthday on The Beauty of Functional Code - Volume 8106, (18-26)
- Zerny I (2013). On graph rewriting, reduction, and evaluation in the presence of cycles, Higher-Order and Symbolic Computation, 26:1-4, (63-84), Online publication date: 1-Dec-2013.
- Totoo P, Deligiannis P and Loidl H Haskell vs. f# vs. scala Proceedings of the 1st ACM SIGPLAN workshop on Functional high-performance computing, (49-60)
- Turner D Some History of Functional Programming Languages Proceedings of the 2012 Conference on Trends in Functional Programming - Volume 7829, (1-20)
- Poskitt C and Plump D (2012). Hoare-Style Verification of Graph Programs, Fundamenta Informaticae, 118:1-2, (135-175), Online publication date: 1-Jan-2012.
- Fourtounis G, Ölveczky P and Papaspyrou N Formally specifying and analyzing a parallel virtual machine for lazy functional languages using Maude Proceedings of the fifth international workshop on High-level parallel programming and applications, (19-26)
- Berthold J, Filinski A, Henglein F, Larsen K, Steffensen M and Vinter B Functional high performance financial IT Proceedings of the 12th international conference on Trends in Functional Programming, (98-113)
- Fernández M, Kirchner H and Namet O A strategy language for graph rewriting Proceedings of the 21st international conference on Logic-Based Program Synthesis and Transformation, (173-188)
- Riesco A and Rodríguez-Hortalá J Programming with singular and plural non-deterministic functions Proceedings of the 2010 ACM SIGPLAN workshop on Partial evaluation and program manipulation, (83-92)
- Groningen J, Noort T, Achten P, Koopman P and Plasmeijer R Exchanging sources between clean and Haskell Proceedings of the third ACM Haskell symposium on Haskell, (49-60)
- Groningen J, Noort T, Achten P, Koopman P and Plasmeijer R (2010). Exchanging sources between clean and Haskell, ACM SIGPLAN Notices, 45:11, (49-60), Online publication date: 17-Nov-2010.
- Baldan P and Bertolissi C Sharing in the graph rewriting calculus Proceedings of the 20th international conference on Recent Trends in Algebraic Development Techniques, (27-41)
- Alpuente M, Comini M, Escobar S, Falaschi M and Iborra J (2010). A compact fixpoint semantics for term rewriting systems, Theoretical Computer Science, 411:37, (3348-3371), Online publication date: 1-Aug-2010.
- Danvy O and Zerny I Three syntactic theories for combinatory graph reduction Proceedings of the 20th international conference on Logic-based program synthesis and transformation, (1-20)
- Koopman P, Plasmeijer R and Achten P An effective methodology for defining consistent semantics of complex systems Proceedings of the Third summer school conference on Central European functional programming school, (224-267)
- Guttmann W Lazy UTP Proceedings of the 2nd international conference on Unifying theories of programming, (82-101)
- Alpuente M, Escobar S and Lucas S (2007). Removing redundant arguments automatically, Theory and Practice of Logic Programming, 7:1-2, (3-35), Online publication date: 1-Jan-2007.
- Schrijvers T and Bruynooghe M Polymorphic algebraic data type reconstruction Proceedings of the 8th ACM SIGPLAN international conference on Principles and practice of declarative programming, (85-96)
- Caferra R, Echahed R and Peltier N Rewriting term-graphs with priority Proceedings of the 8th ACM SIGPLAN international conference on Principles and practice of declarative programming, (109-120)
- Dowse M and Butterfield A Modelling deterministic concurrent I/O Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming, (148-159)
- Dowse M and Butterfield A (2006). Modelling deterministic concurrent I/O, ACM SIGPLAN Notices, 41:9, (148-159), Online publication date: 16-Sep-2006.
- Kahl W, Carette J and Ji X Bimonadic semantics for basic pattern matching calculi Proceedings of the 8th international conference on Mathematics of Program Construction, (253-273)
- Dougherty D, Lescanne P, Liquori L and Lang F (2005). Addressed Term Rewriting Systems, Electronic Notes in Theoretical Computer Science (ENTCS), 127:5, (57-82), Online publication date: 1-May-2005.
- Mackie I Encoding strategies in the lambda calculus with interaction nets Proceedings of the 17th international conference on Implementation and Application of Functional Languages, (19-36)
- van Eekelen M and de Mol M Proof tool support for explicit strictness Proceedings of the 17th international conference on Implementation and Application of Functional Languages, (37-54)
- Scholz S (2018). Single Assignment C: efficient support for high-level array operations in a functional setting, Journal of Functional Programming, 13:6, (1005-1059), Online publication date: 1-Nov-2003.
- Carvalho F, Lima R and Lins R Coordinating functional processes with Haskell# Proceedings of the 2002 ACM symposium on Applied computing, (393-400)
- Alpuente M, Comini M, Escobar S, Falaschi M and Lucas S Abstract diagnosis of functional programs Proceedings of the 12th international conference on Logic based program synthesis and transformation, (1-16)
- Van Weelden A and Plasmeijer R Towards a strongly typed functional operating system Proceedings of the 14th international conference on Implementation of functional languages, (215-231)
- Achten P, Alimarine A and Plasmeijer R When generic functions use dynamic values Proceedings of the 14th international conference on Implementation of functional languages, (17-33)
- Lucas S (2002). Context-sensitive rewriting strategies, Information and Computation, 178:1, (294-343), Online publication date: 10-Oct-2002.
- Albert E and Vidal G (2002). The narrowing-driven approach to functional logic program specialization, New Generation Computing, 20:1, (3-26), Online publication date: 1-Mar-2002.
- Roth D and Wise D (2019). One-bit counts between unique and sticky, ACM SIGPLAN Notices, 34:3, (49-56), Online publication date: 1-Mar-1999.
- Alpuente M, Hanus M, Lucas S and Vidal G Specialization of inductively sequential functional logic programs Proceedings of the fourth ACM SIGPLAN international conference on Functional programming, (273-283)
- Alpuente M, Hanus M, Lucas S and Vidal G (1999). Specialization of inductively sequential functional logic programs, ACM SIGPLAN Notices, 34:9, (273-283), Online publication date: 1-Sep-1999.
- Plasmeijer R and Eekelen M (1999). Keep it clean, ACM SIGPLAN Notices, 34:6, (23-31), Online publication date: 1-Jun-1999.
- Roth D and Wise D One-bit counts between unique and sticky Proceedings of the 1st international symposium on Memory management, (49-56)
- Ariola Z and Klop J (2019). EQUATIONAL TERM GRAPH REWRITING, Fundamenta Informaticae, 26:3,4, (207-240), Online publication date: 1-Dec-1996.
- McKenna W, Burger L, Hoang C and Truong M EROC Proceedings of the 22th International Conference on Very Large Data Bases, (111-121)
- Ariola Z (1996). Relating graph and term rewriting via Böhm models, Applicable Algebra in Engineering, Communication and Computing, 7:5, (401-426), Online publication date: 1-Sep-1996.
- Becker G and Murray N (1995). Efficient execution of programs with static semantics, ACM SIGPLAN Notices, 30:4, (51-60), Online publication date: 1-Apr-1995.
- Marchiori M The functional side of logic programming Proceedings of the seventh international conference on Functional programming languages and computer architecture, (55-65)
- Banach R and Papadopoulos G Linear behaviour of term graph rewriting programs Proceedings of the 1995 ACM symposium on Applied computing, (157-163)
- Dekker A (1994). The game of life, ACM SIGPLAN Notices, 29:9, (91-114), Online publication date: 1-Sep-1994.
- Nöcker E Strictness analysis using abstract reduction Proceedings of the conference on Functional programming languages and computer architecture, (255-265)
- Hartel P and Langendoen K Benchmarking implementations of lazy functional languages Proceedings of the conference on Functional programming languages and computer architecture, (341-349)
Recommendations
Introducing functional programming in discrete mathematics
SIGCSE '92: Proceedings of the twenty-third SIGCSE technical symposium on Computer science educationProgramming assignments in my discrete mathematics course have changed recently due to an influx of non-computer science students with little or no programming experience. Programming problems are now assigned in a simple to learn, easy to write, ...