************** literature on version arrays ************************ @article(AHN1988, author = "Annika Aasa and Sören Holmström and Christina Nilsson", title = "An Efficiency Comparison of Some Representations of Purely Functional Arrays", journal = "BIT", volume = 28, number = 3, year = 1988, pages = "490--503", keywords = {array}) @inproceedings(Holmstrom1983, author = "Sören Holmström", title = "How to Handle Large Data Structures in Functional Languages", booktitle = "Proceedings of the SERC/Chalmers Workshop on Declarative Programming, University College, London", year = 1983, keywords ={array}) @techreport(Hughes1985, author = "John Hughes", title = "An Efficient Implementation of Purely Functional Arrays", institution = "Dept. of Computer Sciences, Chalmers University of Technology, Göteborg", year = 1985, keywords ={array}) @inproceedings(DriscollSarnakSleatorTarjan1986, author = "J. R. Driscoll and N. Sarnak and D. D. Sleator and R. E. Tarjan", title = "Making Data Structures Persistent", booktitle = "Proceedings of the Eighteenth ACM Symposium on Theory of Computing", month = may, year = 1986, pages = "109--121", keywords = {array}) @Article{Tarjan1975, author = "Robert E. Tarjan", title = "On the Efficiency of a Good but not Linear Set Merging Algorithm", journal = jacm, year = 1975, volume = 22, number = 2, pages = "215-225", annote = "inverse of Ackermann, analysis of union-find w path compression" } @INPROCEEDINGS{Morrisett1993, CROSSREF = {SIPL1993}, AUTHOR = {J. Gregory Morrisett}, TITLE = {Generalizing First-Class Stores}, YEAR = 1993, PAGES = {73-87}, keywords = {array} } @Misc{Reflection96-whatis, key = "Reflection96-whatis", author = "Gregor Kiczales", title = "Welcome to Reflection", howpublished = "URL: http://www.parc.xerox.com/spl/projects/reflection96/overview.html", year = 1996, month = apr } @TECHREPORT{HarperMorrisett1994, AUTHOR = {Robert Harper and Greg Morrisett}, TITLE = {Compiling with Non-Parametric Polymorphism}, INSTITUTION = {Carnegie Mellon University}, YEAR = 1994, NUMBER = {CMU-CS-94-122}, ADDRESS = {Pittsburgh, PA 15213}, keywords = {boxing} } @INPROCEEDINGS{HarperMorrisett1995, CROSSREF = {POPL1995}, AUTHOR = {Robert Harper and Greg Morrisett}, TITLE = {Compiling Polymorphism Using Intensional Type Analysis}, YEAR = 1995, PAGES = {130-141} } @INPROCEEDINGS{MorrisettFelleisenHarper1995, CROSSREF = {FPCA1995}, AUTHOR = {Greg Morrisett and Matthias Felleisen and Robert Harper}, TITLE = {Abstract Models of Memory Management}, YEAR = 1995, PAGES = {66-77} } @InProceedings{JagannathanWeeks1995, author = "Suresh Jagannathan and Stephen Weeks", title = "A Unified Treatment of Flow Analysis in Higher-Order Languages", crossref = "POPL1995", pages = "393-407" } @Article{CejtinJagannathanKelsey1995, author = "Henry Cejtin and Suresh Jagannathan and Richard Kelsey", title = "Higher-Order Distributed Objects", journal = toplas, volume = 17, number = 5, year = 1995, month = sep, } @Article{Jagannathan1994-lasc, author = "Suresh Jagannathan", title = "{TS/Scheme}: Distributed Data Structures in {Lisp}", journal = lasc, year = 1994, volume = 7, pages = "283-305" } @Article{Jagannathan1994-toplas, author = "Suresh Jagannathan", title = "Metalevel Building Blocks for Modular Systems", journal = TOPLAS, volume = "16", number = "3", pages = "456--492", month = may, year = "1994", CODEN = "ATPSDT", ISSN = "0164-0925", bibdate = "Fri Jan 5 07:58:42 MST 1996", URL = "http://www.acm.org/pubs/toc/Abstracts/0164-0925/177578.html", abstract = "The formal definition of any namespace device found in a programming language can be given in terms of transformations on a semantic environment. It is worthwhile, therefore, to consider the implications of incorporating environments as bona fide data objects in a programming system.\par In this article, we propose a treatment of environments and the mechanism by which they are reified and manipulated, that addresses these concerns. The language described below (Rascal) permits environments to be reified into data structures, and data structures to be reflected into environments, but gives users great flexibility to constrain the extent and scope of these processes. We argue that the techniques and operators developed define a cohesive basis for building large-scale modular systems using reflective programming techniques.", acknowledgement = ack-nhfb # " and " # ack-pb, keywords = "languages", subject = "{\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language Constructs and Features. {\bf F.3.2}: Theory of Computation, LOGICS AND MEANINGS OF PROGRAMS, Semantics of Programming Languages, Denotational semantics.", } @inproceedings(JohnsonDuggan1988, author = "G. F. Johnson and Dominic Duggan", title = "Stores and Partial Continuations as First-Class Objects in a Language and its Environment", CROSSREF = {POPL1988}, pages = "158--168", keywords = {array}) @inproceedings{Cohen1984, AUTHOR = "Cohen, S.", BOOKTITLE = "Proc. Conf. on Fifth Generation Computer Systems", PAGES = "265-274", TITLE = "Multi-version structures in {Prolog}", YEAR = "1984", keywords = {array}} @article{Baker1978, author = {Henry G. {Baker, Jr.}}, title = {Shallow Binding in {Lisp} 1.5}, journal = CACM, year = {1978}, volume = {21}, number = {7}, pages = {565--569}, month = jul, note = {}, mynote = {}, issn = {}, keywords = {array} } @article{Baker1991, author = {Henry G. Baker}, title = {Shallow Binding Makes Functional Arrays Fast}, journal = notices, year = {1991}, volume = {26}, number = {8}, pages = {145--147}, month = aug, note = {}, mynote = {}, issn = {0362-1340}, keywords = {array} } @inproceedings{Chuang1992, author = {{Tyng-Ruey} Chuang}, title = {Fully Persistent Arrays for Efficient Incremental Updates and Voluminous Reads}, booktitle = {4th European Symposium on Programming}, year = {1992}, editor = {Bernd {Krieg-Brückner}}, pages = {110--129}, organization = {Rennes, France}, publisher = SP, address = {}, month = feb, note = {Lecture Notes in Computer Science, Volume 582}, mynote = {}, isbn = {}, keywords = {array} } ***************** END literature on version arrays *********************** ******************** literature on applications ******************** @Article{YoungBoebertKain1985, author = {W. D. Young and W. E. Boebert and R. Y. Kain}, title = {Proving a Computer System Secure}, journal = {Scientific Honeyweller}, year = 1985, volume = 6, number = 2, month = {jul}, pages = {18--27}, note = {Reprinted in Tutorial: Computer and Network Security, M. D. Abrams and H. J. Podell, editors, IEEE Computer Society Press, 1987, pp. 142--157} } @MANUAL{SoftwareAG, TITLE = {Natural Expert Reference Manual, Version~1.1.3}, ORGANIZATION = {Software AG}, YEAR = 1990, KEYWORDS = {application, database} } @PHDTHESIS{Trinder1989, AUTHOR = {Phil W. Trinder}, TITLE = {A Functional Database}, SCHOOL = {Oxford University}, YEAR = 1989, ADDRESS = {Programming Research Group, 8--11 Keeble Road, Oxford OX1 3QD, England}, MONTH = dec, NOTE = {Technical Monograph PRG-82}, KEYWORDS = {application, database} } @ARTICLE{AugustssonJohnsson1989, oldkey = {AJ1989}, AUTHOR = {Lennart Augustsson and Thomas Johnsson}, TITLE = {The {Chalmers} Lazy-{ML} Compiler}, JOURNAL = tcj, YEAR = 1989, VOLUME = {32}, NUMBER = {2}, PAGES = {127-141}, KEYWORDS = {application, compiler} } @INPROCEEDINGS{PeytonJonesHallHammondPartainWadler1993, OLDKEY = {PHHPW1993}, BOOKTITLE = {Proceedings of the UK Joint Framework for Information Technology (JFIT) Technical Conference}, AUTHOR = {Simon L {Peyton Jones} and Cordelia Hall and Kevin Hammond and Will Partain and Philip Wadler}, TITLE = {The {Glasgow} {Haskell} Compiler: a Technical Overview}, YEAR = 1993, ADDRESS = {Keele}, KEYWORDS = {application, compiler} } @TechReport{TarditiAcharyaLee1990, author = "David Tarditi and A. Acharya and Peter Lee", title = "No assembly required: compiling standard {ML} to {C}.", institution = "School of Computer Science, Carnegie Mellon University", number = "CMU-CS-90-187", month = nov, year = "1990", keywords = "standard, ML, SML, C, CC, functional, applicative, programming language, MLtoC, SMLtoC, implementation, compile, compiler, translation, intermediate, CMU, TR-90-187, TR187, TR 187", abstract = "Translate SML to C. Claim preserve tail recursive properties and code a factor of 2 slower than best native code compiler LA got a copy from Roland Yap.", } @INPROCEEDINGS{AppelMacQueen1987, CROSSREF = {FPCA1987}, AUTHOR = {Andrew W. Appel and David B. MacQueen}, TITLE = {A {Standard} {ML} Compiler}, YEAR = 1987, PAGES = {301-324}, KEYWORDS = {application, compiler} } @InProceedings{AppelMacQueen1991, author = {Andrew W. Appel and David B. MacQueen}, title = "{Standard} {ML} of {New} {Jersey}", crossref = "PLILP1991", pages = "1-13" } @INPROCEEDINGS{GeorgeGuillameReppy1994, CROSSREF = {CC1994}, AUTHOR = {Lal George and Florent Guillame and John H. Reppy}, TITLE = {A Portable and Optimizing Back End for the {SML/NJ} Compiler}, YEAR = 1994, PAGES = {83-97} } @INPROCEEDINGS{DiwanTarditiMoss1994, CROSSREF = {POPL1994}, AUTHOR = {Amer Diwan and David Tarditi and Eliot Moss}, TITLE = {Memory Subsystem Performance of Programs Using Copying Garbage Collection}, YEAR = 1994, PAGES = {1-14} } @INPROCEEDINGS{GarrigueAitKaci1994, CROSSREF = {POPL1994}, AUTHOR = {Jaques Garrigue and Hassan {Aït Kaci}}, TITLE = {The Types Polymorphic Label-Selective $\lambda$-Calculus}, YEAR = 1994, PAGES = {35-47} } @INPROCEEDINGS{Odersky1994, CROSSREF = {POPL1994}, AUTHOR = {Martin Odersky}, TITLE = {A Functional Theory of Local Names}, YEAR = 1994, PAGES = {48-59} } @INPROCEEDINGS{Lescanne1994, CROSSREF = {POPL1994}, AUTHOR = {Pierre Lescanne}, TITLE = {From $\lambda\sigma$ to $\lambda\upsilon$ a Journey Through Calculi of Explicit Substitution}, YEAR = 1994, PAGES = {60-69} } @INPROCEEDINGS{TofteTalpin1994, CROSSREF = {POPL1994}, AUTHOR = {Mads Tofte and Jean-Pierre Talpin}, TITLE = {Implementation of the Typed Call-by-Value $\lambda$-Calculus Using a Stack of Regions}, YEAR = 1994, PAGES = {188-201} } @INPROCEEDINGS{HankinLeMetayer1994, CROSSREF = {POPL1994}, AUTHOR = {Chris Hankin and Daniel {Le Metay{\'e}r}}, TITLE = {Deriving Algorithms From Type Inference Systems: Application to Strictness Analysis}, YEAR = 1994, PAGES = {202-212} } @InCollection{MartinLoef1975, author = "Per Martin-Löf", title = "An Intuitionistic Theory of Types: Predicative Part", editor = "H. E. Rose and J. C. Shepherdson", pages = "73-118", booktitle = "Logic Colloquium '73", year = 1975, publisher = "North Holland" } @Unpublished{Sperber1996-dagstuhl, author = "Michael Sperber", title = "Self-Applicable Online Partial Evaluation", note = "Submitted for publication", year = 1995, month = dec } @Unpublished{Sperber1994, author = "Michael Sperber", title = "Attribute-Directed Functional {LR} Parsing", note = "Unpublished manuscript", year = 1994, month = oct } @MastersThesis{Sperber1994-diplom, author = "Michael Sperber", title = "{MØRK}: a Generator for Preprocessors", school = "Universität Tübingen", year = 1994, month = mar, note = "Available through URL \texttt{http://www-pu.information.uni-tuebingen.de/users/sperber/mork.ps.gz}" } @article{deRemerPennello1982, title="Efficient Computation of {LALR}(1) Look-Ahead Sets", author="Frank DeRemer and Thomas Pennello", pages="615--649", journal=toplas, year=1982, month=oct, volume=4, number=4 } @PhDThesis{Joergensen1995, author = "Jesper Jørgensen", title = "Boxing Analysis for $F_2$", school = "DIKU, University of Copenhagen", year = 1995, month = Apr } @INPROCEEDINGS{HengleinJoerensen1994, CROSSREF = {POPL1994}, AUTHOR = {Fritz Henglein and Jesper Jørgensen}, TITLE = {Formally Optimal Boxing}, YEAR = 1994, PAGES = {213-226}, KEYWORDS = {boxing} } @MastersThesis{Thorn1995, author = "Tommy Thorn", title = "A Symbolic Approach to Binding-Time Analysis", school = "Aarhus University, Computer Science Department", year = 1995, url = "ftp://ftp.daimi.aau.dk/..." } @MASTERSTHESIS{Poulsen1993, AUTHOR = {Eigil Rosager Poulsen}, TITLE = {Representation Analysis for Efficient Implementation of Polymorphism}, SCHOOL = {Department of Computer Science (DIKU), University of Copenhagen}, YEAR = 1993, MONTH = apr } @INPROCEEDINGS{AntoyEchahedHanus1994, CROSSREF = {POPL1994}, AUTHOR = {Sergio Antoy and Rachid Echahed and Michael Hanus}, TITLE = {A Needed Narrowing Strategy}, YEAR = 1994, PAGES = {268-279} } @INPROCEEDINGS{BoylandGraham1994, CROSSREF = {POPL1994}, AUTHOR = {John Boyland and Susan Graham}, TITLE = {Composing Tree Attributions}, YEAR = 1994, PAGES = {375-388} } @INPROCEEDINGS{WandSteckler1994, CROSSREF = {POPL1994}, AUTHOR = {Mitchell Wand and Paul Steckler}, TITLE = {Selective and Lightweight Closure Conversion}, YEAR = 1994, PAGES = {435-445} } @INPROCEEDINGS{Filinski1994, CROSSREF = {POPL1994}, AUTHOR = {Andrzej Filinski}, TITLE = {Representing Monads}, YEAR = 1994, PAGES = {446-457} } @INPROCEEDINGS{HatcliffDanvy1994, CROSSREF = {POPL1994}, AUTHOR = {John Hatcliff and Olivier Danvy}, TITLE = {A Generic Account of Continuation-Passing Styles}, YEAR = 1994, PAGES = {458-471} } @InProceedings{Hatcliff1995, author = "John Hatcliff", title = "Mechanically Verifying the Correctness of an Offline Partial Evaluator", crossref = "PLILP1995", pages = "279-298", annote = "employs ELF" } @InProceedings{HatcliffDanvy1995-ldpl, author = "John Hatcliff and Olivier Danvy", title = "A Computational Formalization for Partial Evaluation", booktitle = "Workshop on Logic, Domains, and Programming Languages (LDPL'95)", year = 1995, address = "Darmstadt, Germany", month = jun, note = "Superseded by \cite{HatcliffDanvy1996}" } @Article{HatcliffDanvy1996, author = {John Hatcliff and Olivier Danvy}, title = "A Computational Formalization for Partial Evaluation", journal = mscs, year = 1997, note = "To appear" } @Article{DanvyHatcliff1993, author = "Olivier Danvy and John Hatcliff", title = "CPS Transformation after Strictness Analysis", journal = loplas, year = 1993, volume = 1, number = 3, pages = "195-212", url = "ftp://ftp.daimi.aau.dk/pub/danvy/Papers/danvy-hatcliff-loplas93.ps.gz" } @InProceedings{DanvyHatcliff1993-mfps, author = "Olivier Danvy and John Hatcliff", title = "On the Transformation between Direct and Continuation Semantics", crossref = "MFPS1993", pages = "627-638", url = "ftp://ftp.daimi.aau.dk/pub/danvy/Papers/danvy-hatcliff-wsa92.ps.gz" } @InProceedings{DanvyHatcliff1992, author = "Olivier Danvy and John Hatcliff", title = "Thunks (continued)", crossref = "WSA1992", pages = "3-11" } @InProceedings{BartheHatcliffSoerensen1997-plilp, author = "Gilles Barthe and John Hatcliff and Morten Heine Sørensen", title = "Reflections on Reflections", crossref = "PLILP1997", pages = "To appear" } @InProceedings{BartheHatcliffSoerensen1997-mfps, author = "Gilles Barthe and John Hatcliff and Morten Heine Sørensen", title = "A Notion of Classical Pure Type System", crossref = "MFPS1997" } @InProceedings{BartheHatcliffSoerensen1997-cw, author = "Gilles Barthe and John Hatcliff and Morten Heine S{\o}rensen", title = "{CPS} Translations and Applications: the Cube and Beyond", crossref = "CW1997", pages = "{4-1}--{4-31}" } @Inproceedings{LawallDanvy1994, author = "Julia Lawall and Olivier Danvy", title = "Continuation-Based Partial Evaluation", crossref = {LFP1994}, pages = "227-238" } @InProceedings{Danvy1996-popl, author = "Olivier Danvy", title = "Type-Directed Partial Evaluation", crossref = "POPL1996", pages = "242-257" } @TechReport{DanvyVestergaard1996, author = "Olivier Danvy and Rene Vestergaard", title = "Semantics-Based Compiling: A Case Study in Type-Directed Partial Evaluation", institution = "BRICS", year = 1996, number = "BRICS-RS-96-13", month = may } @InProceedings{DanvyVestergaard1996-plilp, author = "Olivier Danvy and Rene Vestergaard", title = "Semantics-Based Compiling: A Case Study in Type-Directed Partial Evaluation", crossref = "PLILP1996", pages = "182-197" } @InProceedings{DaviesPfenning1996, author = "Rowan Davies and Frank Pfenning", title = "A Modal Analysis of Staged Computation", crossref = "POPL1996", pages = "258-270" } @InProceedings{Davies1996, title={A Temporal-Logic Approach to Binding-Time Analysis}, author={Rowan Davies}, pages={184--195}, crossref={LICS1996}, source={ftp://theory.lcs.mit.edu/pub/meyer/lics.bib} } @InProceedings{MinamideMorrisettHarper1996, author = "Yasuhiko Minamide and Greg Morrisett and Robert Harper", title = "Typed Closure Conversion", crossref = "POPL1996", pages = "271-283" } @Article{HarperLillibridge1993-lasc, author = "Robert Harper and Mark Lillibridge", title = "Polymorphic type assignment and CPS conversion", journal = LASC, year = 1993, volume = 6, number = 4, pages = "361-380" } @InProceedings{HarperLillibridge1993, author = "Robert Harper and Mark Lillibridge", title = "Explicit polymorphism and CPS conversion", crossref = "POPL1993", pages = "206-219" } @InProceedings{HarperLillibridge1994, author = "Robert Harper and Mark Lillibridge", title = "A Type-Theoretic Approach to Higher-Order Modules with Sharing", crossref = "POPL1994", pages = "123-137" } @Unpublished{LawallDanvy1995, author = "Julia Lawall and Olivier Danvy", title = "Continuation-Based Partial Evaluation", note = "Extended version of \cite{LawallDanvy1994} from ftp://ftp.brics.dk/pub/danvy/Papers/lawall-danvy-lfp94-extended.ps.gz", year = 1995, month = jan } @TechReport{DanvyKoslowskiMalmkjaer1991, author = "Olivier Danvy and Jürgen Koslowski and Karoline Malmkjaer", title = "Compiling Monads", institution = "Department of Computing and Inforamtion Sciences, Kansas State University", year = 1991, number = "CIS-92-03", month = dec } @InProceedings{DanvyFilinski1990, author = "Olivier Danvy and Andrzej Filinski", title = "Abstracting Control", crossref = "LFP1990", pages = "151-160" } @INPROCEEDINGS{Steele1994, CROSSREF = {POPL1994}, AUTHOR = {Guy L. {Steele Jr.}}, TITLE = {Building Interpreters by Composing Monads}, YEAR = 1994, PAGES = {472-492} } @INPROCEEDINGS{Fradet1994, CROSSREF = {ESOP1994}, AUTHOR = {Pascal Fradet}, TITLE = {Compilation of Head and Strong Reduction}, YEAR = 1994, PAGES = {211-224}, KEYWORDS = {continuations} } @INPROCEEDINGS{GiegerichKurtz1994, CROSSREF = {ESOP1994}, AUTHOR = {Robert Giegerich and Stefan Kurtz}, TITLE = {Suffix Trees in the Functional Programming Paradigm}, YEAR = 1994, PAGES = {225-240}, KEYWORDS = {application} } @Article{GiegerichKurtz1995, author = {Robert Giegerich and Stefan Kurtz}, title = "A Comparison of Imperative and Purely Functional Suffix Tree Constructions", journal = scp, year = 1995, volume = 25, pages = "187-218" } @INPROCEEDINGS{HallHammondPeytonJonesWadler1994, CROSSREF = {ESOP1994}, AUTHOR = {Cordelia Hall and Kevin Hammond and Simon {Peyton Jones} and Philip Wadler}, TITLE = {Type Classes in {Haskell}}, YEAR = 1994, PAGES = {241-256} } @INPROCEEDINGS{HankinLeMetayer1994-esop, CROSSREF = {ESOP1994}, AUTHOR = {Chris Hankin and Daniel {Le M{\'{e}}tayer}}, TITLE = {Lazy Type Inference for the Strictness Analysis of Lists}, YEAR = 1994, PAGES = {257-271} } @INPROCEEDINGS{Hanus1994-esop, CROSSREF = {ESOP1994}, AUTHOR = {Michael Hanus}, TITLE = {Lazy Unification with Simplification}, YEAR = 1994, PAGES = {272-286}, KEYWORDS = {narrowing} } @INPROCEEDINGS{Hanus1994-cc, CROSSREF = {CC1994}, AUTHOR = {Michael Hanus}, TITLE = {Towards the Global Optimization of Functional Logic Programs}, YEAR = 1994, PAGES = {68-82} } @INPROCEEDINGS{HogenLoogen1994, CROSSREF = {CC1994}, AUTHOR = {Guido Hogen and Rita Loogen}, TITLE = {Efficient Organization of Control Structures in Distributed Implementations}, YEAR = 1994, PAGES = {98-112} } @InProceedings{HengleinSands1995, author = "Fritc Henglein and David Sands", title = "A Semantic Model of Binding Times for Safe Partial Evaluation", crossref = "PLILP1995", pages = "299-320" } @InProceedings{NobleRunciman1995, author = "Rob Noble and Colin Runcimam", title = "Gadgets: Lazy Functional Components for Graphical User Interfaces", crossref = "PLILP1995", pages = "321-340" } @InProceedings{VullinghsTuijnmanSchulte1995, author = "Ton Vullinghs and Daniel Tuijnman and Wolfram Schulte", title = "Lightweight {GUI}s for Functional Programming", crossref = "PLILP1995", pages = "341-356" } @InProceedings{DussartHengleinMossin1995, author = {Dussart, Dirk and Henglein, Fritz and Mossin, Christian}, title = {Polymorphic Recursion and Subtype Qualifications: Polymorphic Binding-Time Analysis in Polynomial Time}, crossref = "SAS1995", pages = "118-136", keywords = {polymorphism, binding-time analysis, subtyping, qualified types, polymorphic recursion, Kleene-Mycroft Iteration}, abstract = {In a program analysis context we show how Mycroft's iterative method of computing principal types for a type system with polymorphic recursion can be generalized and adapted to work in a setting with subtyping. This does not only yield a proof of existence of \emph{principal types} (most general properties), but also an algorithm for computing them. The punch-line of the development is that a very simple modification of the basic algorithm reduces its computational complexity from exponential time to polynomial time relative to the size of the given, explicitly typed program. }, url = {ftp://ftp.diku.dk/diku/semantics/papers/D-243.dvi.gz} } @InProceedings{DussartHeldalHughes1997, author = "Dirk Dussart and Rogardt Heldal and John Hughes", title = "Module-Sensitive Program Specialisation", crossref = "PLDI1997" } @INPROCEEDINGS{HengleinMossin1994-esop, CROSSREF = {ESOP1994}, AUTHOR = {Fritz Henglein and Christian Mossin}, TITLE = {Polymorphic Binding-Time Analysis}, YEAR = 1994, PAGES = {287-301} } @INPROCEEDINGS{Mossin1993, CROSSREF = {PEPM1993}, AUTHOR = {Christian Mossin}, TITLE = {Partial Evaluation of General Parsers}, YEAR = 1993, PAGES = {13-21} } @techreport{Dybkjaer1985, AUTHOR = {Dybkjær, H.}, TITLE = {Parsers and partial evaluation: An experiment}, INSTITUTION = {DIKU, University of Copenhagen, Denmark}, YEAR = 1985, TYPE = {Student Report}, NUMBER = {85-7-15}, MONTH = jul } @INPROCEEDINGS{BaierGlueckZoechling1994, CROSSREF = {PEPM1994}, AUTHOR = {Romana Baier and Robert Gl{\"{u}}ck and Robert Z{\"{o}}chling}, TITLE = {Partial Evaluation of Numerical Programs in {Fortran}}, YEAR = 1994, PAGES = {119-132} } @InProceedings{GlueckNakashigeZoechling1995, AUTHOR = {Gl{\"u}ck, Robert and Nakashige, Ryo and Z{\"o}chling, Robert}, YEAR = {1995}, TITLE = {Binding-Time Analysis Applied to Mathematical Algorithms}, BOOKTITLE = {System Modelling and Optimization}, editor = {Dole\v{z}al, J. and Fidler, J.}, publisher = {Chapman \& Hall}, organization = {}, address = {}, series = {}, volume = {}, pages = {137--146}, month = {}, keywords = {partial evaluation, numerical algorithms, scientific computing, Fortran}, summary = {This paper shows how a binding-time analysis can be used to identify potential sources for specialization in mathematical algorithms. The method is surprisingly simple and effective. To demonstrate the effectiveness of this approach we used an automatic partial evaluator for Fortran that we developed. Results for five well-known algorithms show that some remarkable speedup factors can be obtained on a uniprocessor architecture (Romberg integration, cubic splines interpolation, partial differential equations, fast Fourier transformation, Chebyshev approximation)}, supersedes = {}, SEMNO = {D-244}, PUF = {Artikel i proceedings (med censur)}, ID = {KonR} } @INPROCEEDINGS{GlueckKlimov1995, BOOKTITLE = {14th International Congress on Cybernetics}, AUTHOR = {Robert Glück and Andrei Klimov}, TITLE = {Reduction of Language Hierarchies}, YEAR = 1995, ADDRESS = {Namur, Belgium}, MONTH = aug } @TECHREPORT{BlackConselPuWalpole1995, AUTHOR = {Andrew Black and Charles Consel and Calton Pu and Jonathan Walpole and Crispin Cowan and Tito Autrey and Jon Inouye and Lakshmi Kethana and Ke Zhang}, TITLE = {Dream and Reality: Incremental Specialization in a Commercial Operating System}, INSTITUTION = {Dept.\ of Computer Science and Engineering, Oregon Graduate Institute of Science \& Technology}, YEAR = 1995, MONTH = mar } @TECHREPORT{ConselNoel1995, AUTHOR = {Charles Consel and Fran{\c{c}}ois Noël}, TITLE = {A General Approach for Run-Time Specialization and its Application to {C}}, INSTITUTION = {INRIA/IRISA}, YEAR = 1995, NUMBER = {946}, MONTH = jul } @TechReport{MouraConsel1996, author = "B\`{a}rbara Moura and Charles Consel", title = "The Functional Approach to Analyses and Transformations of Imperative Programs", institution = "University of Rennes/IRISA", year = 1996 } @TechReport{MouraConselLawall1996, author = {Moura, B\`{a}rbara and Consel, Charles and Lawall, Julia}, title = {Bridging the Gap Between Functional and Imperative Languages}, institution = {Irisa}, year = 1996, type = {Publication interne}, number = 1027, address = {Rennes, France}, month = jul } @InProceedings{ConselNoel1996, author = {Charles Consel and Francois Noël}, title = "A General Approach for Run-Time Specialization and its Application to {C}", crossref = "POPL1996", pages = "145-156" } @InProceedings{EnglerHsiehKaashoek1996, author = "Dawson R. Engler and Wilson C. Hsieh and M. Frans Kaashoek", title = "`C: A Language for High-Level, Efficient, and Machine-Independent Dynamic Code Generation", crossref = "POPL1996", pages = "131-144" } @InProceedings{ProebstingWatterson1996, author = "Todd Proebsting and Scott A. Watterson", title = "Filter Fusion", crossref = "POPL1996", pages = "119-130" } @TECHREPORT{ SussmanSteele1975, author = {Gerald Jay Sussman and Guy Lewis Steele Jr.}, title = {Scheme: an Interpreter for Extended Lambda Calculus}, year = 1975, month = dec, number = 349, type = {MIT AI Memo}, institution = {Massachusetts Institute of Technology}, address = {Cambridge, Mass.} } @MISC{IEEEScheme, AUTHOR = {{Institute of Electrical and Electronic Engineers, Inc.}}, TITLE = {{IEEE} Standard for the {Scheme} Programming Language}, HOWPUBLISHED = {IEEE Std 1178-1990, New York, NY}, YEAR = 1991 } @TECHREPORT{ClingerRees1991, AUTHOR = {William Clinger and Jonathan Rees}, TITLE = {Revised$^4$ Report on the Algorithmic Language Scheme}, INSTITUTION = {MIT}, TYPE = {AI Memo}, NUMBER = {848b}, YEAR = 1991, note = {ftp://swiss-ftp.ai.mit.edu/pub/scm/r4rs.texi} } @ARTICLE{KranzKelseyReesHudakPhilbinAdams1986, OLDKEY = {ORBIT}, AUTHOR = {D. Kranz and R. Kelsey and J. Rees and P. Hudak and J. Philbin and N. Adams}, TITLE = {{ORBIT}: An Optimizing Compiler for {Scheme}}, JOURNAL = notices, YEAR = 1986, VOLUME = {21}, NUMBER = {7}, PAGES = {219-233}, MONTH = jul, NOTE = {Proc. Sigplan '86 Symp. on Compiler Construction} } @article(Dickey1992, author = {Ken Dickey}, title = {The Scheme Programming Language}, year = 1992, month = jun, journal = {Computer Language} ) @Article{Rees1992, author = "Jonathan Rees", title = "The {Scheme} of Things: The {June} 1992 Meeting", journal = "Lisp Pointers", year = 1992, volume = "V", number = 4, month = oct, annote = "contains proposal for eval" } @ARTICLE{KelseyRees1994, AUTHOR = {Richard A. Kelsey and Jonathan Rees}, TITLE = {A Tractable {Scheme} Implementation}, JOURNAL = lasc, YEAR = 1994, VOLUME = {7}, NUMBER = {4}, PAGES = {315-335} } @PHDTHESIS{deNiel1993, AUTHOR = {Anne {de Niel}}, TITLE = {Self-Applicable Partial Evaluation of Polymorphically Typed Functional Languages}, SCHOOL = {Katholieke Universiteit Leuven}, YEAR = 1993, ADDRESS = {Leuven, Belgium}, fullADDRESS = {Dept.\ of Computer Science, Celestijnenlaan 200A, 3001 Leuven, Belgium}, MONTH = jan } @INPROCEEDINGS{MueckStreicherLock1994, CROSSREF = {ESOP1994}, AUTHOR = {Andi Mück and Thomas Streicher and Hendrik C. R. Lock}, TITLE = {A Tiny Constraint Functional Logic Language and its Continuation Semantics}, YEAR = 1994, PAGES = {439-453} } @InProceedings{Jeffrey1995, author = "Alan Jeffrey", title = "A Fully Abstract Semantics for a Nondeterministic Functional Language with Monadic Types", crossref = "MFPS1995" } @InProceedings{Jones1995-mfps, author = "Neil D. Jones", title = "Computability and COmplexity from a Programming Perspecitve", crossref = "MFPS1995" } @INPROCEEDINGS{OHearnRiecke1994, CROSSREF = {ESOP1994}, AUTHOR = {Patrick W. O'Hearn and Jon G. Riecke}, TITLE = {Fully Abstract Translations and Parametric Polymorphism}, YEAR = 1994, PAGES = {454-468} } @Unpublished{Jones1996-psi, author = "Arne John Glenstrup and Neil D. Jones", title = "BTA Algorithms to Ensure Termination of Offline Partial Evaluation", note = "Superseded by \cite{GlenstrupJones1996}.", year = 1996 } @InProceedings{GlenstrupJones1996, author = "Arne John Glenstrup and Neil D. Jones", title = "BTA Algorithms to Ensure Termination of Offline Partial Evaluation", crossref = "PSI1996", pages = "273-284" } @InProceedings{AndersenHolst1996, author = "Peter Holst Andersen and Carsten Kehler Holst", title = "Termination Analysis for Offline Partial Evaluation of a Higher Order Functional Language", crossref = "SAS1996", pages = "67-82" } @INPROCEEDINGS{SoerensenGlueckJones1994, CROSSREF = {ESOP1994}, AUTHOR = {Morten Heine Sørensen and Robert Glück and Neil D. Jones}, TITLE = {Towards Unifying Partial Evaluation, Deforestation, Supercompilation, and {GPC}}, YEAR = 1994, PAGES = {485-500} } @INPROCEEDINGS{Soerensen1994, CROSSREF = {CAAP1994}, AUTHOR = {Morten Heine Sørensen}, TITLE = {A Grammar-based Data-flow Analysis to Stop Deforestation}, YEAR = 1994, PAGES = {335-351} } @InProceedings{Seidl1996-esop, author = "Helmut Seidl", title = "Integer Constraints to Stop Deforestation", crossref = "ESOP1996" } @InProceedings{Hamilton1996, author = "Geoffrey W. Hamilton", title = "Higher Order Deforestation", crossref = "PLILP1996", pages = "213-227" } @InProceedings{Seidl1994-icalp, author = "Helmut Seidl", title = "Least Solutions of Equations over {$\mathcal{N}$}", crossref = "ICALP1994", pages = "400-411" } @MASTERSTHESIS{Soerensen1994-thesis, AUTHOR = {Morten Heine Sørensen}, TITLE = {Turchin's Supercompiler Revisited}, SCHOOL = {DIKU, University of Copenhagen}, YEAR = 1994, ANNOTE = {Dept.\ of Computer Science, Universitetsparken 1, DK-2100 København Ø}, MONTH = mar } @inproceedings{NielsenSoerensen1995-plilp, AUTHOR = {Kristian Nielsen and Morten Heine Sørensen}, TITLE = {Deforestation, Partial Evaluation, and Evaluation Orders}, CROSSREF = {PLILP1995}, YEAR = 1995 } @InProceedings{NielsenSoerensen1995-sas, author = {Kristian Nielsen and Morten Heine Sørensen}, title = "Call-By-Name {CPS}-Translation as a Binding-Time Improvement", crossref = "SAS1995", pages = "296-313" } @InProceedings{SoerensenGlueck1995, author = "Morten Heine Sørensen and Robert Glück", title = "An Algorithm of Generalization in Positive Supercompilation", crossref = "ILPS1995" } @TECHREPORT{SheardFegaras1994, AUTHOR = {Tim Sheard and Leonidas Fegaras}, TITLE = {Optimizing Algebraic Programs}, INSTITUTION = {Oregon Graduate Institute of Science {\&} Technology}, YEAR = 1994, NUMBER = {94-004} } @INPROCEEDINGS{Carlsson1993, CROSSREF = {FPCA1993}, AUTHOR = {Magnus Carlsson and Thomas Hallgren}, TITLE = {{FUDGETS}: A Graphical Interface in a Lazy Functional Language}, YEAR = 1993, PAGES = {321-330}, KEYWORDS = {application, graphics, user interface} } @InProceedings{Riecke1993-fpca, author = "John Riecke", title = "Delimiting the Scope of Effects", crossref = "FPCA1993", pages = "146-155" } @InProceedings{RieckeViswanathan1995, author = "John Riecke and Ramesh Viswanathan", title = "Isolating Side Effects in Sequential Languages", crossref = "POPL1995", pages = "1-12" } @INPROCEEDINGS{Bjoerner1994, CROSSREF = {ML1994}, AUTHOR = {Nikolaj S. Bjørner}, TITLE = {Minimal Typing Derivations}, YEAR = 1994, PAGES = {120-126} } @INPROCEEDINGS{Chuang1993, CROSSREF = {FPCA1993}, AUTHOR = {Tyng-Ruey Chuang and Benjamin Goldberg}, TITLE = {Real-Time Deques, Multihead Turing machines, and Purely Functional Programming}, YEAR = 1993, PAGES = {289-298} } @INPROCEEDINGS{Page1993, CROSSREF = {FPCA1993}, AUTHOR = {Rex L. Page and Brian D. Moe}, TITLE = {Experience with a Large Scientific Application in a Functional Language}, YEAR = 1993, PAGES = {3-11}, KEYWORDS = {application, numerical} } @INPROCEEDINGS{GrantSharpWebsterZhang1993, CROSSREF = {FPCA1993}, AUTHOR = {P. W. Grant and J. A. Sharp and M. F. Webster and X. Zhang}, TITLE = {Some Issues in a Functional Implementation of a Finite Element Algorithm}, YEAR = 1993, PAGES = {12-17}, KEYWORDS = {application, numerical} } @INPROCEEDINGS{Kozato1993, CROSSREF = {FPCA1993}, AUTHOR = {Y. Kozato and G. P. Otto}, TITLE = {Benchmarking Real-Life Image Processing Programs in Lazy Functional Languages}, YEAR = 1993, PAGES = {18-27}, KEYWORDS = {application, numerical} } @TECHREPORT{ConcurrentClean1992, AUTHOR = {Marko van Eekelen and Halbe Huitema and Eric Nöcker and Sjaak Smetsers and Rinus Plasmeijer}, TITLE = {{Concurrent Clean}, Language Manual --- Version 0.8}, INSTITUTION = {Department of Informatics, Katholieke Universiteit Nijmegen}, YEAR = 1992, NUMBER = {92-18}, MONTH = aug, KEYWORDS = {application, language} } @INCOLLECTION{Buneman1990, AUTHOR = "Peter Buneman", TITLE = "Functional programming and databases", CROSSREF = "YoP90", CHAPTER = "6", PAGES = "155-170", KEYWORDS = {application, databases} } @INPROCEEDINGS{Sanders1992, CROSSREF = {Glasgow1992}, AUTHOR = {Paul Sanders and Colin Runciman}, TITLE = {{LZW} Text Compression in {Haskell}}, YEAR = 1992, PAGES = {215-226}, KEYWORDS = {application, compression} } @INPROCEEDINGS{Sinclair1992, CROSSREF = {Glasgow1992}, AUTHOR = {Duncan C. Sinclair}, TITLE = {Graphical User Interfaces for {Haskell}}, YEAR = 1992, PAGES = {252-257}, KEYWORDS = {application, graphics, tcl} } @INPROCEEDINGS{Dwelly1989, CROSSREF = {FPCA1989}, AUTHOR = {Andrew Dwelly}, TITLE = {Functions and Dynamic User Interfaces}, YEAR = 1989, PAGES = {371-381}, KEYWORDS = {application, user interface} } @INPROCEEDINGS{Arya1989, CROSSREF = {FPCA1989}, AUTHOR = {Kavi Arya}, TITLE = {Processes in a Functional Animation System}, YEAR = 1989, PAGES = {382-395}, KEYWORDS = {application, graphics} } @INPROCEEDINGS{Hutton1989, CROSSREF = {Glasgow1989}, AUTHOR = {Graham Hutton}, TITLE = {Parsing Using Combinators}, YEAR = 1990, PAGES = {353-370}, KEYWORDS = {application, parsing} } @INPROCEEDINGS{AkerholtHammondPeytonJonesTrinder1992, CROSSREF = {Glasgow1991}, AUTHOR = {Gert Akerholt and Kevin Hammond and Simon L. {Peyton Jones} and Phil Trinder}, TITLE = {A Parallel Functional Database on {GRIP}}, YEAR = 1992, PAGES = {1-24}, KEYWORDS = {application, database} } @INPROCEEDINGS{Singh1992, CROSSREF = {Glasgow1991}, AUTHOR = {Satnam Singh}, TITLE = {Using {XView/X11} from {Miranda}}, YEAR = 1992, PAGES = {352-364}, KEYWORDS = {application, graphics} } @INPROCEEDINGS{PeytonJonesPartain1993, CROSSREF = {Glasgow}, AUTHOR = {Simon {Peyton Jones} and Will Partain}, TITLE = {Measuring the Effectiveness of a Simple Strictness Analyser}, YEAR = 1993, PAGES = {201-220} } @ARTICLE{FrostLaunchbury1989, AUTHOR = {Richard Frost and John Launchbury}, TITLE = {Constructing Natural Language Interpreters in a Lazy Functional Language}, JOURNAL = tcj, YEAR = 1989, VOLUME = {32}, NUMBER = {2}, PAGES = {108-121}, KEYWORDS = {application, user interface} } @PHDTHESIS{Joosten1989phd, AUTHOR = {Stef M. M. Joosten}, TITLE = {The Use of Functional Programming in Software Development}, SCHOOL = {University of Twente}, YEAR = 1989, ADDRESS = {NL}, ISBN = {ISBN 9-090-02729-7}, KEYWORDS = {application} } @TECHREPORT{Joosten1989, AUTHOR = {Stef M. M. Joosten}, TITLE = {Public Transport in {Frankfurt}: an Experiment in Functional Programming}, INSTITUTION = {University of Twente}, YEAR = 1989, NUMBER = {Staple/Twe/89}, NOTE = {STAPLE (ESPRIT 891)}, KEYWORDS = {application} } @UNPUBLISHED{Joosten1992, AUTHOR = {Stef M. M. Joosten}, TITLE = {Functional Programming, Prototypes and Specifications}, NOTE = {unpublished manuscript}, MONTH = jul, YEAR = 1992 } ******************** END literature on applications ******************** ******************** literature on types and type checking ******************** @ARTICLE{HarperMitchell1993, AUTHOR = {Robert Harper and John C. Mitchell}, TITLE = {On the Type Structure of Standard {ML}}, JOURNAL = toplas, YEAR = 1993, VOLUME = {15}, NUMBER = {2}, PAGES = {211-252}, MONTH = apr } @ARTICLE{Henglein1993, AUTHOR = {Fritz Henglein}, TITLE = {Type Inference with Polymorphic Recursion}, JOURNAL = toplas, YEAR = 1993, VOLUME = {15}, NUMBER = {2}, PAGES = {253-289}, MONTH = apr } @Article{Henglein1994-scp, author = {Fritz Henglein}, title = "Dynamic Typing: Syntax and Proof Theory", journal = scp, year = 1994, volume = 22, pages = "197-230" } @ARTICLE{KfouryTiurynUrzyczyn1993, AUTHOR = {A. F. Kfoury and J. Tiuryn and P. Urzyczyn}, TITLE = {Type Recursion in the Presence of Polymorphic Recursion}, JOURNAL = toplas, YEAR = 1993, VOLUME = {15}, NUMBER = {2}, PAGES = {290-311}, MONTH = apr } ******************** END literature on types and type checking ******************** @Article{deBruijn1972, author = "N. G. {de Bruijn}", journal = "Indag Math.", pages = "381--392", title = "Lambda Calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the {Church-Rosser} theorem", volume = "34(5)", year = "1972", annote = "\\ The author here introduces the well-known `de Bruijn indices'.", } @UNPUBLISHED{KuchenPlasmeijerStoltze1993, AUTHOR = {Herbert Kuchen and Rinus Plasmeijer and Holger Stoltze}, TITLE = {Efficient Distributed Memory Implementation of a Data Parallel Functional Language}, myNOTE = {unpublished manuscript from H.~Kuchen}, MONTH = nov, YEAR = 1993 } @INPROCEEDINGS{Bratvold1992, CROSSREF = {WIFPL1992}, AUTHOR = {Tore A. Bratvold}, TITLE = {Determining Useful Parallelism in Higher-Order Functions}, YEAR = 1992, PAGES = {213-226}, KEYWORDS = {parallel} } @INPROCEEDINGS{Bratvold1993, CROSSREF = {WIFPL1993}, AUTHOR = {Tore A. Bratvold}, TITLE = {A Skeleton-Based Parallelising Compiler for {ML}}, YEAR = 1993, PAGES = {23-34}, KEYWORDS = {parallel} } @TECHREPORT{Chan1992, AUTHOR = {Lawrence W. Chan}, TITLE = {Algorithmic Skeletons in {Concurrent ML}}, INSTITUTION = {Edinburgh Parallel Computing Centre}, YEAR = 1992, NUMBER = {EPCC-SS92-07}, MONTH = sep, KEYWORDS = {parallel} } @INPROCEEDINGS{Darlington1998, CROSSREF = {PARLE1993}, AUTHOR = {John Darlington}, TITLE = {Parallel Programming Using Skeleton Functions}, YEAR = 1993, PAGES = {x}, KEYWORDS = {parallel} } @INPROCEEDINGS{Kahn1987, CROSSREF = {STACS1987}, AUTHOR = {Gilles Kahn}, TITLE = {Natural Semantics}, YEAR = 1987, PAGES = {22-39} } @ARTICLE{Manna1972, AUTHOR = {Zohar Manna and S. Ness and Jean Vuillemin}, TITLE = {Inductive Methods for Proving Properties of Programs}, JOURNAL = notices, YEAR = 1972, VOLUME = {7}, NUMBER = {1}, PAGES = {27-50}, KEYWORDS = {admissible predicates} } @ARTICLE{MannaVuillemin1972, AUTHOR = {Zohar Manna and Jean Vuillemin}, TITLE = {Fixpoint Approach to the Theory of Computation}, JOURNAL = cacm, YEAR = 1972, VOLUME = {15}, PAGES = {528-536} } @Article{LassezNguyenSonenberg1982, author = "J.-L. Lassez and V. L. Nguyen and E. A. Sonenberg", title = "Fixed Point Theorems and Semantics: A Folk Tale", journal = ipl, year = 1982, volume = 14, number = 3, pages = "112-116" } @INPROCEEDINGS{Strachey1967, BOOKTITLE = {{NATO} Summer School in Programming}, AUTHOR = {Christopher Strachey}, TITLE = {Fundamental Concepts of Programming Languages}, YEAR = 1967, ADDRESS = {Copenhagen} } @UNPUBLISHED{LaunchburyPeytonJones1993:techreport, AUTHOR = {John Launchbury and Simon L. {Peyton Jones}}, TITLE = {Lazy Functional State Threads}, NOTE = {University of Glasgow, Department of Computer Science}, MONTH = nov, YEAR = 1993 } @INPROCEEDINGS{LaunchburyPeytonJones1994, CROSSREF = {PLDI1994}, AUTHOR = {John Launchbury and Simon L. {Peyton Jones}}, TITLE = {Lazy Functional State Threads}, YEAR = 1994, PAGES = {24-35} } @ARTICLE{LaunchburyPeytonJones1995, AUTHOR = {John Launchbury and Simon L. {Peyton Jones}}, TITLE = {State in {Haskell}}, JOURNAL = lasc, VOLUME = 8, NUMBER = 4, MONTH = dec, YEAR = 1995, PAGES = {293-341} } @UNPUBLISHED{KingLaunchbury1993, AUTHOR = {David King and John Launchbury}, TITLE = {Lazy Depth-First Search and Linear Graph Algorithms in {Haskell}}, NOTE = {University of Glasgow, Department of Computer Science}, MONTH = dec, YEAR = 1993 } @INPROCEEDINGS{king-dfs, author = "D. J. King and J. Launchbury", title = "Functional Graph Algorithms with Depth-First Search", booktitle = "Glasgow Workshop on Fuctional Programming", pages = "II 1-12", publisher = SP, source = "ftp://ftp.dcs.gla.ac.uk/pub/glasgow-fp/authors/David_King/linear-dfs.ps", month = jul, year = 1993 } @INPROCEEDINGS{KingLaunchbury1995, CROSSREF = {POPL1995}, AUTHOR = {David J. King and John Launchbury}, TITLE = {Structuring Depth-First Search Algorithms in Haskell}, YEAR = 1995 } @INPROCEEDINGS{LiangHudakJones1995, CROSSREF = {POPL1995}, AUTHOR = {Sheng Liang and Paul Hudak and Mark Jones}, TITLE = {Monad Transformers and Modular Interpreters}, YEAR = 1995, PAGES = {333-343} } @InProceedings{LiangHudak1996, author = {Sheng Liang and Paul Hudak}, title = "Modular Denotational Semantics for Compiler Construction", crossref = "ESOP1996", pages = "219-234", abstract = "We show the benfits of applying \emph{modular monadic semantics} to compiler construction. Modular monadic semantics allows us to define a language with a rich set of features from reusable building blocks, and use program transformation and equational reasoning to improve code. Compared to denotational semantics, reasoning in monadic style offers the added benefits of highly modularized proof and more widely applicable results. To demonstrate, we present an axiomatization of environments, and use it to prove the correctness of a well-known compilation technique. The monadic approach also facilitates generating code in various target languages with different sets of built-in features.", keywords = "denotational semantics, monads, compiler generation" } @UNPUBLISHED{Espinosa1994, AUTHOR = {David Espinosa}, TITLE = {Building Interpreters by Transforming Stratified Monads}, NOTE = {ftp://altdorf.ai.mit.edu/pub/dae}, MONTH = jun, YEAR = 1994 } @PhdThesis{Espinosa1995, author = {David Espinosa}, title = "Semantic Lego", school = "Columbia University", year = 1995 } @INPROCEEDINGS{Wadler1989free, CROSSREF = {FPCA1989}, AUTHOR = {Philip L. Wadler}, TITLE = {Theorems for free!}, YEAR = 1989, PAGES = {347-359} } @INPROCEEDINGS{Reynolds1983, AUTHOR= "John C. Reynolds", BOOKTITLE= "Information Processing '83", TITLE= "Types Abstraction and Parametric Polymorphism", YEAR= "1983", PUBLISHER= "North Holland", } @inproceedings{Reynolds1978, author = "Reynolds, John C.", title = "Syntactic Control of Interference", crossref = "POPL1978", year = 1978, pages = "39--46" } @inproceedings{Reynolds1989, author = "Reynolds, John C.", title = "Syntactic Control of Interference, Part 2", booktitle = "Automata, Languages and Programming", booksubtitle = "16th International Colloquium", editor = "Ausiello, Giorgio and Dezani-Ciancaglini, Mariangiola and Ronchi Della Rocca, Simona", series = "Lecture Notes in Computer Science", volume = "372", publisher = "Springer-Verlag, Berlin", year = "1989", address = "Stresa, Italy", dates = "July 11--15", pages = "704--722", checked = "18 July 1989"} @InProceedings{Reynolds1995, author = "Using Functor Categories to Generate Intermediate Code", title = "John C. Reynolds", crossref = "POPL1995", pages = "25-36" } @TechReport{TangTalpin1993, author = "Yan-Mei Tang and Jean-Pierre Talpin", title = "Effect Systems With Subtyping", institution = "CRI, Ecole des Mines de Paris", year = 1993 } @InProceedings{TangJouvelot1995, author = "Yan Mei Tang and Pierre Jouvelot", title = "Effect Systems with Subtyping", crossref = "PEPM1995", pages = "45-53" } @InProceedings{JouvelotGifford1991, author = "Pierre Jouvelot and David K. Gifford", title = "Algebraic Reconstruction of Types and Effects", crossref = "POPL1991", pages = "303-310" } @InProceedings{TangJouvelot1992, author = "Yan Mei Tang and Pierre Jouvelot", title = "Control-Flow Effects for Closure Analysis", number = "81-82", series = "Bigre numbers", pages = "313-321", booktitle = "Proceedings of the 2nd Workshop on Semantics Analysis", year = 1992, address = "Bordeaux, France", month = oct } @InProceedings{OderskyWadler1997, author = "Martin Odersky and Philip Wadler", title = "{Pizza} into {Java}: Translating Theory into Practice", crossref = "POPL1997" } @InProceedings{Wadler1991, author = "Wadler, Philip", title = "Is There a Use for Linear Logic?", crossref = "PEPM1991", pages = "255-273" } @InProceedings{Wadler1995, author = "Philip L. Wadler", title = "How to Declare an Imperative", crossref = "ILPS1995" } @InProceedings{Kelsey1995, author = "Richard A. Kelsey", title = "A Correspondence Between Continuation Passing Sylte and Static Single Assignment Form", crossref = "IR1995", pages = "13-22" } @InProceedings{Steensgaard1995, author = "Bjarne Steensgaard", title = "Sparse Functional Stores for Imperative Programs", crossref = "IR1995", pages = "62-70" } @InProceedings{ChitnisSatpathyOberoi1995, author = "Sachin V. Chitnis and Manoranjan Satpathy and Sundeep Oberoi", title = "Rationalized Three Instruction Machine", crossref = "IR1995", pages = "94-102" } @InProceedings{Gosling1995, author = "James Gosling", title = "Java Intermediate Bytecodes", crossref = "IR1995", pages = "111-118" } @Article{Naur1962, editor = "Peter Naur", title = "Revised Report on the Algorithmic Language {Algol~60}", journal = cacm, year = 1962, volume = 6, number = 1, pages = "1-17" } @INPROCEEDINGS{Reynolds1972, BOOKTITLE = {ACM Annual Conference}, AUTHOR = {John C. Reynolds}, TITLE = {Definitional Interpreters for Higher-Order Programming Languages}, YEAR = 1972, PAGES = {717-740}, MONTH = jul, keywords = {higher-order removal, continuations} } @InProceedings{Reynolds1974, author = "John C. Reynolds", title = "On the Relation between Direct and Continuation Semantics", editor = "Jacques Loeckx", volume = 14, series = LNCS, pages = "141-156", booktitle = "2nd Coloquium on Automata, Languages and Programming", year = 1974, publisher = SP, address = "Saarbrücken, Germany", month = jul } @TechReport{Moggi1988, author = "Eugenio Moggi", title = "Computational Lambda-Calculus and Monads", institution = "University of Edinburgh", year = 1988, number = "ECS-LFCS-88-86" } @INPROCEEDINGS{Moggi1989, CROSSREF = {LICS1989}, AUTHOR = {Eugenio Moggi}, TITLE = {Computational Lambda-Calculus and Monads}, YEAR = 1989, PAGES = {14-23} } @Article{Moggi1991, author = "Eugenio Moggi", title = "Notions of Computations and Monads", journal = iandc, year = 1991, volume = 93, pages = "55-92" } @InProceedings{Moggi1997, author = "Eugenio Moggi", title = "A Categorical Account of Two-Level Languages", crossref = "MFPS1997" } @INBOOK{Mitchell1990, AUTHOR = {John C. Mitchell}, CHAPTER = {8}, TITLE = {Type Systems for Programming Languages}, PUBLISHER = ESP, YEAR = 1990, VOLUME = {B}, SERIES = {Handbook of Theoretical Computer Science}, ADDRESS = {Amsterdam} } @INBOOK{Barendregt1990, AUTHOR = {Henk P. Barendregt}, CHAPTER = {7}, TITLE = {Functional Programming and Lambda Calculus}, PUBLISHER = ESP, YEAR = 1990, VOLUME = {B}, SERIES = {Handbook of Theretical Computer Science}, ADDRESS = {Amsterdam} } @InCollection{Barendregt1992, author = "Henk P. Barendregt", title = "Lambda Calculi with Types", crossref = "AbramskyGabbayMaibaum1992", pages = "117-309" } @INPROCEEDINGS{KingWadler1993, CROSSREF = {Glasgow1992}, AUTHOR = {David J. King and Philip L.Wadler}, TITLE = {Combining Monads}, YEAR = 1993, PAGES = {134-145} } @INPROCEEDINGS{ChenHudakOdersky1992, CROSSREF = {LFP1992}, AUTHOR = {Kung Chen and Paul Hudak and Martin Odersky}, TITLE = {Parametric Type Classes}, YEAR = 1992, PAGES = {170-181} } @TECHREPORT{Hudak1993, AUTHOR = {Paul Hudak}, TITLE = {Mutable Abstract Datatypes ---or--- How to Have Your State and Munge It Too}, INSTITUTION = {Yale University, Department of Computer Science}, YEAR = 1993, TYPE = {Research Report}, NUMBER = {YALEU/DCS/RR-914}, ADDRESS = {New Haven, CT}, MONTH = dec, NOTE = {(Revised May 1993)} } @TECHREPORT{SteensgaardMarquard1990, AUTHOR = {Bjarne Steensgaard and Morten Marquard}, TITLE = {Parameter Splitting in a Higher-Order Functional Language}, INSTITUTION = {DIKU, University of Copenhagen}, YEAR = 1990, TYPE = {DIKU Student Project}, NUMBER = {90-7-1}, MONTH = 1990, KEYWORDS = {arity raising} } @MASTERSTHESIS{MarquardSteensgaard1992, AUTHOR = {Morten Marquard and Bjarne Steensgaard}, TITLE = {Partial Evaluation of an Object-Oriented Imperative Language}, SCHOOL = {Department of Computer Science, University of Copenhagen}, YEAR = 1992, ADDRESS = {Denmark}, MONTH = Apr, SOURCE = {ftp://research.microsoft.com/users/rusa/thesis.ps.Z} } @INPROCEEDINGS{Launchbury1993, CROSSREF = {SIPL1993}, AUTHOR = {John Launchbury}, TITLE = {Lazy Imperative Programming}, YEAR = 1993, PAGES = {46-56} } @INPROCEEDINGS{Launchbury1993-popl, CROSSREF = {POPL1993}, AUTHOR = {John Launchbury}, TITLE = {A Natural Semantics for Lazy Evaluation}, YEAR = 1993, PAGES = {144-154} } @INPROCEEDINGS{Jones1992-esop, CROSSREF = {ESOP1992}, AUTHOR = {Mark P. Jones}, TITLE = {A Theory of Qualified Types}, YEAR = 1992, PAGES = {287-306} } @TECHREPORT{JonesDuponcheel1993, AUTHOR = {Mark P. Jones and Luc Duponcheel}, TITLE = {Composing Monads}, INSTITUTION = {Yale University}, YEAR = 1993, TYPE = {Research Report}, NUMBER = {YALEU/DCS/RR-1004}, MONTH = dec } @INPROCEEDINGS{Jones1993, CROSSREF = {FPCA1993}, AUTHOR = {Mark P. Jones}, TITLE = {A System of Constructor Classes: Overloading and Implicit Higher-Order Polymorphism}, YEAR = 1993, PAGES = {52-61} } @InProceedings{Jones1995-fpca, author = {Mark P. Jones}, title = "Simplifying and Improving Qualified Types", crossref = "FPCA1995", pages = "160-169" } @INPROCEEDINGS{PetersonJones1993, CROSSREF = {PLDI1993}, AUTHOR = {John Peterson and Mark Jones}, TITLE = {Implementing Type Classes}, YEAR = 1993, PAGES = {227-236} } @InProceedings{HillClarkeBornat1994, author = "Jonathan M. D. Hill and Keith M. Clarke and Richard Bornat", title = "The Vectorisation Monad.", CROSSREF = {PASCO1994}, pages = "204--214", abstract-url = "http://www.lpac.qmw.ac.uk/SEL-HPC/People/Hilly/Abstracts/pasco/pasco.html", document-size = "82.7 kbytes", url = "ftp://ftp.dcs.qmw.ac.uk/cpc/jon_hill/pascoVecMonad.ps.Z", keywords = "Data parallelism; monads; vectorisation; Bird-Meertens formalism; program transformation; category theory; imperative functional programming; non-strict semantics; Haskell.", } @TECHREPORT{JonesHudak1993, AUTHOR = {Mark P. Jones and Paul Hudak}, TITLE = {Implicit and Explicit Parallel Programming in {Haskell}}, INSTITUTION = {Yale University}, YEAR = 1993, TYPE = {Research Report}, NUMBER = {YALEU/DCS/RR-982}, ADDRESS = {New Haven, CT 06520-2158}, MONTH = aug } @TECHREPORT{HudakJones1994, AUTHOR = {Paul Hudak and Mark P. Jones}, TITLE = {{Haskell} vs. {Ada} vs. {C++} vs. {Awk} vs. $\ldots$, An Experiment in Software Prototyping Productivity}, INSTITUTION = {Yale University, Department of Computer Science}, YEAR = 1994, ADDRESS = {New Haven, CT 06518}, MONTH = jul, URL = {ftp://nebula.systemsz.cs.yale.edu/pub/yale-fp/papers/NSWC} } @INPROCEEDINGS{Jones1994, CROSSREF = {PEPM1994}, AUTHOR = {Mark P. Jones}, TITLE = {Partial Evaluation for Dictionary-free Overloading}, YEAR = 1994, PAGES = {107-118} } @InProceedings{DeanChambersGrove1994, author = "Jeffrey Dean and Craig Chambers and David Grove", title = "Identifying Profitable Specialization in Object-Oriented Languages", crossref = "PEPM1994", pages = "85-96" } @InProceedings{DeanChambers1994, author = "Jeffrey Dean and Craig Chambers", title = "Towards Better Inlining Decisions Using Inlining Trials", crossref = "LFP1994", pages = "273-282" } @Article{ChangMahlkeChenHwu1992, author = "Pohua P. Chang and Scott A. Mahlke and William Y. Chen and Wen-Mei W. Hwu", title = "Profile-Guided Automatic Inline Expansion for {C} Programs", journal = swpe, year = 1992, volume = 22, number = 5, pages = "249-269", month = may } @InProceedings{CooperHallKennedy1992, author = "Keith D. Cooper and Mary Hall and Ken Kennedy", title = "Procedure Cloning", crossref = "ICCL1992", pages = "96-105" } @InProceedings{LeoneLee1994, author = "Mark Leone and Peter Lee", title = "Lightweight Run-Time Code Generation", crossref = "PEPM1994", pages = "97-106" } @techreport{OphelDugganCormack1994, author={John Ophel and Dominic Duggan and Gordon Cormack}, title={Parametric Overloading and Liberal Resolution}, institution={{U}niversity of {W}aterloo}, note={Submitted to {\em Software --- Practice and Experience}. Available by sending e-mail to {\tt techcs@math.uwaterloo.ca}}, number={{CS}-94-06}, year=1994, abstract={Overloading and parametric polymorphism have been combined in an extension of ML. This paper motivates the work by presenting a number of illustrative examples including mixed-mode arithmetic, linear algebra, and variable-length parameter lists that demonstrate the utility and expressiveness of this combination. Also shown is how the use of both equality types and weak types in the ML type system can be subsumed in the uniform framework of overloading polymorphism, the latter by the overloading of reference constructors. To support several of these examples, the system supports overloading with multi-variable type templates for overloaded identifiers. The examples motivate the introduction of {\em liberal resolution}, a new strategy for resolving overloaded identifiers in a system with an ML-like type system. Uncoupled liberal resolution is identified as providing the best trade-off between extensibility and useful typing. A type-checking algorithm is provided that supports uncoupled liberal resolution and type checks all of the examples in the paper. The appendix contains a proof of correctness for this algorithm.}} @INPROCEEDINGS{Finne1993, CROSSREF = {FPCA1993}, AUTHOR = {Sigbjorn Finne and Geoffrey Burn}, TITLE = {Assessing the Evaluation Transformer Model of Reduction on the Spineless {G}-machine}, YEAR = 1993, PAGES = {331-340} } @INPROCEEDINGS{Hartel1993, CROSSREF = {FPCA1993}, AUTHOR = {Pieter H. Hartel and Koen G. Langendoen}, TITLE = {Benchmarking Implementations of Lazy Functional Languages}, YEAR = 1993, PAGES = {341-349} } @INPROCEEDINGS{Gordon1993, CROSSREF = {FPCA1993}, AUTHOR = {Andrew D. Gordon}, TITLE = {An Operational Semantics for {I/O} in a Lazy Functional Language}, YEAR = 1993, PAGES = {136-145} } @TECHREPORT{HudakSundaresh1989, AUTHOR = {Paul Hudak and Raman S. Sundaresh}, TITLE = {On the Expressiveness of Purely Functional {I/O} Systems}, INSTITUTION = {Department of Computer Science, Yale University}, YEAR = 1989, ADDRESS = {Box 2158 Yale Station, New Haven, CT 06520}, MONTH = mar } @INPROCEEDINGS{Nocker1993, CROSSREF = {FPCA1993}, AUTHOR = {Eric Nöcker}, TITLE = {Strictness Analysis using Abstract Reduction}, YEAR = 1993, PAGES = {255-265} } @Manual{GillMarlow1995, title = "Happy Manual", author = "Andy Gill and Simon Marlow", organization = "University of Glasgow, Department of Computing Science", year = 1995, note = "Available via http://www.dcs.gla.ac.uk/fp/software/happy.html" } @INPROCEEDINGS{GillLaunchburyPeytonJones1993, CROSSREF = {FPCA1993}, AUTHOR = {Andrew Gill and John Launchbury and Simon L. {Peyton Jones}}, TITLE = {A Short Cut to Deforestation}, YEAR = 1993, PAGES = {223-232} } @InProceedings{PeytonJonesPartainSantos1996, author = "Simon {Peyton Jones} and Will Partain and André Santos", title = "Let-Floating: Moving Bindings to Give Faster Programs", crossref = "ICFP1996", pages = "1-12", annote = "compilation of functional languages", abstract = "Virtually every compiler performs transformations on the program it is compiling in an attempt to improve efficiency. Despite their importance, however, there have been few systematic attempts to categorise such transformations and measure their impact. In this paper we describe a particular group of transformations---the ``let-floating'' transformations---and give detailed measurements of their effect in an optimising compiler for the non-strict functional languages Haskell. Let-floating has not received much explicit attention in the past, but our measurements show that it is an improtant group of transformations (at least for lazy languages), offering a reduction of more than {30\%} in heap allocation and {15\%} in execution time." } @INPROCEEDINGS{SheardFegaras1993, CROSSREF = {FPCA1993}, AUTHOR = {Tim Sheard and Leonidas Fegaras}, TITLE = {A Fold for All Seasons}, YEAR = 1993, PAGES = {233-242} } @TECHREPORT{SheardNelson1995, AUTHOR = {Tim Sheard and Neal Nelson}, TITLE = {Type Safe Abstractions Using Program Generators}, INSTITUTION = {Oregon Graduate Institute of Science and Technology}, YEAR = 1995, NUMBER = {95-013}, ADDRESS = {PO Box 91000, Portland, OR 97291-1000 USA}, MONTH = jul, URL = {ftp://cse.ogi.edu/pub/tech-reports/1995/95-013.ps} } @TechReport{FegarasSheard1995, author = {Leonidas Fegaras and Tim Sheard}, title = "Revisiting Catamorphisms over Datatypes with Embedded Functions", institution = {Oregon Graduate Institute of Science and Technology}, year = 1995, number = {95-014}, address = {PO Box 91000, Portland, OR 97291-1000 USA}, month = jul } @InProceedings{FegarasSheard1996-popl, author = {Leonidas Fegaras and Tim Sheard}, title = "Revisiting Catamorphisms over Datatypes with Embedded Functions (or, Programs from Outer Space)", crossref = "POPL1996", pages = {284-294} } @InProceedings{TahaSheard1997, author = "Walid Taha and Tim Sheard", title = "Multi-Stage Programming with Explicit Annotations ", crossref = "PEPM1997" } @INPROCEEDINGS{AikenWimmers1993, CROSSREF = {FPCA1993}, AUTHOR = {Alexander Aiken and Edward L. Wimmers}, TITLE = {Type Inclusion Constraints and Type Inference}, YEAR = 1993, PAGES = {31-41} } @InProceedings{AikenFaehndrich1995, author = "Alexander Aiken and Manuel Fähndrich", title = "Dynamic Typing and Subtype Inference", crossref = "FPCA1995", pages = "182-191", annote = "compares synamic typing with a subtyping system based on set constraints. makes precise the relationship between two superficially unrelated type systems and to illustrate how the advantages of dynamic typing and subtype inference can be combined. the centrla result is a theorem shouwing that a typing discipline at least as powerful as dynamic typing can be expressed using set constraints." } @INPROCEEDINGS{Augustsson1993, CROSSREF = {FPCA1993}, AUTHOR = {Lennart Augustsson}, TITLE = {Implementing {Haskell} Overloading}, YEAR = 1993, PAGES = {65-73} } @INPROCEEDINGS{AdityaCaro1993, CROSSREF = {FPCA1993}, AUTHOR = {Shail Aditya and Alejandro Caro}, TITLE = {Compiler-directed Type Reconstruction for Polymorphic Languages}, YEAR = 1993, PAGES = {74-82} } @INPROCEEDINGS{Aasa1993, CROSSREF = {FPCA1993}, AUTHOR = {Annika Aasa}, TITLE = {Precedences for Conctypes}, YEAR = 1993, PAGES = {83-91} } @INPROCEEDINGS{Hicks1993, CROSSREF = {FPCA1993}, AUTHOR = {James Hicks}, TITLE = {Experiences with Compiler-Directed Storage Reclamation}, YEAR = 1993, PAGES = {95-105} } @INPROCEEDINGS{SansomPeytonJones1993, CROSSREF = {FPCA1993}, AUTHOR = "Patrick M. Sansom and Simon L. {Peyton Jones}", TITLE = {Generational Garbage Collection for {Haskell}}, YEAR = 1993, PAGES = {106-116} } @InProceedings{SansomPeytonJones1995, author = "Patrick M. Sansom and Simon L. {Peyton Jones}", title = "Time and Space Profiling for Non-Strict Higher-Order Functional Languages", crossref = "POPL1995", pages = "355-366" } @techreport{Bartlett1988, AUTHOR = "Bartlett, Joel F.", TITLE = "Compacting Garbage Collection With Ambiguous Roots", TYPE = "Technical Report", NUMBER = "88/2", INSTITUTION = {DECWRL}, ADDRESS = "Palo Alto, CA", MONTH = feb, COMMENT="Excellent trick here --- make newness a page property, not an address-range property", YEAR = 1988 } @INPROCEEDINGS{Sparud1993, CROSSREF = {FPCA1993}, AUTHOR = {Jan Sparud}, TITLE = {Fixing Some Space Leaks without a Garbage Collector}, YEAR = 1993, PAGES = {117-122} } @INPROCEEDINGS{SastryClingerAriola1993, CROSSREF = {FPCA1993}, AUTHOR = {A. V. S. Sastry and William Clinger and Zena Ariola}, TITLE = {Order-of-evaluation Analysis for Destructive Updates in Strict Functional Languages with Flat Aggregates}, YEAR = 1993, PAGES = {266-275} } @ARTICLE{Reynolds1993, AUTHOR = {John Reynolds}, TITLE = {The Discoveries of Continuations}, JOURNAL = lasc, YEAR = 1993, VOLUME = {6}, NUMBER = {3/4}, PAGES = {233-248}, KEYWORDS = {history, continuations} } @ARTICLE{Morris1993, AUTHOR = {Lockwood Morris}, TITLE = {The Next 700 Formal Language Descriptions}, JOURNAL = lasc, YEAR = 1993, VOLUME = {6}, NUMBER = {3/4}, PAGES = {249-258}, KEYWORDS = {continuations} } @ARTICLE{Fischer1993, AUTHOR = {Michael J. Fischer}, TITLE = {Lambda-Calculus Schemata}, JOURNAL = lasc, YEAR = 1993, VOLUME = {6}, NUMBER = {3/4}, PAGES = {259-288}, KEYWORDS = {continuations, reprint} } @InProceedings{SabryWadler1996, author = "Amr Sabry and Philip Wadler", title = "A Reflection on Call-by-value", crossref = "ICFP1996", pages = "13-24" } @ARTICLE{SabryFelleisen1993, AUTHOR = {Amr Sabry and Matthias Felleisen}, TITLE = {Reasoning about Programs in Continuation-Passing Style}, JOURNAL = lasc, YEAR = 1993, VOLUME = {6}, NUMBER = {3/4}, PAGES = {289-360}, KEYWORDS = {continuations, call-by-value equivalences} } @InProceedings{SabryField1993, author = "Amr Sabry and John Field", title = "Reasoning about Explicit and Implicit Representations of State", crossref = "SIPL1993", pages = "17-30" } @ARTICLE{Filinski1994lasc, AUTHOR = {Andrzej Filinski}, TITLE = {Recursion from Iteration}, JOURNAL = lasc, YEAR = 1994, VOLUME = {7}, NUMBER = {1}, PAGES = {x}, KEYWORDS = {continuations} } @ARTICLE{Wadler1994, AUTHOR = {Philip Wadler}, TITLE = {Monads and Composable Continuations}, JOURNAL = lasc, YEAR = 1994, VOLUME = {7}, NUMBER = {1}, PAGES = {x}, KEYWORDS = {continuations} } @ARTICLE{OkasakiLeeTarditi1994, AUTHOR = {Chris Okasaki and Peter Lee and David Tarditi}, TITLE = {Call-by-need and Continuation-passing Style}, JOURNAL = lasc, YEAR = 1994, VOLUME = {7}, NUMBER = {1}, PAGES = {x}, KEYWORDS = {continuations} } @ARTICLE{HiebDybvigAnderson1994, AUTHOR = {R. Hieb and Kent Dybvig and C. W. {Anderson, III}}, TITLE = {Subcontinuations}, JOURNAL = lasc, YEAR = 1994, VOLUME = {7}, NUMBER = {1}, PAGES = {x}, KEYWORDS = {continuations} } @ARTICLE{Conery1994, AUTHOR = {J. S. Conery}, TITLE = {Continuation-Based Control in the Implementation of Parallel Logic Programs}, JOURNAL = lasc, YEAR = 1994, VOLUME = {7}, NUMBER = {1}, PAGES = {x}, KEYWORDS = {continuations} } @INPROCEEDINGS{Wadler1992, CROSSREF = {POPL1992}, AUTHOR = {Philip L. Wadler}, TITLE = {The Essence of Functional Programming}, YEAR = 1992, PAGES = {1-14} } @INPROCEEDINGS{GonthierAbadiLevy1992, CROSSREF = {POPL1992}, AUTHOR = {Georges Gonthier and Mart{\'\i}n Abadi and Jean-Jacques L{\'{e}}vy}, TITLE = {The Geometry of Optimal Lambda Reduction}, YEAR = 1992, PAGES = {15-26} } @INPROCEEDINGS{Filinski1992, CROSSREF = {POPL1992}, AUTHOR = {Andrzej Filinski}, TITLE = {Linear Continuations}, YEAR = 1992, PAGES = {27-38} } @INPROCEEDINGS{LangQueinnecPiquer1992, CROSSREF = {POPL1992}, AUTHOR = {Bernard Lang and Christian Queinnec and Jos{\'{e}} Piquer}, TITLE = {Garbage Collecting the World}, YEAR = 1992, PAGES = {39-50} } @INPROCEEDINGS{Edelson1992, CROSSREF = {POPL1992}, AUTHOR = {Daniel R. Edelson}, TITLE = {A Mark-and-Sweep Collector for {C++}}, YEAR = 1992, PAGES = {51-58} } @INPROCEEDINGS{NielsonNielson1992-popl, CROSSREF = {POPL1992}, AUTHOR = {Hanne Riis Nielson and Flemming Nielson}, TITLE = {Bounded Fixed Point Iteration}, YEAR = 1992, PAGES = {71-82} } @INPROCEEDINGS{CousotCousot1992a, CROSSREF = {POPL1992}, AUTHOR = {Patrick Cousot and Radhia Cousot}, TITLE = {Inductive Definitions, Semantics and Abstract Interpretation}, YEAR = 1992, PAGES = {83-95} } @INPROCEEDINGS{BarbutiCodishGiacobazziLevi1992, CROSSREF = {POPL1992}, AUTHOR = {Roberto Barbuti and Michael Codish and Roberto Giacobazzi and Giorgio Levi}, TITLE = {Modeling {Prolog} Control}, YEAR = 1992, PAGES = {95-104} } @INPROCEEDINGS{Ohori1992, CROSSREF = {POPL1992}, AUTHOR = {Atsushi Ohori}, TITLE = {A Compilation Method for {ML}-style Polymorphic Record Calculi}, YEAR = 1992, PAGES = {154-165} } @INPROCEEDINGS{Remy1992, CROSSREF = {POPL1992}, AUTHOR = {Didier R{\'{e}}my}, TITLE = {Typing Record Concatenation for Free}, YEAR = 1992, PAGES = {166-176} } @TECHREPORT{Remy1992sorted, AUTHOR = {Didier R{\'{e}}my}, TITLE = {Extension of {ML} Type System with a Sorted Equational Theory on Types}, INSTITUTION = {INRIA}, YEAR = 1992, TYPE = {Rapports de Recherche}, NUMBER = {1766}, MONTH = oct } @INPROCEEDINGS{Leroy1992, CROSSREF = {POPL1992}, AUTHOR = {Xavier Leroy}, TITLE = {Unboxed Objects and Polymorphic Typing}, YEAR = 1992, PAGES = {177-188} } @InProceedings{Leroy1993, author = {Xavier Leroy}, title = "Polymorphism by Name for References and Continuations", crossref = "POPL1993", pages = "220-231" } @InProceedings{ShaoAppel1994, author = "Zhong Shao and Andrew Appel", title = "Space-Efficient Closure Representations", crossref = "LFP1994", pages = "150-161" } @InProceedings{Tolmach1994, author = "Andrew Tolmach", title = "Tag-free Garbage Collection Using Explicit Type Parameters", crossref = "LFP1994", pages = "1-11" } @INPROCEEDINGS{ShaoAppel1995, CROSSREF = {PLDI1995}, AUTHOR = {Zhong Shao and Andrew W. Appel}, TITLE = {A Type-Based Compiler for {Standard ML}}, YEAR = 1995 } @InProceedings{Shao1997-icfp, author = "Zhong Shao", title = "Flexible Representation Analysis", crossref = "ICFP1997", pages = "85-98" } @TechReport{MillerRozas1994, author = "James S. Miller and Guillermo J. Rozas", title = "Garbage Collection is Fast, But a Stack is Faster", institution = "MIT, Artifical Intelligence Laboratory", year = 1994, type = "AI Memo", number = 1462, month = mar, note = "ftp://publications.ai.mit.edu/ai-publications/1994/AIM-1462.ps.Z" } @INPROCEEDINGS{Tofte1992, CROSSREF = {POPL1992}, AUTHOR = {Mads Tofte}, TITLE = {Principal Signatures for Higher-order Program Modules}, YEAR = 1992, PAGES = {189-199} } @INPROCEEDINGS{Farnum1992, CROSSREF = {POPL1992}, AUTHOR = {Charles Farnum}, TITLE = {Pattern-based Tree Attribution}, YEAR = 1992, PAGES = {211-222} } @INPROCEEDINGS{FarrowMarloweYellin1992, CROSSREF = {POPL1992}, AUTHOR = {R. Farrow and T. J. Marlowe and D. M. Yellin}, TITLE = {Composable Attribute Grammars: Support fro Modularity in Translator Design and Implementation}, YEAR = 1992, PAGES = {223-234} } @INPROCEEDINGS{LincolnMitchell1992, CROSSREF = {POPL1992}, AUTHOR = {Patrick Lincoln and John C. Mitchell}, TITLE = {Algorithmic Aspects of Type Inference with Subtypes}, YEAR = 1992, PAGES = {293-304} } @INPROCEEDINGS{Pierce1992, CROSSREF = {POPL1992}, AUTHOR = {Benjamin C. Pierce}, TITLE = {Bounded Quantification is Undecidable}, YEAR = 1992, PAGES = {305-315} } @INPROCEEDINGS{BruceMitchell1992, CROSSREF = {POPL1992}, AUTHOR = {Kim Bruce and John C. Mitchell}, TITLE = {{PER} Models of Subtyping, Recursive Types and Higher-order Polymorphism}, YEAR = 1992, PAGES = {316-327} } @MANUAL{SimilixManual, TITLE = {Similix 5.0 Manual}, AUTHOR = {Anders Bondorf}, ORGANIZATION = {DIKU, University of Copenhagen}, MONTH = may, YEAR = 1993 } @InProceedings{Bondorf1992, author = {Anders Bondorf}, title = "Improving Binding-Times Without Explicit {CPS} Conversion", crossref = "LFP1992", pages = "1-10" } @InProceedings{BondorfPalsberg1993, author = {Anders Bondorf and Jens Palsberg}, title = "Compiling Actions by Partial Evaluation", crossref = "FPCA1993", pages = "308-317" } @INPROCEEDINGS{BondorfDussart1994, CROSSREF = {PEPM1994}, AUTHOR = {Anders Bondorf and Dirk Dussart}, TITLE = {Improving {CPS}-Based Partial Evaluation: Writing Cogen by Hand}, YEAR = 1994, PAGES = {1-10} } @INPROCEEDINGS{DussartBeversVlaminck1995, CROSSREF = {PEPM1995}, AUTHOR = {Dirk Dussart and Eddy Bevers and Karel {De Vlaminck}}, TITLE = {Polyvariant Constructor Specialization}, YEAR = 1995, PAGES = {54-63} } @Unpublished{DanvyDussart1995, author = "Olivier Danvy and Dirk Dussart", title = "{CPS} Transformation after Binding-Time Analysis", note = "Unpublished note, Computer Science Department, Aarhus University", year = 1995, month = Apr } @inproceedings{DussartBevers1995, author = "Dirk Dussart and Eddy Bevers", year = "1995", title = "{CPS} Transformation After Binding-Time Analysis (Extended Abstract)", booktitle = "Proceedings of the 7th Nordic Workshop on Programming Theory", month = Nov, address = "G{\"o}teborg, Sweden", pages = "112-126"} @PhdThesis{Dussart1997-phd, author = "Dirk Dussart", title = "Program Analysis and Specialization of Typed Functional Languages", school = "K.U. Leuven", year = 1997, address = "Belgium", month = may } @InProceedings{MalmkjaerOerbaek1995, author = "Karoline Malmkjær and Peter Ørbæk", title = "Polyvariant Specialisation for Higher-Order, Block-Structured Languages", crossref = {PEPM1995}, pages = "66-76" } @TechReport{ConselJouvelotOerbaek1994, author = "Charles Consel and Pierre Jouvelot and Peter Ørbæk", title = "Separate Polyvariant Binding-Time Reconstruction", institution = "Ecole des Mines", year = 1994, number = "CRI-A/261", address = "Paris", month = oct, url = "ftp://cri.ensmp.fr/pub/LOMAPS/LOMAPS-CRI-2.dvi.Z" } @Unpublished{Oerbaek1994, author = "Peter Ørbæk", title = "{POPE}: An On-line Partial Evaluator", note = "ftp://ftp.daimi.aau.dk/pub/empl/poe/pope.ps.gz", year = 1994, month = jun } @InProceedings{DasRepsVanHentenryck1995, author = "Manuvir Das and Thomas Reps and Pascal {Van Hentenryck}", title = "Semantic Foundations of Binding-Time Analysis for Imperative Programs", crossref = "PEPM1995", pages = "100-110", annote = "parital evaluation, bounded variation, finiteness" } @Article{Bondorf1991, author = "Anders Bondorf", title = "Automatic Autoprojection of Higher Order Recursive Equations", journal = scp, year = 1991, volume = 17, pages = "3-34" } @ARTICLE{BondorfDanvy1991, AUTHOR = {Anders Bondorf and Olivier Danvy}, TITLE = {Automatic Autoprojection of Recursive Equations with Global Variables and Abstract Data Types}, JOURNAL = scp, YEAR = 1991, VOLUME = {16}, NUMBER = {2}, PAGES = {151-195} } @TECHREPORT{BirkedalWelinder1993, AUTHOR = {Lars Birkedal and Morten Welinder}, TITLE = {Partial Evaluation of {Standard ML}}, INSTITUTION = {DIKU, University of Copenhagen}, YEAR = 1993, TYPE = {Rapport}, NUMBER = {93/22}, fullADDRESS = {Dept.\ of Computer Science, University of Copenhagen, Universitetsparken 1, DK-2100 København Ø}, myNOTE = {(master's thesis)}, keywords = {hand-writing cogen} } @InProceedings{BirkedalWelinder1994-plilp, author = {Lars Birkedal and Morten Welinder}, title = "Hand-Writing Program Generator Generators", crossref = "PLILP1994", pages = "198-214" } @InProceedings{BirkedalWelinder1994-pepm, author = {Lars Birkedal and Morten Welinder}, title = "Binding-Time Analysis for {Standard-ML}", crossref = "PEPM1994", pages = "61-71" } @PHDTHESIS{Andersen1994, AUTHOR = {Lars Ole Andersen}, TITLE = {Program Analysis and Specialization for the {C} Programming Language}, SCHOOL = {DIKU, University of Copenhagen}, YEAR = 1994, ANNOTE = {Dept.\ of Computer Science, University of Copenhagen, Universitetsparken 1, DK-2100 København Ø}, MONTH = may } @InProceedings{Andersen1992, semno = "D-137", author = "Lars Ole Andersen", title = "Self-Applicable {C} Program Specialization", crossref = {PEPM1992}, year = "1992", pages = "54--61", month = jun, keywords = "Partial evaluation of C, self-application, side-effects", summary = "The paper provides an overview over a self-applicable partial evaluator for a subset of C, describing basic techniques and methods for partial evaluation of imperative languages", } @InProceedings{AndersenGomard1992, author = "Lars Ole Andersen and Carstan K. Gomard", title = "Speedup Analysis in Partial Evaluation", crossref = "PEPM1992", pages = "1-7" } @InProceedings{Meyer1991, author = "Uwe Meyer", title = "Techniques for Partial Evaluation of Imperative Languages", crossref = "PEPM1991", pages = "94-105" } @INPROCEEDINGS{Glueck1991, CROSSREF = {PEPM1991}, AUTHOR = {Robert Glück}, TITLE = {Towards Multiple Self-Application}, YEAR = 1991, PAGES = {309-320} } @INPROCEEDINGS{GlueckKlimov1993, CROSSREF = {WSA1993}, AUTHOR = {Robert Glück and Andrei V. Klimov}, TITLE = {Occam's Razor in Metacomputation: the Notion of a Perfect Process Tree}, YEAR = 1993, PAGES = {112-123} } @INPROCEEDINGS{GlueckJoergensen1994-iccl, OLDKEY = {GJ1994a}, CROSSREF = {ICCL1994}, AUTHOR = {Robert Glück and Jesper Jørgensen}, TITLE = {Generating Optimizing Specializers}, PAGES = {183-194}, YEAR = 1994 } @INPROCEEDINGS{GlueckJoergensen1994, author = "Robert Glück and Jesper Jørgensen", title = "Generating Transformers for Deforestation and Supercompilation", CROSSREF = {SAS1994}, OPTnote = "DIKU Semantics Report", year = "1994", month = apr, PAGES = {432-448}, semno = "D-195", summary = "The paper uses a new {\em interpretive approach} \cite{GlueckJoergensen:94:ICCL} --- inserting an interpreter between a source program and a program specializer --- to improve the transformation of programs and to automatically generate program transformers. As defined by the {\em specializer projections} one may generate stand-alone transformers by self-application of a program specializer. We show that one can generate Wadler's deforestation algorithm and a version of Turchin's supercompiler this way.", keywords = "partial evaluation, program generation, automatic programming, interpreters, deforestation, supercompilation, self-application.", } @INPROCEEDINGS{GlueckJoergensen1995, CROSSREF = {PLILP1995}, AUTHOR = {Robert Glück and Jesper Jørgensen}, TITLE = {Efficient Multi-Level Generating Extensions for Program Specialization}, YEAR = 1995, pages = {259-278} } @Unpublished{GlueckJoergensen1995unpublished, author = {Robert Glück and Jesper Jørgensen}, title = "Constraint-Based Multi-Level Binding-Time Analysis of Higher-Order Languages", note = "working note" } @InProceedings{GlueckJoergensen1996, author = {Robert Glück and Jesper Jørgensen}, title = "Fast Multi-Level Binding-Time Analysis for Multiple Program Specialization", crossref = "PSI1996" } @Unpublished{GlueckJoergensen1996-multi, author = {Robert Glück and Jesper Jørgensen}, title = "A Program Generator for Multi-Level Specialization", note = "submitted for publication" } @Article{GlueckJoergensen1997-lasc, author = {Robert Glück and Jesper Jørgensen}, title = "A Program Generator for Multi-Level Specialization", journal = LASC, year = 1997, note = "To appear" } @InProceedings{Glueck1996lopstr, author = "Robert Glück", title = "On the Mechanics of Metasystem Hierarchies in Program Transformation", crossref = "LOPSTR1995" } @InProceedings{Joergensen1990, semno = "D-59", author = "Jesper Jørgensen", title = "Generating a Pattern Matching Compiler by Partial Evaluation", CROSSREF = {Glasgow1990}, year = 1990, editor = "Professor C. J. van Rijsbergen", pages = "177--195", publisher = SP, address = "Glasgow University", month = Jul, summary = "The paper describes the development of a compiler for a small strict combinator language with pattern matching. The compiler is generated by partial evaluation and the focus is on generating efficient code for the pattern matching.", keywords = "partial evaluation, pattern matching, compiler generation" } @MastersThesis{Joergensen1991, semno = "D-95", author = "Jesper Jørgensen", title = "Compiler Generation by Partial Evaluation", school = "DIKU, University of Copenhagen", year = 1991, summary = "Descripes various aspects of compiler generation using partial evaluation and a major example. The example is the generation of a compiler for a lazy functional language.", keywords = "partial evaluation, semantic based compiler generation" } @InProceedings{Joergensen1992, semno = "D-98", author = "Jesper Jørgensen", title = "Generating a Compiler for a Lazy Language by Partial Evaluation", CROSSREF = {POPL1992}, booktitle = "Nineteenth Annual ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages. Albuquerque, New Mexico", year = 1992, pages = "258--268", month = Jan, summary = "The paper describes an implementation of a lazy functional language by partial evaluation. It describes the methods used, especially the binding time improvements. The resulting compiler is compared with a compiler for Miranda and a compiler for LML.", keywords = "compiler generation, partial evaluation, binding time improvements, lazy functional languages", } @InProceedings{Welinder1995, AUTHOR = {Morten Welinder}, YEAR = {1995}, TITLE = {Very Efficient Conversions}, BOOKTITLE = {The 8th International Workshop on Higher Order Logic Theorem Proving and Its Applications, Aspen Grove, Utah}, editor = {E. Thomas Schubert and Phillip J. Windley and James Alves-Foss}, publisher = {Springer Verlag}, organization = {}, address = {}, series = {Lecture Notes in Computer Science}, volume = {971}, pages = {340-352}, month = {September}, keywords = {Theorem Proving, Conversions, Generating Extension}, summary = {Using program transformation techniques from the field of partial evaluation an automatic tool for generating very efficient conversions from equality-stating theorems has been implemented. In the situation where a Hol user would normally employ the built-in function GEN\_REWRITE\_CONV, a function that directly produces a conversion of the desired functionality, this article demonstrates how producing the conversion in the form of a program text instead of as a closure can lead to significant speed-ups. The Hol system uses a set of 31 simplifying equations on a very large number of intermediate terms derived, e.g., during backwards proofs. For this set the conversion generated by the two-step method is about twice as fast as the method currently used. When installing the new conversion, tests show that the overall running times of Hol proofs are reduced by about~10\%. Apart from the speed-up this is completely invisible to the user. With cooperation from the user further speed-up is possible.}, supersedes = {}, SEMNO = {D-248}, PUF = {Artikel i proceedings (med censur)}, ID = {KonR} } @InProceedings{ConselDanvy1990, author = "Charles Consel and Olivier Danvy", title = "From Interpreting to Compiling Binding Times", crossref = "ESOP1990", pages = "88-105" } @INPROCEEDINGS{ConselDanvy1991-popl, author = "Charles Consel and Olivier Danvy", title = "Static and Dynamic Semantics Processing", crossref = {POPL1991}, pages = "14-24", keywords = {partial evaluation, procedural languages, algol}, index = 66 } @INPROCEEDINGS{ConselDanvy1991-fpca, CROSSREF = {FPCA1991}, AUTHOR = {Charles Consel and Olivier Danvy}, TITLE = {For a Better Support of Static Data Flow}, YEAR = 1991, PAGES = {496-519}, keywords = {partial evaluation, functional languages, cps}, index = 56 } @InProceedings{ConselDanvy1993, author = "Charles Consel and Olivier Danvy", title = "Tutorial Notes on Partial Evaluation", crossref = {POPL1993}, pages = "493--501" } @Article{ConselDanvy1993-lasc, author = "Charles Consel and Olivier Danvy", title = "Partial Evaluation in Parallel", journal = "LISP and Symbolic Computation", year = 1993, volume = 5, number = 4, pages = "315-330" } @Article{Halstead1985, author = "Robert H. {Halstead, Jr.}", title = "A Language for Concurrent Symbolic Computation", journal = "toplas", year = 1985, volume = 7, number = 4, pages = "501-538" } @InProceedings{Gallagher1993-pepm, author = "John Gallagher", title = "Specialization of Logic Programs", crossref = "PEPM1993", pages = "88-98" } @INPROCEEDINGS{ConselKhoo1991, CROSSREF = {PLILP1991}, AUTHOR = {Charles Consel and Siau-Cheng Khoo}, TITLE = {Semantics Directed Generation of a {Prolog} Compiler}, YEAR = 1991, PAGES = {135-146} } @TECHREPORT{ConselKhoo1993, AUTHOR = {Charles Consel and Siau-Cheng Khoo}, TITLE = {On-line \& Off-line Partial Evaluation: Semantic Specifications and Correctness Proofs}, INSTITUTION = {Yale University, Dept.\ of Computer Science}, YEAR = 1993, MONTH = nov, annote = {to appear in JFP} } @INPROCEEDINGS{Consel1993pepm, OLDkey= {Consel1993tour}, CROSSREF = {PEPM1993}, AUTHOR = {Charles Consel}, TITLE = {A Tour of {Schism}}, YEAR = 1993, PAGES = {134-154} } @InProceedings{Consel1993pepm-polybta, author = {Charles Consel}, title = "Polyvariant Binding-Time Analysis for Applicative Languages", crossref = {PEPM1993}, pages = "66-77" } @InProceedings{Consel1990, author = {Charles Consel}, title = "Binding Time Analysis for Higher Order Untyped Functional Languages", crossref = "LFP1990", pages = {264-272} } @Article{AshleyConsel1994, author = {J. Michael Ashley and Charles Consel}, title = "Fixpoint Computation for Polyvariant Static Analyses of Higher-Order Applicative Programs", journal = toplas, year = 1994, volume = 16, number = 5, pages = "1431-1448", month = sep } @InProceedings{Ashley1996, author = "J. Michael Ashley", title = "A Practical and Flexible Flow Analysis for Higher-Order Languages", crossref = "POPL1996", pages = "184-194" } @INPROCEEDINGS{Wright1993, CROSSREF = {WSA1993}, AUTHOR = {David A. Wright and Clement A. Baker-Finch}, TITLE = {Usage Analysis with Natural Reduction Types}, YEAR = 1993, PAGES = {254-266} } @Article{Hoare1990-ipl, author = "C. A. R. Hoare", title = "Fixed Points of Increasing Functions", journal = ipl, year = 1990, volume = 34, pages = "111-112", annote = "If $d$ and $e$ are increasing functions on a partial order then $FP (d \circ e) = FP (d) \cap FP (e)$ and $FP (d \sqcup e) = FP (d)\cap FP (e)$ where $FP$ yields the set of fixed points." } @Article{Beemster1994, author = "Marcel Beemster", title = "Strictness Optimization for Graph Reduction Machines (Why id Might Not Be Strict)", journal = toplas, year = 1994, volume = 16, number = 5, pages = "1449-1466", month = "sep" } @INPROCEEDINGS{Monsuez1993, CROSSREF = {WSA1993}, AUTHOR = {Bruno Monsuez}, TITLE = {Polymorphic Types and Widening Operators}, YEAR = 1993, PAGES = {267-281}, NOTE = {not really citeable} } @INPROCEEDINGS{Ferguson1993, CROSSREF = {WSA1993}, AUTHOR = {Alex Ferguson and John Hughes}, TITLE = {Fast Abstract Interpretation Using Sequential Algorithms}, YEAR = 1993, PAGES = {45-59} } @Unpublished{HeldalHughes1996, author = "Rogardt Heldal and John Hughes", title = "Partial Evaluation and Separate Compilation", note = "Unpublished manuscript", year = 1996, month = feb } @InProceedings{HughesSparud1995, author = "John Hughes and Jan Sparud", title = "Haskell++: An Object-Oriented Extension of {Haskell}", crossref = "HASKELL1995", pages = "99-113" } @INPROCEEDINGS{Baker1990, CROSSREF = {LFP1990}, AUTHOR = {Henry G. Baker}, TITLE = {Unify and Conquer (Garbage, Updating, Aliasing {$\dots$} in Functional Languages)}, YEAR = 1990, PAGES = {218-226} } @INPROCEEDINGS{Berlin1990, CROSSREF = {LFP1990}, AUTHOR = {Andrew Berlin}, TITLE = {Partial Evaluation Applied to Numeric Computation}, YEAR = 1990, PAGES = {139-150} } @Article{Berlin1990-ieee, author = "Andrew Berlin and Daniel Weise", title = "Compiling Scientific Code Using Partial Evaluation", journal = "IEEE Computer", year = 1990, volume = 23, number = 12, pages = "25-37", month = dec } @InProceedings{Chin1992-lazy, crossref = {PEPM1992}, title = "Fully Lazy Higher-Order Removal", author = "Wei-Ngan Chin", pages = "38--47", annote = "This paper presents a method for removing higher-order functions from programs. The method encourages laziness in the resulting code by ensuring that no unnecessary code duplications occur. Currying is removed and function arguments are wrapped in a scope around the body of the code. This is not always possible - some curried functions return inherently higher-order functions which can not be isolated.", } @PHDTHESIS{Chin1990, AUTHOR = {Wei-Ngan Chin}, TITLE = {Automatic Methods for Program Transformation}, SCHOOL = {Imperial College, University of London}, YEAR = 1990, MONTH = mar } @INPROCEEDINGS{Chin1993, CROSSREF = {PEPM1993}, AUTHOR = {Wei-Ngan Chin}, TITLE = {Towards an Automated Tupling Strategy}, YEAR = 1993, PAGES = {119-132} } @PHDTHESIS{Rondogiannis1994, AUTHOR = {P. Rondogiannis}, TITLE = {Higher-Order Functional Languages and Intensional Logic}, SCHOOL = {Dept of Computer Science, Univ of Victoria}, YEAR = 1994, ADDRESS = {Victoria, BC, Canada}, MONTH = dec, keywords = {higher-order removal} } @INPROCEEDINGS{RondogiannisWadge1994a, BOOKTITLE = {Proc. of IFIP/ACM international Conference on Parallel Architectures and Compilation techniques}, AUTHOR = {P. Rondogiannis and W. Wadge}, TITLE = {Compiling Higher-Order Functions for Tagged Dataflow}, YEAR = 1994, PUBLISHER = {North-Holland}, MONTH = aug, keywords = {higher-order removal} } @INPROCEEDINGS{RondogiannisWadge1994b, BOOKTITLE = {Proc of the ACM symposium on Applied Computing}, AUTHOR = {P. Rondogiannis and W. Wadge}, TITLE = {Higher-Order Dataflow and its Implementation on Stock Hardware}, YEAR = 1994, MONTH = mar } @ARTICLE{Goerdt1992, AUTHOR = {A. Goerdt}, JOURNAL = IAndC, NUMBER = {2}, PAGES = {202--218}, TITLE = {Characterizing Complexity Classes by General Recursive Definitions in Higher Types}, VOLUME = {101}, YEAR = {1992}, keywords = {higher-order removal} } @INPROCEEDINGS{Goerdt1988, AUTHOR = {A. Goerdt}, BOOKTITLE = {Proceedings of MFCS~'88}, PAGES = {318--328}, SERIES = LNCS, TITLE = {On the Expressive Strength of the Finitely-Typed Lambda-Terms}, YEAR = {1988}, keywords = {higher-order removal} } @ARTICLE{KfouryTiurynUrzyczyn1992, AUTHOR = {A.J. Kfoury and J. Tiuryn and P. Urzyczyn}, JOURNAL = TCS, PAGES = {1--41}, TITLE = {On the Expressive Power of Finitely Typed and Universally Polymorphic Recursive Procedures}, VOLUME = {93}, YEAR = {1992}, keywords = {higher-order removal} } @Article{LetichevskyKapitonovaKonozenko1993, author = "A. A. Letichevsky and J. V. Kapitonova and S. V. Konozenko", title = "Computations in {APS}", journal = tcs, year = 1993, volume = 119, pages = "145-171" } @INPROCEEDINGS{Davis1993, CROSSREF = {PEPM1993}, AUTHOR = {Kei Davis}, TITLE = {Higher-order Binding-Time Analysis}, YEAR = 1993, PAGES = {78-87} } @InProceedings{Davis1994, author = "Kei Davis", title = "{PERs} from Projections for Binding-Time Analysis", crossref = {PEPM1994}, year = "1994", pages = "53--60", } @Article{Davis1995, author = "Kei Davis", title = "{PERs} from Projections for Binding-time Analysis", journal = LASC, year = "1995", volume = "8", number = "3", pages = "249--266", month = sep, } @INPROCEEDINGS{Seward1993, CROSSREF = {PEPM1993}, AUTHOR = {Julian Seward}, TITLE = {Polymorphic Stricness Analysis Using Frontiers}, YEAR = 1993, PAGES = {186-193} } @INPROCEEDINGS{Bulyonkov1993, CROSSREF = {PEPM1993}, AUTHOR = {Mikhail A. Bulyonkov}, TITLE = {Extracting Polyvariant Binding Time Analysis from Polyvariant Specializer}, YEAR = 1993, PAGES = {59-65} } @Article{Bulyonkov1984, author = {Mikhail A. Bulyonkov}, title = "Polyvariant Mixed Computation for Analyzer Programs", journal = acta, year = 1984, volume = 21, pages = "473-484", annote = "An algorithm for mixed computation of low-level non-structured imperative programs is presented. The algorithm is shown to terminate and produce correct results when applied to the class of so-called analyzer programs, a definition of which is also given." } @InProceedings{GenglerRytz1992, author = "M. Gengler and B. Rytz", title = "A Polyvariant Binding Time Analysis Handling Partially Known Values", crossref = "WSA1992", pages = "322-330" } @InProceedings{RytzGengler1992, author = "B. Rytz and M. Gengler", title = "A Polyvariant Binding Time Analysis", crossref = "PEPM1992", pages = "21-28" } @InProceedings{Malmkjaer1992, author = "Karoline Malmkjær", title = "Predicting Properties of Residual Programs", crossref = "PEPM1992", pages = "8-13" } @INPROCEEDINGS{ChinKhoo1993, CROSSREF = {WSA1993}, AUTHOR = {Wei-Ngan Chin and Siau-Cheng Khoo}, TITLE = {Tupling Functions with Multiple Recursion Parameters}, YEAR = 1993, PAGES = {124-140} } @INPROCEEDINGS{Chin1992, CROSSREF = {LFP1992}, AUTHOR = {Wei-Ngan Chin}, TITLE = {Safe Fusion of Functional Expressions}, YEAR = 1992, PAGES = {11-20}, KEYWORDS = {deforestation} } @UNPUBLISHED{ChinDarlington1994, AUTHOR = {Wei-Ngan Chin and John Darlington}, TITLE = {A Higher-Order Removal Method}, NOTE = {Submitted for publication}, MONTH = sep, YEAR = 1994 } @INPROCEEDINGS{ChinDarlington1992, BOOKTITLE = {Proc. of 15th Australian Computer Science Conference}, AUTHOR = {Wei-Ngan Chin and John Darlington}, TITLE = {Higher-Order Removal Transformation Technique for Functional Programs}, YEAR = 1992, PAGES = {181-194}, ADDRESS = {Hobart, Tasmania}, MONTH = jan, NOTE = {Australian CS Comm Vol 14, No 1} } @PHDTHESIS{Nelan1991, AUTHOR = {George C. Nelan}, TITLE = {Firstification}, SCHOOL = {Arizona State University}, YEAR = 1991, MONTH = dec, keywords = {higher-order removal} } @MASTERSTHESIS{Bell1993, AUTHOR = {Jeffrey M. Bell}, TITLE = {An Implementation of {Reynold}'s Defunctionalization Method for a Modern Functional Language}, SCHOOL = {Oregon Graduate Institute of Science and Technology}, YEAR = 1993, ADDRESS = {Portland, Oregon, USA}, MONTH = nov, URL = {ftp://ftp.cse.ogi.edu/pub/tech-reports/1993/93-TH-002.ps}, keywords = {higher-order removal} } @UNPUBLISHED{BellHook1994, AUTHOR = {Jeffrey M. Bell and James Hook}, TITLE = {Defunctionalization of Typed Programs}, NOTE = {Oregon Graduate Institute of Science and Technology}, URL = {ftp://ftp.cse.ogi.edu/pub/pacsoft/papers/defunctionalize.ps}, MONTH = feb, YEAR = 1994, keywords = {higher-order removal} } @INPROCEEDINGS{MaunydeRauglaudre1992, CROSSREF = {LFP1992}, AUTHOR = {Michel Mauny and Daniel {de Rauglaudre}}, TITLE = {Parsers in {ML}}, YEAR = 1992, PAGES = {76-85} } @INPROCEEDINGS{NeubergerMishra1992, CROSSREF = {LFP1992}, AUTHOR = {Marc Neuberger and Prateek Mishra}, TITLE = {A Precise Relationship Between the Deductive Power of Forward and Backward Strictness Analysis}, YEAR = 1992, PAGES = {127-138} } @INPROCEEDINGS{ChuangGoldberg1992, CROSSREF = {LFP1992}, AUTHOR = {Tyng-Ruey Chuang and Benjamin Goldberg}, TITLE = {A Syntactic Approach to Fixed Point Computation on Finite Domains}, YEAR = 1992, PAGES = {109-118} } @INPROCEEDINGS{NielsonNielson1992-lfp, CROSSREF = {LFP1992}, AUTHOR = {Flemming Nielson and Hanne Riis Nielson}, TITLE = {Finiteness Conditions for Fixed Point Iteration}, YEAR = 1992, PAGES = {96-108} } @InProceedings{NielsonNielson1986, author = {Flemming Nielson and Hanne Riis Nielson}, title = "Semantics Directed Compiling for Functional Languages", crossref = "LFP1986" } @Article{NielsonNielson1988-scp, author = {Flemming Nielson and Hanne Riis Nielson}, title = "Automatic Binding-Time Analysis for a Typed Lambda Calculus", journal = scp, year = 1988, volume = 10, pages = "139-176" } @Article{NielsonNielson1988-tcs, author = {Flemming Nielson and Hanne Riis Nielson}, title = "Two-level Semantics and Code Generation", journal = tcs, year = 1988, volume = 56 } @InProceedings{Nielson1988, author = "Flemming Nielson", title = "A Formal Type System for Comparing Partial Evaluators", crossref = "PEMC1988", pages = "349-384", annote = "incorporates a structured operational semantics for specialization" } @InProceedings{Schmidt1988, author = "David Schmidt", title = "Static Properties of Partial Evaluation", crossref = "PEMC1988", pages = "465-484" } @ARTICLE{Cohen1983, AUTHOR = {Norman H. Cohen}, TITLE = {Eliminating Redundant Recursive Calls}, JOURNAL = toplas, YEAR = 1983, VOLUME = {5}, NUMBER = {3}, PAGES = {265-299} } @ARTICLE{Darlington1981, AUTHOR = {John Darlington}, TITLE = {An Experimental Program Transformation and Synthesis System}, JOURNAL = {Artificial Intelligence}, YEAR = 1981, VOLUME = {16}, PAGES = {1-46} } @ARTICLE{Harrison1988a, AUTHOR = {Peter G. Harrison}, TITLE = {Linearisation: An Optimisation for Nonlinear Functional Programs}, JOURNAL = scp, YEAR = 1988, VOLUME = {10}, NUMBER = {2}, PAGES = {1-38}, MONTH = mar } @ARTICLE{Michie1968, AUTHOR = {Donald Michie}, TITLE = {Memo Functions and Machine Learning}, JOURNAL = {Nature}, YEAR = 1968, VOLUME = {218}, PAGES = {19-22} } @INPROCEEDINGS{Pettorossi1984, CROSSREF = {LFP1984}, AUTHOR = {Alberto Pettorossi}, TITLE = {A Powerful Strategy for Deriving Programs by Transformation}, YEAR = 1984, PAGES = {273-281} } @INPROCEEDINGS{ProiettiPettorossi1991, CROSSREF = {PLILP1991}, AUTHOR = {M. Proietti and Alberto Pettorossi}, TITLE = {Unfolding --- Definition --- Folding, in this Order for Avoiding Unnecessary Variables in Logic Programs}, YEAR = 1991, PAGES = {347-358} } *** old key: orh:assignment, @InProceedings{OderskyRabinHudak1993, author = "Odersky, Martin and Rabin, Daniel and Hudak, Paul", title = "Call-by-name, Assignment, and the Lambda Calculus", crossref = {POPL1993}, pages = "43-57", year = "1993", month = "January", abstract = "Defines an extension of the call-by-name lambda calculus with additional constructs and reduction rules that represent mutable variables and assignments. The extended calculus has neither a concept of an explicit store nor a concept of evaluation order; nevertheless, it is shown that programs in the calculus can be implemented using a single-threaded store. Furthermore, the new calculus preserves the Church-Rosser property and is a conservative extension of classical lambda calculus with respect to operational equivalence; that is, all algebraic laws of the functional subset are preserved." } @INPROCEEDINGS{Odersky1991, CROSSREF = {POPL1991}, AUTHOR = {Martin Odersky}, TITLE = {How to make Destructive Updates less Destructive}, YEAR = 1991, PAGES = {25-36}, MONTH = jan } @INPROCEEDINGS{GuzmanHudak1990, CROSSREF = {LICS1990}, AUTHOR = {Juan C. Guzm\'{a}n and Paul Hudak}, TITLE = {Single-Threaded Polymorphic Lambda Calculus}, YEAR = 1990, PAGES = {333-343} } @InProceedings{GuzmanSuarez1994, author = "Juan Carlos Guzm\'an and Asc\'ander Su\'arez", title = "A Type System for Exceptions", crossref = "ML1994", pages = "127--135" } @TechReport{OderskyRabin1993, author = "Martin Odersky and Dan Rabin", title = "The Unexpurgated Call-by-name, Assignment, and the Lambda-Calculus, Revised Report", institution = "Department of Computer Science, Yale University", year = "1993", type = "Research Report", number = "YALEU/DCS/RR-930", address = "New Haven, Connecticut", month = "May", abstract = "Elaboration on \cite{orh:assignment}." } @TECHREPORT{ChenOdersky1993, AUTHOR = {Kung Chen and Martin Odersky}, TITLE = {A Type System for a Lambda Calculus with Assignment}, INSTITUTION = {Department of Computer Science, Yale University}, YEAR = 1993, TYPE = {Research Report}, NUMBER = {YALEU/DCS/RR-963}, ADDRESS = {New Haven, Connecticut}, MONTH = may } @TECHREPORT{Prospectra, AUTHOR = {Bernd Krieg-Brückner and B. Hoffmann}, TITLE = {{PRO}gram development by {SPEC}ification and {TRA}nsformation}, INSTITUTION = {Universität Bremen}, YEAR = 1990, TYPE = {Prospectra Report}, NUMBER = {M.1.1.S3-R-55.2, -56.2, -57.2} } @TECHREPORT{Spectrum1993, AUTHOR = {M. Broy and C. Facchi and R. Grosu and R. Hettler and H. Hussmann and D. Nazareth and F. Regensburger and K. St{\o}len}, TITLE = {The Requirement and Design Specification Language {\sc Spectrum} --- An Informal Introduction Version 1.0}, INSTITUTION = {Technische Universität München}, YEAR = 1993, MONTH = mar } @INPROCEEDINGS{FradetLeMetayer1989, CROSSREF = {TAPSOFT1989}, AUTHOR = {P. Fradet and D. {Le M{\'{e}}tayer}}, TITLE = {Compilation of Lambda-Calculus into Functional Machine Code}, YEAR = 1989, PAGES = {II, 155-166} } @INPROCEEDINGS{FuhMishra1989, CROSSREF = {TAPSOFT1989}, AUTHOR = {You-Chin Fuh and Prateek Mishra}, TITLE = {Polymorphic Subtype Inference: Closing the Theory-Practice Gap}, YEAR = 1989, PAGES = {II, 167-183} } @INPROCEEDINGS{GiacaloneMishraPrasad1989, CROSSREF = {TAPSOFT1989}, AUTHOR = {Alessandro Giacalone and Prateek Mishra and Sanjiva Prasad}, TITLE = {{FACILE}: A Symmetric Integration of Concurrent and Functional Programming}, YEAR = 1989, PAGES = {II, 184-209} } @INPROCEEDINGS{Mogensen1989-tapsoft, CROSSREF = {TAPSOFT1989}, AUTHOR = {Torben {\AE}. Mogensen}, TITLE = {Binding Time Analysis for Polymorphically Typed Higher Order Languages}, YEAR = 1989, PAGES = {II, 298-312} } @InProceedings{Mogensen1992-pepm, author = "Torben {\AE}. Mogensen", title = "Self-applicable Partial Evaluation for Pure Lambda Calculus", crossref = "PEPM1992", pages = "116-121" } @InProceedings{Bondorf1989, author = "Anders Bondorf", title = "A Self-Applicable Partial Evaluator for Term Rewriting Systems", crossref = {TAPSOFT1989}, pages = "II, 81-95" } @INPROCEEDINGS{Mogensen1995, CROSSREF = {PEPM1995}, AUTHOR = {Torben {\AE}. Mogensen}, TITLE = {Self-Applicable Online Partial Evaluation of Pure Lambda Calculus}, YEAR = 1995, PAGES = {39-44} } @INPROCEEDINGS{Mogensen1993, CROSSREF = {PEPM1993}, AUTHOR = {Torben {\AE}. Mogensen}, TITLE = {Constructor Specialization}, YEAR = 1993, PAGES = {22-32} } @InProceedings{HagiyaIino1995, author = "Masami Hagiya and Kouhei Iino", title = "Binding Time Analysis for Data Type Specialization", crossref = "Fuji1995", pages = "254-269", annote = "constructor specialization" } @InProceedings{Bechet1996, author = "Denis Bechet", title = "Removing Value Encoding using Alternative Values in Partial Evaluation of Strongly-Typed Languages", crossref = "ESOP1996", pages = "77-91" } @INPROCEEDINGS{Danvy1992, CROSSREF = {ESOP1992}, AUTHOR = {Olivier Danvy}, TITLE = {Back to Direct Style}, YEAR = 1992, PAGES = {130-150} } @Article{Danvy1994, author = {Olivier Danvy}, title = {Back to Direct Style}, journal = scp, year = 1994, volume = 22, pages = "183-195", annote = "Journal version of \cite{Danvy1992}" } @ARTICLE{DanvyFilinski1992, AUTHOR = {Olivier Danvy and Andrzej Filinski}, TITLE = {Representing Control: A Study of the {CPS} Transformation}, JOURNAL = mscs, YEAR = 1992, VOLUME = {2}, PAGES = {361-391} } @INPROCEEDINGS{DohSchmidt1992, CROSSREF = {ESOP1992}, AUTHOR = {Kyung Goo Doh and David A. Schmidt}, TITLE = {Extraction of Strong Typing Laws}, YEAR = 1992, PAGES = {151-166} } @INPROCEEDINGS{Goldberg1992, CROSSREF = {ESOP1992}, AUTHOR = {Benjamin Goldberg}, TITLE = {Incremental Garbage Collection Without Tags}, YEAR = 1992, PAGES = {200-218} } @INPROCEEDINGS{HughesLaunchbury1992, CROSSREF = {ESOP1992}, AUTHOR = {John Hughes and John Launchbury}, TITLE = {Reversing Abstract Interpretations}, YEAR = 1992, PAGES = {269-286} } @ARTICLE{Futamura1971, AUTHOR = {Yoshihiko Futamura}, TITLE = {Partial Evaluation of Computation Process --- An Approach to a Compiler-Compiler}, JOURNAL = {Systems, Computers, Controls}, YEAR = 1971, VOLUME = {2}, NUMBER = {5}, PAGES = {45-50} } @INPROCEEDINGS{HoskingMossStefanovic1992, CROSSREF = {OOPSLA1992}, AUTHOR = {Antony L. Hosking and J. Eliot B. Moss and Darko Stefanovi{\'c}}, TITLE = {A Comparative Performance Evaluation of Write Barrier Implementations}, YEAR = 1992, PAGES = {92-109} } @INPROCEEDINGS{Hughes1989, CROSSREF = {CTCS1989}, AUTHOR = {John Hughes}, TITLE = {Projections for Polymorphic Strictness Analysis}, YEAR = {1989}, PAGES = {82-100} } @INPROCEEDINGS{CardelliMitchell1989, CROSSREF = {CTCS1989}, AUTHOR = {Luca Cardelli and John C. Mitchell}, TITLE = {Operations on Records}, YEAR = {1989}, PAGES = {75-81} } @TechReport{Cardelli1992, author = "Luca Cardelli", title = "Extensible records in a pure calculus of subtyping", institution = "DEC Systems Research Center", number = "81", year = "1992", } @Article{Wand1990-ipl, author = "Mitchel Wand", title = "A Short Proof of the Lexical Addressing Algorithm", journal = ipl, year = 1990, volume = 35, pages = "1-5", annote = "The question of how to express binding relations, and in particulr, of proving the correctness of lexical addressing techniques, has been considered primarily in the context of compioler correctness proofs. Here we consider the problem in isolation. We formulate the connections between three different treatments of variables in programming language semantics: the environment coding, the natural coding, and the lexical address coding (sometimes called the Frege coding, the Church coding, and the deBruijn coding, respectively). By considering the problem in isolation, we obtain shorter and clearer proofs. The natural coding seems to occupy a central place, and the other codings are proved equivalent by reference to it." } @InProceedings{Wand1989, author = "Mitchell Wand", title = "Type Inference for record concatenation and multiple inheritance", CROSSREF = {LICS1989}, year = "1989", pages = "92--97", note = "To appear in {\it Information and Computation.}", } @article{Wand1982-toplas, Title="Deriving Target Code As A Representation Of Continuation Semantics", Author="Mitchell Wand", Pages="496--517", Journal=Toplas, Year=1982, Month=Jul, Volume=4, Number=3 } @INPROCEEDINGS{MartiOlietMeseguer1989, CROSSREF = {CTCS1989}, AUTHOR = {Narciso Mart{\'{\i}}-Oliet and Jos{\'e} Meseguer}, TITLE = {From {Petri}-Nets to Linear Logic}, YEAR = {1989}, PAGES = {313-340} } @INPROCEEDINGS{Abramsky1985, CROSSREF = {PDO1985}, AUTHOR = {Samson Abramsky}, TITLE = {Strictness Analysis and Polymorphic Invariance}, YEAR = {1985}, PAGES = {1-23} } @ARTICLE{Abramsky1990, AUTHOR = {Samson Abramsky}, TITLE = {Abstract Interpretation, Logical Relations and {Kan} Extensions}, JOURNAL = jlc, YEAR = 1990, VOLUME = {1} } @INPROCEEDINGS{BurnHankinAbramsky1985, CROSSREF = {PDO1985}, AUTHOR = {Geoffrey L. Burn and Chris L. Hankin and Samson Abramsky}, TITLE = {The Theory of Strictness Analysis for Higher Order Functions}, YEAR = {1985}, PAGES = {42-62} } @INPROCEEDINGS{Hughes1985, CROSSREF = {PDO1985}, AUTHOR = {John Hughes}, TITLE = {Strictness Detection in non-flat domains}, YEAR = {1985}, PAGES = {112-135} } @INPROCEEDINGS{MycroftJones1985, CROSSREF = {PDO1985}, AUTHOR = {Alan Mycroft and Neil D. Jones}, TITLE = {A Relational Framework for Abstract Interpretation}, YEAR = {1985}, PAGES = {156-171} } @INPROCEEDINGS{Sestoft1985, CROSSREF = {PDO1985}, AUTHOR = {Peter Sestoft}, TITLE = {The Structure of a Self-applicable Partial Evaluator}, YEAR = {1985}, PAGES = {236-256} } @INPROCEEDINGS{Turchin1985, CROSSREF = {PDO1985}, AUTHOR = {Valentin F. Turchin}, TITLE = {Program Transformation by Supercompilation}, YEAR = {1985}, PAGES = {257-281} } @InProceedings{Turchin1980, author = {Valentin F. Turchin}, title = "The Use of Metasystem Transition in Theorem Proving and Program Optimization", crossref = "ICALP1980", pages = "645-657" } @INPROCEEDINGS{Wadler1985a, CROSSREF = {PDO1985}, AUTHOR = {Philip Wadler}, TITLE = {Listlessness is Better than Laziness {II}: Composing Listless Functions}, YEAR = {1985}, PAGES = {282-305} } @INPROCEEDINGS{Danvy1988, CROSSREF = {PEMC1988}, AUTHOR = {Olivier Danvy}, TITLE = {Across the Bridge between Reflection and Partial Evaluation}, YEAR = 1988, PAGES = {83-116} } @InProceedings{MasuharaMatsuokaAsaiYonezawa1995, author = "Hidehiko Masuhara and Satoshi Matsuoka and Kenichi Asai and Akinori Yonezawa", title = "Compiling Away the Meta-Level in Object-Oriented Concurrent Reflective Languages Using Partial Evaluation", crossref = "OOPSLA1995", pages = "300-315" } @TechReport{AsaiMasuharaMatsuokaYonezawa1995, author = "Kenichi Asai and Hidehiko Masuhara and Satoshi Matsuoka and Akinori Yonezawa", title = "Partial Evaluator as a Compiler for Reflective Languages", institution = "Department of Information Science, Faculty of Science, University of Tokyo", year = 1995, number = "95-10", address = "7-3-1 Hongo, Bunkyo-Ku Tokyo, 113 Japan", month = dec, annote = "Compiler for reflective language Black. Efficient implementation by online partial evaluation of a modifiable meta-interpreter. The partial evaluator handles I/O-type side effects." } @Unpublished{Asai1996, author = "Kenichi Asai", title = "Towards Partial Evaluation of Side-Effecting {Scheme}", note = "Talk at the Dagstuhl Seminar on Partial Evaluation", year = 1996, month = feb } @INPROCEEDINGS{DarlingtonPull1988, CROSSREF = {PEMC1988}, AUTHOR = {John Darlington and Helen Pull}, TITLE = {A Program Development Methodology Based on a Unified Approach to Execution and Transformation}, YEAR = 1988, PAGES = {117-132} } @INPROCEEDINGS{FutamuraNogi1988, CROSSREF = {PEMC1988}, AUTHOR = {Yoshihiko Futamura and Kenroku Nogi}, TITLE = {Generalized Partial Computation}, YEAR = 1988, PAGES = {133-152} } @ARTICLE{FutamuraNogiTakano1991, AUTHOR = {Yoshihiko Futamura and Kenroku Nogi and Aki Takano}, TITLE = {Essence of Generalized Partial Computation}, JOURNAL = tcs, YEAR = 1991, VOLUME = {90}, NUMBER = {1}, PAGES = {61-79} } @INPROCEEDINGS{Harrison1988, CROSSREF = {PEMC1988}, AUTHOR = {Peter G. Harrison}, TITLE = {Function Inversion}, YEAR = 1988, PAGES = {153-166} } @INPROCEEDINGS{Hughes1988, CROSSREF = {PEMC1988}, AUTHOR = {John Hughes}, TITLE = {Backwards Analysis of Functional Programs}, YEAR = 1988, PAGES = {187-208} } @INPROCEEDINGS{Launchbury1988, CROSSREF = {PEMC1988}, AUTHOR = {John Launchbury}, TITLE = {Projections for Specialisation}, YEAR = 1988, PAGES = {299-316} } @INPROCEEDINGS{Sestoft1988:pemc, CROSSREF = {PEMC1988}, AUTHOR = {Peter Sestoft}, TITLE = {Automatic Call Unfolding in a Partial Evaluator}, YEAR = 1988, PAGES = {485-506} } @Proceedings{PEMC:NGC1988, OPTkey = "PEMC'NGC88", key = "Ershov et al.", title = "Special Issue: Selected Papers from the Workshop on Partial Evaluation and Mixed Computation, 1987 (New Generation Computing, vol. 6, nos. 2,3)", booktitle = "Special Issue: Selected Papers from the Workshop on Partial Evaluation and Mixed Computation, 1987 (New Generation Computing, vol. 6, nos. 2,3)", year = "1988", editor = "Andrei P. Ershov and Dines Bj{\o}rner and Yoshihiko Futamura and K. Furukawa and Anders Haraldsson and William Scherlis", publisher = "Ohmsha Ltd. and Springer-Verlag", OPTnote = ""} @MISC{jlpspecial, KEY = {jlp}, NOTE = {Jan Komorowski, editor}, TITLE = {{Journal of Logic Programming} 16 (1,2), Special Issue on Partial Deduction}, YEAR = 1993 } @MISC{lascspecial, KEY = {lasc}, NOTE = {Peter Sestoft and Harald Søndergaard, editors}, TITLE = {{Lisp and Symbolic Computation} 8 (3), Special Issue on Partial Evaluation}, YEAR = 1995 } @Misc{pebibliography, key = "pebib", author = "Peter Sestoft", title = "Bibliography on Partial Evaluation", howpublished = "Available through URL ftp://ftp.diku.dk/pub/diku/dists/jones-book/partial-eval.bib.Z" } @INPROCEEDINGS{Noll1994, CROSSREF = {CAAP1994}, AUTHOR = {Thomas Noll}, TITLE = {On the First-Order Equivalence of Call-by-name and Call-by-value}, YEAR = 1994, PAGES = {246-260} } @INPROCEEDINGS{Launchbury1989, CROSSREF = {Glasgow1989}, AUTHOR = {John Launchbury}, TITLE = {Dependent Sums Express Separation of Binding Times}, YEAR = 1990, PAGES = {238-253} } @INPROCEEDINGS{JonesLeMetayer1989, CROSSREF = {Glasgow1989}, AUTHOR = {Simon B. Jones and Daniel {Le M{\'e}tayer}}, TITLE = {A New Method for Strictness Analysis on Non-Flat Domains}, YEAR = 1990, PAGES = {1-11} } @INPROCEEDINGS{DavisWadler1989, CROSSREF = {Glasgow1989}, AUTHOR = {Kei Davis and Philip Wadler}, TITLE = {Backwards Strictness Analysis: Proved and Improved}, YEAR = 1990, PAGES = {12-30} } @INPROCEEDINGS{BarakiHughes1989, CROSSREF = {Glasgow1989}, AUTHOR = {Gebreselassie Baraki and John Hughes}, TITLE = {Abstract Interpretation of Polymorphic Functions}, YEAR = 1990, PAGES = {31-40} } @INPROCEEDINGS{FergusonHughes1989, CROSSREF = {Glasgow1989}, AUTHOR = {A. B. Ferguson and John Hughes}, TITLE = {An Iterative Powerdomain Construction}, YEAR = 1990, PAGES = {41-55} } @INPROCEEDINGS{Sand1989, CROSSREF = {Glasgow1989}, AUTHOR = {David Sands}, TITLE = {Complexity Analysis for a Lazy Higher-Order Language}, YEAR = 1990, PAGES = {56-79} } @INPROCEEDINGS{Argo1990, CROSSREF = {Glasgow1990}, AUTHOR = {Guy Argo}, TITLE = {Lifetime Analysis}, YEAR = 1990, PAGES = {1-8} } ****************************** GLASGOW WORKSHOP 1991 ****************************************** @INPROCEEDINGS{Argo1992, CROSSREF = {Glasgow1991}, AUTHOR = {Guy Argo}, TITLE = {A New Sharing mechanism for the {TIM}}, YEAR = 1992, PAGES = {25-35} } @INPROCEEDINGS{Augustsson1992, CROSSREF = {Glasgow1991}, AUTHOR = {Lennart Augustsson}, TITLE = {{BWM}: A Concrete Machine for Graph Reduction}, YEAR = 1992, PAGES = {36-51} } @INPROCEEDINGS{Gill1992, CROSSREF = {Glasgow1991}, AUTHOR = {Andrew Gill}, TITLE = {A Novel Approach Towards Peephole Optimisations}, YEAR = 1992, PAGES = {100-111} } @INPROCEEDINGS{GomardSestoft1992a, CROSSREF = {Glasgow1991}, AUTHOR = {Carsten K. Gomard and Peter Sestoft}, TITLE = {Evaluation Order Analysis for Lazy Data Structures}, YEAR = 1992, PAGES = {112-127} } @Article{GomardJones1991-struct, author = {Carsten K. Gomard and Neil D. Jones}, title = "Compiler Generation by Partial Evaluation: A Case Study", journal = "Structured Programming", year = 1991, volume = 12, pages = "123-144", abstract = {It was known as long ago as 1971 in Japan and Russia that the program transformation principle called \emph{partial evaluation} or \emph{program specialization} has intimate connections with compiling. In particular a program specialzer can be used to compile, given as input data an interpretative definition of a programming language. Further, a program specializer can generate a compiler and even a compiler generator---provided it is self-applicable. The purpose of this paper is to show by a concrete example that certain rather simple techniques are sufficient to construct a fully automatic and nontrivial program specializer for a simple imperative language. Further, the specializer is self-applicable, with the consequence that it can both compile and generate stand-alone compilers.} } @INPROCEEDINGS{HamiltonJones1992, CROSSREF = {Glasgow1991}, AUTHOR = {Geoffrey W. Hamilton and Simon B. Jones}, TITLE = {Extending Deforestation for First Order Functional Programs}, YEAR = 1992, PAGES = {134-145} } @INPROCEEDINGS{HolstHughes1992, CROSSREF = {Glasgow1991}, AUTHOR = {Carsten Kehler Holst and John Hughes}, TITLE = {A Loop-Detecting Interpreter for Lazy Programs}, YEAR = 1992, PAGES = {164-176} } @INPROCEEDINGS{KubiakHughesLaunchbury1992, CROSSREF = {Glasgow1991}, AUTHOR = {Ryszard Kubiak and John Hughes and John Launchbury}, TITLE = {Implementing Projection-based Strictness Analysis}, YEAR = 1992, PAGES = {207-224} } @INPROCEEDINGS{Lester1992, CROSSREF = {Glasgow1991}, AUTHOR = {David R. Lester}, TITLE = {Vuillemin's Exact Real Arithmetic}, YEAR = 1992, PAGES = {224-238} } @INPROCEEDINGS{Rothwell1992, CROSSREF = {Glasgow1991}, AUTHOR = {Nick Rothwell}, TITLE = {Functional Compilation from the Standard {ML} Core Language to Lambda Calculus}, YEAR = 1992, PAGES = {265-277} } @INPROCEEDINGS{Sansom1992, CROSSREF = {Glasgow1991}, AUTHOR = {Patrick M. Sansom}, TITLE = {Combining Single-Space and Two-Space Compacting Garbage Collectors}, YEAR = 1992, PAGES = {312-323} } @INPROCEEDINGS{Wadler1990, CROSSREF = {LFP1990}, AUTHOR = {Philip L. Wadler}, TITLE = {Comprehending Monads}, PAGES = {61-78}, YEAR = 1990 } @INPROCEEDINGS{PeytonJonesWadler1993, CROSSREF = {POPL1993}, AUTHOR = {Simon L. {Peyton Jones} and Philip L. Wadler}, TITLE = {Imperative Functional Programming}, PAGES = {71-84}, YEAR = 1993 } @ARTICLE{Schonfinkel1924, AUTHOR = {M. Schönfinkel}, TITLE = {{Über die Bausteine der Mathematischen Logik}}, JOURNAL = {Math. Ann.}, YEAR = 1924, VOLUME = {92} } @ARTICLE{AitkaciLincoln1989, AUTHOR = {Hassan {Aït}-Kaci and Patrick Lincoln}, TITLE = {A Natural Language for Natural Language}, JOURNAL = {T.~A.~Informations, revue internationale du traitement automatique du langage}, YEAR = 1989, VOLUME = {30}, NUMBER = {1-2}, PAGES = {37-67} } @ARTICLE{Meyer1982, AUTHOR = {Albert Meyer}, TITLE = {What is a model of the $\lambda$-Calculus?}, JOURNAL = iandc, YEAR = 1982, VOLUME = {52}, PAGES = {87-122} } @INPROCEEDINGS{Bondorf1990, CROSSREF = {Glasgow1990}, AUTHOR = {Anders Bondorf}, TITLE = {Compiling Laziness by Partial Evaluation}, YEAR = 1990, PAGES = {9-22} } @INPROCEEDINGS{DavisWadler1990, CROSSREF = {Glasgow1990}, AUTHOR = {Kei Davis and Philip Wadler}, TITLE = {Strictness Analysis in {4D}}, YEAR = 1990, PAGES = {23-43} } @INPROCEEDINGS{Holst1990, CROSSREF = {Glasgow1990}, AUTHOR = {Carsten Kehler Holst}, TITLE = {Improving Full Laziness}, YEAR = 1990, PAGES = {71-82} } @Unpublished{Holst1989, author = {Carsten Kehler Holst}, title = "Syntactic Currying", note = "Student report, DIKU, University of Copenhagen", year = 1989, annote = {considers binding-time analyzed programs as generating extensions} } @InProceedings{Holst1988, author = "Carsten Kehler Holst", title = "Language Triplets: The {AMIX} Approach", crossref = "PEMC1988", pages = "167-186", annote = "partial evaluator that produces stack code" } @INPROCEEDINGS{HughesLaunchbury1990, CROSSREF = {Glasgow1990}, AUTHOR = {John Hughes and John Launchbury}, TITLE = {Towards Relating Forwards and Backwards Analysis}, YEAR = 1990, PAGES = {101-113} } @InProceedings{HuntSands1991, author = "Sebastian Hunt and David Sands", title = "Binding Time Analysis: a new {PER}spective", crossref = "PEPM1991", pages = {154-165}, annote = {for a simply typed lambda calculus, correctness proof via logical relations} } @INPROCEEDINGS{Hunt1990, CROSSREF = {Glasgow1990}, AUTHOR = {Sebastian Hunt}, TITLE = {{PER}s Generalize Projections for Strictness Analysis}, YEAR = 1990, PAGES = {114-125} } @INPROCEEDINGS{Johnsson1990, CROSSREF = {Glasgow1990}, AUTHOR = {Thomas Johnsson}, TITLE = {Analysing Heap Contents in a Graph Reduction Intermediate Language}, YEAR = 1990, PAGES = {146-171} } @INPROCEEDINGS{Johnsson1986, CROSSREF = {WGR1986}, AUTHOR = {Thomas Johnsson}, TITLE = {Target Code Generation from {G}-Machine Code}, YEAR = 1986, PAGES = {119-159} } @INPROCEEDINGS{Mycroft1984, CROSSREF = {ISP1984}, AUTHOR = {Alan Mycroft}, TITLE = {Polymorphic Type Schemes and Recursive Definitions}, YEAR = 1984, PAGES = {217-228} } @INPROCEEDINGS{Mycroft1980, CROSSREF = {ISP1980}, AUTHOR = {Alan Mycroft}, TITLE = {The Theory and Practice of Transformating Call-by-need into Call-by-value}, YEAR = 1980, PAGES = {269-281} } @ARTICLE{Karr1976, AUTHOR = {Michael Karr}, TITLE = {Affine Relationships Among Variables of a Program}, JOURNAL = acta, YEAR = 1976, VOLUME = {6}, PAGES = {133-151} } @INPROCEEDINGS{CDDK1986, CROSSREF = {LFP1986}, AUTHOR = {Dominique Cl{\'e}ment and Jo{\"e}lle Despeyroux and Thierry Despeyroux and Gilles Kahn}, TITLE = {A Simple Applicative Language: Mini-{ML}}, YEAR = 1986, PAGES = {13-27} } @INPROCEEDINGS{KfouryTiurynUrzyczyn1988, CROSSREF = {POPL1988}, AUTHOR = {A. J. Kfoury and J. Tiuryn and P. Urzyczyn}, TITLE = {A Proper Extension of {ML} with an Effective Type-Assignment}, YEAR = 1988, PAGES = {58-69}, NOTE = {This paper is wrong.} } @INPROCEEDINGS{JategaonkarMitchell1988, CROSSREF = {LFP1988}, AUTHOR = {L. Jategaonkar and John C. Mitchell}, TITLE = {{ML} with Extended Pattern Matching and Subtypes}, YEAR = 1988, PAGES = {x} } @INPROCEEDINGS{Wand1987, CROSSREF = {LICS1987}, AUTHOR = {Mitchell Wand}, TITLE = {Complete Type Inference for Simple Objects}, YEAR = 1987, PAGES = {37-44} } @ARTICLE{PartschSteinbruggen1983, AUTHOR = {M. Partsch and R. Steinbruggen}, TITLE = {Program Transformation Systems}, JOURNAL = acmcs, YEAR = 1983, VOLUME = {15}, PAGES = {199-236} } @TECHREPORT{Petterson1992, AUTHOR = {Mikael Pettersson}, TITLE = {A Term Pattern-Match Compiler Inspired by Finite Automata Theory}, INSTITUTION = {Institutionen för Datavetenskap}, YEAR = 1992, TYPE = {Research Report}, NUMBER = {LiTH-IDA-R-92-09}, ADDRESS = {Dept. of Computer and Information Science, Linköping University, S-581 83 Linköping, Sweden}, MONTH = mar } @ARTICLE{Pepper1987, AUTHOR = {Peter Pepper}, TITLE = {A Simple Calculus for Program Transformations (inclusive of induction)}, JOURNAL = scp, YEAR = 1987, VOLUME = {9}, PAGES = {221-262} } @INPROCEEDINGS{Hanus1992, CROSSREF = {PLILP1992}, AUTHOR = {Michael Hanus}, TITLE = {Improving Control of Logic Programs by Using Functional Logic Languages}, YEAR = 1992, PAGES = {1-23} } @INPROCEEDINGS{GomardSestoft1992, CROSSREF = {PLILP1992}, AUTHOR = {Carsten K. Gomard and Peter Sestoft}, TITLE = {Path Analysis for Lazy Data Structures}, YEAR = 1992, PAGES = {54-68} } @INPROCEEDINGS{Kahrs1992, CROSSREF = {PLILP1992}, AUTHOR = {Stephan Kahrs}, TITLE = {Unlimp, Uniqueness as a Leitmotiv for Implementation}, YEAR = 1992, PAGES = {115-129} } @INPROCEEDINGS{PenningsSwierstraVogt1992, CROSSREF = {PLILP1992}, AUTHOR = {M. Pennings and D. Swierstra and H. Vogt}, TITLE = {Using Cached Functions and Constructors for Incremental Attribute Evaluation}, YEAR = 1992, PAGES = {130-144} } @INPROCEEDINGS{Rosendahl1992, CROSSREF = {PLILP1992}, AUTHOR = {Mads Rosendahl}, TITLE = {Strictness Analysis for Attribute Grammars}, YEAR = 1992, PAGES = {145-157} } @INPROCEEDINGS{Hans1992, CROSSREF = {PLILP1992}, AUTHOR = {Werner Hans}, TITLE = {A Complete Indexing Scheme for {WAM}-Based Abstract Machines}, YEAR = 1992, PAGES = {232-244} } @INPROCEEDINGS{Mueck1992, CROSSREF = {PLILP1992}, AUTHOR = {Andreas Mück}, TITLE = {{CAMEL}: An Extension of the Categorical Abstract Machine to Compile Functional/Logic Programs}, YEAR = 1929, PAGES = {341-354} } @INPROCEEDINGS{HansLoogenWinkler1992, CROSSREF = {PLILP1992}, AUTHOR = {Werner Hans and Rita Loogen and Stefan Winkler}, TITLE = {On the Interaction of Lazy Evaluation and Backtracking}, YEAR = 1992, PAGES = {355-369} } @InProceedings{KuiperSwierstra1987, author = "M. F. Kuiper and S. D. Swierstra", title = "Using Attribute Grammars to Derive Efficient Functional Programs", crossref = "CSN1987", note = "Also appears as technical report RUU-CS-86-16, Utrecht University, The Netherlands. URL: ftp://ftp.cs.ruu.nl/pub/RUU/CS/techreps/CS-1986/1986-16.ps.gz" } @ARTICLE{MorenoNavarroRodriguezArtalejo1992, AUTHOR = {J. J. Moreno-Navarro and M. Rodr{\'\i}guez-Artalejo}, TITLE = {Logic Programming with Functions and Predicates: The Language {BABEL}}, JOURNAL = jlp, YEAR = 1992, VOLUME = {12}, PAGES = {191-223}, NOTE = {North Holland} } @ARTICLE{BelliaLevi1986, AUTHOR = {Marco Bellia and Giorgio Levi}, TITLE = {The Relation Between Logic and Functional Languages: A Survey}, JOURNAL = jlp, YEAR = 1986, VOLUME = {3}, PAGES = {217-236} } @INPROCEEDINGS{LindstromMaluszynskiOgi1992, CROSSREF = {PLILP1992}, AUTHOR = {Gary Lindstrom and Jan Ma{\l}uszy{\'n}ski and T. Ogi}, TITLE = {Our {LIPS} are Sealed: Interfacing Functional and Logic Programming Systems}, YEAR = 1992, PAGES = {428-442} } @ARTICLE{PMN1988, AUTHOR = {Carl Ponder and Patrick McGeer and Antony Ng}, TITLE = {Are Applicative Languages Inefficient?}, JOURNAL = notices, YEAR = 1988, VOLUME = {23}, NUMBER = {6}, PAGES = {x} } @ARTICLE{BW1973, AUTHOR = {Bobrow and Wegbreit}, TITLE = {A Model and Stack Implementation of Multiple Environments}, JOURNAL = cacm, YEAR = 1973, VOLUME = {16}, NUMBER = {10}, PAGES = {591-602} } @InBook{BobrowGabrielWhite1993, author = "Daniel G. Bobrow and Richard P. Gabriel and Jon L. White", title = "{CLOS} in Context --- The Shape of the Design Space", chapter = 2, crossref = "Paepke1993" } @INBOOK{GoubaultHankin1992, AUTHOR = {Eric Goubault and Chris L. Hankin}, CHAPTER = {9}, TITLE = {A Lattice for the Abstract Interpretation of Term Graph Rewriting Systems}, CROSSREF = {SleepPlasmeijervanEekelen1992}, YEAR = 1992 } @INBOOK{EGHN1992, AUTHOR = {Marko {van Eekelen} and Eric Goubault and Chris Hankin and Eric Nöcker}, CHAPTER = {13}, TITLE = {Abstract Reduction: Towards a Theory via Abstract Interpretation}, CROSSREF = {SPE1992}, YEAR = 1992 } @TECHREPORT{EGHN1991, AUTHOR = {Marko {van Eekelen} and Eric Goubault and Chris Hankin and Eric Nöcker}, TITLE = {Abstract Reduction: Towards a Theory via Abstract Interpretation}, INSTITUTION = {Dept. of Computing, Imperial College}, YEAR = 1991, TYPE = {Research Report}, NUMBER = {DOC 91/26}, ADDRESS = {180 Queen's Gate, London SW7 2BZ}, MONTH = jul } @INPROCEEDINGS{Nocker1990, BOOKTITLE = {Proceedings of the Second International Workshop on Implementations of Functional Languages on Distributed Architectures}, AUTHOR = {E.G.J.M.H. Nöcker}, TITLE = {Strictness Analysis using Abstract Reduction}, YEAR = 1990, ORGANIZATION = {University of Nijmegen}, MONTH = nov } @ARTICLE{MossMeseguerGoguen1992, AUTHOR = {L. S. Moss and J. Meseguer and J. A. Goguen}, TITLE = {Final Algebras, Cosemicomputable Algebras and Degrees of Unsolvability}, JOURNAL = tcs, YEAR = 1992, VOLUME = {100}, NUMBER = {2}, PAGES = {267-302}, MONTH = jun } @TECHREPORT{MaMe1990, AUTHOR = {Narciso Mart{\'{\i}}-Oliet and Jos{\'e} Meseguer}, TITLE = {Inclusions and Subtypes}, INSTITUTION = {SRI International, Computer Science Laboratory}, YEAR = 1990, NUMBER = {SRI-CSL-90-16}, MONTH = dec } @Article{DiCosmoKesner1994, author = "Roberto {Di Cosmo} and Delia Kesner", title = "Simulating Expansions Without Expansions", journal = MSCS, year = 1994, volume = 4, pages = "1-48", annote = "eta-expansion" } @INPROCEEDINGS{SekarRameshRamakrishnan1992, CROSSREF = {ICALP92}, AUTHOR = {R. C. Sekar and R. Ramesh and I. V. Ramakrishnan}, TITLE = {Adaptive Pattern Matching}, YEAR = 1992, PAGES = {247-260} } @ARTICLE{DH1992, AUTHOR = {M. Dezani-Ciancaglini and J. R. Hindley}, TITLE = {Intersection Types for Combinatory Logic}, JOURNAL = tcs, YEAR = 1992, VOLUME = {100}, NUMBER = {2}, PAGES = {303-224}, MONTH = jun } @INPROCEEDINGS{Cardone1989, CROSSREF = {ICALP1989}, AUTHOR = {F. Cardone}, TITLE = {Relational semantics for Recursive Types and Bounded Quantification}, YEAR = 1989, PAGES = {164-178} } @INPROCEEDINGS{BruceLongo1988, CROSSREF = {LICS1988}, AUTHOR = {Kim Bruce and Giuseppe Longo}, TITLE = {A Modest Model of Records, Inheritance, and Bounded Quantification}, YEAR = 1988, PAGES = {38-50} } @INPROCEEDINGS{AbadiPlotkin1990, CROSSREF = {LICS1990}, AUTHOR = {Martin Abadi and Gordon Plotkin}, TITLE = {A {PER} Model of Polymorphism and Recursive Types}, YEAR = 1990, PAGES = {x} } @ARTICLE{Meinke1992, AUTHOR = {Kurt Meinke}, TITLE = {Universal Algebras in Higher Types}, JOURNAL = tcs, YEAR = 1992, VOLUME = {100}, NUMBER = {2}, PAGES = {385-418}, MONTH = jun } @INCOLLECTION{MeinkeTucker1990, AUTHOR = {Kurt Meinke and John V. Tucker}, TITLE = {Universal Algebra}, BOOKTITLE = {Handbook of Logic in Computer Science}, PUBLISHER = {Oxford University Press}, YEAR = 1990, EDITOR = {S. Abramsky and D. Gabbay and T. S. E. Maibaum}, ADDRESS = {Oxford} } @INPROCEEDINGS{Deutsch1992, CROSSREF = {ICCL92}, AUTHOR = {Alain Deutsch}, TITLE = {A Storeless Model of Aliasing and its Abstractions using Finite Representations of Right-Regular Equivalence Relations}, YEAR = 1992, PAGES = {2-13} } @PHDTHESIS{DeutschPhD1992, AUTHOR = {Alain Deutsch}, TITLE = {Operational Models of Programming Languages and Representations of Relations on Regular Languages with Application to the Static Determination of Dynamic Aliasing Properties of Data}, SCHOOL = {LIX, Laboratoire d'Informatique de l'{\'{E}}cole Polytechnique}, YEAR = 1992, MONTH = apr } @INPROCEEDINGS{TL1992, CROSSREF = {PLDI1992}, AUTHOR = {Jichang Tan and I-Peng Lin}, TITLE = {Compiling Dataflow Analysis of Logic Programs}, YEAR = 1992, PAGES = {106-115} } @INPROCEEDINGS{PG1992, CROSSREF = {PLDI1992}, AUTHOR = {Young Gil Park and Benjamin Goldberg}, TITLE = {Escape Analysis on Lists}, YEAR = 1992, PAGES = {116-127} } @INPROCEEDINGS{Benton1993, CROSSREF = {WSA1993}, AUTHOR = {P. N. Benton}, TITLE = {Strictness Properties of Lazy Algebraic Datatypes}, YEAR = 1993, PAGES = {206-217} } @INBOOK{Hudak1987, AUTHOR = {Paul Hudak}, CHAPTER = {3}, PAGES = {45-62}, TITLE = {A Semantics Model of Reference Counting and its Abstraction}, CROSSREF = {AbramskyHankin1987}, YEAR = 1987 } @INBOOK{Wadler1987, AUTHOR = {Philip L. Wadler}, CHAPTER = {12}, CROSSREF = {AbramskyHankin1987}, } @InBook{Jones1987-aidl, author = "Neil D. Jones", title = "Flow Analysis of Lazy Higher-Order Functional Programs", crossref = "AbramskyHankin1987", pages = "103-122", annote = "grammar-based analysis" } @INPROCEEDINGS{JoLM1989, CROSSREF = {FPCA1989}, AUTHOR = {Simon B. Jones and Daniel {Le M{\'e}tayer}}, TITLE = {Compile-time Garbage Collection by Sharing Analysis}, YEAR = 1989, PAGES = {54-74} } @INPROCEEDINGS{GG1992, CROSSREF = {LFP1992}, AUTHOR = {Benjamin Goldberg and Michael Gloger}, TITLE = {Polymorphic Type Reconstruction for Garbage Colleaction without Tags}, YEAR = 1992, PAGES = {x} } @INPROCEEDINGS{Kaes1992, CROSSREF = {LFP1992}, AUTHOR = {Stefan Kaes}, TITLE = {Type Inference in the Presence of Overloading, Subtyping and Recursive Types}, YEAR = 1992, PAGES = {x} } @INPROCEEDINGS{AppelJim1989, CROSSREF = {POPL1989}, AUTHOR = {Andrew W. Appel and Trevor Jim}, TITLE = {Continuation-Passing, Closure-Passing Style}, YEAR = 1989, PAGES = {293-302} } @TechReport{AppelJim1994, author = {Andrew W. Appel and Trevor Jim}, title = "Making Lambda Calculus Smaller, Faster", institution = "Princeton University", year = 1994, number = "CS-TR-477-94", month = jun } @InProceedings{Jim1996, author = "Trevor Jim", title = "What are Principal Typings and What are they Good For?", crossref = "POPL1996", pages = "42-53", annote = "Technical Memorandum MIT/LCS/TM-532" } @TECHREPORT{Steele1978, AUTHOR = {Guy L. Steele}, TITLE = {Rabbit: a Compiler for {Scheme}}, INSTITUTION = {MIT}, YEAR = 1978, NUMBER = {AI-TR-474}, ADDRESS = {Cambridge, MA} } @ARTICLE{Cheney1970, AUTHOR = {C. J. Cheney}, TITLE = {A Nonrecursive List Compacting Algorithm}, JOURNAL = cacm, YEAR = 1970, VOLUME = {13}, NUMBER = {11}, PAGES = {677-678} } @ARTICLE{Appel1989, AUTHOR = {Andrew W. Appel}, TITLE = {Runtime Tags Aren't Necessary}, JOURNAL = lasc, YEAR = 1989, VOLUME = {2}, NUMBER = {2}, PAGES = {153-162}, MONTH = jun } @ARTICLE{AS1992, AUTHOR = {Andrew W. Appel and Zhong Shao}, TITLE = {Callee-save Registers in Continuation-passing Style}, JOURNAL = lasc, YEAR = 1992, VOLUME = {5}, NUMBER = {3}, PAGES = {191-222}, MONTH = sep } @ARTICLE{LL1992, AUTHOR = {Guy Lapalme and Mario Latendresse}, TITLE = {A Debugging Environment for Lazy Functional Languages}, JOURNAL = lasc, YEAR = 1992, VOLUME = {5}, NUMBER = {3}, PAGES = {271-287}, MONTH = sep } @ARTICLE{Appel1989a, AUTHOR = {Andrew W. Appel}, TITLE = {Simple Generational Garbage Collection and Fast Allocation}, JOURNAL = swpe, YEAR = 1989, VOLUME = {19}, NUMBER = {2}, PAGES = {171-183}, MONTH = feb } @ARTICLE{Appel1989b, AUTHOR = {Andrew W. Appel}, TITLE = {Allocation without Locking}, JOURNAL = swpe, YEAR = 1989, VOLUME = {19}, NUMBER = {7}, PAGES = {703-705}, MONTH = jul } @ARTICLE{Grue1989, AUTHOR = {Klaus E. Grue}, TITLE = {Arrays in Pure Functional Programming Languages}, JOURNAL = lasc, YEAR = 1989, VOLUME = {2}, NUMBER = {2}, PAGES = {105-114} } @UNPUBLISHED{Hughes????, AUTHOR = {John Hughes}, TITLE = {An Efficient Implementation of Purely Functional Arrays}, NOTE = {to appear} } @ARTICLE{Schmidt1985, AUTHOR = {David A. Schmidt}, TITLE = {Detecting Global Variables in Denotational Specifications}, JOURNAL = toplas, YEAR = 1985, VOLUME = {7}, NUMBER = {2}, PAGES = {299-310}, MONTH = apr } @TECHREPORT{Perry1992tech, AUTHOR = {Nigel Perry}, TITLE = {Towards a Concurrent Object/Process Oriented Functional Language}, INSTITUTION = {Department of Computer Science, Massey University}, YEAR = 1992, NUMBER = {(short version)}, ADDRESS = {Palmerston North, New Zealand}, EMAIL = {N.Perry@massey.ac.nz} } @ARTICLE{Perry1992, AUTHOR = {Nigel Perry}, TITLE = {Towards a Concurrent Object/Process Oriented Functional Language}, JOURNAL = {Fifteen Australian Computer Science Conference, Australian Computer Science Communications}, YEAR = 1992, VOLUME = {14}, NUMBER = {1} } @INCOLLECTION{SG1992, BOOKTITLE = {Proc. Phoenix Seminar and Workshop on Declarative Programming}, AUTHOR = {Wolfram Schulte and Wolfgang Grieskamp}, TITLE = {Generating Efficient Portable Code for a Strict Applicative Language}, EDITOR = {John Darlington and R. Dietrich}, YEAR = 1992, PAGES = {?}, PUBLISHER = SP, ADDRESS = {Sasbachwalden, Germany}, MONTH = nov } @ARTICLE{FGGP1993, AUTHOR = {Andreas Fett and Carola Gerke and Wolfgang Grieskamp and Peter Pepper}, TITLE = {Algebraic Programming in {\sc Opal}}, JOURNAL = {EATCS Bulletin}, YEAR = 1993, NUMBER = {50}, PAGES = {171-181}, MONTH = jun } @TECHREPORT{OPAL1, EDITOR = {Peter Pepper}, TITLE = {The Programming Language {OPAL-1}}, INSTITUTION = {TU-Berlin}, YEAR = 1991, NUMBER = {May-91} } @Article{MitchellPlotkin1988, author = "John C. Mitchell and Gordon D. Plotkin", title = "Abstract Types have Existential Types", journal = toplas, month = jul, year = "1988", volume = "10", number = "3", pages = "470-502" } @Inproceedings{LauferOdersky1991, AUTHOR = {Konstantin Läufer and Martin Odersky}, TITLE = {Type Classes are Signatures of Abstract Types}, BOOKTITLE = {Proc. Phoenix Seminar and Workshop on Declarative Programming}, MONTH = nov, YEAR = {1991} } @Inproceedings{LauferOdersky1992, AUTHOR = {Läufer, Konstantin and Odersky, Martin}, TITLE = {An Extension of {ML} with First-Class Abstract Types}, CROSSREF = {ML1992}, YEAR = {1992}, PAGES = {78-91} } @Article{Laufer1996, author = {Konstantin Läufer}, title = {Type Classes with Existential Types}, journal = jfp, year = 1996, volume = 6, number = 3, pages = "485-517", month = may } @Article{LauferOdersky1994, author = {Konstantin L\"{a}ufer and Martin Odersky}, title = "Polymorphic Type Inference and Abstract Data Types", journal = toplas, volume = 16, number = 5, pages = "1411-1430", month = sep, year = 1994 } @INPROCEEDINGS{Remy1992, CROSSREF = {ML1992}, AUTHOR = {Didier R{\'{e}}my}, TITLE = {Efficient Representation of Extensible Records}, YEAR = 1992, PAGES = {12-16} } @InProceedings{Remy1994, author = "Didier R{\'{e}}my", title = "Programming Objects with {ML-ART}: An Extension of {ML} with abstract and record types", crossref = "TACS1994", pages = "321-346" } @INPROCEEDINGS{Wand1986, CROSSREF = {POPL1986}, AUTHOR = {Mitchell Wand}, TITLE = {Finding the Source of Type Errors}, YEAR = 1986, PAGES = {38-43} } @INPROCEEDINGS{BCHSZ1993, CROSSREF = {PPOPP1993}, AUTHOR = {Guy E. Blelloch and Siddharta Chatterjee and Jonathan C. Hardwick and Jay Sipelstein and Marco Zagha}, TITLE = {Implementation of a Portable Nested Data-Parallel Language}, YEAR = 1993, PAGES = {102-111}, KEYWORDS = {nesl parallel} } @PHDTHESIS{Mycroft1981, AUTHOR = {Alan Mycroft}, TITLE = {Abstract Interpretation and Optimising Transformations for Applicative Programs}, SCHOOL = {Dept. of Computer Science, University of Edinburgh}, YEAR = 1981 } @INPROCEEDINGS{JM1986, CROSSREF = {POPL1986}, AUTHOR = {Neil D. Jones and Alan Mycroft}, TITLE = {Data Flow Analysis of Applicative Programs Using Minimal Function Graphs}, YEAR = 1986, PAGES = {296-306} } @PHDTHESIS{Shivers1991, AUTHOR = {Olin Shivers}, TITLE = {Control-Flow Analysis of Higher-Order Languages}, SCHOOL = {School of Computer Science, Carnegie Mellon University}, YEAR = 1991, ADDRESS = {Pittsburgh, PA 15213}, MONTH = may, NOTE = {Also technical report CMU-CS-91-145} } @InProceedings{JonesMuchnick1979, author = "Neil D. Jones and Stephen Muchnick", title = "Flow Analysis and Optimization of {Lisp}-like Languages", crossref = "POPL1979", pages = "244-256" } @INPROCEEDINGS{StefanescuZhou1994, CROSSREF = {LFP1994}, AUTHOR = {Dan Stefanescu and Yuli Zhou}, TITLE = {An Equational Framework for the Flow Analysis of Higher-Order Functional Programs}, YEAR = 1994, PAGES = {318-327} } @INPROCEEDINGS{Deutsch1990, CROSSREF = {POPL1990}, AUTHOR = {Alain Deutsch}, TITLE = {On Determining Lifetime and Aliasing of Dynamically Allocated Data in Higher Order Functional Specifications}, YEAR = 1990, PAGES = {157-168} } @INPROCEEDINGS{PS1990, CROSSREF = {LFP1990}, AUTHOR = {Laurence Puel and Asc\'{a}nder Su\'{a}rez}, TITLE = {Compiling Pattern Matching by Term Decomposition}, YEAR = 1990, PAGES = {x} } @INPROCEEDINGS{NS1991, CROSSREF = {FPCA1991}, AUTHOR = {Tobias Nipkow and Gregor Snelting}, TITLE = {Type Classes and Overloading Resolution via Order-Sorted Unification}, YEAR = 1991, PAGES = {1-14} } @ARTICLE{MGS1989, AUTHOR = {Jose Meseguer and Joseph Goguen and Gert Smolka}, TITLE = {Order-Sorted Unification}, JOURNAL = jsc, YEAR = 1989, VOLUME = {8}, PAGES = {383-413}, MYNOTE = {does not really belong here} } @INPROCEEDINGS{SchmidtSchauss1985, CROSSREF = {IJCAI1985}, AUTHOR = {Manfred Schmidt-Schauß}, TITLE = {A Many-sorted Calculus with Polymorphic Functions Based on Resolution and Paramodulation}, YEAR = 1985, PAGES = {1162-1168} } @INPROCEEDINGS{VolpanoSmith1991, CROSSREF = {FPCA1991}, AUTHOR = {Dennis M. Volpano and Geoffrey S. Smith}, TITLE = {On the Complexity of {ML} typability with Overloading}, YEAR = 1991, PAGES = {15-28} } @INPROCEEDINGS{Thatte1991, CROSSREF = {FPCA1991}, AUTHOR = {Satish R. Thatte}, TITLE = {Coercive Type Isomorphism}, YEAR = 1991, PAGES = {29-49} } @INPROCEEDINGS{NipkowPrehofer1993, CROSSREF = {POPL1993}, AUTHOR = {Tobias Nipkow and Christian Prehofer}, TITLE = {Type Checking Type Classes}, YEAR = 1993, PAGES = {409-418} } @INPROCEEDINGS{Maranget1991, CROSSREF = {FPCA1991}, AUTHOR = {Luc Maranget}, TITLE = {{GAML}: a Parallel Implementation of Lazy {ML}}, YEAR = 1991, PAGES = {102-123} } @INPROCEEDINGS{Maranget1992, CROSSREF = {LFP1992}, AUTHOR = {Luc Maranget}, TITLE = {Compiling Lazy Pattern Matching}, YEAR = 1992, PAGES = {21-31} } @InCollection{Fokker1995-bastad, author = "Jeroen Fokker", title = "Functional Parsers", crossref = "JeuringMeijer1995", pages = "1-23" } @InCollection{Wadler1995-bastad, author = "Philip Wadler", title = "Monads for Functional Programming", crossref = "JeuringMeijer1995", pages = "24-52" } @InCollection{Hughes1995-bastad, author = "John Hughes", title = "The Design of a Pretty-Printing Library", crossref = "JeuringMeijer1995", pages = "53-96" } @InCollection{Jones1995-bastad, author = "Mark P. Jones", title = "Functional Programming with Overloading and Higher-Order Polymorphism", crossref = "JeuringMeijer1995", pages = "97-136" } @InCollection{HallgrenCarlsson1995-bastad, author = "Thomas Hallgren and Magnus Carlsson", title = "Programming with {Fudgets}", crossref = "JeuringMeijer1995", pages = "137-182" } @InCollection{EekelenPlasmeijer1995-bastad, author = "Marko C. J. D. {van Eekelen} and Rinus M. J. Plasmeijer", title = "Constructing Medium Sized Efficient Functional Programs in {Clean}", crossref = "JeuringMeijer1995", pages = "183-227" } @InCollection{MeijerJeuring1995-bastad, author = "Erik Meijer and Johan Jeuring", title = "Merging Monads and Folds for Functional Programming", crossref = "JeuringMeijer1995", pages = "228-266" } @InCollection{KieburtzLewis1995-bastad, author = "Richard B. Kieburtz and Jeffrey Lewis", title = "Programmings with Algebras", crossref = "JeuringMeijer1995", pages = "267-307" } @InCollection{Launchbury1995-bastad, author = "John Launchbury", title = "Graph Algorithms with a Functional Flavour", crossref = "JeuringMeijer1995", pages = "308-331" } @INPROCEEDINGS{MeijerFokkingaPaterson1991, CROSSREF = {FPCA1991}, AUTHOR = {Erik Meijer and Maarten Fokkinga and Ross Paterson}, TITLE = {Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire}, YEAR = 1991, PAGES = {124-144}, myNOTE = {Theory for program transformations} } @PhdThesis{Meijer1992, author = "Erik Meijer", title = "Calculating Compilers", school = "Katholieke Universiteit Nijmegen", year = 1992, month = feb, annote = "program transformation, program calculation" } @InProceedings{TakanoMeijer1995, author = "Akihiko Takano and Erik Meijer", title = "Shortcut Deforestation in Calculational Form", crossref = "FPCA1995", pages = "306-313" } @InProceedings{LaunchburySheard1995, author = "John Launchbury and Tim Sheard", title = "Warm Fusion: Deriving Build-Cata's from Recursive Definitions", crossref = "FPCA1995", pages = "314-323" } @InProceedings{MeijerHutton1995, author = "Erik Meijer and Graham Hutton", title = "Bananas in Space: Extending Fold and Unfold to Exponential Types", crossref = "FPCA1995", pages = "324-333" } @InProceedings{MeijerPeytonJones1997, author = "Erik Meijer and Simon {Peyton Jones}", title = "{Henk}: a typed intermediate language", crossref = "TIC1997", note = "http://www.cse.ogi.edu/~simonpj/core.ps.gz" } @Unpublished{PeytonJonesLaunchburyShieldsTolmach1997, author = "Simon {Peyton Jones} and John Launchbury and Mark Shields and Andrew Tolmach", title = "The Design of a Typed Intermediate Language", note = "http://www.cse.ogi.edu/~simonpj/neutral.ps.gz" } @INPROCEEDINGS{SRI1991, CROSSREF = {FPCA1991}, AUTHOR = {Vipin Swarup and Uday S. Reddy and Evan Ireland}, TITLE = {Assignments for Applicative Languages}, YEAR = 1991, PAGES = {192-214} } @InProceedings{Reddy1988, author = "Uday S. Reddy", title = "Objects as Closures: Abstract Semantics of Object Oriented Languages", crossref = "LFP1988", pages = "289-297" } @INPROCEEDINGS{WR1991, CROSSREF = {FPCA1991}, AUTHOR = {David Wakeling and Colin Runciman}, TITLE = {Linearity and Laziness}, YEAR = 1991, PAGES = {215-240} } @INPROCEEDINGS{LM1991, CROSSREF = {FPCA1991}, AUTHOR = {Allen Leung and Prateek Mishra}, TITLE = {Reasoning about Simple and Exhaustive Demand in Higher-Order Lazy Languages}, YEAR = 1991, PAGES = {328-351} } @INPROCEEDINGS{Jensen1991, CROSSREF = {FPCA1991}, AUTHOR = {Thomas P. Jensen}, TITLE = {Strictness Analysis in Logical Form}, YEAR = 1991, PAGES = {352-366} } @INPROCEEDINGS{AN1991, CROSSREF = {FPCA1991}, AUTHOR = {Shail Aditya and Rishiyur S. Nikhil}, TITLE = {Incremental Polymorphism}, YEAR = 1991, PAGES = {379-405} } @INPROCEEDINGS{Leroy1991, CROSSREF = {FPCA1991}, AUTHOR = {Xavier Leroy and Michel Mauny}, TITLE = {Dynamics in {ML}}, YEAR = 1991, PAGES = {406-426} } @InProceedings{LeroyWeis1991, author = "Xavier Leroy and Pierre Weis", title = "Polymorphic Type Inference and Assignment", crossref = "POPL1991", pages = "291-302" } @Article{Tofte1990-iandc, author = "Mads Tofte", title = "Type Inference for Polymorphic References", journal = iandc, year = 1990, volume = 89, pages = "1-34" } @INPROCEEDINGS{AM1991, CROSSREF = {FPCA1991}, AUTHOR = {Alexander Aiken and Brian R. Murphy}, TITLE = {Implementing Regular Tree Expressions}, YEAR = 1991, PAGES = {427-447} } @INPROCEEDINGS{Henglein1991, CROSSREF = {FPCA1991}, AUTHOR = {Fritz Henglein}, TITLE = {Efficient Type Inference for Higher-Order Binding-Time Analysis}, YEAR = 1991, PAGES = {448-472} } @InProceedings{LaunchburyHolst1991, author = "John Launchbury and Carsten Kehler Holst", title = "Handwriting Cogen to Avoid Problems with Static Typing", pages = "210-218", booktitle = "Draft Proceedings, Fourth Annual Glasgow Workshop on Functional Programming", year = 1991, organization = "Glasgow University", address = "Skye, Scotland" } @INPROCEEDINGS{Holst1991, CROSSREF = {FPCA1991}, AUTHOR = {Carsten Kehler Holst}, TITLE = {Finiteness Analysis}, YEAR = 1991, PAGES = {473-495} } @Article{PalsbergSchwartzbach1995-ic, author = "Jens Palsberg and Michael I. Schwartzbach", title = "Safety Analysis versus Type Inference", journal = iandc, year = 1995, volume = 118, pages = "128-141" } @Article{Palsberg1995, author = "Jens Palsberg", title = "Closure Analysis in Constraint Form", journal = toplas, year = 1995, volume = 17, number = 1, pages = "47-62" } @InProceedings{PalsbergSchwartzbach1994, author = "Jens Palsberg and Michael I. Schwartzbach", title = "Binding-Time Analysis: Abstract Interpretation versus Type Inference", crossref = "ICCL1994", pages = "289-298" } @InProceedings{PalsbergOKeefe1995, author = "Jens Palsberg and Patrick O'Keefe", title = "A Type System Equivalent to Flow Analysis", crossref = "POPL1995", pages = "367-378" } @InProceedings{CourcelleKahnVuillemin1974, author = "Bruno Courcelle and Gilles Kahn and Jean Vuillemin", title = "Algorithmes d'équivalence et de réduction à des expressions minimales, dans une classe d'équations recursive simples", editor = "Jacques Loeckx", pages = "200-213", booktitle = "Proc.~2nd International Colloquium on Automata, Languages, and Programming", year = 1974, publisher = SP, note = "LNCS 14" } @INPROCEEDINGS{DanvyMalmkjaerPalsberg1994, CROSSREF = {PEPM1994}, AUTHOR = {Olivier Danvy and Karoline Malmkjær and Jens Palsberg}, TITLE = {The Essence of Eta-Expansion in Partial Evaluation}, YEAR = 1994, PAGES = {11-20} } @Article{DanvyMalmkjaerPalsberg1995-lasc, author = {Olivier Danvy and Karoline Malmkjær and Jens Palsberg}, title = {The Essence of Eta-Expansion in Partial Evaluation}, journal = LASC, year = 1995, volume = 8, number = 3, pages = "209-227", month = jul, annote = "supersedes \cite{DanvyMalmkjaerPalsberg1994}" } @TechReport{DanvyMalmkjaerPalsberg1995, author = {Olivier Danvy and Karoline Malmkjær and Jens Palsberg}, title = "Eta-Expansion does {The Trick}", institution = "Computer Science Dept., Aarhus University", year = 1995, number = "BRICS RS-95-41", address = "Denmark", month = aug } @Article{DanvyMalmkjaerPalsberg1996, author = {Olivier Danvy and Karoline Malmkjær and Jens Palsberg}, title = "Eta-Expansion does {The Trick}", journal = toplas, year = 1996, volume = 18, number = 6, pages = "730-751", month = nov } @InProceedings{Heintze1994, author = "Nevin Heintze", title = "Set-based Analysis of {ML}-programs", crossref = "LFP1994", pages = "306-317" } @InProceedings{Heintze1995, author = "Nevin Heintze", title = "Control-Flow Analysis and Type Systems", crossref = "SAS1995", pages = "189-206" } @INPROCEEDINGS{MalmkjaerHeintzeDanvy1994, CROSSREF = {ML1994}, AUTHOR = { Karoline Malmkjær and Olivier Danvy and Nevin Heintze}, TITLE = {{ML} Partial Evaluation using Set-Based Analysis}, YEAR = 1994, PAGES = {112-119} } @INPROCEEDINGS{SNGP1991, CROSSREF = {FPCA1991}, AUTHOR = {Sjaak Smetsers and Eric Nöcker and John {van Groningen} and Rinus Plasmeijer}, TITLE = {Generating Efficient Code for Lazy Functional Languages}, YEAR = 1991, PAGES = {592-617} } @TECHREPORT{SBEP1993, AUTHOR = {Sjaak Smetsers and Erik Barendsen and Marko {van Eekelen} and Rinus Plasmeijer}, TITLE = {Guaranteeing Safe Destructive Updates through a Type System with Uniqueness Information for Graphs}, INSTITUTION = {Department of Computer Science, University of Nijmegen}, YEAR = 1993, secretADDRESS = {Toernooiveld 1 6525 ED Nijmegen, The Netherlands}, NUMBER = {93-4} } @INPROCEEDINGS{Hannan1991, CROSSREF = {FPCA1991}, AUTHOR = {John Hannan}, TITLE = {Making Abstract Machines Less Abstract}, YEAR = 1991, PAGES = {618-635} } @INPROCEEDINGS{PeytonJonesLaunchbury1991, CROSSREF = {FPCA1991}, AUTHOR = {Simon L. {Peyton Jones} and John Launchbury}, TITLE = {Unboxed Values as First Class Citizens in a Non-Strict Functional Language}, YEAR = 1991, PAGES = {636-666} } @InProceedings{LaunchburyPaterson1996, author = "John Launchbury and Ross Paterson", title = "Parametricity and Unboxing with Unpointed Types", crossref = "ESOP1996" } @INPROCEEDINGS{Launchbury1991, CROSSREF = {FPCA1991}, AUTHOR = {John Launchbury}, TITLE = {A Strongly-Typed Self-Applicable Partial Evaluator}, YEAR = 1991, PAGES = {145-164} } @INPROCEEDINGS{WeiseConybeareRufSeligman1991, oldkey ={WCRS1991}, CROSSREF = {FPCA1991}, AUTHOR = {Daniel Weise and Roland Conybeare and Erik Ruf and Scott Seligman}, TITLE = {Automatic Online Partial Evaluation}, YEAR = 1991, PAGES = {165-191} } @INPROCEEDINGS{RufWeise1992, CROSSREF = {PEPM1992}, AUTHOR = {Erik Ruf and Daniel Weise}, TITLE = {Improving the Accuracy of Higher-Order Specialization Using Control Flow Analysis}, YEAR = 1992, PAGES = {67-74} } @InProceedings{KatzWeise1992, author = "Morry Katz and Daniel Weise", title = "Towards a New Perspective on Partial Evaluation", crossref = "PEPM1992", pages = "29-37" } @PHDTHESIS{Ruf1993, AUTHOR = {Erik Ruf}, TITLE = {Topics in Online Partial Evaluation}, SCHOOL = {Stanford University}, YEAR = 1993, ADDRESS = {Stanford, CA 94305-4055}, MONTH = mar, NOTE = {Technical report CSL-TR-93-563} } @InProceedings{GuenterKnoblockRuf1995, author = "Brian Guenter and Todd B. Knoblock and Erik Ruf", title = "Specializing Shaders", booktitle = "ACM SIGGRAPH '95", year = 1995, address = "Los Angeles, California", month = aug } @Unpublished{KnoblockRuf1995, author = "Todd B. Knoblock and Erik Ruf", title = "Data Specialization", note = "available from ftp://quilty.stanford.edu/~ftp/pub/ruf-pldi96-submission.ps.gz", year = 1995, month = oct } @InProceedings{KnoblockRuf1996, author = "Todd B. Knoblock and Erik Ruf", title = "Data Specialization", crossref = "PLDI1996", pages = "215-225" } @Article{Church1940, author = {Alonzo Church}, title = {A formulation of the simple theory of types}, journal = {Journal of Symbolic Logic}, year = {1940}, volume = {5}, pages = {56-68} } @INPROCEEDINGS{FreemanPfenning1991, CROSSREF = "PLDI1991", Author = "Tim Freeman and Frank Pfenning", TITLE = {Refinement Types for {ML}}, YEAR = "1991", PAGES = {268-277} } @InProceedings{CartwrightFagan1991, author = "Robert Cartwright and Mike Fagan", title = "Soft Typing", crossref = "PLDI1991", pages = "278-" } @InProceedings{PfenningElliott1988, author = "Frank Pfenning and Conal Elliott", title = "Higher-Order Abstract Syntax", crossref = "PLDI1988", pages = "199--208" } @InProceedings{Pfenning1996, author = "Frank Pfenning", title = "The Practice of Logical Frameworks", crossref = "CAAP1996" } @InProceedings{Pfenning1989, author={Pfenning, Frank}, title={{E}lf: A Language for Logic Definition and Verified Metaprogramming}, crossref={LICS1989}, pages={313--322}, source={ftp://theory.lcs.mit.edu/pub/meyer/lics.bib} } @INPROCEEDINGS{BarthNikhilArvind1991, CROSSREF = {FPCA91}, AUTHOR = {Paul S. Barth and Rishiyur S. Nikhil and Arvind}, TITLE = {M-Structures: Extending a Parallel, Non-strict, Functional Language with State}, YEAR = 1991, PAGES = {538-568} } @INPROCEEDINGS{HeytensNikhil1991, CROSSREF = {FPCA91}, AUTHOR = {Michael L. Heytens and Rishiyur S. Nikhil}, TITLE = {List Comprehesions in Agna, A Parallel Persistent Object System}, YEAR = 1991, PAGES = {569-591} } @TechReport{Nikhil1991, author = "Rishiyur S. Nikhil", title = "{Id (Version 90.1) Reference Manual}", type = "CSG Memo", number = "284-2", institution = "MIT Laboratory for Computer Science", address = "Cambridge, MA", month = jul, year = "1991", } @INPROCEEDINGS{WadlerHughes1987, CROSSREF = {FPCA1987}, AUTHOR = {Philip Wadler and John Hughes}, TITLE = {Projections for Strictness Analysis}, YEAR = 1987, PAGES = {385-407} } ***read this: @INPROCEEDINGS{Goldberg1987, CROSSREF = {FPCA1987}, AUTHOR = {Benjamin Goldberg}, TITLE = {Detecting Sharing of Partial Applications in Functional Languages}, YEAR = 1987, PAGES = {408-425} } @INPROCEEDINGS{MartinHankin1987, CROSSREF = {FPCA1987}, AUTHOR = {Chris Martin and Chris Hankin}, TITLE = {Finding Fixed Points in Finite Lattices}, YEAR = 1987, PAGES = {426-445} } @INPROCEEDINGS{Cardelli1988, CROSSREF = {POPL1988}, AUTHOR = {Luca Cardelli}, TITLE = {Structural Subtyping and the Notion of Power Type}, YEAR = 1988, PAGES = {70-79} } @ARTICLE{Cardelli1987, AUTHOR = {Luca Cardelli}, TITLE = {Basic Polymorphic Typechecking}, JOURNAL = {Science of Computer Programming}, YEAR = 1987, VOLUME = {8}, PAGES = {147-172} } @INPROCEEDINGS{Burn1987, CROSSREF = {FPCA1987}, AUTHOR = {Geoffrey L. Burn}, TITLE = {Evaluation transformers --- a Model for the Parallel Evaluation of Functional Languages}, YEAR = 1987, PAGES = {446-470} } @INPROCEEDINGS{DamasMilner1982, CROSSREF = {POPL1982}, AUTHOR = {Luis Damas and Robin Milner}, TITLE = {Principal Type-Schemes for Functional Programs}, YEAR = 1982, PAGES = {207-212} } @INPROCEEDINGS{GopinathHennessy1989, CROSSREF = {POPL1989}, AUTHOR = {K. Gopinath and John L. Hennessy}, TITLE = {Copy Elimination in Functional Languages}, YEAR = 1989, PAGES = {303-314} } @INPROCEEDINGS{Johnsson1987, CROSSREF = {FPCA1987}, AUTHOR = {Thomas Johnsson}, TITLE = {Attribute Grammars as a Functional Programming Paradigm}, YEAR = 1987, PAGES = {154-173} } @ARTICLE{Indermark1988, AUTHOR = {Klaus Indermark}, TITLE = {Functional Compiler Description}, JOURNAL = {Mathematical Problems in Computation Theory}, YEAR = 1988, VOLUME = {21}, PAGES = {257-275} } @INPROCEEDINGS{Watt1987, CROSSREF = {MFPLF1987}, AUTHOR = {David A. Watt}, TITLE = {An Action Semantics of Standard {ML}}, YEAR = 1987, PAGES = {572-598} } @ARTICLE{FradetLeMetayer1991, AUTHOR = {Pascal Fradet and Daniel {Le M\'{e}tayer}}, TITLE = {Compilation of Functional Languages by Program Transformation}, JOURNAL = toplas, YEAR = 1991, VOLUME = {13}, NUMBER = {1}, PAGES = {21-51}, MONTH = jan } @ARTICLE{Abadi1991, AUTHOR = {Mart{\'\i}n Abadi and Luca Cardelli and Benjamin Pierce and Gordon Plotkin}, TITLE = {Dynamic Typing in a Statically Typed Language}, JOURNAL = toplas, YEAR = 1991, VOLUME = {13}, NUMBER = {2}, PAGES = {237-268}, MONTH = apr } @ARTICLE{HudakYoung1991, AUTHOR = {Paul Hudak and J. Young}, TITLE = {Collecting Interpretation of Expressions}, JOURNAL = toplas, YEAR = 1991, VOLUME = {13}, NUMBER = {2}, PAGES = {269-290}, MONTH = apr } @INPROCEEDINGS{Meseguer1991, CROSSREF = {POPL1989}, AUTHOR = {Jose Meseguer}, TITLE = {Relating models of polymorphism}, YEAR = 1991, PAGES = {228-241} } @ARTICLE{MacQueenPlotkinSethi1986, AUTHOR = {David MacQueen and Gordon Plotkin and Ravi Sethi}, TITLE = {An Ideal Model for Recursive Polymorphic Types}, JOURNAL = iandc, YEAR = 1986, VOLUME = {71}, PAGES = {92-130} } @ARTICLE{PatersonWegman1978, AUTHOR = {M. S. Paterson and M. N. Wegman}, TITLE = {Linear Unification}, JOURNAL = jcss, YEAR = 1978, VOLUME = {16}, NUMBER = {2}, PAGES = {158-167} } @ARTICLE{Chapeaux1986, AUTHOR = {D. {de Chapeaux}}, TITLE = {About the Paterson-Wegman Linear Unification Algorithm}, JOURNAL = jcss, YEAR = 1986, VOLUME = {32}, PAGES = {79-88} } @INPROCEEDINGS{Mairson1990, CROSSREF = {POPL1990}, AUTHOR = {Harry G. Mairson}, TITLE = {Deciding {ML} Typability is Complete for Deterministic Exponential Time}, YEAR = 1990, PAGES = {x} } @INPROCEEDINGS{Henglein1988, CROSSREF = {LFP1988}, AUTHOR = {Fritz Henglein}, TITLE = {Type Inference and Semi-unification}, YEAR = 1988, PAGES = {184-197} } @INPROCEEDINGS{KapurMusserNarendranStillman1988, BOOKTITLE = {Proceedings of the 8th Conference on Foundations of Software Technology and Theoretical Computer Science}, AUTHOR = {D. Kapur and D. Musser and P. Narendran and J. Stillman}, TITLE = {Semi-Unification}, YEAR = 1988, PAGES = {435-454}, PUBLISHER = SP, ADDRESS = {Pune, India}, NOTE = {LNCS 338} } @INPROCEEDINGS{Leiss1989, BOOKTITLE = {Proceedings of the 3rd Workshop on Computer Science Logic, CSL'89}, AUTHOR = {Hans Lei{\ss}}, TITLE = {Polymorphic Recursion and Semi-Unification}, YEAR = 1989, PAGES = {211-224}, PUBLISHER = SP, NOTE = {LNCS 440} } @INPROCEEDINGS{Leiss1987, BOOKTITLE = {Proceedings of the 1st Workshop on Computer Science Logic, CSL'89}, AUTHOR = {Hans Lei{\ss}}, TITLE = {On Type Inference for Object-Oriented Programming}, YEAR = 1987, PAGES = {151-172}, PUBLISHER = SP, NOTE = {LNCS 329} } @INPROCEEDINGS{OhoriBuneman1988, CROSSREF = {LFP1988}, AUTHOR = {A. Ohori and P. Buneman}, TITLE = {Type Inference in a Database Programming Language}, YEAR = 1988, PAGES = {174-183}, KEYWORDS = {database} } @INPROCEEDINGS{KishonHudakConsel1991, CROSSREF = {PLDI1991}, AUTHOR = {Amir Kishon and Paul Hudak and Charles Consel}, TITLE = {Monitoring Semantics: A Formal Framework for Specifying, Implementing and Reasoning about Execution Monitors}, YEAR = 1991, PAGES = {338-352} } @INPROCEEDINGS{Launchbury1991pldi, CROSSREF = "PLDI1991", AUTHOR = "John Launchbury", TITLE = {Strictness and Binding-Time Analyses: Two for the Price of One}, YEAR = "1991", PAGES = "80-91" } @INPROCEEDINGS{ConselKhoo1991-pldi, CROSSREF = "PLDI1991", AUTHOR = "Charles Consel and Siau Cheng Khoo", TITLE = {Parameterized Partial Evaluation}, YEAR = "1991", PAGES = "92-106" } @ARTICLE{ConselKhoo1993, AUTHOR = {Charles Consel and Siau Cheng Khoo}, TITLE = {Parameterized Partial Evaluation}, JOURNAL = toplas, YEAR = 1993, VOLUME = {15}, NUMBER = {3}, PAGES = {463-493}, MONTH = jul } @INPROCEEDINGS{Consel1994, CROSSREF = {SAS1994}, AUTHOR = {Charles Consel}, TITLE = {Fast Strictness Analysis via Symbolic Fixpoint Iteration}, YEAR = 1994, PAGES = {423-431} } @INPROCEEDINGS{DHR1994, CROSSREF = {SAS1994}, AUTHOR = {Kristian {Damm Jensen} and Peter Hjæresen and Mads Rosendahl}, TITLE = {Efficient Strictness Analysis of {Haskell}}, YEAR = 1994, PAGES = {346-362} } @INPROCEEDINGS{SNN1994, CROSSREF = {SAS1994}, AUTHOR = {Kirsten Lackner Solberg and Hanne Riis Nielson and Flemming Nielson}, TITLE = {Strictness and Totality Analysis}, YEAR = 1994, PAGES = {408-422} } @PhdThesis{Solberg1995, author = "Kirsten Lackner Solberg", title = "Annotated Type Systems for Program Analysis", school = "Odense University", year = 1995, address = "Denmark", month = jul, note = "Also technical report DAIMI PB-498, Comp. Sci. Dept. Aarhus University" } @INPROCEEDINGS{Henglein1994, CROSSREF = {SAS1994}, AUTHOR = {Fritz Henglein}, TITLE = {Iterative Fixed Point Computation for Type-Based Strictness Analysis}, YEAR = 1994, PAGES = {395-407} } @TECHREPORT{MOTW1995, AUTHOR = {John Maraist and Martin Odersky and David N. Turner and Philip Wadler}, TITLE = {Call-by-name, Call-by-value, Call-by-need, and the Linear Lambda Calculus}, INSTITUTION = {Universität Karlsruhe, Fakultät für Informatik}, YEAR = 1995, NUMBER = {5/95} } @InProceedings{TurnerWadlerMossin1995, author = "David N. Turner and Philip Wadler and Christian Mossin", title = "Once Upon a Type", crossref = "FPCA1995", pages = "1-11" } @InProceedings{GunterRemyRiecke1995, author = "Carl A. Gunter and Didier R{\'e}my and John G. Riecke", title = "A Generalization of Exceptions and Control in {ML}-like Languages", crossref = "FPCA1995", pages = "12-23" } @TECHREPORT{OderskyWadlerWehr1995, AUTHOR = {Martin Odersky and Philip Wadler and Martin Wehr}, TITLE = {A Second Look at Overloading}, INSTITUTION = {Universität Karlsruhe, Fakultät für Informatik}, YEAR = 1995, NUMBER = {3/95} } @techreport{Sankaran1994, author = "Nandakumar Sankaran", title = "A Bibliography on Garbage Collection", institution = "Clemson University", address = "$4^{th}$ Floor, R. C. Edwards Hall, Computer Science Department, Clemson, SC 29631", month = feb, year = 1994, number = "94-102", mynote = "This paper references literature related to garbage collection in uniprocessor, parallel, distributed, real-time, object-oriented, functional and logic programming systems.", source = {/ftp.cs.clemson.edu:pub/papers/nandu/94-102.bib} } @INPROCEEDINGS{BoehmDemersShenker1991, CROSSREF = "PLDI1991", AUTHOR = "Hans-J. Boehm and Alan J. Demers and Scott Shenker", TITLE = {Mostly Parallel Garbage Collection}, YEAR = "1991", PAGES = "157-164" } @INPROCEEDINGS{Goldberg1991, CROSSREF = "PLDI1991", AUTHOR = "Benjamin Goldberg", TITLE = {Tag-Free Garbage Collection for Strongly Typed Programming Languages}, YEAR = "1991", PAGES = "165-176" } @INPROCEEDINGS{Kaes1988, CROSSREF = {ESOP1988}, AUTHOR = {Stefan Kaes}, TITLE = {Parametric Overloading in Polymorphic Programming Languages}, YEAR = 1988, PAGES = {131-144} } @MANUAL{sample, TITLE = {{SAMP$\lambda$E} --- User Manual and Report}, AUTHOR = {Stefan Kaes and Michael Gloger}, ORGANIZATION = {TH Darmstadt, Praktische Informatik}, ADDRESS = {Darmstadt}, MONTH = aug, YEAR = 1989 } @INPROCEEDINGS{FuhMishra1988, CROSSREF = {ESOP1988}, AUTHOR = {You-Chin Fuh and Prateek Mishra}, TITLE = {Type Inference with Subtypes}, YEAR = 1988, PAGES = {94-114} } @TECHREPORT{Sestoft1988, AUTHOR = {Peter Sestoft}, TITLE = {Replacing Function Parameters by Global Variables}, INSTITUTION = {DIKU, University of Copenhagen}, YEAR = 1988, NUMBER = {88-7-2}, myADDRESS = {Universitetsparken 1, DK-2100 Copenhagen O, Denmark}, MONTH = oct } @InProceedings{Sestoft1989, author = {Peter Sestoft}, title = {Replacing Function Parameters by Global Variables}, crossref = "FPCA1989", pages = "39-53" } @INPROCEEDINGS{GomardSestoft1991, CROSSREF = {PEPM1991}, AUTHOR = {Carsten K. Gomard and Peter Sestoft}, TITLE = {Globalization and Live Variables}, YEAR = 1991, PAGES = {166-177} } @PHDTHESIS{Gomard1991, AUTHOR = {Carsten K. Gomard}, TITLE = {Program Analysis Matters}, SCHOOL = {DIKU, University of Copenhagen}, YEAR = 1991, ADDRESS = {Denmark}, NOTE = {also DIKU Rapport 91/17} } @INPROCEEDINGS{Gomard1990, CROSSREF = {LFP1990}, AUTHOR = {Carsten K. Gomard}, TITLE = {Partial Type Inference for Untyped Functional Programs}, YEAR = 1990, PAGES = {282-287} } @Article{Gomard1992, author = {Carsten K. Gomard}, title = "A Self-Applicable Partial Evaluator for the Lambda-Calculus", journal = toplas, year = 1992, volume = 14, number = 2, pages = "147-172" } @InProceedings{JonesGomardBondorfDanvyMogensen1990, author = "Neil D. Jones and Carsten K. Gomard and Anders Bondorf and Olivier Danvy and Torben Mogensen", title = "A Self-applicable Partial Evaluator for the Lambda Calculus", crossref = "ICCL1990", pages = "49-58" } @InCollection{Ershov1978, author = "Andrei P. Ershov", title = "On the Essence of Compilation", booktitle = "Formal Description of Programming Concepts", publisher = "North-Holland", year = 1978, editor = "Erich J. Neuhold", pages = "391-420" } @InProceedings{Ershov1984, author = "Andrei P. Ershov", title = "On Mixed Computation: Informal Account of the Strict and Polyvariant Computational Schemes", editor = "Manfred Broy", pages = "107-120", booktitle = "Control Flow and Data Flow: Consepts of Distributed Programming", year = 1984, publisher = SP } @InProceedings{ErshovOstrovsky1987, author = "Andrei P. Ershov and B. N. Ostrovsky", title = "Controlled Mixed Computation and its Application to Systematic Development of Language-Oriented Parsers", editor = "Lambert G. L. T. Meertens", pages = "31-48", booktitle = "Program Specification and Transformation, Proc. IFIP TC2/WG 2.1 Working Conference on Program Specification and Transformation", year = 1987, publisher = "North Holland" } @Article{Danvy1991, author = "Olivier Danvy", title = "Semantics-Directed Compilation of Nonlinear Patterns", journal = ipl, year = 1991, volume = 37, number = 6, pages = "315-322", month = mar } @PHDTHESIS{Sestoft1991, AUTHOR = {Peter Sestoft}, TITLE = {Analysis and Efficient Implementation of Functional Programs}, SCHOOL = {DIKU, University of Copenhagen}, YEAR = 1991, ADDRESS = {Denmark}, NOTE = {also DIKU Rapport 92/6} } @INPROCEEDINGS{JonesSestoftSoendergaard1985, CROSSREF = {RTA1985}, AUTHOR = {Neil D. Jones and Peter Sestoft and Harald Søndergaard}, TITLE = {An Experiment in Partial Evaluation: The Generation of a Compiler Generator}, YEAR = 1985, PAGES = {124-140} } @Article{JonesSestoftSoendergaard1989, author = {Neil D. Jones and Peter Sestoft and Harald Søndergaard}, title = "Mix: A Self-applicable Partial Evaluator for Experiments in Compiler Generation", journal = lasc, year = 1989, volume = 2, number = 1, pages = "9-50", annote = "emphasis on unfolding strategy" } @Article{BeckmanHaraldssonOskarssonSandewall1976, author = "L. Beckman and A. Haraldsson and {\"O}. Oskarsson and E. Sandewall", title = "A Partial Evaluator, and Its Use as a Programming Tool", journal = "Artificial Intelligence", year = 1976, volume = "7", number = "4", pages = "319-357", annote = "The paper describes partial evaluation as a practical tool in program development. It defines the concepts and discusses a number of applications. A partial evaluator program Redfun and a partial evaluator compiler Redcompile are described.", } @PHDTHESIS{Haraldsson1977, AUTHOR = {Anders Haraldsson}, TITLE = {A Program Manipulation System Based on Partial Evaluation}, SCHOOL = {Linköping University}, YEAR = 1977, ADDRESS = {Sweden}, NOTE = {Linköping Studies in Science and Technology Dissertations 14} } @InProceedings{Consel1988, author = "Charles Consel", title = "New Insights into Partial Evaluation: The {SCHISM} Experiment", crossref = "ESOP1988", pages = "236-246", annote = "virtually content free" } @INPROCEEDINGS{Takano1991, CROSSREF = {PEPM1991}, AUTHOR = {Akihiko Takano}, TITLE = {Generalized Partial Computation for a Lazy Functional Language}, YEAR = 1991, PAGES = {1-11} } @TECHREPORT{FieldHuntWhile1989, AUTHOR = {A. J. Field and L. S. Hunt and R. L. While}, TITLE = {Best-fit pattern matching for functional languages}, INSTITUTION = {Dept. of Computing, Imperial College of Science and Technology}, YEAR = 1989, TYPE = {Internal report}, ADDRESS = {London} } @TECHREPORT{Perry1988, AUTHOR = {N. Perry}, TITLE = {{Hope}+}, INSTITUTION = {Dept. of Computing, Imperial College of Science and Technology}, YEAR = 1988, TYPE = {Internal report}, ADDRESS = {London} } @inproceedings{JensenMogensen1990, AUTHOR = {Thomas P. Jensen and Torben Æ. Mogensen}, TITLE = {A Backwards Analysis for Compile-time Garbage Collection}, PAGES = {227-239}, CROSSREF= {ESOP1990} } @INPROCEEDINGS{Mogensen1989, CROSSREF = {FPCA1989}, AUTHOR = {Torben {\AE}. Mogensen}, TITLE = {Separating Binding Times in Language Specifications}, YEAR = 1989, PAGES = {14-25} } @InProceedings{Mogensen1988, author = {Torben {\AE}. Mogensen}, title = "Partially Static Structures in a Self-Applicable Partial Evaluator", crossref = "PEMC1988", pages = "325-347" } @InProceedings{MogensenBondorf1992, author = "Torben {\AE}. Mogensen and Anders Bondorf", semno = "D-142", title = "Logimix: a self-applicable partial evaluator for {Prolog}", booktitle = "Proceedings of LOPSTR 92. Workshops in Computing", year = 1993, editor = "Kung-Kiu Lau and Tim Clement", publisher = "Springer-Verlag", month = Jan, note = "ISBN: 3-540-19806-7", keywords = "partial evaluation, Prolog, self-application", summary = "A self-applicable partial evaluator for a large subset of full Prolog is presented. Great care is taken to preserve the operational semantics of the partially evaluated programs, including the effects of non-logical predicates and side effects", supersedes = "D-77" } @INPROCEEDINGS{GoldbergPark1990, CROSSREF = {ESOP1990}, AUTHOR = {Benjamin Goldberg and Young Gil Park}, TITLE = {Higher Order Escape Analysis: Optimizing Stack Allocation in Functional Program Implementations}, YEAR = 1990, PAGES = {152-160} } @article{Wadler1990-tcs, author = "Philip L. Wadler", title = "Deforestation: Transforming programs to eliminate trees", journal = tcs, VOLUME = {73}, NUMBER = 2, pages = "231-248", year = 1990} @INPROCEEDINGS{WadlerBlott1989, CROSSREF = {POPL1989}, AUTHOR = {Philip Wadler and Stephen Blott}, TITLE = {How to make ad-hoc polymorphism less ad-hoc}, PAGES = {60-76}, YEAR = 1989 } @INPROCEEDINGS{KanellakisMitchell1989, CROSSREF = {POPL1989}, AUTHOR = {Paris C. Kanellakis and John C. Mitchell}, TITLE = {Polymorphic unification and {ML} typing}, PAGES = {105-115}, YEAR = 1989 } @inproceedings{Wadler1988, author = "Philip L. Wadler", title = "Deforestation: Transforming programs to eliminate trees", pages = "344-358", CROSSREF= {ESOP1988}} @INPROCEEDINGS{Wadler1985, CROSSREF = {FPCA1985}, AUTHOR = {Philip Wadler}, TITLE = {How to Replace Failure by a List of Successes}, YEAR = 1985 } @ARTICLE{Hughes1989-tcj, AUTHOR = "John Hughes", TITLE = "Why Functional Programming matters", JOURNAL = tcj, YEAR = 1989, VOLUME = 32, NUMBER = 2, PAGES = {98-107} } @INPROCEEDINGS{Hughes1982, CROSSREF = {LFP1982}, AUTHOR = {R. J. M. Hughes}, TITLE = {Super-Combinators}, YEAR = 1982 } @PHDTHESIS{Hughes1984, AUTHOR = {R. J. M. Hughes}, TITLE = {The Design and Implementation of Programming Languages}, SCHOOL = {Programming Research Group}, YEAR = 1984, ADDRESS = {Oxford}, NOTE = {PRG-40} } @INPROCEEDINGS{Hughes1985, CROSSREF = {FPCA1985}, AUTHOR = {John Hughes}, TITLE = {Lazy Memo-functions}, YEAR = 1985 } @INCOLLECTION{Wadler:Pattern, AUTHOR = "Philip L. Wadler", TITLE = "Efficient compilation of pattern-matching", CROSSREF = "Jones1987", CHAPTER = "5", PAGES = "78-103" } @INCOLLECTION{Hancock:TypeCheck, AUTHOR = {Peter Hancock}, TITLE = {A Type-Checker}, CROSSREF = {Jones1987}, CHAPTER = {9}, PAGES = {163-183} } @INPROCEEDINGS{Remy1989, CROSSREF = {POPL1989}, AUTHOR = {Didier R{\'{e}}my}, TITLE = {Typechecking Records and Variants in a Natural Extension of {ML}}, YEAR = 1989, PAGES = {77-88} } @INPROCEEDINGS{Augustsson1985, AUTHOR = "Lennart Augustsson", TITLE = "Compiling pattern matching", CROSSREF= {FPCA1985}, pages = "368-381" } @INPROCEEDINGS{Augustsson1984, AUTHOR = "Lennart Augustsson", TITLE = "A Compiler for Lazy {ML}", BOOKTITLE = "Proceedings of the Conference on Lisp and Functional Programming", YEAR = "1984", pages = "218-227", PUBLISHER = "ACM" } @ARTICLE{Bird1980, AUTHOR = "Richard S. Bird", TITLE = "Tabulation Techniques for Recursive Programs", JOURNAL = acmcs, YEAR = "1980", VOLUME = "12", NUMBER = "4", PAGES = "403-417", MONTH = dec } @ARTICLE{Bird1984, AUTHOR = {Richard S. Bird}, TITLE = {Using circular programs to eliminate multiple traversals of data}, JOURNAL = acta, YEAR = 1984, VOLUME = {21}, PAGES = {239-250} } @ARTICLE{Bird1989, AUTHOR = {Richard S. Bird}, TITLE = {Algebraic Identities for Program Calculation}, JOURNAL = tcj, YEAR = 1989, VOLUME = {32}, NUMBER = {2}, PAGES = {122-126}, MONTH = apr, ANNOTE = "\begin{quotation} There is a style of functional programming which focuses attention on a small collection of powerful higher-order functions that capture common patterns of computation. The idea is to try and express programs in terms of the composition of particular instances of these useful functions. Explicit use of recursion is therefore avoided, except as a last resort. A similar, indeed dual, style can be advocated when it comes to program proof. The idea here is to try and conduct proofs through equational reasoning that exploits the algebraic properties of the collection of higher-order functions. Explicit use of induction is therefore avoided. \end{quotation} Left zeroes; $\alpha$-$\beta$ algorithm, maximum segment sum." } @INCOLLECTION{BirdYoP90, AUTHOR = "Richard S. Bird", TITLE = "A calculus of functions for program derivation", CROSSREF = "YoP90", CHAPTER = "11", PAGES = "287-308" } @INCOLLECTION{Bird1987, AUTHOR= "Richard Bird", BOOKTITLE= "Logic of Programming and Calculi of Discrete Design", PAGES= "3-42", EDITOR= "Manfred Broy", TITLE= "An introduction to the theory of lists", PUBLISHER= SP, NOTE= "Also Technical Monograph PRG-56, Oxford University, October 1986", YEAR= "1987" } @INCOLLECTION{Bird1989MOD, AUTHOR= "Richard Bird", TITLE= "Constructive Functional Programming", BOOKTITLE= "Marktoberdorf International Summer school on Constructive Methods in Computer Science", PUBLISHER= SP, EDITOR= "Manfred Broy", SERIES= "NATO Advanced Science Institute Series", YEAR= "1989" } @INPROCEEDINGS{Meertens1986, AUTHOR= "Lambert Meertens", TITLE= "Algorithmics: Towards Programming as a Mathematical Activity", BOOKTITLE= "Proceedings of the CWI symposium on Mathematics and Computer Science", PAGES= "289-334", YEAR= "1986", PUBLISHER= "North-Holland", ABSTRACT="Of the various approaches to program correctness, that of ``Transformational Programming'' appears to be the most helpful in constructing correct programs. The essence of the method is to start with an obviously correct --- but possibly hopelessly inefficient --- algorithm, and to improve it by successively applying correctness-preserving transformations. The manipulations involved are akin to those used in mathematics. Two important impediments to this method are the verbosity of algorithmic notations, making the process cumbersome, and the semantic baroqueness of many primitives, making it hard to verify the validity of transformations. Computer Science can profit here from the lessons taught by the history of Mathematics. Another major step, comparable to one made long ago in Mathematics, is not to insist on the ``executability'' of algorithmic descriptions. This makes it possible to treat initial high-level specifications in the same framework as the final programs. Just as Mathematics evolved from ``Transformational Arithmetic'', Transformational Programming may come of age as ``Algorithmics''." } @INPROCEEDINGS{Meertens1989, AUTHOR= "Lambert Meertens", TITLE= "Constructing a Calculus of Programs", BOOKTITLE= "Conference on the Mathematics of Program Construction: LNCS 375", EDITOR= "J.L.A. van de Snepscheut", YEAR= "1989", PAGES= "66-90" } @TECHREPORT{Backhouse1988, AUTHOR= "Roland Backhouse", TITLE= "An Exploration of {BMF}", INSTITUTION="University of Groningen", NUMBER= "CS 8810", YEAR= "1988" } @INPROCEEDINGS{Malcolm1989, AUTHOR= "Grant Malcolm", TITLE= "Homomorphisms and Promotability", BOOKTITLE= "Mathematics of Program Construction", EDITOR= "J. L. A. {van de Snepscheut}", PAGES= "335-347", YEAR= "1989", note= {LNCS 375} } @Article{Malcolm1990, author="Grant Malcolm", title="Data Structures and Program Transformation", journal="Science of Computer Programming", year="1990", volume="14", pages="255--279", annote="Homomorphisms and a promotion theorem for an arbitrary data type. Dualised to infinite types (terminal algebras, with destructors {\em from\/} the defined type {\em to\/} the base types). \begin{quotation} Our starting point in this paper is the `Bird-Meertens formalism', a mathematical framework for program transformation currently being developed by Richard Bird at Oxford and Lambert Meertens at Amsterdam. The formalism comprises a concise functional notation and a small number of remarkably powerful theorems for proving equalities of functions. The notation is based on a few elementary operations and is so designed that it lends itself well to the construction of elegant, calculational transformations: from the basic operations, one constructs a specification in algorithmic form --- there is no separate specification language --- and transforms the specification into a more efficient program. A hallmark of the formalism is that much of this transformation process can be conducted as a linear, equational proof that the original specification is extensionally equal to the resulting more efficient version. \end{quotation}" } @INPROCEEDINGS{Johnsson1985, CROSSREF = {FPCA1985}, AUTHOR = {Thomas Johnsson}, TITLE = {Lambda Lifting: Transforming Programs to Recursive Equations}, YEAR = 1985 } @Article{PeytonJonesLester1991, author = "Simon L. {Peyton Jones} and David R. Lester", title = "A Modular Fully-lazy Lambda Lifter in {HASKELL}", journal = "Software - Practice and Experience", year = 1991, volume = 21, number = 5, pages = "479--506", month = apr, annote = "Also Research Report CSC/90/R17, Department of Computer Science, University of Glasgow (1990).", abstract = "The authors show that full laziness can be regarded as a completely separate process to lambda-lifting, thus making it easy to use different lambda lifters following a full laziness transformation, or to use the full-laziness transformation in compilers which do not require lambda lifting." } @INPROCEEDINGS{Johnsson1984, BOOKTITLE = {Proc. of the SIGPLAN '84 Symp. on Compiler Construction}, AUTHOR = {Thomas Johnsson}, TITLE = {Efficient compilation of lazy evaluation}, YEAR = 1984, PAGES = {58-69} } @ARTICLE{WrayFairbairn1989, AUTHOR = {S. C. Wray and J. Fairbairn}, TITLE = {Non-strict Languages --- Programming and Implementation}, JOURNAL = tcj, YEAR = 1989, VOLUME = {32}, NUMBER = {2}, PAGES = {142-151} } @ARTICLE{BlossHudakYoung1989, AUTHOR = {A. Bloss and P. Hudak and J. Young}, TITLE = {An Optimizing Compiler for a Modern Functional Language}, JOURNAL = tcj, YEAR = 1989, VOLUME = {32}, NUMBER = {2}, PAGES = {152-161} } @INPROCEEDINGS{HudakKeller1982, CROSSREF = {LFP1982}, AUTHOR = {Paul Hudak and Robert M. Keller}, TITLE = {Garbage Collection and Task Deletion in Distributed Applicative Processing Systems}, YEAR = 1982 } @INPROCEEDINGS{Bloss1989, CROSSREF = {FPCA1989}, AUTHOR = {Adrienne Bloss}, TITLE = {Update Analysis and the Efficient Implementation of Functional Aggregates}, YEAR = 1989, PAGES = {26-38} } @ARTICLE{JonesSinclair1989, AUTHOR = {Simon B. Jones and A. F. Sinclair}, TITLE = {Functional Programming and Operating Systems}, JOURNAL = tcj, YEAR = 1989, VOLUME = {32}, NUMBER = {2}, PAGES = {162-174} } @ARTICLE{Jones1989, AUTHOR = {Simon L. {Peyton Jones}}, TITLE = {Parallel Implementations of Functional Programming Languages}, JOURNAL = tcj, YEAR = 1989, VOLUME = {32}, NUMBER = {2}, PAGES = {175-186} } @ARTICLE{KellerSleep1986, AUTHOR = "Robert M. Keller and M. Ronan Sleep", TITLE = "Applicative Caching", JOURNAL = toplas, YEAR = "1986", VOLUME = "8", NUMBER = "1", PAGES = "88-108", MONTH = jan } @ARTICLE{Landin1966, AUTHOR = "Peter J. Landin", TITLE = "The next 700 programming languages", JOURNAL = cacm, YEAR = "1966", VOLUME = "9", NUMBER = "3", PAGES = "157-166" } @ARTICLE{Landin1964, AUTHOR = {Peter J. Landin}, TITLE = {The mechanical evaluation of expressions}, JOURNAL = tcj, YEAR = 1964, VOLUME = {6}, PAGES = {308-320} } *** was {Giff:Fluent} @INPROCEEDINGS{GiffordLucassen1986, AUTHOR = "David K. Gifford and John M. Lucassen", TITLE = "Integrating Functional and Imperative Programming", BOOKTITLE = "Proceedings of the 1986 ACM conference on Lisp and Functional Programming", YEAR = "1986", PAGES = "28-38" } @INPROCEEDINGS{LucassenGifford1988, CROSSREF = {POPL1988}, AUTHOR = {John M. Lucassen and David K. Gifford}, TITLE = {Polymorphic Effect Systems}, YEAR = 1988, PAGES = {47-57} } *** was {FP} @ARTICLE{Backus1978, AUTHOR = "John Backus", TITLE = "Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs", JOURNAL = cacm, YEAR = "1978", VOLUME = "21", NUMBER = "8", PAGES = "613-641", MONTH = aug } *** to be read @ARTICLE{BurstallDarlington1977, AUTHOR = "Rod M. Burstall and John Darlington", TITLE = "A transformation system for developing recursive programs", JOURNAL = jacm, YEAR = "1977", VOLUME = "24", NUMBER = "1", PAGES = "44-67" } @INPROCEEDINGS{FriedmanWiseWand1976, AUTHOR = "Dan P. Friedman and David S. Wise and Mitchell Wand", TITLE = "Recursive programming through table look-up", BOOKTITLE = "Symposium on Symbolic and Algebraic Computation", YEAR = "1976", PAGES = "85-89", ORGANIZATION = "ACM", ADDRESS = "New York" } @ARTICLE{Wand1987, AUTHOR = {Mitchell Wand}, TITLE = {A Simple Algorithm and Proof for Type Inference}, JOURNAL = {Fundamenta Informaticae}, YEAR = 1987, VOLUME = {X}, PAGES = {115-122} } @INPROCEEDINGS{FairbairnWray1987, AUTHOR = "J. Fairbairn and S. Wray", TITLE = "{TIM}: A simple, lazy abstract machine to execute supercombinators", CROSSREF = "FPCA1987", PAGES = "34-45" } @INPROCEEDINGS{Kieburtz1985, AUTHOR = "Richard B. Kieburtz", TITLE = "The {G} machine: a fast graph reduction evaluator", CROSSREF = {FPCA1985}, YEAR = "1985", PAGES = "400-413", ADDRESS = "Nancy" } @TechReport{KieburtzLewis1994, author = "Richard B. Kieburtz and Jeffrey Lewis", title = "Algebraic Design Languages---Preliminary Definition", institution = "Oregon Graduate Institute of Science \& Technology", year = 1994, month = "jan" } @InCollection{KieburtzLewis1995, author = "Richard B. Kieburtz and Jeffrey Lewis", title = "Programming with Algebras", crossref = "JeuringMeijer1995", pages = "267-307" } @InProceedings{Kahl1994, author = "Wolfram Kahl", title = "Can Functional Programming Be Liberated from the Applicative Style?", crossref = "IFIP1994", pages = "330-335" } @INCOLLECTION{BellotRobinet1986, AUTHOR = "P. Bellot and B. Robinet", TITLE = "Streams are not Dreams", BOOKTITLE = "Combinators and Functional Programming Languages", PUBLISHER = SP, YEAR = "1986", EDITOR = "G. Cousineau and P.-L. Curien and B. Robinet", PAGES = "1-20" } @INCOLLECTION{Cardelli1986, AUTHOR = "Luca Cardelli", TITLE = "Amber", BOOKTITLE = "Combinators and Functional Programming Languages", PUBLISHER = SP, YEAR = "1986", EDITOR = "G. Cousineau and P.-L. Curien and B. Robinet", PAGES = "21-47" } @INCOLLECTION{Amber:machine, AUTHOR = "Luca Cardelli", TITLE = "The {Amber} Machine", BOOKTITLE = "Combinators and Functional Programming Languages", PUBLISHER = SP, YEAR = "1986", EDITOR = "G. Cousineau and P.-L. Curien and B. Robinet", PAGES = "48-70" } @INCOLLECTION{Coquand:Prop, AUTHOR = "Thierry Coquand", TITLE = "{S}ur l'{A}nalogie entre les {P}ropositions et les {T}ypes", BOOKTITLE = "Combinators and Functional Programming Languages", PUBLISHER = SP, YEAR = "1986", EDITOR = "G. Cousineau and P.-L. Curien and B. Robinet", PAGES = "71-84" } @INCOLLECTION{CCMS, AUTHOR = "G. Cousineau and P.-L. Curien and M. Mauny and A. Suar\'{e}z", TITLE = "{C}ombinateurs {C}at\'{e}goriques et {I}mpl\'{e}mentation des Langages Fonctionnels", BOOKTITLE = "Combinators and Functional Programming Languages", PUBLISHER = SP, YEAR = "1986", EDITOR = "G. Cousineau and P.-L. Curien and B. Robinet", PAGES = "85-103" } @INPROCEEDINGS{Suarez1990, CROSSREF = {Huet1990}, AUTHOR = {Asc{\'{a}}nder Su{\'{a}}rez}, TITLE = {Compiling {ML} into {CAM}}, YEAR = 1990, PAGES = {47-73} } @INCOLLECTION{Hindley1986, AUTHOR = "J. R. Hindley", TITLE = "Combinators and Lambda-calculus", BOOKTITLE = "Combinators and Functional Programming Languages", PUBLISHER = SP, YEAR = "1986", EDITOR = "G. Cousineau and P.-L. Curien and B. Robinet", PAGES = "104-122" } @ARTICLE{Hindley1969, AUTHOR = {J. R. Hindley}, TITLE = {The Principal Type Scheme of an Object in Combinatory Logic}, JOURNAL = {Transactions of the American Mathematical Society}, YEAR = 1969, VOLUME = {146}, PAGES = {29-60} } @ARTICLE{Hindley1983, AUTHOR = {J. R. Hindley}, TITLE = {The Completeness Theorem for Typing $\lambda$-Terms}, JOURNAL = tcs, YEAR = 1983, VOLUME = {22}, PAGES = {1-17} } @ARTICLE{Hudak1989, AUTHOR = {Paul Hudak}, TITLE = {Conception, Evolution, and Application of Functional Programming Languages}, JOURNAL = acmcs, YEAR = {1989}, VOLUME = {21}, NUMBER = {3}, PAGES = {359-411}, MONTH = sep } @INPROCEEDINGS{GoldbergHudak1985, CROSSREF = {FPCA1985}, AUTHOR = {Benjamin Goldberg and Paul Hudak}, TITLE = {Serial Combinators: Optimal Grains of Parallelism}, YEAR = 1985 } @INCOLLECTION{Huet:CCC, AUTHOR = "G. Huet", TITLE = "Cartesian Closed Categories and Lambda-calculus", BOOKTITLE = "Combinators and Functional Programming Languages", PUBLISHER = SP, YEAR = "1986", EDITOR = "G. Cousineau and P.-L. Curien and B. Robinet", PAGES = "123-135" } @INCOLLECTION{Lambek:CCC, AUTHOR = "J. Lambek", TITLE = "Cartesian Closed Categories and Typed Lambda-calculi", BOOKTITLE = "Combinators and Functional Programming Languages", PUBLISHER = SP, YEAR = "1986", EDITOR = "G. Cousineau and P.-L. Curien and B. Robinet", PAGES = "136-175" } @INCOLLECTION{jones:intro, AUTHOR = "Simon L. {Peyton Jones}", TITLE = "An Introduction to Fully-Lazy Supercombinators", BOOKTITLE = "Combinators and Functional Programming Languages", PUBLISHER = SP, YEAR = "1986", EDITOR = "G. Cousineau and P.-L. Curien and B. Robinet", PAGES = "176-208" } @INPROCEEDINGS{ml, AUTHOR = "M. Gordon and R. Milner and L. Morris and M. Newey and C. Wadsworth", TITLE = "A metalanguage for interactive proofs in {LCF}", PAGES = "119-130", CROSSREF = {POPL1978} } @PHDTHESIS{Wadsworth1971, AUTHOR = {Christopher P. Wadsworth}, TITLE = {Semantics and Pragmatics of the Lambda Calculus}, SCHOOL = {Programming Research Group, Oxford University}, YEAR = 1971, KEYWORDS = {graph} } @INPROCEEDINGS{Staples1978, CROSSREF = {GG1978}, AUTHOR = {John Staples}, TITLE = {A Graph-like Lambda Calculus for which Leftmost Outermost Reduction is Optimal}, YEAR = 1978, PAGES = {440-454}, KEYWORDS = {graph} } *** To be looked at @INBOOK{Rose1993, AUTHOR = {Kristoffer H. Rose}, CHAPTER = {22}, CROSSREF = {SPE1993}, TITLE = {Graph-based Operational Semantics of a Lazy Functional Language}, PUBLISHER = JW, YEAR = 1993 } @INBOOK{KoopmanSmetserEekelenPlasmeijer1993, AUTHOR = {P. W. M. Koopman and J. E. W. Smetsers and M. C. J. D. {van Eekelen} and M. J. Plasmeijer}, CHAPTER = {23}, CROSSREF = {SPE1993}, TITLE = {Graph Rewriting Using the Annotated Functional Strategy}, PUBLISHER = JW, YEAR = 1993 } @TECHREPORT{BurstallMacQueenSannella1980, AUTHOR = "Rod Burstall and David MacQueen and Don Sannella", TITLE = "{HOPE}: An Experimental Applicative Language", INSTITUTION = "Computer Science Dept, Edinburgh University", YEAR = "1980", TYPE = "Report", NUMBER = "CSR-62-80" } @INPROCEEDINGS{Sands1990, CROSSREF = {ESOP1990}, AUTHOR = {David Sands}, TITLE = {Complexity Analysis for a Lazy Higher-Order Language}, YEAR = 1990, PAGES = {361-376} } @INPROCEEDINGS{Romanenko1990, CROSSREF = {ESOP1990}, AUTHOR = {Sergei A. Romanenko}, TITLE = {Arity Raiser and its Use in Program Specialization}, YEAR = 1990, PAGES = {341-360} } @InProceedings{Romanenko1988, author = {Sergei A. Romanenko}, title = "A Compiler Generator Produced by a Self-Applicable Specializer Can have a Surprisingly Natural and Understandable Structure", crossref = "PEMC1988", pages = "445-463" } @INPROCEEDINGS{Thatte1990, CROSSREF = {ESOP1990}, AUTHOR = {Satish Thatte}, TITLE = {Type Inference and Implicit Scaling}, YEAR = 1990, PAGES = {406-420} } @INPROCEEDINGS{BurstallMacQueenSannella1980-lfp, OLDKEY = {BWS1980a}, AUTHOR = "Rod Burstall and David MacQueen and Don Sannella", TITLE = "{HOPE}: An Experimental Applicative Language", BOOKTITLE = {Proceedings of the 1980 ACM Symposium on Lisp and Functional Programming}, YEAR = "1980", PAGES = {136-143}, ADDRESS = {Standford, CA}, MONTH = aug } @ARTICLE{McCarthy1960, OLDKEY = {MCC1960}, AUTHOR = {John McCarthy}, TITLE = {Recursive functions of symbolic expressions and their computation by machine, {Part~I}}, JOURNAL = cacm, YEAR = {1960}, VOLUME = {3}, NUMBER = {4}, PAGES = {184-195} } @INBOOK{McCarthy1981, AUTHOR = {John McCarthy}, PAGES = {173-185}, TITLE = {History of Lisp}, CROSSREF = {HOPL1981} } @INBOOK{SteeleGabriel1993, AUTHOR = {Guy L. {Steele Jr.} and Richard P. Gabriel}, PAGES = {231-270}, TITLE = {The Evolution of Lisp}, CROSSREF = {HOPL1993} } @TECHREPORT{Milner1983, AUTHOR = "Robin Milner", TITLE = "A Proposal for Standard {ML}", INSTITUTION = "Computer Science Dept, Edinburgh University", YEAR = "1983", TYPE = "Report", NUMBER = "CSR-157-83" } @TECHREPORT{Milner1984, AUTHOR = "Robin Milner", TITLE = "The Standard {ML} Core Language", INSTITUTION = "Computer Science Dept, Edinburgh University", YEAR = "1984", TYPE = "Report", NUMBER = "CSR-168-84" } @TECHREPORT{Harper1985, AUTHOR = "Robert Harper", TITLE = "Standard {ML} Input/Output", INSTITUTION = "Computer Science Dept, Edinburgh University", YEAR = "1985", TYPE = "Technical Report" } @TECHREPORT{Harper1986, AUTHOR = {Robert Harper}, TITLE = {Introduction to Standard {ML}}, INSTITUTION = {Department of Computer Science, University of Edinburgh}, YEAR = 1986, NUMBER = {ECS-LFCS-86-14}, MONTH = nov, MYNOTE = {The King's Building, Edinburgh EH9 3JZ} } @TECHREPORT{Cardelli1982, AUTHOR = "Luca Cardelli", TITLE = "{ML} under {UNIX}", INSTITUTION = "Bell Laboratories", YEAR = "1982", TYPE = "Technical Report", ADDRESS = "Murray Hill, New Jersey" } @ARTICLE{Cardelli1983, AUTHOR = {Luca Cardelli}, TITLE = {The Functional Abstract Machine}, JOURNAL = "Polymorphism: The {ML}/{LCF}/{Hope} Newsletter", YEAR = {1983}, VOLUME = {1}, NUMBER = {1} } @TECHREPORT{Cardelli1984, AUTHOR = {Luca Cardelli}, TITLE = {The Functional Abstract Machine}, INSTITUTION = {Bell Laboratories}, YEAR = {1984}, TYPE = {Computer Science Technical Report}, NUMBER = {107} } @INPROCEEDINGS{Cardelli1984a, AUTHOR = "Luca Cardelli", TITLE = "Compiling a Functional Language", CROSSREF = "LFP1984", PAGES = {208-217} } @ARTICLE{CousineauCurienMauny1987, OLDKEY = {CAM}, AUTHOR = {Guy Cousineau and Pierre-Louis Curien and Michel Mauny}, TITLE = {The Categorical Abstract Machine}, JOURNAL = scp, YEAR = {1987}, VOLUME = {8}, PAGES = {173-202} } @INPROCEEDINGS{CousineauCurienMauny1985, OLDKEY = {CAM1985}, CROSSREF = {FPCA1985}, AUTHOR = {Guy Cousineau and Pierre-Louis Curien and Michel Mauny}, TITLE = {The Categorical Abstract Machine}, YEAR = 1985, PAGES = {50-64} } @TECHREPORT{MacQueen1985, AUTHOR = "David MacQueen", TITLE = "Modules for Standard {ML}", INSTITUTION = "Bell Laboratories", YEAR = "1985", TYPE = "Technical Report", ADDRESS = "Murray Hill, New Jersey" } @Article{AmadioCardelli1993, author = "Roberto M. Amadio and Luca Cardelli", title = "Subtyping Recursive Types", journal = toplas, year = 1993, volume = 15, number = 4, pages = "575-631" } @ARTICLE{CardelliWegner1985, OLDKEY = {CW1985}, AUTHOR = "Luca Cardelli and Peter Wegner", TITLE = "On Understanding Types, Data Abstraction, and Polymorphism", JOURNAL = acmcs, YEAR = "1985", VOLUME = "17", PAGES = "471-522", MONTH = dec } @ARTICLE{Plotkin1975, AUTHOR = {Gordon Plotkin}, TITLE = {Call-by-name, Call-by-value and the $\lambda$-Calculus}, JOURNAL = tcs, YEAR = 1975, VOLUME = {1}, PAGES = {125-159} } @ARTICLE{Plotkin1976, AUTHOR = {Gordon D. Plotkin}, TITLE = {A Powerdomain Construction}, JOURNAL = sicomp, YEAR = 1976, VOLUME = {5}, PAGES = {452-487} } @ARTICLE{Cardelli1988a, AUTHOR = {Luca Cardelli}, TITLE = {A Semantics of Multiple Inheritance}, JOURNAL = iandc, YEAR = 1988, VOLUME = {76}, NUMBER = {2/3}, PAGES = {138-164} } @ARTICLE{Milner1978, AUTHOR = {Robin Milner}, TITLE = {A Theory of Type Polymorphism in Programming}, JOURNAL = jcss, YEAR = 1978, VOLUME = {17}, PAGES = {348-375} } @ARTICLE{CC1991, AUTHOR = {Felica Cardone and Mario Coppo}, TITLE = {Type Inference with Recursive Types: Syntax and Semantics}, JOURNAL = {Information and Computation}, YEAR = 1991, VOLUME = {92}, PAGES = {48-80} } @InProceedings{TiurynWand1993-tapsoft, author = "Jerzy Tiuryn and Mitchell Wand", title = "Type Reconstruction with Recursive Types and Atomic Subtyping", pages = "686--701", crossref = "TAPSOFT1993", } @INCOLLECTION{TurnerYoP90, AUTHOR = "David A. Turner", TITLE = "An overview of {Miranda}", CROSSREF = "YoP90", CHAPTER = "1", PAGES = "1-16" } @ARTICLE{Turner1979, AUTHOR = {David A. Turner}, TITLE = {A new implementation technique for applicative languages}, JOURNAL = swpe, YEAR = {1979}, VOLUME = {9}, PAGES = {31-49} } @INCOLLECTION{HughesYoP90, AUTHOR = "John Hughes", TITLE = "Why functional programming matters", CROSSREF = "YoP90", CHAPTER = "2", PAGES = "17-42" } @INCOLLECTION{BoehmYoP90, AUTHOR = "Hans Boehm and Robert Cartwright", TITLE = "Exact real numbers: Formulating real numbers as functions", CROSSREF = "YoP90", CHAPTER = "3", PAGES = "43-64" } @INCOLLECTION{AbramskyYoP90, AUTHOR = "Samson Abramsky", TITLE = "The lazy lambda calculus", CROSSREF = "YoP90", CHAPTER = "4", PAGES = "65-116" } @PHDTHESIS{Ong1988, AUTHOR = {L. Ong}, TITLE = {Lazy Lambda Calculus: An Investigation into the Foundation of Functional Programming}, SCHOOL = {Imperial College, University of London}, YEAR = 1988, ADDRESS = {London} } @INPROCEEDINGS{AbramskySykes1985, CROSSREF = {FPCA1985}, AUTHOR = {Samson Abramsky and R. Sykes}, TITLE = {{SECD}-m: a Virtual Machine for Applicative Programming}, YEAR = 1985 } @INCOLLECTION{HughesYoP90b, AUTHOR = "John Hughes", TITLE = "Compile-time analysis of functional programs", CROSSREF = "YoP90", CHAPTER = "5", PAGES = "117-154" } @INCOLLECTION{PingaliYoP90, AUTHOR = "Keshav Pingali", TITLE = "Lazy evaluation and the logic variable", CROSSREF = "YoP90", CHAPTER = "7", PAGES = "171-198" } @INCOLLECTION{TurnerYoP90b, AUTHOR = "David A. Turner", TITLE = "An approach to functional operating systems", CROSSREF = "YoP90", CHAPTER = "8", PAGES = "199-218" } @INCOLLECTION{BackusYoP90, AUTHOR = "John Backus and John Williams and Edward Wimmers", TITLE = "An introduction to the programming language {FL}", CROSSREF = "YoP90", CHAPTER = "9", PAGES = "219-248" } @InProceedings{WilliamsWimmers1988, author = "John Williams and Edward Wimmers", title = "Sacrificing Simplicity for Convenience: Where Do You Draw the Line?", crossref = "POPL1988", pages = "169-179" } @INCOLLECTION{ThompsonYoP90, AUTHOR = "Simon Thompson", TITLE = "Interactive functional programming: A method and a formal semantics", CROSSREF = "YoP90", CHAPTER = "10", PAGES = "249-286" } @Article{Thompson1989, author = "Simon Thompson", title = "Lawful Functions and Program Verification in Miranda", journal = "Science of Computer Programming", year = "1989", volume = "13", pages = "181--218", keywords = "functional, programming, language, laws, views" } @INCOLLECTION{GoguenYoP90, AUTHOR = "Joseph A. Goguen", TITLE = "Higher-order functions considered unnecessary for higher-order programming", CROSSREF = "YoP90", CHAPTER = "12", PAGES = "309-352" } @INCOLLECTION{MacQueenYoP90, AUTHOR = "David MacQueen", TITLE = "A higher-order type system for functional programming", CROSSREF = "YoP90", CHAPTER = "13", PAGES = "353-368" } @INPROCEEDINGS{Turner1985, AUTHOR = {David A. Turner}, TITLE = {{Miranda}: A non-strict functional language with polymorphic types}, CROSSREF = "FPCA1985", PAGES = {1-16} } @INPROCEEDINGS{ClackJones1985, CROSSREF = {FPCA1985}, AUTHOR = {Chris Clack and Simon L. {Peyton Jones}}, TITLE = {Strictness Analysis --- a Practical Approach}, YEAR = 1985 } @ARTICLE{HudakFasel1992, AUTHOR = {Paul Hudak and Joseph H. Fasel}, TITLE = {A Gentle Introduction to {Haskell}}, JOURNAL = notices, YEAR = 1992, VOLUME = {27}, NUMBER = {5}, PAGES = {T1-T53}, MONTH = may } @ARTICLE{haskell1.2, KEY = {Haskell 1.2}, EDITOR = {Paul Hudak and Simon L. {Peyton Jones} and Philip Wadler}, TITLE = {Report on the Programming Language {Haskell}, A Non-strict, Purely Functional Language, Version 1.2}, JOURNAL = notices, YEAR = 1992, VOLUME = {27}, NUMBER = {5}, PAGES = {R1-R164}, MONTH = may } @unpublished{haskell1.4, author = "John Peterson and Kevin Hammond (editors)", title = "Haskell 1.4, A Non-strict, Purely Functional Language", year = 1997, month = apr, note = "http://haskell.systemsz.cs.yale.edu/onlinereport/" } @INPROCEEDINGS{FlanaganSabryDubaFelleisen1993, CROSSREF = {PLDI1993}, AUTHOR = {Cormac Flanagan and Amr Sabry and Bruce F. Duba and Matthias Felleisen}, TITLE = {The Essence of Compiling with Continuations}, YEAR = 1993, PAGES = {237-247} } @InProceedings{Felleisen1988, author = "Matthias Felleisen", title = "The Theory and Practice of First-Class Prompts", crossref = "POPL1988", pages = "180-190" } @InProceedings{TarditiMorrisettChengStoneHarperLee1996, author = "Dave Tarditi and Greg Morrisett and P. Cheng and Chris Stone and Robert Harper and Peter Lee", title = "{TIL}: A Type-Directed Optimizing Compiler for {ML}", crossref = "PLDI1996", pages = {181-192} } @InProceedings{LeeLeone1996, author = "Peter Lee and Mark Leone", title = "Optimizing {ML} with Run-Time Code Generation", crossref = "PLDI1996", pages = "137-148" } @InProceedings{Engler1996, author = "Dawson Engler", title = "{VCODE}: A Retargetable, Extensible, Very Fast Dynamic Code Generation System", crossref = "PLDI1996", pages = "160-170" } @InProceedings{JagannathanWright1996, author = "Suresh Jagannathan and Andrew Wright", title = "Flow-directed Inlining", crossref = "PLDI1996", pages = "193-205" } @InProceedings{ReppyRiecke1996, author = "John Reppy and John Riecke", title = "Simple Objects for {Standard ML}", crossref = "PLDI1996", pages = "171-180" } @InProceedings{Ramsey1996, author = "Norman Ramsey", title = "Relocating Machine Instructions by Currying", crossref = "PLDI1996", pages = "226-300" } @InProceedings{TrinderHammondMattsonPartridgePeytonJones1996, author = "Phil Trinder and Kevin Hammond and Jim {Mattson Jr.} and Andrew Partridge and Simon {Peyton Jones}", title = "{GUM}: A Portable Parallel Implementation of {Haskell}", crossref = "PLDI1996", pages = "79-88" } @INPROCEEDINGS{Pinter1993, CROSSREF = {PLDI1993}, AUTHOR = {Shlomit S. Pinter}, TITLE = {Register Allocation with Instruction Scheduling: A New Approach}, YEAR = 1993, PAGES = {248-257} } @INPROCEEDINGS{CousotCousot1977-popl, CROSSREF = {POPL1977}, AUTHOR = {Patrick Cousot and Radhia Cousot}, TITLE = {Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints}, YEAR = 1977 } @INPROCEEDINGS{CousotCousot1992-plilp, CROSSREF = {PLILP1992}, AUTHOR = {Patrick Cousot and Radhia Cousot}, TITLE = {Comparing the Galois Connection and Widening/Narrowing Approaches to Abstract Interpretation}, YEAR = 1992, PAGES = {269-295} } @InProceedings{CousotCousot1995-fpca, author = {Patrick Cousot and Radhia Cousot}, title = "Formal Language, Grammar and Set-Constraint-Based Program Analysis by Abstract Interpretation", crossref = "FPCA1995", pages = "170-181" } @ARTICLE{Boiten1992, AUTHOR = {Eerke A. Boiten}, TITLE = {Improving Recursive Functions by Inverting the Order of Evaluation}, JOURNAL = scp, YEAR = 1992, VOLUME = {18}, PAGES = {139-179} } @inproceedings{ Wadler1987:Views, author = "Philip Wadler", title = "Views: A Way for Mattern Matching to Cohabit with Data Abstraction", CROSSREF = {POPL1987}, year="1987", organization="ACM", pages = "307--313", annote = "Pattern matching requires the underlying type to be visible, data abstraction requires it to be invisible. \begin{quotation} Traditionally, abstraction is achieved by refusing to export the representation. With views, abstraction can be achieved by exporting as many repsresentations as required. \end{quotation} The two are important concepts; this paper presents a mechanism --- an isomorphism between the representation and the abstraction of a data type --- allowing both at the same time. Eventually discarded in Haskell, since it may introduce lots of hidden computation." } @TechReport{BOCF1992, author = "A. P. W. Böhm and R. R. Oldehoeft and D. C. Cann and J. T. Feo", title = "SISAL Reference Manual", institution = "Lawrence Livermore Research Laboratory", year = 1992, keywords = {sisal} } @InCollection{Cann1991, author = "D. C. Cann", title = "Retire Fortran? {A} Debate Rekindled", booktitle = "Supercomputing 91", year = 91, month = nov, keywords = {sisal} } @ARTICLE{Turchin1986, AUTHOR = {Valentin F. Turchin}, TITLE = {The Concept of a Supercompiler}, JOURNAL = toplas, YEAR = 1986, VOLUME = {8}, NUMBER = {3}, PAGES = {292-325}, MONTH = jul } @Article{Turchin1979, author = "Valentin F. Turchin", title = "A Supercompiler System Based on the Language {R}efal", journal = notices, year = "1979", month = feb, volume = "14", number = "2", pages = "46--54", annote = "The paper describes a projected programming system in which the user will be able to create and define various specialized programming languages in Refal and to generate translators for them automatically. Third Futamura projection.", } @TechReport{Rozas1993, address = MITad, keywords = "reflection, matching, equiation, reification, higher-order", year = "1993", month = oct, pages = "180", author = "Guillermo J. Rozas", title = "Translucent Procedures, Abstraction without Opacity", contract = "N00014-92-J-4097, MIP-9001651", number = "AI TR 1427", abstract = "This report introduces TRANSLUCENT PROCEDURES as a new mechanism for implementing behavioral abstractions. Like an ordinary procedure, a translucent procedure can be invoked, and thus provides an obvious way to capture a BEHAVIOR. Translucent procedures, like ordinary procedures, can be manipulated as first-class objects and combined using functional composition. But unlike ordinary procedures, translucent procedures have structure that can be examined in well-specified non-destructive ways, without invoking the procedure.", institution = MIT, url = "ftp://publications.ai.mit.edu/ai-publications/1993/AITR-1427.ps.Z", } @TECHREPORT{Andersen1995, semno = "D-178", summary = "C-mix is used to specialize a ray tracer. The paper investigates how partial evaluation can be used to optimize an already efficient program, and the problems that occur when partial evaluation is applied to large-scale programs. The experiments show that C-mix can optimize the ray tracer to run twice as fast.", keywords = "Partial evaluation, C, ray tracing", AUTHOR = {Peter Holst Andersen}, TITLE = {Partial Evaluation Applied to Ray Tracing}, INSTITUTION = {DIKU}, YEAR = 1995, NUMBER = {95/2}, ADDRESS = {Copenhagen, Denmark} } @Unpublished{Andersen1996, author = {Peter Holst Andersen}, title = "Static Memory Management in {C-Mix}", note = "available at URL http://www.diku.dk/research-groups/topps/activities/cmix/memory.ps.gz", year = 1996, month = dec } @MastersThesis{Mogensen1986, author = "Torben {\AE}. Mogensen", title = "The Application of Partial Evaluation to Ray-Tracing", school = "DIKU, University of Copenhagen", year = 1986, address = "Denmark" } @PhdThesis{deWaal1994, author = "Andre de Waal", title = "Analysis and Transformation of Proof Procedures", school = "Department of Computer Science, University of Bristol", year = 1994, month = oct } ******* The Journal of Functional Programming *** volume 1 @INPROCEEDINGS{CBF1991, CROSSREF = {PLDI1991}, AUTHOR = {Siddharta Chatterjee and Guy E. Blelloch and Allan L. Fisher}, TITLE = {Size and Access Inference for Data-Parallel Programs}, YEAR = 1991, PAGES = {130-144} } @ARTICLE{FPearl1-1, AUTHOR = {Richard S. Bird}, TITLE = {Functional Pearls: The minout problem}, JOURNAL = jfp, YEAR = {1991}, VOLUME = {1}, NUMBER = {1}, PAGES = {121-124}, MONTH = jan } @ARTICLE{FPearl1-2, AUTHOR = {Richard S. Bird}, TITLE = {Functional Pearls: On removing duplicates}, JOURNAL = jfp, YEAR = {1991}, VOLUME = {1}, NUMBER = {1}, PAGES = {235-243}, MONTH = apr } @ARTICLE{TPearl1-2, AUTHOR = {Henk P. Barendregt}, TITLE = {Theoretical Pearls: Self-interpretation in lambda calculus}, JOURNAL = jfp, YEAR = {1991}, VOLUME = {1}, NUMBER = {2}, PAGES = {229-234}, MONTH = apr } @ARTICLE{Barendregt1991, AUTHOR = {Henk Barendregt}, TITLE = {Introduction to generalized type systems}, JOURNAL = jfp, YEAR = {1991}, VOLUME = {1}, NUMBER = {2}, PAGES = {125-154}, MONTH = apr } @ARTICLE{Ronchi1988, AUTHOR = {S. {Ronchi della Rocca}}, TITLE = {Principal Type Scheme and Unification for Intersection Type Discipline}, JOURNAL = tcs, YEAR = 1988, VOLUME = {59}, PAGES = {181-209} } @ARTICLE{GeuversNederhof1991, AUTHOR = {H. Geuvers and M.-J. Nederhof}, TITLE = {Modular proof of strong normalization for the calculus of constructions}, JOURNAL = jfp, YEAR = {1991}, VOLUME = {1}, NUMBER = {2}, PAGES = {155-190}, MONTH = apr } @ARTICLE{RuncimanToyn1991, AUTHOR = {C. Runciman and I. Toyn}, TITLE = {Retrieving reusable software components by polymorphic type}, JOURNAL = jfp, YEAR = {1991}, VOLUME = {1}, NUMBER = {2}, PAGES = {191-212}, MONTH = apr } @ARTICLE{MajorLaPalmeCedergren1991, AUTHOR = {F. Major and G. LaPalme and R. Cedegren}, TITLE = {Domain generating functions for solving constraint satisfaction problems}, JOURNAL = jfp, YEAR = {1991}, VOLUME = {1}, NUMBER = {2}, PAGES = {213-228}, MONTH = apr } @ARTICLE{HuntHankin1991, AUTHOR = {Sebastian Hunt and Chris Hankin}, TITLE = {Fixed points and frontiers: a new perspective}, JOURNAL = jfp, YEAR = {1991}, VOLUME = {1}, NUMBER = {1}, PAGES = {91-120}, MONTH = jan } @ARTICLE{Rittri1991, AUTHOR = {Mikael Rittri}, TITLE = {Using types as search keys in function libraries}, JOURNAL = jfp, YEAR = {1991}, VOLUME = {1}, NUMBER = {1}, PAGES = {71-90}, MONTH = jan } @ARTICLE{GomardJones1991, AUTHOR = {Carsten K. Gomard and Neil D. Jones}, TITLE = {A partial evaluator for the untyped lambda-calculus}, JOURNAL = jfp, YEAR = {1991}, VOLUME = {1}, NUMBER = {1}, PAGES = {21-70}, MONTH = jan } @ARTICLE{Burton1991, AUTHOR = {{F. Warren} Burton}, TITLE = {Encapsulating non-determinacy in an abstract data type with determinate semantics}, JOURNAL = jfp, YEAR = {1991}, VOLUME = {1}, NUMBER = {1}, PAGES = {3-20}, MONTH = jan, myNOTE = {Non very interesting.} } @ARTICLE{MasonTalcott1991, AUTHOR = {Ian Mason and Carolyn Talcott}, TITLE = {Equivalence in Functional Languages with Effects}, JOURNAL = jfp, YEAR = 1991, VOLUME = {1}, NUMBER = {3}, PAGES = {287-328}, MONTH = jul } @ARTICLE{Burn1991, AUTHOR = {Geoffrey L. Burn}, TITLE = {Implementing the Evaluation Transformer Model of Reduction on Parallel Machines}, JOURNAL = jfp, YEAR = 1991, VOLUME = {1}, NUMBER = {3}, PAGES = {329-366}, MONTH = jul } @ARTICLE{TPearl1-3, AUTHOR = {Erik Barendsen}, TITLE = {Theoretical Pearls: An Unsolvable Numeral System in Lambda Calculus}, JOURNAL = jfp, YEAR = 1991, VOLUME = {1}, NUMBER = {3}, PAGES = {367-372}, MONTH = jul } @ARTICLE{Mitchell1991, AUTHOR = {John C. Mitchell}, TITLE = {Type Inference with Simple Subtypes}, JOURNAL = jfp, YEAR = 1991, VOLUME = {1}, NUMBER = {3}, PAGES = {245-286}, MONTH = jul } @ARTICLE{ACCL1991, AUTHOR = {Mart{\'\i}n Abadi and Luca Cardelli and Pierre-Louis Curien and Jean-Jacques L{\'e}vy}, TITLE = {Explicit Substitutions}, JOURNAL = jfp, YEAR = 1991, VOLUME = {1}, NUMBER = {4}, PAGES = {375-416}, MONTH = oct } @ARTICLE{CL1991, AUTHOR = {Luca Cardelli and Giuseppe Longo}, TITLE = {A Semantic Basis for Quest}, JOURNAL = jfp, YEAR = 1992, VOLUME = {1}, NUMBER = {4}, PAGES = {417-458}, MONTH = oct } @ARTICLE{NN1991, AUTHOR = {Hanne Riis Nielson and Flemming Nielson}, TITLE = {Using Tranformations in the Implementation of Higher-order Functions}, JOURNAL = jfp, YEAR = 1991, VOLUME = {1}, NUMBER = {4}, PAGES = {459-493}, MONTH = oct } ***** volume 2 @ARTICLE{BD1992, AUTHOR = {Manfred Broy and Claus Dendorfer}, TITLE = {Modelling Operating System Structures by Timed Stream Processing Functions}, JOURNAL = jfp, YEAR = 1992, VOLUME = {2}, NUMBER = {1}, PAGES = {1-22}, MONTH = jan } @ARTICLE{Asperti1992, AUTHOR = {Andrea Asperti}, TITLE = {A Categorical Understanding of Environment Machines}, JOURNAL = jfp, YEAR = 1992, VOLUME = {2}, NUMBER = {1}, PAGES = {23-60}, MONTH = jan } @ARTICLE{WS1992, AUTHOR = {Roger L. Wainwright and Marian E. Sexton}, TITLE = {A Study of Sparse Matrix Representations for Solviong Linear Systems in a Functional Language}, JOURNAL = jfp, YEAR = 1992, VOLUME = {2}, NUMBER = {1}, PAGES = {61-72}, MONTH = jan } @ARTICLE{RJones1992, AUTHOR = {Richard Jones}, TITLE = {Tail Recursion without Space Leaks}, JOURNAL = jfp, YEAR = 1992, VOLUME = {2}, NUMBER = {1}, PAGES = {73-80}, MONTH = jan, myNOTE = {put a BLACKHOLE into a closure to be updated} } @ARTICLE{BH1992, AUTHOR = {James M. Boyle and Terence J Harmer}, TITLE = {A Practical Functional Program for the {CRAY X-MP}}, JOURNAL = jfp, YEAR = 1992, VOLUME = {2}, NUMBER = {1}, PAGES = {71-126}, MONTH = jan } @ARTICLE{PeytonJones1992, AUTHOR = {Simon L {Peyton Jones}}, TITLE = {Implementing lazy functional languages on stock hardware: the Spineless Tagless {G}-machine}, JOURNAL = jfp, YEAR = 1992, VOLUME = {2}, NUMBER = {2}, PAGES = {127-202}, MONTH = apr } @ARTICLE{BP1992, AUTHOR = {F. Warren Burton and Rex L. Page}, TITLE = {Distributed Random Number Generation}, JOURNAL = jfp, YEAR = 1992, VOLUME = {2}, NUMBER = {2}, PAGES = {203-212}, MONTH = apr } @ARTICLE{Mairson1992, AUTHOR = {Harry G. Mairson}, TITLE = {Quantifier Elimination and Parametric Polymorphism in Programming Languages}, JOURNAL = jfp, YEAR = 1992, VOLUME = {2}, NUMBER = {2}, PAGES = {213-226}, MONTH = apr } @ARTICLE{Johnsson1992, AUTHOR = {Thomas Johnsson}, TITLE = {A Review of the {FPCA} '91 Proceedings}, JOURNAL = jfp, YEAR = 1992, VOLUME = {2}, NUMBER = {2}, PAGES = {227-232}, MONTH = apr } @ARTICLE{TPearl2-2, AUTHOR = {Henk Barendregt}, TITLE = {Theoretical Pearls: Enumerators of Lambda Terms are Reducing}, JOURNAL = jfp, YEAR = 1992, VOLUME = {2}, NUMBER = {2}, PAGES = {233-236}, MONTH = apr } @ARTICLE{FPearl2-2, AUTHOR = {Richard S. Bird}, TITLE = {Functional Pearls: Two Greedy Algorithms}, JOURNAL = jfp, YEAR = 1992, VOLUME = {2}, NUMBER = {2}, PAGES = {237-244}, MONTH = apr } @ARTICLE{TalpinJouvelot1992, AUTHOR = {Jean-Pierre Talpin and Pierre Jouvelot}, TITLE = {Polymorphic Type, Region and Effect Inference}, JOURNAL = jfp, YEAR = 1992, VOLUME = {2}, NUMBER = {3}, PAGES = {245-272}, MONTH = jul } @ARTICLE{SJ1992, AUTHOR = {Frank S. K. Silbermann and Bharat Jayaraman}, TITLE = {A Domain-theoretic Approach to Functional and Logic Programming}, JOURNAL = jfp, YEAR = 1992, VOLUME = {2}, NUMBER = {3}, PAGES = {273-322}, MONTH = jul } @ARTICLE{Hutton1992, AUTHOR = {Graham Hutton}, TITLE = {Higher-order Functions for Parsing}, JOURNAL = jfp, YEAR = 1992, VOLUME = {2}, NUMBER = {3}, PAGES = {323-344}, MONTH = jul } @ARTICLE{Mogensen1992, AUTHOR = {Torben {\AE}. Mogensen}, TITLE = {Efficient Self-interpretation in Lambda Calculus}, JOURNAL = jfp, YEAR = 1992, VOLUME = {2}, NUMBER = {3}, PAGES = {345-364}, MONTH = jul } @ARTICLE{TPearl2-3, AUTHOR = {Henk Barendregt}, TITLE = {Theoretical Pearls: Representing 'undefined' in Lambda Calculus}, JOURNAL = jfp, YEAR = 1992, VOLUME = {2}, NUMBER = {3}, PAGES = {367-374}, MONTH = jul } @ARTICLE{FPearl2-3, AUTHOR = {Richard S. Bird}, TITLE = {Functional Pearls: Unravelling Greedy Algorithms}, JOURNAL = jfp, YEAR = 1992, VOLUME = {2}, NUMBER = {3}, PAGES = {375-385}, MONTH = jul } @ARTICLE{AFB1992, AUTHOR = {Gad Aharoni and Dror G. Feitelson and Ammon Barak}, TITLE = {A Run-time Algorithm for Managing the Granularity of Parallel Functional Programs}, JOURNAL = jfp, YEAR = 1992, VOLUME = {2}, NUMBER = {4}, PAGES = {387-406}, MONTH = oct } @ARTICLE{Bourdoncle1992, AUTHOR = {Fran{\c{c}}ois Bourdoncle}, TITLE = {Abstract Interpretation by Dynamic Partitioning}, JOURNAL = jfp, YEAR = 1992, VOLUME = {2}, NUMBER = {4}, PAGES = {407-436}, MONTH = oct } @ARTICLE{Brumfitt1992, AUTHOR = {P. J. Brumfitt}, TITLE = {{MetaMorph} --- a Formal Methods Toolkit with Application to the Design of Digital Hardware}, JOURNAL = jfp, YEAR = 1992, VOLUME = {2}, NUMBER = {4}, PAGES = {437-474}, MONTH = oct } @ARTICLE{Jones1992, AUTHOR = {Mark P. Jones}, TITLE = {Computing with Lattices: An Application of Type Classes}, JOURNAL = jfp, YEAR = 1992, VOLUME = {2}, NUMBER = {4}, PAGES = {475-504}, MONTH = oct } @MANUAL{Gofer-manual, TITLE = {Gofer, Functional Programming Environment}, AUTHOR = {Mark P. Jones}, MONTH = jun, YEAR = 1994, NOTE = {Version 2.30} } @TECHREPORT{Gofer1994, AUTHOR = {Mark P. Jones}, TITLE = {The implementation of the {Gofer} functional programming system}, INSTITUTION = {Department of Computer Science, Yale University}, YEAR = 1994, TYPE = {Research Report}, NUMBER = {YALEU/DCS/RR-1030}, ADDRESS = {New Haven, Connecticut}, MONTH = may } @ARTICLE{FPearl2-4, AUTHOR = {Rob R. Hoogerwoord}, TITLE = {Functional Pearls: A Symmetric Set of Efficient List Operations}, JOURNAL = jfp, YEAR = 1992, VOLUME = {2}, NUMBER = {4}, PAGES = {505-514}, MONTH = oct } @ARTICLE{ThompsonWadler1993, AUTHOR = {Simon Thompson and Philip L. Wadler}, TITLE = {Functional Programming in Education --- Introduction}, JOURNAL = jfp, YEAR = 1993, VOLUME = {3}, NUMBER = {1}, PAGES = {3-4}, MONTH = jan } @ARTICLE{LLR1993, AUTHOR = {Tim Lambert and Peter Lindsay and Ken Robinson}, TITLE = {Using {Miranda} as a First Programming Language}, JOURNAL = jfp, YEAR = 1993, VOLUME = {3}, NUMBER = {1}, PAGES = {5-34}, MONTH = jan } @ARTICLE{Molyneux1993, AUTHOR = {Phil Molyneux}, TITLE = {Functional Programming for Business Students}, JOURNAL = jfp, YEAR = 1993, VOLUME = {3}, NUMBER = {1}, PAGES = {35-48}, MONTH = jan } @ARTICLE{JBH1993, AUTHOR = {Stef Joosten and Klaas {van den Berg} and Gerit {van der Hoeven}}, TITLE = {Teaching Functional Programming to First-year Students}, JOURNAL = jfp, YEAR = 1993, VOLUME = {3}, NUMBER = {1}, PAGES = {49-65}, MONTH = jan } @ARTICLE{Harrison1993, AUTHOR = {Rachel Harrison}, TITLE = {The Use of Functional Languages in Teaching Computer Science}, JOURNAL = jfp, YEAR = 1993, VOLUME = {3}, NUMBER = {1}, PAGES = {67-75}, MONTH = jan } @ARTICLE{Augustsson1993a, AUTHOR = {Lennart Augustsson}, TITLE = {The Interactive Lazy {ML} System}, JOURNAL = jfp, YEAR = 1993, VOLUME = {3}, NUMBER = {1}, PAGES = {77-92}, MONTH = jan } @ARTICLE{RTF1993, AUTHOR = {Colin Runciman and Ian Toyn and Mike Firth}, TITLE = {An Incremental, Exploratory and Tranformational Environment for Lazy Functional Programming}, JOURNAL = jfp, YEAR = 1993, VOLUME = {3}, NUMBER = {1}, PAGES = {93-115}, MONTH = jan } @ARTICLE{FPearl3-1, AUTHOR = {Richard S. Bird}, TITLE = {Functional Pearls: The Last Tail}, JOURNAL = jfp, YEAR = 1993, VOLUME = {3}, NUMBER = {1}, PAGES = {117-122}, MONTH = jan } @ARTICLE{Hannan1993, AUTHOR = {John Hannan}, TITLE = {Extended Natural Semantics}, JOURNAL = jfp, YEAR = 1993, VOLUME = {3}, NUMBER = {2}, PAGES = {123-152}, MONTH = apr } @ARTICLE{JB1993, AUTHOR = {W. Ken Jackson and F. Warren Burton}, TITLE = {Improving Intervals}, JOURNAL = jfp, YEAR = 1993, VOLUME = {3}, NUMBER = {2}, PAGES = {153-170}, MONTH = apr } @ARTICLE{BC1993, AUTHOR = {F. Warren Burton and Robert D. Cameron}, TITLE = {Pattern Matching with Abstract Data Types}, JOURNAL = jfp, YEAR = 1993, VOLUME = {3}, NUMBER = {2}, PAGES = {171-190}, MONTH = apr } @ARTICLE{NS1993, AUTHOR = {Eric Nöcker and Sjaak Smetsers}, TITLE = {Partially Strict Non-recursive Data Types}, JOURNAL = jfp, YEAR = 1993, VOLUME = {3}, NUMBER = {2}, PAGES = {191-216}, MONTH = apr } @ARTICLE{RW1993, AUTHOR = {Colin Runciman and David Wakeling}, TITLE = {Heap Profiling of Lazy Functional Programs}, JOURNAL = jfp, YEAR = 1993, VOLUME = {3}, NUMBER = {2}, PAGES = {217-246}, MONTH = apr } @ARTICLE{Reade1993, AUTHOR = {Chris Reade}, TITLE = {Terminating Comprehensions}, JOURNAL = jfp, YEAR = 1993, VOLUME = {3}, NUMBER = {2}, PAGES = {247-250}, MONTH = apr } @MISC{jfpspecial, key = {jfp}, NOTE = {Neil D. Jones, editor}, TITLE = {Journal of {F}unctional {P}rogramming 3(3), Special Issue on Partial Evaluation}, MONTH = jul, YEAR = 1993 } @ARTICLE{RW1993, AUTHOR = {Erik Ruf and Daniel Weise}, TITLE = {On the Specialization of Online Program Specializers}, JOURNAL = jfp, YEAR = 1993, VOLUME = {3}, NUMBER = {3}, PAGES = {251-282}, MONTH = jul } @ARTICLE{Turchin1993, AUTHOR = {Valentin F. Turchin}, TITLE = {Program Tranformation with Metasystem Transitions}, JOURNAL = jfp, YEAR = 1993, VOLUME = {3}, NUMBER = {3}, PAGES = {283-313}, MONTH = jul } @inproceedings{TurchinNirenbergTurchin1982, author = "V. F. Turchin and R. M. Nirenberg and D. V. Turchin", title = "Experiments with a Supercompiler", booktitle = "1982 ACM Symposium on Lisp and Functional Programming, Pittsburgh, Pennsylvania", pages = "47--55", publisher = "ACM", year = "1982", annote = "A dozen simple examples show how the supercompiler created at the City College of New York is working. The examples include partial evaluation, program specialization, problem solving, and theorem proving.", } @ARTICLE{BondorfJoergensen1993, OLDKEY = {BJ1993}, AUTHOR = {Anders Bondorf and Jesper Jørgensen}, TITLE = {Efficient Analysis for Realistic Off-line Partial Evaluation}, JOURNAL = jfp, YEAR = 1993, VOLUME = {3}, NUMBER = {3}, PAGES = {315-346}, MONTH = jul } @TechReport{BondorfJoergensen1993-report, semno = "D-164", author = "Anders Bondorf and Jesper J{\o}rgensen", title = "Efficient Analyses for Realistic Off-line Partial Evaluation: Extended Version", institution = "DIKU, University of Copenhagen, Denmark", year = "1993", number = "93/4", summary = "Four efficient analysis for partial evaluation preprocessing are described. The analyses are based on based on constraint solving and are shown to have almost-linear complexity. Benchmarks are given. Extended version of D-153", keywords = "partial evaluation, program analysis, flow analysis, binding time analysis, evaluation order dependency analysis, poor man's generalization", ISSN = "0107-8283", NOTE = "extended version of \cite{BondorfJoergensen1993}" } @ARTICLE{Palsberg1993, AUTHOR = {Jens Palsberg}, TITLE = {Correctness of Binding-time Analysis}, JOURNAL = jfp, YEAR = 1993, VOLUME = {3}, NUMBER = {3}, PAGES = {347-364}, MONTH = jul } @ARTICLE{Wand1993, AUTHOR = {Mitchell Wand}, TITLE = {Specifying the Correctness of Binding-time Analysis}, JOURNAL = jfp, YEAR = 1993, VOLUME = {3}, NUMBER = {3}, PAGES = {365-387}, MONTH = jul } @ARTICLE{Arya1994, AUTHOR = {Kavi Arya}, TITLE = {A functional animation starter-kit}, JOURNAL = jfp, YEAR = 1994, VOLUME = {4}, NUMBER = {1}, PAGES = {1-18}, MONTH = jan } @ARTICLE{Keane1994, AUTHOR = {John A. Keane}, TITLE = {An overview of the {Flagship} system}, JOURNAL = jfp, YEAR = 1994, VOLUME = {4}, NUMBER = {1}, PAGES = {19-46}, MONTH = jan } @ARTICLE{LTP1994, AUTHOR = {Rafael D. Lins and Simon J. Thompson and Simon {Peyton Jones}}, TITLE = {On the equivalence between {CMC} and {TIM}}, JOURNAL = jfp, YEAR = 1994, VOLUME = {4}, NUMBER = {1}, PAGES = {47-64}, MONTH = jan } @ARTICLE{BR1994, AUTHOR = {F. Warren Burton and V. J. Rayward-Smith}, TITLE = {Worst case scheduling for parallel functional programs}, JOURNAL = jfp, YEAR = 1994, VOLUME = {4}, NUMBER = {1}, PAGES = {65-76}, MONTH = jan } @ARTICLE{CH1994, AUTHOR = {Thierry Coquand and Hugo Herbelin}, TITLE = {{$A$}-translation and looping combinators in pure type-systems}, JOURNAL = jfp, YEAR = 1994, VOLUME = {4}, NUMBER = {1}, PAGES = {77-88}, MONTH = jan } @ARTICLE{Zhu1994, AUTHOR = {Hong Zhu}, TITLE = {How powerful are folding/unfolding transformations?}, JOURNAL = jfp, YEAR = 1994, VOLUME = {4}, NUMBER = {1}, PAGES = {89-112}, MONTH = jan } @ARTICLE{CH1994, AUTHOR = {Pierre-Louis Curien and Th{\`{e}}r{\'{e}}se Hardin}, TITLE = {Theoretical Pearl: Yet yet a counterexample for {$\lambda+SP$}}, JOURNAL = jfp, YEAR = 1994, VOLUME = {4}, NUMBER = {1}, PAGES = {113-116}, MONTH = jan } @ARTICLE{ARS1994, AUTHOR = {Lennart Augustsson and Mikael Rittri and Dan Synek}, TITLE = {Functional Pearl: On generating unique names}, JOURNAL = jfp, YEAR = 1994, VOLUME = {4}, NUMBER = {1}, PAGES = {117-123}, MONTH = jan } @ARTICLE{Tofte1994, AUTHOR = {Mads Tofte}, TITLE = {Principal Signatures for Higher-order Program Modules}, JOURNAL = jfp, YEAR = 1994, VOLUME = {4}, NUMBER = {3}, PAGES = {285-336}, MONTH = jul } @TECHREPORT{Tofte1989, AUTHOR = {Mads Tofte}, TITLE = {Four Lectures on {Standard ML}}, INSTITUTION = {Laboratory for Foundations of Computer Science}, YEAR = 1989, TYPE = {LFCS Report Series}, NUMBER = {ECS-LFCS-89-73}, ADDRESS = {Department of Computer Science, University of Edinburgh}, MONTH = mar, URL = {Department of Computer Science, University of Edinburgh} } @ARTICLE{NF1994, AUTHOR = {Henrik Hilsson and Peter Fritzson}, TITLE = {Algorithmic Debugging for Lazy Functional Languages}, JOURNAL = jfp, YEAR = 1994, VOLUME = {4}, NUMBER = {3}, PAGES = {337-370}, MONTH = jul } @ARTICLE{Huet1994, AUTHOR = {G{\'{e}}rard Huet}, TITLE = {Residual Theory in {$\lambda$}-calculus: a Formal Development}, JOURNAL = jfp, YEAR = 1994, VOLUME = {4}, NUMBER = {3}, PAGES = {371-394}, MONTH = jul } @ARTICLE{Glueck1994jfp, AUTHOR = {Robert Glück}, TITLE = {On the Generation of Specializers}, JOURNAL = jfp, YEAR = 1994, VOLUME = {4}, NUMBER = {4}, PAGES = {499-514}, MONTH = oct } @ARTICLE{Chin1994jfp, AUTHOR = {Wei-Ngan Chin}, TITLE = {Safe Fusion of Functional Expressions {II}: Further Improvements}, JOURNAL = jfp, YEAR = 1994, VOLUME = {4}, NUMBER = {4}, PAGES = {515-555}, MONTH = oct } @ARTICLE{AP1994, AUTHOR = {Peter Achten and Rinus Plasmeijer}, TITLE = {The Ins and Outs of {Clean I/O}}, JOURNAL = jfp, YEAR = 1995, volume = {5}, number = {1}, } @Article{JayGhani1995, author = "C. B. Jay and N. Ghani", title = "The Virtues of Eta-Expansion", journal = jfp, year = 1995, volume = 5, number = 2, pages = "135-154" } @UNPUBLISHED{Wurz} ******* textbooks **************************** other literature @ARTICLE{Hope:Tutorial, AUTHOR = {Roger Bailey}, TITLE = {A {Hope} Tutorial}, JOURNAL = {Byte}, YEAR = 1985, PAGES = {235-258}, MONTH = aug } ******************** Dagstuhl 1994 ******************** @INPROCEEDINGS{BHLM1994, CROSSREF = {LFP1994}, AUTHOR = {Edoardo Biagioni and Robert Harper and Peter Lee and Brian Milnes}, TITLE = {Signatures for a Network Protocol Stack: A Systems Application of Standard {ML}}, YEAR = 1994, PAGES = {x} } @INPROCEEDINGS{Biagioni1994, CROSSREF = {FPRW1994}, AUTHOR = {Edoardo Biagioni}, TITLE = {Theory and Practice: the Fox Net}, YEAR = 1994 } @INPROCEEDINGS{Eekelen1994, CROSSREF = {FPRW1994}, AUTHOR = {Marco {van Eekelen}}, TITLE = {A Lazy Functional Spreadsheet Written in a Lazy Functional Language}, YEAR = 1994 } @INPROCEEDINGS{FT1994, CROSSREF = {FPRW1994}, AUTHOR = {Marc Feeley and Marcel Turcotte}, TITLE = {A Parallel Functional Program for Searching a Discrete Space of Nucleic Acid {3D} Structures}, YEAR = 1994 } @InProceedings{SerranoFeeley1996, author = "Manuel Serrano and Marc Feeley", title = "Storage Use Analysis and its Applications", crossref = "ICFP1996", pages = "50-61" } @INPROCEEDINGS{Finn1994, CROSSREF = {FPRW1994}, AUTHOR = {Simon Finn}, TITLE = {The {LAMBDA} Experience}, YEAR = 1994 } @INPROCEEDINGS{Freericks1994, CROSSREF = {FPRW1994}, AUTHOR = {Markus Freericks}, TITLE = {Developing a Language for Real-Time Numeric Applications}, YEAR = 1994 } @INPROCEEDINGS{Frost1994, CROSSREF = {FPRW1994}, AUTHOR = {Richard Frost}, TITLE = {{W/AGE}: The {Windsor} Attribute Grammar Programming Environment}, YEAR = 1994 } @INPROCEEDINGS{Giegerich1994, CROSSREF = {FPRW1994}, AUTHOR = {Robert Giegerich}, TITLE = {Towards a Declarative Pattern Matching System for Biosequence Analysis}, YEAR = 1994 } @INPROCEEDINGS{Glaser1994-1, CROSSREF = {FPRW1994}, AUTHOR = {Hugh Glaser}, TITLE = {Prototype Development in a Lazy Functional Language}, YEAR = 1994 } @INPROCEEDINGS{Glaser1994-2, CROSSREF = {FPRW1994}, AUTHOR = {Hugh Glaser}, TITLE = {Some Lattice-based Scientific Problems, Expressed in {Haskell}}, YEAR = 1994 } @INPROCEEDINGS{GH1994, CROSSREF = {FPRW1994}, AUTHOR = {Hugh Glaser and Pieter H. Hartel}, TITLE = {The Resource Constrained Shortest Path Problem Implemented in a Lazy Functional Language}, YEAR = 1994 } @INPROCEEDINGS{Goblirsch1994, CROSSREF = {FPRW1994}, AUTHOR = {David M. Goblirsch}, TITLE = {Training Hidden {Markov} Models using {Haskell}}, YEAR = 1994 } @INPROCEEDINGS{Hall1994-natural, CROSSREF = {FPRW1994}, AUTHOR = {Cordelia V. Hall}, TITLE = {{Natural Expert}: A Commecial Functional Programming Language}, YEAR = 1994 } @INPROCEEDINGS{Hartel1994, CROSSREF = {FPRW1994}, AUTHOR = {Pieter H. Hartel}, TITLE = {Prototyping a Smart Card Operating System in a Lazy Functional Language}, YEAR = 1994 } @INPROCEEDINGS{Kurtz1994, CROSSREF = {FPRW1994}, AUTHOR = {Stefan Kurtz}, TITLE = {Fundamental Algorithms for Comparing Biosequences}, YEAR = 1994 } @INPROCEEDINGS{Miller1994, CROSSREF = {FPRW1994}, AUTHOR = {Patrick J. Miller}, TITLE = {Rational Drug Design in {Sisal '90}}, YEAR = 1994 } @INPROCEEDINGS{Morgan1994, CROSSREF = {FPRW1994}, AUTHOR = {Rick Morgan}, TITLE = {The {LOLITA} System}, YEAR = 1994 } @INPROCEEDINGS{ODonnell1994, CROSSREF = {FPRW1994}, AUTHOR = {John O'Donnell}, TITLE = {Hydra: {Haskell} as a Computer Hardware Description Language}, YEAR = 1994 } @INPROCEEDINGS{Sharp1994, CROSSREF = {FPRW1994}, AUTHOR = {John A. Sharp}, TITLE = {Functional Programming Applied to Numerical Problems}, YEAR = 1994 } @INPROCEEDINGS{Truve1994, CROSSREF = {FPRW1994}, AUTHOR = {Staffan Truve}, TITLE = {Declarative Real-Time Systems}, YEAR = 1994 } @INPROCEEDINGS{Williams1994, CROSSREF = {FPRW1994}, AUTHOR = {Mike Williams}, TITLE = {Erlang --- A Functional Programming Language for Developing Real-Time Products}, YEAR = 1994 }