{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,22]],"date-time":"2026-04-22T20:54:13Z","timestamp":1776891253478,"version":"3.51.2"},"reference-count":59,"publisher":"Centre pour la Communication Scientifique Directe (CCSD)","issue":"4","license":[{"start":{"date-parts":[[2008,11,7]],"date-time":"2008-11-07T00:00:00Z","timestamp":1226016000000},"content-version":"unspecified","delay-in-days":4512,"URL":"https:\/\/www.cambridge.org\/core\/terms"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["J. Funct. Prog."],"published-print":{"date-parts":[[1996,7]]},"abstract":"<jats:title>Abstract<\/jats:title>\n                  <jats:p>Over 25 implementations of different functional languages are benchmarked using the same program, a floating-point intensive application taken from molecular biology. The principal aspects studied are compile time and execution time for the various implementations that were benchmarked. An important consideration is how the program can be modified and tuned to obtain maximal performance on each language implementation. With few exceptions, the compilers take a significant amount of time to compile this program, though most compilers were faster than the then current GNU C compiler (GCC version 2.5.8). Compilers that generate C or Lisp are often slower than those that generate native code directly: the cost of compiling the intermediate form is normally a large fraction of the total compilation time. There is no clear distinction between the runtime performance of eager and lazy implementations when appropriate annotations are used: lazy implementations have clearly come of age when it comes to implementing largely strict applications, such as the Pseudoknot program. The speed of C can be approached by some implementations, but to achieve this performance, special measures such as strictness annotations are required by non-strict implementations. The benchmark results have to be interpreted with care. Firstly, a benchmark based on a single program cannot cover a wide spectrum of \u2018typical\u2019 applications. Secondly, the compilers vary in the kind and level of optimisations offered, so the effort required to obtain an optimal version of the program is similarly varied.<\/jats:p>","DOI":"10.1017\/s0956796800001891","type":"journal-article","created":{"date-parts":[[2008,11,7]],"date-time":"2008-11-07T11:10:34Z","timestamp":1226056234000},"page":"621-655","source":"Crossref","is-referenced-by-count":48,"title":["Benchmarking implementations of functional languages with \u2018Pseudoknot\u2019, a float-intensive benchmark"],"prefix":"10.46298","volume":"6","author":[{"given":"Pieter H.","family":"Hartel","sequence":"first","affiliation":[]},{"given":"Marc","family":"Feeley","sequence":"additional","affiliation":[]},{"given":"Martin","family":"Alt","sequence":"additional","affiliation":[]},{"given":"Lennart","family":"Augustsson","sequence":"additional","affiliation":[]},{"given":"Peter","family":"Baumann","sequence":"additional","affiliation":[]},{"given":"Marcel","family":"Beemster","sequence":"additional","affiliation":[]},{"given":"Emmanuel","family":"Chailloux","sequence":"additional","affiliation":[]},{"given":"Christine H.","family":"Flood","sequence":"additional","affiliation":[]},{"given":"Wolfgang","family":"Grieskamp","sequence":"additional","affiliation":[]},{"given":"John H. G.","family":"Van Groningen","sequence":"additional","affiliation":[]},{"given":"Kevin","family":"Hammond","sequence":"additional","affiliation":[]},{"given":"Bogumil","family":"Hausman","sequence":"additional","affiliation":[]},{"given":"Melody Y.","family":"Ivory","sequence":"additional","affiliation":[]},{"given":"Richard E.","family":"Jones","sequence":"additional","affiliation":[]},{"given":"Jasper","family":"Kamperman","sequence":"additional","affiliation":[]},{"given":"Peter","family":"Lee","sequence":"additional","affiliation":[]},{"given":"Xavier","family":"Leroy","sequence":"additional","affiliation":[]},{"given":"Rafael D.","family":"Lins","sequence":"additional","affiliation":[]},{"given":"Sandra","family":"Loosemore","sequence":"additional","affiliation":[]},{"given":"Niklas","family":"R\u00f6jemo","sequence":"additional","affiliation":[]},{"given":"Manuel","family":"Serrano","sequence":"additional","affiliation":[]},{"given":"Jean-Pierre","family":"Talpin","sequence":"additional","affiliation":[]},{"given":"Jon","family":"Thackray","sequence":"additional","affiliation":[]},{"given":"Stephen","family":"Thomas","sequence":"additional","affiliation":[]},{"given":"Pum","family":"Walters","sequence":"additional","affiliation":[]},{"given":"Pierre","family":"Weis","sequence":"additional","affiliation":[]},{"given":"Peter","family":"Wentworth","sequence":"additional","affiliation":[]}],"member":"25203","published-online":{"date-parts":[[2008,11,7]]},"reference":[{"key":"S0956796800001891_ref059","unstructured":"Wentworth E. P. (1992) RUFL reference manual. Technical report 92\/1, Department of Computer Science, Rhodes University."},{"key":"S0956796800001891_ref058","unstructured":"Wentworth E. P. (1991) Code generation for a lazy functional language. Technical report 91\/19, Department of Computer Science, Rhodes University."},{"key":"S0956796800001891_ref056","unstructured":"Walters H. R. and Kamperman J. F. Th. (1995) Epic: Implementing language processors by equational programs. Technical report in preparation, Centrum voor Wiskunde en Informatica, Amsterdam, The Netherlands."},{"key":"S0956796800001891_ref002","volume-title":"Compiling with Continuations","author":"Appel","year":"1992"},{"key":"S0956796800001891_ref039","volume-title":"Concurrent Clean \u2013 version 1.0 \u2013 Language Reference Manual, draft version","author":"Plasmeijer","year":"1994"},{"key":"S0956796800001891_ref005","doi-asserted-by":"publisher","DOI":"10.1093\/comjnl\/32.2.127"},{"key":"S0956796800001891_ref057","unstructured":"Weis P. and Leroy X. (1993) Le langage Caml. Inter\u00c9ditions."},{"key":"S0956796800001891_ref053","first-page":"1","volume-title":"2nd Functional Programming Languages and Computer Architecture, LNCS 201","author":"Turner","year":"1985"},{"key":"S0956796800001891_ref018","first-page":"581","volume-title":"Proc. IFIP","volume":"1","author":"Gill","year":"1994"},{"key":"S0956796800001891_ref015","first-page":"119","volume-title":"Lisp and Functional Programming","author":"Feeley","year":"1990"},{"key":"S0956796800001891_ref019","first-page":"303","volume-title":"16th Principles of Programming Languages","author":"Gopinath","year":"1989"},{"key":"S0956796800001891_ref003","volume-title":"Concurrent programming in Erlang","author":"Armstrong","year":"1993"},{"key":"S0956796800001891_ref027","volume-title":"The implementation of the Gofer functional programming system","author":"Jones","year":"1994"},{"key":"S0956796800001891_ref055","doi-asserted-by":"publisher","DOI":"10.1016\/0304-3975(90)90147-A"},{"key":"S0956796800001891_ref052","unstructured":"Thomsen B. , Leth L. , Prasad S. , Kuo T.-S. , Kramer A. , Knabe F. and Giacalone A. (1993) Facile antigua release \u2013 programming guide. Technical report ECRC-93-20, European Computer-Industry Research Centre, Munich, Germany. (The reference manual and license agreement are available by anonymous ftp from ftp.ecrc.de.)"},{"key":"S0956796800001891_ref001","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-56733-X_166"},{"key":"S0956796800001891_ref021","doi-asserted-by":"publisher","DOI":"10.1145\/4472.4478"},{"key":"S0956796800001891_ref051","first-page":"1","volume-title":"Lisp and Functional Programming","author":"Thompson","year":"1986"},{"key":"S0956796800001891_ref014","first-page":"1","volume-title":"21st Principles of Programming Languages","author":"Diwan","year":"1994"},{"key":"S0956796800001891_ref011","doi-asserted-by":"publisher","DOI":"10.1145\/135226.135231"},{"key":"S0956796800001891_ref017","unstructured":"Giegerich R. and Hughes R. J. M. (1994) Functional programming in the real world. Dagstuhl seminar report 89, IBFI GmbH, Schloss Dagstuhl, D-66687 Wadern, Germany."},{"key":"S0956796800001891_ref032","first-page":"19","article-title":"\u0393CMC: A novel way of implementing functional languages","volume":"1","author":"Lins","year":"1993","journal-title":"J. Programming Languages"},{"key":"S0956796800001891_ref054","unstructured":"Turner D. A. (1990) Miranda system manual. Research Software Ltd, 23 St Augustines Road, Canterbury, Kent CT1 1XP, UK, April."},{"key":"S0956796800001891_ref026","volume-title":"ACM SIGPLAN Notices","volume":"27","author":"Hudak","year":"1992"},{"key":"S0956796800001891_ref043","first-page":"239","volume-title":"Phoenix Seminar and Workshop on Declarative Programming","author":"Schulte","year":"1991"},{"key":"S0956796800001891_ref004","volume-title":"HBC user's manual. Programming Methodology Group Distributed with the HBC compiler","author":"Augustsson","year":"1993"},{"key":"S0956796800001891_ref006","volume-title":"Lazy ML user's manual","author":"Augustsson","year":"1990"},{"key":"S0956796800001891_ref035","volume-title":"The Definition of Standard ML","author":"Milner","year":"1990"},{"key":"S0956796800001891_ref038","doi-asserted-by":"publisher","DOI":"10.1007\/3540543961_30"},{"key":"S0956796800001891_ref036","first-page":"284","volume-title":"ID version 90.1 reference manual","author":"Nikhil","year":"1991"},{"key":"S0956796800001891_ref010","volume-title":"The optimizing SISAL compiler: version 12.0. Manual UCRL-MA-110080","author":"Cann","year":"1992"},{"key":"S0956796800001891_ref012","first-page":"37","volume-title":"ACM SIGPLAN Workshop on ML and its Applications","author":"Chailloux","year":"1992"},{"key":"S0956796800001891_ref013","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-57840-4_34"},{"key":"S0956796800001891_ref016","doi-asserted-by":"publisher","DOI":"10.1007\/BF01018696"},{"key":"S0956796800001891_ref020","unstructured":"The Yale Haskell Group (1994) The Yale Haskell Users Manual (version Y2.3b). Department of Computer Science, Yale University (Distributed with the Yale Haskell compiler), July."},{"key":"S0956796800001891_ref042","first-page":"282","volume-title":"6th Functional Programming Languages and Computer Architecture","author":"R\u00f6jemo","year":"1995"},{"key":"S0956796800001891_ref022","volume-title":"MLWorks draft documentation","author":"Harlequin","year":"1994"},{"key":"S0956796800001891_ref023","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380240202"},{"key":"S0956796800001891_ref033","doi-asserted-by":"publisher","DOI":"10.21236\/ADA256431"},{"key":"S0956796800001891_ref025","doi-asserted-by":"publisher","DOI":"10.1007\/978-1-4615-2690-2_9"},{"key":"S0956796800001891_ref028","volume-title":"The C Programming Language \u2013 ANSI C.","author":"Kernighan","year":"1988"},{"key":"S0956796800001891_ref029","first-page":"177","volume-title":"19th Principles of Programming Languages","author":"Leroy","year":"1992"},{"key":"S0956796800001891_ref008","first-page":"17","volume-title":"7th Computer systems","author":"Beemster","year":"1993"},{"key":"S0956796800001891_ref030","unstructured":"Leroy X. (1993) The Caml Light system, release 0.61. Software and documentation distributed by anonymous FTP on ftp.inria.fr."},{"key":"S0956796800001891_ref031","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-18317-5_5"},{"key":"S0956796800001891_ref034","volume-title":"Sisal: Streams and iteration in a single assignment language","author":"McGraw","year":"1985"},{"key":"S0956796800001891_ref009","volume-title":"Algebraic Specification","author":"Bergstra","year":"1989"},{"key":"S0956796800001891_ref037","unstructured":"Peyton Jones S. L. , Hall C. V. , Hammond K. , Partain W. D. and Wadler P. L. (1993) The Glasgow Haskell compiler: a technical overview. In Proc. Joint Framework for Information Technology (JF1T) Technical Conference, pp. 249\u2013257, Keele, UK. London:DTI\/SERC."},{"key":"S0956796800001891_ref040","unstructured":"Ranelletti J. E. (1987) Graph transformation algorithms for array memory memory optimization in applicative languages. PhD thesis, Computer Science Deptartment, University of California at Davis, CA."},{"key":"S0956796800001891_ref041","volume-title":"Revised4 Report on the Algorithmic Language Scheme","author":"Rees","year":"1991"},{"key":"S0956796800001891_ref048","volume-title":"Common Lisp the Language","author":"Steele","year":"1990"},{"key":"S0956796800001891_ref044","unstructured":"Serrano M. (1994) Bigloo user's manual. Technical report 0169, INRIA-Rocquencourt, France."},{"key":"S0956796800001891_ref007","unstructured":"Beemster M. (1992) The lazy functional intermediate language Stoffel. Technical report CS-92-16, Department of Computer Systems, University of Amsterdam."},{"key":"S0956796800001891_ref045","unstructured":"Serrano M. and Weis P. (1994) 1 + 1 = 1: an optimizing Caml compiler. In ACM-SIGPLAN Workshop on ML and its Applications, pp. 101\u2013111. (Research report 2265, INRIA Rocquencourt, France, June.)"},{"key":"S0956796800001891_ref024","first-page":"341","volume-title":"6th Functional Programming Languages and Computer Architecture","author":"Hartel","year":"1992"},{"key":"S0956796800001891_ref046","unstructured":"Shao Z. (1994) Compiling Standard ML for Efficient Execution on Modern Machines. PhD thesis, Princeton Univ, Princeton, NJ."},{"key":"S0956796800001891_ref047","doi-asserted-by":"publisher","DOI":"10.1007\/3540543961_28"},{"key":"S0956796800001891_ref049","unstructured":"Thomas S. (1993) The Pragmatics of Closure Reduction. PhD thesis, University of Kent at Canterbury, UK."},{"key":"S0956796800001891_ref050","unstructured":"Thomas S. (1995) The OP-TIM \u2013 a better PG-TIM. Technical report NOTTCS-TR-95-7, Department of Computer Science, University of Nottingham, UK."}],"container-title":["Journal of Functional Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.cambridge.org\/core\/services\/aop-cambridge-core\/content\/view\/S0956796800001891","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,4,22]],"date-time":"2026-04-22T20:18:13Z","timestamp":1776889093000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S0956796800001891\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1996,7]]},"references-count":59,"journal-issue":{"issue":"4","published-print":{"date-parts":[[1996,7]]}},"alternative-id":["S0956796800001891"],"URL":"https:\/\/doi.org\/10.1017\/s0956796800001891","relation":{},"ISSN":["0956-7968","1469-7653"],"issn-type":[{"value":"0956-7968","type":"print"},{"value":"1469-7653","type":"electronic"}],"subject":[],"published":{"date-parts":[[1996,7]]}}}