% bibliography.bib -- Martin's personal bibliography % @string{ActInf = "Acta Informatica"} @string{CACM = "Communications of the {ACM}"} @string{CompJ = "Computer Journal"} @string{Dobbs = "Dr. Dobb's Journal"} @string{IPL = "Information Processing Letters"} @string{IEEETransComp = "IEEE Transactions on Computers"} @string{IEEETransSWE = "IEEE Transactions on Software Engineering"} @string{ISJ = "{IBM} Systems Journal"} @string{JACM = "Journal of the ACM"} @string{JFP = "Journal of Functional Programming"} @string{JSS = "Journal of Systems and Software"} @string{LNCS = "Lecture Notes in Computer Science"} @string{LSC = "Lisp and Symbolic Computation"} @string{MK = "Morgan Kaufman"} @string{SPE = "Software Practice and Experience"} @string{SIGPLAN = "ACM SIGPLAN Notices"} @string{TECS = "ACM Transactions on Embedded Computer Systems"} @string{TOPLAS = "ACM Transactions on Programming Languages and Systems"} @string{TransCompSys = "ACM Transactions on Computer Systems"} @string{TransSWE = "ACM Transactions on Software Engineering"} @string{ACM = "ACM Press"} @string{AP = "Academic Press"} @string{AW = "Addison-Wesley"} @string{BCS = "British Computer Society"} @string{CUP = "Cambridge University Press"} @string{ENH = "Elsevier-North Holland"} @string{ES = "Elsevier Science Publishers"} @string{IBM = "IBM Corp."} @string{IEEE = "IEEE Press"} @string{PH = "Prentice-Hall"} @string{MGH = "McGraw-Hill"} @string{NH = "North Holland"} @string{MIT = "MIT Press"} @string{SV = "Springer-Verlag"} @string{UA = "USENIX Association"} @string{Wiley = "Wiley"} @string{CMU = "Carnegie Mellon University"} @string{CORNELL = "Cornell University"} @string{DECSRC = "DEC Systems Research Center, Palo Alto, CA"} @string{DECWRL = "DEC Western Research Laboratory, Palo Alto, CA"} @string{DIKU = "Department of Computer Science (DIKU), University of Copenhagen"} @string{INRIA = "Institut National de la Recherche en Informatique et Automatique"} @string{Lund = "Lund University, Sweden"} @string{MITAI = "MIT AI Laboratory"} @string{MITLCS = "MIT Laboratory for Computer Science"} @string{PARC = "Xerox PARC, Palo Alto, CA"} @string{PRINCETON = "Department of Computer Science, Princeton University"} @string{RICE = "Rice University"} @string{UCB = "University of California, Berkeley"} @string{UKC = "Computing Laboratory, The University of Kent at Canterbury"} @string{UCSC = "University of California, Santa Cruz"} @Misc{ACM1972Lectures, author = {{ACM German Chapter}}, title = {Lectures {II} -- 1972}, year = 1972 } @article{Abadi1991Dynamic, author = {Mart{\'i}n Abadi and Luca Cardelli and Benjamin Pierce and Gordon Plotkin}, title = {Dynamic typing in a statically typed language}, journal = TOPLAS, volume = 13, number = 2, year = 1991, issn = {0164-0925}, pages = {237--268}, doi = {http://doi.acm.org/10.1145/103135.103138}, publisher = ACM, } @Book{Abadi1997TheoryOfObjects, author = {Mart{\'i}n Abadi and Luca Cardelli}, title = {A Theory of Objects}, publisher = SV, year = 1997 } @Book{Abelson1996SICP, author = {Harold Abelson and Gerald Jay Sussman and Julie Sussman}, title = {Structure and Interpretation of Computer Programs}, publisher = MIT, year = 1996, edition = {2nd} } @Misc{Adams-FirstClassSchemeXerox, author = {Norman Adams and Pavel Curtis and Mike Spreitzer}, title = {First-Class Data-type Representation in {SchemeXerox}}, url = {citeseer.nj.nec.com/4990.html} } @InProceedings{Agat1997TypesRegister, author = {Johan Agat}, title = {Types for Register Allocation}, booktitle = {Proceedings of IFL'97}, year = 1997, volume = 1467, series = LNCS } @Book{Aho1982DataAlgorithms, author = {Alfred V. Aho and John E. Hopcroft and Jeffrey D. Ullman}, title = {Data Structures and Algorithms}, publisher = AW, year = 1982, series = {Computer Science and Information Processing} } @InProceedings{Aiken1994SetConstraints, author = {A. Aiken}, title = {Set Constraints: Results, Applications and Future Directions}, booktitle = {Principles and Practice of Computer Programming}, year = 1994, editor = {A. Borning}, volume = 874, series = LNCS, publisher = SV } @Article{AitKaci1993MeaningOfLife, author = {Hassan A{\"\i}t-Kaci and Andreas Podelski}, title = {Towards a Meaning of {LIFE}}, journal = {Journal of Logic Programming}, year = 1993, volume = 16, number = {3 \& 4}, pages = {195--234} } @INPROCEEDINGS{AlbertHanusHuchOliverVidal02WFLP, author = {Elvira Albert and Michael Hanus and Frank Huch and Javier Oliver and Germ{\'a}n Vidal}, title = {An Operational Semantics for Declarative Multi-Paradigm Languages}, year = 2002, address = {Grado (Italy)}, booktitle = {Proc.\ of the 11th International Workshop on Functional and (Constraint) Logic Programming (WFLP 2002)}, publisher = {Research Report UDMI/18/2002/RR, Universit{\`a} degli Studi di Udine}, pages = {7--20}, abstract = { In this paper we define an operational semantics for functional logic languages covering notions like laziness, sharing, concurrency, non-determinism, etc. Such a semantics is not only important to provide appropriate language definitions to reason about programs and check the correctness of implementations but it is also a basis to develop language-specific tools, like program tracers, profilers, optimizers, etc. First, we define a "big-step" semantics in natural style to relate expressions and their evaluated results. Since this semantics is not sufficient to cover concurrency, search strategies, or to reason about costs associated to particular computations, we also define a "small-step" operational semantics covering the features of modern functional logic languages. } } @InProceedings{Andreoli1993Interaction, author = {Jean-Marc Andreoli and Paolo Ciancarini and Remo Pareschi}, title = {Interaction Abstract Machines}, booktitle = {Research Directions in Concurrent Object Oriented Programming}, pages = {257--280}, year = 1993, editor = {Agha and Wegner and Yonezawa} } @article{ Appel1987GCFaster, author = "Andrew W. Appel", title = "Garbage Collection can be Faster than Stack Allocation", journal = "Information Processing Letters", volume = 25, number = 4, publisher = "North Holland", address = "Princeton University, Dept. Computer Science, Princeton, NJ, 08544", pages = "275--279", year = 1987, url = "citeseer.nj.nec.com/appel87garbage.html" } @inproceedings{Appel1987StandardMLCompiler, author = "Andrew W. Appel and David B. MacQueen", title = "{A Standard {ML} Compiler}", booktitle = "{Proceedings of the Conference on Functional Programming Languages and Computer Architecture}", volume = 274, publisher = "Springer, Berlin", address = "Portland, Oregon, USA, September 14--16", pages = "301--324", year = 1987, url = "citeseer.nj.nec.com/appel87standard.html" } @inproceedings{Appel1988RealTimeCC, author = {A. W. Appel and J. R. Ellis and K. Li}, title = {Real-time concurrent collection on stock multiprocessors}, booktitle = {Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation}, year = 1988, isbn = {0-89791-269-1}, pages = {11--20}, location = {Atlanta, Georgia, United States}, doi = {http://doi.acm.org/10.1145/53990.53992}, publisher = ACM, } @TechReport{Appel1989RuntimeSystem, author = {Andrew W. Appel}, title = {A Runtime System}, institution = {Princeton University}, year = 1989, number = {CS-TR-220-89}, month = may } @article{ Appel1989Simple, author = "Andrew W. Appel", title = "Simple Generational Garbage Collection and Fast Allocation", journal = "Software Practice and Experience", volume = 19, number = 2, publisher = "Wiley", pages = "171--183", year = 1989, url = "citeseer.nj.nec.com/appel88simple.html" } @Book{Appel1992CompilingWithContinuations, author = {Andrew W. Appel}, title = {Compiling with Continuations}, publisher = CUP, year = 1992 } @article{Appel1993Critique, author = "Andrew W. Appel", title = "A Critique of Standard {ML}", journal = "Journal of Functional Programming", volume = 3, number = 4, pages = "391-429", year = 1993, url = "citeseer.nj.nec.com/appel92critique.html" } @Book{Appel1998MmodernCompiler, author = {Andrew W. Appel}, title = {Modern Compiler Implementation in C}, publisher = CUP, year = 1998 } @inproceedings{ Apt1997Search, author = "Krzysztof R. Apt and Andrea Schaerf", title = "Search and Imperative Programming", booktitle = "Conference Record of {POPL} 97: The 24TH {ACM} {SIGPLAN}-{SIGACT} Symposium on Principles of Programming Languages, Paris, France", address = "New York, NY", pages = "67--79", year = 1997, url = "citeseer.nj.nec.com/apt97search.html" } @Article{Apt1998Alma, author = {Krzysztof R. Apt and Jacob Brunekreef and Vincent Partington and Andrea Schaerf}, title = {Alma-0: An Imperative Language that Supports Declarative Programming}, journal = {ACM Toplas}, year = 1998, volume = 20, number = 5, pages = {1014--1066} } @misc{ Apt1998Integrating, author = "K. Apt and A. Schaerf", title = "Integrating constraints into an imperative programming language", text = "K. R. Apt and A. Schaerf. Integrating constraints into an imperative programming language, 1998. Submitted. Available from \url{http://www.cwi.nl/~apt}.", year = 1998, url = "citeseer.nj.nec.com/apt98integrating.html" } @InProceedings{Apt1999AlmaProject, author = {Krzysztof R. Apt and Andrea Schaerf}, title = {The {Alma} Project, or How First Order Logic Can Help Us in Imperative Programming}, booktitle = {Correct System Design}, pages = {89--113}, year = 1999, editor = {E.-R. Olderog and B. Steffen}, number = 1710, series = LNCS, publisher = SV } @InProceedings{Ariola1998MonadicState, author = {Zena M. Ariola and Amr Sabry}, title = {Correctness of Monadic State: An Imperative Call-by-Need Calculus}, booktitle = {Proceedings of 25th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages}, year = 1998, pages = "62--73", url = "citeseer.nj.nec.com/ariola98correctness.html" } @Article{Ariola2002LambdaLetrec, author = {Zena M. Ariola and Stefan Blom}, title = {Skew confluence and the lambda calculus with letrec}, journal = {Annals of pure and applied logic}, year = 2002, volume = 117, number = {1--3}, pages = {97-170} } @PhdThesis{Armstrong2003Thesis, author = {Joe Armstrong}, title = {Making reliable distributed systems in the presence of software errors}, school = {Royal Institute of Technology}, year = 2002, address = {Stockholm, Sweden}, month = dec } @inproceedings{Ashley1094EfficientMultiple, author = "J. Michael Ashley and R. Kent Dybvig", title = "An Efficient Implementation of Multiple Return Values in Scheme", booktitle = "{LISP} and Functional Programming", pages = "140-149", year = 1994, url = "citeseer.nj.nec.com/article/ashley94efficient.html" } @Misc{AspectC, title = {{AspectC}}, key = {AspectC}, note = {Available from: \url{http://www.cs.ubc.ca/labs/spl/projects/aspectc.html}, last visited on 2003-11-26}, } @Misc{AspectJ, title = {{AspectJ}}, key = {AspectJ}, note = {Availabl from: \url{http://eclipse.org/aspectj/}, last visited on 2003-11-26} } @inproceedings{Augustsson1998Cayenne, author = "Lennart Augustsson", title = "Cayenne - a Language with Dependent Types", booktitle = "International Conference on Functional Programming", pages = "239--250", year = 1998, url = "citeseer.nj.nec.com/augustsson98cayenne.html" } @Article{Avesani1990COOL, author = {P. Avesani and A. Perini and F. Ricci}, title = {{COOL}: An Object System with Constraints}, journal = {TOOLS 2}, year = 1990, month = jun } @Article{Axford1996Aladin, author = {Tom Axford and Mike Joy}, title = {Aladin: An abstract machine for integrating functional and procedural programming}, journal = {Journal of Programming Languages}, year = 1996, volume = 4, pages = {63--76} } @inproceedings{BT95a:ILPS, author = {Bekkers, Yves and Tarau, Paul}, title = {Monadic {C}onstructs for {L}ogic {P}rogramming}, booktitle = {Proceedings of ILPS'95}, editor = "Lloyd, John", year = 1995, month = dec, address = "Portland, Oregon", pages = "51--65", publisher = MIT } @inproceedings{Backhouse1998GenericProgramming, AUTHOR = "Backhouse, R. and Jansson, P. and Jeuring, J. and Meertens, L.", TITLE = "Generic Programming --- An Introduction", booktitle = LNCS, PAGES = "28--115", VOLUME = 1608, PUBLISHER = SV, NOTE = "Revised version of lecture notes for AFP'98.", YEAR = 1999 } @Article{Backus1978Liberated, 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 } @Article{Badros2002Cassowary, author = {Greg Badros and Alan Borning and Peter J. Stuckey}, title = {The {Cassowary} Linear Arithmetic Constraint Solving Algorithm}, journal = {ACM Transactions on Computer-Human Interaction}, year = 2001, volume = 8, number = 4, pages = {267--306}, month = dec } @inproceedings{Baker1982AdaFrontend, author = {T. P. Baker}, title = {A single-pass syntax-directed front end for Ada}, booktitle = {Proceedings of the 1982 SIGPLAN symposium on Compiler construction}, year = 1982, isbn = {0-89791-074-5}, pages = {318--326}, location = {Boston, Massachusetts, United States}, } @article{Baker1982OverloadResolution, author = {T. P. Baker}, title = {A One-Pass Algorithm for Overload Resolution in Ada}, journal = TOPLAS, volume = 4, number = 4, year = 1982, issn = {0164-0925}, pages = {601--614}, doi = {http://doi.acm.org/10.1145/69622.69623}, publisher = ACM, } @Book{Barthe2002AppliedSemantics, ALTauthor = {}, editor = {Gilles Barthe and Peter Dybvier and Lu{\'\i}s Pinto and Jo{\~a}o Saraiva}, title = {Applied Semantics}, publisher = SV, year = {2002}, number = {2395}, series = LNCS } @TechReport{Bartlett1989SchemeToC, author = {Joel F. Bartlett}, title = {{SCHEME-$>$C: A Portable Scheme-to-C Compiler}}, institution = {Western Research Laboratory}, year = 1989, type = {Research report}, number = {89/1}, address = {100 Hamilton Avenue, Palo Alto, California 94301 USA} } @inproceedings{ Bartlett1990Generational, author = "Joel F. Bartlett", title = "{A} generational compacting garbage collector for {C}++", booktitle = "{ECOOP}/{OOPSLA} Workshop on Garbage Collection in Object-Oriented Systems", address = "Ottawa, Canada", year = 1990, url = "citeseer.nj.nec.com/230349.html" } @article{Bauer1978WideSpectrum, author = {F. L. Bauer and M. Broy and R. Gnatz and W. Hesse and B. Krieg-Br{\"u}ckner and H. Partsch and P. Pepper and H. W{\"o}ssner}, title = {Towards a wide spectrum language to support program specification and program development}, journal = {SIGPLAN Notices}, volume = 13, number = 12, year = 1978, issn = {0362-1340}, pages = {15--24}, doi = {http://doi.acm.org/10.1145/954587.954588}, publisher = ACM, } @Book{Bauer1985CIP, author = {Friedrich L. Bauer}, title = {{The Munich Project CIP. Volume I: The Wide Spectrum Language CIP-L}}, publisher = SV, year = 1985, volume = 183, series = LNCS } @InProceedings{Baumgartner2001FPinBrew, author = {Gerald Baumgartner and Martin Jansche and Christopher D. Peisert}, title = {Support for Functional Programming in Brew}, crossref = {Striegnitz2001MPOOL}, booktitle = {Multiparadigm Programming with Object-Oriented Languages (MPOOL)}, pages = {111--125}, year = 2001 } @TechReport{Bawden1988SyntacticClosures, author = {Alan Bawden and Jonathan Rees}, title = {Syntactic Closures}, institution = MITAI, year = 1988, number = {AIM-1049}, month = jun } @InProceedings{Bawden2000FirstClassMacros, author = {Alan Bawden}, title = {First-class macros have types}, booktitle = {POPL '00: 27th ACM Symp. Princ. of Prog. Langs.}, year = 2000 } @InProceedings{Benson1994libscheme, author = {Brent W. Benson}, title = {libscheme: {Scheme} as a {C} library}, booktitle = {Usenix Very High-level Languages Symposium}, year = 1994 } @Book{Bentley1988Pearls, author = {Jon Bentley}, title = {More Programming Pearls}, publisher = AW, year = 1988 } @InBook{Benton2002MonadsEffects, author = {Nick Benton and John Hughes and Eugenio Moggi}, ALTeditor = {}, title = {Applied Semantics}, chapter = {Monads and Effects}, publisher = SV, year = {2002}, OPTcrossref = {Barthe2002AppliedSemantics}, number = {2395}, series = LNCS } @article{Biagioni1998SafeForSpace, author = "Edoardo Biagioni and Ken Cline and Peter Lee and Chris Okasaki and Chris Stone", title = "Safe-for-Space Threads in Standard {ML}", journal = "Higher-Order and Symbolic Computation", volume = 11, number = 2, pages = "209-225", year = 1998, url = "citeseer.nj.nec.com/33216.html" } @article{ Bigot1999ReturnValue, author = "Peter A. Bigot and Saumya K. Debray", title = "Return Value Placement and Tail Call Optimization in High Level Languages", journal = "Journal of Logic Programming", volume = 38, number = 1, pages = "1-29", year = 1999, url = "citeseer.nj.nec.com/bigot99return.html" } @Book{Bird1988IntroFP, author = {Richard Bird and Philip Wadler}, title = {{Introduction to Functional Programming}}, publisher = PH, year = 1988 } @Article{Bird1997HasteSpeed, author = {Richard Bird and Geraint Jones and Oege de Moor}, title = {More Haste, Less Speed: Lazy Versus Eager Evaluation}, journal = {Journal of Functional Programming}, year = 1997, volume = 7, number = 5, pages = {541--547}, month = sep } @inproceedings{Bird2003TroubleShared, author = {Richard Bird and Ralf Hinze}, title = {Functional Pearl trouble shared is trouble halved}, booktitle = {Proceedings of the ACM SIGPLAN workshop on Haskell}, year = 2003, isbn = {1-58113-758-3}, pages = {1--6}, location = {Uppsala, Sweden}, doi = {http://doi.acm.org/10.1145/871895.871896}, publisher = ACM, } @inproceedings{Blackburn2002Beltway, author = {Stephen M. Blackburn and Richard Jones and Kathryn S. McKinley and J. Eliot B. Moss}, title = {Beltway: getting around garbage collection gridlock}, booktitle = {Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation}, year = 2002, isbn = {1-58113-463-0}, pages = {153--164}, location = {Berlin, Germany}, doi = {http://doi.acm.org/10.1145/512529.512548}, publisher = ACM, } @InProceedings{Blazevic2001Environment, author = {Mario Bla{\v z}evi{\'c} and Zoran Budimac}, title = {Implementing Extensible Compilers}, crossref = {Striegnitz2001MPOOL}, booktitle = {Multiparadigm Programming with Object-Oriented Languages (MPOOL)}, pages = {97--110}, year = {2001} } @Misc{Blume1997SeparateCompilationScheme, author = {Matthias Blume}, title = {Separate Compilation for {Scheme}}, howpublished = {Draft Paper}, year = 1997 } @inproceedings{Boehm1982LogicExpressionsSideEffects, author = {Hans-J. Boehm}, title = {A Logic for Expressions With Side-Effects}, booktitle = {Proceedings of the 9th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages}, year = 1982, isbn = {0-89791-065-6}, pages = {268--280}, location = {Albuquerque, Mexico}, doi = {http://doi.acm.org/10.1145/582153.582182}, publisher = ACM, } @inproceedings{Boehm1986ImplementingRussel, author = {Hans-Juergen Boehm and Alan Demers}, title = {Implementing {Russell}}, booktitle = {Proceedings of the 1986 SIGPLAN Symposium on Compiler Construction}, year = 1986, isbn = {0-89791-197-0}, pages = {186--195}, location = {Palo Alto, California, United States}, doi = {http://doi.acm.org/10.1145/12276.13330}, publisher = ACM, }, @Misc{Bonniot2000StructuralInterfaces, author = {Daniel Bonniot}, title = {Structural interfaces for {ML${}_{\leq}$}}, month = apr, year = 2000 } @inproceedings{Borning1997ConstraintsWeb, author = {Alan Borning and Richard Lin and Kim Marriott}, title = {Constraints for the web}, booktitle = {Proceedings of the fifth ACM international conference on Multimedia}, year = 1997, isbn = {0-89791-991-2}, pages = {173--182}, location = {Seattle, Washington, United States}, doi = {http://doi.acm.org/10.1145/266180.266361}, publisher = ACM, } @InProceedings{Bother1998CompilingSchemeJava, author = {Per Bothner}, title = {Kawa: Compiling {Scheme} to {Java}}, booktitle = {Usenix}, year = 1998, address = {New Orleans}, month = jun } @InProceedings{Bothner1998Kawa, author = {Per Bothner}, title = {Kawa - Compiling Dynamic Languages to the Java VM}, booktitle = {Usenix Conference}, year = 1998, address = {New Orleans} } @Proceedings{Bramer2003AI2003, title = {Proceedings of AI-2003, the Twentythird SGAI International Conference on Innovative Techniques and Applications of Artificial Intelligence}, year = 2003, editor = {Max Bramer and Richard Ellis and Ann L. Macintosh}, volume = {XX}, series = {Applications and Innovations in Intelligent Systems}, address = {Cambridge, UK}, month = dec, organization = BCS, publisher = SV } @InProceedings{Brand2003ModalSatisfiability, author = {Sebastian Brand and Rosella Gennari and Maarten de Rijke}, title = {Constraint Programming for Modelling and Solving Modal Satisfiability}, booktitle = {Ninth International Conference on Principles and Practice of Constraint Programming}, pages = {795--800}, year = 2003, editor = {Francesca Rossi}, month = sep, publisher = SV } @InProceedings{Breitinger1996EdenCoordinationModel, author = {Silvia Breitinger and Rita Loogen and Yolanda Ortega-Mall{\'e}n and Ricardo Pe{\~n}a}, title = {The {Eden} Coordination Model for Distributed Memory Systems}, crossref = {Chakravarty1996MPLP}, booktitle = {Multi-paradigm Logic Programming}, pages = {25--34}, year = 1996 } @article{Broy1982SchorrWaite, author = {Manfred Broy and Peter Pepper}, title = {Combining Algebraic and Algorithmic Reasoning: An Approach to the Schorr-Waite Algorithm}, journal = {ACM Trans. Program. Lang. Syst.}, volume = 4, number = 3, year = 1982, issn = {0164-0925}, pages = {362--381}, doi = {http://doi.acm.org/10.1145/357172.357175}, publisher = ACM, } @Proceedings{Broy1991MoP, title = {Methods of Programming -- Selected Papers on the CIP Project}, year = 1991, editor = {Manfred Broy and Martin Wirsing}, volume = 544, series = LNCS, publisher = SV } @InProceedings{Brus1987Clean, author = {T. Brus and M. C. J. D. van Eekelen and M. van Leer and M. J. Plasmeijer and H.P. Barendregt}, title = {CLEAN - A Language for Functional Graph Rewriting}, booktitle = {Proc. of Conference on Functional Programming Languages and Computer Architecture (FPCA '87), Portland, Oregon, USA}, pages = {364--384}, year = 1987, editor = {Kahn}, number = 274, series = LNCS, publisher = SV } @InProceedings{Bryant2001ExplicitProgramming, author = {Avi Bryant and Andrew Catton and Kris De Volder and Gail C. Murphy.}, title = {Explicit Programming }, booktitle = {Proceedings of 1st International Conference on Aspect-Oriented Software Development}, pages = {10--18}, year = 2001, month = apr } @article{Budd1998FunctionalProgramming, author = {Timothy A. Budd}, title = {Functional programming and the fragile base class problem}, journal = SIGPLAN, volume = 33, number = 12, year = 1998, issn = {0362-1340}, pages = {66--71}, doi = {http://doi.acm.org/10.1145/307824.307881}, publisher = ACM, } @InProceedings{Budd2002JensensDevice, author = {Timothy A. Budd}, title = {The Return of {Jensen's} Device}, crossref = {Striegnitz2002MPOOL}, booktitle = {Multiparadigm Programming with Object-Oriented Languages (MPOOL)}, pages = {45--63}, year = 2002 } @INPROCEEDINGS{BuessowGrieskamp:99, AUTHOR = {R. B{\"u}ssow and W. Grieskamp}, TITLE = {{A Modular Framework for the Integration of Heterogenous Notations and Tools}}, BOOKTITLE = {Proc. of the 1st International Conference on Integrated Formal Methods -- IFM'99}, YEAR = 1999, EDITOR = {K. Araki and A. Galloway and K. Taguchi} } @TechReport{Burger1994SchemeMachine, author = {Robert G. Burger}, title = {The Scheme Machine}, institution = {Indiana University, Computer Science Department}, year = 1994, number = 413, month = aug } @InProceedings{Burger1995RegisterAllocation, author = {Robert G. Burger and Oscar Waddell and R. Kent Dybvig}, title = {{Register Allocation Using Lazy Saves, Eager Restores, and Greedy Shuffling}}, booktitle = {Conference on Programming Language Design and Implementation}, pages = {130--138}, year = 1995, volume = 30, month = jun } @article{Burstall1977TransformationSystem, author = {R. M. Burstall and John Darlington}, title = {A Transformation System for Developing Recursive Programs}, journal = {J. ACM}, volume = 24, number = 1, year = 1977, issn = {0004-5411}, pages = {44--67}, doi = {http://doi.acm.org/10.1145/321992.321996}, publisher = ACM, } @inproceedings{Burstall1980Hope, author = "R. M. Burstall and D. B. MacQueen and D. T. Sannella", title = "{Hope: An Experimental Applicative Language}", booktitle = "{Conference Record of the 1980 {LISP} Conference}", publisher = ACM, address = "Stanford University, Stanford, California", pages = "136--143", year = 1980, month = aug, url = "citeseer.nj.nec.com/burstall80hope.html" } @MISC{CIP1, key = {CIP1}, TITLE = {{Constraint Imperative Programming}}, howpublished = {World Wide Web}, NOTE = {Available from:\url{http://www.ncst.ernet.in/kbcs/vivek/issues/10.4/ravi/node10.html}, last visited: 2003-02-24}, YEAR = 1999 } @MISC{CIP2, key = {CIP2}, TITLE = {{Papers -- Constraint Imperative Programming}}, howpublished = {World Wide Web}, NOTE = {Available from: \url{http://www.cs.washington.edu/research/constraints/cip/}, last visited: 2003-02-24}, YEAR = 2003 } @InProceedings{Calcagno2003Implementing, author = {Cristiano Calcagno and Walid Taha and Liwen Huang and Xavier Leroy}, title = {{Implementing Multi-stage Languages Using ASTs, Gensym, and Reflection}}, booktitle = {GPCE'2003}, year = 2003 }, @inproceedings{Cannarozzi2000ContaminatedGC, author = {Dante J. Cannarozzi and Michael P. Plezbert and Ron K. Cytron}, title = {Contaminated garbage collection}, booktitle = {Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation}, year = 2000, isbn = {1-58113-199-2}, pages = {264--273}, location = {Vancouver, British Columbia, Canada}, doi = {http://doi.acm.org/10.1145/349299.349334}, publisher = ACM, } @PhdThesis{CantwellSmith1982Reflection, author = {Brian {Cantwell Smith}}, title = {Reflection and Semantics in a Procedural Language}, school = {Massachusetts Institute of Technology}, year = 1982, month = jan, note = {Also available as Technical Report No.~MIT-LCS-TR-272} } @article{ Cardelli1987BasicPolymorphicTypeChecking, author = "Luca Cardelli", title = "Basic Polymorphic Typechecking", journal = "Science of Computer Programming", volume = 8, number = 2, pages = "147-172", year = 1987, url = "citeseer.nj.nec.com/cardelli88basic.html" } @InProceedings{Carlsson2002MonadsIncrementalComputing, author = {Magnus Carlsson}, title = {Monads for Incremental Computing"}, booktitle = {Proceedings of the International Conference on Functional Programming, ICFP'2002}, year = 2002, month = oct } @InProceedings{Ceijtin2000FlowDirected, author = {Henry Cejtin and Suresh Jagannathan and Stephen Weeks}, title = {Flow-Directed Closure Conversion for Typed Languages}, booktitle = {European Symposium on Programming}, pages = {56--71}, year = 2000, month = mar } @Proceedings{Chakravarty1996MPLP, title = {Multi-paradigm Logic Programming}, year = 1996, editor = {Manuel M. T. Chakravarty and Yike Guo and Tetsuo Ida}, number = {96--28}, series = {Forschungsberichte des Fachbereichs Informatik}, month = aug, organization = {Technische Universit{\"a}t Berlin}, note = {Proceedings of the JICSLP'96 Post-Conference Workshop} } @inproceedings{Chen1997MutableADT, author = {Chih-Ping Chen and Paul Hudak}, title = {Rolling your own mutable ADT--a connection between linear types and monads}, booktitle = {Proceedings of the 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages}, year = 1997, isbn = {0-89791-853-3}, pages = {54--66}, location = {Paris, France}, doi = {http://doi.acm.org/10.1145/263699.263708}, publisher = ACM, } @inproceedings{Chitil1999TypeInference, author = {Olaf Chitil}, title = {Type inference builds a short cut to deforestation}, booktitle = {Proceedings of the fourth ACM SIGPLAN international Conference on Functional Programming}, year = 1999, isbn = {1-58113-111-9}, pages = {249--260}, location = {Paris, France}, doi = {http://doi.acm.org/10.1145/317636.317907}, publisher = ACM, } @Article{Claessen1999ConcurrencyMonad, author = {Koen Claessen}, title = {A Poor Man's Concurrency Monad}, journal = {Journal of Functional Programming}, year = 1999, } @inproceedings{Clinger1988ImplementingContinuations, author = {Will Clinger and Anne Hartheimer and Eric Ost}, title = {Implementation strategies for continuations}, booktitle = {Proceedings of the 1988 ACM Conference on LISP and Functional Programming}, year = 1988, isbn = {0-89791-273-X}, pages = {124--131}, location = {Snowbird, Utah, United States}, doi = {http://doi.acm.org/10.1145/62678.62692}, publisher = ACM, } @Article{Clinger1991ExplicitRenaming, author = {William D. Clinger}, title = {Hygienic macros through explicit renaming}, journal = {Lisp Pointers}, year = 1991, volume = {IV}, number = 4, month = dec, } @InProceedings{Clinger1991MacrosThatWork, author = {William Clinger and Jonathan Rees}, title = {Macros that work}, booktitle = {POPL '91: Conference Record of the Eighteenth Annual ACM Symposium on Principles of Programming Languages}, pages = {155-162}, year = 1991, publisher = ACM } @inproceedings{Coady2001ModularityOS, author = {Yvonne Coady and Gregor Kiczales and Mike Feeley and Greg Smolyn}, title = {Using aspectC to improve the modularity of path-specific customization in operating system code}, booktitle = {Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering}, year = 2001, isbn = {1-58113-390-1}, pages = {88--98}, location = {Vienna, Austria}, doi = {http://doi.acm.org/10.1145/503209.503223}, publisher = ACM } @inproceedings{Coady2003AspectEvolutionOS, author = {Yvonne Coady and Gregor Kiczales}, title = {Back to the future: a retroactive study of aspect evolution in operating system code}, booktitle = {Proceedings of the 2nd international conference on Aspect-oriented software development}, year = 2003, isbn = {1-58113-660-9}, pages = {50--59}, location = {Boston, Massachusetts}, doi = {http://doi.acm.org/10.1145/643603.643609}, publisher = ACM, } @Proceedings{Coenen2003AI2003, title = {Proceedings of AI-2003, the Twentythird SGAI International Conference on Innovative Techniques and Applications of Artificial Intelligence}, year = 2003, editor = {Frans Coenen and Alun Preece and Ann L. Macintosh}, volume = {XX}, series = {Research and Development in Intelligent Systems}, address = {Cambridge, UK}, month = dec, organization = BCS, publisher = SV } @article{Cohen1990CLPL, author = {Jacques Cohen}, title = {Constraint logic programming languages}, journal = CACM, volume = 33, number = 7, year = 1990, issn = {0001-0782}, pages = {52--68}, doi = {http://doi.acm.org/10.1145/79204.79209}, publisher = ACM, } @InProceedings{Colnet1998CustomizeMarkSweep, author = {Dominique Colnet and Philippe Coucaud and Olivier Zendra}, title = {Compiler Support to Customize the Mark and Sweep Algorithm}, booktitle = {ACM SIGPLAN International Symposium on Memory Management (ISMM'98)}, pages = {154-165}, year = 1998, address = {Vancouver, BC, Canada}, month = oct }, @Article{Constanza2003EssenceAOP, author = {Pascal Costanza}, title = {Dynamically Scoped Functions as the Essence of AOP}, journal = {ACM SIGPLAN Notices}, year = 2003, volume = 38, number = 8, pages = {29--36}, month = aug } @Book{Cooper2004EngineeringCompiler, author = {Keith D. Cooper and Linda Torczon}, title = {Engineering a Compiler}, publisher = MK, year = 2004 } @InProceedings{Courtney2001GUI, author = {Antony Courtney and Conal Elliott}, title = {Genuinely Functional User Interfaces}, booktitle = {Haskell Workshop 01}, year = 2001 } @InProceedings{Crary2003TypedAssembly, author = {Karl Crary}, title = {Toward a Foundational Typed Assembly Language}, booktitle = {POPL'03}, pages = {198--212}, year = 2002 } @misc{CurryReport, AUTHOR = {M. Hanus and S. Antoy and H. Kuchen and F.J. L\a'opez-Fraguas and W. Lux and J.J. Moreno-Navarro and F. Steiner}, TITLE = {{Curry -- An Integrated Functional Logic Language}}, howpublished = {Language Report}, YEAR = {Version 0.7.2, 2002} } @InProceedings{Curtis1990ModuleSystemScheme, author = {Pavel Curtis and James Rauen}, title = {A Module System for Scheme}, booktitle = {Proceedings of the 1990 ACM Conference on Lisp and Functional Programming}, year = 1990, month = jun } @Book{Czarnecki2000GenerativeProgramming, author = {Krzysztof Czarnecki and Ulrich W. Eisenecker}, title = {Generative Programming -- Methods, Tools, and Applications}, publisher = AW, year = 2000, } @Article{Dahl1966Simula, author = {Ole-Johan Dahl and Kristen Nygaard}, title = {{SIMULA} -- an {Algol}-Based Simulation Language}, journal = CACM, year = 1966, volume = 9, number = 9, pages = {671--678}, month = sep } @InProceedings{Damas1982PrincipalTypeSchemes, author = {Luis Damas and Robin Milner}, title = {Principal type schemes for functional programs}, booktitle = {Proceedings 9'th ACM Symposium on Principles of Programming Languages}, pages = {207--212}, year = 1982, address = {Albuquerque, N.M}, month = jan, publisher = ACM } @InProceedings{Danvy1988FAC, author = {Olivier Danvy}, title = {On some Functional Aspects of Control}, booktitle = {Workshop on the Implementation of Lazy Functional Languages}, year = 1988, month = oct } @TechReport{Danvy1991ThreeSteps, author = {Olivier Danvy}, title = {Three Steps for the CPS Transformation}, institution = {Kansas State University}, year = 1991, number = {CIS-92-02}, month = dec } @InProceedings{Danvy1992Back, author = {Olivier Danvy}, title = {Back to Direct Style}, booktitle = {European Symposium on Programming (ESOP 1992}, year = 1992, volume = 582, series = LNCS, month = feb } @InProceedings{Davies2000IntersectionTypes, author = {Rowan Davies and Frank Pfenning}, title = {Intersection types and computational effects}, booktitle = {Proceedings of the Fifth International Conference on Functional Programming (ICFP'00),}, pages = {198-208}, year = 2000, editor = {P. Wadler}, address = {Montreal, Canada}, month = sep, publisher = ACM } @inproceedings{DeRemer1979EfficientLALR, author = {Frank DeRemer and Thomas J. Pennello}, title = {Efficient computation of LALR(1) look-ahead sets}, booktitle = {Proceedings of the 1979 SIGPLAN symposium on Compiler construction}, year = 1979, isbn = {0-89791-002-8}, pages = {176--187}, location = {Denver, Colorado, United States}, } @article{DeRemer1982LALR, author = {Frank DeRemer and Thomas Pennello}, title = {Efficient Computation of LALR(1) Look-Ahead Sets}, journal = {ACM Trans. Program. Lang. Syst.}, volume = 4, number = 4, year = 1982, issn = {0164-0925}, pages = {615--649}, doi = {http://doi.acm.org/10.1145/69622.357187}, publisher = ACM, } @Misc{Dewar1979SETL, author = {Robert B. K. Dewar}, title = {{The SETL Programming Language}}, howpublished = {Available from, \url{http://galt.mrl.nyu.edu/~bacon/setlprog.ps}}, year = 1979 } @INPROCEEDINGS{DidrichEtAl:94, AUTHOR = {K. Didrich and A. Fett and C. Gerke and W. Grieskamp and P. Pepper}, TITLE = {{Design and Implementation of an Algebraic Programming Language}}, BOOKTITLE = {Programming Languages and System Architectures}, EDITOR = {J. Gutknecht}, YEAR = 1994, SERIES = LNCS, VOLUME = 782, PUBLISHER = SV } @Misc{Dijkstra1978ReviewBackus, author = {Edsger W. Dijkstra}, title = {{A review of the 1977 Turing Award Lecture by John Backus}}, howpublished = {circulated privately (EWD~692)}, year = 1978 } @InProceedings{Dijkstra2001LazyJava, author = {Atze Dijkstra and Doaitse S. Swierstra}, title = {Lazy Functional Parser Combinators in Java}, crossref = {Striegnitz2001MPOOL}, booktitle = {Multiparadigm Programming with Object-Oriented Languages (MPOOL)}, pages = {11--42}, year = 2001 } @Book{Diller1988Compiling, author = {Antoni Diller}, ALTeditor = {}, title = {Compiling Functional Languages}, publisher = Wiley, year = {1988} } @InProceedings{Dunfield2004Tridirectional, author = {Joshua Dunfield and Frank Pfenning}, title = {Tridirectional typechecking}, booktitle = {Conference Record of the 31st Annual Symposium on Principles of Programming Languages (POPL'04)}, pages = {281--292}, year = 2004, editor = {X. Leroy}, address = {Venice, Italy}, month = jan, publisher = ACM } @TechReport{Dybvig1990DestinationDriven, author = {R. Kent Dybvig and Robert Hieb and Tom Butler}, title = {Destination-Driven Code Generation}, institution = {Indiana University Computer Science Department}, year = 1990, number = 302, month = feb } @techreport{ Dybvig1994DontStopBibop, author = "R. Kent Dybvig and David Eby and Carl Bruggeman", title = "Don't Stop the {BIBOP}: Flexible and Efficient Storage Management for Dynamically-Typed Languages", number = 400, address = "\{dyb,deby,bruggema\}@cs.indiana.edu", year = 1994, url = "citeseer.nj.nec.com/dybvig94dont.html" } @Book{Ehrig2001Grundlagen, author = {Hartmut Ehrig and Bernd Mahr and Martin Grosze-Rohde and Felix Cornelius and Philip Zeitz}, title = {Mathematisch-strukturelle Grundlagen der Informatik}, publisher = SV, year = 2001 } @article{Elrad2001AOPIntro, author = {Tzilla Elrad and Robert E. Filman and Atef Bader}, title = {Aspect-oriented programming: Introduction}, journal = {Communications of the ACM}, volume = 44, number = 10, year = 2001, issn = {0001-0782}, pages = {29--32}, doi = {http://doi.acm.org/10.1145/383845.383853}, publisher = ACM, } @InProceedings{Erkoek2000RecursiveMonadicBindings, author = {Levent Erk{\"o}k and John Launchbury}, title = {Recursive Monadic Bindings}, booktitle = {Proceedings of the International Conference on Functional Programming ICFP'00}, year = 2000 } } @InProceedings{Erkoek2002RecursiveDo, author = {Levent Erk{\"o}k and John Launchbury}, title = {A Recursive do for {Haskell}}, booktitle = {Haskell'02}, year = 2002, month = oct } @Article{Erwig1998Diets, author = {Martin Erwig}, title = {Diets for Fat Sets}, journal = {Journal of Functional Programming}, year = 1998, volume = 8, number = 6, pages = {627--632} } @InProceedings{Feeley1990ParallelVirtualMachine, author = "M. Feeley and J. S. Miller", title = "A Parallel Virtual Machine for Efficient Scheme Compilation", booktitle = "Proceedings of the 1990 {ACM} Conference on {LISP} and Functional Programming, Nice", publisher = ACM, address = "New York, NY", pages = "119--130", year = 1990, url = "citeseer.nj.nec.com/feeley90parallel.html" } @InProceedings{Feeley2000PortableContinuations, author = {Marc Feeley}, title = {{A portable implementation of first-class continuations for unrestricted interoperability with C in a multithreaded Scheme}}, booktitle = {Scheme and Functional Programming 2000}, year = 2000, month = {September} } @TechReport{Fegaras1996Fusion, author = {Leonidas Fegaras}, title = {Fusion for Free!}, institution = {Department of Computer Science \& Engineering, Oregon Graduate Institute School of Science \& Engineering}, year = 1996, number = {CSE-96-001}, month = jan } @inproceedings{Feldman1988Dependency, author = {Roy Feldman}, title = {Design of a dependency-directed compiler for constraint propagation}, booktitle = {Proceedings of the first international conference on Industrial and engineering applications of artificial intelligence and expert systems}, year = 1988, isbn = {0-89791-271-3}, pages = {141--146}, location = {Tullahoma, Tennessee, United States}, doi = {http://doi.acm.org/10.1145/51909.51926}, publisher = ACM, } @inproceedings{Felleisen1988LambdaVCS, author = {Matthias Felleisen}, title = {$\lambda$-v-{CS}: an extended $\lambda$-calculus for {Scheme}}, booktitle = {Proceedings of the 1988 ACM Conference on LISP and Functional Programming}, year = 1988, isbn = {0-89791-273-X}, pages = {72--85}, location = {Snowbird, Utah, United States}, doi = {http://doi.acm.org/10.1145/62678.62686}, publisher = ACM, } @PhdThesis{Filinkski1996ControllingEffects, author = {Andrzej Filinski}, title = {Controlling Effects}, school = {School of Computer Science, Carnegie Mellon University}, year = 1996, month = may, note = {Also available as Technical Report No. CMU-CS-96-119} } @incollection{ Filinski1999RLM, author = "Andrzej Filinski", title = "Representing Layered Monads", booktitle = "Conf.\ Record 26th {ACM} {SIGPLAN}-{SIGACT} Symposium on Principles of Programming Languages, {POPL}'99, San Antonio, Texas, {USA}", publisher = ACM, address = "New York", pages = "175--188", year = 1999, month = jan, url = "citeseer.nj.nec.com/filinski94representing.html" } @InProceedings{Filman2001AOPRevisited, author = {Robert E. Filman}, title = {What is Aspect-Oriented Programming, Revisited}, booktitle = {Workshop on Advanced Separation of Concerns, ECOOP 2001}, year = 2001, address = {Budapest, Hungary} } @InProceedings{Filman2003, author = {Robert E. Filman}, title = {{Understanding AOP through the Study of Interpreters}}, crossref = {Leavens2003FOAL}, pages = {61--64} } @InProceedings{Fiore1999AbstractSyntax, author = {Marcelo Fiore and Gordon Plotkin and Daniele Turi}, title = {Abstract syntax and variable binding}, booktitle = {14th Symposium on Logic in Computer Science}, pages = {193--202}, year = 1999, address = {Trento, Italy}, month = jul, organization = IEEE } @InProceedings{Fisher1999ClassMechanism, author = {Kathleen Fisher and John Reppy}, title = {The design of a class mechanism for {Moby}}, booktitle = {Proceedings of the 1999 ACM SIGPLAN Conference of Programming Language Design and Implementation, Atlanta, Georgia, USA}, year = 1999, month = may, } @TechReport{Fitzgerald1999Marmot, author = {Robert Fitzgerald and Todd B. Knoblock and Erik Ruf and Bjarne Steensgard and David Tarditi}, title = {Marmot: An Optimizing Compiler for Java}, institution = {Microsoft Research}, year = 1999, number = {MSR-TR-99-33}, address = {Microdoft Research, 1 Microsoft Way, Redmond, WA, 98052}, month = jun } @TechReport{Flanagan1995SetBasedAnalysis, author = {Cormac Flanagan and Matthias Felleisen}, title = {Set-Based Analysis for Full Scheme and Its Use in Soft-Typing}, institution = {Rice University}, year = 1995, number = {Rice COMP TR95-254}, address = {Department of Computer Science, Rice University, P.O. Box 1892, Houston, TX 77251-1892}, month = oct } @Proceedings{Flatt2003Scheme, title = {Scheme 2003 -- Proceedings of the Fourth Workshop on Scheme and Functional Programming}, year = 2003, editor = {Matthew Flatt}, number = {UUCS-03-023}, address = {Boston, Massachusetts}, month = nov, organization = {School of Computing, University of Utah, Salt Lake City, UT 84112, USA}, } @InProceedings{Fluet2001Contification, author = {Matthew Fluet and Stephen Weeks}, title = {Contification Using Dominators}, booktitle = {International Conference on Functional Programming}, year = 2001, month = sep } @Misc{Frank2002DiplomaThesis, author = {Stephan Frank and Pierre Mai}, title = {{Strategien f{\"u}r kooperierende Constraint L{\"o}ser. Diploma Thesis, Technische Universit{\"a}t Berlin}}, school = {Technische Universit{\"a}t Berlin}, year = 2002 } @InProceedings{Frank2003CPFT, author = {Stephan Frank and Martin Grabm{\"u}ller and Petra Hofstedt and Andr{\'e} Metzner}, title = {{Constraints, Predicates, Functions and a Turtle}}, booktitle = {20. Workshop der GI-Fachgruppe 2.1.4 Programmiersprachen und Rechenkonzepte}, year = 2003, editor = {Wolfgang Goerigk}, address = {Bad Honnef, Germany}, month = may, abstract = {This paper briefly introduces the current work on multiparadigm programming languages at Berlin University of Technology. Starting from a general approach for the cooperation and coordination of constraint solvers and its implementation Meta-S, we briefly discuss how to integrate different host languages into the framework building at this multiparadigm constraint languages. Further current research directions concern the functional logic language Brooks which allows the program compilation according to different narrowing strategies and the constraint imperative language Turtle.} } @INPROCEEDINGS{Frank2003MetaS, AUTHOR = {Stephan Frank and Petra Hofstedt and Pierre R. Mai}, TITLE = {{Meta-S: A strategy-oriented Meta-Solver Framework}}, BOOKTITLE = {16th Int'l FLAIRS Conference}, YEAR = 2003, PUBLISHER = {AAAI}, EDITOR = {I. Russel and S. Haller} } @inproceedings{FrankHofstedtMai:2003b, author = {Stephan Frank and Petra Hofstedt and Pierre R. Mai}, title = {{A flexible Meta-Solver Framework for Constraint Solver Collaboration}}, booktitle = {Proceedings of the 26th German Conference on Artificial Intelligence (KI~2003)}, year = 2003, series = LNCS, volume = 2821, } @InProceedings{FreemanBenson1993ConvertingUI, author = {Bjorn N. Freeman-Benson}, title = {Converting an existing user interface to use constraints}, booktitle = {Proceedings of the UIST'93 (ACM SIGGRAPH Symp. on User Interface Software and Technology)}, pages = {207--215}, year = 1993, address = {Atlanta, GA}, month = nov } @InProceedings{Fritzson2002Modelica, author = {Peter Fritzson and Peter Bunus}, title = {Modelica -- A Declarative Object Oriented Multi-Paradigm Language}, crossref = {Striegnitz2002MPOOL}, booktitle = {Multiparadigm Programming with Object-Oriented Languages (MPOOL)}, pages = {27--44}, year = 2002 } @Misc{GHC2005UsersGuide, author = {The {GHC Team}}, title = {{The Glorious Glasgow Haskell Compilation System User's Guide, Version 6.4}}, howpublished = {World Wide Web}, year = 2005, note = {Available from: \url{http://www.haskell.org/ghc/docs/html/users_guide/users-guide.html}, last visited: 2005-04-11} } @Article{Gabriel1988Cells, author = {Richard P. Gabriel and Kent M. Pitman}, title = {Technical Issues of Separation in Function Cells and Value Cells}, journal = {Lisp and Symbolic Computation,}, year = 1988, volume = 1, number = 1, pages = {81--101}, month = jun, url = {http://www.nhplace.com/kent/Papers/Technical-Issues.html} } @Manual{Galassi2002Guile, title = {Guile Reference Manual}, author = {Mark Galassi and Jim Blandy and Gary Houston and Tim Pierce and Neil Jerram and Martin Grabm{\"u}ller}, organization = {FSF}, edition = {1.0}, month = {September}, year = 2002, abstract = {This manual documents the installation and usage of the Guile system, an implementation of the programming language Scheme.} } @InProceedings{Ganz2001MacroML, author = {Steven E. Ganz and Amr Sabry and Walid Taha}, title = {{Macros as Multi-Stage Computations: Type-Safe, Generative, Binding Macros in MacroML}}, booktitle = {ICFP'01}, year = 2001 } @inproceedings{Gasbichler2002FinalShift, author = {Martin Gasbichler and Michael Sperber}, title = {Final shift for call/cc:: direct implementation of shift and reset}, booktitle = {Proceedings of the Seventh ACM SIGPLAN International Conference on Functional Programming}, year = 2002, isbn = {1-58113-487-8}, pages = {271--282}, location = {Pittsburgh, PA, USA}, doi = {http://doi.acm.org/10.1145/581478.581504}, publisher = ACM, } @article{Gelernter1992CoordinationLanguages, author = {David Gelernter and Nicholas Carriero}, title = {Coordination languages and their significance}, journal = CACM, volume = 35, number = 2, year = 1992, issn = {0001-0782}, pages = {96--107}, doi = {http://doi.acm.org/10.1145/129630.376083}, publisher = ACM, } @InProceedings{Gifford1986Integrating, 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}, pages = {28--38}, year = 1986, month = aug, } @Book{Gosling2000JavaLangSpec, author = {James Gosling and Bill Joy and Guy Steele and Gilad Bracha}, title = {Java\texttrademark{} Language Specification}, publisher = AW, year = 2000, edition = {2nd}, month = jun } @Manual{Grabmueller2000SizzleEmbedding, title = {Sizzle Embedding Manual}, author = {Martin Grabm{\"u}ller}, edition = {0.0.30}, month = {September}, year = 2000, abstract = {This manual documents how to embed the Sizzle library into programs written in the C programming language. Programs which embed Sizzle can make use of Scheme as an extension language.} } @Manual{Grabmueller2000SizzleReference, title = {Sizzle Reference Manual}, author = {Martin Grabm{\"u}ller}, edition = {0.0.30}, month = {December}, year = 2000, abstract = {This manual documents the installation and usage of the Sizzle system, an implementation of the programming language Scheme.} } @MastersThesis{Grabmueller2003CIP , author = {Martin Grabm{\"u}ller}, title = {{Constraint Imperative Programming}}, school = {Technische Universit{\"a}t Berlin}, year = 2003, type = {Diploma Thesis}, month = feb, abstract = {Constraint-based programming languages are declarative programming languages. In constraint programs, the solutions of a problem are obtained by specifying their desired properties, whereas in imperative programs, the steps which lead to a solution must be defined explicitly, rather than being derived automatically from the specification. This work deals with the design and implementation of a programming language which integrates declarative constraints and imperative constructs in order to form a powerful programming paradigm suitable for solving a wide range of problems.} } @InProceedings{Grabmueller2003CIPLTurtle, author = {Martin Grabm{\"u}ller}, title = {{The Constraint Imperative Programming Language Turtle}}, booktitle = {20. Workshop der GI-Fachgruppe 2.1.4 Programmiersprachen und Rechenkonzepte}, year = 2003, editor = {Wolfgang Goerigk}, address = {Bad Honnef, Germany}, month = may, abstract = {The goal of declarative programming is to provide languages and implementations which let the programmer write programs by specifying what the properties of the desired solutions should be. In imperative languages, the calculation steps leading to the solutions must be programmed explicitly. The programming language Turtle combines traditional imperative language constructs and declarative constraints. This blending of paradigms is called ``constraint imperative programming'' in literature, and Turtle is one instance of this multiparadigm approach.} } @Unpublished{Grabmueller2003CIPwithHOF, author = {Martin Grabm{\"u}ller}, title = {{Constraint Imperative Programming with Higher-order Functions}}, note = {Draft paper}, month = jul, year = 2003, abstract = {In constraint programming, programs are written by mainly specifying the properties which must hold for a solution of a given problem. In contrast, imperative programming languages require that the programmer explicitly specifies each state transition a program must perform in order to calculate the solution. This paper describes a programming style which consists of these both views as well as on higher-order functional programming.} } @TechReport{Grabmueller2003MPP, author = {Martin Grabm{\"u}ller}, title = {{Mul\-ti\-pa\-ra\-dig\-men-Pro\-gram\-mier\-spra\-chen}}, institution = {Technische Universit{\"a}t Berlin}, year = 2003, type = {Research report}, number = {2003-15 in {\em Forschungsberichte Fakult{\"a}t IV -- Elektrotechnik und Informatik}}, month = oct, abstract = {Dieser Bericht untersucht Programmiersprachen, die verschiedene Programmierparadigmen in sich vereinen. Dabei wird ein breiter "Uberblick "uber die existierenden Ans"atze und Techniken bei Entwurf und Implementierung multiparadigmatischer Sprachen herausgearbeitet. Die Unterschiede der einzelnen etablierten Programmierparadigmen werden beschrieben und die M"oglichkeiten zur Kombination dieser Paradigmen anhand der Untersuchung existierender Programmiersprachen erl"autert. Nach einer genaueren Betrachtung syntaktischer und semantischer Eigenschaften unterschiedlicher Programmiersprachen werden Vorschl"age zum Entwurf von Programmiersprachen, welche die Programmierung in unterschiedlichen Paradigmen erlauben, entwickelt.} } @InProceedings{Grabmueller2003TurtleImpl, author = {Martin Grabm{\"u}ller}, title = {{Implementing Constraint Imperative Languages with Higher-order Functions}}, booktitle = {Second International Workshop on Multiparadigm Constraint Programming Languages, MultiCPL'03}, pages = {43--54}, year = 2003, editor = {Michael Hanus and Petra Hofstedt and Armin Wolf}, address = {Kinsale, Cork, Ireland}, month = sep, abstract = {Constraint imperative programming languages combine declarative constraints and imperative language features into an integrated programming language. The language Turtle supports these programming paradigms and additionally integrates functional programming with higher-order functions and algebraic data types. This paper describes the implementation of Turtle, consisting of a compiler, a run-time system including constraint solvers and an extensive library of supporting modules.} } @Misc{Grabmueller2003turtleWWW, author = {Martin Grabm{\"u}ller}, title = {{Turtle -- A Constraint Imperative Programming Language}}, howpublished = {World Wide Web}, year = 2003, note = {\url{http://uebb.cs.tu-berlin.de/~magr/turtle/turtle.en.html}} } @Article{Grabmueller2005ParadigmIntegration, author = {Martin Grabm{\"u}ller and Petra Hofstedt and Peter Pepper and Olaf Krzikalla}, title = {Paradigm Integration -- Language and Library Approach}, journal = {Theory and Practice of Logic Programming}, year = 2005, volume = 0, number = 0, pages = {0--0}, month = jan, note = {Submitted} } @InProceedings{GrabmuellerHofstedt2003Turtle, author = {Martin Grabm{\"u}ller and Petra Hofstedt}, title = {{Turtle: A Constraint Imperative Programming Language}}, editor = {Frans Coenen and Alun Preece and Ann Macintosh}, booktitle = {Twenty-third SGAI International Conference on Innovative Techniques and Applications of Artificial Intelligence}, year = 2003, number = {XX}, series = {Research and Development in Intelligent Systems}, address = {Cambridge, UK}, month = dec, organization = BCS, publisher = SV, isbn = {1-85233-780-X}, abstract = {Ideally, in constraint programs, the solutions of problems are obtained by specifying their desired properties, whereas in imperative programs, the steps which lead to a solution must be defined explicitly, rather than being derived automatically. This paper describes the design and implementation of the programming language Turtle, which integrates declarative constraints and imperative language elements in order to combine their advantages and to form a more flexible programming paradigm suitable for solving a wide range of problems.} } @INPROCEEDINGS{Grieskamp1998Specifying, AUTHOR = {W. Grieskamp and M. Heisel and H. D{\"o}rr}, TITLE = {{Specifying Embedded Systems with Statecharts and Z: An Agenda for Cyclic Software Components}}, BOOKTITLE = {Proc. of the 1st International Conference on Fundamental Approaches to Software Engineering -- FASE'98}, EDITOR = {E. Astesiano}, YEAR = 1998, SERIES = LNCS, VOLUME = 1382, PUBLISHER = SV } @phdthesis{Grieskamp2000SetBasedCalculus, author = "Wolfgang Grieskamp", title = "A Set-Based Calculus and its Implementation", school = "Technische Universit{\"a}t Berlin", url = "http://uebb.cs.tu-berlin.de/~wg/papers/GrieskampDiss.pdf", year = 2000 } @TechReport{Grossman2001RegionTypeSoundness, author = {Dan Grossman and Greg Morrisett and Trevor Jim and Mike Hicks and Yanling Wang and James Cheney}, title = {Formal Type Soundness for {Cyclone's} Region System}, institution = {Cornell University and AT{\&}T Labs Research}, year = 2001, month = nov, } @InProceedings{Grossman2002RegionCyclone, author = {Dan Grossman and Greg Morrisett and Trevor Jim and Michael Hicks and Yanling Wang and James Cheney}, title = {Region-based Memory Management in Cyclone}, booktitle = {ACM Conference on Programming Language Design and Implementation}, pages = {282--293}, year = 2002, address = {Berlin, Germany}, month = jun } @techreport{ Gudeman1993RepresentingTypeInformation, author = "David Gudeman", title = "Representing Type Information in Dynamically-Typed Languages", number = "TR93-27", address = "Tucson, Arizona", year = 1993, month = oct, url = "citeseer.nj.nec.com/gudeman93representing.html" } @Book{Gunter1992Semantics, author = {Carl A. Gunter}, ALTeditor = {}, title = {Semantics of Programming Languages: Structures and Techniques}, publisher = MIT, year = {1992}, series = {Foundations of Computing} } @Article{Gurevich1991EvolvingAlgebras, author = {Yuri Gurevich}, title = {Evolving Algebras: An Introductory Tutorial}, journal = {Bulletin of the European Association for Theoretical Computer Science}, year = 1991, pages = {264--284}, month = feb } @InBook{Gurevich1995LipariGuide, author = {Yuri Gurevich}, editor = {E. B{\"o}rger,}, title = {Specification and Validation Methods}, chapter = {Evolving Algebra 1993: Lipari Guide}, publisher = {Oxford University Press}, year = 1995, pages = {9--36}, } @article{Gurevich2000SequentialASM, author = {Yuri Gurevich}, title = {Sequential abstract-state machines capture sequential algorithms}, journal = {ACM Transactions on Computational Logic (TOCL)}, volume = 1, number = 1, year = 2000, issn = {1529-3785}, pages = {77--111}, doi = {http://doi.acm.org/10.1145/343369.343384}, publisher = ACM, } @InProceedings{Hailpern1987DesignMultiparadigmLanguage, author = {Brent Hailpern}, title = {Design of a Multiparadigm Language}, booktitle = {Proceedings of the Twentieth Annual Hawaii International Conference on System Sciences}, pages = {239--246}, year = 1987 } @InProceedings{Hammond1998Juaskell, author = {K. Hammond and D. Walsh-Kemmis}, title = {Juaskell: Implementing Evaluation Strategies in Java}, booktitle = {Third Latin-American Conference on Functional Programming}, year = 1998, url = {citeseer.nj.nec.com/hammond98juaskell.html} } @inproceedings{Hanson1990EfficientStackAllocation, author = {Chris Hanson}, title = {Efficient stack allocation for tail-recursive languages}, booktitle = {Proceedings of the 1990 ACM Conference on LISP and Functional Programming}, year = 1990, isbn = {0-89791-368-X}, pages = {106--118}, location = {Nice, France}, doi = {http://doi.acm.org/10.1145/91556.91603}, publisher = ACM, } @Article{Hanson1991SyntacticClosures, author = {Chris Hanson}, title = {A Syntactic Closures Macro Facility}, journal = {Lisp Pointers}, year = 1991, volume = {IV}, number = 4, month = oct # "/" # dec } @InProceedings{Hanus1995CurryTrulyFunctionalLogic, author = {Michael Hanus and Herbert Kuchen and Juan Jos{\'e} Moreno-Navarro}, title = {Curry: A Truly Functional Logic Language}, booktitle = {Proc. ILPS'95 Workshop on Visions for the Future of Logic Programming}, pages = {95--107}, year = 1995, month = dec } @Article{Hanus1996IntegrationFunctionalLogic, author = {Michael Hanus and Herbert Kuchen}, title = {Integration of Functional and Logic Programming}, journal = {ACM Computing Surveys}, year = 1996, volume = 28, number = 2, pages = {306--308} } @Misc{Hanus1999CurryJava, author = {Michael Hanus and Ramin Sadre}, title = {An Abstract Machine for {Curry} and its Concurrent Implementation in {Java}}, month = mar, year = 1999 } @Proceedings{Hanus2002MultiCPL, title = {MultiCPL'02: Workshop on Multiparadigm Constraint Programming Languages and RCoRP'02: Fourth Workshop on Rule-Based Constraint Reasoning and Programming}, year = 2002, editor = {Michael Hanus and Petra Hofstedt and Slim Abdennadher and Thom Fr{\"u}hwirth and Armin Wolf}, address = {Ithaca, NY, USA}, organization = {Cornell University}, note = {Workshop Proceedings}, } @INPROCEEDINGS{Hanus90PLILP, author = "Michael Hanus", title = "Compiling Logic Programs with Equality", booktitle = "Proc.\ of the 2nd Int.\ Workshop on Programming Language Implementation and Logic Programming", publisher = SV, series = LNCS, number = 456, pages = "387-401", year = 1990, abstract = { Horn clause logic with equality is an amalgamation of functional and logic programming languages. A sound and complete operational semantics for logic programs with equality is based on resolution to solve literals, and rewriting and narrowing to evaluate functional expressions. This paper proposes a technique for compiling programs with these inference rules into programs of a low-level abstract machine which can be efficiently executed on conventional architectures. The presented approach is based on an extension of the Warren abstract machine (WAM). In our approach pure logic programs without function definitions are compiled in the same way as in the WAM-approach, and for logic programs with function definitions particular instructions are generated for occurrences of functions inside clause bodies. In order to obtain an efficient implementation of functional computations, a stack of occurrences of function symbols in goals is managed by the abstract machine. The compiler generates the necessary instructions for the efficient manipulation of the occurrence stack from the given equational logic program. } } @INPROCEEDINGS{Hanus92PLILP, author = "Michael Hanus", title = "Improving Control of Logic Programs by Using Functional Logic Languages", year = 1992, publisher = SV, series = LNCS, number = 631, booktitle = "Proc. of the 4th International Symposium on Programming Language Implementation and Logic Programming -- PLILP", pages = "1-23" } @ARTICLE{Hanus96SDCR, author = "Michael Hanus", title = "Integration of Declarative Paradigms: Benefits and Challenges", year = 1996, journal = "ACM Computing Surveys", volume = "28A", number = 4, note = "Also appeared in ACM SIGPLAN Notices, Vol.~32, No.~1, 1997, 77--79" } @INPROCEEDINGS{Hanus97POPL, author = "Michael Hanus", title = "A Unified Computation Model for Functional and Logic Programming", year = 1997, booktitle = "Proc. 24st ACM Symposium on Principles of Programming Languages (POPL'97)", pages = "80-93", abstract = { We propose a new computation model which combines the operational principles of functional languages (reduction), logic languages (non-deterministic search for solutions), and integrated functional logic languages (residuation and narrowing). This computation model combines efficient evaluation principles of functional languages with the problem-solving capabilities of logic programming. Since the model allows the delay of function calls which are not sufficiently instantiated, it also supports a concurrent style of programming. We provide soundness and completeness results and show that known evaluation principles of functional logic languages are particular instances of this model. Thus, our model is a suitable basis for future declarative programming languages. } } @InProceedings{Haridi1996DistributedOz, author = {Seif Haridi and Peter {Van Roy} and Gert Smolka}, title = {An Overview of the Design of {Distributed Oz}}, crossref = {Chakravarty1996MPLP}, booktitle = {Multi-paradigm Logic Programming}, pages = {13--24}, year = 1996 } @article{Harrison1993SubjectOrientedProgramming, author = {William Harrison and Harold Ossher}, title = {Subject-oriented programming: a critique of pure objects}, journal = {SIGPLAN Notices}, volume = 28, number = 10, year = 1993, issn = {0362-1340}, pages = {411--428}, doi = {http://doi.acm.org/10.1145/167962.165932}, publisher = ACM, } @InProceedings{Henderson2002AccurateGC, author = {Fergus Henderson}, title = {Accurate Garbage Collection in an Uncooperative Environment}, booktitle = {ISMM'02, Berlin}, year = 2002 } @InProceedings{Henderson2002CompilingMercury, author = {Fergus Henderson and Zoltan Somogyi}, title = {Compiling Mercury to high-level {C} code}, booktitle = {CC'02, Grenoble, France}, year = 2002 } @InProceedings{Hentenryck2003ControlAbstractions, author = {Pascal {Van Hentenryck} and Laurent Michel}, title = {Control Abstractions for Local Search}, booktitle = {Ninth International Conference on Principles and Practice of Constraint Programming}, pages = {65--80}, year = 2003, editor = {Francesca Rossi}, month = sep, publisher = SV } @InProceedings{Hickey1998LISP, author = {Timothy J. Hickey and Peter Norvig and and Ken Anderson}, title = {LISP - a Language for Internet Scripting and Programming}, booktitle = {LUGM'98: Proceedings of Lisp in the Mainstream}, year = 1998, address = {Berkeley, CA}, month = nov } @InProceedings{Hickey2000Analytic, author = {Timothy J. Hickey}, title = {Analytic Constraint Solving and Interval Arithmetic}, booktitle = {Proceedings of the 27th Annual ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages}, year = 2000, month = jan } @Article{Hickey2001IntervalArithmetic, author = {Timothy J. Hickey and Qun Ju and Maarten H. van Emden}, title = {Interval Arithmetic: from Principles to Implementation}, journal = JACM, year = 2001, volume = 48, number = 5, pages = {1038--1068}, month = sep } @Book{Hill1994Goedel, author = {P. M. Hill and J. W. Lloyd}, title = {The {G{\"o}del} Programming Language}, publisher = MIT, year = 1994 } @Article{Hinze2001TheWeb, author = {Ralf Hinze and Johan Jeuring}, title = {Weaving a web}, journal = {Journal of Functional Programming}, year = 2001, volume = 11, number = 6, pages = {681--689} } } @article{Hoare1978CSP, author = {C. A. R. Hoare}, title = {Communicating sequential processes}, journal = CACM, volume = 21, number = 8, year = 1978, issn = {0001-0782}, pages = {666--677}, doi = {http://doi.acm.org/10.1145/359576.359585}, publisher = ACM, } @Book{Hoare1985CSP, author = {C. A. R. Hoare}, title = {Communicating Sequential Processes}, publisher = PH, year = 1985 } @article{Hoare1987LawsOfProgramming, author = {C. A. R. Hoare and I. J. Hayes and He Jifeng and C. C. Morgan and A. W. Roscoe and J. W. Sanders and I. H. Sorensen and J. M. Spivey and B. A. Sufrin}, title = {Laws of programming}, journal = CACM, volume = 30, number = 8, year = 1987, issn = {0001-0782}, pages = {672--686}, doi = {http://doi.acm.org/10.1145/27651.27653}, publisher = ACM, } @PhdThesis{Hofstedt2001CooperationCoordination, author = {Petra Hofstedt}, title = {{Cooperation and Coordination of Constraint Solvers}}, school = {Technische Universt{\"a}t Dresden}, year = 2001 } @Misc{Hofstedt2002EinfuehrungCP, author = {Petra Hofstedt and Armin Wolf}, title = {Einf{\"u}hrung in die Constraint-Programmierung}, howpublished = {Vorlesungs-Skript}, year = 2002 } @INPROCEEDINGS{HofstedtCL:2000, AUTHOR = {P. Hofstedt}, TITLE = {{Better Communication for Tighter Cooperation}}, BOOKTITLE = {First International Conference on Computational Logic -- CL}, YEAR = 2000, SERIES = LNCS, VOLUME = 1861, PUBLISHER = SV } @INPROCEEDINGS{HofstedtCP:2000, AUTHOR = {P. Hofstedt}, TITLE = {{Cooperating Constraint Solvers}}, BOOKTITLE = {Sixth International Conference on Principles and Practice of Constraint Programming -- CP}, YEAR = 2000, EDITOR = {R. Dechter}, SERIES = LNCS, VOLUME = 1894, PUBLISHER = SV } @INPROCEEDINGS{HofstedtMetzner:2003, AUTHOR = {P. Hofstedt and A. Metzner}, TITLE = {{Multiple Evaluation Strategies for the Multiparadigm Programming Language Brooks}}, BOOKTITLE = {Proc. of the 12th International Workshop on Functional and (Constraint) Logic Programming, WFLP'03}, YEAR = 2003, EDITOR = {Germ{\'a}n Vidal} } @INPROCEEDINGS{Hofstedt_02B, AUTHOR = {Petra Hofstedt}, TITLE = {{A general Approach for Building Constraint Languages}}, BOOKTITLE = {AI 2002: Advances in Artificial Intelligence}, YEAR = 2002, EDITOR = {B. McKay and J. Slaney}, PAGES = {431-442}, SERIES = LNCS, VOLUME = 1470, PUBLISHER = SV } @InProceedings{Horn1992ConstraintPattersn, author = {Bruce Horn}, title = {Constraint Patterns as a basis for object-oriented constraint programming}, booktitle = {Proceedings of the 1992 ACM Conference on Object-Oriented Programming Systems, Languages and Applications}, pages = {218--233}, year = 1992, address = {Vancouver, British Columbia}, month = oct } @InBook{Horn1992LanguagesUI, author = {Bruce Horn}, title = {Languages for Developing User Interfaces}, chapter = {Properties of user interface systems and the {S}iri programming language}, publisher = {Jones and Bartlett}, year = 1992, address = {Boston}, pages = {211--236} } @Misc{Hudak1999GentleIntroduction, author = {Paul Hudak and John Peterson and Joseph H. Fasel}, title = {A Gentle Introduction to {Haskell}}, howpublished = {World Wide Web}, year = 1999 } @TechReport{Huggins2002ASMPrimer, author = {James K. Huggins and Charles Wallace}, title = {An Abstract State Machine Primer}, institution = {Computer Science Department, Michigan Technological University}, year = 2002, number = {CS-TR-02-04}, month = dec } @Article{Hughes2000Arrows, author = {John Hughes}, title = {Generalising monads to arrows}, journal = {Science of Computer Programming, special issue on Mathematics of Program Construction}, year = 2000, volume = 37, number = 3, pages = {67--112} } @TechReport{Hutton1996MonadicParserCombinators, author = {Graham Hutton and Erik Meijer}, title = {Monadic parser combinators}, institution = {Department of Computer Science, University of Nottingham}, year = 1996, number = {NOTTCS-TR-96-4} } @Article{Hutton1998MonadicParsing, author = {Graham Hutton and Erik Meijer}, title = {Monadic parsing in Haskell}, journal = {Journal of Functional Programming}, year = 1998, volume = 8, number = 4, month = 1998 } @Misc{HyperJ, title = {{HyperJ}}, key = {AspectJ}, howpublished = {World Wide Web}, note = {\url{http://www.research.ibm.com/hyperspace/HyperJ/HyperJ.htm}, last visited on 2003-11-26} } @inproceedings{ILOG, author = {J.-F. Puget}, title = {{A C++ Implementation of CLP}}, booktitle = {Proceedings of the Second Singapore International Conference on Intelligent Systems}, address = {Singapore}, year = 1994 } @proceedings{ISMM98, key = "ISMM", booktitle = {{ISMM'98} Proceedings of the First International Symposium on Memory Management}, title = {{ISMM'98} Proceedings of the First International Symposium on Memory Management}, editor = {Richard Jones}, address = {Vancouver}, series = SIGPLAN, volume = "34(3)", publisher = ACM, month = oct, year = 1998, isbn = {1-58113-114-3}, comment = {ISMM is the successor to the IWMM series of workshops} } @MISC{Jack2, key = {Jack}, TITLE = {{JACK -- Java Constraint Kit}}, NOTE = {Available from: \url{http://www.pms.informatik.uni-muenchen.de/software/jack/}, last visited: 2003-02-24}, howpublished = {World Wide Web}, month = feb, YEAR = 2003 } @InProceedings{Jagannathan1992MultiThreadedScheme, author = {Suresh Jagannathan and Jim Philbin}, title = {A foundation for an efficient multi-threaded Scheme system}, booktitle = {Proc. 1992 ACM Conference on Lisp and Functional Programming}, pages = {345--357}, year = 1992, month = jun } @InProceedings{Jim2002Cyclone, author = {Trevor Jim and Greg Morrisett and Dan Grossman and Michael Hicks and James Cheney and Yanling Wang}, title = {{Cyclone}: A Safe Dialect of {C}}, booktitle = {USENIX Annual Technical Conference}, pages = {275--288}, year = 2002, address = {Monterey, CA}, month = jun } @inproceedings{JohnPlacer1993PedagogicalTools, author = {John Placer}, title = {The promise of multiparadigm languages as pedagogical tools}, booktitle = {Proceedings of the 1993 ACM Conference on Computer Science}, year = 1993, isbn = {0-89791-558-5}, pages = {81--86}, location = {Indianapolis, Indiana, United States}, doi = {http://doi.acm.org/10.1145/170791.170807}, publisher = ACM, } @TechReport{Jones1993ComposingMonads, author = {Mark P. Jones and Luc Duponcheel}, title = {Composing Monads}, institution = {Yale University}, year = 1993, number = {YALEU/DCS/RR-1004}, month = dec, } @TechReport{Jones1994GoferImpl, author = {Mark P. Jones}, title = {{The implementation of the Gofer functional programming system}}, institution = {Yale University}, year = 1994, type = {Research report}, number = {YALEU/DCS/RR-1030}, address = {New Haven, Connecticut, USA}, month = may } @inproceedings{Jouvelot1991AlgebraicReconstruction, author = {Pierre Jouvelot and David Gifford}, title = {Algebraic reconstruction of types and effects}, booktitle = {Proceedings of the 18th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages}, year = 1991, isbn = {0-89791-419-8}, pages = {303--310}, location = {Orlando, Florida, United States}, doi = {http://doi.acm.org/10.1145/99583.99623}, publisher = ACM, } @MastersThesis{Kaijanaho2002BImpl, author = {Antti-Juhani Kaijanaho}, title = {The formal method known as {B} and a sketch for its implementation}, school = {University of Jyv{\"a}skyl{\"a}}, year = 2002 } @Misc{Karczmarczuk1998Unreliable, author = {Jerzy Karczmarczuk}, title = {The Most Unreliable Technique in the World to Compute PI}, howpublished = {Available from: \url{http://users.info.unicaen.fr/~karczma/arpap/lazypi.ps.gz}}, year = 1998, note = {A Braga School (1998) contribution} } @Article{Karczmarczuk1999Scientific, author = {Jerzy Karczmarczuk}, title = {Scientific Computation and Functional Programming}, journal = {Computing in Science \& Engineering}, year = 1999, volume = 1, number = 3, pages = {64--72} } @InProceedings{Kaway2002Multibyte, author = {Shiro Kawai}, title = {Multibyte character string processing in Scheme }, booktitle = {International Lisp Conference}, year = 2002, address = {San Francisco}, month = {October} } @techreport{ Kelsey1993TailRecursive, author = "Richard A. Kelsey", title = "{T}ail-{R}ecursive {S}tack {D}isciplines for an {I}nterpreter", number = "NU-CCS-93-03", month = "March", year = 93, url = "citeseer.nj.nec.com/kelsey93tailrecursive.html" } @Article{kelsey94tractable, author = {Richard A. Kelsey and Jonathan A. Rees}, title = {A Tractable {S}cheme Implementation}, journal = {Lisp and Symbolic Computation: An International Journal}, year = 1994, volume = 7, number = 4, pages = {315--335} } @Article{Kelsey1998R5RS, author = {Richard Kelsey and William Clinger and Jonathan Rees and others}, title = {Revised{${}^5$} Report on the Algorithmic Language {Scheme}}, journal = SIGPLAN, year = 1998, volume = 33, number = 6, pages = {26--76}, month = sep } @article{Kiczales1996AOP, author = {G. Kiczales}, title = {Aspect-oriented programming}, journal = {ACM Computing Surveys}, volume = 28, number = {4es}, year = 1996, issn = {0360-0300}, pages = 154, doi = {http://doi.acm.org/10.1145/242224.242420}, publisher = ACM, } @InProceedings{Kiczales1997AspectOrientedProgramming, author = {Gregor Kiczales and John Lamping and Anurag Mendhekar and Chris Maeda and Cristina Videira Lopes and Jean-Marc Loingtier and John Irwin}, title = {Aspect-Oriented Programming}, booktitle = {Proceedings of the European Conference on Object-Oriented Programming (ECOOP)}, year = 1997 } @article{Kiczales2001GettingStartedAspectJ, author = {Gregor Kiczales and Erik Hilsdale and Jim Hugunin and Mik Kersten and Jeffrey Palm and William Griswold}, title = {Getting started with ASPECTJ}, journal = {Communications of the ACM}, volume = 44, number = 10, year = 2001, issn = {0001-0782}, pages = {59--65}, doi = {http://doi.acm.org/10.1145/383845.383858}, publisher = ACM, } @inproceedings{Kieburtz1998Taming, author = {Richard B. Kieburtz}, title = {Taming effects with monadic typing}, booktitle = {Proceedings of the Third ACM SIGPLAN International Conference on Functional Programming}, year = 1998, isbn = {1-58113-024-4}, pages = {51--62}, location = {Baltimore, Maryland, United States}, doi = {http://doi.acm.org/10.1145/289423.289428}, publisher = ACM } @Misc{Kiselyov1998MonadSchemeIO, author = {Oleg Kiselyov}, title = {Monads, Scheme, and IO}, howpublished = {World Wide Web}, month = mar, year = 1998, note = {\url{http://okmij.org/ftp/Scheme/misc.html#monadic-io}, last visited: 2003-10-15} } @TechReport{Knuth1983WEBSystem, author = {Donald E. Knuth}, title = {The {WEB} system of structured documentation}, institution = {Stanford University, Stanford, CA}, year = 1983, number = {CS980}, month = sep } @Book{Knuth1986CMTypefaces, author = {Donald E. Knuth}, title = {Computer Modern Typefaces}, publisher = AW, year = 1986, volume = {E}, series = {Computers \& Typesetting}, address = {Reading, Massachusettes} } @Book{Knuth1986MetafontProgram, author = {Donald E. Knuth}, title = {METAFONT: The Program}, publisher = AW, year = 1986, volume = {D}, series = {Computers \& Typesetting}, address = {Reading, Massachusettes} } @Book{Knuth1986Metafontbook, author = {Donald E. Knuth}, title = {The METAFONTbook}, publisher = AW, year = 1986, volume = {C}, series = {Computers \& Typesetting}, address = {Reading, Massachusettes} } @Book{Knuth1986TeXProgram, author = {Donald E. Knuth}, title = {\TeX: The Program}, publisher = AW, year = 1986, volume = {B}, series = {Computers \& Typesetting}, address = {Reading, Massachusettes} } @Book{Knuth1986TeXbook, author = {Donald E. Knuth}, title = {The \TeX{}book}, publisher = AW, year = 1986, volume = {A}, series = {Computers \& Typesetting}, address = {Reading, Massachusettes} } @Book{Knuth1997TAOCPv1, author = {Donald E. Knuth}, title = {The Art of Computer Programming}, publisher = AW, year = 1997, volume = {1: Fundamental Algorithms}, address = {Reading, Massachusettes}, edition = {Third} } @Book{Knuth1998DigitalTypography, author = {Donald E. Knuth}, title = {Digital Typography}, publisher = {CSLI Publications}, year = 1998, number = 78, series = {CSLI Lecture Notes} } @Book{Knuth1998TAOCPv2, author = {Donald E. Knuth}, title = {The Art of Computer Programming}, publisher = AW, year = 1998, volume = {2: Seminumerical Algorithms}, address = {Reading, Massachusettes}, edition = {Third} } @Book{Knuth1998TAOCPv3, author = {Donald E. Knuth}, title = {The Art of Computer Programming}, publisher = AW, year = 1998, volume = {3: Sorting and Searching}, address = {Reading, Massachusettes}, edition = {Second} } @InProceedings{KobayashiMarinIdaChe.WFLP02, author = {N. Kobayashi and M. Marin and T. Ida and Z. Che}, title = {Open {CFLP}: An Open System for Collaborative Constraint Functional Logic Programming}, booktitle = {Proc. of the 11th International Workshop on Functional and (Constraint) Logic Programming (WFLP 2002)}, year = 2002, series = {Research Report UDMI/18/2002/RR}, publisher = {University of Udine} } @inproceedings{ Kokeny1994ConstraintSystem, author = "Tibor K{\"{o}}k\'{e}ny", title = "Yet Another Object-Oriented Constraint Resolution System: An Open Architecture Approach", booktitle = "Proceedings {ECAI}'94 Workshop on Constraint Processing", address = "Amsterdam", editor = "Manfred Meyer", year = 1994, url = "citeseer.nj.nec.com/145609.html" } @inproceedings{Kranz1986Orbit, author = {David Kranz and Richard Kelsey and Jonathan Rees and Paul Hudak and James Philbin}, title = {{ORBIT}: an optimizing compiler for {Scheme}}, booktitle = {Proceedings of the 1986 SIGPLAN Symposium on Compiler Construction}, year = 1986, isbn = {0-89791-197-0}, pages = {219--233}, location = {Palo Alto, California, United States}, doi = {http://doi.acm.org/10.1145/12276.13333}, publisher = ACM } @PhdThesis{Kranz1988Orbit, author = {David A. Kranz}, title = {ORBIT: An Optimizing Compiler for Scheme}, school = {Yale University}, year = 1988 } @InProceedings{Krishnamurthi1998Synthesizing, author = {Shriram Krishnamurthi and Matthias Felleisen and Daniel P. Friedman}, title = {Synthesizing Object-Oriented and Functional Design to Promote Re-Use}, booktitle = {European Conference on Object-Oriented Programming}, year = 1998 } @InProceedings{Krzikalla2003CIPinCPP, author = {Olaf Krzikalla}, title = {Constraint Imperative Programming in {C++}}, booktitle = {Second International Workshop on Multiparadigm Constraint Programming Languages, MultiCPL'03}, year = 2003, editor = {Michael Hanus and Petra Hofstedt and Armin Wolf}, address = {Kinsale, Cork, Ireland}, month = sep } @Misc{Krzikalla2003turtleppWWW, author = {Olaf Krzikalla}, title = {{The Turtle Library -- Home Page}}, howpublished = {World Wide Web}, year = 2003, note = {\url{http://people.freenet.de/turtle++/}} } @Article{Kuchen1996BabelGraphMachine, author = {Herbert Kuchen and Rita Loogen and Juan Jos{\'e} Moreno-Navarro and Mario Rodr{\'\i}guez-Artalejo}, title = {The Functional Logic Language {BABEL} and Its Implementation on a Graph Machine}, journal = {New Generation Computing}, year = 1996, volume = 14, pages = {391--427} } @Article{LPJ03, author = "Ralf L{\"a}mmel and Simon {Peyton Jones}", title = "Scrap your boilerplate: a practical design pattern for generic programming", journal = "ACM SIG{\-}PLAN Notices", volume = 38, number = 3, pages = "26--37", month = mar, year = 2003, note = "Proc.\ of the ACM SIGPLAN Workshop on Types in Language Design and Implementation (TLDI~2003)" } @inproceedings{Laemmel99a, author = "Ralf L{\"a}mmel", title = "{Declarative aspect-oriented programming}", pages = "131--146", editor = "Olivier Danvy", booktitle = "{Proceedings PEPM'99, 1999 ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation PEPM'99, San Antonio (Texas), BRICS Notes Series NS-99-1}", year = 1999, month = jan } @article{Landin19666Next700PL, author = {P. J. Landin}, title = {The next 700 programming languages}, journal = {Communications of the ACM}, volume = 9, number = 3, year = 1966, issn = {0001-0782}, pages = {157--166}, doi = {http://doi.acm.org/10.1145/365230.365257}, publisher = ACM, } @article{ Larose1999Compacting, author = "Martin Larose and Marc Feeley", title = "A compacting incremental collector and its performance in a production quality compiler", journal = "ACM SIG{\-}PLAN Notices", volume = 34, number = 3, pages = "1--9", year = 1999, url = "citeseer.nj.nec.com/larose98compacting.html" } @article{Larson1999Memory, author = "Per-{\AA}ke Larson and Murali Krishnan", title = "Memory allocation for long-running server applications", journal = "ACM SIG{\-}PLAN Notices", volume = 34, number = 3, pages = "176--185", year = 1999, url = "citeseer.nj.nec.com/article/larson98memory.html" } @TechReport{Leavens2002FOAL, author = {Gary T. Leavens and Ron Cytron}, title = {FOAL 2002 Proceedings -- Foundations of Aspect-Oriented Languages}, institution = {Department of Computer Science, Iowa State University}, year = 2002, number = {02-06}, month = apr }, @TechReport{Leavens2003FOAL, editor = {Gary T. Leavens and Curtis Clifton}, author = {Gary T. Leavens and Curtis Clifton}, title = {FOAL 2003 Proceedings -- Foundations of Aspect-Oriented Languages}, institution = {Department of Computer Science, Iowa State University}, year = 2003, number = {03-05}, month = mar }, @PhdThesis{Leijen2003LambdaAbroad, author = {Daan Leijen}, title = {The $\lambda$ Abroad -- A Functional Approach to Software Components}, school = {Utrecht University}, year = 2003, month = nov }, @PhdThesis{Lepper:03, author = {M. Lepper}, title = {MWatch --- An Algorithm for Evaluating Temporal Trace Specifications in Real-Time}, school = {Technische Universt{\"a}t Berlin}, year = 2004 }, @inproceedings{Leroy1991PolymorphicTypeInference, author = {Xavier Leroy and Pierre Weis}, title = {Polymorphic type inference and assignment}, booktitle = {Proceedings of the 18th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages}, year = 1991, isbn = {0-89791-419-8}, pages = {291--302}, location = {Orlando, Florida, United States}, doi = {http://doi.acm.org/10.1145/99583.99622}, publisher = ACM, } @Book{Levine2000LinkersLoaders, author = {John R. Levine}, title = {Linkers \& Loaders}, publisher = MK, year = 2000 } @inproceedings{Lewis2000Implicit, author = "Jeffrey Lewis and Mark Shields and Erik Meijer and John Launchbury", title = "Implicit Parameters: Dynamic Scoping with Static Types", booktitle = "Proceedings of the 27th Annual {ACM} {SIGPLAN-SIGACT} Symposium on Principles of Programming Languages, Boston, Massachusetts", year = 2000, month = jan, pages = "108--118" }, @InProceedings{Li2003ToolRefactoring, author = {Huiqing Li and Claus Reinke and Simon Thompson}, title = {Tool Support for Refactoring Functional Programs}, booktitle = {ACM SIGPLAN Haskell Workshop}, year = 2003, address = {Uppsala, Sweden}, note = {To appear} } @TechReport{Lim1993pSather, author = {Chu-Cheow Lim}, title = {A Parallel Object-Oriented System for Realizing Reusable and Efficient Data Abstractions}, institution = {ICSI and Computer Science Division, University of California Berkeley}, year = 1993, number = {TR-93-063} }, @book{Lindholm1999JavaVMSpecification, author = {T. Lindholm and F. Yellin}, title = {The Java\texttrademark{} Virtual Machine Specification}, publisher = {Sun Microsystems}, year = 1999, edition = {2nd} }, @techreport{Lloyd1995ProgrammingEscher, number = {CSTR-95-013}, title = {Declarative Programming in {Escher}}, author = {J. W. Lloyd}, bpages = 122, rpages = 5, institution = {Department of Computer Science, University of Bristol}, month = jun, year = 1995, revision = {August 1995}, abstract = {Escher is a declarative, general-purpose programming language which integrates the best features of both functional and logic programming languages. It has types and modules, higher-order and meta-programming facilities, and declarative input/output. Escher also has a collection of system modules, providing numerous operations on standard data types such as integers, lists, characters, strings, sets, and programs. The main design aim is to combine in a practical and comprehensive way the best ideas of existing functional and logic languages, such as G\"odel, Haskell, and $\lambda$Prolog. Indeed, Escher goes well beyond G\"odel in its ability to allow function definitions, its higher-order facilities, its improved handling of sets, and its declarative input/output. Escher also goes well beyond Haskell in its ability to run partly-instantiated predicate calls, a familiar feature of logic programming languages which provides a form of non-determinism, and its more flexible handling of equality. The language also has a clean semantics, its underlying logic being (an extension of) Church's simple theory of types. This report is divided into two parts. The first part provides a tutorial introduction to Escher. In this part there are many example programs to illustrate the various language features. In particular, these example programs are meant to emphasize the significant practical advantages that come from integrating the best features of existing functional and logic languages. The second part contains a formal definition of the Escher language, including its syntax, semantics, and a description of its system modules. To make the report self-contained, an appendix summarizes the key aspects of the simple theory of types. }, source = {tech-reports/1995/1995-lloyd.ps.gz}, pubtype = 6 }, @Book{Loogen1995Integration, author = {Rita Loogen}, title = {Integration funktionaler und logischer Programmiersprachen -- Semantik und Implementierung}, publisher = {Oldenbourg}, year = 1995 } @inproceedings{Lucassen1988EffectSystems, author = {J. M. Lucassen and D. K. Gifford}, title = {Polymorphic effect systems}, booktitle = {Proceedings of the 15th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages}, year = 1988, isbn = {0-89791-252-7}, pages = {47--57}, location = {San Diego, California, United States}, doi = {http://doi.acm.org/10.1145/73560.73564}, publisher = ACM, } @Unpublished{Marlow1998GHCHugsRTS, author = {Simon Marlow and Simon {Peyton Jones}}, title = {{The New GHC/Hugs Runtime System}}, year = 1998 } @inproceedings{Marlow2001AsynchronousExceptions, author = {Simon Marlow and Simon Peyton Jones and Andrew Moran and John Reppy}, title = {Asynchronous exceptions in Haskell}, booktitle = {Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation}, year = 2001, isbn = {1-58113-414-2}, pages = {274--285}, location = {Snowbird, Utah, United States}, doi = {http://doi.acm.org/10.1145/378795.378858}, publisher = ACM, } @TechReport{Marlow2003PushEnterEvalApply, author = {Simon Marlow and Simon {Peyton Jones}}, title = {Making a fast curry -- Push/enter vs eval/apply for higher-order languages}, institution = {Microsoft Research, Cambridge}, year = 2003, month = apr } @inproceedings{Maslov1993Amalgamation, author = {Sergei G. Maslov}, booktitle = {NATO ASI Constraint Programming}, title = {From Competition to Amalgamation of Different Programming Paradigms}, year = 1993, month = aug, url = "citeseer.nj.nec.com/386474.html" } @Unpublished{Meijer1992DownWithLambdaLifting, author = {Erik Meijer and Ross Paterson}, title = {Down with $\lambda$-lifting}, note = {Unpublished paper}, month = apr, year = 1992 } @Unpublished{Meseguer, author = {Jos{\'e} Meseguer}, title = {{Semantic Frameworks for Multiparadigm Integration and Coordination}}, note = {Unpublished} } @Misc{Metzner2002DiplomaThesis, author = {Andr{\'e} Metzner}, title = {{Eine abstrakte Maschine f{\"u}r die (schrittweise) Abarbeitung funktional-logischer Programme. Diploma Thesis, Technische Universit{\"a}t Berlin}}, school = {Technische Universit{\"a}t Berlin}, year = 2002 } @Article{MillerLogicProgrammingLanguage, author = {Dale Miller}, title = {A Logic Programming Language with Lambda-Abstraction, Function Variables, and Simple Unification}, Journal = "Journal of Logic and Computation", Volume = 1, Number = 4, Pages = "497-536", Year = 1991, url = "citeseer.nj.nec.com/miller91logic.html", url = "file://ftp.cis.upenn.edu/pub/papers/miller/jlc91.dvi.Z" } @Book{Milner1997SML, author = {R. Milner and M. Tofte and R. Harper and D. MacQueen}, title = {The Definition of Standard ML}, publisher = MIT, year = 1997, note = {Revised edition.} } @Book{Mitchell2003Concepts, author = {John C. Mitchell}, title = {Concepts in Programming Languages}, publisher = CUP, year = 2003 } @inproceedings{Moggi1989Computational, author = {E. Moggi}, title = {Computational lambda-calculus and monads}, booktitle = {Proceedings of the Fourth Annual Symposium on Logic in computer science}, year = 1989, isbn = {0-8186-1954-6}, pages = {14--23}, location = {Pacific Grove, California, United States}, publisher = IEEE, } @Article{Moggi2001Revised, author = {E. Moggi and A. Sabry}, title = {Monadic Encapsulation of Effects: a Revised Approach (extended version)}, journal = {Journal of Functional Programming}, year = 2001, volume = 11, number = 6 } @InProceedings{Moggi2003MMML, author = {E. Moggi and S. Fagorzi}, title = {A Monadic Multi-stage Metalanguage}, booktitle = {FOSSACS 2003}, year = 2003, volume = 2620, series = LNCS } @Article{Montanari1996WhatsNext, author = {Ugo Montanari and Francesca Rossi}, title = {Constraint Solving and Programming: What's Next?}, journal = {ACM Computing Surveys}, year = 1996, volume = 28, number = {4es}, month = dec } @Article{MorenoNavarro1992Babel, author = {Juan Jose Moreno-Navarro and Mario Rodriguez-Artalejo}, title = {Logic Programming with Functions and Predicates: The Language {Babel}}, journal = {Journal of Logic Programming}, year = 1992, volume = 12, pages = {191--223} } @article{MorenoNavarroRodriguezArtalejo:1992, author = "J.J. Moreno-Navarro and M. Rodr{\'i}guez-Artalejo", title = "{Logic Programming with Functions and Predicates: The Language BABEL}", journal = "Journal of Logic Programming", volume = 12, pages = "191--223", year = 1992 } @InProceedings{Nadathur1988lProlog, author = {Gopalan Nadathur and Dale Miller}, title = {An overview of lambda Prolog}, booktitle = {Proceedings of Fifth International Logic Programming Conference}, pages = {810--827}, year = 1988, editor = {Kenneth A. Bowen and Robert A. Kowalski}, address = {Seattle, Washington}, month = aug, publisher = MIT } @inproceedings{Necula1997PCC, author = {George C. Necula}, title = {Proof-carrying code}, booktitle = {Proceedings of the 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages}, year = 1997, HIDDENisbn = {0-89791-853-3}, pages = {106--119}, location = {Paris, France}, doi = {http://doi.acm.org/10.1145/263699.263712}, publisher = ACM, } @Book{Nelson1995DataCompression, author = {Mark Nelson and Jean-Loup Gailly}, title = {The Data Compression Book}, publisher = {M\&T Books}, year = 1995, edition = {Second} } @inproceedings{ Neubauer2002FunctionalLogicOverloading, author = "Matthias Neubauer and Peter Thiemann and Martin Gasbichler and Michael Sperber", title = "Functional logic overloading", booktitle = "Symposium on Principles of Programming Languages", pages = "233-244", year = 2002, url = "citeseer.nj.nec.com/neubauer01functional.html" } @PhdThesis{Noble1995LazyComponents, author = {Rob Noble}, title = {Lazy Functional Components for Graphical User Interfaces}, school = {York University}, year = 1995, month = nov } @Misc{Nordlander2001OHaskellSurvey, author = {Johan Nordlander}, title = {{A survey of O'Haskell}}, howpublished = {World Wide Web}, month = jan, year = 2001, note = {Available from: \url{http://www.cs.chalmers.se/~nordland/ohaskell/survey.html}}, } @inproceedings{Odersky1993AssignmentLambdaCalculus, author = {Martin Odersky and Dan Rabin and Paul Hudak}, title = {Call by name, assignment, and the lambda calculus}, booktitle = {Proceedings of the 20th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages}, year = 1993, isbn = {0-89791-560-7}, pages = {43--56}, location = {Charleston, South Carolina, United States}, doi = {http://doi.acm.org/10.1145/158511.158521}, publisher = ACM, } @inproceedings{ Okasaki1995Purely, author = "Chris Okasaki", title = "Purely Functional Random-Access Lists", booktitle = "Functional Programming Languages and Computer Architecture", pages = "86--95", year = 1995, url = "citeseer.nj.nec.com/okasaki95purely.html" } @article{Okasaki1998EvenHOParsing, author = "Chris Okasaki", title = "Functional Pearl: Even higher-order functions for parsing or {Why} would anyone ever want to use a sixth-order function?", journal = "Journal of Functional Programming", volume = 8, number = 2, pages = "195--199", year = 1998, url = "citeseer.nj.nec.com/okasaki99functional.html" } @Book{Okasaki1999PurelyFunctional, author = {Chris Okasaki}, title = {Purely Functional Data Structures}, publisher = CUP, year = 1999 } @inproceedings{Okasaki2002PostfixHaskell, author = {Chris Okasaki}, title = {Techniques for embedding postfix languages in Haskell}, booktitle = {Proceedings of the ACM SIGPLAN workshop on Haskell}, year = 2002, isbn = {1-58113-605-6}, pages = {105--113}, location = {Pittsburgh, Pennsylvania}, doi = {http://doi.acm.org/10.1145/581690.581699}, publisher = ACM, } @inproceedings{Ossher2000HyperJ, author = {Harold Ossher and Peri Tarr}, title = {{Hyper/J: multi-dimensional separation of concerns for Java}}, booktitle = {Proceedings of the 22nd international conference on Software engineering}, year = 2000, isbn = {1-58113-206-9}, pages = {734--737}, location = {Limerick, Ireland}, doi = {http://doi.acm.org/10.1145/337180.337618}, publisher = ACM, } @InProceedings{Ossher2000MultiDimensional, author = {Harold Ossher and Peri Tarr}, title = {Multi-Dimensional Separation of Concerns and The Hyperspace Approach}, booktitle = {Proceedings of the Symposium on Software Architectures and Component Technology: The State of the Art in Software Development}, year = 2000, publisher = {Kluwer Academic Publishers} } @InProceedings{Ovlinger2001AspectsModules, author = {Johan Ovlinger and Karl Lieberherr and David H. Lorenz}, title = {Aspects and Modules Combined}, year = 2001, publisher = ACM } @Techreport{Ovlinger2002AspectsModules, AUTHOR = "Johan Ovlinger and Karl Lieberherr and David Lorenz", TITLE = "Aspects and Modules Combined", YEAR = 2002, INSTITUTION = "College of Computer Science, Northeastern University", MONTH = "March", NUMBER = "{NU-CCS-02-03}", ADDRESS = "Boston, MA", NOTE = "http://www.ccs.neu.edu/research/demeter/papers/ac-aspectj-hyperj" } @InProceedings{Parrow1998FusionCalculus, author = {Joachim Parrow and Bj{\"o}rn Victor}, title = {{The Fusion Calculus: Expressiveness and Symmetry in Mobile Processes (extended abstract)}}, booktitle = {Proceedings of LICS'98}, year = 1998, month = jun, publisher = IEEE } @InProceedings{Paterson2001ArrowNotation, author = {Ross Paterson}, title = {A New Notation for Arrows}, booktitle = {International Conference on Functional Programming (ICFP2001)}, year = 2001 } @INPROCEEDINGS{PavlovicPepperSmith:03, AUTHOR = {D. Pavlovic and P. Pepper and D. Smith}, TITLE = {{Colimits for Concurrent Collectors}}, BOOKTITLE = {Proc. of the International Symposium on Verification}, EDITOR = {N. Dershowitz}, YEAR = 2003, SERIES = LNCS, VOLUME = 2772, PUBLISHER = SV, NOTE = {To appear} } @Proceedings{Pepper1984ProgTrans, title = {Program Transformations and Programming Environments}, year = 1984, editor = {Peter Pepper}, volume = 8, series = {NATO ASI Series F: Computer and Systems Sciences}, publisher = SV } @TechReport{Pepper1997ProgLangOpal, author = {Peter Pepper}, title = {{The Programming Language Opal}}, institution = {Technische Universit{\"a}t Berlin}, year = 1997, month = nov } @Article{Pepper2002SoftwareLanguages, author = {Peter Pepper and Michael Cebulla and Klaus Didrich and Wolfgang Grieskamp}, title = {From program languages to software languages}, journal = {Journal of Systems and Software}, year = 2002, volume = 60, number = 60, pages = {91--101} } @BOOK{Pepper2003Opal, AUTHOR = {Peter Pepper}, TITLE = {{Funktionale Programmierung in OPAL, ML, HASKELL und GOFER}}, PUBLISHER = SV, YEAR = 2003, edition = {2nd} } @Misc{PerryImplFunLangOOVM, author = {Nigel Perry and Erik Meijer}, title = {Implementing Functional Languages on Object-Oriented Virtual Machines}, howpublished = {Microsoft White Paper}, url = {http://docs.msdnaa.net/ark/Webfiles/WhitePapers/PerryAndMeijer.pdf} } @InProceedings{PeytonJones1989GMachine, author = {Simon L. {Peyton Jones} and John Salkild}, title = {The Spineless Tagless {G}-machine}, booktitle = {Functional Programming and Computer Architecture}, year = 1989, editor = {David MacQueen} } @inproceedings{PeytonJones1991Unboxed, author = "Simon L. {Peyton Jones} and J. Launchbury", title = "Unboxed Values as First Class Citizens in a Non-strict Functional Language", booktitle = "Proceedings of the Conference on Functional Programming and Computer Architecture", month = "26--28 August", publisher = "Springer-Verlag {LNCS}523", address = "Cambridge, Massachussets, USA", editor = "J. Hughes", pages = "636--666", year = 1991, url = "citeseer.nj.nec.com/jones91unboxed.html" } @book{PeytonJones1998Haskell98, editor = {Simon {Peyton Jones}}, title = {Haskell 98 Language and Libraries---The Revised Report}, publisher = CUP, year = 2003, month = apr, note = {Also available from: \url{http://www.haskell.org/haskellwiki/Definition}, last visited: 2008-10-07} } @misc{ PeytonJones1999SecretsGHCInliner, author = "S. {Peyton Jones} and S. Marlow", title = "Secrets of the Glasgow Haskell compiler inliner", text = "Simon L. Peyton Jones and Simon Marlow. Secrets of the Glasgow Haskell compiler inliner. Submitted to IDL'99, July 1999.", year = 1999, url = "citeseer.nj.nec.com/jones99secrets.html" } @Article{PeytonJones2002SecretsGHCInlinerJFP, author = {Simon {Peyton Jones} and Simon Marlow}, title = {Secrets of the Glasgow Haskell Compiler inliner}, journal = JFP, year = 2002, volume = 12, number = 4, pages = {393--434}, month = jul } @InBook{PeytonJones2001Tackling, author = {Simon {Peyton Jones}}, title = {Engineering theories of software construction}, chapter = {Tackling the Awkward Squad: monadic input/output, concurrency, exceptions, and foreign-language calls in Haskell}, publisher = {NATO ASI}, year = 2001 } @inproceedings{Pfenning1988HOAS, author = {F. Pfenning and C. Elliot}, title = {Higher-order abstract syntax}, booktitle = {Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation}, year = 1988, isbn = {0-89791-269-1}, pages = {199--208}, location = {Atlanta, Georgia, United States}, doi = {http://doi.acm.org/10.1145/53990.54010}, publisher = ACM, } @Book{Pierce1991CategoryTheory, author = {Benjamin C. Pierce}, title = {Basic Category Theory for Computer Scientists}, publisher = MIT, year = 1991, series = {Foundation of Computing Series}, address = {Cambridge, Massachusettes} } @inproceedings{Pierce1998LocalTypeInference, author = "Benjamin C. Pierce and David N. Turner", title = "Local Type Inference", booktitle = "Conference Record of {POPL} 98: The 25TH {ACM} {SIGPLAN}-{SIGACT} Symposium on Principles of Programming Languages, San Diego, California", address = "New York, NY", pages = "252--265", year = 1998, url = "citeseer.ist.psu.edu/pierce98local.html" } @Book{Pierce2002TypesAndPL, author = {Benjamin C. Pierce}, title = {Types and Programming Languages}, publisher = MIT, year = 2002, address = {Cambridge, Massachusettes} } @inproceedings{Pippenger1996PureImpureLisp, author = {Nicholas Pippenger}, title = {Pure versus impure Lisp}, booktitle = {Proceedings of the 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages}, year = 1996, isbn = {0-89791-769-3}, pages = {104--109}, location = {St. Petersburg Beach, Florida, United States}, doi = {http://doi.acm.org/10.1145/237721.237741}, publisher = ACM } @Book{Plasmeijer1993FPandPGR, author = {Rinus Plasmeijer and Marko van Eekelen}, title = {Functional Programming and Parallel Graph Rewriting}, publisher = AW, year = 1993, series = {International Computer Science Series} } @TechReport{Plasmeijer2001CleanReport, author = {Rinus Plasmeijer and Marko {van Eekelen}}, title = {Clean Language Report Version 2.0}, institution = {University of Nijmegen}, year = 2001, month = dec } @Book{Plotkin1981SOS, author = {Gordon D. Plotkin}, title = {A Structural Approach to Operational Semantics}, publisher = {Computer Science Department, Aarhus University}, year = 1981, month = sep } @InProceedings{Plotkin1994SubtypingParametricity, author = {Gordon Plotkin and Mart{\'i}n Abadi and Luca Cardelli}, title = {Subtyping and Parametricity}, booktitle = {Symposium on Logic in Computer Science}, pages = {310--319}, year = 1994, address = {Paris, France}, month = jul, organization = IEEE } @inproceedings{Printezis2000MostylyConcurrentGC, author = {Tony Printezis and David Detlefs}, title = {A generational mostly-concurrent garbage collector}, booktitle = {Proceedings of the second international symposium on Memory management}, year = 2000, isbn = {1-58113-263-8}, pages = {143--154}, location = {Minneapolis, Minnesota, United States}, doi = {http://doi.acm.org/10.1145/362422.362480}, publisher = ACM } @InProceedings{Rees1982T, author = {Jonathan A. Rees and Norman I. Adams IV}, title = {T: A dialect of Lisp or, Lambda: The ultimate software tool}, booktitle = {Conference Record of the 1982 ACM Symposium on Lisp and Functional Programming}, year = 1982, pages = {114--122} } @PhdThesis{Rees1995SecurityKernel, author = {Jonathon A. Rees}, title = {A Security Kernel Based on the Lambda-Calculus}, school = MIT, year = 1995, month = feb } @TechReport{Rees1996SecurityKernel, author = {Jonathan A. Rees}, title = {A Security Kernel Based on the Lambda-Calculus}, institution = MITAI, year = 1996, number = {AIM-1564}, month = mar } @Misc{Reinke2002HCAR, author = {Claus Reinke and others}, title = {Haskell Communities and Activities Report}, howpublished = {World wide web}, month = {November}, year = 2002, note = {Available from: \url{http://www.haskell.org/communities/}}, } @Misc{Reinke2003HCAR, author = {Claus Reinke and others}, title = {Haskell Communities and Activities Report}, howpublished = {World wide web}, month = {November}, year = 2003, note = {Available from: \url{http://www.haskell.org/communities/}}, } @inproceedings{Remy1997ObjectiveML, author = {Didier R{\'e}my and J{\'e}r{\^o}me Vouillon}, title = {Objective ML: a simple object-oriented extension of ML}, booktitle = {Proceedings of the 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages}, year = 1997, isbn = {0-89791-853-3}, pages = {40--53}, location = {Paris, France}, doi = {http://doi.acm.org/10.1145/263699.263707}, publisher = ACM, } @techreport{ Reppy1993HighPerformance, author = "John H. Reppy", title = "A High-Performance Garbage Collector for {S}tandard {ML}", address = "Murray Hill, NJ", year = 1993, url = "citeseer.nj.nec.com/reppy94highperformance.html" } @Book{Russel2003AIMA, author = {Stuart Russel and Peter Norvig}, title = {Artificial Intelligence: A Modern Approach}, publisher = {Pearson Education}, year = 2003, series = {Prentice Hall Series in Artificial Intelligence}, address = {Upper Saddle River, New Jersey}, edition = {Second} } @TechReport{Sabry1992ReasoningTR, author = {Amr Sabry and Matthias Felleisen}, title = {Reasoning about Programs in Continuation-Passing Style}, institution = {Rice University}, year = 1992, number = {TR 92-180} } @article{ Sabry1998PurelyFunctional, author = "Amr Sabry", title = "What is a Purely Functional Language?", journal = "Journal of Functional Programming", volume = 8, number = 1, pages = "1-22", year = 1998, month = jan, url = "citeseer.nj.nec.com/sabry98what.html" } @InProceedings{Sachindran2003MarkCopy, author = {Narendran Sachindran and J. Eliot B. Moss}, title = {Mark-Copy: Fast copying GC with less space overhead}, booktitle = {Proceedings of the ACM 2003 SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA)}, year = 2003, address = {Anaheim, CA}, month = oct, publisher = ACM } @InProceedings{Sahlin1996ErlangOverview, author = {Dan Sahlin}, title = {The concurrent functional programming language {Erlang} -- An Overview}, crossref = {Chakravarty1996MPLP}, booktitle = {Multi-paradigm Logic Programming}, pages = {9--12}, year = 1996 } @InProceedings{Schiffer1994Vista, author = {Stefan Schiffer and Joachim Hans Fr{\"o}hlich}, title = {Concepts and Architecture of {Vista} -- a Multiparadigm Programming Environment}, booktitle = {Proceedings IEEE Symposium on Visual Languages}, pages = {40--47}, year = 1994, month = oct } @Book{Schmidt1986DenotationalSemantics, author = {David A. Schmidt}, title = {Denotational Semantics}, publisher = {Allyn and Bacon}, year = 1986, address = {Newton, Massachusetts} } @article{Schmidt1997PopularSemantics, author = {David A. Schmidt}, title = {On the need for a popular formal semantics}, journal = SIGPLAN, volume = 32, number = 1, year = 1997, issn = {0362-1340}, pages = {115--116}, doi = {http://doi.acm.org/10.1145/251595.251617}, publisher = ACM, } @Book{Schwartz1986SETL, author = {J. T. Schwartz and R. B. K. Dewar and E. Dubinsky and E. Schonberg}, title = {Programming with Sets: an Introduction to SETL}, publisher = SV, year = 1986 } @misc{SchwartzbachPolymorphic, author = "Michael I. Schwartzbach", title = "Polymorphic Type Inference", url = "citeseer.nj.nec.com/article/schwartzbach95polymorphic.html" } @Misc{Scott2001SISC, author = {Scott G. Miller}, title = {{SISC: A Complete Scheme Interpreter in Java}}, year = 2001, month = jan } @inproceedings{Semmelroth1999MonadicEncapsulation, author = "Miley Semmelroth and Amr Sabry", title = "Monadic Encapsulation in {ML}", booktitle = "International Conference on Functional Programming", pages = "8-17", year = 1999, url = "citeseer.nj.nec.com/semmelroth99monadic.html" } @InProceedings{Serrano1994OptimizingCaml, author = {Manuel Serrano and Pierre Weis}, title = {1+1=1: an optimizing Caml compiler}, booktitle = {Proceedings of WML'94}, year = 1994 } @InProceedings{Serrano1995ControlFlowAnalysis, author = {Manuel Serrano}, title = {Control flow analysis: a functional languages compilation paradigm}, booktitle = {Proceedings of SAC'95}, year = 1995 } @InProceedings{Serrano1996StorageAnalysis, author = {Manuel Serranoa and Marc Feeley}, title = {Storage Use Analysis and its Applications}, booktitle = {ACM SIGPLAN International Conference on Functional Programming}, year = 1996, month = may } @InProceedings{Serrano2000UnderstandingMemory, author = {Manuel Serrano and Hans-J. Boehm}, title = {Understanding Memory allocations of Scheme Programs}, booktitle = {Proceedings of ICFP'00}, year = 2000 } @Misc{Sestoft2002RuntimeCodeGeneration, author = {Peter Sestoft}, title = {Runtime Code Generation with JVM and CLR}, year = 2002, url = {http://www.matfys.kvl.dk/\~{}sestoft/publications.html} } @TechReport{Shao1992SmartestRecompilation, author = {Zhong Shao and Andrew W. Appel}, title = {Smartest Recompilation}, institution = {Princeton University}, year = 1992, number = {CS-TR-395-92}, month = oct } @inproceedings{ Shao1993SmartestRecompilation, author = "Zhong Shao and Andrew W. Appel", title = "Smartest Recompilation", booktitle = "Conference Record of the Twentieth Annual {ACM} {SIGPLAN}-{SIGACT} Symposium on Principles of Programming Languages", address = "Charleston, South Carolina", pages = "439--450", year = 1993, url = "citeseer.nj.nec.com/shao93smartest.html" } @PhdThesis{Shao1994CompilingStandardML, author = {Zhong Shao}, title = {Compiling Standard {ML} for Efficient Execution on Modern Machines}, school = {Princeton University}, year = 1994, month = nov } @inproceedings{Shao1995TypeBasedCompilerStandardML, author = {Zhong Shao and Andrew W. Appel}, title = {A type-based compiler for standard ML}, booktitle = {PLDI '95: Proceedings of the ACM SIGPLAN 1995 Conference on Programming Language Design and Implementation}, year = 1995, isbn = {0-89791-697-2}, pages = {116--129}, location = {La Jolla, California, United States}, publisher = {ACM Press}, address = {New York, NY, USA} } @Article{Shao2000EfficentClosureConversion, author = {Zhong Shao and Andrew W. Appel}, title = {Efficient and Safe-for-Space Closure Conversion}, journal = {ACM Transactions on Programming Languages and Systems}, year = 2000, volume = 22, number = 1, pages = {129--161}, month = jan } @InProceedings{Sheard2002TemplateHaskell, author = {Tim Sheard and Simon {Peyton Jones}}, title = {Template metaprogramming for Haskell}, booktitle = {Haskell Workshop 2002}, year = 2002 } @PhdThesis{Shields2001PhD, author = {Mark Brian Shields}, title = {Static Types for Dynamic Documents}, school = {Oregon Graduate Institute of Science and Technology}, year = 2001, month = feb } @TechReport{Simonyi1995IntentionalProgramming, author = {Charles Simonyi}, title = {The Death of Computer Languages, The Birth of Intentional Programming}, institution = {Microsoft Research}, year = 1995, number = {MSR-TR-95-52}, month = sep } @InProceedings{Sitaram1990ReasoningContII, author = {Dorai Sitaram and Matthias Felleisen}, title = {Reasoning with Continuations II: Full Abstraction for Models of Control}, booktitle = {Proceedings of LFP 90}, year = 1990 } @InProceedings{Smetsers1991GeneratingCode, author = {Sjaak Smetsers and Eric N{\"o}cker and John van Groningen and Rinus Plasmeijer}, title = {Generating Efficient Code for Lazy Functional Languages}, booktitle = {Proc. of Conference on Functional Programming Languages and Computer Architecture (FPCA '91), Cambridge, MA, USA}, pages = {295--617}, year = 1991, editor = {Hughes}, publisher = SV } @InProceedings{Smetsers1994SafeUpdates, 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}, booktitle = {Proc. of Graph Transformations in Computer Science, International Workshop, Dagstuhl Castle, Germany}, pages = {358--379}, year = 1994, editor = {Schneider and Ehrig}, number = 776, series = LNCS, publisher = SV } @InProceedings{Smith2000AliasTypes, author = {Frederick Smith and David Walker and Greg Morrisett}, title = {Alias Types}, crossref = {Smolka2000ESOP}, pages = {366--381} } @Proceedings{Smolka2000ESOP, title = {Programming Languages and Systems -- 9th European Symposium on Programming, ESOP 2000}, year = 2000, editor = {Gert Smolka}, address = {Berlin, Germany}, month = mar # "/" # apr } @InProceedings{Sobel1999ICFP, author = {Jonathan Sobel and Erik Hilsdale and R. Kent Dybvig and Daniel P. Friedman }, title = {Abstraction and Performance from Explicit Monadic Reflection}, booktitle = {ICFP'99}, year = 1999, note = {Submitted} } @InProceedings{Somogyi1995Mercury, author = {Zoltan Somogyi and Fergus Henderson and Thomas Conway}, title = {Mercury: an efficient purely declarative logic programming language}, booktitle = {ASCS'95, Glenelg, Australia}, year = 1995 } @Article{Sondergaard1990ReferentialTransparency, author = {H. S{\o}ndergaard and P. Sestoft}, title = {Referential transparency, definiteness unfoldability}, journal = {Acta Informatica}, year = 1990, volume = 27, pages = {505--517} } @Article{Spinellis1995UsingObjects, author = {Diomidis Spinellis and Sophia Drossopoulou and Susan Eisenbach }, title = {Using Objects for Structuring Multiparadigm Programming Environments}, journal = {Journal of Object-Oriented Programming}, year = 1995, volume = 8, number = 1, pages = {33--38}, month = mar # "/" # apr } @Book{Spivey1988UnderstandingZ, author = {J. M. Spivey}, title = {Understanding {Z}}, publisher = CUP, year = 1988, volume = 3, series = {Cambridge tracts in theoretical computer science} } @Book{Spivey1992TheZNotation, author = {J. M. Spivey}, title = {The Z Notation -- A Reference Manual}, publisher = PH, year = 1992, edition = {Second}, series = {International Series in Computer Science} } @Article{Stefik1986AccessOrientedProgramming, author = {Mark J. Stefik and Daniel G. Bobrow and Kenneth M. Kahn}, title = {Integrating Access-Oriented Programming into a Multiparadigm Environment}, journal = {IEEE Software}, year = 1986, volume = 3, number = 1, pages = {10--18}, month = jan } @Proceedings{Striegnitz2001MPOOL, title = {Multiparadigm Programming with Object-Oriented Languages (MPOOL)}, year = 2001, month = jun, editor = {Kei Davis and Yannis Smaragdakis and J{\"o}rg Striegnitz}, volume = 7, series = {NIC Series}, organization = {John von Neumann Institute for Computing (NIC)}, isbn = {3-00-007968-8} } @Proceedings{Striegnitz2002MPOOL, title = {Multiparadigm Programming with Object-Oriented Languages (MPOOL)}, year = 2002, month = jun, editor = {J{\"o}rg Striegnitz and Kei Davis and Yannis Smaragdakis}, volume = 13, series = {NIC Series}, organization = {John von Neumann Institute for Computing (NIC)}, isbn = {3-00-009099-1} } @inproceedings{Stuckey1994QueryConstraints, author = {Peter J. Stuckey and S. Sudarshan}, title = {Compiling query constraints (extended abstract)}, booktitle = {Proceedings of the thirteenth ACM SIGACT-SIGMOD-SIGART Symposium on Principles of Database Systems}, year = 1994, isbn = {0-89791-642-5}, pages = {56--67}, location = {Minneapolis, Minnesota, United States}, doi = {http://doi.acm.org/10.1145/182591.182598}, publisher = ACM, } @TechReport{Sussman1975Scheme, author = {Gerald Jay Sussman and Guy Lewis Steele, Jr.}, title = {Scheme: An interpreter for the extended lambda calculus}, institution = MITAI, year = 1975, type = {AI Memo}, number = 349, month = dec } @InProceedings{Swarup1991Assignments, author = {Vipin Swarup and Uday Reddy and Evan Ireland}, title = {Assignments for Applicative Languages}, booktitle = {Conference on Functional Programming and Computer Architecture}, year = 1991, editor = {R. J. M. Hughes}, number = 523, series = LNCS, month = sep, publisher = SV } @InProceedings{Swen2001Cxx, author = {Bing Swen}, title = {Extended Object-Oriented Programming in Cxx}, crossref = {Striegnitz2001MPOOL}, booktitle = {Multiparadigm Programming with Object-Oriented Languages (MPOOL)}, pages = {127--153}, year = 2001 } @InProceedings{Taha2003EnvironmentClassifiers, author = {Walid Taha and Michael Florentin Nielsen}, title = {Environment Classifiers}, booktitle = {POPL'03}, year = 2003 } @InProceedings{Tarditi1996TypeDirectedCompiler, author = {David Tarditi and Greg Morrisett and Perry Cheng and Chris Stone and Robert Harper and Peter Lee}, title = {TIL: A type-directed compiler for ML}, booktitle = {ACM SIGPLAN Conf. Programming Language Design and Implementation}, pages = {181--192}, year = 1996, address = {New York}, publisher = ACM } @InProceedings{Thielecke2000ExcCont, author = {Hayo Thielecke}, title = {On Exceptions Versus Continuations in the Presence of State}, crossref = {Smolka2000ESOP}, pages = {197--411} } @Book{Thompson1999Haskell, author = {Simon Thompson}, title = {Haskell: The Craft of Functional Programming}, publisher = AW, year = 1999, edition = {Second} } @Misc{Todoran:Continuations, author = {Eneia Todoran and Nikolaos S. Papaspyrou}, title = {Continuations for Parallel Logic Programming} } @Misc{Torgersen2004ExpressionRev, author = {Mads Torgersen}, title = {The Expression Problem Revisited -- Four new solutions using generics}, year = 2004, howpublished = {World Wide Web}, note = {\url{http://www.daimi.au.dk/~madst/tool/papers/expression.pdf}} } @InProceedings{Trancon2002StackingCycles, author = {Baltasar {Tranc{\'o}n y Widemann}}, title = {Stacking Cycles: Functional Transformation of Circular Data}, booktitle = {Proceedings of the Conference on the Implementation of Functional Languages}, year = 2002, volume = 2670, series = LNCS } @InProceedings{Trancon2003Corecursion, author = {Baltasar {Tranc{\'o}n y Widemann}}, title = {Advanced Strict Corecursion}, booktitle = {Proceedings of the Conference on the Implementation of Functional Languages}, year = 2003, volume = 2670, series = LNCS, note = {Under review} } @inproceedings{Tucker2003PointcutsAdviceHOL, author = {David B. Tucker and Shriram Krishnamurthi}, title = {Pointcuts and advice in higher-order languages}, booktitle = {Proceedings of the 2nd international conference on Aspect-oriented software development}, year = 2003, isbn = {1-58113-660-9}, pages = {158--167}, location = {Boston, Massachusetts}, doi = {http://doi.acm.org/10.1145/643603.643620}, publisher = ACM, } @phdthesis{Turner1996PolymorphicPiCalculus, author = "David N. Turner", title = "The Polymorphic Pi-Calculus: Theory and Implementation", year = 1996, school = {University of Edinburgh}, url = "http://citeseer.ist.psu.edu/turner95polymorphic.html" } @Article{Ungar1991Self, author = {David Ungar and Randall B. Smith}, title = {Self: The power of simplicity}, journal = {Lisp and Symbolic Computation}, year = 1991, volume = 4, number = 3 } @inproceedings{ Waddell1997FastEffectiveInlining, author = "Oscar Waddell and R. Kent Dybig", title = "Fast and Effective Procedure Inlining", booktitle = "Static Analysis Symposium", pages = "35--52", year = 1997, url = "citeseer.nj.nec.com/waddell97fast.html" } @InProceedings{Waddell2002letrec, author = {Oscar Waddell and Dipanwita Sarkar and R. Kent Dybvig}, title = {Robust and effective transformation of letrec}, booktitle = {Proceedings of the Workshop on Scheme and Functional Programming}, year = 2002, month = oct } @inproceedings{Wadler1991LinearLogic, author = {Philip Wadler}, title = {Is there a use for linear logic?}, booktitle = {Proceedings of the 1991 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation}, year = 1991, isbn = {0-89791-433-3}, pages = {255--273}, location = {New Haven, Connecticut, United States}, doi = {http://doi.acm.org/10.1145/115865.115894}, publisher = ACM, } @Article{Wadler1997DeclareImperative, author = {Philip Wadler}, title = {How to declare an imperative}, journal = {ACM Computing Surveys}, year = 1997, volume = 29, number = 3, pages = {140--263}, month = sep } @Misc{Wadler1998ExpressionProblem, author = {Philip Wadler}, title = {The Expression Problem}, howpublished = {Java-genericity mailing list}, month = nov, year = 1998, note = {Available from: \url{http://www.cse.ohio-state.edu/~gb/cis888.07g/java-genericity/}} } @inproceedings{Wadler1998Marriage, author = {Philip Wadler}, title = {The marriage of effects and monads}, booktitle = {Proceedings of the Third ACM SIGPLAN International Conference on Functional Programming}, year = 1998, isbn = {1-58113-024-4}, pages = {63--74}, location = {Baltimore, Maryland, United States}, doi = {http://doi.acm.org/10.1145/289423.289429}, publisher = ACM, } @InProceedings{Wadler2003Dual, author = {Philip Wadler}, title = {Call-by-value is dual to call-by-name}, booktitle = {International Conference on Functional Programming}, year = 2003, month = aug } @Misc{Wadler2003DualReloaded, author = {Philip Wadler}, title = {Call-by-value is Dual to Call-by-name -- Reloaded}, howpublished = {World Wide Web, \url{http://homepages.inf.ed.ac.uk/wadler/papers/dual/dual-reloaded.pdf}}, month = jul, year = 2003 } @article{Wadler2003Marriage, author = {Philip Wadler and Peter Thiemann}, title = {The marriage of effects and monads}, journal = {ACM Transactions on Computational Logic (TOCL)}, volume = 4, number = 1, year = 2003, issn = {1529-3785}, pages = {1--32}, doi = {http://doi.acm.org/10.1145/601775.601776}, publisher = ACM, } @InProceedings{Wallace2003LanguagesPackages, author = {Mark Wallace}, title = {Languages versus Packages for Constraint Problem Solving}, booktitle = {Ninth International Conference on Principles and Practice of Constraint Programming}, pages = {37--52}, year = 2003, editor = {Francesca Rossi}, month = sep, publisher = SV } @inproceedings{Wan2000FRP, author = {Zhanyong Wan and Paul Hudak}, title = {Functional reactive programming from first principles}, booktitle = {Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation}, year = 2000, isbn = {1-58113-199-2}, pages = {242--252}, location = {Vancouver, British Columbia, Canada}, doi = {http://doi.acm.org/10.1145/349299.349331}, publisher = ACM, } @article{ Wand1998theory, author = "Mitchell Wand", title = "The Theory of Fexprs is Trivial", journal = "Lisp and Symbolic Computation", volume = 10, number = 3, pages = "189--199", year = 1998, url = "citeseer.ist.psu.edu/wand98theory.html" } @Proceedings{Watt2000CC, title = {Compiler Construction -- 9th International Conference, CC 2000}, year = 2000, editor = {David A. Watt}, address = {Berlin, Germany}, month = mar # "/" # apr } @InProceedings{Welch2002SecurityAspects, author = {Ian S. Welch and Robert J. Stroud}, title = {Security and Aspects: A Metaobject Protocol Viewpoint}, booktitle = {Proceedings of ACP4IS'02}, year = 2002, address = {Enschede, The Netherlands} } @InProceedings{Wells2000Modules, author = {J. B. Wells and Ren{\'e} Vestergaard}, title = {Equational Reasoning for Linking with First-Class Primitive Modules}, crossref = {Smolka2000ESOP}, pages = {412--428} } @InProceedings{Westbrook1999Teaching, author = {D. Suzanne Westbrook}, title = {A Multiparadigm Language Approach to Teaching Principles of Programming Languages}, booktitle = {29th ASEE/IEEE Frontiers in Education}, year = 1999, month = nov } @Book{Wikstroem1987FPUsingSML, author = {{\AA}ke Wikstr{\"o}m}, title = {Functional Programming Using Standard ML}, publisher = PH, year = 1987 } @InProceedings{Wilson1992PointerSwizzling, author = "Paul R. Wilson and Sheetal V. Kakkad", title = "Pointer Swizzling at Page Fault Time: Efficiently and Compatibly Supporting Huge Address Spaces on Standard Hardware", booktitle = "1992 Int. Workshop on Object Orientation and Operating Systems", publisher = "IEEE Comp. Society Press", address = "Dourdan (France)", pages = "364--377", year = 1992, url = "citeseer.nj.nec.com/wilson92pointer.html" } @InProceedings{Wilson1993RealTimeNonCopying, author = {Paul R. Wilson and Mark S. Johnstone}, title = {Real-Time Non-Copying Garbage Collection}, booktitle = {ACM OOPSLA Workshop on Memory Management and Garbage Collection}, year = 1993 } @InProceedings{Wilson1995DynamicStorageAllocation, author = {Paul R. Wilson and Mark S. Johnstone and Michael Neely and David Boles}, title = {Dynamic Storage Allocation: A Survey and Critical Review}, booktitle = {Proceedings 1995 International Workshop on Memory Management}, year = 1996, series = LNCS, publisher = SV } @TechReport{Wright1993PolymorphismImperative, author = {Andrew K. Wright}, title = {Polymorphism for Imperative Languages without Imperative Types}, institution = {Rice University}, year = 1993, number = {TR93-200}, month = feb } @Book{Wright1994TCPIP, author = {Gary R. Wright and W. Richard Stevens}, title = {TCP/IP Illustrated}, publisher = AW, year = 1994, volume = {2: The Implementation}, series = {Professional Computing Series} } @article{Wright1995SimpleImperativePolymorphism, author = "Andrew K. Wright", title = "Simple Imperative Polymorphism", journal = "Lisp and Symbolic Computation", volume = 8, number = 4, pages = "343--355", year = 1995, url = "citeseer.nj.nec.com/wright95simple.html" } @inproceedings{ Xi1998EliminatingArrayBoundChecking, author = "Hongwei Xi and Frank Pfenning", title = "Eliminating Array Bound Checking Through Dependent Types", booktitle = "{SIGPLAN} Conference on Programming Language Design and Implementation", pages = "249-257", year = 1998, url = "citeseer.nj.nec.com/xi98eliminating.html" } @inproceedings{ Xi2000ImperativeDependent, author = "Hongwei Xi", title = "Imperative Programming with Dependent Types (Extended Abstract)", booktitle = "Logic in Computer Science", pages = "375-387", year = 2000, url = "citeseer.nj.nec.com/xi00imperative.html" } @Article{Zave1989Compositional, author = {Pamela Zave}, title = {A Compositional Approach to Multiparadigm Programming}, journal = {IEEE Software}, year = 1989, volume = 6, number = 5, pages = {15--25}, month = sep } @InProceedings{Zenger2001JaCo, author = {Matthias Zenger and Martin Odersky}, title = {Implementing Extensible Compilers}, crossref = {Striegnitz2001MPOOL}, booktitle = {Multiparadigm Programming with Object-Oriented Languages (MPOOL)}, pages = {61--80}, year = 2001 } @InProceedings{Zhang2003TinyC, author = {Charles Zhang and Hans-Arno Jacobsen}, title = {{TinyC$^2$: Towards Building a dynamic weaving aspect aspect language for C}}, crossref = {Leavens2003FOAL} } @inproceedings{ abdennadher01:jack:inp, author = {Slim Abdennadher and Ekkerhard Kr{\"a}mer and Matthias Saft and Matthias Schmauss}, title = {{JACK}: A {Java} Constraint Kit}, abstract = {Most existing libraries providing constraint facilities are embedded in the logic programming language, Prolog, or in the object-oriented language, C++. Recently, some proposals have been made to integrate constraint handling in Java. The goal of this work is to provide a new constraint library for Java, called JACK. It consists of a high-level language for writing constraint solvers, a generic search engine and a tool to visualize the simplification and propagation of constraints.}, booktitle = {WFLP 2001}, year = 2001, month = sep, publisher = {University of Kiel; Technical Report No. 2017}, url = {citeseer.nj.nec.com/abdennadher01jack.html}, url = {http://www.pms.informatik.uni-muenchen.de/mitarbeiter/abdennad/Publikationen/paperWLP.ps} } @misc{ bardou-roles, author = "Daniel Bardou", title = "Roles, Subjects and Aspects: How do they relate?", year = "????", url = "citeseer.nj.nec.com/413435.html" } @TechReport{bartakGrail, author = {Roman Bart{\'{a}}k}, title = {Constraint Programming: In Pursuit of the Holy Grail}, institution = {????}, year = {19??} } @Misc{bartakHierarchies, author = {Roman Bart{\'{a}}k}, title = {Guide to Constraint Programming: Algorithms for Solving Constraint Hierarchies}, howpublished = {World Wide Web}, year = 1998, note = {\url{http://kti.ms.mff.cuni.cz/~bartak/constraints/ch_solvers.html}, last visited: 2003-02-24} } @Misc{bartakHierarchies1, author = {Roman Bart{\'{a}}k}, title = {Guide to Constraint Programming: Constraint Hierarchies}, howpublished = {World Wide Web}, NOTE = {\url{http://kti.ms.mff.cuni.cz/~bartak/constraints/hierarchies.html}, last visited: 2003-02-24}, YEAR = 1998 } @TechReport{bartakPropagation, author = {Roman Bart{\'{a}}k}, title = {Theory and Practice of Constraint Propagation}, institution = {????}, year = {19??} } @TechReport{bbms-TR1999/19, author = {G.J. Badros and A. Borning and K. Marriott and P.J. Stuckey}, year = 1999, title = {Constraint Cascading Style Sheets for the Web}, institution = {University of Washington}, number = {UW CSE 99-05-01} } @InProceedings{benson90kaleidoscope, author = {Bjorn Freeman-Benson}, title = {Kaleidoscope: Mixing Objects, Constraints, and Imperative Programming}, booktitle = {Proceedings of the ECOOP/OOPSLA '90 Joint Conference on Object-Oriented Programming}, year = 1990 } @PhdThesis{benson91cip, author = {B. N. Freeman-Benson}, title = {Constraint Imperative Programming}, school = {University of Washington, Dept. of Computer Science and Engineering}, year = 1991, month = jul } @inproceedings{ benson92int, author = "Bjorn N. Freeman-Benson", title = "Integrating Constraints with an Object-Oriented Language", booktitle = "Proceedings of the 1992 European Conference on Object-Oriented Programming", address = "New York, NY", pages = "268--286", year = 1992 } @inproceedings{benton00monads, author = {Nick Benton and Andrew Kennedy}, title = {Monads, Effects and Transformations}, booktitle = {Electronic Notes in Theoretical Computer Science}, volume = 26, publisher = {Elsevier}, editor = {Andrew Gordon and Andrew Pitts}, year = 2000 } @Misc{bilsonOverload, author = {Richard C. Bilson}, title = {Algorithms for Overload Resolution}, howpublished = {World Wide Web}, month = {September}, year = 2001, note = {Available from: {http://plg.uwaterloo.ca/~rcbilson/cforall/overload.html}, last visited: 2003-02-24} } @misc{ blume-refining, author = "Matthias Blume", title = "Refining Hygienic Macros for Modules and Separate Compilation", url = "citeseer.nj.nec.com/12450.html" } @inproceedings{blume01no-longer-foreign, author = {Matthias Blume}, title = {No-Longer-Foreign: Teaching an ML compiler to speak C "natively"}, booktitle = {Electronic Notes in Theoretical Computer Science}, volume = 59, issue = 1, publisher = {Elsevier}, editor = {Nick Benton and Andrew Kennedy}, year = 2001 } @inproceedings{ boortz97compacting, author = "Kent Boortz and Dan Sahlin", title = "A Compacting Garbage Collector for Unidirectional Heaps", booktitle = "Implementation of Functional Languages", pages = "358-", year = 1997, url = "citeseer.nj.nec.com/boortz97compacting.html" } @InProceedings{borning2000splitstay, author = {Alan Borning and Greg J. Badros}, title = {On Finding Graphically Plausible Solutions to Constraint Hierarchies: The Split Stay Problem}, booktitle = {Workshop on Soft Constraints: Theory and Practice, Sixth International Conference on Principles and Practice of Constraint Programming}, year = 2000, month = sep } @PhdThesis{borning79thinglab, author = {Alan Borning}, title = {ThingLab---A constraint-oriented simulation laboratory}, school = {Stanford}, year = 1979, month = mar, note = {A revised version is published as Xerox Palo Alto Research Center Report SSL-79-3, July 1979} } @Article{ borning92constrainthierarchies, author = {Alan Borning and Bjorn Freeman-Benson and Molly Wilson}, title = {Constraint Hierarchies}, journal = {Lisp and Symbolic Computation}, year = 1992, volume = 5, pages = {223-270} } @InProceedings{borning95oti, author = {Alan Borning and Bjorn Freeman-Benson}, title = {The {OTI} Constraint Solver: A Constraint Library for Constructing Interactive Graphical User Interfaces}, booktitle = {Proceedings of the First International Conference on Principles and Practice of Constraint Programming}, pages = {624--628}, year = 1995, month = sep } @TechReport{borning96indigo, author = {Alan Borning and Richard Anderson and Bjorn Freeman-Benson}, title = {The {Indigo} Algorithm}, institution = {Dept. of Computer Science and Engineering, University of Washington}, year = 1996, number = {96-05-01}, month = jul } @Article{borning98ultraviolet, author = {Alan Borning and Bjorn Freeman-Benson}, title = {Ultraviolet: A Constraint Satisfaction Algorithm for Interactive Graphics}, journal = {Constraints}, year = 1998, volume = 3, number = 3, pages = {1--26} } @inproceedings{ boyapati01racetypes, author = "Chandrasekhar Boyapati and Martin Rinard", title = "A parameterized type system for race-free {Java} programs", booktitle = "16th Annual Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA)", address = "Tampa Bay, FL", year = "October 2001", url = "citeseer.nj.nec.com/boyapati01parameterized.html" } @inproceedings{ bruggeman96representing, author = "Carl Bruggeman and Oscar Waddell and R. Kent Dybvig", title = "Representing Control in the Presence of One-Shot Continuations", booktitle = "{SIGPLAN} Conference on Programming Language Design and Implementation", pages = "99-107", year = 1996, url = "citeseer.nj.nec.com/bruggeman96representing.html" } @Article{budd94leda, author = {Timothy A. Budd}, title = {Blending Imperative and Relational Programming}, journal = {IEEE Software}, year = 1991, volume = 8, number = 1, month = jan } @Book{budd95mppil, author = {Timothy A. Budd}, title = {Multiparadigm Programming in Leda}, publisher = AW, year = 1995 } @TechReport{buddGeneral, author = {Timothy A. Budd and Timothy P. Justice and Rajeev K. Pandey}, title = {General-Purpose Multiparadigm Programming Languages: An Enabling Technology for Constructing Complex Systems}, institution = {Oregon State University, Department of Computer Science}, year = 1995, number = {95-60-04} } @TechReport{bueno02ciao, author = {F. Bueno and D. Cabeza and M. Carro and M. Hermenegildo and P. Lopez and G. Puebla}, title = {The {Ciao} Prolog System}, institution = {The CLIP Group, School of Computer Science, Technical University of Madrid}, year = 2002, number = {CLIP 3/97.1}, note = {Available from: {http://clip.dia.fi.upm.es/Software/Ciao/ciao.pdf}, last visited: 2003-02-24} } @Article{chakravarty97goffin, author = {Manuel M. T. Chakravarty and Yike Guo and Martin K\"ohler and Hendrik C. R. Lock}, title = {Goffin: Higher-Order Functions Meet Concurrent Constraints}, journal = {Elsevier Science}, year = 1997, volume = 29, note = {Special issue of ``Science of Computer Programming''} } @inproceedings{ chakravarty99lazy, author = "Manuel M. T. Chakravarty", title = "Lazy Lexing is Fast", booktitle = "Fuji International Symposium on Functional and Logic Programming", pages = "68-84", year = 1999, url = "citeseer.nj.nec.com/chakravarty99lazy.html" } @inproceedings{ chamberlain99regions, author = "Bradford L. Chamberlain and E. Christopher Lewis and Calvin Lin and Lawrence Snyder", title = "Regions: an abstraction for expressing array computation", booktitle = "{APL}", pages = "41-49", year = 1999, url = "citeseer.nj.nec.com/286983.html" } @Article{Cheney1970CompactionAlgorithm, author = {C. J. Cheney}, title = {A non-recursive list compaction algorithm}, journal = CACM, year = 1970, volume = 13, number = 11, pages = {677--678}, month = nov } @article{ clinger91macros, author = "William Clinger", title = "Macros In Scheme", journal = "Lisp Pointers", volume = "IV", number = 4, month = "-", publisher = "ACM", pages = "25--28", year = 1991, url = "citeseer.nj.nec.com/clinger91macros.html" } @inproceedings{ clinger97generational, author = "William D. Clinger and Lars T. Hansen", title = "Generational Garbage Collection and the Radioactive Decay Model", booktitle = "{SIGPLAN} Conference on Programming Language Design and Implementation", pages = "97-108", year = 1997, url = "citeseer.nj.nec.com/clinger97generational.html" } @Article{colmerauer90prologIII, author = {Alain Colmerauer}, title = {An introduction to {P}rolog {III}}, journal = {Communications of the ACM}, year = 1990, volume = 33, number = 7, pages = {69--90}, month = jul, issn = {0001-0782}, doi = {http://doi.acm.org/10.1145/79204.79210}, publisher = ACM } @misc{ cooper-linear, author = "Stephen Cooper", title = "On Linear Types and Imperative Update", year = "????", url = "citeseer.nj.nec.com/cooper97linear.html" } @Article{cras93review, author = {J.-Y. Cras}, title = {A Review of Industrial Constraint Solving Tools}, journal = {AI Intelligence}, year = 1993, isbn = {1-898804-001} } @Book{cunningham01wiki, author = {Bo Leuf and Ward Cunningham}, title = {The Wiki Way: Collaboration and Sharing on the Internet }, publisher = AW, year = 2001 } @inproceedings{danvy00proving, author = {Olivier Danvy and Belmina Dzafic and Frank Pfenning}, title = {On proving syntactic properties of CPS programs}, booktitle = {Electronic Notes in Theoretical Computer Science}, volume = 26, publisher = {Elsevier}, editor = {Andrew Gordon and Andrew Pitts}, year = 2000 } @inproceedings{ darlington92new, author = "John Darlington and Yi{-}ke Guo and Helen Pull", title = "A New Perspective on Integrating Functional and Logic Languages", booktitle = "Proceedings of the International Conference on Fifth Generation Computer Systems", publisher = "Association for Computing Machinery", address = "ICOT, Japan", pages = "682--693", year = 1992, url = "citeseer.nj.nec.com/darlington92new.html" } @Unpublished{deVolderLogicMetaProgramming, author = {Kris De Volder and Johan BrichauKim Mens and Theo D'Hondt}, title = {Logic Meta Programming, a Framework for Domain-Specific Aspect Languages}, note = {http://www.cs.ubc.ca/\~{}kdvolder/binaries/cacm-aop-paper.pdf} } @TechReport{demoenPoly, author = {Bart Demoen and Maria Garcia de la Banda and Peter J. Stuckey}, title = {Type Constraint Solving for Parametric and Ad-hoc Polymorphism}, institution = {????}, year = {19??} } @misc{ dube-bit, author = "Danny Dube", title = "BIT: A Very Compact Scheme System for Embedded Applications", url = "citeseer.nj.nec.com/dube00bit.html" } @misc{ durfee-model, author = "Glenn Durfee", title = "A Model for a List-oriented Extension of the Lambda Calculus", url = "citeseer.nj.nec.com/durfee97model.html" } @Misc{dwds, author = {{Berlin-Brandenburgische Akademie der Wissenschaften}}, title = {{Das digitale W{\"o}rterbuch der deutschen Sprache des 20. Jahrhunderts}}, howpublished = {World Wide Web}, month = jul, year = 2003, note = {Available from: \url{http://www.dwds.de}, last visited: 2003-07-28} } @TechReport{dybvig90destination, author = {R. Kent Dybvig and Robert Hieb and Tom Butler}, title = {Destination-Driven Code Generation}, institution = {Indiana University Computer Science Department}, year = 1990, number = 302, month = feb } @article{ dybvig90new, author = "R. Kent Dybvig and Robert Hieb", title = "A New Approach to Procedures with Variable Arity", journal = "Lisp and Symbolic Computation: An International Journal", volume = 3, number = 3, publisher = "Kluwer Academic Publishers", pages = "229--244", year = 1990, url = "citeseer.nj.nec.com/dybvig90new.html" } @techreport{ dybvig92writing, author = "R. Kent Dybvig", title = "Writing hygienic macros in Scheme with syntax-case.", number = 356, pages = 31, year = 1992, month = jun, url = "citeseer.nj.nec.com/dybvig92writing.html" } @TechReport{feeley97compilingtoc, author = {Marc Feeley and James S. Miller and Guillermo J. Rozas and Jason A. Wilson}, title = {Compiling Higher-Order Languages into Fully Tail-Recursive Portable {C}}, institution = {D\'epartement d'informatique et de recherche op\'erationelle, Universit\'e de Montr\'eal}, year = 1997, number = 1078, month = aug } @Article{fikes70refarf, author = {R. E. Fikes}, title = {{REF-ARF}: A System for solving problems stated as procedures }, journal = {Artificial Intelligence 1}, year = 1970, pages = {27--120} } @incollection{ filinski94representing, author = "Andrzej Filinski", title = "Representing Monads", booktitle = "Conf.\ Record 21st {ACM} {SIGPLAN}-{SIGACT} Symp.\ on Principles of Programming Languages, {POPL}'94, Portland, {OR}, {USA}, 17--21 Jan.\ 1994", publisher = ACM, address = "New York", pages = "446--457", year = 1994, url = "citeseer.nj.nec.com/filinski94representing.html" } @misc{ filman00aspectoriented, author = "R. Filman and D. Friedman", title = "Aspect-Oriented Programming is Quantification and Obliviousness", text = "R.E. Filman and D.P. Friedman, Aspect-Oriented Programming is Quantification and Obliviousness, Workshop on Advanced Separation of Concerns, OOPSLA 2000, October 2000, Minneapolis. http://ic-www.arc.nasa.gov/ic/ darwin/oif/leo/filman/text/oif/aop-is.pdf", year = 2000, url = "citeseer.nj.nec.com/filman00aspectoriented.html" } @incollection{Flanagan1993EssenceContinuations, author = "Cormac Flanagan and Amr Sabry and Bruce F. Duba and Matthias Felleisen", title = "The Essence of Compiling with Continuations", booktitle = "Proceedings {ACM} {SIGPLAN} 1993 Conference on Programming Language Design and Implementation, {PLDI}'93, Albuquerque, {NM}, {USA}, 23--25 June 1993", volume = "28(6)", publisher = ACM, address = "New York", pages = "237--247", year = 1993 } @InProceedings{freemanbenson90design, author = {Bjorn N. Freeman-Benson and Alan Borning}, title = {The Design and Implementation of {Kaleidoscope'90}, A Constraint Imperative Programming Language}, booktitle = {Proc. of the IEEE Computer Society 1992 Int'l Conference on Computer Languages}, pages = {174-180}, year = 1992, month = apr } @Article{freemanbenson90incremental, author = {Bjorn N. Freeman-Benson and John Maloney and Alan Borning}, title = {An Incremental Constraint Solver}, journal = CACM, year = 1990, volume = 33, number = 1, pages = {54--62}, month = jan } @Book{fruehwirth97ConstraintProgrammierung, author = {Thom Fr{\"u}hwirth and Slim Abdennadher}, title = {Constraint-Programmierung}, publisher = SV, year = 1997 } @Article{fruehwirth98chr, author = {Thom Fr{\"u}hwirth}, title = {Theory and Practice of Constraint Handling Rules}, journal = {Journal of Logic Programming}, year = 1998, volume = 37, number = {1--3}, pages = {95--138}, month = oct } @InProceedings{fruehwirthAnwendungen, author = {Thom Fr{\"u}hwirth and Slim Abdennadher}, title = {{Anwendungen Constraintbasierter Programmierung}}, booktitle = {Informatik '97, Informatik als Innovationsmotor, 27. Jahrestagung der Gesellschaft f{\"u}r Informatik}, pages = {317--326}, year = 1997, editor = {Matthias Jarke and Klaus Pasedach and Klaus Pohl}, series = {Informatik Aktuell}, publisher = SV } @TechReport{fruewirth93clp, author = {T. Fr{\"u}hwirth and A. Herold and V. K{\"u}chenhoff and T. {Le Provost} and P. Lim and E. Monfroy and M. Wallace}, title = {Constraint logic programming: An informal introduction}, institution = {ECRC}, year = 1993, number = {ECRC-93-5} } @TechReport{garciaHAL, author = {Maria Garcia de la Banda and David Jeffery and Kim Mariott and Nicholas Nethercote and Peter J. Stuckey and Christian Holzbaur}, title = {Building Constraint Solvers with {HAL}}, institution = {???}, year = {19??} } @inproceedings{ gill93, pages = "223--232", year = 1993, title = "A Short Cut to Deforestation", author = "Andrew Gill and John Launchbury and Peyton Jones, Simon L.", month = "June", booktitle = "Conference on Functional Programming Languages and Computer Architecture", url = "citeseer.nj.nec.com/gill93short.html" } @misc{ glauert-multiparadigm, author = "J.R.W. Glauert", title = "Multi-Paradigm Programming through Graph Rewriting: Case for Support", OPTurl = "citeseer.nj.nec.com/2438.html" } @Misc{gnuProlog, author = {Daniel Diaz}, title = {{GNU} {Prolog}: A Native {Prolog} Compiler with Constraint Solving over Finite Domains}, howpublished = {World Wide Web}, month = sep, year = 2002, note = {Available from: \url{http://pauillac.inria.fr/~diaz/gnu-prolog/manual/index.html}, last visited: 2003-02-24} } @Book{Goldberg1983Smalltalk, author = {Adele Goldberg and David Robson}, title = {Smalltalk-80: The Language and its Implementation}, publisher = AW, year = 1983 } @misc{ graunke-advanced, author = "Paul T. Graunke and Shriram Krishnamurthi", title = "Advanced Control Flows for Flexible Graphical User Interfaces or, Growing GUIs on Trees or, Bookmarking GUIs", url = "citeseer.nj.nec.com/552421.html" } @Book{grune00compilerdesign, author = {Dick Grune and Henri E. Bal and Ceriel J. H. Jacobs and Koen G. Langendoen}, title = {Modern Compiler Design}, publisher = Wiley, year = 2000 } @techreport{ guo93falcon, author = "Yi{-}ke Guo and Helen Pull", title = "{FALCON}: {F}unctional {A}nd {L}ogic language with {CON}straints--Language Definition", year = 1993, institution = "Imperial College London", url = "citeseer.nj.nec.com/guo93falcon.html" } @article{ hall96type, author = "Cordelia V. Hall and Kevin Hammond and Simon L. Peyton Jones and Philip L. Wadler", title = "Type Classes in {H}askell", journal = TOPLAS, volume = 18, number = 2, month = mar, publisher = ACM, pages = "109--138", year = 1996, url = "citeseer.nj.nec.com/hall96type.html" } @inproceedings{harveyCompiling, author = {Warwick Harvey and Peter J. Stuckey and Alan Borning}, title = {Compiling constraint solving using projection}, booktitle = {Proceedings of the Third International Conference on Principles and Practices of Constraint Programming}, year = 1997, month = oct, publisher = SV, series = LNCS, editor = {G. Smolka}, pages = {491-505}, url = {citeseer.nj.nec.com/harvey97compiling.html}, url = {http://www.cs.mu.oz.au/publications/tr_db/mu_97_06.ps.gz AND http://www.cs.washington.edu/research/constraints/solvers/cp97.html} } @misc{ hilsdale-writing, author = "Erik Hilsdale and Daniel P. Friedman", title = "Writing Macros in Continuation-Passing Style", url = "citeseer.nj.nec.com/hilsdale00writing.html" } @InProceedings{hosobe94locally, author = {Hiroshi Hosobe and Ken Miyashita and Shin Takahashi and Satoshi Matsuoka and Akinori Yonezawa}, title = {Locally Simultaneous Constraint Satisfaction}, booktitle = {PPCP'94}, pages = {51--61}, year = 1994, number = 874, series = LNCS, month = oct } @inproceedings{ hosobe96generalized, author = "Hiroshi Hosobe and Satoshi Matsuoka and Akinori Yonezawa", title = "Generalized Local Propagation: A Framework for Solving Constraint Hierarchies", booktitle = "Principles and Practice of Constraint Programming", pages = "237-251", year = 1996, url = "citeseer.nj.nec.com/hosobe96generalized.html" } @inproceedings{housel01towards, author = {Peter Housel and Christian Stork and Vivek Haldar and Niall Dalton and Michael Franz}, title = {Towards Language-Agnostic Mobile Code}, booktitle = {Electronic Notes in Theoretical Computer Science}, volume = 59, issue = 1, publisher = {Elsevier}, editor = {Nick Benton and Andrew Kennedy}, year = 2001 } @Misc{ilogwww, author = {ILOG}, title = {ILOG Web Site}, howpublished = {World Wide Web}, month = feb, year = 2003, note = {Available from: \url{http://www.ilog.com}, last visited: 2003-02-24} } @InProceedings{jaffar87clp, author = {Joxan Jaffar and Jean-Louis Lassez}, title = {Constraint Logic Programming}, booktitle = {Conference Record of the Fourteenth Annual ACM Symposium on Principles of Programming Languages}, pages = {111--119}, year = 1987, volume = 14, month = jan, organization = {ACM}, publisher = ACM } @Article{jaffar94clpsurvey, author = {J. Jaffar and M. Maher}, title = {Constraint logic programming: A Survey}, journal = {Journal of Logic Programming 19/20}, year = 1994, pages = {503--581} } @inproceedings{ janson91programming, author = "Janson, Sverker and Haridi, Seif", title = "Programming Paradigms of the {A}ndorra Kernel Language", booktitle = "Logic Programming, Proceedings of the 1991 International Symposium", publisher = MIT, address = "San Diego, USA", editor = "Saraswat, Vijay and Ueda, Kazunori", pages = "167--186", year = 1991, url = "citeseer.nj.nec.com/article/janson91programming.html" } @PhdThesis{janson94akl, author = {Sverker Janson}, title = {{AKL}---A Multiparadigm Programming Language}, school = {Uppsala University}, year = 1994, month = jun, note = {Also available as SICS Dissertation Series 14} } @PhdThesis{jansson-phdthesis, author = {Jansson, Patrik}, title = {Functional Polytypic Programming}, school = {Computing Science, Chalmers University of Technology and G{\"o}teborg University, Sweden}, month = may, isbn = {91-7197-895-X}, year = 2000 } @inproceedings{ joachim95constraints, author = "Niehren, Joachim and Mueller, Martin", title = "{C}onstraints for {F}ree in {C}oncurrent {C}omputation", booktitle = "Asian Computing Science Conference", volume = 1023, month = "December", publisher = SV, editor = "Kanchanasut, Kanchana and Levy, Jean-Jaques", pages = "171--186", year = 1995, url = "citeseer.nj.nec.com/niehren95constraints.html" } @Book{jones96gc, author = {Richard Jones and Rafael Lins}, title = {Garbage Collection---Algorithms for Automatic Dynamic Memory Management}, publisher = {John Wiley {\&} Sons}, year = 1996, address = {Chichester} } @inproceedings{ jones99portable, author = "Simon {Peyton Jones} and Norman Ramsey and Fermin Reig", title = "{C}--: a Portable Assembly Language that Supports Garbage Collection", booktitle = "International Conference on Principles and Practice of Declarative Programming", year = 1999, url = "citeseer.nj.nec.com/239439.html" } @inproceedings{kakk98, author = {Sheetal V. Kakkad and Mark S. Johnstone and Paul R. Wilson }, title = {Portable Run-Time Type Description for Conventional Compilers}, pages = {146--153}, crossref = {ISMM98}, abstract = {Many useful programming language extensions and support libraries require knowledge of the locations of fields within objects at run time. Examples include orthogonal persistent object stores, precise garbage collectors, data structure picklers and parameter marshaling schemes. For clean and efficient implementation as libraries, these systems require run-time knowledge of in-memory layouts of data objects, which is unavailable in most traditionally-compiled and linked programming languages, such as C, C++, and Ada. Even C++'s recently-standardized run-time type identification (RTTI) feature is insufficient, because it describes language-level features of the type hierarchy and not compiler-dependent object layout decisions. We present a facility for run-time type description or RTTD, which extracts low-level layout information from debugging information generated by conventional compilers, and makes it available to user programs. We believe this to be the simplest and most portable approach to run-time type description, requiring no changes to existing compilers. In this paper, we describe the basic strategies and present details of our implementation for C++. We also sketch some extensions that we have implemented, including special treatment of C++'s virtual function table pointers to match persistent or foreign data objects with the actual code in a particular application. Our implementation of run-time type description is freely available. It is in regular use with multiple operating systems and compilers, in both free and commercial products, including a high-performance persistent object storage system for C++ and a real-time garbage collector. } } @book{karl:demeter, AUTHOR = "Karl J. Lieberherr", TITLE = "Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns", PUBLISHER = "PWS Publishing Company, Boston", YEAR = 1996, NOTE = "ISBN 0-534-94602-X" } @inproceedings{ kelsey89realistic, author = "Richard Kelsey and Paul Hudak", title = "Realistic Compilation by Program Transformation", booktitle = "Conference Record of the Sixteenth Annual {ACM} Symposium on Principles of Programming Languages", address = "Austin, Texas", pages = "281--292", year = 1989, url = "citeseer.nj.nec.com/kelsey89realistic.html" } @techreport{ kevin94imperate, author = "Kevin Hammond and Philip Wadler and Donald Brady", title = "{I}mperate: {B}e imperative", year = 94, institution = {Department of Computing Science, University of Glasgow}, url = "citeseer.nj.nec.com/hammond91imperate.html" } @Misc{koalog, author = {Koalog}, title = {Koalog Constraint Solver (v1.1 stable) Tutorial}, howpublished = {World Wide Web}, month = feb, year = 2003, note = {\url{http://www.koalog.com/resources/doc/jcs-tutorial.pdf}, last visited: 2003-02-24} } @Misc{koalogwww, author = {Koalog}, title = {Koalog Web Site}, howpublished = {World Wide Web}, month = feb, year = 2003, note = {\url{http://www.koalog.com}, last visited: 2003-02-24} } @inproceedings{ krall98efficient, author = "Andreas Krall", title = "Efficient {JavaVM} Just-in-Time Compilation", booktitle = "International Conference on Parallel Architectures and Compilation Techniques", publisher = "North-Holland", address = "Paris", editor = "Jean-Luc Gaudiot", pages = "205--212", year = 1998, url = "citeseer.nj.nec.com/krall98efficient.html" } @InProceedings{lamport84aliasing, author = {Leslie Lamport and Fred B. Schneider}, title = {Constraints: A Uniform Approach to Aliasing and Typing}, booktitle = {Conference Record of the Twelfth Annual ACM Symposium on Principles of Programming Languages}, pages = {205--216}, year = 1984, volume = 12, month = jan, publisher = ACM } @inproceedings{ latendresse00automatic, author = "Mario Latendresse", title = "Automatic Generation of Compact Programs and Virtual Machines for Scheme", booktitle = "Proc. of the Workshop on Scheme and Functional Programming", year = 2000, url = "citeseer.nj.nec.com/latendresse00automatic.html" } @inproceedings{ launchbury93lazy, author = "J. Launchbury", title = "Lazy Imperative Programming", booktitle = "Proceedings of the {ACM} {SIGPLAN} Workshop on State in Programming Languages, Copenhagen, {DK}, {SIPL} '92", pages = "46--56", year = 1993, url = "citeseer.nj.nec.com/launchbury93lazy.html" } @Article{lauriere78alice, author = {J.-L. Lauriere}, title = {A Language and a Program for Stating and Solving Combinatorial Problems}, journal = {Artificial Intelligence 10}, year = 1978, pages = {29--127} } @inproceedings{ lee00efficient, author = "SeungIl Lee and Byung-Sun Yang and Suhyun Kim and Seongbae Park and Soo-Mook Moon and Kemal Ebcioglu and Erik R. Altman", title = "Efficient Java exception handling in just-in-time compilation", booktitle = "Java Grande", pages = "1-8", year = 2000, url = "citeseer.nj.nec.com/article/lee00efficient.html" } @Book{leler87cp, author = {William Leler}, title = {Constraint Programming Languages: Their Specification and Generation}, publisher = AW, year = 1987 } @PhdThesis{li95oocp, author = {Jiarong Li}, title = {Object-oriented constraint programming for interactive applications}, school = {Department of Numerical Analysis and Computing Science, Royal Institute of Technology}, year = 1995, month = sep, url = {http://www.nada.kth.se/~li/thesis.html} } @misc{ locus-gold, author = "Dominique Boucher Locus", title = "GOld: a link-time optimizer for Scheme", url = "citeseer.nj.nec.com/395772.html" } @InProceedings{lopez94identity, author = {Gus Lopez and Bjorn Freeman-Benson and Alan Borning}, title = {Constraints and object identity}, booktitle = {Proceedings of the 1994 European Conference on Object-Oriented Programming}, pages = {260--279}, year = 1994, month = jul } @inproceedings{ lopez94implementing, author = "Gus Lopez and Bjorn N. Freeman-Benson and Alan Borning", title = "Implementing Constraint Imperative Programming Languages: the {Kaleidoscope'93} Virtual Machine", booktitle = "Proceedings of the 1994 ACM Conference on Object-Oriented Programming Systems, Languages, and Applications", pages = "259-271", year = 1994, month = oct, url = "citeseer.nj.nec.com/lopez94implementing.html" } @inproceedings{ lopez94kaleidoscope, author = "Gus Lopez and Bjorn Freeman-Benson and Alan Borning", title = "Kaleidoscope: {A} Constraint Imperative Programming Language", booktitle = "Constraint Programming: Proc. 1993 {NATO} {ASI} Parnu, Estonia", publisher = SV, editor = "B. Mayoh and E. Tyugu and J. Penjaam", isbn = "3-540-57859-5", pages = "305--321", year = 1994, url = "citeseer.nj.nec.com/lopez93kaleidoscope.html" } @PhdThesis{lopez97phd, author = {Gus Lopez}, title = {The Design and Implementation of Kaleidoscope, A Constraint Imperative Programming Language}, school = {University of Washington, Department of Computer Science and Engineering}, year = 1997, month = jan } @misc{ marlow00writing, author = "S. Marlow", title = "Writing high-performance server applications in haskell", text = "Marlow, S., Writing high-performance server applications in haskell, case study: A haskell web server, in: G. Hutton, editor, Haskell Workshop, 2000.", year = 2000, url = "citeseer.nj.nec.com/marlow00writing.html" } @Book{marriot98programmingwithconstraints, author = {K. Marriot and P. J. Stuckey}, title = {Programming with Constraints}, publisher = MIT, year = 1998 } @Article{mcaloon002lp, author = {Ken McAloon and Carol Tretkoff}, title = {{2LP}: Linear Programming and Logic Programming}, journal = {????}, year = {19??} } @techreport{ mehl95amoz, author = "Michael Mehl and Ralf Scheidhauer and Christion Schulte", title = "An Abstract Machine for {Oz}", institution = "Deutsches Forschungszentrum f{\"u}r k{\"u}nstliche Intelligenz GmbH", year = 1995, month = nov } @TechReport{meier95debugging, author = {Micha Meier}, title = {Debugging Constraint Programs}, institution = {European Computer-Industry Research Center}, year = 1995 } @misc{ menzies93how, author = "T. Menzies and R. Spurret", title = "How to Edit it; or a Black-Box Constraint Based Framework for User Interaction with Arbitrary Structures", text = "T.J Menzies and R Spurret. How to Edit it; or a Black-Box Constraint Based Framework for User Interaction with Arbitrary Structures. In Tools Pacific 12, pages 213--224. Prentice Hall, 1993.", year = 1993, url = "citeseer.nj.nec.com/menzies93how.html" } @inproceedings{moggi00monadic, author = {E. Moggi and F. Palumbo}, title = {Monadic Encapsulation of Effects: a Revised Approach}, booktitle = {Electronic Notes in Theoretical Computer Science}, volume = 26, publisher = {Elsevier}, editor = {Andrew Gordon and Andrew Pitts}, year = 2000 } @article{ moss97foundations, author = "Lawrence S. Moss and Norman Danner", title = "On the Foundations of Corecursion", journal = "Logic Journal of the IGPL", volume = 5, number = 2, pages = "231--257", year = 1997, url = "citeseer.nj.nec.com/moss97foundations.html" } @Book{Muchnick1997AdvancedCompiler, author = {Steven S. Muchnick}, title = {Advanced Compiler Design and Implementation}, publisher = {Morgan Kaufmann Publishers}, year = 1997 } @InProceedings{muller1995multiparadigmOz, author = {Martin M{\"u}ller and Tobias M{\"u}ller and Peter {Van Roy}}, title = {Multiparadigm Programming in {Oz}}, booktitle = {Visions for the Future of Logic Programming: Laying the Foundations for a Modern Successor of Prolog, A Workshop in association with ILPS'95}, year = 1995, editor = {Donald Smith and Olivier Ridoux and Peter {Van Roy}}, month = dec, url = "citeseer.nj.nec.com/article/muller95multiparadigm.html" } @inproceedings{ pachet95mixing, author = "F. Pachet and P. Roy", title = "Mixing Constraints and Objects: {A} Case Study in Automatic Harmonization", booktitle = "Proceedings of {TOOLS}-Europe{'}95, Versailles, France", publisher = PH, editor = "I. Graham and B. Magnusson and J.-M. Nerson", pages = "119--126", year = 1995, url = "citeseer.nj.nec.com/5644.html" } @article{ pardo01fusion, author = "Alberto Pardo", title = "Fusion of recursive programs with computational effects", journal = "Theoretical Computer Science", volume = 260, number = "1--2", pages = "165--207", year = 2001, url = "citeseer.ist.psu.edu/pardo00fusion.html" } @incollection{ pardo98monadic, author = "Alberto Pardo", title = "Monadic Corecursion: Definition, Fusion Laws and Applications", booktitle = "Selected Papers 1st Workshop on Coalgebraic Methods in Computer Science, {CMCS}'98, Lisbon, Portugal, 28--29 March 1998", volume = 11, address = "Amsterdam", editor = "B. Jacobs and L. Moss and H. Reichel and J. Rutten", year = 1998, url = "citeseer.ist.psu.edu/pardo98monadic.html" } @article{placer1992g2, author = {John Placer}, title = {Integrating Destructive Assignment and Lazy Evaluation in the Multiparadigm Language {G-2}}, journal = SIGPLAN, volume = 27, number = 2, year = 1992, month = feb, issn = {0362-1340}, pages = {65--74}, doi = {http://doi.acm.org/10.1145/130973.130978}, publisher = ACM, } @Proceedings{podelski94cp, title = {Constraint Programming: Basics and Trends}, year = 1994, editor = {Andreas Podelski}, number = 910, series = {Lecture Notes in Computer Science}, publisher = SV } @inproceedings{ popovici02dynamic, author = "A. Popovici and T. Gross and G. Alonso", title = "Dynamic weaving for aspect oriented programming", booktitle = "Proceedings of the 1st International Conference on Aspect-Oriented Software Development", month = apr, year = 2002, url = "citeseer.nj.nec.com/popovici02dynamic.html" } @Article{radensky1990paslog, author = {Atanas Radensky}, title = {Toward integration of the imperative and logic programming pa\-radigms: {Horn}-clause programming in the {Pascal} environment}, journal = SIGPLAN, year = 1990, volume = 25, number = 2, pages = {25--34}, month = feb } @inproceedings{ Reppy2001LocalCPS, author = "John Reppy", title = "Local {CPS} conversion in a direct-style compiler", booktitle = "Proceedings of the {Third} {ACM} {SIGPLAN} {Workshop} on {Continuations} ({CW}'01)", pages = "13--22", year = 2001, url = "citeseer.nj.nec.com/reppy01local.html" } @misc{ reynolds96design, author = "J. Reynolds", title = "Design of the programming language Forsythe", text = "John C. Reynolds. Design of the programming language Forsythe. Technical Report CMU-CS96 -146, Carnegie Mellon University, Pittsburgh, Pennsylvania, June 1996.", year = 1996, url = "citeseer.nj.nec.com/reynolds96design.html" } @TechReport{sannella92skyblue, author = {Michael Sannella}, title = {The {SkyBlue} Constraint Solver}, institution = {Dept. of Computer Science and Engineering, University of Washington}, year = 1992, number = {92-0702}, month = feb } @Book{saraswat93cc, author = {V. A. Saraswat}, title = {Concurrent Constraint Programming}, publisher = MIT, year = 1993 } @TechReport{schimpf99search, author = {Joachim Schimpf and Kish Shen and Mark Wallace}, title = {Tutorial on Search in ECLiPSe}, institution = {Imperial College London}, year = 1999 } @inproceedings{Schinz2001TailCallElimination, author = {Michel Schinz and Martin Odersky}, title = {Tail call elimination on the {Java} Virtual Machine}, booktitle = {Electronic Notes in Theoretical Computer Science}, volume = 59, issue = 1, publisher = {Elsevier}, editor = {Nick Benton and Andrew Kennedy}, year = 2001 } @article{ seligmann95incremental, author = "Jacob Seligmann and Steffen Grarup", title = "Incremental Mature Garbage Collection Using the Train Algorithm", journal = "Lecture Notes in Computer Science", volume = 952, pages = "235--??", year = 1995, url = "citeseer.nj.nec.com/seligmann95incremental.html" } @inproceedings{ Serrano1995Bigloo, author = "Manuel Serrano and Pierre Weis", title = "Bigloo: A Portable and Optimizing Compiler for Strict Functional Languages", booktitle = "Static Analysis Symposium", pages = "366-381", year = 1995, url = "citeseer.nj.nec.com/serrano95bigloo.html" } @misc{ Serrano1995FreshInlining, author = "M. Serrano", title = "A fresh look to inlining decision", text = "M. Serrano. A fresh look to inlining decision. In 4th International Computer Symposium (ICS'95), Mexico city, Mexico, November 1995.", year = 1995, url = "citeseer.nj.nec.com/serrano95fresh.html" } @inproceedings{ Serrano1997InlineExpansion, author = "Manuel Serrano", title = "Inline expansion: when and how?", booktitle = "Proceedings of the conference on Programming Languages, Implementation and Logic Programming.", address = "Shouthampton", pages = 15, year = 1997, url = "citeseer.nj.nec.com/serrano97inline.html" } @Article{ serrano:jfp00, author = {Manuel Serrano}, title = {{B}ee: an {I}ntegrated {D}evelopment {E}nvironment for the {S}cheme {P}rogramming {L}anguage}, journal = JFP, year = 2000, month = may, volume = 10, number = 2, pages = {1--43} } @inproceedings{shields01object-oriented, author = {Mark Shields and Simon Peyton Jones}, title = {Object-Oriented Style Overloading for Haskell}, booktitle = {Electronic Notes in Theoretical Computer Science}, volume = 59, issue = 1, publisher = {Elsevier}, editor = {Nick Benton and Andrew Kennedy}, year = 2001 } @techreport{Shivers1996SupportingDynamic, author = "Olin Shivers", title = "Supporting dynamic languages on the {Java} virtual machine", number = "AIM-1576", institution = MITAI, pages = 9, year = 1996, url = "citeseer.nj.nec.com/shivers96supporting.html" } @techreport{ siskind91screamer, author = "Jeffrey Mark Siskind and David Allen McAllester", title = "Screamer: {A} Portable Efficient Implementation of Nondeterministic Common Lisp", number = "IRCS-93-03", address = "Philadelphia, PA", year = 1991, url = "citeseer.nj.nec.com/siskind93screamer.html" } @inproceedings{ siskind93nondeterministic, author = "Jeffrey Mark Siskind and David Allen McAllester", title = "Nondeterministic Lisp as a Substrate for Constraint Logic Programming", booktitle = "Proceedings of the Eleventh National Conference on Artificial Intelligence", publisher = "AAAI Press", address = "Menlo Park, California", editor = "Richard Fikes and Wendy Lehnert", year = 1993, url = "citeseer.nj.nec.com/siskind93nondeterministic.html" } @incollection{ smolka95:oz-programming:inc, author = {Gert Smolka}, title = {The {Oz} Programming Model}, booktitle = {Computer Science Today: Recent Trends and Developments}, publisher = SV, year = 1995, address = {Berlin}, editor = {Jan van Leeuwen}, pages = {324-343}, isbn = {3-540-60105-8}, series = {Lecture Notes in Computer Science}, volume = 1000, url = {citeseer.nj.nec.com/smolka95oz.html}, url = {ftp://ftp.ps.uni-sb.de/pub/papers/ProgrammingSysLab/volume1000.ps.gz} } @techreport{ snyder90setl, author = "W. Kirk Snyder", title = "The {SETL2} Programming Language", number = 490, address = "251 Mercer St., New York, NY", year = 1990, institution = "New York University", url = "citeseer.nj.nec.com/snyder90setl.html" } @PhdThesis{steele80phd, author = {Guy L. {Steele, Jr.}}, title = {The Definition and Implementation of a Computer Programming Language Based on Constraints}, school = MIT, year = 1980, month = aug, note = {Published as MIT-AI TR 595} } @Book{steele90cl, author = {Guy Lewis Steele}, title = {Common Lisp: The Language}, publisher = {Digital Press}, year = 1990, address = {Badford, Massachusetts}, edition = {second} } @Book{Stroustrup1986Cplusplus, author = {Bjarne Stroustrup}, title = {The C++ Programming Language}, publisher = AW, year = 1986, address = {New York} } @Article{sussman80constraints, author = {G. J. Sussman and G. L. Steele}, title = {CONSTRAINTS: A Language for Expressing Almost-Hierarchical Descriptions}, journal = {Artificial Intelligence 14}, year = 1980, pages = {1--39} } @InProceedings{sutherland63sketchpad, author = {Ivan Sutherland}, title = {Sketchpad: A man-machine graphical communications system}, booktitle = {Proceedings of the Spring Joint Computer Conference}, pages = {329--345}, year = 1963, series = {IFIPS} } @inproceedings{ Talpin1992TypeEffectDiscipline, author = "Jean-Pierre Talpin and Pierre Jouvelot", title = "The Type and Effect Discipline", booktitle = "Seventh Annual {IEEE} Symposium on Logic in Computer Science, Santa Cruz, California", publisher = "IEEE Computer Society Press", address = "Los Alamitos, California", pages = "162--173", year = 1992, url = "citeseer.nj.nec.com/article/talpin93type.html" } @misc{ Tammet-LambdaLifting, Author = "T. Tammet", title = "Lambda-lifting as an optimization for compiling {Scheme} to {C}", text = "Tanel Tammet. Lambda-lifting as an optimization for compiling scheme to C. Available from \url{ftp://www.cs.chalmers.edu/pub/users/tammet/www/hobbit.ps.}", url = "citeseer.nj.nec.com/14308.html" } @Article{Tarditi1992NoAsm, author = {David Tarditi and Peter Lee and Anurag Acharya}, title = {No Assembly Required: Compiling {Standard} {ML} to {C}}, journal = {ACM Letters on Programming Languages and Systems}, year = 1992, volume = 1, number = 2, pages = {161--177}, month = jun } @InProceedings{vanWeelden2002FunctionalOS, author = {Arjen van Weelden and Rinus Plasmeijer}, title = {Towards a Strongly Typed Functional Operating System}, booktitle = {Selected Papers Proceedings 14th International Workshop on the Implementation of Functional Languages, IFL 2002}, year = 2002, volume = 2670, series = LNCS, address = {Madrid, Spain}, month = sep # " 16--18" } @InProceedings{vanWeelden2002FunctionalShell, author = {Arjen {van Weelden} and Rinus Plasmeijer}, title = {A Functional Shell that Dynamically Combines Compiled Code}, booktitle = {Proceedings of the 15th International Workshop on the Implementation of Functional Languages, IFL 2003}, year = 2004, series = LNCS, volume = 3145, address = {Scotland}, publisher = SV } @article{ Vene1998FunctionalApomorphisms, AUTHOR = "Varmo Vene and Tarmo Uustalu", TITLE = "Functional Programming with Apomorphisms (Corecursion)", JOURNAL = "Proceedings of the Estonian Academy of Sciences: Physics, Mathematics", VOLUME = 47, NUMBER = 3, SPECIAL = "Selected Papers 9th Nordic Workshop on Programming Theory, NWPT'97, Tallinn, Estonia, 15--17 Oct 1997", PAGES = "147--161", YEAR = 1998, url = "citeseer.ist.psu.edu/vene98functional.html" } @TechReport{Vranic2000Multiparadigm, author = {V. Vrani{\'c}}, title = {Towards Multi-Paradigm Software Development}, institution = {University of Bratislava}, year = 2000 } @inproceedings{Waddell1999Extending, author = "Oscar Waddell and R. Kent Dybvig", title = "Extending the Scope of Syntactic Abstraction", booktitle = "Conference Record of {POPL} 99: The 26th {ACM} {SIGPLAN}-{SIGACT} Symposium on Principles of Programming Languages, San Antonio, Texas", address = "New York, NY", pages = "203--213", year = 1999, url = "citeseer.nj.nec.com/waddell99extending.html" } @inproceedings{Walker2001Regions, author = "David Walker and Kevin Watkins", title = "On Regions and Linear Types", booktitle = "International Conference on Functional Programming", pages = "181--192", year = 2001, url = "citeseer.nj.nec.com/428346.html" } @inproceedings{Walker1999InitialAOP, author = "Robert J. Walker and Elisa L. A. Baniassad and Gail C. Murphy", title = "An Initial Assessment of Aspect-Oriented Programming", booktitle = "International Conference on Software Engineering", pages = "120-130", year = 1999, url = "citeseer.nj.nec.com/article/walker98initial.html" } @Article{Wallace1998CP, author = {Mark Wallace}, title = {Constraint Programming}, journal = {The Handbook of Applied Expert Systems}, year = 1998, publisher = {CRC Press} } @InProceedings{Wilk1991Equate, author = {M. R. Wilk}, title = {Equate: An Object-Oriented Constraint Solver}, booktitle = {OOPSLA '91}, pages = {286--298}, year = 1991 } @Misc{Wilson2003SchemeIntro, author = {Paul R. Wilson}, title = {An Introduction to {Scheme} and its Implementation}, howpublished = {World Wide Web}, month = feb, year = 2003, note = {\url{http://www.cs.utexas.edu/users/wilson/schintro/schintro\_toc.html}, last visited: 2003-02-24} } @Article{Wilson1993HierarchicalCP, author = {Molly Wilson and Alan Borning}, title = {Hierarchical Constraint Programming}, journal = {Journal of Logic Programming}, year = 1993, volume = 16, number = {3 \& 4}, pages = {277--318}, month = aug } @TechReport{Wilson1994HCLP, author = {Molly Wilson and Alan Borning}, title = {Hierarchical Constraint Logic Programming}, institution = {Department of Computer Science and Engineering, University of Washington}, year = 1993, number = {93-01-02a}, month = may } @book{Wirth1985Modula2, author = "Niklaus Wirth", title = "Programming in Modula-2", publisher = SV, year = 1985, edition = "3rd" } @InProceedings{Zhou1998DJ, author = {Neng-Fa Zhou and Sousuke Kaneko and Kouji Yamauchi}, title = {{DJ}: A {Java}-based Constraint Language and System}, booktitle = {JSSST}, year = 1998 } @InProceedings{Boehm2003Destructors, author = {Hans-J. Boehm}, title = {Destructors, Finalizers, and Synchronization}, booktitle = {SIGPLAN-SIGACT Symposium on Principles of Programming Languages,}, year = 2003, address = {New Orleans, LA}, month = jan } @InProceedings{Nielson1999TypeEffectSystems, author = {Flemming Nielson and Hanne Riis Nielson}, title = {Type and Effect Systems}, booktitle = {Correct System Design}, pages = {114--136}, year = 1999 } @Book{ECMA2005CSharp, author = {{ECMA International}}, title = {{Standard ECMA-334: C\# Language Specification}}, month = jun, edition = {3rd}, year = 2005 } @Book{ECMA2005CommonLanguageInfrastructure, author = {{ECMA International}}, title = {{Standard ECMA-334: Common Language Infrastructure (CLI)}}, month = jun, edition = {3rd}, year = 2005 } @Book{Nelson1991Modula3, editor = {G. Nelson}, title = {Systems Programming in Modula-3}, publisher = PH, year = 1991 } @Book{Amtoft1999TypeEffectSystems, author = {Torben Amtoft and Flemming Nielson and Hanne Riis Nielson}, title = {Type and Effect Systems -- Behaviours for Concurrency}, publisher = {Imperial College Press}, year = 1999 } @Article{Nielson1996AnnotatedTES, author = {Flemming Nielson}, title = {Annotated Type and Effect Systems}, journal = {ACM Computing Surveys}, year = 1996, volume = 28, number = 2, pages = {344--345} } @inproceedings{Jouvelot1989ContinuationsControl, author = {P. Jouvelot and D. K. Gifford}, title = {Reasoning about continuations with control effects}, booktitle = {Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation}, year = 1989, isbn = {0-89791-306-X}, pages = {218--226}, location = {Portland, Oregon, United States}, doi = {http://doi.acm.org/10.1145/73141.74837}, publisher = ACM } @article{Tofte1998RegionInference, author = {Mads Tofte and Lars Birkedal}, title = {A region inference algorithm}, journal = {ACM Trans. Program. Lang. Syst.}, volume = 20, number = 4, year = 1998, issn = {0164-0925}, pages = {724--767}, doi = {http://doi.acm.org/10.1145/291891.291894}, publisher = ACM } @article{Wright1997SoftType, author = {Andrew K. Wright and Robert Cartwright}, title = {A practical soft type system for {Scheme}}, journal = {ACM Trans. Program. Lang. Syst.}, volume = 19, number = 1, year = 1997, issn = {0164-0925}, pages = {87--152}, doi = {http://doi.acm.org/10.1145/239912.239917}, publisher = ACM, } @inproceedings{Tofte1994Implementing, author = {Mads Tofte and Jean-Pierre Talpin}, title = {Implementation of the typed call-by-value $\lambda$-calculus using a stack of regions}, booktitle = {Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages}, year = 1994, isbn = {0-89791-636-0}, pages = {188--201}, location = {Portland, Oregon, United States}, doi = {http://doi.acm.org/10.1145/174675.177855}, publisher = ACM, } @inproceedings{Tang1995EffectSystemsSubtyping, author = {Yan Mei Tang and Pierre Jouvelot}, title = {Effect systems with subtyping}, booktitle = {Proceedings of the 1995 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation}, year = 1995, isbn = {0-89791-720-0}, pages = {45--53}, location = {La Jolla, California, United States}, doi = {http://doi.acm.org/10.1145/215465.215552}, publisher = ACM, } @TechReport{Steele1979LambdaOpcode, author = {Guy Lewis {Steele Jr.} and Gerald Jay Sussman}, title = {Design of LISP-Based Processors or, SCHEME: A Dielectric LISP or, Finite Memories Considered Harmful or, LAMBDA: The Ultimate Opcode}, institution = {Massachusetts Institute of Technology, Artificial Intelligence Laboratory}, year = 1979, type = {AI Memo}, number = 514, month = {March} } @InProceedings{Cheadle2004ExploringBarrier, author = {Andy Cheadle and Tony Field and Simon Marlow and Simon Peyton Jones and Lyndon While}, title = {Exploring the Barrier to Entry: Incremental Generational Garbage Collection for Haskell}, booktitle = {ISMM'04}, year = 2004, annote = {Submitted} } @PhdThesis{Sabry1994PhD, author = {Amr Sabry}, title = {The Formal Relationship between Direct and Continuation-passing Style Optimizing Compilers: A Synthesis of Two Paradigms}, school = {Rice University}, year = 1994 } @InProceedings{Hallenberg2002Combining, author = "Niels Hallenberg and Martin Elsman and Mads Tofte", title = "Combining Region Inference and Garbage Collection", booktitle = "ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'02)", year = 2002, publisher = ACM, note = "Berlin, Germany", month = jun } @InProceedings{Elsman1999StaticInterpretation, author = {Martin Elsman}, title = {Static Interpretation of Modules}, booktitle = {Fourth International Conference on Functional Programming}, year = 1999, address = {Paris, France}, month = sep } @inproceedings{Hermann2001SizeInference, author = {Christoph A. Herrmann and Christian Lengauer}, title = {A Transformational Approach which Combines Size Inference and Program Optimization}, editor = {Walid Taha}, series = LNCS, volume = 2196, pages = {199--218}, booktitle = {Semantics, Applications, and Implementation of Program Generation (SAIG'01)}, year = 2001, publisher = SV } @Article{Scholz2003SAC, author = {Sven-Bodo Scholz}, title = {Single Assignment C -- Efficient Support for High-level Array Operations in a Functional Setting}, journal = {Journal of Functional Programming}, year = 2003, volume = 13, number = 6, pages = {1005--1059} } @UNPUBLISHED{Leijen2005Fclabels, author = {Leijen, Daan}, title = {First-class labels for extensible rows}, note = {Submitted to the 32nd annual {ACM SIGPLAN-SIGACT} Symposium on Principles of Programming Languages ({POPL}'05)}, month = jan, year = 2005 } @INPROCEEDINGS{Leijen2004wxHaskell, author = {Daan Leijen}, title = {wxHaskell -- A portable and concise {GUI} library for {Haskell}}, booktitle = {{ACM SIGPLAN} Haskell Workshop ({HW'04})}, year = 2004, month = sep, publisher = ACM, location = {Snowbird, Utah} } @Misc{JSR-175, author = {{Sun Microsystems}}, title = {A Program Annotation Facility for the {Java}\texttrademark{} Programming Language ({JSR-175} public draft specification)}, howpublished = {WWW}, year = 2002 } @InProceedings{Grelck1995IOinSAC, author = {Clemens Grelck and Sven-Bodo Scholz}, title = {Classes and Objects as Basis for {I/O} in {SAC}}, booktitle = {Proceedings of the 7th International Workshop on Implementation of Functional Languages (IFL'95)}, pages = {30--44}, year = 1995, address = {Bastad, Sweden}, organization = {Chalmers University of Technology} } @Book{Nielson1999ProgramAnalysis, author = {Flemming Nielson and Hanne Riis Nielson and Chris Hankin}, title = {Principles of Program Analysis}, publisher = SV, year = 1999 } @MISC{Brunklaus2002MultiVM, title = {A Virtual Machine for Multi-Language Execution}, year = 2002, author = {Thorsten Brunklaus and Leif Kornstaedt}, abstract = "This paper presents the architecture of a virtual machine designed specifically for the execution of multiple languages, which we call SEAM. The architecture consists of a number of generic components, usable by all languages, and of a number of interfaces for which implementations have to be provided by language implementors. Our contribution is the identification of the generic services and the clean design for the parameterization over their language-specific aspects. The goal of SEAM is to provide both for ample reuse and simple language implementation, concerning both compilers and runtime components, and to be a platform for language interoperation. We have implemented a prototype version of SEAM and validated it with two language implementations. We present a full running implementation of Alice and a naive implementation of a Java Virtual Machine running on SEAM. The paper presents first implementation effort and performance results for the prototype.", month = nov, howpublished = "Submitted", project-key = {MI6}, label = {multivm} } @techreport{Steele1978Rabbit, author = {Guy L. {Steele, Jr.}}, title = {Rabbit: A Compiler for Scheme}, year = 1978, number = {AIM-474}, publisher = {Massachusetts Institute of Technology}, } @PhdThesis{Wang2001Managing, author = {Daniel C. Wang}, title = {Managing Memory with Types}, school = {Princeton University}, year = 2001, month = dec } @Unpublished{Wang2002RecursionSchemes, author = {Daniel C. Wang and Tom {Murphy VII}}, title = {Programming with Recursion Schemes}, note = {Draft paper}, year = 2002 } @InProceedings{Wang2001TypePreserving, author = {Daniel C. Wang and Andrew W. Appel}, title = {Type-Preserving Garbage Collectors}, booktitle = {28th Annual ACM SIGPLAN -- SIGACT Symposium on Principals of Programming Languages}, pages = {166-178}, year = 2001, month = jan, publisher = ACM } @PhdThesis{Chitil2000Deforestation, author = {Olaf Chitil}, title = {Type-Inference Based Deforestation of Functional Programs}, school = {RWTH Aachen}, year = 2000 } @TechReport{Wansborough1998OnceUponPolyType, author = {Keith Wansbrough and Simon Peyton Jones}, title = {Once Upon a Polymorphic Type}, institution = {University of Glasgow}, year = 1998, number = {TR-1998-19} } @inproceedings{PeytonJones1996LetFLoating, author = {Simon {Peyton Jones} and Will Partain and Andr{\'e} Santos}, title = {Let-floating: moving bindings to give faster programs}, booktitle = {Proceedings of the first ACM SIGPLAN International Conference on Functional Programming}, year = 1996, isbn = {0-89791-770-7}, pages = {1--12}, location = {Philadelphia, Pennsylvania, United States}, doi = {http://doi.acm.org/10.1145/232627.232630}, publisher = ACM } @article{Appel1998SSAisFP, author = {Andrew W. Appel}, title = {{SSA is Functional Programming}}, journal = SIGPLAN, volume = 33, number = 4, year = 1998, issn = {0362-1340}, pages = {17--20}, doi = {http://doi.acm.org/10.1145/278283.278285}, publisher = ACM } @techreport{Appel1994Loop, author = {Andrew W. Appel}, title = {{Loop Headers in Lambda-Calculus or {CPS}}}, number = {TR-460-94}, institution = {Princeton University}, pages = {8 pages}, year = 1994, url = {citeseer.ist.psu.edu/appel94loop.html} } @article{Steckler1997Lightweight, author = {Paul A. Steckler and Mitchell Wand}, title = {Lightweight closure conversion}, journal = {ACM Trans. Program. Lang. Syst.}, volume = 19, number = 1, year = 1997, issn = {0164-0925}, pages = {48--86}, doi = {http://doi.acm.org/10.1145/239912.239915}, publisher = {ACM Press}, address = {New York, NY, USA}, } @PhdThesis{Tarditi1996PhD, author = {David Tarditi}, title = {Design and Implementation of Code Optimiziations for a Type-Directed Compiler for Standard ML}, school = {School of Computer Science, Carnegie Mellon University}, year = 1996, month = dec, note = {Available as Technical Report CMU-CS-97-108} } @article{ Danvy2000LambdaDropping, author = "Olivier Danvy and Ulrik P. Schultz", title = "Lambda-dropping: transforming recursive equations into programs with block structure", journal = "Theoretical Computer Science", volume = 248, number = "1--2", pages = "243--287", year = 2000, url = "citeseer.ist.psu.edu/danvy99lambdadropping.html" } @Book{Stallman2003UsingGCC, author = {Richard M. Stallman and {the GCC Developer Community}}, title = {Using GCC: The GNU Compiler Collection Reference Manual}, publisher = {GNU Press}, year = 2003 } @mastersthesis{Bauer2003CompilationGCC, author = {Andreas Bauer}, title = {{Compilation of Functional Programming Languages using GCC\,---\,Tail Calls}}, year = 2003, school = {Department of Informatics, Munich University of Technology}, address = {Munich, Germany}, url = {http://home.in.tum.de/~baueran/thesis/} } @article{Baker1992ConsShould1, author = {Henry G. Baker}, title = {CONS should not CONS its arguments, or, a lazy alloc is a smart alloc}, journal = {SIGPLAN Notices}, volume = 27, number = 3, year = 1992, issn = {0362-1340}, pages = {24--34}, doi = {http://doi.acm.org/10.1145/130854.130858}, publisher = ACM } @article{Baker1995ConsShould2, author = {Henry G. Baker}, title = {CONS should not CONS its arguments, part II: Cheney on the M.T.A.}, journal = {SIGPLAN Notices}, volume = 30, number = 9, year = 1995, issn = {0362-1340}, pages = {17--20}, doi = {http://doi.acm.org/10.1145/214448.214454}, publisher = ACM } @Misc{Winkelmann2004ChickenHomepage, author = {Felix L. Winkelmann}, title = {{Chicken Scheme Compiler Homepage}}, howpublished = {Available from: \url{http://www.call-with-current-continuation.org}}, year = 2004 } @article{Kelsey1993CPSandSSA, author = {Richard A. Kelsey}, title = {A correspondence between continuation passing style and static single assignment form}, journal = {SIGPLAN Notices}, volume = 30, number = 3, year = 1993, issn = {0362-1340}, pages = {13--22}, doi = {http://doi.acm.org/10.1145/202530.202532}, publisher = ACM } @article{Wegman1991ConstantPropagation, author = {Mark N. Wegman and F. Kenneth Zadeck}, title = {Constant propagation with conditional branches}, journal = {ACM Trans. Program. Lang. Syst.}, volume = 13, number = 2, year = 1991, issn = {0164-0925}, pages = {181--210}, doi = {http://doi.acm.org/10.1145/103135.103136}, publisher = ACM } @article{Cytron1991EfficientSSA, author = {Ron Cytron and Jeanne Ferrante and Barry K. Rosen and Mark N. Wegman and F. Kenneth Zadeck}, title = {Efficiently computing static single assignment form and the control dependence graph}, journal = {ACM Trans. Program. Lang. Syst.}, volume = 13, number = 4, year = 1991, issn = {0164-0925}, pages = {451--490}, doi = {http://doi.acm.org/10.1145/115372.115320}, publisher = ACM } @inproceedings{Alpern1988DetectingEquality, author = {B. Alpern and M. N. Wegman and F. K. Zadeck}, title = {Detecting equality of variables in programs}, booktitle = {Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages}, year = 1988, isbn = {0-89791-252-7}, pages = {1--11}, location = {San Diego, California, United States}, doi = {http://doi.acm.org/10.1145/73560.73561}, publisher = ACM } @PHDTHESIS{Gomard1991AnalysisMatters, AUTHOR = {Carsten K. Gomard}, TITLE = {Program Analysis Matters}, SCHOOL = {DIKU, University of Copenhagen}, YEAR = 1991, ADDRESS = {Denmark}, NOTE = {also DIKU Rapport 91/17} } @PHDTHESIS{Sestoft1991AnalysisImplementationFP, AUTHOR = {Peter Sestoft}, TITLE = {Analysis and Efficient Implementation of Functional Programs}, SCHOOL = {DIKU, University of Copenhagen}, YEAR = 1991, ADDRESS = {Denmark}, NOTE = {also DIKU Rapport } } @inproceedings{Acar2002AdaptiveFP, author = "Umut A. Acar and Guy E. Blelloch and Robert Harper", title = {{Adaptive Functional Programming}}, booktitle = "Symposium on Principles of Programming Languages", pages = "247-259", year = 2002, url = "citeseer.ist.psu.edu/acar01adaptive.html" } @misc{Hinze2001TypeIndexed, author = {R. Hinze and J. Jeuring and A. L{\"o}h}, title = "Type-indexed datatypes", text = "Unpublished, 2001. http://www.cs.uu.nl/~johanj/publications/tidata.ps.", year = 2001, url = "citeseer.ist.psu.edu/article/hinze01typeindexed.html" } @PhdThesis{Maessen2002PhD, author = {Jan-Willem Maessen}, title = {Hybrid Eager and Lazy Evaluation for Efficient Compilation of Haskell}, school = {Massachusetts Institute of Technology}, year = 2002, month = jun } @PhdThesis{Dube2002PhD, author = {Danny Dub{\'e}}, title = {Demand-Driven Type Analysis for Dynamically-Typed Functional Languages}, school = {Universit{\'e} de Montr{\'e}al}, year = 2002, month = aug } @phdthesis{Shivers1991PhD, author = "Olin Shivers", title = "Control-Flow Analysis of Higher-Order Languages", year = 1991, school = {School of Computer Science, Carnegie Mellon University} } @TechReport{Siskind1999FlowDirected, author = {Jeffrey Mark Siskind}, title = {Flow-Directed Lightweight Closure Conversion}, institution = {NEC Research Institute}, year = 1999, number = {99-190R}, month = dec } @PhdThesis{Boquist1999PhD, author = {Urban Boquist}, title = {Code Optimisation Techniques for Lazy Functional Languages}, school = {Chalmers University of Technology}, year = 1999, address = {Gothenburg}, month = apr } @MastersThesis{Boquist1995Licentiate, author = {Urban Boquist}, title = {Interprocedural Register Allocation for Lazy Functional Languages}, school = {Department of Computing Science, Chalmers University of Technology}, year = 1995, type = {Licentiate thesis} } @Book{Thompson1991TypeTheory, author = {Simon Thompson}, title = {Type Theory and Functional Programming}, publisher = AW, year = 1991 } @PhdThesis{Schulte1992PhD, author = {Wolfram Schulte}, title = {Effiziente und korrekte {\"U}bersetzung strikter applikativer Programmiersprachen}, school = {Technische Universit{\"a}t Berlin}, year = 1992 } @InProceedings{Schulte1992PortableEfficient, author = {Wolfram Schulte and Wolfgang Grieskamp}, title = {Generating Portable and Efficient Code for a Strict Applicative Language}, booktitle = {Declarative Programming}, year = 1992, editor = {J. Darlington and R. Dietrich} } @PhdThesis{Rountev2002PhD, author = {Atanas Rountev}, title = {Dataflow Analysis of Software Fragments}, school = {Rutgers University}, year = 2002, month = apr, note = {Also as Technical Report DCS-TR-501} } @phdthesis{Didrich2001PhD, author = "Klaus Didrich", title = "Integration of Verification and Testing into Compilation Systems -- Concept and Case Study", abstract = "In this thesis we present a compiler architecture that enables the compiler to check the correctness of the source code \emph{as part of the compilation process}. It allows to perform these correctness checks with \emph{different} methods, in particular formal testing and formal proof. \par A fully automated check is very expensive and often impossible. Hence, it is not feasible to check correctness automatically with the help of specification and implementation. We extend the programming language by (correctness) \emph{justifications} that the user must insert into the source code (``\emph{literate justification}''). Depending on the chosen justification method the user must work out the justification in more or less detail. The introduction of justifications changes the compiler's task from deriving a correctness proof by itself to \emph{checking a correctness proof} provided by the user. \par The correctness check for justifications can be integrated into the compiler or delegated to an external tool. An external tool allows the integration of existing tools but the development of specialized tools is also possible. The example development of a specialized tactical theorem-prover shows that the development of a specialized tool is not necessarily more expensive than the adaptation of an existing tool. \par For test execution during the compilation an \emph{interpreter} must be available. The execution of untested code causes \emph{security risks}. We discuss different possibilities to deal with this problem. \par The \emph{correctness} of a compilation unit corresponds to the \emph{consistency of an algebraic specification}. We study two proof methods: either by construction of a model or by establishing a correctness-preserving relation. The proof obligations result from the proof method, in addition proof obligations are introduced to ensure the correctness of modular programs. \par The compiler architecture described in this thesis has been \emph{prototypically implemented}. The \textsc{opal} system has been extended with language elements to denote specifications and (correctness) justifications. The thesis presents some short examples. The \textsc{opal/j} prototype is part of the \textsc{opal} distribution since version \texttt{2.3e}.", month = "November", school = "Technische Universit{\"a}t Berlin", url = "http://uebb.cs.tu-berlin.de/~kd/integration-of-verification-and-testing.pdf", year = 2001 } @PhdThesis{Maeder2001PhD, author = {Christian Maeder}, title = {Zur Kontextanalyse einer algebraischen Programmiersprache}, school = {Technische Universit{\"a}t Berlin}, year = 2001, month = jun } @PhdThesis{Bohlmann2001PhD, author = {Karsten Bohlmann}, title = {Modeling Interaction and Causality: A Two-Level Declarative Approach}, school = {Technische Universit{\"a}t Berlin}, year = 1998, month = feb } @PhdThesis{Diwan1997UnderstandingModern, author = "Amer Suleman Diwan", title = "Understanding and improving the performance of modern programming languages", text = "DIWAN, A. 1997. Understanding and improving the performance of modern programming languages. Ph.D. thesis, University of Massachusetts at Amherst.", year = 1997, school = {University of Massachusetts Amherst}, month = feb, url = "citeseer.ist.psu.edu/diwan97understanding.html" } @InProceedings{Mock2001DynamicPointsTo, author = {Markus Mock and Manuvir Das and Craig Chambers and Susan J. Eggers}, title = {Dynamic Points-To Sets: A Comparison with Static Analyses and Potential Applications in Program Understanding and Optimization}, booktitle = {proceedings of the ACM SIGPLAN SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE'01)}, pages = {66--72}, year = 2001, month = jun, publisher = ACM } @Article{Grant2000DyC, author = {Brian Grant and Markus Mock and Matthai Philipose and Craig Chambers and Susan J. Eggers}, title = {{DyC}: An Expressive Annotation-Directed Dynamic Compiler for {C}}, journal = {Theoretical Computer Science}, year = 2000, volume = 248, number = {1--2}, pages = {147--199}, month = oct } @InProceedings{Mock2003BottomUp, author = {Markus Mock}, title = {Dynamic Analysis from the Bottom Up}, booktitle = {ICSE 2003 Workshop on Dynamic Analysis (WODA 2003)}, year = 2003, address = {Portland, Oregon}, month = may } @PhdThesis{Mock2002PhD, author = {Markus Mock}, title = {Automating Selective Dynamic Compilation}, school = {University of Washington}, year = 2002, month = aug } @inproceedings{Launchbury1993NaturalSemantics, author = {John Launchbury}, title = {A natural semantics for lazy evaluation}, booktitle = {Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages}, year = 1993, isbn = {0-89791-560-7}, pages = {144--154}, location = {Charleston, South Carolina, United States}, doi = {http://doi.acm.org/10.1145/158511.158618}, publisher = ACM } @InProceedings{Leroy1997Effectiveness, author = {Xavier Leroy}, title = {The Effectiveness of Type-based Unboxing}, booktitle = {Workshop on Types in Compilation}, year = 1997, address = {Amsterdam, The Netherlands}, month = jun, organization = {ACM SIGPLAN}, note = {Published as Boston College Computer Science Dept. Technical Report BCCS-97-03} } @PhdThesis{Laumann1997PhD, author = {Oliver Laumann}, title = {The Scheme Language as the Foundation for a Reusable Extension Language Kit}, school = {Technische Universit{\"a}t Berlin}, year = 1997 } @article{Aho1976Optimal, author = {A. V. Aho and S. C. Johnson}, title = {Optimal Code Generation for Expression Trees}, journal = {J. ACM}, volume = 23, number = 3, year = 1976, issn = {0004-5411}, pages = {488--501}, doi = {http://doi.acm.org/10.1145/321958.321970}, publisher = ACM, } @INPROCEEDINGS{Hirschowitz-Leroy-Wells-rec, AUTHOR = {Tom Hirschowitz and Xavier Leroy and J. B. Wells}, TITLE = {Compilation of extended recursion in call-by-value functional languages}, BOOKTITLE = {International Conference on Principles and Practice of Declarative Programming}, YEAR = 2003, PAGES = {160--171}, PUBLISHER = ACM, URL = {http://pauillac.inria.fr/~xleroy/publi/compil-recursion.pdf}, ABSTRACT = {This paper formalizes and proves correct a compilation scheme for mutually-recursive definitions in call-by-value functional languages. This scheme supports a wider range of recursive definitions than standard call-by-value recursive de nitions. We formalize our technique as a translation scheme to a lambda-calculus featuring in-place update of memory blocks, and prove the translation to be faithful.} } @inproceedings{Auslander1982OverviewPL8, author = {Marc Auslander and Martin Hopkins}, title = {An overview of the PL.8 compiler}, booktitle = {Proceedings of the 1982 SIGPLAN symposium on Compiler construction}, year = 1982, isbn = {0-89791-074-5}, pages = {22--31}, location = {Boston, Massachusetts, United States}, publisher = ACM } @InProceedings{Broberg2004RegularExpPatterns, author = {Niklas Broberg and Andreas Farre and Josef Svenningsson}, title = {Regular Expression Patterns}, booktitle = {Proceedings of the International Conference on Functional Programming (ICFP'04)}, year = 2004 } @Misc{Palsberg199BindingTimeAnalysis, author = {Jens Palsberg and Michael I. Schwartzbach}, title = {Binding Time Analysis: Abstract Interpretation versus Type Inference}, month = apr, year = 1992 } @inproceedings{PeytonJones1982Investigation, author = {{Simon L.} {Peyton Jones}}, title = {An investigation of the relative efficiencies of combinators and lambda expressions}, booktitle = {Proceedings of the 1982 ACM Symposium on LISP and Functional Programming}, year = 1982, isbn = {0-89791-082-6}, pages = {150--158}, location = {Pittsburgh, Pennsylvania, United States}, publisher = ACM, } @TechReport{Stallman1980PhantomStacks, author = {Richard M. Stallman}, title = {Phantom Stacks: If You Look Too Hard, They Aren't There}, institution = MITAI, year = 1980, number = {AIM-556}, month = jul } @InProceedings{Zee2002WriteBarrier, author = {Karen Zee and Martin Rinard}, title = {Write Barrier Removal by Static Analysis}, booktitle = {OOPSLA 2002}, year = 2002 } @techreport{Bawden1993ImplementingDistributed, author = "Alan Bawden", title = "Implementing Distributed Systems Using Linear Naming", number = "AITR-1627", pages = 156, year = 1993, url = "citeseer.ist.psu.edu/bawden93implementing.html" } @Article{Suganuma2000IBMJIT, author = {T. Suganuma and T. Ogasawara and M. Takeuchi and T. Yasue and M. Kawahito and K. Ishizaki and H. Komatsu and T. Nakatani}, title = {{Overview of the IBM Java Just-in-Time Compiler}}, journal = {IBM Systems Journal}, year = 2000, volume = 39, number = 1, pages = {175--193} } @InProceedings{Qian2004DynamicAnalysis, author = {Feng Qian and Laurie Hendren}, title = {{Towards Dynamic Interprocedural Analysis in JVMs}}, booktitle = {VM 2004}, year = 2004, address = {San Jose, USA}, month = may } @PhdThesis{Gagnon2002PhD, author = {Etienne Gagnon}, title = {A Portable Research Framework for the Execution of Java Bytecodes}, school = {School of Computer Science, McGill University, Montreal}, year = 2002, month = dec } @TechReport{Elliott1999ImageMan, author = {Conal Elliott, Sigbjorn Finne and Oege de Moor}, title = {Efficient Image Manipulation via Run-time Compilation}, institution = {Microsoft Research}, year = {1999}, OPTkey = {}, OPTtype = {}, number = {TR-99-82}, OPTaddress = {}, OPTmonth = {}, OPTnote = {}, OPTannote = {} } @Article{Wakeling1998DynCompLazy, author = {David Wakeling}, title = {The dynamic compilation of lazy functional programs}, journal = {Journal of Functional Programming}, year = 1998, volume = 8, number = 1, pages = {61--81}, month = jan } @InProceedings{Engler1996vcode, author = {Dawson R. Engler}, title = {vcode: A Retargetable, extensible, Very Fast Dynamic Code Generation System}, booktitle = {SIGPLAN Conference on Programming Language Design and Implementation}, year = 1996, address = {Philadelphia, PA}, month = may } @inproceedings{PSSC04, author = {Andr{\'e} Pang and Don Stewart and Sean Seefried and Manuel M. T. Chakravarty}, title = {Plugging Haskell in}, booktitle = {Proceedings of the ACM SIGPLAN workshop on Haskell}, year = 2004, isbn = {1-58113-850-4}, pages = {10--21}, location = {Snowbird, Utah, USA}, doi = {http://doi.acm.org/10.1145/1017472.1017478}, publisher = ACM, } @Misc{Bracha2004JavaGenerics, author = {Gilad Bracha}, title = {Generics in the Java Programming Language}, month = jul, year = 2004 } @inproceedings{62717, author = {G. L. Burn and S. L. Peyton Jones and J. D. Robson}, title = {The spineless {G}-machine}, booktitle = {Proceedings of the 1988 ACM conference on LISP and functional programming}, year = 1988, isbn = {0-89791-273-X}, pages = {244--258}, location = {Snowbird, Utah, United States}, doi = {http://doi.acm.org/10.1145/62678.62717}, publisher = ACM, } @Article{Banatre1993Multiset, author = {Jean-Pierre Banatre and Daniel Le M{\'e}tayer}, title = {Programming with Multiset Transformation}, journal = {Communications of the ACM}, year = 1993, volume = 36, number = 1, pages = {98--111}, month = jan } @InProceedings{Berry1990Chemical, author = {G{\'e}rard Berry and G{\'e}rard Boudol}, title = {The Chemical Abstract Machine}, booktitle = {Seventeenth Annual ACM Symposium on Principles of Programming Languages}, pages = 81, year = 1990, address = {San Francisco, California}, month = jan, publisher = ACM } @Misc{SouthernStorm2004libjit, author = {{Southern Storm Software, Pty Ltd}}, title = {{Just-In-Time Compiler Library}}, howpublished = {Available from: \url{http://www.southern-storm.com.au/libjit.html}}, year = 2004 } @Misc{DotGNU2004DotGNU, author = {{DotGNU Project}}, title = {{DotGNU Project/Portable.NET}}, howpublished = {Available from: \url{http://dotgnu.org}}, note = {Last visited: 2008-10-07}, year = 2004 } @Misc{Mono2007Mono, author = {{Mono Project}}, title = {{Mono}}, howpublished = {Available from: \url{http://www.mono-project.com}}, note = {Last visited: 2008-10-07}, year = 2007 } @Misc{LLVM2004LLVM, author = {LLVM Project}, title = {{The LLVM Compiler Infrastructure}}, howpublished = {Available from: \url{http://llvm.cs.uiuc.edu}}, year = 2004 } @InProceedings{LLVM:CGO04, author = {Chris Lattner and Vikram Adve}, title = {{LLVM: A Compilation Framework for Lifelong Program Analysis \& Transformation}}, booktitle = {Proceedings of the 2004 International Symposium on Code Generation and Optimization (CGO'04)}, address = {Palo Alto, California}, month = mar, year = 2004 } @InProceedings{DKAL:LCTES03, Author = {Dinakar Dhurjati, Sumant Kowshik, Vikram Adve and Chris Lattner}, Title = {{Memory Safety Without Runtime Checks or Garbage Collection}}, Booktitle = {{Proc. Languages Compilers and Tools for Embedded Systems 2003}}, Address = {San Diego, CA}, Month = {June}, Year = 2003, URL = {http://llvm.cs.uiuc.edu/pubs/2003-05-05-LCTES03-CodeSafety.html} } @inproceedings{Deutsch1984SmalltalkImpl, author = {L. Peter Deutsch and Allan M. Schiffman}, title = {Efficient implementation of the {Smalltalk-80} system}, booktitle = {Proceedings of the 11th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages}, year = 1984, isbn = {0-89791-125-3}, pages = {297--302}, location = {Salt Lake City, Utah, United States}, publisher = ACM, } @inproceedings{Myers1984EfficientDataTypes, author = {Eugene W. Myers}, title = {Efficient applicative data types}, booktitle = {Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages}, year = 1984, isbn = {0-89791-125-3}, pages = {66--75}, location = {Salt Lake City, Utah, United States}, publisher = ACM, } @Book{Armstrong1996Erlang, author = {Joe Armstrong and Robert Virding and Claes Wikstr{\"o}m and Mike Williams}, title = {Concurrent Programming in Erlang}, publisher = PH, year = 1996, edition = {second} } @inproceedings{Lee1996OptimizingML, author = {Peter Lee and Mark Leone}, title = {Optimizing {ML} with run-time code generation}, booktitle = {Proceedings of the ACM SIGPLAN 1996 Conference on Programming Language Design and Implementation}, year = 1996, isbn = {0-89791-795-2}, pages = {137--148}, location = {Philadelphia, Pennsylvania, United States}, doi = {http://doi.acm.org/10.1145/231379.231407}, publisher = ACM, } @inproceedings{Auslander1996DynamicCompilation, author = {Joel Auslander and Matthai Philipose and Craig Chambers and Susan J. Eggers and Brian N. Bershad}, title = {Fast, effective dynamic compilation}, booktitle = {Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation}, year = 1996, isbn = {0-89791-795-2}, pages = {149--159}, location = {Philadelphia, Pennsylvania, United States}, doi = {http://doi.acm.org/10.1145/231379.231409}, publisher = ACM, } @article{Aycock2003HistoryJIT, author = {John Aycock}, title = {A brief history of just-in-time}, journal = {ACM Computing Surveys}, volume = 35, number = 2, year = 2003, issn = {0360-0300}, pages = {97--113}, publisher = ACM, } @inproceedings{Chambers1989Customization, author = {C. Chambers and D. Ungar}, title = {Customization: optimizing compiler technology for {Self}, a dynamically-typed object-oriented programming language}, booktitle = {Proceedings of the ACM SIGPLAN 1989 Conference on Programming Language Design and Implementation}, year = 1989, isbn = {0-89791-306-X}, pages = {146--160}, location = {Portland, Oregon, United States}, doi = {http://doi.acm.org/10.1145/73141.74831}, publisher = ACM, } @article{Keppel1991SpaceModification, author = {David Keppel}, title = {A portable interface for on-the-fly instruction space modification}, journal = {SIGPLAN Notices}, volume = 26, number = 4, year = 1991, issn = {0362-1340}, pages = {86--95}, doi = {http://doi.acm.org/10.1145/106973.106983}, publisher = ACM, } @inproceedings{Wallace1995Liftshaft, author = {Malcolm Wallace and Colin Runciman}, title = {Lambdas in the liftshaft}, booktitle = {Proceedings of the seventh international conference on Functional programming languages and computer architecture}, year = 1995, isbn = {0-89791-719-7}, pages = {249--258}, location = {La Jolla, California, United States}, doi = {http://doi.acm.org/10.1145/224164.224213}, publisher = ACM, } @Book{Strom1991Hermes, author = {Robert E. Strom and David F. Bacon and Andy Lowry and Arthur P. Goldberg and Daniel M. Yellin and and Shaula Yemini}, title = {Hermes: A Language for Distributed Computing}, publisher = {Prentice-Hall}, year = 1991, series = {Series in Innovative Technology}, month = feb, isbn = {0-13-389537-8} } @Article{Hanson2004CSharp, author = {David R. Hanson and Todd A. Proebsting}, title = {A research C\# compiler}, journal = {Software Practice and Experience}, year = 2004, volume = 34, number = 13, pages = {1211--1224}, month = {nov} } @Misc{Sun2001HotSpotWhitePaper, author = {{Sun Microsystems}}, title = {{The Java HotSpot Virtual Machine, v1.4.1, d2}}, howpublished = {Available from: \url{http://java.sun.com/products/hotspot/docs/whitepaper/Java_HotSpot_WP_Final_4_30_01.html}}, year = 2002, month = sep } @Article{Zheng2000PARISCia64, author = {Cindy Zheng and Carol Thompson}, title = {{PA-RISC to IA-64: Transparent Execution, no Recompilation}}, journal = {IEEE Computer}, year = 2000, volume = 33, number = 3, pages = {47--52}, month = mar } @InProceedings{Chung2000LazyFits, author = {Yoo C. Chung and Soo-Mook Moon}, title = {Memory Allocation with Lazy Fits}, booktitle = {ISMM '2000: International Symposium on Memory Management}, year = 2000 } @InProceedings{Yang1999LaTTe, author = {Byung-Sun Yang and Soo-Mook Moon and Seongbae Park and Junpyo Lee and SeungIl Lee and Jinpyo Park and Yoo C. Chung and Suhyun Kim and Kemal Ebcioglu and Erik Altman}, title = { LaTTe: A Java VM Just-in-Time Compiler with Fast and Efficient Register Allocation}, booktitle = {1999 International Conference on Parallel Architectures and Compilation Techniques (PACT'99)}, year = 1999, address = {New Port Beach, California}, month = oct } @PhdThesis{Ertl1996PhD, author = {Martin Anton Ertl}, title = {Implementation of Stack-Based Languages on Register Machines}, school = {Technische Universit{\"a}t Berlin}, year = 1996 } @Misc{Klaiber2000Crusoe, author = {Andreas Klaiber}, title = {The Technology behind {Crusoe} Processors}, howpublished = {Available from: \url{http://www.charmed.com/PDF/CrusoeTechnologyWhitePaper_1-19-00.pdf}}, note = {Last visited: 2008-10-07}, year = 2000 } @PhdThesis{Hoelzle1994PhD, author = {Urs H{\"o}lzle}, title = {Adaptive optimization for Self: Reconciling High Performance with Exploratory Programming}, school = {Computer Science Department, Stanford University}, year = 1994 } @PhdThesis{Hicks2001PhD, author = {Michael Hicks}, title = {Dynamic Software Updating}, school = {Computer and Information Science Department, the University of Pennsylvania}, year = 2001, month = aug } @PhdThesis{Burger1997PhD, author = {Robert G. Burger}, title = {Efficient Compilation and Profile-Driven Dynamic Recompilation in Scheme}, school = {Indiana University Computer Science Department}, year = 1997, month = mar } @InProceedings{Burger1998Infrastructure, author = {Robert G. Burger and R. Kent Dybvig}, title = {An infrastructure for profile-driven dynamic recompilation}, booktitle = {IEEE Computer Society 1998 International Conference on Computer Languages}, year = 1998, month = may } @InProceedings{Tuna1994Continuations, author = {M. Esen Tuna and Steven D. Johnson and Robert G. Burger}, title = {Continuations in Hardware-Software Codesign}, booktitle = {Proceedings of the International Conference on Computer Design}, pages = {264--269}, year = 1994, month = oct, organization = {IEEE} } @TechReport{Leone1997Dynamo, author = {Mark Leone and R. Kent Dybvig}, title = {Dynamo: A Staged Compiler Architecture for Dynamic Program Optimization}, institution = {Indiana University Computer Science Department}, year = 1997, number = 490, month = sep } @PhdThesis{Leone1997PhD, author = {Mark Leone}, title = {A Principled and Practical Approach to Run-Time Code Generation}, school = {School of Computer Science, Carnegie Mellon University}, year = 1997 } @InProceedings{Leone1994Lightweight, author = {Mark Leone and Peter Lee}, title = {Lightweight Run-Time Code Generation}, booktitle = {Proceedings of the ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation}, pages = {97-106}, year = 1994, month = jun } @TechReport{Ebcioglu1996DAISY, author = {Kemal Ebcioglu and Erik R. Altman}, title = {{DAISY: Dynamic Compilation for 100\% Architectural Compatibility}}, institution = {IBM}, year = 1996, number = 8502 } @InProceedings{Bierman2003FormalizingUpdate, author = {Gavin Bierman and Michael Hicks and Peter Sewell and Gareth Stoyle}, title = {Formalizing dynamic software updating (Extended Abstract)}, booktitle = {Proceedings of Workshop on Unexpected Software Evolution (USE'03)}, year = 2003, month = apr } @Unpublished{Appel1994HotSliding, author = {Andrew W. Appel}, title = {{Hot-Sliding in ML}}, note = {Available online from \url{http://www.cs.princeton.edu/~appel/papers}}, month = dec, year = 1994 } @article{Clements2004TailRecursiveMachine, author = {John Clements and Matthias Felleisen}, title = {A tail-recursive machine with stack inspection}, journal = {ACM Trans. Program. Lang. Syst.}, volume = 26, number = 6, year = 2004, issn = {0164-0925}, pages = {1029--1052}, doi = {http://doi.acm.org/10.1145/1034774.1034778}, publisher = ACM, } @article{ Ashley1998PracticalFlowAnalysis, author = "J. Michael Ashley and R. Kent Dybvig", title = "A Practical and Flexible Flow Analysis for Higher-Order Languages", journal = "ACM Transactions on Programming Languages and Systems", volume = 20, number = 4, month = "July", publisher = ACM, pages = "845--868", year = 1998, url = "citeseer.ist.psu.edu/article/ashley96practical.html" } @PhdThesis{Ashley1996PhD, author = {J. Michael Ashley}, title = {A Practical and Flexible Flow Analysis for Higher-Order Languages}, school = {Indiana University}, year = 1996 } @article{Pu1988SynthesisKernel, author = {Calton Pu and Henry Massalin and John Ioannidis}, title = {The {S}ynthesis Kernel}, journal = {Computing Systems}, year = 1988, volume = 1, number = 1, pages = {11--32}, month = {Winter}, url = {citeseer.ist.psu.edu/22153.html}, url = {http://citeseer.nj.nec.com/22153.html} } @phdthesis{Massalin1992synthesis, author = {H. Massalin}, title = {Synthesis: {An} Efficient Implementation of Fundamental Operating System Services}, school = {Columbia University}, year = 1992, url = {citeseer.ist.psu.edu/massalin92synthesi.html} } @article{Thompson1968RegularExpression, author = {Ken Thompson}, title = {Programming Techniques: Regular expression search algorithm}, journal = {Communications of the ACM}, volume = 11, number = 6, year = 1968, issn = {0001-0782}, pages = {419--422}, doi = {http://doi.acm.org/10.1145/363347.363387}, publisher = ACM } @Article{Wickline1998Modal, author = {Philip Wickline and Peter Lee and Frank Pfenning and Rowan Davies}, title = {Modal types as staging specifications for run-time code generation}, journal = {ACM Computing Surveys}, year = 1998, volume = 30, number = {3es}, month = sep } @InProceedings{Wickline1998RunTimeCodeGen, author = {Philip Wickline and Peter Lee and Frank Pfenning}, title = {Run-time code generation and modal-ML}, booktitle = {Proceedings of the Conference on Programming Language Design and Implementation (PLDI'98)}, pages = {224-235}, year = 1998, editor = {Keith D. Cooper}, address = {Montreal, Canada}, month = jun, publisher = ACM } @inproceedings{ Sperber1997TwoForThePrice, author = "Michael Sperber and Peter Thiemann", title = "Two for the Price of One: Composing Partial Evaluation and Compilation", booktitle = "{SIGPLAN} Conference on Programming Language Design and Implementation", pages = "215-225", year = 1997, url = "citeseer.ist.psu.edu/sperber97two.html" } @Unpublished{Lomov2002DynamicCaml, author = {Dmitry Lomov and Anton Moscal}, title = {{Dynamic Caml -- Run-Time Code Generation Library for Objective Caml}}, note = {Available on the World Wide Web at \url{http://oops.tepkom.ru/dml/}, last visited: 2008-10--7}, month = may, year = 2002 } @inproceedings{Hentenryck1999opl, author = {Pascal Van Hentenryck and Laurent Michel and Laurent Perron and Jean-Charles R{\'e}gin}, title = {Constraint Programming in OPL}, booktitle = {Proceedings of the International Conference on Principles and Practice of Declarative Programming (PPDP'99)}, year = 1999, month = {September 29 - October 1}, editor = {Gopalan Nadathur }, pages = {98-116}, url = {citeseer.ist.psu.edu/hentenryck99constraint.html}, url = {http://www.cs.brown.edu/people/pvh/ppdp99.ps}, series = {Lecture Notes in Computer Science}, volume = 1702 }, @techreport{Michel2000opl++, author = {Laurent Michel and Pascal Van Hentenryck}, title = {OPL++: A Modeling Layer for Constraint Programming Libraries}, abstract = {Mathematical modeling and constraint programming languages have orthogonal strengths in stating combinatorial optimization problems. Modeling languages typically feature high-level set and algebraic notations, while constraint programming languages provide a rich constraint language and the ability to specify search procedures. This paper shows that many of the functionalities typically found in modeling languages can be integrated elegantly in constraint programming libraries without defining a specific language or preprocessor. In particular, it presents the design of OPL++, a C++ modeling layer for constraint programming that combines the salient features of both approaches. Of particular interest is the one-to-one correspondence between high-level models and OPL++ statements and the negligible overhead induced by the extensions }, institution = {Brown University, Computer Science Department}, year = 2000, month = {December}, type = {Tech Report}, address = {http://www.cs.brown.edu/}, number = {CS-00-07}, url = {citeseer.ist.psu.edu/michel00opl.html}, url = {ftp://ftp.cs.brown.edu/pub/techreports/00/cs00-07.ps.Z} } @PhdThesis{Taha1999PhD, author = {Walid Taha}, title = {Multi-Stage Programming: Its Theory and Applications}, school = {Oregon Graduate Institute of Science and Technology}, year = 1999, month = nov } @Article{Benton2005EmbeddingInterpreters, author = {Nick Benton}, title = {Embedding Interpreters}, journal = {Journal of Functional Programming}, year = {2005}, OPTkey = {}, OPTvolume = {}, OPTnumber = {}, OPTpages = {}, OPTmonth = {}, note = {To appear}, OPTannote = {} } @Book{Swierstra1998AdvancedFP, editor = {S. Doaitse Swierstra and Pedro R. Henriques and Jos{\'e} N. Oliviera}, title = {Advanced Functional Programming}, publisher = SV, year = 1998, volume = 1608, series = LNCS, month = sep, note = {Third International School, AFP'98} } % crossref = {Swierstra1998AdvancedFP}, @InCollection{Sheard1998UsingMetaML, author = {Tim Sheard}, title = {{Using MetaML: A Staged Programming Language}}, booktitle = {Advanced Functional Programming}, editor = {S. Doaitse Swierstra and Pedro R. Henriques and Jos{\'e} N. Oliviera}, pages = {207--239}, year = 1998, volume = 1608, series = LNCS, month = sep, note = {Third International School, AFP'98} } @InProceedings{Taha2004Practical, author = {Walid Taha}, title = {Practical Aspects of Multi-stage Programming}, booktitle = {???}, year = {???} } @InProceedings{Barthe1997MonadicTypeSystems, author = {Gilles Barthe and John Hatcliff and Peter Thiemann}, title = {Monadic Type Systems: Pure Type Systems for Impure Settings (Preliminary Report)}, booktitle = {HOOTS'97}, year = 1997, volume = 10, series = {Electronic Notes in Theoretical Computer Science}, publisher = {Elsevier Science} } @InProceedings{Moggi1999IdealizedMetaML, author = {Eugenio Moggi and Walid Taha and Zine El-Abidine Benaissa and Tim Sheard}, title = {{An Idealized MetaML: Simpler, and More Expressive}}, booktitle = {ESOP}, year = 1999 } @InProceedings{Taha1997MSPExpl, author = {Walid Taha and Tim Sheard}, title = {Multi-Stage Programming with Explicit Annotations}, booktitle = {PEPM}, year = 1991 } @InProceedings{Calcagno2000ClosedTypes, author = {Cristiano Calcagno and Eugenio Moggi and Walid Taha}, title = {Closed Types as a Simple Approach to Safe Imperative Multi-Stage Programming}, booktitle = {ICALP}, year = 2000 } @Article{Taha:2000:MMS, author = "Walid Taha and Tim Sheard", title = "{MetaML} and multi-stage programming with explicit annotations", journal = "Theoretical Computer Science", volume = 248, number = "1--2", pages = "211--242", day = 6, month = oct, year = 2000, CODEN = "TCSCDI", ISSN = "0304-3975", } @Article{Arnold2005SurveyVM, author = {Matthew Arnold and Stephen J. Fink and David Grove and Michael Hind and Peter F. Sweeney}, title = {A Survey of Adaptive Optimization in Virtual Machines}, journal = {Proceedings of the IEEE}, year = 2005, volume = 93, number = 2, pages = {449--466}, month = feb } @TechReport{Arnold2004Architecture, author = {Matthew Arnold and Stephen Fink and David Grove and Michael Hind and Peter F. Sweeney}, title = {Architecture and Policy for Adaptive Optimization in Virtual Machines}, institution = {IBM Research}, year = 2004, type = {Research Report}, number = 23429, month = nov } @inproceedings{Detlefs1999InliningVirtualMethods, author = {David Detlefs and Ole Agesen}, title = {Inlining of Virtual Methods}, booktitle = {ECOOP '99: Proceedings of the 13th European Conference on Object-Oriented Programming}, year = 1999, isbn = {3-540-66156-5}, pages = {258--278}, publisher = SV, } @InProceedings{Detlefs2001LockFree, author = {David L. Detlefs and Paul A. Martin and Mark Moir and Guy L. {Steele Jr}}, title = {Lock-Free Reference Counting}, booktitle = {Proceedings of PODC 2001}, year = 2001 } @Misc{Achten2004ArrowGECs, author = {Peter Achten and Marko {van Eekelen} and Rinus Plasmeijer and Arjen {van Weelden}}, title = {Arrows for Generic Graphical Editor Components}, howpublished = {Availble from: \url{ftp://ftp.cs.kun.nl/pub/Clean/papers/2004/achp2004-ArrowGECs.pdf}}, year = 2004 } @Article{Wadler1992Comprehending, author = {Philip Wadler}, title = {Comprehending monads}, journal = {Mathematical Structures in Computer Science, Special issue of selected papers from 6'th Conference on Lisp and Functional Programming}, year = 1992, volume = 2, pages = {461--493} } @InProceedings{King1992CombiningMonads, author = {David King and Philip Wadler}, editor = {J. Launchbury and P. M. Sansom}, title = {Combining monads}, booktitle = {Glasgow Workshop on Functional Programming}, year = 1992, series = {Workshops in Computing Series}, month = jul, address = {Ayr, Scotland}, publisher = SV } @Misc{Stewart2003hs-plugins, author = {Don Stewart}, title = {{hs-plugins -- Dynamically Loaded Haskell Modules}}, howpublished = {World Wide Web: \url{http://www.cse.unsw.edu.au/~dons/hs-plugins/}}, month = feb, year = 2006, note = {Last visited: 2008-10-07} } @InProceedings{Harris2005Composable, author = {Tim Harris and Simon Marlow and Simon Peyton Jones and Maurice Herlihy}, title = {Composable memory transactions}, booktitle = {PPoPP 2005}, year = 2005, note = {Submitted} } @InProceedings{Chernoff1997DigitalFX32, author = {Anton Chernoff and Ray Hookway}, title = {{Digital FX!32 -- Running 32-Bit x86 Applications on Alpha NT}}, booktitle = {Proceedings of the USENIX Windows NT Workshop}, year = 1997, address = {Seattle, Washington}, month = aug } @inproceedings{Piumarta1998SelectiveInlining, author = {Ian Piumarta and Fabio Riccardi}, title = {Optimizing direct threaded code by selective inlining}, booktitle = {PLDI '98: Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation}, year = 1998, isbn = {0-89791-987-4}, pages = {291--300}, location = {Montreal, Quebec, Canada}, doi = {http://doi.acm.org/10.1145/277650.277743}, publisher = ACM, } @Misc{FeeleyBetterAPI, author = {Marc Feeley}, title = {{A Better API for First-Class Continuations}} } @inproceedings{Marlet1999Efficient, author = {Renaud Marlet and Charles Consel and Philippe Boinot}, title = {Efficient incremental run-time specialization for free}, booktitle = {PLDI '99: Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation}, year = 1999, isbn = {1-58113-094-5}, pages = {281--292}, location = {Atlanta, Georgia, United States}, doi = {http://doi.acm.org/10.1145/301618.301681}, publisher = ACM } @inproceedings{Bruening2003Infrastructure, author = {Derek Bruening and Timothy Garnett and Saman Amarasinghe}, title = {An infrastructure for adaptive dynamic optimization}, booktitle = {CGO '03: Proceedings of the International Symposium on Code Generation and Optimization}, year = 2003, isbn = {0-7695-1913-X}, pages = {265--275}, location = {San Francisco, California}, publisher = {IEEE Computer Society}, } @inproceedings{Felgentreu1986DynamicOpt, author = {K.-U. Felgentreu and W.-M. Lippe}, title = {Dynamic optimization of covered tail recursive functions in applicative languages}, booktitle = {CSC '86: Proceedings of the 1986 ACM fourteenth annual conference on Computer science}, year = 1986, isbn = {0-89791-177-6}, pages = {293--299}, location = {Cincinnati, Ohio, United States}, doi = {http://doi.acm.org/10.1145/324634.325437}, publisher = ACM } @PhdThesis{Wallace1995FPEmbedded, author = {Malcolm Wallace}, title = {Functional Programming and Embedded Systems}, school = {Department of Computer Science, University of York}, year = 1995, month = jan } @TechReport{Taivalsaari1998JavaInJava, author = {Antero Taivalsaari}, title = {{Implementing a Java\texttrademark{} Virtual Machine in the Java Programming Language}}, institution = {Sun Microsystems}, year = 1998, number = {TR-98-64} } @Article{Agesen1997Pep, author = {Ole Agesen}, title = {{The Design and Implementation of Pep, A Java\texttrademark{} Just-In-Time Translator}}, journal = {Theory and Practice of Object Systems}, year = 1997, volume = 3, number = 2, pages = {127--155} } @inproceedings{Shivers2004MultiReturn, author = {Olin Shivers and David Fisher}, title = {Multi-return function call}, booktitle = {ICFP '04: Proceedings of the ninth ACM SIGPLAN international conference on Functional programming}, year = 2004, isbn = {1-58113-905-5}, pages = {79--89}, location = {Snow Bird, UT, USA}, doi = {http://doi.acm.org/10.1145/1016850.1016864}, publisher = ACM } @inproceedings{Hughes2003PolishParsers, author = {R. John M. Hughes and S. Doaitse Swierstra}, title = {Polish parsers, step by step}, booktitle = {ICFP '03: Proceedings of the eighth ACM SIGPLAN international conference on Functional programming}, year = 2003, isbn = {1-58113-756-7}, pages = {239--248}, location = {Uppsala, Sweden}, doi = {http://doi.acm.org/10.1145/944705.944727}, publisher = ACM } @inproceedings{AdlTabatabai2004Compressing, author = {Ali-Reza Adl-Tabatabai and Jay Bharadwaj and Michal Cierniak and Marsha Eng and Jesse Fang and Brian T. Lewis and Brian R. Murphy and James M. Stichnoth}, title = {Improving 64-Bit {Java} {IPF} Performance by Compressing Heap References}, booktitle = {CGO '04: Proceedings of the International Symposium on Code Generation and Optimization}, year = 2004, isbn = {0-7695-2102-9}, pages = 100, location = {Palo Alto, California}, publisher = {IEEE Computer Society}, } @inproceedings{Dehnert2003CodeMorphing, author = {James C. Dehnert and Brian K. Grant and John P. Banning and Richard Johnson and Thomas Kistler and Alexander Klaiber and Jim Mattson}, title = {{The Transmeta Code Morphing\texttrademark{} Software: using speculation, recovery, and adaptive retranslation to address real-life challenges}}, booktitle = {CGO '03: Proceedings of the International Symposium on Code Generation and Optimization}, year = 2003, isbn = {0-7695-1913-X}, pages = {15--24}, location = {San Francisco, California}, publisher = {IEEE Computer Society}, } @inproceedings{Scott2003Retargetable, author = {K. Scott and N. Kumar and S. Velusamy and B. Childers and J. W. Davidson and M. L. Soffa}, title = {Retargetable and reconfigurable software dynamic translation}, booktitle = {CGO '03: Proceedings of the international symposium on Code generation and optimization}, year = 2003, isbn = {0-7695-1913-X}, pages = {36--47}, location = {San Francisco, California}, publisher = {IEEE Computer Society}, } @inproceedings{Kamin2003Jumbo, author = {Sam Kamin and Lars Clausen and Ava Jarvis}, title = {Jumbo: run-time code generation for Java and its applications}, booktitle = {CGO '03: Proceedings of the international symposium on Code generation and optimization}, year = 2003, isbn = {0-7695-1913-X}, pages = {48--56}, location = {San Francisco, California}, publisher = {IEEE Computer Society}, } @inproceedings{Fink2003AdaptiveRecompilation, author = {Stephen J. Fink and Feng Qian}, title = {Design, implementation and evaluation of adaptive recompilation with on-stack replacement}, booktitle = {CGO '03: Proceedings of the international symposium on Code generation and optimization}, year = 2003, isbn = {0-7695-1913-X}, pages = {241--252}, location = {San Francisco, California}, publisher = {IEEE Computer Society}, } @TechReport{Bauer1968AlgolWIntro, author = {Henry R. Bauer and Sheldon I. Becker and Susan L. Graham}, title = {Algol W Notes for Introductory Computer Science Courses}, institution = {Computer Science Department Stanford University}, year = 1968, month = jan } @article{Ledgard1970MiniLang, author = {Henry F. Ledgard}, title = {Ten mini-languages in need of formal definition}, journal = {SIGPLAN Notices}, volume = 5, number = {4-5}, year = 1970, issn = {0362-1340}, pages = {14--37}, doi = {http://doi.acm.org/10.1145/987438.987440}, publisher = ACM, } @Book{Leitch2001PAME, author = {Sian Leitch}, title = {Programming Algol~68 Made Easy}, publisher = {Phoenix Engineering}, year = 2001 } @article{Carr1959RecursiveCompilers, author = {John W. {Carr, III}}, title = {Recursive subscripting compilers and list-type memories}, journal = {Communications of the ACM}, volume = 2, number = 2, year = 1959, issn = {0001-0782}, pages = {4--6}, doi = {http://doi.acm.org/10.1145/368280.368281}, publisher = ACM, } @Misc{VitaleCatenation, author = {Benjamin Vitale and Tarek S. Abdelrahman}, title = {Catenation and Specialization for {Tcl} Virtual Machine Performance} } @article{Samelson1960SequentialFormula, author = {K. Samelson and F. L. Bauer}, title = {Sequential formula translation}, journal = {Communications of the ACM}, volume = 3, number = 2, year = 1960, issn = {0001-0782}, pages = {76--83}, doi = {http://doi.acm.org/10.1145/366959.366968}, publisher = ACM, } @article{Bell1973ThreadedCode, author = {James R. Bell}, title = {Threaded code}, journal = {Communications of the ACM}, volume = 16, number = 6, year = 1973, issn = {0001-0782}, pages = {370--372}, doi = {http://doi.acm.org/10.1145/362248.362270}, publisher = ACM, } @article{Dewar1975IndirectThreadedCode, author = {Robert B. K. Dewar}, title = {Indirect threaded code}, journal = {Communications of the ACM}, volume = 18, number = 6, year = 1975, issn = {0001-0782}, pages = {330--331}, doi = {http://doi.acm.org/10.1145/360825.360849}, publisher = ACM, } @Article{Strachey1965Macrogenerator, author = {C. Strachey}, title = {A general purpose macrogenerator}, journal = {Computer Journal}, year = 1965, volume = 8, number = 3, pages = {225--241} } @Article{Ramsey1999Eliminating, author = {Norman Ramsey}, title = {Eliminating Spurious Error Messages Using Exceptions, Polymorphism, and Higher-Order Functions}, journal = {Computer Journal}, year = 1999, volume = 42, number = 5, pages = {360--372} } @InProceedings{Widera2001CompleteType, author = {Manfred Widera}, title = {A Sketch of Complete Type Inference for Functional Programming}, booktitle = {International Workshop on Functional and (Constraint) Logic Programming (WLFP 2001)}, year = 2001, month = sep } @Article{Feeley1992LambdaPlusEps, author = {Marc Feeley and Guy Lapalme}, title = {Closure Generation Based on Viewing LAMBDA As EPSILON Plus COMPILE}, journal = {Journal of Computer Languages}, year = 1992, volume = 17, number = 4 } @Article{Feeley1987ClosureCodeGen, author = {Marc Feeley and Guy Lapalme}, title = {Using Closures for Code Generation}, journal = {Journal of Computer Languages}, year = 1987, volume = 12, number = 1 } @InProceedings{Debray1999LimkTime, author = {Saumya Debray and Robert Muth and Scott Watterson}, title = {Link-time Improvement of Scheme Programs}, booktitle = {International Conference on Compiler Construction (CC'99)}, year = 1999, month = mar } @Misc{DePristo2000SINTL, author = {Mark DePristo}, title = {SINTL: A Strongly-Typed Generic Intermediate Language for Scheme}, month = may, year = 2000, note = {Northwestern University} } @Misc{Bonzini2000GNULightning, author = {Paolo Bonzini}, title = {{GNU Lightning}}, howpublished = {Available from: \url{http://www.gnu.org/software/lightning}}, year = 2000 } @PhdThesis{Franz1994PhD, author = {Michael Steffen Oliver Franz}, title = {Code-Generation On-the-fly: A Key to Portable Software}, school = {ETH Z{\"u}rich}, year = 1994 } @inproceedings{Kay1993EarlyHistorySmalltalk, author = {Alan C. Kay}, title = {The early history of Smalltalk}, booktitle = {HOPL-II: The second ACM SIGPLAN conference on History of programming languages}, year = 1993, isbn = {0-89791-570-4}, pages = {69--95}, location = {Cambridge, Massachusetts, United States}, doi = {http://doi.acm.org/10.1145/154766.155364}, publisher = ACM, } @inproceedings{Wirth1993DevelopmentPascal, author = {N. Wirth}, title = {Recollections about the development of Pascal}, booktitle = {HOPL-II: The second ACM SIGPLAN conference on History of programming languages}, year = 1993, isbn = {0-89791-570-4}, pages = {333--342}, location = {Cambridge, Massachusetts, United States}, doi = {http://doi.acm.org/10.1145/154766.155378}, publisher = ACM, } @inproceedings{Roejemo1995nhcHighlights, author = {Niklas R{\"o}jemo}, title = {Highlights from nhc---space-efficient Haskell compiler}, booktitle = {FPCA '95: Proceedings of the seventh international conference on Functional programming languages and computer architecture}, year = 1995, isbn = {0-89791-719-7}, pages = {282--292}, location = {La Jolla, California, United States}, doi = {http://doi.acm.org/10.1145/224164.224217}, publisher = ACM, } @inproceedings{Wadler1981ApplicativeStyle, author = {Philip Wadler}, title = {Applicative style programming, program transformation, and list operators}, booktitle = {FPCA '81: Proceedings of the 1981 conference on Functional programming languages and computer architecture}, year = 1981, isbn = {0-89791-060-5}, pages = {25--32}, location = {Portsmouth, New Hampshire, United States}, publisher = ACM, } @inproceedings{Wadler1989TheoremsForFree, author = {Philip Wadler}, title = {Theorems for free!}, booktitle = {FPCA '89: Proceedings of the fourth international conference on Functional programming languages and computer architecture}, year = 1989, isbn = {0-89791-328-0}, pages = {347--359}, location = {Imperial College, London, United Kingdom}, doi = {http://doi.acm.org/10.1145/99370.99404}, publisher = ACM, } @inproceedings{Nielson1989TransformationsHOF, author = {Hanne Riis Nielson and Flemming Nielson}, title = {Transformations on higher-order functions}, booktitle = {FPCA '89: Proceedings of the fourth international conference on Functional programming languages and computer architecture}, year = 1989, isbn = {0-89791-328-0}, pages = {129--143}, location = {Imperial College, London, United Kingdom}, doi = {http://doi.acm.org/10.1145/99370.99380}, publisher = ACM, } @inproceedings{Diniz1997DynamicFeedback, author = {Pedro C. Diniz and Martin C. Rinard}, title = {Dynamic feedback: an effective technique for adaptive computing}, booktitle = {PLDI '97: Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation}, year = 1997, isbn = {0-89791-907-6}, pages = {71--84}, location = {Las Vegas, Nevada, United States}, doi = {http://doi.acm.org/10.1145/258915.258923}, publisher = ACM, } @inproceedings{Colby2000CertifyingCompiler, author = {Christopher Colby and Peter Lee and George C. Necula and Fred Blau and Mark Plesko and Kenneth Cline}, title = {A certifying compiler for Java}, booktitle = {PLDI '00: Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation}, year = 2000, isbn = {1-58113-199-2}, pages = {95--107}, location = {Vancouver, British Columbia, Canada}, doi = {http://doi.acm.org/10.1145/349299.349315}, publisher = ACM, } @inproceedings{Cierniak2000PracticingJUDO, author = {Michal Cierniak and Guei-Yuan Lueh and James M. Stichnoth}, title = {Practicing JUDO: Java under dynamic optimizations}, booktitle = {PLDI '00: Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation}, year = 2000, isbn = {1-58113-199-2}, pages = {13--26}, location = {Vancouver, British Columbia, Canada}, doi = {http://doi.acm.org/10.1145/349299.349306}, publisher = ACM, } @inproceedings{Fernandez1995LinkTimeModula, author = {Mary F. Fern{\'a}ndez}, title = {Simple and effective link-time optimization of Modula-3 programs}, booktitle = {PLDI '95: Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation}, year = 1995, isbn = {0-89791-697-2}, pages = {103--115}, location = {La Jolla, California, United States}, doi = {http://doi.acm.org/10.1145/207110.207121}, publisher = ACM, } @inproceedings{Sullivan2003DynamicNativeOpt, author = {Gregory T. Sullivan and Derek L. Bruening and Iris Baron and Timothy Garnett and Saman Amarasinghe}, title = {Dynamic native optimization of interpreters}, booktitle = {IVME '03: Proceedings of the 2003 workshop on Interpreters, Virtual Machines and Emulators}, year = 2003, isbn = {1-58113-655-2}, pages = {50--57}, location = {San Diego, California}, doi = {http://doi.acm.org/10.1145/858570.858576}, publisher = ACM, } @inproceedings{AdlTabatabai1998FastCodeGenJIT, author = {Ali-Reza Adl-Tabatabai and Michal Cierniak and Guei-Yuan Lueh and Vishesh M. Parikh and James M. Stichnoth}, title = {Fast, effective code generation in a just-in-time {Java} compiler}, booktitle = {PLDI '98: Proceedings of the ACM SIGPLAN 1998 Conference on Programming Language Design and Implementation}, year = 1998, isbn = {0-89791-987-4}, pages = {280--290}, location = {Montreal, Quebec, Canada}, doi = {http://doi.acm.org/10.1145/277650.277740}, publisher = ACM, } @inproceedings{Whaley2003Joeq, author = {John Whaley}, title = {Joeq: a virtual machine and compiler infrastructure}, booktitle = {IVME '03: Proceedings of the 2003 workshop on Interpreters, Virtual Machines and Emulators}, year = 2003, isbn = {1-58113-655-2}, pages = {58--66}, location = {San Diego, California}, doi = {http://doi.acm.org/10.1145/858570.858577}, publisher = ACM, } @inproceedings{Ayers1997AggressiveInlining, author = {Andrew Ayers and Richard Schooler and Robert Gottlieb}, title = {Aggressive inlining}, booktitle = {PLDI '97: Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation}, year = 1997, isbn = {0-89791-907-6}, pages = {134--145}, location = {Las Vegas, Nevada, United States}, doi = {http://doi.acm.org/10.1145/258915.258928}, publisher = ACM, } @inproceedings{Krintz2001AnnotationsReduce, author = {Chandra Krintz and Brad Calder}, title = {Using annotations to reduce dynamic optimization time}, booktitle = {PLDI '01: Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation}, year = 2001, isbn = {1-58113-414-2}, pages = {156--167}, location = {Snowbird, Utah, United States}, doi = {http://doi.acm.org/10.1145/378795.378831}, publisher = ACM, } @Book{Bauer1976CompilerConstruction, editor = {F. L. Bauer and J. Eickel}, title = {Compiler Construction -- An Advanced Course}, publisher = SV, year = 1976, edition = {Second}, series = LNCS, published = SV } @Book{Salomon2004DataCompression, author = {David Salomon}, title = {Data Compression: The Complete Reference}, publisher = SV, year = 2004, edition = {Third} } @Book{Salomon1993AssemblersAndLoaders, author = {David Salomon}, title = {Assemblers and Loaders}, publisher = {Ellis Horwood Ltd}, year = 1993, series = {Ellis Horwood Series in Computers and Their Applications} } @Unpublished{Pfenning2002LinearLogic, author = {Frank Pfenning}, title = {Linear Logic}, note = {Course Notes}, month = jan, year = 2002 } @PhdThesis{Bruening2004PhD, author = {Derek L. Bruening}, title = {Efficient, Transparent, and Comprehensive Runtime Code Manipulation}, school = {Massachusetts Institute of Technology}, year = 2004, month = sep } @Book{Barendregt1985LambdaCalculus, author = {H. P. Barendregt}, title = {The Lambda Calculus}, publisher = NH, year = 1985, volume = 103, series = {Studies in Logic and the Foundations of Mathematics}, edition = {Revised} } @Proceedings{Hermenegildo2002SAS, title = {Static Analysis}, year = 2002, booktitle = {Proceedings of the 9th International Symposium, SAS 2002}, editor = {Manuel V. Hermenegildo and Germ{\'a}n Puebla}, volume = 2477, series = LNCS, publisher = SV } @PhdThesis{Ward1989PhD, author = {Martin Ward}, title = {Proving Program Refinements and Transformations}, school = {St. Annes College Oxford}, year = 1989, month = jun } @Misc{Transitive2005Homepage, author = {Transitive Limited}, title = {Transitive Home Page}, note = {Available from: \url{http://www.transitive.com}}, month = apr, year = 2005 } @TechReport{Allen2005FortressSpec, author = {Eric Allen and David Chase and Victor Luchangco and Jan-Willem Maessen and Sukyoung Ryu and Guy L. {Steele Jr.} and Sam Tobin-Hochstadt}, title = {The {Fortress} Language Specification Version 0.618}, institution = {Sun Microsystems Research Labs}, year = 2005, month = apr } @Misc{Dybvig2005MonadicSubcomputations, author = {R. Kent Dybvig and Simon Peyton-Jones and Amr Sabry}, title = {A Monadic Framework for Subcontinuations}, howpublished = {Available from: \url{http://www.cs.indiana.edu/~sabry/papers/monadicSubcont.ps}}, month = feb, year = 2005 } @InProceedings{Pardo2002GenericAccumulations, author = {Alberto Pardo}, title = {Generic Accumulations}, booktitle = {IFIP WG2.1 Working Conference on Generic Programming}, year = 2002, address = {Dagstuhl, Germany}, month = jul } @MastersThesis{Feeley1986DeuxApproches, author = {Marc Feeley}, title = {Deux approches {\`a} l'implantation du language Scheme}, school = {Universit{\'e} de Montr{\'e}al}, year = 1986, month = may } @Article{Hartel1996Benchmarking, author = {Pieter H. Hartel and Marc Feeley and Martin Alt and Lennart Augustson and Peter Baumann and Marcel Beemster and Emmanuel Chailloux and Christine H. Flood and Wolfgang Grieskamp and John H. G. van Groningen and Kevin Hammond and Bogumil Hausman and Melody Y. Ivory and Richard E. Jones and Jasper Kamperman and Peter Lee and Xavier Leroy and Rafael D. Lins and Sandra Loosemore and Niklas R{\"o}jemo and Manuel Serrano and Jean-Pierre Talpin and John Thackray and Stephen Thomas and Pum Walters and Pierre Weis and Peter Wentworth}, title = {Benchmarking Implementations of Functional Languages with ``Pseudoknot'', a Float-Intensive Benchmark}, journal = {Journal of Functional Programming}, year = 1996, volume = 6, number = 4, pages = {621--655} } @inproceedings{Kohlhase1997DynamicLambdaCalculus, author = {Michael Kohlhase and Susanna Kuschert}, title = {Dynamic Lambda Calculus}, booktitle = {Proceedings of the 5th Meeting on Mathematics of Language - MOL5}, year = 1997, pages = {85--92}, } @PhdThesis{Brand2005PhD, author = {Per Brand}, title = {The Design Philosphy of Distributed Programming Systems: the Mozart Experience}, school = {Royal Institute of Technology Stockholm}, year = 2005, month = jun } @Book{Cormen2001IntroToAlgorithms, author = {Thomas H. Cormen and Charles E. Leiserson and Ronald L. Rivest and Clifford Stein}, title = {Introduction to Algorithms}, publisher = {MIT Press}, year = 2001, edition = {Second} } @inproceedings{Vytiniotis2006BoxyTypes, author = {Dimitrios Vytiniotis and Stephanie Weirich and Simon Peyton Jones}, title = {Boxy types: inference for higher-rank types and impredicativity}, booktitle = {ICFP '06: Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming}, year = 2006, isbn = {1-59593-309-3}, pages = {251--262}, location = {Portland, Oregon, USA}, doi = {http://doi.acm.org/10.1145/1159803.1159838}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Graham1982gprof, author = {Susan L. Graham and Peter B. Kessler and Marshall K. Mckusick}, title = {Gprof: A call graph execution profiler}, booktitle = {SIGPLAN '82: Proceedings of the 1982 SIGPLAN symposium on Compiler construction}, year = 1982, isbn = {0-89791-074-5}, pages = {120--126}, location = {Boston, Massachusetts, United States}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Brooks1982OptimizingLISP, author = {Rodney A. Brooks and Richard P. Gabriel and Guy L. Steele, Jr.}, title = {An optimizing compiler for lexically scoped LISP}, booktitle = {SIGPLAN '82: Proceedings of the 1982 SIGPLAN symposium on Compiler construction}, year = {1982}, isbn = {0-89791-074-5}, pages = {261--275}, location = {Boston, Massachusetts, United States}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Brooks1986DesignOptimizing, author = {Rodney A. Brooks and David B. Posner and James L. McDonald and Jon L. White and Eric Benson and Richard P. Gabriel}, title = {Design of an optimizing, dynamically retargetable compiler for common Lisp}, booktitle = {LFP '86: Proceedings of the 1986 ACM conference on LISP and functional programming}, year = 1986, isbn = {0-89791-200-4}, pages = {67--85}, location = {Cambridge, Massachusetts, United States}, doi = {http://doi.acm.org/10.1145/319838.319851}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Whaley2001PartialMethodCompilation, author = {John Whaley}, title = {Partial method compilation using dynamic profile information}, booktitle = {OOPSLA '01: Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications}, year = 2001, isbn = {1-58113-335-9}, pages = {166--179}, location = {Tampa Bay, FL, USA}, doi = {http://doi.acm.org/10.1145/504282.504295}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Levanoni2001OnTheFlyGC, author = {Yossi Levanoni and Erez Petrank}, title = {An on-the-fly reference counting garbage collector for Java}, booktitle = {OOPSLA '01: Proceedings of the 16th ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications}, year = 2001, isbn = {1-58113-335-9}, pages = {367--380}, location = {Tampa Bay, FL, USA}, doi = {http://doi.acm.org/10.1145/504282.504309}, publisher = ACM, address = {New York, NY, USA}, } @MastersThesis{Broberg2005Thesis, author = {Niklas Broberg}, title = {Haskell Server Pages}, school = {Chalmers University of Technology}, year = 2005 } @Article{Dijkstra1972HumbleProgrammer, author = {Edsger W. Dijkstra}, title = {EWD 340: The humble programmer}, journal = CACM, year = 1972, volume = 15, number = 10, pages = {859--866} } @Article{Petrank2004DelayedAllocation, author = {Erez Petrank and Elliot K. Kolodner}, title = {Parallel Copying Garbage Collection using Delayed Allocation}, journal = {Parallel Processing Letters}, year = 2004, volume = 14, number = 2, month = jun } @InProceedings{Chakravarty2001Nepal, author = {Manuel M. T. Chakravarty and Gabriele Keller and Roman Lechtchinsky and Wolf Pfannenstiel}, title = {Nepal -- Nested Data-Parallelism in Haskell.}, booktitle = {Euro-Par 2001: Parallel Processing, 7th International Euro-Par Conference,}, pages = {524--534}, year = 2001, editor = {Rizos Sakellariou and John Keane and John R. Gurd and Len Freeman}, volume = 2150, series = LNCS, publisher = SV } @InProceedings{Chakravarty2004SSAOptimisation, author = {Manuel M. T. Chakravarty and Gabriele Keller and Patryk Zadarnowski}, title = {A Functional Perspective on SSA Optimisation Algorithms}, booktitle = {2nd International Workshop on Compiler Optimization Meets Compiler Verification (COCV 2003),}, year = 2004, volume = {82:2}, series = {Electronic Notes in Theoretical Computer Science}, publisher = {Elsevier Science} } @article{Wadler1987CritiqueAbelson, author = {P Wadler}, title = {A critique of Abelson and Sussman or why calculating is better than scheming}, journal = {SIGPLAN Notices}, volume = 22, number = 3, year = 1987, issn = {0362-1340}, pages = {83--94}, doi = {http://doi.acm.org/10.1145/24697.24706}, publisher = ACM, address = {New York, NY, USA}, } @InProceedings{Chakravarty1991LazyNarrowing, author = {Manuel M. T. Chakravarty and Hendrik C. R. Lock}, title = {The Implementation of Lazy Narrowing}, booktitle = {Programming Language, Implementation, and Logic Programming, 3rd International Symposium PLILP'91}, pages = {123--134}, year = 1991, editor = {J. Maluszunski and M. Wirsing}, volume = 528, series = LNCS, publisher = SV } @Article{Smith1994PrincipalTypeSchemes, author = {Geoffrey S. Smith}, title = {Principal Type Schemes for Functional Programs with Overloading and Subtyping}, journal = {Science of Computer Programming}, year = 1994, volume = 23, number = {2--3}, pages = {197--226}, month = dec } @Article{Reynolds1970Gedanken, author = {John C. Reynolds}, title = {GEDANKEN--A Simple Typeless Language Based on the Principle of Completeness and the Reference Concept}, journal = CACM, year = 1970, volume = 13, number = 5, pages = {308--319}, month = may } @Book{Pepper2005ProgrammierenMitJava, author = {Peter Pepper}, title = {Programmieren mit Java}, publisher = SV, year = 2005 } @article{ Pepper1997HighlevelDerivation, author = "Peter Pepper and Douglas R. Smith", title = "A High-Level Derivation of Global Search Algorithms (with Constraint Propagation)", journal = "Science of Computer Programming", volume = 28, number = "2-3", pages = "247-271", year = 1997, url = "citeseer.ist.psu.edu/pepper96highlevel.html" } @inproceedings{Cousot1977AbstractInterpretation, author = {Patrick Cousot and Radhia Cousot}, title = {Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints}, booktitle = {POPL '77: Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages}, year = 1977, pages = {238--252}, location = {Los Angeles, California}, doi = {http://doi.acm.org/10.1145/512950.512973}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Johnsson1985LambdaLifting, author = {Thomas Johnsson}, title = {Lambda lifting: transforming programs to recursive equations}, booktitle = {Proceedings of the International Conference of Functional programming languages and computer architecture}, publisher = SV, volume = 201, series = LNCS, year = 1985, url = {citeseer.ist.psu.edu/johnsson85lambda.html} } @article{ PeytonJones1998Transformationbased, author = "Simon L. {Peyton Jones} and Andr{\'e} L. M. Santos", title = "A transformation-based optimiser for {Haskell}", journal = "Science of Computer Programming", volume = 32, number = "1--3", pages = "3--47", year = 1998, url = "citeseer.ist.psu.edu/peytonjones98transformationbased.html" } @inproceedings{ PeytonJones1996Compiling, author = "Simon L. Peyton Jones", title = "Compiling Haskell by Program Transformation: A Report from the Trenches", booktitle = "European Symposium on Programming", pages = "18-44", year = 1996, url = "citeseer.ist.psu.edu/peytonjones96compiling.html" } @inproceedings{Backus1973SemanticsApplicative, author = {John Backus}, title = {Programming language semantics and closed applicative languages}, booktitle = {POPL '73: Proceedings of the 1st annual ACM SIGACT-SIGPLAN symposium on Principles of programming languages}, year = 1973, pages = {71--86}, location = {Boston, Massachusetts}, doi = {http://doi.acm.org/10.1145/512927.512934}, publisher = ACM, address = {New York, NY, USA}, } @phdthesis{Santos1995PhD, author = "Santos, Andr\'e", title = "{C}ompilation by {T}ransformation in {N}on-{S}trict {F}unctional {L}anguages", year = 1995, url = "citeseer.ist.psu.edu/santos95compilation.html" } @inproceedings{Augustsson1993ImplementingOverloading, author = {Lennart Augustsson}, title = {Implementing {Haskell} overloading}, booktitle = {FPCA '93: Proceedings of the Conference on Functional Programming Languages and Computer Architecture}, year = {1993}, isbn = {0-89791-595-X}, pages = {65--73}, location = {Copenhagen, Denmark}, doi = {http://doi.acm.org/10.1145/165180.165191}, publisher = ACM, address = {New York, NY, USA}, } @phdthesis{Hunt1991AbstractInterpretation, author = "Sebastian Hunt", title = "{A}bstract {I}nterpretation of {F}unctional {L}anguages: {F}rom {T}heory to {P}ractice", school = {University of London, Imperial College}, month = "October", year = 91, url = "citeseer.ist.psu.edu/hunt91abstract.html" } @TechReport{Pepper2004PowefulParsers, author = {Peter Pepper}, title = {How To Obtain Powerful Parsers That Are Elegant and Practical}, institution = {Technische Universit{\"a}t Berlin}, year = 2004, type = {Research report}, number = {\mbox{2004-01} in {\em Forschungsberichte Fakult{\"a}t IV -- Elektrotechnik und Informatik}}, month = mar } @InProceedings{Bierman2005EssenceDataAccess, author = {Gavin Bierman and Erik Meijer and Wolfram Schulte}, title = {The essence of data access in C$\omega$ -- The power is in the dot!}, booktitle = {ECOOP'05}, year = 2005, note = {Accepted for publicatio} } @InProceedings{Wadler1989HowAdHoc, author = {P. Wadler and S. Blott}, title = {How to make ad-hoc polymorphism less ad-hoc}, pages = {60--76}, booktitle = {Conference Record of the 16th Annual {ACM} Symposium on Principles of Programming Languages}, publisher = ACM, month = jan, year = 1989, documenturl = {ftp://ftp.dcs.gla.ac.uk/pub/glasgow-fp/authors/Philip_Wadler/how-to-make-ad-hoc-poly-less-ad-hoc.dvi}, url = {citeseer.ist.psu.edu/wadler88how.html} } @article{Cmelik1994Shade, author = "Robert Cmelik and David Keppel", title = "{S}hade: {A} Fast Instruction-Set Simulator for Execution Profiling", journal = "ACM SIGMETRICS Performance Evaluation Review", volume = 22, number = 1, month = "May", pages = "128--137", year = 1994, url = "citeseer.ist.psu.edu/article/cmelik93shade.html" } @inproceedings{Burke1999Jalapeno, author = "M. Burke and J. Choi and S. Fink and D. Grove and M. Hind and V. Sarkar and M. Serrano and V. Sreedhar and H. Srinivasan and J. Whaley", title = "The {Jalape{\~n}o} dynamic optimizing compiler for {Java}", booktitle = "Proceedings ACM 1999 Java Grande Conference", pages = "129--141", month = jun, year = 1999, organization = ACM, address = "San Francisco, CA, United States", url = "citeseer.ist.psu.edu/burke99jalapentildeo.html", url = "citeseer.nj.nec.com/burke99jalapentildeo.html" } @InProceedings{Stuckey2002TheoryOverloading, author = {P.~J.~Stuckey and M.~Sulzmann }, title = {A Theory of Overloading}, booktitle = {Proc. of ICFP'02}, pages = {167--178}, year = 2002, publisher = ACM } @InProceedings{Jones2000FunDep, author = {Mark P. Jones}, title = {Type Classes with Functional Dependencies}, booktitle = {Proceedings of the 9th European Symposium on Programming, ESOP 2000}, year = 2000, volume = 1782, series = LNCS, address = {Berlin, Germany}, month = mar, publisher = SV } @InProceedings{Jones1998FunctionsJava, author = {Mark P. Jones}, title = {The Functions of Java Bytecode}, booktitle = {Proceedings of the OOPSLA '98 workshop on Formal Underpinnings of Java}, year = 1998, address = {Vancouver, BC, Canada}, month = oct } @InProceedings{Jones1995FunctionalProgramming, author = {Mark P. Jones}, title = {Functional Programming with Overloading and Higher-Order Polymorphism}, booktitle = {First International Spring School on Advanced Functional Programming Techniques}, pages = "97-136", year = 1995, volume = 925, series = LNCS, address = {B{\aa}stad, Sweden}, month = may, publisher = SV } @TechReport{Appel1994MakingLambda, author = {Andrew W. Appel and Trevor Jim}, title = {Making Lambda Calculus Smaller, Faster}, institution = {Princeton University}, year = 1994, number = {CS-TR-477-94}, month = nov } @Misc{Kelsey1997PreScheme, author = {Richard Kelsey}, title = {Pre-Scheme: A Scheme Dialect for Systems Programming}, howpublished = {Available from: \url{http://mumble.net/~kelsey}, last visisted: 2005-06-06}, month = jun, year = 1997 } @InProceedings{Shivers2003CFARetrospect, author = {Olin Shivers}, title = {Higher-order control-flow analysis in retrospect: Lessons learned, lessons abandoned}, booktitle = {20 years of the ACM/SIGPLAN Conference on Programming Language Design and Implementation (1979--1999): A Selection, 2003}, year = 2003 } @inproceedings{ Steele1994BuildingInterpreters, author = "Guy L. {Steele, Jr.}", title = "Building interpreters by composing monads", booktitle = "Conference record of {POPL} '94, 21st {ACM {SIGPLAN}-{SIGACT}} Symposium on Principles of Programming Languages: Portland, Oregon, January 17--21, 1994", publisher = ACM, address = "New York, NY, USA", editor = "{ACM}", isbn = "0-89791-636-0", pages = "472--492", year = 1994, url = "citeseer.ist.psu.edu/steele94building.html" } @Article{Morrisett2002STAL, author = {Greg Morrisett and Karl Crary and Neal Glew and David Walker}, title = {Stack-Based Typed Assembly Language}, journal = {Journal of Functional Programming}, year = 2002, volume = 12, number = 1, pages = {43--88}, month = jan } @PhdThesis{Glew2000PhD, author = {Neal Glew}, title = {Low-Level Type Systems for Modularity and Object-Oriented Constructs}, school = {Cornell University}, year = 2000, address = {4130 Upson Hall, Ithaca, NY 14853-7501, USA}, month = jan } @inproceedings {Greiner1996ProvablyImplementation, author = "John Greiner and Guy~E. Blelloch", title = "A Provably Time-Efficient Parallel Implementation of Full Speculation", booktitle = "Proceedings of the 23rd ACM Symposium on Principles of Programming Languages", year = 1996, month = jan, pages = "309--321" } @inproceedings {Blelloch1996ProvableNesl, author = "Guy~E. Blelloch and John Greiner", title = "A Provable Time and Space Efficient Implementation of NESL", booktitle = "ACM SIGPLAN International Conference on Functional Programming", year = 1996, month = may, pages = "213--225" } @Misc{Harper2004TheoryAndPractice, author = {Robert Harper}, title = {Programming Languages: Theory and Practice}, howpublished = {Available on the World Wide Web: \url{http://www-edlab.cs.umass.edu/cs530/Harper/HarperDec17-2004.pdf}, last visited: 2005-06-07}, month = dec, year = 2004, note = {Draft} } @inproceedings{Brassel2005RuntimeProfiling, author = "B. Brassel and M. Hanus and F. Huch and J. Silva and G. Vidal", title = "{Runtime Profiling of Functional Logic Programs}", booktitle = "Logic-based Program Synthesis and Transformation (revised and selected papers from LOPSTR'04)", editor = "Sandro Etalle", publisher = "Springer LNCS 3573", pages = "182-197", year = 2005, } @InProceedings{Sansom1995TimeAndSpace, author = {Patrick M. Sansom and Simon L. {Peyton Jones}}, title = {Time and space profiling for non-strict, higher-order functional languages}, booktitle = {Proceedings of 22nd ACM Symposium on Principles of Programming Languages}, year = 1995, address = {San Francisco}, month = jan } @InProceedings{Sansom1993GenerationalGC, author = {Patrick M. Sansom and Simon L. {Peyton Jones}}, title = {Generational garbage collection for Haskell}, booktitle = {Proceedings of FPCA'93}, year = 1993 } @Misc{Michaelson2003FSM-Hume, author = {Greg Michaelson and Kevin Hammond and Jocelyn Serot}, title = {FSM-Hume: Programming Resource-Limited Systems using Bounded Automata}, howpublished = {Available on the World Wide Web: \url{http://www-fp.dcs.st-and.ac.uk/hume/papers/}}, month = aug, year = 2003, note = {Submitted to SAC'04} } @InProceedings{Mogensen1992SelfApplicable, author = {Torben {\AE}. Mogensen}, title = {Self-applicable Partial Evaluation for Pure Lambda Calculus}, booktitle = {ACM SIGPLAN Conference on Partial Evaluation and Semantics-based Program Manipulation}, year = 1992 } @InProceedings{Asai1997PESideEffects, author = {Kenichi Asai and Hidehiko Masuhara and Akinori Yonezawa}, title = {Partial Evaluation of Call-by-value Lambda-calculus with Side-effects}, booktitle = {ACM SIGPLAN Conference on Partial Evaluation and Semantics-Based Program Manipulation (PEPM '97)}, year = 1997, month = jun } @PhdThesis{Amtoft1993Sharing, author = {Torben Amtoft}, title = {Sharing of Computations}, school = {Computer Science Department, Aarhus University}, year = 1993, address = {Ny Munkegade, DK-8000 {\AA}rhus C, Denmark}, month = aug } @inproceedings{Henglein1995SafePolymorphic, author = {Fritz Henglein and Jakob Rehof}, title = {Safe polymorphic type inference for a dynamically typed language: translating Scheme to ML}, booktitle = {FPCA '95: Proceedings of the seventh international conference on Functional programming languages and computer architecture}, year = 1995, isbn = {0-89791-719-7}, pages = {192--203}, location = {La Jolla, California, United States}, doi = {http://doi.acm.org/10.1145/224164.224203}, publisher = ACM, address = {New York, NY, USA}, } @InProceedings{Baars2002TypingDynamicTyping, author = {Arthur I. Baars and S. Doaitse Swierstra}, title = {Typing Dynamic Typing}, booktitle = {ICFP'02}, year = 2002, address = {Pittsburgh, Pennsylvania, USA}, month = oct } @PHDTHESIS{Sands1999PhD, author = {D. Sands}, title = {Calculi for Time Analysis of Functional Programs}, school = {Department of Computing, Imperial College}, year = {1990}, address = {University of London}, month = {September}, abstract = {Techniques for reasoning about extensional properties of functional programs are well-understood, but methods for analysing the underlying intensional, or operational properties have been much neglected. This thesis presents the development of several calculi for time analysis of functional programs. We focus on two features, higher-order functions and lazy evaluation, which contribute much to the expressive power and semantic elegance of functional languages, but serve to make operational properties more opaque. Analysing higher-order functions is problematic because complexity is dependent not only on the cost of computing, but also on the cost of {\em applying}\ function-valued expressions. Techniques for statically deriving programs which compute time-cost in the presence of arbitrary higher-order functions are developed. The key to this process is the introduction of syntactic structures called {\em cost-closures}, which enable intensional properties to be carried by functions. The approach is formalised by the construction of an appropriate cost-model, against which the correctness of the derivation is proved. A specific factorisation tactic for reasoning about higher-order functions out of context is illustrated. Reasoning about lazy evaluation (ie call-by-name, or more usually, call-by-need) is problematic because the cost of evaluating an expression cannot be understood simply from the costs of its sub-expressions. A direct calculus for reasoning about a call-by-name language with lazy lists is derived from a simple operational model. In order to extend this calculus with a restricted form of equational reasoning, a nonstandard notion of operational approximation called {\em cost-simulation} is developed, by analogy with {\em (bi)simulation} in CCS. The problem with calculi of the above form, based directly on an operational model, is that they do not yield a {\em compositional} description of cost, and cannot model {\em lazy evaluation} (graph-reduction) easily. We show how a description of the {\em context} in which a function is evaluated can be used to parameterise two types of time-equation: {\em sufficient-time} equations and {\em necessary-time} equations, which together provide bounds on the exact time-cost of lazy evaluation. This approach is extended to higher-order functions using a modification of the cost-closure technique.}, ps = {http://www.cs.chalmers.se/~dave/papers/PhDthesis.ps}, } @Book{Rabhi1999Algorithms, author = {Fethi Rabhi and Guy Lapalme}, title = {Algorithms -- A Functional Language Approach}, publisher = AW, year = 1999 } @TechReport{Shivers2004BottomUpBetaSubstitution, author = {Olin Shivers and Mitchell Wand}, title = {Bottum-Up $\beta$-Substitution: Uplinks and $\lambda$-DAGs}, institution = {BRICS, Department of Computer Science, University of Aarhus}, year = 2004, number = {RS-04-38}, month = dec } @InProceedings{Wakeling1995ThrowAway, author = {D. Wakeling}, title = {A Throw-Away Compiler for a Lazy Functional Language}, booktitle = {Proceedings of the Fuji International Workshop on Functional and Logic Programming}, pages = {287--300}, year = 1995, month = jul, organization = {World Scientific} } @InProceedings{Pil1996FileIO, author = {Marco Pil}, title = {First Class File I/O}, booktitle = {Proceedings of IFL'96}, year = 1996, series = LNCS, publisher = SV } @Misc{LeoneDeferredCompilation, author = {Mark Leone and Peter Lee}, title = {Deferred compilation: The automation of run-time code generation}, howpublished = {Available from: \url{http://www-2.cs.cmu.edu/~petel/papers/staged/deferred-comp.ps}} } @InProceedings{Cridlig1992OptimizingMLCompiler, author = {R{\'e}gis Cridlig}, title = {An optimizing ML to C compiler}, booktitle = {ACM SIGPLAN '92 Workshop on ML and its applications}, year = 1992 } @TechReport{Ducasse1995ProgrammingEnvironments, author = {Mirielle Ducass{\'e} and Jacques Noy{\'e}}, title = {Logic Programming Environments: Dynamic Program Analysis and Debugging}, institution = {INRIA}, year = 1995, type = {Rapport de recherche}, number = {N${}^{\rm o}$2618}, month = jul } @article{Dornic1992PolymorphicTimeSystems, author = {Vincent Dornic and Pierre Jouvelot and David K. Gifford}, title = {Polymorphic time systems for estimating program complexity}, journal = {ACM Lett. Program. Lang. Syst.}, volume = 1, number = 1, year = 1992, issn = {1057-4514}, pages = {33--45}, doi = {http://doi.acm.org/10.1145/130616.130620}, publisher = ACM, address = {New York, NY, USA}, } @article{Danvy1992CPSTransformation, author = {Olivier Danvy and John Hatcliff}, title = {CPS-transformation after strictness analysis}, journal = {ACM Lett. Program. Lang. Syst.}, volume = 1, number = 3, year = 1992, issn = {1057-4514}, pages = {195--212}, doi = {http://doi.acm.org/10.1145/151640.151641}, publisher = ACM, address = {New York, NY, USA}, } @article{Moreau2005ResourceAwareProgramming, author = {Luc Moreau and Christian Queinnec}, title = {Resource aware programming}, journal = {ACM Trans. Program. Lang. Syst.}, volume = 27, number = 3, year = 2005, issn = {0164-0925}, pages = {441--476}, doi = {http://doi.acm.org/10.1145/1065887.1065891}, publisher = ACM, address = {New York, NY, USA}, } @article{Chitil2005PrettyPrinting, author = {Olaf Chitil}, title = {Pretty printing with lazy dequeues}, journal = {ACM Trans. Program. Lang. Syst.}, volume = 27, number = 1, year = 2005, issn = {0164-0925}, pages = {163--184}, doi = {http://doi.acm.org/10.1145/1053468.1053473}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{MacLachlan1992PythonCompiler, author = {Robert A. MacLachlan}, title = {The Python compiler for CMU Common Lisp}, booktitle = {LFP '92: Proceedings of the 1992 ACM conference on LISP and functional programming}, year = 1992, isbn = {0-89791-481-3}, pages = {235--246}, location = {San Francisco, California, United States}, doi = {http://doi.acm.org/10.1145/141471.141558}, publisher = ACM, address = {New York, NY, USA}, } @InProceedings{Frauenstein1996CommunicatingAgents, author = {Thomas Frauenstein and Wolfgang Grieskamp and Peter Pepper and Mario S{\"u}dholt}, title = {Communicating Functional Agents and their Application to Graphical User Interfaces}, booktitle = {Proceedings of the 2nd International Conference on Perspectives of System Informatics}, year = 1996, address = {Novosibirsk}, month = jun } @MastersThesis{Schroeder1994Striktheit, author = {Jacob Schr{\"o}der}, title = {{Entwurf und Implementierung eines N{\"a}herungsverfahrens f{\"u}r Striktheitsanalyse}}, school = {Technische Universit{\"a}t Berlin}, year = 1994, type = {Studienarbeit}, month = may } @MastersThesis{Karatschai1998SharingAnalyse, author = {Olaf Karatschai}, title = {Statische Sharing-Analyse zur Optimierung von Zwischencode einer funktionalen Programmiersprache}, school = {Technische Universit{\"a}t Berlin}, year = 1998, type = {Diplomarbeit}, month = jul } @Article{HallOverloadingEvaluators, author = {Cordelia V. Hall}, title = {Using Overloading to Express Distinctions Between Evaluators}, journal = {Information Processing Letters}, number = 48, pages = {1--8}, year = 1993, note = {To appear} } @inproceedings{Stoyle2005MutatisMutandis, author = {Gareth Stoyle and Michael Hicks and Gavin Bierman and Peter Sewell and Iulian Neamtiu}, title = {Mutatis mutandis: safe and predictable dynamic software updating}, booktitle = {POPL '05: Proceedings of the 32nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages}, year = 2005, isbn = {1-58113-830-X}, pages = {183--194}, location = {Long Beach, California, USA}, doi = {http://doi.acm.org/10.1145/1040305.1040321}, publisher = ACM, address = {New York, NY, USA}, } @InProceedings{Hope2005AccurateStepCounting, author = {Catherine Hope and Graham Hutton}, title = {Accurate Step Counting}, booktitle = {Proceedings of the 17th International Workshop on Implementation and Application of Functional Languages}, year = 2005, address = {Dublin, Ireland} } @InProceedings{Oliviera2005TypeCase, author = {Bruno C. d. S. Oliviera and Jeremy Gibbons}, title = {{TypeCase}: A design pattern for type-indexed Functions}, booktitle = {Haskell Workshop}, year = 2005, note = {Submitted for publication} } @InProceedings{Hallgren2004OverviewProgramatica, author = {Thomas Hallgren and James Hook and Mark P. Jones and Dick Kieburtz}, title = {An Overview of the Programatica ToolSet}, booktitle = {HCSS04}, year = 2004 } @Misc{CardelliImplementing, author = {Luca Cardelli}, title = {Implementing Functional Languages}, howpublished = {Available from: \url{http://research.microsoft.com/Users/luca/Papers/CompilingML.pdf}} } @Book{Turbak2005ConceptsPL, author = {Franklyn Turbak and David Gifford and Mark Sheldon}, title = {Design Concepts in Programming Languages}, publisher = {Internal}, year = 2005, note = {Draft version of 2005-07-01} } @article{Lampson1983Hints, author = {Butler W. Lampson}, title = {Hints for computer system design}, journal = {SIGOPS Oper. Syst. Rev.}, volume = 17, number = 5, year = 1983, issn = {0163-5980}, pages = {33--48}, doi = {http://doi.acm.org/10.1145/773379.806614}, publisher = ACM, address = {New York, NY, USA}, } @article{Massalin1987Superoptimizer, author = {Henry Massalin}, title = {Superoptimizer: a look at the smallest program}, journal = {SIGOPS Oper. Syst. Rev.}, volume = 21, number = 4, year = 1987, issn = {0163-5980}, pages = {122--126}, doi = {http://doi.acm.org/10.1145/36204.36194}, publisher = ACM, address = {New York, NY, USA}, } @article{Steenkiste1987Tags, author = {Peter Steenkiste and John Hennessy}, title = {Tags and type checking in LISP: hardware and software approaches}, journal = {SIGOPS Oper. Syst. Rev.}, volume = 21, number = 4, year = 1987, issn = {0163-5980}, pages = {50--59}, doi = {http://doi.acm.org/10.1145/36204.36183}, publisher = ACM, address = {New York, NY, USA}, } @article{Dodge2005Initialization, author = {Catherine Dodge and Cynthia Irvine and Thuy Nguyen}, title = {A study of initialization in Linux and OpenBSD}, journal = {SIGOPS Oper. Syst. Rev.}, volume = 39, number = 2, year = 2005, issn = {0163-5980}, pages = {79--93}, doi = {http://doi.acm.org/10.1145/1055218.1055226}, publisher = ACM, address = {New York, NY, USA}, } @Book{Berkeley1966LISP, editor = {Edmund C. Berkeley and Daniel G. Bobrow}, title = {The Programming Language LISP: Its Operation and Applications}, publisher = MIT, year = 1966 } @Book{McCarthy1962LISP15, author = {John McCarthy and Paul W. Abrahams and Daniel J Edwards and Timothy P. Hart and Michael I. Levin}, title = {LISP 1.5 Programmer's Manual}, publisher = MIT, year = 1962 } @InProceedings{Meijer2004StaticDynamic, author = {Erik Meijer and Peter Drayton}, title = {Static Typing Where Possible, Dynamic Typing When Needed: The End of the Cold War Between Programming Languages}, booktitle = {Revival of Dynamic Languages '04}, year = 2004, note = {Intended for submission} } @article{Ditzel1982CMachineStackCache, author = {David R. Ditzel and H. R. McLellan}, title = {{Register allocation for free: The C machine stack cache}}, journal = {SIGPLAN Notices}, volume = 17, number = 4, year = 1982, issn = {0362-1340}, pages = {48--56}, doi = {http://doi.acm.org/10.1145/960120.801825}, publisher = ACM, address = {New York, NY, USA}, } @article{Steenkiste1988LISPonRISC, author = {Peter Steenkiste and John Hennessy}, title = {Lisp on a Reduced-Instruction-Set Processor: Characterization and Optimization}, journal = {Computer}, volume = 21, number = 7, year = 1988, issn = {0018-9162}, pages = {34--45}, doi = {http://dx.doi.org/10.1109/2.67}, publisher = {IEEE Computer Society Press}, address = {Los Alamitos, CA, USA}, } @MastersThesis{Alanko2004TypesReflection, author = {Lauri E. Alanko}, title = {Types and Reflection}, school = {University of Helsinki, Department of Computer Science}, year = 2004, month = nov } @InProceedings{Leone1996DeclarativeApproach, author = {Mark Leone and Peter Lee}, title = {A declarative appoach to run-time code generation}, booktitle = {Workshop on Compiler Support for System Software (WCSSS)}, year = 1996 } @Article{Hornof1999CertifyingRuntimeCG, author = {Luke Hornof and Trevor Jim}, title = {Certifying Compilation and Run-time Code Generation}, journal = {Higher-Order and Symbolic Computation}, year = 1999, volume = 12, number = 4, pages = {337--375}, month = dec } @inproceedings{Hicks1993StorageReclamation, author = {James Hicks}, title = {Experiences with compiler-directed storage reclamation}, booktitle = {FPCA '93: Proceedings of the conference on Functional programming languages and computer architecture}, year = 1993, isbn = {0-89791-595-X}, pages = {95--105}, location = {Copenhagen, Denmark}, doi = {http://doi.acm.org/10.1145/165180.165194}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Sekar2003ModelCarrying, author = {R. Sekar and V.N. Venkatakrishnan and Samik Basu and Sandeep Bhatkar and Daniel C. DuVarney}, title = {Model-carrying code: a practical approach for safe execution of untrusted applications}, booktitle = {SOSP '03: Proceedings of the nineteenth ACM symposium on Operating systems principles}, year = 2003, isbn = {1-58113-757-5}, pages = {15--28}, location = {Bolton Landing, NY, USA}, doi = {http://doi.acm.org/10.1145/945445.945448}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Ghemawat2003GoogleFileSystem, author = {Sanjay Ghemawat and Howard Gobioff and Shun-Tak Leung}, title = {The Google file system}, booktitle = {SOSP '03: Proceedings of the nineteenth ACM symposium on Operating systems principles}, year = 2003, isbn = {1-58113-757-5}, pages = {29--43}, location = {Bolton Landing, NY, USA}, doi = {http://doi.acm.org/10.1145/945445.945450}, publisher = ACM, address = {New York, NY, USA}, } @article{Cooper2005ACME, author = {Keith D. Cooper and Alexander Grosul and Timothy J. Harvey and Steven Reeves and Devika Subramanian and Linda Torczon and Todd Waterman}, title = {ACME: adaptive compilation made efficient}, journal = {SIGPLAN Notices}, volume = 40, number = 7, year = 2005, issn = {0362-1340}, pages = {69--77}, doi = {http://doi.acm.org/10.1145/1070891.1065921}, publisher = ACM, address = {New York, NY, USA}, } @article{Hertz2005GCwithoutPaging, author = {Matthew Hertz and Yi Feng and Emery D. Berger}, title = {Garbage collection without paging}, journal = {SIGPLAN Notices}, volume = 40, number = 6, year = 2005, issn = {0362-1340}, pages = {143--153}, doi = {http://doi.acm.org/10.1145/1064978.1065028}, publisher = ACM, address = {New York, NY, USA}, } @InProceedings{Nierstrasz2005DynamicLang, author = {Oscar Nierstrasz and Alexandre Bergel and Marcus Denker and St{\'e}phane Ducasse and Markus G{\"a}lli and Roel Wuyts}, title = {On the Revival of Dynamic Languages}, booktitle = {Proceedings Software Composition 2005}, year = 2005, editor = {Thomas Gschwind and Uwe A{\ss}mann}, volume = 2005, series = {LNCS}, note = {To appear} } @Book{PeytonJones1991Implementing, author = {Simon L. {Peyton Jones} and David R. Lester}, title = {Implementing Functional Languages: a tutorial}, publisher = {University of Glasgow and University of Manchester}, year = 1991 } @InProceedings{Mucha2004LambdaLiftingScheme, author = {Barbara Mucha and Marco T. Moraz{\'a}n}, title = {Lambda-Lifting Scheme Programs}, booktitle = {Proceedings of Mid-Atlantic Student Workshop on Programming Languages and Systems}, year = 2004, organization = {Seton Hall University} } @InProceedings{Morazan2003TowardsDVMFriendly, author = {Marco T. Moraz{\'a}n}, title = {Towards DVM Friendly First-Class Functions}, booktitle = {Draft Proceedings of TFP 2003 Fourth symposium on Trends in Functional Programming}, year = 2003, address = {Edinburgh, Scotland}, month = sep } @Misc{MLton2006MLtonHomepage, author = {{MLton Developers}}, title = {{MLton Standard ML Compiler Homepage}}, howpublished = {Available from: \url{http://mlton.org}}, year = 2006, note = {Last visited: 2008-10-07} } @Misc{Bigloo2008BiglooHomepage, author = {{Bigloo Developers}}, title = {{Bigloo Homepage}}, howpublished = {Available from: \url{http://www-sop.inria.fr/mimosa/fp/Bigloo/}}, year = 2008, note = {Last visited: 2008-10-07} } @Misc{Sun2008JDK5Homepage, author = {{Sun, Inc.}}, title = {{Java SE Downloads - Previous Release - J2SE 5.0}}, howpublished = {Available from: \url{http://java.sun.com/javase/downloads/index_jdk5.jsp}}, year = 2008, note = {Last visited: 2008-10-07} } @Misc{Opal2004OpalHomepage, author = {{Opal Group}}, title = {{Opal Project Homepage}}, howpublished = {Available from: \url{http://uebb.cs.tu-berlin.de/~opal}}, year = 2004, note = {Last visited: 2008-10-07} } @Misc{GHC2006GHCHomepage, author = {{GHC Developers}}, title = {{Glasgow Haskell Compiler Homepage}}, howpublished = {Available from: \url{http://www.haskell.org/ghc}}, year = 2008, note = {Last visited: 2008-10-07} } @Misc{Hugs2006HugsHomepage, author = {{Hugs Developers}}, title = {{Hugs Homepage}}, howpublished = {Available from: \url{http://www.haskell.org/hugs}}, year = 2006, note = {Last visited: 2006-09-19} } @Misc{GCC2005GCCHomepage, author = {{GCC Developers}}, title = {{GNU Compiler Collection Homepage}}, howpublished = {Available from: \url{http://gcc.gnu.org}}, year = 2008, note = {Last visited: 2008-10-07} } @Misc{Siskind2005Software, author = {Jeffrey Mark Siskind}, title = {{Jeffrey Mark Siskind's Software}}, howpublished = {Available from: \url{http://www.ece.purdue.edu/~qobi/software.html}}, year = 2005, note = {Last visited: 2005-08-04} } @inproceedings{Ganz1999Trampolined, author = "Steven E. Ganz and Daniel P. Friedman and Mitchell Wand", title = "Trampolined Style", booktitle = "International Conference on Functional Programming", pages = "18-27", year = 1999, url = "citeseer.ist.psu.edu/ganz99trampolined.html" } @inproceedings{Garrido2002RefactoringC, author = {Alejandra Garrido and Ralph Johnson}, title = {Challenges of refactoring C programs}, booktitle = {IWPSE '02: Proceedings of the International Workshop on Principles of Software Evolution}, year = 2002, isbn = {1-58113-545-9}, pages = {6--14}, location = {Orlando, Florida}, doi = {http://doi.acm.org/10.1145/512035.512039}, publisher = ACM, address = {New York, NY, USA}, } @Book{Hyde2003AoAL, author = {Randall Hyde}, title = {The Art of Assembly Language}, publisher = {No Starch Press}, year = 2003, month = sep } @Book{Aaby2003CompilerConstruction, author = {Anthony Aaby}, title = {Compiler Construction using Flex and Bison}, publisher = {WWW}, year = 2003 } @Book{Graham1993OnLisp, author = {Paul Graham}, title = {On Lisp}, publisher = PH, year = 1993 } @Book{Finseth1991Craft, author = {Craig A. Finseth}, title = {The Craft of Text Editing -- Emacs for he Modern World}, publisher = SV, year = 1991, note = {Available from: \url{http://www.finseth.com/craft}} } @Book{Hailperin1999ConcreteAbstractions, author = {Max Hailperin and Barbara Kaiser and Karl Knight}, title = {Concrete Abstractions: An Introduction to Computer Science Using Scheme}, publisher = {Brooks/Cole Publishing Company}, year = 1999 } @InProceedings{Norrish2002RigourIsGood, author = {Michael Norrish and Peter Sewell and Keith Wansbrough}, title = {Rigour is good for you and feasible: reflections on formal treatments of C and UDP sockets}, booktitle = {Tenth ACM SIGOPS European Workshop: Can We Really Depend on an OS?}, year = 2002, month = sep } @PhdThesis{Norrish1998PhD, author = {Michael Norrish}, title = {C formalised in HOL}, school = {Computer Laboratory, University of Cambridge}, year = 1998 } @InProceedings{Umeda2005MultiThreading, author = {Masanobu Umeda and Keiichi Katamine and Isao Nagasawa and Masaaki Hashimoto and Osamu Takata}, title = {Multi-Threading Inside Prolog for Knowledge-Based Enterprise Applications}, booktitle = {Proceedings of 16th International Conference on Applications of Declarative Programming and Knowledge Management INAP2005}, year = 2005, address = {Waseda University, Fukuoka, Japan}, month = oct, note = {Submitted} } @TechReport{Grabmueller2006ImplementingClosures, author = {Martin Grabm{\"u}ller}, title = {{Implementing Closures using Run-time Code Generation}}, institution = {Technische Universit{\"a}t Berlin}, year = 2006, type = {Research report}, number = {\mbox{2006-02} in {\em Forschungsberichte Fakult{\"a}t IV -- Elektrotechnik und Informatik}}, month = feb, abstract = {This report describes an implementation of a purely functional strict programming language which relies heavily on run-time code generation. Closures are not implemented as data structures containing code pointers and bindings for free variables, but instead by generating the machine code for a closure each time it is constructed. The actual values of free variables are embedded into the machine code instead of using references to a closure record. The goal of this experimental implementation is to examine the possibilities of run-time code generation -- and just-in-time compilation in general -- in the context of purely functional languages. The implementation details are described and the performance of several example programs is measured and compared to other functional language implementations. } } @InProceedings{Grabmueller2006GenericFPDynOpt, author = {Martin Grabm{\"u}ller}, title = {A Generic Model of Functional Programming With Dynamic Optimization}, booktitle = {Draft Proceedings of the Seventh Symposium on Trends in Functional Programming (TFP 2006)}, year = 2006, editor = {Henrik Nilsson}, month = apr, publisher = {University of Nottingham}, abstract = {Modern virtual machines for object-oriented machines use dynamic (run-time) compilation in order to ensure fast execution while maintaining security and portability of program code. Several virtual machine implementations using this compilation model have been implemented and are successfully used in practice, but to date no formal model of program execution and dynamic compilation has been published. This paper presents a formal framework for describing dynamically optimizing virtual machines in the context of purely functional programming languages. } } @InProceedings{Grabmueller2007ModelFPDynCompOpt, author = {Martin Grabm{\"u}ller}, title = {A Model of Functional Programming With Dynamic Compilation and Optimization}, booktitle = {Trends in Functional Programming}, year = 2007, editor = {Henrik Nilsson}, volume = 7, month = apr, publisher = {Intellect}, abstract = {Modern virtual machines for object-oriented languages use dynamic (run-time) compilation in order to ensure fast execution while maintaining security and portability of program code. Several virtual machine implementations using this compilation model have been implemented and are successfully used in practice, but have rarely been used in the implementation of functional languages. This paper presents a framework for describing dynamically optimizing virtual machines in the context of purely functional programming languages.} } @article{Wegman1986POPLRefree, author = {M. N. Wegman}, title = {What it's like to be a POPL referee; or how to write an extended abstract so that it is more likely to be accepted}, journal = {SIGPLAN Notices}, volume = 21, number = 5, year = 1986, issn = {0362-1340}, pages = {91--95}, doi = {http://doi.acm.org/10.1145/14947.14955}, publisher = ACM, address = {New York, NY, USA}, } @article{Levin1983SOSPSubmissions, author = {Roy Levin and David D. Redell}, title = {An Evaluation of the Ninth SOSP Submissions or How (and How Not) to Write a Good Systems Paper}, journal = {Operating Systems Review}, volume = 17, number = 3, year = 1983, pages = {35--40}, publisher = ACM, address = {New York, NY, USA}, } @Misc{Pike2005Sawzall, author = {Rob Pike and Sean Dorward and Robert Griesemer and Sean Quinlan}, title = {Interpreting the Data: Parallel Analysis with Sawzall}, howpublished = {Available from: \url{http://labs.google.com/papers/sawzall.html}}, month = aug, year = 2005, note = {Draft submitted to {\em Scientific Programming Journal} Special Issue on Grids and Worldwide Computing Programming Models and Infrastructure} } @inproceedings{Haahr1993EsHOShell, author = "Paul Haahr and Byron Rakitzis", title = "Es: A shell with higher-order functions", booktitle = "{USENIX} Winter", pages = "51-60", year = 1993, url = "citeseer.ist.psu.edu/haahr93es.html" } @inproceedings{Dean1994InliningTrials, author = "Jeffrey Dean and Craig Chambers", title = "Towards Better Inlining Decisions Using Inlining Trials", booktitle = "Conference on {LISP} and Functional Programming", pages = "273-282", year = 1994, url = "citeseer.ist.psu.edu/195684.html" } @misc{ Scales2000SwiftJavaCompiler, author = "D. Scales and K. Randall and S. Ghemawat and J. Dean", title = "The Swift Java Compiler: Design and Implementation", text = "D. J. Scales, K. H. Randall, S. Ghemawat, and J. Dean. The Swift Java Compiler: Design and Implementation. Technical Report 2000/2, Compaq Western Research Laboratory, Apr. 2000.", year = 2000, url = "citeseer.ist.psu.edu/scales00swift.html" } @InProceedings{Consel1993PartialEvaluation, author = {Charles Consel and Olivier Danvy}, title = {Partial Evaluation: Principles and Perspectives}, booktitle = {Proceedings of the Twentieth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages}, year = 1993, month = jan, publisher = ACM } @InProceedings{Zhu2005StatefulViews, author = {Dengping Zhu and Hongwei Xi}, title = {Safe Programming with Pointers Through Stateful Views}, booktitle = {Practical Aspects of Declarative Languages: 7th International Symposium (PADL 2005)}, pages = {83--97}, year = 2005, editor = {Manuel Hermenegildo and Daniel Cabeza}, volume = 3350, series = LNCS, address = {Long Beach, CA, USA}, month = jan } @InProceedings{Alimarine2005ImprovedFusion, author = {Artem Alimarine and Sjaak Smetsers}, title = {Improved Fusion for Optimizing Generics}, booktitle = {Practical Aspects of Declarative Languages: 7th International Symposium (PADL 2005)}, pages = {203--218}, year = 2005, editor = {Manuel Hermenegildo and Daniel Cabeza}, volume = 3350, series = LNCS, address = {Long Beach, CA, USA}, month = jan } @article{Findler2004Slidewhow, author = {Robert Bruce Findler and Matthew Flatt}, title = {Slideshow: functional presentations}, journal = {SIGPLAN Notices}, volume = 39, number = 9, year = 2004, issn = {0362-1340}, pages = {224--235}, doi = {http://doi.acm.org/10.1145/1016848.1016880}, publisher = ACM, address = {New York, NY, USA}, } @article{Sheard2004LanguagesFuture, author = {Tim Sheard}, title = {Languages of the future}, journal = {SIGPLAN Notices}, volume = 39, number = 12, year = 2004, issn = {0362-1340}, pages = {119--132}, doi = {http://doi.acm.org/10.1145/1052883.1052897}, publisher = ACM, address = {New York, NY, USA}, } @InProceedings{Sheard2003PureLanguage, author = {Tim Sheard}, title = {A Pure Language with Default Strict Evaluation Order and Explicit Laziness}, booktitle = {Haskell Workshop 03}, year = 2003, note = {Submitted} } @InProceedings{Jones1999THiH, author = {Mark P. Jones}, title = {{Typing Haskell in Haskell}}, booktitle = {Proceedings of the 1999 Haskell Workshop}, year = 1999, note = {Published in Technical Report UU-CS-1999-28, Department of Computer Science, University of Utrecht} } @PhdThesis{Briggs1992PhD, author = {Preston Briggs}, title = {Register Allocation via Graph Coloring}, school = {Rice University}, year = 1992, month = apr } @article{Cooper2001OperatorStrength, author = {Keith D. Cooper and L. Taylor Simpson and Christopher A. Vick}, title = {Operator strength reduction}, journal = {Transactions on Programming Languages and Systems}, volume = 23, number = 5, pages = {603--625}, year = 2001, } @Article{Leucker2005FPVerification, author = {Martin Leucker and Thomas Noll and Perdita Stevens and Michael Weber}, title = {Functional programming languages for verification tools: a comparison of Standard ML and Haskell}, journal = {International Journal on Software Tools for Technology Transfer (STTT)}, year = 2005, volume = 7, number = 2, pages = {184--194}, month = apr } @article{Chow1988Minimizing, author = {F. C. Chow}, title = {Minimizing register usage penalty at procedure calls}, journal = {SIGPLAN Notices}, volume = 23, number = 7, year = 1988, issn = {0362-1340}, pages = {85--94}, doi = {http://doi.acm.org/10.1145/960116.53999}, publisher = ACM, address = {New York, NY, USA}, } @InProceedings{Robinson2001Economics, author = {Arch D. Robinson}, title = {The Impact of Economics on Compiler Optimization}, booktitle = {Proceedings of the ACM 2001 Java Grande Conference}, year = 2001, month = jun } @inproceedings{Lu1997RegisterPromotion, author = {John Lu and Keith D. Cooper}, title = {Register promotion in C programs}, booktitle = {PLDI '97: Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation}, year = 1997, isbn = {0-89791-907-6}, pages = {308--319}, location = {Las Vegas, Nevada, United States}, doi = {http://doi.acm.org/10.1145/258915.258943}, publisher = ACM, address = {New York, NY, USA}, } @article{Hannan2005HOUncurrying, abstract = { We present a formal specification of unCurrying for a higher-order, functional language with ML-style let-polymorphism. This specification supports the general unCurrying of functions, even for functions that are passed as arguments or returned as values. The specification also supports partial unCurrying of any consecutive parameters of a function, rather than only unCurrying all of a function's parameters. We present the specification as a deductive system that axiomatizes a judgment relating a source term with an unCurried form of the term. We prove that this system relates only typable terms and that it is correct with respect to an operational semantics. We define a practical algorithm, based on algorithm W, that implements unCurrying and prove this algorithm sound and complete with respect to the deductive system. This algorithm generates maximally unCurried forms of source terms. These results provide a declarative framework for reasoning about unCurrying and support a richer form of unCurrying than is currently found in compilers for functional languages. }, author = {John Hannan and Patrick Hicks}, date-modified ={2005-06-20 13:40:45 -0400}, journal = {Journal of Higher Order and Symbolic Computation}, pdf = {http://www.cse.psu.edu/~phicks/pubs/papers/HOUncurryingJournal.pdf}, number = 3, pages = {179--216}, title = {Higher-Order Uncurrying}, volume = 13, year = 2000 } @inproceedings{Hannan1998ArityRaising, abstract = {Arity raising, also known as variable splitting or flattening, is the program optimization which transforms a function of one argument into a function of several arguments by decomposing the structure of the original one argument into individual components in that structure. This optimization eliminates the need for the structuring of the components and also allows more arguments to be passed in registers during a function call. We present a formal specification of arity raising for a higher-order functional language. This specification supports the general arity raising of functions, even for functions which are passed as arguments or returned as values. We define a practical algorithm, based on algorithm W, which implements arity raising, and we prove this algorithm sound with respect to the deductive system. These results provide a declarative framework for reasoning about arity raising and support a richer form of the transformation than is currently found in compilers for functional languages.}, address = {Baltimore, MD}, author = {John Hannan and Patrick Hicks}, booktitle = {Proceedings of 3rd ACM SIGPLAN International Conference on Functional Programming}, date-modified ={2005-06-20 13:40:45 -0400}, pdf = {http://www.cse.psu.edu/~phicks/pubs/papers/HOArityRaising.pdf}, month = SEP, pages = {27--38}, title = {Higher-Order Arity Raising}, year = 1998 } @TechReport{Danvy2004QuadraticLambdaLiftingTR, author = {Olivier Danvy and Ulrik P. Schultz}, title = {Lambda-Lifting in Quadratic Time}, institution = {BRICS, Department of Computer Science, University of Aarhus}, year = 2004, number = {RS-04-12}, month = jun } @Article{Danvy2004QuadraticLambdaLifting, author = {Olivier Danvy and Ulrik P. Schultz}, title = {Lambda-Lifting in Quadratic Time}, journal = {Journal of Functional and Logic Programming}, year = 2004, volume = 2004, number = 1, publisher = {EAPLS}, month = jul } @inproceedings{Kobayashi2000TypeBasedUVE, author = "Naoki Kobayashi", title = "Type-Based Useless Variable Elimination", booktitle = "Partial Evaluation and Semantic-Based Program Manipulation", pages = "84-93", year = 2000, url = "citeseer.ist.psu.edu/kobayashi99typebased.html" } @article{Kobayashi2001TypeBasedUVE, author = {Naoki Kobayashi}, title = {Type-Based Useless-Variable Elimination.}, journal = {Higher-Order and Symbolic Computation}, volume = 14, number = {2-3}, year = 2001, pages = {221-260}, bibsource = {DBLP, http://dblp.uni-trier.de} } @inproceedings{Fischbach2001TypeSystemsUVE, author = {Adam Fischbach and John Hannan}, title = {Type Systems for Useless-Variable Elimination}, booktitle = {PADO '01: Proceedings of the Second Symposium on Programs as Data Objects}, year = 2001, isbn = {3-540-42068-1}, pages = {25--38}, publisher = SV, address = {London, UK}, } @InProceedings{Hannan1995TypeClosureConversions, author = {John Hannan}, title = {Type Systems for Closure Conversions}, booktitle = {Proceedings of Workshop on Types for Program Analysis}, pages = {48--62}, year = 1995, editor = {H. R. Nielson and K. L. Solberg}, number = {PB-493}, series = {Daimi Reports} } @phdthesis{Erkoek2002PhD, author = "Levent {Erk\"{o}k}", title = "Value recursion in monadic computations", year = 2002, address = "Portland, Oregon", school = "OGI School of Science and Engineering, OHSU", } @Article{erwig2005VisualTypeInference, author = {Martin Erwig}, title = {Visual Type Inference}, journal = { Journal of Visual Languages and Computing}, year = 2005, note = {To appear} } @Article{Erwig2004Monadification, author = {Martin Erwig and Deling Ren}, title = {Monadification of Functional Programs}, journal = { Science of Computer Programming}, year = 2004, volume = 52, number = {1--3}, pages = {101--129} } @techreport{Glesner2005IntroCo, author = {Sabine Glesner}, type = {publikation}, title = {An Introduction to (Co)Algebras and (Co)Induction and their Application to the Semantics of Programming Languages}, year = 2005, month = aug, publisher = {Fakult{\"a}t f{\"u}r Informatik, Universit{\"a}t Karlsruhe}, number = {2005-22}, abstract = {This report summarizes operational approaches to the formal semantics of programming languages and shows that they can be interpreted inductively by least fixed points as well as coinductively by greatest fixed points. While the inductive interpretation gives semantics to all terminating programs, the coinductive one defines moreover also a semantics for all non-terminating programs. This is especially important in areas where programs do not terminate in general, e.g. data bases, operating systems, or control software in embedded systems. The semantic foundations described in this report can be used to verify that transformations (e.g. in compilers) of such software systems are correct. In the course of this report, coalgebras and coinduction are introduced, starting with a gentle intuitive motivation and ending with a detailed mathematical description within the notions of category theory.}, } @techreport{Glesner2005OptimierendeCompiler, author = {Sabine Glesner}, type = {publikation}, title = {Optimierende Compiler: Vertrauen ist gut, Verifikation ist besser!}, year = 2005, month = sep, publisher = {Fakult{\"a}t f{\"u}r Informatik, Universit{\"a}t Karlsruhe}, number = {2005-28} } @InProceedings{Pettyjohn2005GeneralizedStackInspection, author = {Greg Pettyjohn and John Clements and Joe Marshall and Shriram Krishnamurthi and Matthias Felleisen}, title = {Continuations from Generalized Stack Inspection}, booktitle = {ACM SIGPLAN International Conference on Functional Programming}, year = 2005 } @InProceedings{Shivers2004AnatomyLoop, author = {Olin Shivers}, title = {The Anatomy of a Loop -- A story of scope and control}, booktitle = {International Conference on Functional Programming, ICFP'05}, year = 2005, month = sep, location = {Tallinn, Estonia}, publisher = ACM } @inproceedings{Stewart2005DynamicApplications, author = {Don Stewart and Manuel M. T. Chakravarty}, title = {Dynamic Applications From the Ground Up}, booktitle = {Proceedings of the ACM SIGPLAN Workshop on Haskell}, year = 2005, month = sep, location = {Tallinn, Estonia}, publisher = ACM } @misc{Blech2004SpezifikationKonstanten, author = {Jan Olaf Blech}, type = {publikation}, title = {Spezifikation und maschinelle Verifikation von Konstantenfaltung in {\"U}bersetzern}, year = 2003, month = may, school = {Universit{\"a}t Karlsruhe}, institution = {Institut f{\"u}r Programmstrukturen und Datenorganisation} } @misc{Blech2004FormaleSemantikSSA, author = {Jan Olaf Blech}, type = {publikation}, title = { Eine formale Semantik f{\"u}r SSA-Zwischensprachen in Isabelle/HOL }, year = 2004, month = mar, organization = {Universit{\"a}t Karlsruhe, Fakult{\"a}t f{\"u}r Informatik} } @MastersThesis{Ohlendorfs2005CookbookXML, author = {Manuel Ohlendorfs}, title = {A Cookbook for the Haskell XML Toolbox with Examples for Processing RDF Documents}, school = {FH Wedel}, year = 2005 } @MastersThesis{Schmidt2005ValidatingXML, author = {Martin Schmidt}, title = {Design and Implementation of a validating XML parser in Haskell}, school = {FH Wedel}, year = 2005 } @MastersThesis{Kuseler2005RelaxNG, author = {Torben Kuseler}, title = {Design und Entwicklung eines Relax NG Schema Validators auf Basis der Haskell XML Toolbox}, school = {FH Wedel}, year = 2005 } @InProceedings{Lambers2004NewGTXL, author = {Leen Lambers}, title = {New Version of GTXL: An Exchange Format for Graph Transformation Systems}, booktitle = { Workshop on Graph-Based Tools (GraBaTs'04), Satellite Event of ICGT'04}, year = 2004 } @MastersThesis{Agat1998FLRegister, author = {Johan Agat}, title = {A Typed Functional language for Expressing Register Utilisation}, school = {Chalmers University}, year = 1998, month = oct } @Article{Morrisett1999SystemFtoTAL, author = {Greg Morrisett and David Walker and Karl Crary and Neal Glew}, title = {From {System} {F} to Typed Assembly Language}, journal = {ACM Transactions on Programming Languages and Systems}, year = 1999, volume = 21, number = 3, pages = {528--569}, month = may } @InProceedings{Morrisett1998SystemFtoTAL, author = {Greg Morrisett and David Walker and Karl Crary and Neal Glew}, title = {From {System} {F} to Typed Assembly Language}, booktitle = {Twenty-Fifth ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages}, pages = {85--97}, year = 1998, address = {San Diego, CA, USA}, month = jan, publisher = ACM } @InProceedings{Morrisett2005L3, author = {Greg Morrisett and Amal Ahmed and Matthew Fluet}, title = {L3: A Linear Language with Locations}, booktitle = {Seventh International Conference on Typed Lambda Calculi and Applications}, year = 2005, month = apr } @Book{Girard1989ProofsAndTypes, author = {Jean-Yves Girard and Paul Taylor and Yves Lafont}, title = {Proofs and Types}, publisher = {Cambridge University Press}, year = 1989, number = 7, series = {Cambridge Tracts in Theoretical Computer Science}, edition = {reprinted with corrections 1990} } @incollection{ Harper1993ExplicitCPS, author = "Robert Harper and Mark Lillibridge", title = "Explicit Polymorphism and {CPS} Conversion", booktitle = "Conf.\ Record 20th Ann.\ {ACM} {SIGPLAN}-{SIGACT} Symp.\ on Principles of Programming Languages, {POPL}'93, Charleston, {SC}, {USA}, ??? Jan.\ 1993", publisher = ACM, address = "New York", pages = "206--219", year = 1993, url = "citeseer.ist.psu.edu/article/harper93explicit.html" } @InProceedings{Bernard1998HowGeneric, author = {Andrew Bernard and Robert Harper and Peter Lee}, title = {How generic is a generic back end? Using MLRISC as a back end for the TIL compiler}, booktitle = {Proceedings of the Workshop on Types in Compilation}, pages = {53--77}, year = 1998, editor = {X. Leroy and A. Ohori}, volume = 1473, series = LNCS, address = {Kyoto, Japan}, month = mar, publisher = SV } @PhdThesis{Morrisett1995PhD, author = {Greg Morrisett}, title = {Compiling with Types}, school = {School of Computer Science, Carnegie Mellon University}, year = 1995, month = dec, note = {Published as CMU Technical Report CMU-CS-95-226} } @TECHREPORT{UUCS199928, author = {H. J. M. Meijer}, year = 1999, title = {Proceedings of the 1999 Haskell Workshop}, number = {UU-CS-1999-28}, institution = {Institute of Information and Computing Sciences, Utrecht University}, urlps = {{http://archive.cs.uu.nl/pub/RUU/CS/techreps/CS-1999/1999-28.ps.gz}}, urlpdf = {{http://archive.cs.uu.nl/pub/RUU/CS/techreps/CS-1999/1999-28.pdf}}, pubcat = {techreport} } @TECHREPORT{UUCS200162, author = {Ralf Hinze (editor)}, year = 2001, title = {Preliminary proceedings of the 2001 ACM SIGPLAN Haskell Workshop (HW'2001)}, number = {UU-CS-2001-62}, institution = {Institute of Information and Computing Sciences, Utrecht University}, urlpdf = {{http://archive.cs.uu.nl/pub/RUU/CS/techreps/CS-2001/2001-62.pdf}}, pubcat = {techreport} } @InProceedings{PeytonJones2001PlayingRules, author = {Simon {Peyton Jones} and Andrew Tolmach and Tony Hoare}, title = {Playing by the Rules: Rewriting as a practical optimisation technique in {GHC}}, crossref = {UUCS200162}, booktitle = {Preliminary proceedings of the 2001 ACM SIGPLAN Haskell Workshop (HW'2001)}, pages = {203-233}, year = 2001, editor = {Ralf Hinze} } @incollection{ cardelli91extension, author = "Luca Cardelli and John C. Mitchell and Simone Martini and Andre Scedrov", title = "An Extension of System {F} with Subtyping", booktitle = "Proc.\ of 1st Int.\ Symp.\ on Theor.\ Aspects of Computer Software, {TACS}'91, Sendai, Japan, 24--27 Sept 1991", volume = "526", publisher = SV, address = "Berlin", editor = "Takayasu Ito and Albert R. Meyer", pages = "750--770", year = "1991", url = "citeseer.ist.psu.edu/cardelli91extension.html" } @InProceedings{Cardelli1991SystemFSub, author = {Luca Cardelli and Simone Martini and John C. Mitchell and Andre Scedrov}, title = {An Extension of System {F} with Subtyping}, booktitle = {Proc.\ of 1st Int.\ Symp.\ on Theor.\ Aspects of Computer Software, {TACS}'91}, pages = {750--770}, year = 1991, editor = {Takayasu Ito and Albert R. Meyer}, volume = 526, series = LNCS, address = {Sendai, Japan}, publisher = SV } @Article{Kennedy1996DrawingTrees, author = {Andrew Kennedy}, title = {Functional Pearls: Drawing Trees}, journal = {Journal of Functional Programming}, year = 1996, volume = 6, number = 3, pages = {527--534}, month = may } @Article{Kennedy2004PicklerCombinators, author = {Andrew Kennedy}, title = {Functional Pearls: Pickler Combinators}, journal = {Journal of Functional Programming}, year = 2004, note = {To appear} } @InProceedings{Harris2005HaskellSharedMP, author = {Tim Harris and Simon Marlow and Simon {Peyton Jones}}, title = {Haskell on a shared-memory multiprocessor}, booktitle = {Haskell Workshop}, year = 2005, address = {Tallin}, month = sep } @article{Baker1997COMFY, author = {Henry G. Baker}, title = {The COMFY 6502 compiler}, journal = {SIGPLAN Notices}, volume = 32, number = 11, year = 1997, issn = {0362-1340}, pages = {25--30}, doi = {http://doi.acm.org/10.1145/270941.270947}, publisher = ACM, address = {New York, NY, USA}, } @Misc{PeytonJones2006PracticalArbRank, author = {SL {Peyton Jones} and D Vytiniotis and S Weirich and M Shields}, title = {Practical type inference for arbitrary-rank types}, howpublished = {Available from: \url{http://research.microsoft.com/Users/simonpj/papers/higher-rank/index.htm}}, month = feb, year = 2006, note = {To appear in Journal of Functional Programming} } @Misc{Pavlovic2005SpecificationEngineering, author = {D. Pavlovic and P. Pepper and D. Smith}, title = {Specification Engineering}, howpublished = {draft}, month = sep, year = 2005 } @Misc{Henderson1993StrongModes, author = {Fergus Henderson}, title = {Strong Modes can Change the World!}, howpublished = {Honour's Thesis}, month = nov, year = 1993 } @INPROCEEDINGS{Leijen2005scopedlabels, author = {Leijen, Daan}, title = {Extensible records with scoped labels}, booktitle = {Proceedings of the 2005 Symposium on Trends in Functional Programming (TFP'05)}, location = {{T}allin, {E}stonia}, month = sep, year = 2005 } @Misc{Leijen2001DivisionModulus, author = {Leijen, Daan}, title = {Division and Modulus for Computer Scientists}, month = dec, year = 2001, annote = {Draft} } @MASTERSTHESIS{Leijen1998mscthesis, author = {Daan Leijen}, title = {Functional Components: {COM} components in {Haskell}}, school = {Department of Computer Science, University of {Amsterdam}}, month = sep, year = 1998 } @InProceedings{Chakravarty1995MultiSTG, author = {Manuel M. T. Chakravarty}, title = {{Integrating Multithreading into the Spineless Tagless {G}-machine}}, booktitle = {1995 Glasgow Workshop on Functional Programming}, year = 1995, month = jul } @TechReport{Jones1993ExplicitParallel, 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}, month = aug } @PhdThesis{Oortmerssen2000PhD, author = {Wouter {van Oortmerssen}}, title = {Concurrent Tree Space Transformation in the Aardappel Programming Language}, school = {University of Southampton}, year = 2000, month = jul } @TechReport{Tullsen1996CompilingHaskell, author = {Mark Tullsen}, title = {Compiling Haskell to Java}, institution = {Yale University}, year = 1996, type = {Research report}, number = {YALEU/DCS/RR-1204} } @Article{Glew2004TypeSafeMethodInlining, author = {Neal Glew and Jens Palsberg}, title = {Type-safe method inlining}, journal = {Science of Computer Programming}, year = 2004, volume = 52, pages = {281--306} } @Article{Palsberg1996Adaptive, author = {Jens Palsberg and Boaz Patt-Shamir and Karl Lieberherr}, title = {A new approach to compiling adaptive programs}, journal = {Science of Computer Programming}, year = 1996, volume = 29, number = 3, pages = {303--326} } @InProceedings{Noel1996TemplateBased, author = {F. No{\"e}l and L. Hornof and C. Consel and J.L. Lawall}, title = {Automatic, Template-Based Runtime Specialization: Implementation and Experimental Study}, booktitle = {IEEE International Conference on Computer Languages}, pages = {123-142}, year = 1998, month = may } @InProceedings{Consel1996ProgramAdaptation, author = {C. Consel}, title = {Program Adaptation based on Program Transformation}, booktitle = {ACM Workshop on Strategic Directions in Computing Research}, year = 1996 } @MastersThesis{Jeltsch2005Diplomarbeit, author = {Wolfgang Jeltsch}, title = {Integration funktionaler und imperativer Programmierkonzepte}, school = {Brandenburgischen Technischen Universität Cottbus}, year = 2005, type = {Diplomarbeit}, month = sep } @InCollection{Hughes1995DesignPrettyPrinting, author = {John Hughes}, title = {The Design of a Pretty-printing Library}, booktitle = {Advanced Functional Programming}, publisher = SV, year = 1995, editor = {Johan Jeuring and Erik Meijer}, volume = 925, series = LNCS } @InProceedings{Discolo2006LockFree, author = {Anthony Discolo and Tim Harris and Simon Marlow and Simon Peyton Jones and Satnam Singh}, title = {Lock-Free Data Structures using STMs in Haskell}, booktitle = {Proceedings of the Eighth International Symposium on Functional and Logic Programming (FLOPS 2006)}, year = 2006, month = apr, note = {Submitted} } @InProceedings{Harris2003LightweightTransaction, author = {Timothy Harris and Keir Fraser}, title = {Language Support for Lightweight Transactions}, booktitle = {ACM SIGPLAN Conference on Object-Oriented Programming, Systems, and Applications (OOPSLA)}, year = 2003, month = oct, publisher = ACM } @PhdThesis{Fraser2003PracticalLockFreedom, author = {Keir Fraser}, title = {Practical lock-freedom}, school = {University of Cambridge, Computer Laboratory}, year = 2003, month = sep, note = {Published as Technical Report No. UCAM-CL-TR-579} } @TechReport{Briggs1994MultiplicationIntegerConstants, author = {Preston Briggs and Tim Harvey}, title = {Multiplication by integer constants}, institution = {Rice University, Department of Computer Science}, year = 1994, number = {TR03-425} } @TechReport{Keppel1991CaseRuntimeCodeGeneration, author = {David Keppel and Susan J. Eggers and Robert R. Henry}, title = {A Case for Runtime Code Generation}, institution = {Department of Computer Science, University of Washington}, year = 1991, number = {91-11-04} } @TechReport{Keppel1993Evaluating, author = {David Keppel and Susan J. Eggers and Robert R. Henry}, title = {Evaluating Runtime-Compiled Value-Specific Optimizations}, institution = {Department of Computer Science, University of Washington}, year = 1993, number = {93-11-02} } @TechReport{Muller1996JITvsOfflineCompilers, author = {Gilles Muller and B{\'a}rbara Moura and Fabrice Bellard and Charles Consel}, title = {{JIT} {\em vs.} Offline Compilers: Limits and Benefits of Bytecode Compilation}, institution = {IRISA}, year = 1996, type = {Rapport de recherche}, number = 1063, address = {Rennes, France}, month = dec } @misc{Yarvin1994QuaC, author = "C. Yarvin and A. Sah", title = "QuaC: Binary optimization for fast runtime code generation in C", text = "C. Yarvin and A. Sah. QuaC: Binary optimization for fast runtime code generation in C. Technical Report 94-792, Computer Science Department, University of California, Berkeley, 1994.", year = 1994, url = "citeseer.ist.psu.edu/yarvin94quac.html" } @article{hardin-maranget-pagano-report, author = "Thérèse Hardin, Luc Maranget and Bruno Pagano", title = "Functional Runtimes within the Lambda-Sigma Calculus", journal = "Journal of Functional Programming", volume = 8, number = 2, month = mar, year = 1998, publisher = "Cambridge University Press" } @InProceedings{Ennals2003OptimisticEvaluation, author = {Robert Ennals and Simon {Peyton Jones}}, title = {Optimistic evaluation: an adaptive evaluation strategy for non-strict programs}, booktitle = {8th ACM SIGPLAN International Conference on Functional Programming (ICFP 2003)}, year = 2003, publisher = ACM } @Misc{Ennals2000Feris, author = {Robert Ennals}, title = {Feris: A Functional Environment for Retargetable Interactive Systems}, howpublished = {}, year = 2000 } @Misc{Rieffel2000Quantum, author = {Eleanor G. Rieffel and Wolfgang Polak}, title = {An Introduction to Quantum Computing for Non-Physicists}, howpublished = {Available from: \url{http://xxx.lanl.gov/abs/quant-ph/9809016}}, month = jan, year = 2000 } @Misc{Hope2005Fusion, author = {Catherine Hope and Graham Hutton}, title = {Fusion in less space}, howpublished = {Available from: \url{http://www.cs.nott.ac.uk/~cvh/hylos/hylos.pdf}}, month = dec, year = 2005, note = {Draft paper} } @MastersThesis{Holdermans2005GenericViews, author = {Stefan Holdermans}, title = {Generic views}, school = {Utrecht University}, year = 2005 } @inproceedings{Baraz2003EL, author = {Leonid Baraz and Tevi Devor and Orna Etzion and Shalom Goldenberg and Alex Skaletsky and Yun Wang and Yigel Zemach}, title = {{IA-32 Execution Layer: a two-phase dynamic translator designed to support IA-32 applications on Itanium\texttrademark{}-based systems}}, booktitle = {MICRO 36: Proceedings of the 36th annual IEEE/ACM International Symposium on Microarchitecture}, year = 2003, isbn = {0-7695-2043-X}, pages = 191, publisher = {IEEE Computer Society}, address = {Washington, DC, USA}, } @Article{Amdahl1964System360, author = {G. M. Amdahl and G. A. Blaauw and F. P. {Brooks, Jr.}}, title = {Architecture of the {IBM} {System/360}}, journal = {IBM Journal of Research and Development}, year = 1964, volume = 8, number = 2, pages = 87 } @Book{Smith2005VirtualMachines, author = {James E. Smith and Ravi Nair}, title = {Virtual Machines -- Versatile Platforms for Systems and Processes}, publisher = MK, year = 2005 } @InProceedings{Hazelwood2000IfConversion, author = {Kim Hazelwood and Thomas Conte}, title = {A Lightweight Algorithm for Dynamic If-Conversion during Dynamic Optimization}, booktitle = {International Conference on Parallel Architectures and Compilation Techniques}, pages = {71--80}, year = 2000, month = oct } @PhdThesis{HazelwoodCettei2004PhD, author = {Kim {Hazelwood Cettei}}, title = {Code Cache Management in Dynamic Optimization Systems}, school = {Harvard University}, year = 2004, month = may } @article{Sites1993AlphaAXPArchitecture, author = {Richard L. Sites}, title = {Alpha AXP architecture}, journal = {Communications of the ACM}, volume = 36, number = 2, year = 1993, issn = {0001-0782}, pages = {33--44}, doi = {http://doi.acm.org/10.1145/151220.151226}, publisher = ACM, address = {New York, NY, USA}, } @article{Sites1993BinaryTranslation, author = {Richard L. Sites and Anton Chernoff and Matthew B. Kirk and Maurice P. Marks and Scott G. Robinson}, title = {Binary translation}, journal = {Communications of the ACM}, volume = 36, number = 2, year = 1993, issn = {0001-0782}, pages = {69--81}, doi = {http://doi.acm.org/10.1145/151220.151227}, publisher = ACM, address = {New York, NY, USA}, } @Article{Benton2001ExceptionalSyntax, author = {Nick Benton and Andrew Kennedy}, title = {Exceptional Syntax}, journal = {Journal of Functional Programming}, year = 2001, volume = 11, number = 4, pages = {395--410}, month = jul } @InProceedings{Benton2004SMLDotNETExperience, author = {Nick Benton and Andrew Kennedy and Claudio Russo}, title = {Adventures in Interoperability: The SML.NET Experience}, booktitle = {6th ACM-SIGPLAN International Conference on Principles and Practice of Declarative Programming (PPDP)}, year = 2004, address = {Verona, Italy}, month = aug } @InProceedings{Angelov2005VisualHaskell, author = {Krasimir Angelov and Simon Marlow}, title = {{Visual} {Haskell}: A full-featured {Haskell} development environment}, booktitle = {Haskell '05: Proceedings of the 2005 ACM SIGPLAN workshop on Haskell}, year = 2005, month = {September}, abstract = {We describe the design and implementation of a full-featured Haskell development environment, based on Microosft's extensible Visual Studio environment. Visual Haskell provides a number of features not found in existing Haskell development environments: interactive error-checking, displaying of inferred types in the editor, and other features based on static properties of the source code. Visual Haskell also provides full support for developing and building multi-module Haskell projects, based on the Cabal architecture. Visual Haskell supports the full GHC language, and can be used to develop real Haskell applications (including the code of the plugin itself). Visual Haskell has driven developments in other Haskell-related projects: Cabal, the Concurrent FFI extension, and an API to allow programmatic access to GHC itself. Furthermore, development of the Visual Haskell plugin required industrial-strength foreign language interoperability; we describe all our experiences in detail. }, url = {http://www.haskell.org/~simonmar/papers/vshaskell.pdf}, doi = {http://doi.acm.org/10.1145/1088348.1088350}, isbn = {1-59593-071-X}, pages = {5--16}, location = {Tallinn, Estonia}, publisher = ACM } @InProceedings{Cheadle2000NonStopHaskell, author = {A. M. Cheadle and A. J. Field and S. Marlow and S. L. Peyton Jones and R. L. While}, title = {Non-stop Haskell}, booktitle = {ICFP '00: Proceedings of the fifth ACM SIGPLAN international conference on Functional programming}, year = 2000, abstract = {We describe an efficient technique for incorporating Baker's incremental garbage collection algorithm into the Spineless Tagless G-machine on stock hardware. This algorithm eliminates the stop/go execution associated with bulk copying collection algorithms, allowing the system to place an upper bound on the pauses due to garbage collection. The technique exploits the fact that objects are always accessed by jumping to code rather than being explicitly dereferenced. It works by modifying the entry code-pointer when an object is in the transient state of being evacuated but not scavenged. An attempt to enter it from the mutator causes the object to "self-scavenge" transparently before resetting its entry code pointer. We describe an implementation of the scheme in v4.01 of the Glasgow Haskell Compiler and report performance results obtained by executing a range of applications. These experiments show that the read barrier can be implemented in dynamic dispatching systems such as the STG-machine with very short mutator pause times and with negligible overhead on execution time. }, url = {http://www.haskell.org/~simonmar/papers/nonstop.pdf}, doi = {http://doi.acm.org/10.1145/351240.351265}, isbn = {1-58113-202-6}, pages = {257--267}, publisher = ACM } @article{Backus1954SpeedcodingSystem, author = {J. W. Backus}, title = {The IBM 701 Speedcoding System}, journal = {J. ACM}, volume = 1, number = 1, year = 1954, issn = {0004-5411}, pages = {4--6}, doi = {http://doi.acm.org/10.1145/320764.320766}, publisher = ACM, address = {New York, NY, USA}, } @InProceedings{Backus1957FortranAutomaticCodingSystem, author = {J.W. Backus and R.J. Beeber and S. Best and R. Goldberg and L.M. Haibt and H.L. Herrick and R.A. Nelson and D. Sayre and P.B. Sheridan and H.J. Stern and I. Ziller and R.A. Hughes and R. Nutt}, title = {{The FORTRAN automatic coding system}}, booktitle = {Proceedings Western Joint Computer Conference}, pages = {188--198}, year = 1957, address = {Los Angeles, California}, month = feb } @article{Gil2005SubtypingTest, author = {Joseph (Yossi) Gil and Yoav Zibin}, title = {Efficient subtyping tests with PQ-encoding}, journal = {ACM Trans. Program. Lang. Syst.}, volume = 27, number = 5, year = 2005, issn = {0164-0925}, pages = {819--856}, doi = {http://doi.acm.org/10.1145/1086642.1086643}, publisher = ACM, address = {New York, NY, USA}, } @InProceedings{Mucci1999PAPI, author = {Browne, S. and Deane, C. and Ho, G. and Mucci, P.}, title = {PAPI: A Portable Interface to Hardware Performance Counters}, booktitle = {Proceedings of Department of Defense HPCMP Users Group Conference}, year = 1999, month = {jun} } @InProceedings{Olinsky2006StagedAllocation, author = {Reuben Olinsky and Christian Lindig and Norman Ramsey}, title = {Staged Allocation: A Compositional Technique for Specifying and Implementing Procedure Calling Conventions}, booktitle = {POPL '06: Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages}, year = 2006, publisher = ACM } @inproceedings{Menon2005VerifiableSSARepresentation, author = {Vijay S. Menon and Neal Glew and Brian R. Murphy and Andrew McCreight and Tatiana Shpeisman and Ali-Reza Adl-Tabatabai and Leaf Petersen}, title = {A verifiable SSA program representation for aggressive compiler optimization}, booktitle = {POPL '06: Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages}, year = 2006, isbn = {1-59593-027-2}, pages = {397--408}, location = {Charleston, South Carolina, USA}, doi = {http://doi.acm.org/10.1145/1111037.1111072}, publisher = ACM, address = {New York, NY, USA}, } @Manual{Intel2005Vanderpool, title = {Intel Vanderpool Technology for IA-32 Processors (VT-x) -- Preliminary Specification}, author = {{Intel Corporation}}, month = jan, year = 2005, note = {Available from: \url{http://cache-www.intel.com/cd/00/00/19/76/197666_197666.pdf}} } @Manual{Intel2006DevelopersManual, title = {IA-32 Intel Architecture Software Developer's Manual Volumes 1, 2A, 2B, 3A, 3B}, author = {{Intel Corporation}}, month = jan, year = 2006, note = {Available from: \url{http://www.intel.com/design/Pentium4/documentation.htm}} } @Manual{Intel2006DevelopersManualVolume1, title = {IA-32 Intel Architecture Software Developer's Manual Volume 1: Basic Architecture}, author = {{Intel Corporation}}, month = jan, year = 2006, note = {Available from: \url{http://www.intel.com/design/Pentium4/documentation.htm}} } @Manual{Intel2006DevelopersManualVolume3B, title = {IA-32 Intel Architecture Software Developer's Manual Volume 3B: System Programming Guide, Part 2}, author = {{Intel Corporation}}, month = jan, year = 2006, note = {Available from: \url{http://www.intel.com/design/Pentium4/documentation.htm}} } @Manual{Intel2005OptimizationManual, title = {IA-32 Intel Architecture Optimization Reference Manual}, author = {{Intel Corporation}}, month = jun, year = 2005, note = {Available from: \url{http://www.intel.com/design/Pentium4/documentation.htm}} } @Book{Bauer1981AlgorithmischeSprache, author = {Friedrich L. Bauer and Hans W{\"o}ssner}, title = {Algorithmische Sprache und Programmentwicklung}, publisher = SV, year = 1981 } @InProceedings{Rhiger2005FirstClassOpenClosedCode, author = "Morten Rhiger", title = "First-Class Open and Closed Code Fragments", booktitle = "Proceedings of the Sixth Symposium on Trends in Functional Programming", editor = "Marko {van Eekelen}", publisher = "Tartu University Press", address = "Tallinn, Estonia", month = sep, year = 2005, pages = "206--219", } @InProceedings{Marazan2004LambdaDynamic, author = {Marco T. Moraz{\'a}n and Barbara Mucha}, title = {Lambda Lifting MT-Scheme Programs for Dynamic Code Generation}, booktitle = {Draft Proceedingsof the 16th International Workshop on Implementation and Application of Functional Languages}, year = 2004, note = {Appeared as Technical Report 0408 of the Institute of Computer Science and Applied Mathematics of the University of Kiel} } @Book{Wirth1998ProjectOberon, author = {Niklaus Wirth and J{\"u}rg Gutknecht}, title = {Project Oberon -- The Design of an Operating System and Compiler}, publisher = AW, year = 1998 } @Article{AdlTabatabai2003StarJIT, author = {Ali-Reza Adl-Tabatabai and Jay Bharadwaj and Dong-Yuan Chen and Anwar Ghuloum and Vijay Menon and Brian Murphy and Mauricio Serrano and Tatiana Shpeisman}, title = {The {StarJIT} Compiler: A Dynamic Compiler for Managed Runtime Environments}, journal = {Intel Technology Journal}, year = 2003, volume = 7, number = 1, month = feb } @InProceedings{RudiakGold2006HaskellNotNotML, author = {Ben Rudiak-Gould and Alan Mycroft and Simon {Peyton Jones}}, title = {Haskell is not not ML}, booktitle = {European Symposium on Programming 2006 (ESOP'06)}, year = 2006, month = mar } @InProceedings{Flanagan2006HybridTypeChecking, author = {Cormac Flanagan}, title = {Hybrid Type Checking}, booktitle = {POPL '06: Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages}, year = 2006, publisher = ACM } @TechReport{Proutskova2005PileSystem, author = {Polina Proutskova}, title = {The Pile System: A New Approach To Data And Computing}, institution = {Pile Systems Inc.}, year = 2005, note = {Available from: \url{http://pilesys.com/Pile%20Math%20Intro.pdf}} } @inproceedings{Traub1989CompilationAsPartitioning, author = {Kenneth R. Traub}, title = {Compilation as partitioning: a new approach to compiling non-strict functional languages}, booktitle = {FPCA '89: Proceedings of the fourth international conference on Functional programming languages and computer architecture}, year = 1989, isbn = {0-89791-328-0}, pages = {75--88}, location = {Imperial College, London, United Kingdom}, doi = {http://doi.acm.org/10.1145/99370.99376}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Peterson1989UntaggedData, author = {John Peterson}, title = {Untagged data in tagged environments: choosing optimal representations at compile time}, booktitle = {FPCA '89: Proceedings of the fourth international conference on Functional programming languages and computer architecture}, year = 1989, isbn = {0-89791-328-0}, pages = {89--99}, location = {Imperial College, London, United Kingdom}, doi = {http://doi.acm.org/10.1145/99370.99377}, publisher = ACM, address = {New York, NY, USA}, } @PhdThesis{Courtney2004ModelingUserInterfaces, author = {Antony Alexander Courtney}, title = {Modeling User Interfaces in a Functional Language}, school = {Yale University}, year = 2004 } @article{Turner1979NewImplementationTechnique, author = {D. A. Turner}, title = {A New Implementation Technique for Applicative Languages.}, journal = {Softw., Pract. Exper.}, volume = 9, number = 1, year = 1979, pages = {31-49} } @InProceedings{Wallace1999HaskellAndXML, author = {Malcolm Wallace and Colin Runciman}, title = {{Haskell} and {XML}: Generic Combinators or Type-Based Translation?}, booktitle = {Proceedings of the International Conference on Functional Programming (ICFP)}, year = 1999, address = {Paris}, month = sep, publisher = ACM } @InProceedings{Erwig2000PatternGuards, author = {Martin Erwig and Simon {Peyton Jones}}, title = {Pattern Guards and Transformational Patterns}, booktitle = {Haskell Workshop}, year = 2000 } @article{Kernighan1979UnixProgrammingEnvironment, author = {Brian W. Kernighan and John R. Mashey}, title = {The UNIX/TM Programming Environment.}, journal = {Softw., Pract. Exper.}, volume = 9, number = 1, year = 1979, pages = {1-15}, bibsource = {DBLP, http://dblp.uni-trier.de} } @Article{Hayes2003ALucidInterval, author = {Brian Hayes}, title = {A Lucid Interval}, journal = {American Scientist}, year = 2003, volume = 91, number = 6, pages = {484-0488} } @inproceedings{Hayase2005RevisionControl, author = {Yasuhiro Hayase and Makoto Matsushita and Katsuro Inoue}, title = {Revision control system using delta script of syntax tree}, booktitle = {SCM '05: Proceedings of the 12th international workshop on Software configuration management}, year = 2005, isbn = {1-59593-310-7}, pages = {133--149}, location = {Lisbon, Portugal}, doi = {http://doi.acm.org/10.1145/1109128.1109138}, publisher = ACM, address = {New York, NY, USA}, } @article{Suganuma2006RegionBasedCompilation, author = {Toshio Suganuma and Toshiaki Yasue and Toshio Nakatani}, title = {A region-based compilation technique for dynamic compilers}, journal = {ACM Trans. Program. Lang. Syst.}, volume = 28, number = 1, year = 2006, issn = {0164-0925}, pages = {134--174}, doi = {http://doi.acm.org/10.1145/1111596.1111600}, publisher = ACM, address = {New York, NY, USA}, } @article{Boute2005FunctionalDeclarative, author = {Raymond Boute}, title = {Functional declarative language design and predicate calculus: a practical approach}, journal = {ACM Trans. Program. Lang. Syst.}, volume = 27, number = 5, year = 2005, issn = {0164-0925}, pages = {988--1047}, doi = {http://doi.acm.org/10.1145/1086642.1086647}, publisher = ACM, address = {New York, NY, USA}, } @article{Graham1992HigherorderParsing, author = "Hutton, Graham", title = "Higher-order functions for parsing", journal = JFP, volume = 2, number = 3, month = "July", pages = "323--343", year = 1992, url = "citeseer.ist.psu.edu/hutton93higherorder.html" } @article{PeytonJones1992ImplementingLazy, author = "Simon L. Peyton Jones", title = "Implementing Lazy Functional Languages on Stock Hardware: The Spineless Tagless G-Machine", journal = JFP, volume = 2, number = 2, pages = "127--202", year = 1992, url = "citeseer.ist.psu.edu/peytonjones92implementing.html" } @Article{Augustsson1994UniqueNames, author = {Lennart Augustsson and Mikael Rittri and Dan Synek}, title = {On Generating unique names}, journal = JFP, year = 1994, volume = 4, number = 1, pages = {117--123}, } @Article{Dakin1973MixedCodeApproach, author = {R. J. Dakin and P. C. Poole}, title = {A mixed code approach}, journal = CompJ, year = 1973, volume = 16, number = 3, pages = {219--222} } @Article{Dawson1973Combining, author = {J. L. Dawson}, title = {Combining interpretive code with machine code}, journal = CompJ, year = 1973, volume = 16, number = 3, pages = {216--219} } @Article{Samet1975DetailedAnalysis, author = {P. A. Samet}, title = {Detailed Analysis of a program---an instructive horror story}, journal = SPE, year = 1975, volume = 5, number = 2, pages = {211--217} } @Article{Brown1976ThrowAwayCompiling, author = {P. J. Brown}, title = {Throw-away Compiling}, journal = SPE, year = 1976, volume = 6, number = 4, pages = {423--434} } @TechReport{Hunt2005OverviewSingularity, author = {Galen Hunt and James Larus and Mart{\'i}n Abadi and Mark Aiken and Paul Barham and Manuel F{\"a}hndrich and Chris Hawblitzel and Orian Hodson and Steven Levi and Nick Murphy and Bjarne Steensgaard and David Tarditi and Ted Wobber and Brian Zill}, title = {An Overview of the Singularity Project}, institution = {Microsoft Research}, year = 2005, number = {MSR-TR-2005-135} } @Book{Coulouris2001DistributedSystems, author = {George Coulouris and Jean Dollimore Tim Kindberg}, title = {Distributed Systems: Concepts and Design}, publisher = AW, year = 2001, edition = {third} } @Book{Stevens2005APEU, author = {W. Richard Stevens and Stephen A. Rago}, title = {Advanced Programming in the UNIX\textregistered{} Environment}, publisher = AW, year = 2005, edition = {Second} } @InProceedings{Mitchell2005UnfailingHaskell, author = {Neil Mitchell and Colin Runciman}, title = {Unfailing Haskell: A Static Checker for Pattern Matching}, booktitle = {Draft Proceedings of Symposium on Trends in Functional Programming 2005}, year = 2005 } @InProceedings{Hanus2001CIDER, author = {Michael Hanus and Johannes Koj}, title = {An Integrated Development Environment for Declarative Multi-Paradigm Programming}, booktitle = {Proceedings of the Eleventh Workshop on Logic Programming Environments (WLPE'01)}, year = 2001, editor = {A. Kusalik}, month = dec } @InProceedings{DiosCastro2000GraphicalDevelopmentEnvironment, author = {J. de Dios Castro and J.C. Gonz\'alez Moreno}, title = {A Graphical Development Environment for Functional Logic Languages}, booktitle = {Proc. of the Ninth International Workshop on Functional and Logic Programming ({WFLP})}, year = 2000 } @InProceedings{Pena2000CompilerConstruction, author = {Ricardo Pe{\~n}a}, title = {Compiler Construction in a Functional Setting}, booktitle = {Proc. of the Ninth International Workshop on Functional and Logic Programming ({WFLP})}, year = 2000 } @InProceedings{Hallgren2005House, author = {Thomas Hallgren and Mark P. Jones and Rebekah Leslie and Andrew Tolmach}, title = {A Principled Approach to Operating System Construction in Haskell}, booktitle = {Proceedings of the International Conference on Functional Programming (ICFP)}, year = 2005 } @article{ Pike1989ConcurrentWindowSystem, author = "Rob Pike", title = "A Concurrent Window System", journal = "Computing Systems", volume = 2, number = 2, pages = "133-153", year = 1989, url = "citeseer.ist.psu.edu/pike89concurrent.html" } @InProceedings{Michael2004ScalableMemoryAllocation, author = {Maged M. Michael}, title = {Scalable Lock-Free Dynamic Memory Allocation pdf}, booktitle = {The 2004 ACM SIGPLAN Conference on Programming Language Design and Implementation}, pages = {35--46}, year = 2004, month = jun } @Book{Hudak2000SOE, author = {Paul Hudak}, title = {The Haskell School of Expression}, publisher = CUP, year = 2000 } @Book{Hofstedt2006FTFP, author = {Petra Hofstedt and Peter Pepper}, title = {Funktionale Programmierung -- Fortgeschrittene Techniken}, publisher = SV, year = 2006, } @article{Partsch1983ProgramTransformationSystems, author = {H. Partsch and R. Steinbr{\"u}ggen}, title = {Program Transformation Systems}, journal = {ACM Comput. Surv.}, volume = {15}, number = {3}, year = {1983}, issn = {0360-0300}, pages = {199--236}, doi = {http://doi.acm.org/10.1145/356914.356917}, publisher = ACM, address = {New York, NY, USA}, } @article{ Baader2001CombiningConstraintSolving, author = "Franz Baader and Klaus U. Schulz", title = "Combining Constraint Solving", journal = "Lecture Notes in Computer Science", volume = 2002, pages = "104--??", year = 2001, url = "citeseer.ist.psu.edu/baader01combining.html" } @article{ Tip1995SurveyProgramSlicing, author = "F. Tip", title = "A survey of program slicing techniques", journal = "Journal of programming languages", volume = 3, pages = "121--189", year = 1995, url = "citeseer.csail.mit.edu/tip95survey.html" } @article{Wand1980ContinuationBasedTransformation, author = {Mitchell Wand}, title = {Continuation-Based Program Transformation Strategies}, journal = JACM, volume = 27, number = 1, year = 1980, issn = {0004-5411}, pages = {164--180}, doi = {http://doi.acm.org/10.1145/322169.322183}, publisher = ACM, address = {New York, NY, USA}, } @PhdThesis{Missura1997PhD, author = {Stephan Albert Missura}, title = {Higher-Order Mixfix Syntax for Representing Mathematical Notation and its Parsing}, school = {ETH Z{\"u}rich}, year = 1997 } @Article{Whaley2005Joeq, author = {John Whaley}, title = {Joeq: A virtual machine and compiler infrastructure}, journal = {Science of Computer Programming}, year = 2005, volume = 57, number = 3, pages = {339--356}, month = sep } @Article{Franz2005PortableVM, author = {Michael Franz and Deepak Chandra and Andreas Gal and Vivek Haldar and Christian W. Probst and Ferm{\'i}n Reig and Ning Wang}, title = {A portable virtual machine target for proof-carrying code}, journal = {Science of Computer Programming}, year = 2005, volume = 57, number = 3, pages = {275--294}, month = sep } @Article{Latendresse2005HuffmanBytecode, author = {Mario Latendresse and Marc Feeley}, title = {Generation of fast interpreters for Huffman compressed bytecode}, journal = {Science of Computer Programming}, year = 2005, volume = 57, number = 3, pages = {295-317}, month = sep } @Article{Ung2006DynamicBinaryTranslation, author = {David Ung and Cristina Cifuentes}, title = {Dynamic binary translation using run-time feedbacks}, journal = {Science of Computer Programming}, year = 2006, volume = 60, number = 2, pages = {189--204}, month = apr } @Article{Debbabi2006SelectiveDynamic, author = {Mourad Debbabi and Abdelouahed Gherbi and Azzam Mourad and Hamdi Yahyaoui}, title = {A selective dynamic compiler for embedded Java virtual machines targeting ARM processors}, journal = {Science of Computer Programming}, year = 2006, volume = 59, number = {1--2}, pages = {38--63}, month = jan } @TechReport{Demuth1997EchteCompilergenerierung, author = {Jochen Demuth and Stephan Weber and S{\"o}nke Kannapinn and Mario Kr{\"o}plin}, title = {{Echte Compilergenerierung -- Effiziente Implementierung einer abgeschlossenen Theorie}}, institution = {Technische Universit{\"a}t Berlin}, year = 1997, type = {Research report}, number = {\mbox{1997-06} in {\em Forschungsberichte des Fachbereichs Informatik}}, } @inproceedings{Wu2005ControllingEnergy, author = {Qiang Wu and Margaret Martonosi and Douglas W. Clark and V. J. Reddi and Dan Connors and Youfeng Wu and Jin Lee and David Brooks}, title = {A Dynamic Compilation Framework for Controlling Microprocessor Energy and Performance}, booktitle = {MICRO 38: Proceedings of the 38th annual IEEE/ACM International Symposium on Microarchitecture}, year = 2005, isbn = {0-7695-2440-0}, pages = {271--282}, doi = {http://dx.doi.org/10.1109/MICRO.2005.7}, publisher = {IEEE Computer Society}, address = {Washington, DC, USA}, } @inproceedings{Unnikrishnan2002EnergyAdaptation, author = {P. Unnikrishnan and G. Chen and M. Kandemir and D. R. Mudgett}, title = {Dynamic compilation for energy adaptation}, booktitle = {ICCAD '02: Proceedings of the 2002 IEEE/ACM International Conference on Computer-aided Design}, year = 2002, isbn = {0-7803-7607-2}, pages = {158--163}, location = {San Jose, California}, doi = {http://doi.acm.org/10.1145/774572.774595}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Ogel2005EffiicentDynamicAspects, author = {Fr{\'e}d{\'e}ric Ogel and Ga{\"e}l Thomas and Bertil Folliot}, title = {Supporting efficient dynamic aspects through reflection and dynamic compilation}, booktitle = {SAC '05: Proceedings of the 2005 ACM Symposium on Applied Computing}, year = 2005, isbn = {1-58113-964-0}, pages = {1351--1356}, location = {Santa Fe, New Mexico}, doi = {http://doi.acm.org/10.1145/1066677.1066983}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Kotzmann2005EscapeAnalysis, author = {Thomas Kotzmann and Hanspeter M{\"o}ssenb{\"o}ck}, title = {Escape analysis in the context of dynamic compilation and deoptimization}, booktitle = {VEE '05: Proceedings of the 1st ACM/USENIX International Conference on Virtual Execution Environments}, year = 2005, isbn = {1-59593-047-7}, pages = {111--120}, location = {Chicago, IL, USA}, doi = {http://doi.acm.org/10.1145/1064979.1064996}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Hazelwood2003AdaptiveOnlineInlining, author = {Kim Hazelwood and David Grove}, title = {Adaptive online context-sensitive inlining}, booktitle = {CGO '03: Proceedings of the international symposium on Code generation and optimization}, year = 2003, isbn = {0-7695-1913-X}, pages = {253--264}, location = {San Francisco, California}, publisher = {IEEE Computer Society}, address = {Washington, DC, USA}, } @inproceedings{Ogata1994MultithreadSmalltalk, author = {Kazuhiro Ogata and Norihisa Doi}, title = {Object allocation and dynamic compilation in {MultithreadSmalltalk}}, booktitle = {SAC '94: Proceedings of the 1994 ACM Symposium on Applied Computing}, year = 1994, isbn = {0-89791-647-6}, pages = {452--456}, location = {Phoenix, Arizona, United States}, doi = {http://doi.acm.org/10.1145/326619.326808}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Wimmer2005OptimizedIntervalSplitting, author = {Christian Wimmer and Hanspeter M{\"o}ssenb{\"o}ck}, title = {Optimized interval splitting in a linear scan register allocator}, booktitle = {VEE '05: Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments}, year = 2005, isbn = {1-59593-047-7}, pages = {132--141}, location = {Chicago, IL, USA}, doi = {http://doi.acm.org/10.1145/1064979.1064998}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Ung2000MachineAdaptableDynamic, author = {David Ung and Cristina Cifuentes}, title = {Machine-adaptable dynamic binary translation}, booktitle = {DYNAMO '00: Proceedings of the ACM SIGPLAN Workshop on Dynamic and Adaptive Compilation and Optimization}, year = 2000, isbn = {1-58113-241-7}, pages = {41--51}, doi = {http://doi.acm.org/10.1145/351397.351414}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Brifault2004DataDrivenRTCG, author = {Karine Brifault and Henri-Pierre Charles}, title = {Efficient data driven run-time code generation}, booktitle = {LCR '04: Proceedings of the 7th workshop on Workshop on languages, compilers, and run-time support for scalable systems}, year = 2004, pages = {1--7}, location = {Houston, Texas}, doi = {http://doi.acm.org/10.1145/1066650.1066653}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Smith2000Overcoming, author = {Michael D. Smith}, title = {Overcoming the challenges to feedback-directed optimization (Keynote Talk)}, booktitle = {DYNAMO '00: Proceedings of the ACM SIGPLAN workshop on Dynamic and adaptive compilation and optimization}, year = 2000, isbn = {1-58113-241-7}, pages = {1--11}, doi = {http://doi.acm.org/10.1145/351397.351408}, publisher = ACM, address = {New York, NY, USA}, } @article{Kistler2003ContinuousProgramOptimization, author = {Thomas Kistler and Michael Franz}, title = {Continuous program optimization: A case study}, journal = {ACM Trans. Program. Lang. Syst.}, volume = 25, number = 4, year = 2003, issn = {0164-0925}, pages = {500--548}, doi = {http://doi.acm.org/10.1145/778559.778562}, publisher = ACM, address = {New York, NY, USA}, } @article{Grant2004RetrospectiveDyC, author = {Brian Grant and Matthai Philipose and Markus Mock and Craig Chambers and Susan J. Eggers}, title = {A retrospective on: ``an evaluation of staged run-time optimizations in DyC''}, journal = {SIGPLAN Notices}, volume = 39, number = 4, year = 2004, issn = {0362-1340}, pages = {656--669}, doi = {http://doi.acm.org/10.1145/989393.989458}, publisher = ACM, address = {New York, NY, USA}, } @InProceedings{Coglio2002SimpleVerification, author = {Alessandro Coglio}, title = {Simple Verification Technique for Complex {Java} Bytecode Subroutines}, booktitle = {Proc.\ 4th {ECOOP} Workshop on Formal Techniques for {Java}-like Programs}, year = 2002, month = {June} } @Book{Waite1984CompilerConstruction, author = {William M. Waite and Gerhard Goos}, title = {Compiler Construction}, publisher = SV, year = 1984 } @Book{Nielson1992SemanticsWithApplications, author = {Hanne Riis Nielson and Flemming Nielson}, title = {Semantics with Applications: A Formal Introduction}, publisher = Wiley, year = 1992 } @TechReport{Beck2005FIRM, author = {Michael Beck and G{\"o}tz Lindenmaier and Boris Boesler and Rubino Gei{\ss}}, title = {Firm, an Intermediate Language for Compiler Research}, institution = {University of Karlsruhe}, year = 2005, number = {2005-8,}, month = {mar} } @Article{Nielson1987HoareLikeProofSystem, author = "H. Riis Nielson", title = "A Hoare-like Proof System for Run-time Analysis of Programs", year = 1987, pages = "107-136", journal = "Science of Computer Programming", volume = 9, editor = "", number = "", publisher = "", url = "http://www2.imm.dtu.dk/pubdb/p.php?1768" } @PhdThesis{Wright2005, author = {Joel J. Wright}, title = {Compiling and Reasoning about Exceptions and Interrupts}, school = {University of Nottingham}, year = 2005, month = jun } @Book{Michaelson1995ElementaryStandardML, author = {Greg Michaelson}, title = {Elementary {Standard} {ML}}, publisher = {UCL Press}, year = 1995 } @Book{Michaelson1988IntroFP, author = {Greg Michaelson}, title = {An Introduction to Functional Programming Through Lambda Calculus}, publisher = AW, year = 1988 } @InProceedings{Cooper2006Links, author = {Ezra Cooper and Sam Lindley and Philip Wadler and Jeremy Yallop}, title = {Links: Web Programming Without Tiers}, booktitle = {Proceedings of the International Conference on Functional Programming (ICFP'06)}, year = 2006, note = {Submitted} } @inproceedings{Zenger2001ExtensibleAlgebraicDatatypes, author = {Matthias Zenger and Martin Odersky}, title = {Extensible algebraic datatypes with defaults}, booktitle = {ICFP '01: Proceedings of the sixth ACM SIGPLAN International Conference on Functional Programming}, year = 2001, isbn = {1-58113-415-0}, pages = {241--252}, location = {Florence, Italy}, doi = {http://doi.acm.org/10.1145/507635.507665}, publisher = ACM, address = {New York, NY, USA}, } @TechReport{Loeh2006OpenDataTypes, author = {Andres L{\"o}h and Ralf Hinze}, title = {Open data types and open functions}, institution = {Lehrstuhl f{\"u}r Informatik III, Universit{\"a}t Bonn}, year = 2006, number = {IAI-TR-2006-02} } @InProceedings{Loeh2006OpenDataTypesAndOpenFunctions, author = {Andres L{\"o}h and Ralf Hinze}, title = {Open data types and open functions}, booktitle = {Eighth ACM-SIGPLAN International Symposium on Principles and Practice of Declarative Programming (PPDP'06)}, year = 2006, editor = {Michael Maher}, address = {Venice, Italy}, month = jul, publisher = ACM } @InProceedings{Spiliopoulou2000BriskMachine, author = {Eleni Spiliopoulou and Ian Holyer}, title = {The Brisk Machine: the Next Step in the Execution of Functional Languages}, booktitle = {Proceedings of Festival Workshop in Foundations and Computations, FC'00}, year = 2000, month = jul } @InProceedings{Candea2004Microreboot, author = {George Candea and Shinichi Kawamoto and Yuichi Fujiki and Greg Friedman and Armando Fox}, title = {Microreboot -- A Technique for Cheap Recovery}, booktitle = {Proceedings of the 6th Symposium on Operating Systems Design and Implementation (OSDI)}, year = 2004, address = {San Francisco, CA}, month = dec } @InProceedings{Candea2001RecursiveRestartability, author = {George Candea and Armando Fox}, title = {Recursive Restartability: Turning the Reboot Sledgehammer into a Scalpel}, booktitle = {Proceedings of the 8th {W}orkshop on {H}ot {T}opics in {O}perating {S}ystems ({HotOS-VIII})}, pages = {110--115}, year = 2001, address = {Schloss Elmau, Germany}, month = may, organization = {{IEEE} {C}omputer {S}ociety}, annote = {Even after decades of software engineering research, complex computer systems still fail, primarily due to nondeterministic bugs that are typically resolved by rebooting. Conceding that Heisenbugs will remain a fact of life, we propose a systematic investigation of restarts as "high availability medicine." In this paper we show how recursive restartability (RR) -- the ability of a system to gracefully tolerate restarts at multiple levels -- improves fault tolerance, reduces time-to-repair, and enables system designers to build flexible, highly available software infrastructures. Using several examples of widely deployed software systems, we identify properties that are required of RR systems and outline an agenda for turning the recursive restartability philosophy into a practical software structuring tool. Finally, we describe infrastructural support for RR systems, along with initial ideas on how to analyze and benchmark such systems.} } @InProceedings{Candea2003CrashOnlySoftware, author = {George Candea and Armando Fox}, title = {Crash-Only Software}, booktitle = {Proceedings of the 9th {W}orkshop on {H}ot {T}opics in {O}perating {S}ystems ({HotOS-IX})}, year = 2003, address = {Lihue, Hawaii}, month = may, organization = {{IEEE} {C}omputer {S}ociety} } @Misc{MLWorkingGroup2000ML2000, author = {The {ML2000 Working Group}}, title = {{Principles and a Preliminary Design for ML2000}}, howpublished = {World Wide Web}, month = mar, year = 2000, annote = {Available at: \url{http://flint.cs.yale.edu/flint/publications/ml2000.html}} } @TechReport{Thies1999StaticAnalysisLib, author = {Michael Thies}, title = {Static compositional analysis of libraries in support of dynamic optimization}, institution = {Universit{\"a}t Paderborn Fachbereich Mathematik-Informatik}, year = 1999, type = {Technischer Bericht, Reihe Informatik}, number = {tr-ri-99-210}, month = aug } @inproceedings{Ishizaki2000Devirtualization, author = {Kazuaki Ishizaki and Motohiro Kawahito and Toshiaki Yasue and Hideaki Komatsu and Toshio Nakatani}, title = {A study of devirtualization techniques for a Java Just-In-Time compiler}, booktitle = {OOPSLA '00: Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications}, year = 2000, isbn = {1-58113-200-X}, pages = {294--310}, location = {Minneapolis, Minnesota, United States}, doi = {http://doi.acm.org/10.1145/353171.353191}, publisher = ACM, address = {New York, NY, USA}, } @Misc{Jian2004DistributedJIT, author = {Li Jian}, title = {Distributed Java Just-in-Time compiler for embedded system}, howpublished = {Available from: \url{http://www.cogs.susx.ac.uk/users/pgrep/whp/doc/individual/2004/papers/LiJian.pdf}} } @inproceedings{Meyer1988ContinuationsUnreasonable, author = {Albert Meyer and Jon G. Riecke}, title = {Continuations may be unreasonable}, booktitle = {LFP '88: Proceedings of the 1988 ACM conference on LISP and functional programming}, year = 1988, isbn = {0-89791-273-X}, pages = {63--71}, location = {Snowbird, Utah, United States}, doi = {http://doi.acm.org/10.1145/62678.62685}, publisher = ACM, address = {New York, NY, USA}, } @InProceedings{Reps2006IntermediateRepresentation, author = {Thomas Reps and Gogul Balakrishnan and Junghee Lim}, title = {Intermediate-Representation Recovery from Low-Level Code}, booktitle = {Proc. Workshop on Partial Evaluation and Program Manipulation (PEPM)}, year = 2006, address = {Charleston, South California}, note = jan } @PhdThesis{Backes2004XRTLAnalyse, author = {Werner Backes}, title = {{Programmanalyse des XRTL Zwischencodes}}, school = {Universit{\"a}t des Saarlandes}, year = 2004 } @incollection{Wall1992SystemsCodeModification, author = "David W. Wall", title = "{S}ystems for late code modification", booktitle = "Code Generation - Concepts, Tools, Techniques", publisher = "Springer-Verlag", editor = "Giegerich, Robert and Graham, Susan L.", pages = "275-293", year = 1992, url = "citeseer.ist.psu.edu/wall92systems.html" } @article{Kamin2003RoutineRTCG, author = {Sam Kamin}, title = {Routine run-time code generation}, journal = {SIGPLAN Notices}, volume = 38, number = 12, year = 2003, issn = {0362-1340}, pages = {44--56}, doi = {http://doi.acm.org/10.1145/966051.966059}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Gay2005TinyOS, author = {David Gay and Phil Levis and David Culler}, title = {Software design patterns for TinyOS}, booktitle = {LCTES'05: Proceedings of the 2005 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems}, year = 2005, isbn = {1-59593-018-3}, pages = {40--49}, location = {Chicago, Illinois, USA}, doi = {http://doi.acm.org/10.1145/1065910.1065917}, publisher = ACM, address = {New York, NY, USA}, } @InProceedings{Cheney2005ScrapYourNameplate, author = {James Cheney}, title = {Scrap your Nameplate (Functional Pearl)}, booktitle = {Proceedings of the International Conference on Functional Programming (ICFP 2005)}, pages = {180--191}, year = 2005 } @InProceedings{Soffa2004DevelopingFoundation, author = {Mary Lou Soffa}, title = {Developing a Foundation for Code Optimization}, booktitle = {Compiler Construction: 13th International Conference, CC 2004}, pages = {1--4}, year = 2004, volume = 2985, series = LNCS, month = jan } @Article{Wehr2006ModulesClasses, author = {Stefan Wehr and Manuel M. T. Chakravarty}, title = {{ML Modules and Haskell Type Classes: A Constructive Comparison}}, journal = JFP, year = 2006, note = {Submitted} } @Book{Fahringer2003SymbolicAnalysis, author = {Thomas Fahringer and Bernhard Scholz}, title = {Advanced Symbolic Analysis for Compilers}, publisher = SV, year = 2003, volume = 2628, series = LNCS } @InProceedings{Blazy2006CFront, author = {Sandrine Blazy and Zaynah Dargaye and Xavier Leroy}, title = {Formal verification of a C compiler front-end}, booktitle = {Formal Methods 2006}, year = 2006 } @InProceedings{Dean1995CHA, author = {Jeffrey Dean and David Grove and Craig Chambers}, title = {Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis}, booktitle = {ECOOP '95}, pages = {77--101}, year = 1995, volume = 952, series = LNCS } @inproceedings{Morris1973TypesAreNotSets, author = {James H. Morris, Jr.}, title = {Types are not sets}, booktitle = {POPL '73: Proceedings of the 1st annual ACM SIGACT-SIGPLAN symposium on Principles of programming languages}, year = 1973, pages = {120--124}, location = {Boston, Massachusetts}, doi = {http://doi.acm.org/10.1145/512927.512938}, publisher = ACM, address = {New York, NY, USA}, } @InProceedings{Shivers1991UVE, author = {Olin Shivers}, title = {Useless-variable elimination}, booktitle = {Proceedings of the Workshop on Static Analysis of Equational, Functional and Logic Programs (WSA'91)}, year = 1991, address = {Bordeaux, France}, month = oct, note = {Published as \emph{Actes JTASPEFL'91}, Bigre \#74, Atelier Irisa, IRISA Campus de Beaulieu} } @TechReport{Shivers1990SuperBeta, author = {Olin Shivers}, title = {Super-$\beta$: Copy, constant, and lambda propagation in Scheme}, institution = {CMU School of Computer Science}, year = 1990, note = {Scheme Flow-analysis Working Note \#3 (May 1, 1990)} } @InProceedings{vanReeuwijk2003Metacompilation, author = {C. van Reeuwijk}, title = {Rapid and Robust Compiler Construction Using Template-Based Metacompilation}, booktitle = {CC2003}, pages = {247--261}, year = 2003, month = apr, address = {Warsaw, Poland} } @InProceedings{vanReeuwijk2002AddingTuplesToJava, author = {C. van Reeuwijk and H.J. Sips}, title = {Adding Tuples to Java: a Study in Lightweight Data Structures}, booktitle = {Proc. of the Java Grande/ISCOPE 2002 Conference}, pages = {185--191}, year = 2002, address = {Seattle, USA}, month = nov } @inproceedings{Loewe2002MetaprogrammingApplied, author = {Welf L{\"o}we and Markus L. Noga}, title = {Metaprogramming Applied to Web Component Deployment}, booktitle = {Electronic Notes in Theoretical Computer Science}, volume = 65, number = 4, publisher = {Elsevier}, year = 2002 } @InProceedings{Boerger1999JavaSemantics, author = {Egon B{\"o}rger and Wolfram Schulte}, title = {A Programmer Friendly Modular Definition of the Semantics of Java}, booktitle = {Formal Syntax and Semantics of Java}, pages = {353--404}, year = 1999, editor = {J. Alves-Foss}, volume = 1523, series = LNCS, publisher = SV } @Misc{Ramsey2001FeatherweightConcurrency, author = {Norman Ramsey and Simon {Peyton Jones}}, title = {Featherweight concurrency in a portable assembly language}, howpublished = {Available from: \url{http://research.microsoft.com/Users/simonpj/papers/c--/c--conc.htm}}, month = jan, year = 2001 } @Article{BakerFinch2004CPR, author = {Clem Baker-Finch and Kevin Glynn and Simon {Peyton Jones}}, title = {Constructed Product Result Analysis for Haskell}, journal = {Journal of Functional Programming}, year = 2004, volume = 14, number = 2, pages = {211--245} } @PhdThesis{Escobar2003PhD, author = {Santiago Escobar}, title = {Strategies and Analysis Techniques for Functional Program Optimization}, school = {Departamento de Sistemas Informáticos y Computación, Universidad Politécnica de Valencia}, year = 2003, month = oct } @inproceedings{Debray1995AbstractInterpretationLowLevelOptimization, author = {Saumya Debray}, title = {Abstract interpretation and low-level code optimization}, booktitle = {PEPM '95: Proceedings of the 1995 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation}, year = 1995, isbn = {0-89791-720-0}, pages = {111--121}, location = {La Jolla, California, United States}, doi = {http://doi.acm.org/10.1145/215465.215571}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Nilsson2005DynamicOptimization, author = {Henrik Nilsson}, title = {Dynamic optimization for functional reactive programming using generalized algebraic data types}, booktitle = {ICFP '05: Proceedings of the tenth ACM SIGPLAN international conference on Functional programming}, year = 2005, isbn = {1-59593-064-7}, pages = {54--65}, location = {Tallinn, Estonia}, doi = {http://doi.acm.org/10.1145/1086365.1086374}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{DBLP:conf/ifl/BentonKLR04, author = {Nick Benton and Andrew Kennedy and Sam Lindley and Claudio V. Russo}, title = {Shrinking Reductions in SML.NET.}, booktitle = {IFL}, year = {2004}, pages = {142-159}, ee = {http://dx.doi.org/10.1007/11431664_9}, crossref = {DBLP:conf/ifl/2004}, bibsource = {DBLP, http://dblp.uni-trier.de} } @proceedings{DBLP:conf/ifl/2004, editor = {Clemens Grelck and Frank Huch and Greg Michaelson and Philip W. Trinder}, title = {Implementation and Application of Functional Languages, 16th International Workshop, IFL 2004, L{\"u}beck, Germany, September 8-10, 2004, Revised Selected Papers}, booktitle = {IFL}, publisher = {Springer}, series = {Lecture Notes in Computer Science}, volume = {3474}, year = {2005}, isbn = {3-540-26094-3}, bibsource = {DBLP, http://dblp.uni-trier.de} } @inproceedings{DBLP:conf/ifl/StefanovS04, author = {Ekaterina Stefanov and Anthony M. Sloane}, title = {Simple, Effective Code-Size Reduction for Functional Programs.}, booktitle = {IFL}, year = {2004}, pages = {211-225}, ee = {http://dx.doi.org/10.1007/11431664_13}, crossref = {DBLP:conf/ifl/2004}, bibsource = {DBLP, http://dblp.uni-trier.de} } @Misc{Palmer2006PluvoHomePage, author = {Sean B. Palmer}, title = {Pluvo Home Page}, howpublished = {Available from: \url{http://inamidst.com/pluvo/}}, month = jul, year = 2006, note = {Just-in-time compiled functional/imperative scripting language} } @Misc{PLT2006PLTSchemeHomePage, author = {The {PLT Group}}, title = {PLT Scheme Home Page}, howpublished = {Available from: \url{http://www.plt-scheme.org}}, month = jul, year = 2006, note = {Scheme compiler/interpreter with just-in-time compilation} } @Book{Demoen2005First10PrologContests, author = {Bart Demoen and Phuong-Lan Nguyen and Tom Schrijvers and Remko Troncon}, title = {The First 10 Prolog Programming Contests}, publisher = {Self}, year = 2005 } @proceedings{AlvesFoss1999FormalSyntaxSemanticsJava, editor = {Jim Alves-Foss}, title = {Formal Syntax and Semantics of Java}, booktitle = {Formal Syntax and Semantics of Java}, publisher = {Springer}, series = {Lecture Notes in Computer Science}, volume = {1523}, year = {1999}, isbn = {3-540-66158-1}, bibsource = {DBLP, http://dblp.uni-trier.de} } @inproceedings{Qian1999FormalSepcJVMCode, author = {Zhenyu Qian}, title = {A Formal Specification of Java Virtual Machine Instructions for Objects, Methods and Subrountines.}, booktitle = {Formal Syntax and Semantics of Java}, year = 1999, pages = {271-312}, ee = {http://link.springer.de/link/service/series/0558/bibs/1523/15230271.htm}, crossref = {AlvesFoss1999FormalSyntaxSemanticsJava}, bibsource = {DBLP, http://dblp.uni-trier.de} } @InProceedings{Paleczny2001HotSpotServer, author = {Michael Paleczny and Christopher Vick and Cliff Click}, title = {{The Java HotSpot\texttrademark{} Server Compiler}}, booktitle = {Proceedings of the Java\texttrademark{} Virtual Machine Research and Technology Symposium (JVM '01)}, year = 2001, month = apr, organization = {USENIX Association} } @Proceedings{Cook2003WODA, title = {ICSE Workshop on Dynamic Analysis (WODA 2003)}, year = 2003, editor = {Jonathan Cook and Michael Ernst}, address = {Portland, Oregon}, month = may } @Article{Bird2006FindingCelebreties, author = {Richard Bird and Sharon Curtis}, title = {FUNCTIONAL PEARLS: Finding celebrities: A lesson in functional programming}, journal = JFP, year = 2006, volume = 16, number = 1, pages = {13--20}, month = jan } @Article{Erwig2006ProbabilisticFP, author = {Martin Erwig and Steve Kollmansberger}, title = {FUNCTIONAL PEARLS: Probabilistic functional programming in Haskell }, journal = JFP, year = 2006, volume = 16, number = 1, pages = {21--34}, month = jan } @InBook{Hinze1998ProjBasStriktAna, author = {Ralf Hinze}, title = {Ausgezeichnete Informatikdissertationen 1996}, chapter = {Projektionsbasierte Striktheitsanalyse}, publisher = {Teubner, Stuttgart}, year = 1998, pages = {46--61} } @Article{Hinze2006FingerTrees, author = {Ralf Hinze and Ross Paterson}, title = {Finger trees: a simple general-purpose data structure}, journal = JFP, year = 2006, volume = 16, number = 2, pages = {197-217} } @PhdThesis{Hinze1995PhD, author = {Ralf Hinze}, title = {Projection-based Strictness Analysis - Theoretical and Practical Aspects}, school = {Universität Bonn}, year = 1995, month = nov } @Book{Felleisen2006PLLC, author = {Matthias Felleisen and Matthew Flatt}, title = {Programming Languages and Lambda Calculi}, publisher = {Web}, year = 2006, note = {Available from: \url{http://www.cs.utah.edu/plt/publications/pllc.pdf}} } @InProceedings{Benton2006AbstractingAllocation, author = {Nick Benton}, title = {Abstracting Allocation: The New new Thing}, booktitle = {Somewhere Conference}, year = 2006, month = sep, note = {Available online: \url{http://research.microsoft.com/~nick/newnewcsl.pdf}} } @Misc{Abramsky2006SociallyResponsive, author = {Samson Abramsky}, title = {Socially Responsive, Environmentally Friendly Logic}, howpublished = {Available online: \url{http://web.comlab.ox.ac.uk/oucl/work/ samson.abramsky/sandu.pdf}}, year = 2006 } @Article{Cierniak2003ORP, author = {Michal Cierniak and Marsha Eng and Neal Glew and Brian Lewis and James Stichnoth}, title = {The Open Runtime Platform: A Flexible High-Performance Managed Runtime Environment}, journal = {Intel Technology Journal}, year = 2003, volume = 7, number = 1, month = feb } @inproceedings{Hundt2006StructureLayoutOptimization, author = {Robert Hundt and Sandya Mannarswamy and Dhruva Chakrabarti}, title = {Practical Structure Layout Optimization and Advice}, booktitle = {CGO '06: Proceedings of the International Symposium on Code Generation and Optimization}, year = 2006, isbn = {0-7695-2499-0}, pages = {233--244}, doi = {http://dx.doi.org/10.1109/CGO.2006.29}, publisher = {IEEE Computer Society}, address = {Washington, DC, USA}, } @inproceedings{Bruening2006ThreadShared, author = {Derek Bruening and Vladimir Kiriansky and Timothy Garnett and Sanjeev Banerji}, title = {Thread-Shared Software Code Caches}, booktitle = {CGO '06: Proceedings of the International Symposium on Code Generation and Optimization}, year = 2006, isbn = {0-7695-2499-0}, pages = {28--38}, doi = {http://dx.doi.org/10.1109/CGO.2006.36}, publisher = {IEEE Computer Society}, address = {Washington, DC, USA}, } @InProceedings{Haller2006EventBased, author = {Philipp Haller and Martin Odersky}, title = {Event-Based Programming without Inversion of Control}, booktitle = {Proc. Joint Modular Languages Conference}, year = 2006, series = {Springer LNCS} } @Misc{Valgrind2006HomePage, title = {Valgrind Home Page}, howpublished = {Available from: \url{http://valgrind.org}}, month = jul, year = 2006 } @InProceedings{PeytonJones2007HistoryOfHaskell, author = {Simon {Peyton Jones} and Phil Wadler and Paul Hudak and and John Hughes }, title = {The History of Haskell (draft)}, booktitle = {History of Programming Languages conference (HOPL'07)}, year = 2007, note = {Submitted} } @Unpublished{PeytonJones1992StaticSemanticsHaskell, author = {Simon {Peyton Jones} and Philip Wadler}, title = {A static semantics for {Haskell}}, note = {Draft, available online: \url{http://research.microsoft.com/~simonpj/Papers/static-semantics.dvi.gz}}, month = feb, year = 1992 } @TechReport{Harris2006LeakyRegions, author = {Tim Harris}, title = {Leaky regions: linking reclamation hints to program structure}, institution = {Microsoft Research}, year = 2006, number = {MSR-TR-2006-84}, month = jun } @TechReport{UnknownMITMemo35, author = {No author(s) listed}, title = {LAP (LISP Assembly Program)}, institution = MITAI, year = {No date listed}, type = {MIT Memo}, number = 35 } @TechReport{McCarthy1962BasisMathematicalTheory, author = {John McCarthy}, title = {A Basis for a Mathematical Theory of Computation}, institution = MITAI, year = 1962, type = {MIT Memo}, number = 31, month = jan } @Book{Chakravarty2003FFIReport, editor = {Manuel Chakravarty}, title = {The Haskell 98 Foreign Function Interface 1.0 -- An Addendum to the Haskell 98 Report}, publisher = {WWW}, year = 2003 } @Book{SPARC1994SPARCArchitectureManual, editor = {David L. Weaver and Tom Germond}, title = {The SPARC Architecture Manual}, publisher = {PTR Prentice Hall}, year = 1994 } @phdthesis{King2004RemovingGCSynchronisation, author = {Andy C. King}, title = {Removing Garbage Collector Synchronisation}, month = {September}, year = 2004, pages = 211, keywords = {}, note = {}, url = {http://www.cs.kent.ac.uk/pubs/2004/1981}, publication_type ={phdthesis}, submission_id ={24459_1096908934}, school = {University of Kent at Canterbury}, } @article{ Bacon1994CompilerTransformations, author = "David F. Bacon and Susan L. Graham and Oliver J. Sharp", title = "Compiler Transformations for High-Performance Computing", journal = "ACM Computing Surveys", volume = 26, number = 4, pages = "345--420", year = 1994, url = "citeseer.ist.psu.edu/article/bacon93compiler.html" } @Misc{Brady2006Ivor, author = {Edwin Brady}, title = {Ivor, a Proof Engine}, howpublished = {Available from: \url{http:/www.dcs.st-and.ac.uk/~eb/drafts/ivor.pdf}}, month = aug, year = 2006 } @Article{Lapalme1998DynamicTabbing, author = {Guy Lapalme}, title = {Dynamic tabbing for automatic indentation with the layout rule}, journal = JFP, year = 1998, volume = 8, number = 5, month = sep } @Article{McBride2006Applicative, author = {Conor McBride and Ross Paterson}, title = {Applicative Programming with Effects}, journal = JFP, year = 2006, volume = 0, number = 0, pages = {0--0}, note = {submitted} } @InProceedings{Hill1994VectorisationMonad, author = {Jonathan M. D. Hill and Keith M. Clarke and Richard Bornat}, title = {The Vectorisation Monad}, booktitle = {PASCO'94}, pages = {204--213}, year = 1994 } @InProceedings{Hinze2000DerivingBacktracking, author = {Ralf Hinze}, title = {Deriving Backtracking Monad Transformers}, booktitle = {ICFP'00}, year = 2000, address = {Montreal, Canada}, publisher = ACM } @article{Ershov1965Alpha, author = {A. P. Ershov}, title = {ALPHA - an automatic programming system of high efficiency}, journal = {ALGOL Bull.}, number = 19, year = 1965, issn = {0084-6198}, pages = {19--27}, doi = {http://doi.acm.org/10.1145/1060998.1061006}, publisher = {Computer History Museum}, address = {Mountain View, CA, United States}, } @inproceedings{Buda1975Alpha6, author = {A. O. Buda and A. A. Granovaky and A. P. Ershov}, title = {Implementation of the Alpha-6 programming system}, booktitle = {Proceedings of the international conference on Reliable software}, year = 1975, pages = {371--381}, location = {Los Angeles, California}, doi = {http://doi.acm.org/10.1145/800027.808460}, publisher = ACM, address = {New York, NY, USA}, } @article{Steele1975Compactifying, author = {Guy L. {Steele, Jr.}}, title = {Multiprocessing compactifying garbage collection}, journal = {Communications of the ACM}, volume = 18, number = 9, year = 1975, issn = {0001-0782}, pages = {495--508}, doi = {http://doi.acm.org/10.1145/361002.361005}, publisher = ACM, address = {New York, NY, USA}, } @InProceedings{Shields2001FirstClassModules, author = {Mark Shields and Simon {Peyton Jones}}, title = {First-class Modules for Haskell}, booktitle = {International Conference on Foundations of Object-Oriented Languages (FOOL 9)}, year = 2001, address = {Portland, Oregon}, month = oct } @InProceedings{PeytonJonesBulkTypes, author = {Simon {Peyton Jones}}, title = {Bulk types with class}, booktitle = {Electronic proceedings of the 1996 Glasgow Functional Programming Workshop}, year = 1996, address = {Ullapool}, month = jul } @PhdThesis{Gill1996PhD, author = {Andrew Gill}, title = {Cheap deforestation for non-strict functional languages}, school = {University of Glasgow}, year = 1996, month = jan } @inproceedings{Huelsbergen93Concurrent, author = "Lorenz Huelsbergen and James R. Larus", title = "A Concurrent Copying Garbage Collector for Languages that Distinguish (Im)mutable Data", booktitle = "Principles Practice of Parallel Programming", pages = "73-82", year = 1993, url = "citeseer.ist.psu.edu/huelsbergen93concurrent.html" } @TechReport{Nettles1993Replication, author = {Scott M. Nettles and James W. O'Toole and David Pierce and Nicholas Haines}, title = {Replication-Based Incremental Copying Collection}, institution = {Carnegie Mellon University}, year = 1993, number = {CMU-CS-93-135} } @Book{Knuth1991LiterateProgramming, author = {Donald E. Knuth}, title = {Literate Programming}, publisher = {Center for the Study of Language and Information}, year = 1991, number = 27, series = {CSLI Lecture Notes} } @Book{Ruething1998CodeMotion, author = {Oliver R{\"u}thing}, title = {Interacting Code Motion Transformations: Their Impact and Their Complexity}, publisher = SV, year = 1998, volume = 1539, series = LNCS } @Proceedings{Bodik2005CC, title = {Compiler Construction}, year = 2005, editor = {Ratislav Bodik}, volume = 3443, series = LNCS } @InProceedings{Siek2006GradualTyping, author = {Jeremy G. Siek and Walid Taha}, title = {Gradual Typing for Functional Languages}, booktitle = {Scheme and Functional Programming}, year = 2006, address = {Portland, Oregon}, publisher = ACM } @InProceedings{Xu2006ExtendedStaticChecking, author = {Dana N. Xu}, title = {Extended Static Checking for Haskell}, booktitle = {Haskell Workshop '06}, year = 2006, address = {Portland, Oregon}, publisher = ACM } @InProceedings{Hoare2003VerifyingCompiler, author = {C.A.R. Hoare}, title = {The Verifying Compiler: A Grand Challenge for Computing Research}, booktitle = {Modular Programming Languages}, year = 2003, volume = 2789, series = LNCS, publisher = SV } @PhdThesis{Buttle2001VerificationCompiledCode, author = {Darren Lee Buttle}, title = {Verification of Compiled Code}, school = {University of York}, year = 2001, month = jan } @Book{Garey1979ComputersIntractibility, author = {Michael R. Garey and David S. Johnson}, title = {Computers and Intractibility}, publisher = {W. H. Freeman and Company}, year = 1979 } @InProceedings{Glesner2005Herausforderungen, author = {Sabine Glesner and Jan Olaf Blech}, title = {Logische und softwaretechnische Herausforderungen bei der Verifikation optimierender Compiler}, booktitle = {Tagung Software Engineering 2005}, year = 2005, series = {Lecture Notes in Informatics}, address = {Essen, Germany} } @Article{Frederiksen2002Correctness, author = {Carl Christian Frederiksen}, title = {Correctness of Classical Compiler Optimizations using CTL}, journal = {Electronic Notes in Theoretical Computer Science}, year = 2002, volume = 65, number = 2 } @inproceedings{Gaul1996Architecture, author = {Thomas Gaul and Gerhard Goos and Andreas Heberle and Wolf Zimmermann and Wolfgang Goerigk}, title = {{An Architecture for Verified Compiler Construction}}, booktitle = {{J}oint {M}odular {L}anguages {C}onference JMLC'97}, year = 1997 , month = mar, annote = {}, address = {Linz, Austria} } @InProceedings{Goos1999VerificationOfCompilers, author = {Gerhard Goos and Wolf Zimmermann}, title = {Verification of Compilers}, booktitle = {Correct System Design}, year = 1999 } @inproceedings{Stringer-Calvert1997UsingPVS, title = {Using {PVS} to Prove a {Z} Refinement: A Case Study}, author = {David W.J. Stringer-Calvert and Susan Stepney and Ian Wand}, institution = {Department of Computer Science, University of York}, booktitle = {{FME} '97: Formal Methods: Their Industrial Application and Strengthened Foundations}, editor = {John Fitzgerald and Cliff B. Jones and Peter Lucas}, address = {Gr{\"a}z, Austria}, publisher = SV, series = LNCS, number = 1313, month = sep, year = 1997, pages = {573--588} } @inproceedings{Glesner2002VerifiedCodeGeneration, author = {Sabine Glesner and Rubino Gei{\ss} and Boris Boesler}, title = {Verified Code Generation for Embedded Systems}, booktitle = {In Proceedings of the COCV-Workshop 2002 (Compiler Optimization meets Compiler Verification)}, year = 2002, month = Apr, organization = {Electronic Notes in Theoretical Computer Science (ENTCS)}, publisher = {5th European Conferences on Theory and Practice of Software (ETAPS 2002)}, volume = 65, number = 2, pages = {1-18}, abstract = {Leider nur in Englisch verf{\"u}gbar. Digital signal processors provide specialized SIMD (single instruction multiple data) operations designed to dramatically increase performance in embedded systems. While these operations are simple to understand, their unusual functions and their parallelism make it dicult for automatic code generation algorithms to use them eectively. In this paper, we present a new optimizing code generation method that can deploy these operations successfully while also verifying that the generated code is a correct translation of the input program. }, address = {Grenoble, France}, } @inproceedings{Glesner2004ASMSemanticsSSA, author = {Sabine Glesner}, title = {An ASM Semantics for SSA Intermediate Representations}, booktitle = {Proceedings of the 11th International Workshop on Abstract State Machines}, year = 2004, month = may, publisher = SV, series = LNCS, volume = {Vol. 3052}, pages = {144 - 160}, address = {Wittenberg, Germany}, } @inproceedings{Necula2000TranslationValidation, author = {George C. Necula}, title = {Translation validation for an optimizing compiler}, booktitle = {PLDI '00: Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation}, year = 2000, isbn = {1-58113-199-2}, pages = {83--94}, location = {Vancouver, British Columbia, Canada}, doi = {http://doi.acm.org/10.1145/349299.349314}, publisher = ACM, address = {New York, NY, USA}, } @Article{Bicarregui2006VerifiedRepository, author = {J.C. Bicarregui and C.A.R. Hoare and J.C.P. Woodcock}, title = {The verified software repository: a step towards the verifying compiler}, journal = {Formal Aspects of Computing}, year = 2006, volume = 18, number = 2, pages = {143--151}, month = jun } @article{Leinenbach2005FormalVerification, author = {Dirk Leinenbach and Wolfgang Paul and Elena Petrova}, title = {Towards the Formal Verification of a C0 Compiler: Code Generation and Implementation Correctnes}, journal = {sefm}, volume = 0, year = 2005, isbn = {0-7695-2435-4}, pages = {2-12}, doi = {http://doi.ieeecomputersociety.org/10.1109/SEFM.2005.51}, publisher = {IEEE Computer Society}, address = {Los Alamitos, CA, USA}, } @inproceedings{Leroy2006FormalCertification, author = {Xavier Leroy}, title = {Formal certification of a compiler back-end or: programming a compiler with a proof assistant}, booktitle = {POPL '06: Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages}, year = 2006, isbn = {1-59593-027-2}, pages = {42--54}, location = {Charleston, South Carolina, USA}, doi = {http://doi.acm.org/10.1145/1111037.1111042}, publisher = ACM, address = {New York, NY, USA}, } @article{Dave2003CompilerVerificationBibliography, author = {Maulik A. Dave}, title = {Compiler verification: a bibliography}, journal = {SIGSOFT Softw. Eng. Notes}, volume = 28, number = 6, year = 2003, issn = {0163-5948}, pages = {2--2}, doi = {http://doi.acm.org/10.1145/966221.966235}, publisher = ACM, address = {New York, NY, USA}, } @InProceedings{Leinenbach2005FormalVerificationC0, Author = {Leinenbach, D. and Paul, W. and Petrova, E.}, Title = {Towards the formal verification of a {C}0 compiler: {C}ode generation and implementation correctness}, BookTitle = {Proceedings of the 3rd {I}nternational {C}onference on {S}oftware {E}ngineering and {F}ormal {M}ethods ({SEFM} 2005)}, year = 2005 } @Article{Klein2006MachineCheckedModel, author = {Gerwin Klein and Tobias Nipkow}, title = {A Machine-Checked Model for a Java-Like Language, Virtual Machine, and Compiler}, journal = {ACM Transactions on Programming Languages and Systems}, year = 2006, volume = 28, number = 4, pages = {619--695}, month = jul } @inproceedings{Gesellensetter2006OnlyTheBest, author = {Lars Gesellensetter and Sabine Glesner}, title = {Only the best can make it: optimal component selection}, booktitle = {Formal Foundations of Embedded Software and Component-Based Software Architectures (FESCA)}, year = 2006, month = Mar, publisher = {Electronic Notes in Theoretical Computer Science (ENTCS)}, address = {Vienna, Austria}, postnote = {(to appear)}, } @InProceedings{Derrin2006RunningTheManual, author = {Philip Derrin and Kevin Elphinstone and Gerwin Klein and David Cock and Manuel M. T. Chakravarty}, title = {Running the Manual: An Approach to High-Assurance Microkernel Development}, booktitle = {ACM SIGPLAN 2006 Haskell Workshop}, year = 2006, publisher = ACM } @Article{Huet1997TheZipper, author = {G{\'e}rard Huet}, title = {Function {Pearl}: The {Zipper}}, journal = JFP, year = 1997, volume = 7, number = 5, pages = {549--554}, month = sep } @InProceedings{Chakravarty2005TypesWithClass, author = {Manuel Chakravarty and Gabrielle Keller and Simon {Peyton Jones} and Simon Marlow}, title = {Associated Types with Class}, booktitle = {Proceedings of The 32nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'05)}, year = 2005, pages = {1--13}, publisher = ACM } @InProceedings{Chakravarty2005AssociatedTypeSynonyms, author = {Manuel Chakravarty and Gabrielle Keller and Simon {Peyton Jones}}, title = {Associated Type Synonyms}, booktitle = {Proceedings of The Tenth ACM SIGPLAN International Conference on Functional Programming}, pages = {241--253}, year = 2005, publisher = ACM } @TechReport{Sulzmann2006SystemFTypeEqualityCoercions, author = {Martin Sulzmann and Manuel M. T. Chakravarty and Simon {Peyton Jones} and Kevin Donnelly}, title = {System {F} with Type Equality Coercions}, institution = {University of New South Wales}, year = 2006, number = {NSW-CSE-TR-0614}, month = aug } @InProceedings{Jones1992TheoryQualifiedTypes, author = {Mark P. Jones}, title = {A theory of qualified types}, booktitle = {ESOP '92: European Symposium on Programming}, year = 1992, volume = 582, series = LNCS, address = {Rennes, France}, month = feb, publisher = SV } @inproceedings{Dybvig2006DevelopmentChezScheme, author = {R. Kent Dybvig}, title = {The development of Chez Scheme}, booktitle = {ICFP '06: Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming}, year = 2006, isbn = {1-59593-309-3}, pages = {1--12}, location = {Portland, Oregon, USA}, doi = {http://doi.acm.org/10.1145/1159803.1159805}, publisher = ACM, address = {New York, NY, USA}, } @InProceedings{Coutts2007RewritingHaskellStrings, author = {Duncan Coutts and Don Stewart and Roman Leshchinskiy}, title = {Rewriting Haskell Strings}, booktitle = {PADL 2007}, year = 2007, note = {Submitted} } @InProceedings{Blum1989Designing, Author = {M. Blum and S. Kanna}, Title = {Designing Programs That Check Their Work}, BookTitle = {{STOC '89: Proceedings of the twenty-first annual ACM symposium on Theory of Computing}}, Pages = {86--97}, Address = {New York, NY, USA}, Publisher = ACM, doi = {http://doi.acm.org/10.1145/73007.73015}, isbn = {0-89791-307-8}, location = {Seattle, Washington, United States}, year = 1989 } @Article{Glesner2005LexicalResultChecker, author = {Sabine Glesner and Simone Forster and Matthias J{\"a}ger}, title = {A Program Result Checker for the Lexical Analysis of the GNU C Compiler}, journal = {Electronic Notes in Theoretical Computer Science}, year = 2005, volume = 132, pages = {19--35} } @InProceedings{Ghuloum2006Incremental, author = {Abdulaziz Ghuloum}, title = {An Incremental Approach to Compiler Construction}, booktitle = {Scheme Workshop 2006}, year = 2006 } @inproceedings{Nogueira2006PolykindedTypes, author = {Pablo Nogueira}, title = {Context-parametric polykinded types}, booktitle = {WGP '06: Proceedings of the 2006 ACM SIGPLAN workshop on Generic programming}, year = 2006, isbn = {1-59593-492-6}, pages = {45--54}, location = {Portland, Oregon, USA}, doi = {http://doi.acm.org/10.1145/1159861.1159868}, publisher = ACM, address = {New York, NY, USA}, } @Proceedings{Hughes1995HaskellWorkshop, title = {Haskell Workshop 1995}, year = 1995, editor = {John Hughes} } @InProceedings{Gaul2000Practical, Author = {Thilo Gaul and Wolf Zimmermann and Wolfgang Goerigk}, Title = {Practical {C}onstruction of {C}orrect {C}ompiler {I}mplementations by {R}untime {R}esult {V}erification}, BookTitle = {Conference Proceedings of SCI'2000}, Pages = {406--411}, Address = {Orlando, Florida}, month = {Jul}, url = {http://www.info.uni-karlsruhe.de/papers/SCI2000.ps.gz}, year = 2000 } @InProceedings{Goerigk1996Verifix, Author = {Wolfgang Goerigk and Axel Dold and Thilo Gaul and Gerhard Goos and Andreas Heberle and Heinrich von Henke and Ulrich Hoffmann and Hans Langmaack and Wolf Zimmermann}, Title = {Compiler {C}orrectness and {I}mplementation {V}erification: {T}he {V}erifix {A}pproach}, BookTitle = {Proceedings of the {P}oster {S}ession of {CC}'96 -- {I}nternational {C}onference on {C}ompiler {C}onstruction}, Editor = {P. Fritzson}, Number = {TR-Nr.: R-96-12}, Organization = {Technische Univerität Kalrsruhe}, Publisher = {IDA}, month = jan, url = {http://www.info.uni-karlsruhe.de/papers/internal/CC96.ps.gz}, year = 1996 } @InProceedings{Jones1995DictionaryFree, author = {Mark P. Jones}, title = {Dictionary-free Overloading by Partial Evaluation}, booktitle = {Proceedings of PEPM'95}, year = 1995 } @article{Guttman1995VLISPVerifiedImplementation, author = {Joshua D. Guttman and John D. Ramsdell and Mitchell Wand}, title = {VLISP: A Verified Implementation of Scheme.}, journal = {Lisp and Symbolic Computation}, volume = 8, number = {1-2}, year = 1995, pages = {5-32}, bibsource = {DBLP, http://dblp.uni-trier.de} } @InProceedings{Boyer1992Automated, author = {Robert S. Boyer and Yuan Yu}, title = {Automated Correctness Proofs of Machine Code Programs for a Commercial Microprocessor}, booktitle = {Automated Deduction -- CADE-11, 11th International Conference on Automated Deduction}, pages = {416--430}, year = 1992, editor = {D. Kapur}, publisher = SV } @Unpublished{Grabmueller2006MonadTransformers, author = {Martin Grabm{\"u}ller}, title = {{Monad Transformers Step by Step}}, note = {Draft paper}, month = oct, year = 2006, abstract = {In this tutorial, we describe how to use monad transformers in order to incrementally add functionality to Haskell programs. It is not a paper about implementing transformers, but about using them to write elegant, clean and powerful programs in Haskell. Starting from an evaluation function for simple expressions, we convert it to monadic style and incrementally add error handling, environment passing, state, logging and input/output by composing monad transformers.} } @Unpublished{Grabmueller2004MonadicScheme, author = {Martin Grabm{\"u}ller}, title = {{Purely Functional Monadic Scheme}}, note = {Draft paper}, month = jun, year = 2004, abstract = {This paper describes a purely functional dialect of the algorithmic programming language Scheme. Mutable variables, assignment operations and impure control operations (call-with-current-continuation) have been omitted, while side effecting input and output operations are incorporated into the purely functional language using monads, similar to the approach taken in the lazy programming language Haskell. } } @Unpublished{Grabmueller2007AlgorithmW, author = {Martin Grabm{\"u}ller}, title = {{Algorithm W Step by Step}}, note = {Draft paper}, month = sep, year = 2007, abstract = {In this paper we develop a complete implementation of the classic algorithm W for Hindley-Milner polymorphic type inference in Haskell. } } @InProceedings{Grabmueller2007HarpyDemo, author = {Martin Grabm{\"u}ller and Dirk Kleeblatt}, title = {Harpy: Run-time Code Generation in {Haskell}}, booktitle = {Haskell Workshop 2007}, year = 2007, month = sep, publisher = ACM, abstract = {We present Harpy, a Haskell library for run-time code generation of x86 machine code. Harpy provides efficient generation of machine code, a convenient domain specific language for generating code and a collection of code generation combinators.} } @InProceedings{Rohloff2007Annotationssprache, author = {Judith Rohloff and Martin Grabm{\"u}ller}, title = {{Verbesserung statischer Programmanalysen mit Hilfe einer Annotationssprache}}, booktitle = {14. Kolloquium Programmiersprachen und Grundlagen der Programmierung (KPS'07)}, year = 2007, month = oct, abstract = {Mit Hilfe der statischen Programmanlyse werden Informationen {\"u}ber ein Programm zur {\"U}bersetzungszeit ermittelt. Diese Informationen k{\"o}nnen zum einen fur Compileroptimierungen genutzt werden und konnen zum anderen dem Programmierer Auskunft uber sein Programm geben. Die meisten Analysen sind nicht vollst{\"a}ndig berechenbar. Aus diesem Grund wird im Allgemeinen nur eine Approximation der Ergebnisse berechnet. Es wird gezeigt, wie diese Approximationen mit Hilfe von Annotationen verbessert werden k{\"o}nnen. Diese Verbesserungen werden am Beispiel der Striktheits- und der Zeitkomplexit{\"a}tsanalyse vorgestellt und erl{\"a}utert.} } @Book{Aho1977PrinciplesOfCompilerDesign, author = {Alfred V. Aho and Jeffrey D. Ullman}, title = {Principles of Compiler Design}, publisher = AW, year = 1977 } @Book{Pape1973ProgrammierenInAlgol60, author = {Uwe Pape}, title = {Programmieren in ALGOL 60}, publisher = {Carl Hanser Verlag}, year = 1973, address = {M{\"u}nchen} } @Book{Wirth1983AlgorithmenDatenstrukturen, author = {Niklaus Wirth}, title = {Algorithmen und Datenstrukturen}, publisher = {B.\@ G.\@ Teubner}, year = 1983, address = {Stuttgart}, edition = {3., {\"u}berarbeitete} } @article{Wasserman1997ResultChecking, author = {Hal Wasserman and Manuel Blum}, title = {Software reliability via run-time result-checking}, journal = {J. ACM}, volume = 44, number = 6, year = 1997, issn = {0004-5411}, pages = {826--849}, doi = {http://doi.acm.org/10.1145/268999.269003}, publisher = ACM, address = {New York, NY, USA}, } @TechReport{Gaul1995ASMAlpha, author = {Thilo S. Gaul}, title = {An Abstract State Machine Specification of the DEC-Alpha Processor Family}, institution = {University of Karlsruhe}, year = 1995, type = {Verifix Working Paper}, number = {Verifix/UKA/4} } @Misc{Appel2006ModalModel, author = {Andrew W. Appel and Paul-Andr{\'e} Melli{\`e}s and Christopher D. Richards and J{\'e}r{\^o}me Vouillon}, title = {A Very Modal Model of a Modern, Modal, General Type System}, howpublished = {Available from: \url{http://www.cs.princeton.edu/~appel/papers/modalmodel.pdf}}, month = oct, year = 2006 } @inproceedings{Odersky2001ColoredLocalTypeInference, author = {Martin Odersky and Christoph Zenger and Matthias Zenger}, title = {Colored local type inference}, booktitle = {POPL '01: Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages}, year = 2001, isbn = {1-58113-336-7}, pages = {41--53}, location = {London, United Kingdom}, doi = {http://doi.acm.org/10.1145/360204.360207}, publisher = ACM, address = {New York, NY, USA}, } @Article{Wirth2006GoodIdeas, author = {Niklaus Wirth}, title = {Good Ideas, Through the Looking Glass}, journal = {IEEE Computer}, year = 2006, pages = {56--68}, month = jan } @article{Earley1970ParsingAlgorithm, author = {Jay Earley}, title = {An efficient context-free parsing algorithm}, journal = {Communications of the ACM}, volume = 13, number = 2, year = 1970, issn = {0001-0782}, pages = {94--102}, doi = {http://doi.acm.org/10.1145/362007.362035}, publisher = ACM, address = {New York, NY, USA}, } @TechReport{Heeren2002GeneralizingHM, author = {Bastiaan Heeren and Jurriaan Hage and Doaitse Swierstra}, title = {Generalizing {Hindley}-{Milner} Type Inference Algorithms}, institution = {Institute of Information and Computing Sciences, Utrecht University}, year = 2002, number = {UU-CS-2002-031} } @Article{Milner1978Theory, author = {Robin Milner}, title = {A theory of type polymorphism in programming}, journal = {Journal of Computer and System Sciences}, year = 1978, volume = 17, pages = {348--375} } @InProceedings{Guillemette2006StaticallyVerified, author = {Louis-Julien Guillemette and Stefan Monnier}, title = {Statically Verified Type-Preserving Code Transformations in Haskell}, booktitle = {Proceedings of the Workshop Programming Languages meets Program Verification}, year = 2006 } @article{Blum1993SelfTestingCorrecting, author = "Manuel Blum and Michael Luby and Ronitt Rubinfeld", title = "Self-Testing/Correcting with Applications to Numerical Problems", journal = "{Journal of Computer and System Sciences}", volume = 47, number = 3, pages = "549--595", year = 1993, url = "citeseer.ist.psu.edu/article/blum90selftestingcorrecting.html" } @Article{Lee1998FolkloreLetPolymorphic, author = {Oukseh Lee and Kwangkeun Yi}, title = {Proofs about a Folklore Let-Polymorphic Type Inference Algorithm}, journal = TOPLAS, year = 1998, volume = 20, number = 4, pages = {707--723}, month = jul } @InProceedings{Sulzmann2001GeneralTypeInference, author = {Martin Sulzmann}, title = {A General Type Inference Framework for Hindley/Milner Style Systems}, booktitle = { Proceedings of Functional and Logic Programming: 5th International Symposium, FLOPS 2001}, pages = {248--263}, year = 2001, editor = {H. Kuchen and K Ueda}, address = {Tokyo, Japan}, month = mar, publisher = SV } @TechReport{Lee2000GeneralizedTypeInference, author = {Oukseh Lee and Kwangkeun Yi}, title = {A Generalized Let-Polymorphic Type Inference Algorithm}, institution = {Korea Advanced Institute of Science and Technology}, year = 2000, type = {ROPAS Memo}, number = {2000-5}, month = mar } @Book{PeytonJones1987ImplementationofFPL, author = {Simpon L. {Peyton Jones}}, title = {The Implementation of Functional Programming Languages}, publisher = PH, year = 1987 } @InBook{Wadler1987EfficientPatternMatching, author = {Philip Wadler}, title = {The Implementation of Functional Programming Languages}, chapter = {Efficient compilation of pattern matching}, publisher = PH, year = 1987, pages = {78--103} } @Techreport{Leijen2003Parsec, author = {Daan Leijen and Erik Meijer}, title = {Parsec: Direct Style Monadic Parser Combinators for the Real World}, institution = {Department of Computer Science, Universiteit Utrecht}, number = {UU-CS-2001-27}, year = 2001 } @Misc{Leijen2005ParsecHomepage, OPTkey = {}, author = {Dann Leijen}, title = {Parsec}, url = {\url{http://www.cs.uu.nl/~daan/parsec.html}}, OPTmonth = {}, year = {2005}, note = {Last checked: 2006-11-10}, OPTannote = {} } @InProceedings{Mycroft1992Incremental, author = {Alan Mycroft}, title = {Incremental polymorphic type checking with update}, booktitle = {Proc. LFCS'92}, year = 1992, volume = 620, series = LNCS, publisher = SV } @article{Henglein1993TypeInferencePolymorphicRecursion, author = {Fritz Henglein}, title = {Type inference with polymorphic recursion}, journal = {ACM Trans. Program. Lang. Syst.}, volume = 15, number = 2, year = 1993, issn = {0164-0925}, pages = {253--289}, doi = {http://doi.acm.org/10.1145/169701.169692}, publisher = ACM, address = {New York, NY, USA}, } @TechReport{PeytonJones2004WobblyTypes, author = {Simon {Peyton Jones} and Geoffrey Washburn and Stephanie Weirich}, title = {Wobbly types: type inference for generalised algebraic data types}, institution = {Computer and Information Science Department, University of Pennsylvania}, year = 2004, number = {MS-CIS-05-26}, month = jul } @InProceedings{Xi2004AppliedTypeSystem, author = {Hongwei Xi}, title = {Applied Type System}, booktitle = {Proceedings of Types 2003}, pages = {394--408}, year = 2004, volume = 3085, series = LNCS, publisher = SV } @PhdThesis{Xi1998PhD, author = {Hongwei Xi}, title = {Dependent Types in Practical Programming}, school = {Carnegie Mellon University}, year = 1998 } @Unpublished{PeytonJones2002LexicallyScopedTypeVariables, author = {Simon {Peyton Jones} and Mark Shields}, title = {Lexically scoped type variables}, month = apr, year = 2004, url = {http://research.microsoft.com/Users/simonpj/papers/scoped-tyvars/scoped.ps} } @TechReport{Jones1994Simplifying, author = {Mark P. Jones}, title = {Simplifying and Improving Qualified Types}, number = {YALEU/DCS/RR-1040"}, type = {Research Report}, institution = {Yale University}, month = jun, year = 1994 } @InProceedings{Jones1995Simplifying, author = {Mark P. Jones}, title = {Simplifying and Improving Qualified Types}, booktitle = {FPCA'95: Conference on Functional Programming Languages and Computer Architecture}, year = 1995, month = jun, publisher = ACM } @PhdThesis{Smith1992PhD, author = {Geoffrey Seward Smith}, title = {Polymorphic type inference for languages with overloading and subtyping}, year = 1992, publisher = {Cornell University}, address = {Ithaca, NY, USA} } @Misc{CooperSearchingCompilationSequences, author = {Keith D. Cooper and Alexander Gosul and Timothy J. Harvey and Steve Reeves and Devika Subramanian and Linda Torczon and Todd Waterman}, title = {Searching for Compilation Sequences}, howpublished = {Available from: \url{http://www.cs.rice.edu/~keith/Adapt/SearchPrelim.pdf}} } @PhdThesis{Fischbach2005PhD, author = {Joseph Adam Fischbach}, title = {Reasoning About Higher-Order Functions and Parameters}, school = {Pennsylvania State University}, year = 2005, month = aug, abstract = {The compilation of functional programming languages such as Standard ML and Haskell rely on a number of program transformations/optimizations in order to generate efficient code. In this thesis, I present formal, type-based specifications of three such transformations: useless-variable elimination, lambda-lifting and unCurrying. These three transformations have in common the fact that they all involve the analysis and manipulation of function parameters. Useless-variable elimination identifies function parameters whose corresponding arguments contribute nothing to the observable behavior of the program, and eliminates those arguments. Lambda-lifting introduces additional parameters to functions in order to eliminate occurrences of non-local, non-global variables. UnCurrying transforms Curried functions and applications so that functions are applied to multiple arguments in a single application. The conciseness and simplicity of type-based analyses provide a convenient platform for reasoning about program transformation. Using straightforward induction techniques, we can prove properties such as type preservation and operational correctness. We can guarantee the correctness of specific algorithms by proving via induction that these algorithms are sound with respect to the formal specification. I present a number of these proofs in this thesis.}, keywords = {programming languages, functional programming, program transformation, type-based analysis } } @article{Duggan2002TypeCheckingMultiParameter, author = {Dominic Duggan and John Ophel}, title = {Type-checking multi-parameter type classes}, journal = {J. Funct. Program.}, volume = 12, number = 2, year = 2002, issn = {0956-7968}, pages = {133--158}, doi = {http://dx.doi.org/10.1017/S0956796801004233}, publisher = {Cambridge University Press}, address = {New York, NY, USA}, } @Article{Duggan2005TypeBasedHotSwapping, author = {Dominic Duggan and John Ophel}, title = {Type-Based Hot Swapping of Running Modules}, journal = {Acta Informatica}, year = 2005, volume = 41, number = {4--5}, pages = {181--220}, month = mar } @article{Bray1983ImplementationImplications, author = {Gary Bray}, title = {Implementation implications of {Ada} generics}, journal = {Ada Letters}, volume = {III}, number = 2, year = 1983, issn = {1094-3641}, pages = {62--71}, doi = {http://doi.acm.org/10.1145/989971.989974}, publisher = ACM, address = {New York, NY, USA}, } @TechReport{Adams1992ImplementingSets, author = {Stephen Adams}, title = {Implementing sets efficiently in a functional language}, institution = {University of Southampton}, year = 1992, number = {CSTR 92-10} } @article{Wakeling1999CompilingLazyFunctional, author = {David Wakeling}, title = {Compiling lazy functional programs for the Java Virtual Machine}, journal = {J. Funct. Program.}, volume = 9, number = 6, year = 1999, issn = {0956-7968}, pages = {579--603}, doi = {http://dx.doi.org/10.1017/S0956796899003603}, publisher = {Cambridge University Press}, address = {New York, NY, USA}, } @article{Meehan1999CompilingLazyFunctional, author = "Gary Meehan and Mike Joy", title = "Compiling lazy functional programs to {Java} bytecode", journal = "Software Practice and Experience", volume = 29, number = 7, pages = "617--645", year = 1999, url = "citeseer.ist.psu.edu/meehan98compiling.html" } @InProceedings{Wakeling1998MobileHaskell, author = {David Wakeling}, title = {Mobile {Haskell}: Compiling lazy functional programs for the {Java} Virtual Machine}, booktitle = {Proceedings of the 1998 Conference on Programming Languages, Implementations, Logics and Programs (PLILP'98)}, pages = {335--352}, year = 1998, volume = 1490, series = LNCS, month = sep } @inproceedings{ Liang1995MonadTransformers, author = "Sheng Liang and Paul Hudak and Mark Jones", title = "Monad transformers and modular interpreters", booktitle = "Conference record of {POPL} '95, 22nd {ACM} {SIGPLAN}-{SIGACT} Symposium on Principles of Programming Languages: San Francisco, California, January 22--25, 1995", publisher = ACM, address = "New York, NY, USA", editor = "{ACM}", isbn = "0-89791-692-1", pages = "333--343", year = 1995, url = "citeseer.ist.psu.edu/liang95monad.html" } @TechReport{Zhang2003AdaptiveCodeUnloading, author = {Lingli Zhang and Chandra Krintz}, title = {Adaptive Code Unloading for Efficient Dynamic Compilation in Resource-Constrained Environments}, institution = {University of California, Santa Barbara}, year = 2003, number = {2003-14}, month = jun } @Article{Sulzmann2006UnderstandingFD, author = {Martin Sulzmann and Gregory J. Duck and Simon {Peyton Jones} and and Peter J. Stuckey}, title = {Understanding functional dependencies via Constraint Handling Rules}, journal = JFP, year = 2006, note = {to appear} } @InProceedings{Duck2004TypeInferenceFD, author = {Gregory J. Duck and Simon {Peyton Jones} and Peter J. Stuckey and Martin Sulzmann}, title = {Sound and Decidable Type Inference for Functional Dependencies}, booktitle = {European Symposium on Programming 2004 (ESOP'04)}, year = 2004 } @InProceedings{Glynn2000TypeClassesCHR, author = {Kevin Glynn and Martin Sulzmann and Peter J. Stuckey}, title = {Type Classes and Constraint Handling Rules}, booktitle = {Workshop on Rule-Based Constraint Reasoning and Programming}, year = 2000 } @inproceedings{Chlipala2005StrictBidirectionalTypeChecking, author = {Adam Chlipala and Leaf Petersen and Robert Harper}, title = {Strict bidirectional type checking}, booktitle = {TLDI '05: Proceedings of the 2005 ACM SIGPLAN international workshop on Types in languages design and implementation}, year = 2005, isbn = {1-58113-999-3}, pages = {71--78}, location = {Long Beach, California, USA}, doi = {http://doi.acm.org/10.1145/1040294.1040301}, publisher = ACM, address = {New York, NY, USA}, } @Article{PeytonJones1991LambdaLifter, author = {SL {Peyton Jones} and D 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 = may } @InProceedings{Hinze2000DerivableTupeClasses, author = {Ralf Hinze and Simon {Peyton Jones}}, title = {Derivable type classes}, booktitle = {Haskell Workshop}, year = 2000, note = {To appear in Electronic Notes in Computer Science, Elsevier} } @InProceedings{Chen2003JRPM, author = {Michael K. Chen and Kunle Olukotun}, title = {The {JRPM} system for dynamically parallelizing Java programs}, booktitle = {Proceedings. 30th Annual International Symposium on Computer Architecture}, year = 2003, month = jun } @Unpublished{Pottier2005ModernEye, author = {Fran{\c c}ois Pottier}, title = {A modern eye on {ML} type inference -- Old techniques and recent developments}, note = {Available from: \url{http://cristal.inria.fr/~fpottier/publis/fpottier-appsem-2005.pdf}}, month = sep, year = 2005 } @unpublished{Wehr2006JavaGI, author = "Stefan Wehr and Ralf L{\"a}mmel and Peter Thiemann", title = "{JavaGI: Generalized Interfaces for Java}", year = 2006, month = "20~" # dec, note = {Draft; 25 pages} } @phdthesis{Glesner1999NatuerlicheSemantik, author = {Sabine Glesner}, title = {Nat{\"u}rliche Semantik f{\"u}r imperative und objektorientierte Programmiersprachen}, year = 1999, month = Feb, publisher = {Shaker Verlag}, school = {Universit{\"a}t Karlsruhe}, address = {Aachen, Germany}, } @InBook{Pottier2005EssenceMLTypeInference, author = {Fran{\c c}ois Pottier and Didier R{\'e}my}, editor = {Benjamin C. Pierce}, title = {Advanced Topics in Types and Programming Languages}, chapter = {The essence of ML type inference}, publisher = MIT, year = 2005 } @InProceedings{Marlow2006Exceptions, author = {Simon Marlow}, title = {An Extensible Dynamically-Typed Hierarchy of Exceptions}, booktitle = {Haskell '06: Proceedings of the 2006 ACM SIGPLAN workshop on Haskell}, year = 2006, month = {September}, abstract = {In this paper we address the lack of extensibility of the exception type in Haskell. We propose a lightweight solution involving the use of existential types and the Typeable class only, and show how our solution allows a fully extensible hierarchy of exception types to be declared, in which a single overloaded catch operator can be used to catch either specific exception types, or exceptions belonging to any subclass in the hierarchy. We also show how to combine the existing object-oriented framework OOHaskell with our design, such that OOHaskell objects can be thrown and caught as exceptions, with full support for implicit OOHaskell subtyping in the @catch@ operator. }, url = {http://www.haskell.org/~simonmar/papers/ext-exceptions.pdf}, location = {Portland, Oregon}, publisher = ACM } @inproceedings{Eeckhout2003VMMicroarchitecture, author = {Lieven Eeckhout and Andy Georges and Koen De Bosschere}, title = {How java programs interact with virtual machines at the microarchitectural level}, booktitle = {OOPSLA '03: Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications}, year = 2003, isbn = {1-58113-712-5}, pages = {169--186}, location = {Anaheim, California, USA}, doi = {http://doi.acm.org/10.1145/949305.949321}, publisher = ACM, address = {New York, NY, USA}, } @TechReport{Sun2006MemoryManagement, author = {{Sun Microsystems}}, title = {Memory Management in the Java HotSpot\texttrademark{} Virtual machine }, institution = {Sun Microsystems}, year = 2006, type = {Whitepaper}, month = apr } @Misc{Swierstra2006BeautyInTheBeast, author = {Wouter Swierstra and Thorsten Altenkirch}, title = {Beauty in the Beast}, howpublished = {submitted for publication}, month = jun, year = 2006, } @inproceedings{Ohori2007LightweightFusion , author = "Atsushi Ohori and Isao Sasano", title = "Lightweight Fusion by Fixed Point Promotion", booktitle = "Conference record of {POPL} '07, 34th {ACM} {SIGPLAN}-{SIGACT} Symposium on Principles of Programming Languages: Nice, France, January 17--19, 2007", publisher = ACM, address = "New York, NY, USA", editor = "{ACM}", year = 2007 } @MastersThesis{Spinellis1990MastersThesis, author = {Diomidis Spinellis}, title = {An Implementation of the {Haskell} Language}, school = {Imperial College}, year = 1990, month = jun } @article{Bentley1985AssociativeArrays, author = {Jon Bentley}, title = {Programming pearls: associative arrays}, journal = {Communications of the ACM}, volume = 28, number = 6, year = 1985, issn = {0001-0782}, pages = {570--576}, doi = {http://doi.acm.org/10.1145/3812.315108}, publisher = ACM, address = {New York, NY, USA}, } @article{Bentley1986LittleLanguages, author = {Jon Bentley}, title = {Programming pearls: little languages}, journal = {Communications of the ACM}, volume = 29, number = 8, year = 1986, issn = {0001-0782}, pages = {711--721}, doi = {http://doi.acm.org/10.1145/6424.315691}, publisher = ACM, address = {New York, NY, USA}, } @article{PeytonJones1986Distfix, author = {Simon L. {Peyton Jones}}, title = {Parsing distfix operators}, journal = {Communications of the ACM}, volume = 29, number = 2, year = 1986, issn = {0001-0782}, pages = {118--122}, doi = {http://doi.acm.org/10.1145/5657.5659}, publisher = ACM, address = {New York, NY, USA}, } @InProceedings{Matthews2004PLTRedex, author = {Jacob Matthews and Robert Bruce Findler and Matthew Flatt and Matthias Felleisen}, title = {A Visual Environment for Developing Context-Sensitive Term Rewriting Systems}, booktitle = {International Conference on Rewriting Techniques and Applications (RTA)}, year = 2004 } @InProceedings{Matthews2005OperationalSemanticsR5RSScheme, author = {Jacob Matthews and Robert Bruce Finder}, title = {An operational Semantics for {R${}^5$RS} Scheme}, booktitle = {Sixth Workshop on Scheme and Functional Programming}, year = 2005, address = {Tallin, Estonia}, month = sep } @Unpublished{Kollmansberger2006HaskellRules, author = {Steve Kollmansberger and Martin Erwig}, title = {Haskell Rules: Embedding Rule Systems in Haskell}, note = {Draft Paper}, month = jun, year = 2006 } @Article{Robson1987ThrowAway, author = {D. J. Robson}, title = {An evaluation of throw-away compiling}, journal = SPE, year = 1987, volume = 13, pages = {241--249} } @Article{McDonald1983fsh, author = {Chris S. McDonald}, title = {fsh -- a functional UNIX command interpreter}, journal = SPE, year = 1983, volume = 17, number = 10, pages = {685--700}, month = oct } @inproceedings{Rossberg2006MissingLink, author = {Andreas Rossberg}, title = {The missing link: dynamic components for {ML}}, booktitle = {ICFP '06: Proceedings of the eleventh ACM SIGPLAN International Conference on Functional Programming}, year = 2006, isbn = {1-59593-309-3}, pages = {99--110}, location = {Portland, Oregon, USA}, doi = {http://doi.acm.org/10.1145/1159803.1159816}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Blume2006ExtensibleProgramming, author = {Matthias Blume and Umut A. Acar and Wonseok Chae}, title = {Extensible programming with first-class cases}, booktitle = {ICFP '06: Proceedings of the eleventh ACM SIGPLAN International Conference on Functional Programming}, year = 2006, isbn = {1-59593-309-3}, pages = {239--250}, location = {Portland, Oregon, USA}, doi = {http://doi.acm.org/10.1145/1159803.1159836}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Bringert2006AlmostCompositional, author = {Bj{\o}rn Bringert and Aarne Ranta}, title = {A pattern for almost compositional functions}, booktitle = {ICFP '06: Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming}, year = 2006, isbn = {1-59593-309-3}, pages = {216--226}, location = {Portland, Oregon, USA}, doi = {http://doi.acm.org/10.1145/1159803.1159834}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Diatchki2005HighLevelViews, author = {Iavor S. Diatchki and Mark P. Jones and Rebekah Leslie}, title = {High-level views on low-level representations}, booktitle = {ICFP '05: Proceedings of the tenth ACM SIGPLAN international conference on Functional programming}, year = 2005, isbn = {1-59593-064-7}, pages = {168--179}, location = {Tallinn, Estonia}, doi = {http://doi.acm.org/10.1145/1086365.1086387}, publisher = ACM, address = {New York, NY, USA}, } @article{Morrison1991AdHocPolymorphism, author = {R. Morrison and A. Dearle and R. C. H. Connor and A. L. Brown}, title = {An ad hoc approach to the implementation of polymorphism}, journal = TOPLAS, volume = 13, number = 3, year = 1991, issn = {0164-0925}, pages = {342--371}, doi = {http://doi.acm.org/10.1145/117009.117017}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Henglein1994FormallyOptimalBoxing, author = {Fritz Henglein and Jesper J{\o}rgensen}, title = {Formally optimal boxing}, booktitle = {POPL '94: Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages}, year = 1994, isbn = {0-89791-636-0}, pages = {213--226}, location = {Portland, Oregon, United States}, doi = {http://doi.acm.org/10.1145/174675.177874}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Leroy1992UnboxedObjects, author = {Xavier Leroy}, title = {Unboxed objects and polymorphic typing}, booktitle = {POPL '92: Proceedings of the 19th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages}, year = 1992, isbn = {0-89791-453-8}, pages = {177--188}, location = {Albuquerque, New Mexico, United States}, doi = {http://doi.acm.org/10.1145/143165.143205}, publisher = ACM, address = {New York, NY, USA}, } @Article{Wright1994SyntacticApproach, author = {Andrew Wright and Matthias Felleisen}, title = {A syntactic approach to type soundness}, journal = {Information and Computation}, year = 1995, pages = {38--94} } @PhdThesis{Surana2006PhD, author = {Pankaj Surana}, title = {Meta-Compilation of Language Abstractions}, school = {Northwestern University}, year = 2006, month = jun } @inproceedings{Odersky1996PuttingTypeAnnotations, author = {Martin Odersky and Konstantin L{\"u}fer}, title = {Putting type annotations to work}, booktitle = {POPL '96: Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages}, year = 1996, isbn = {0-89791-769-3}, pages = {54--67}, location = {St. Petersburg Beach, Florida, United States}, doi = {http://doi.acm.org/10.1145/237721.237729}, publisher = ACM, address = {New York, NY, USA}, } @article{Gries1977SomeIdeas, author = {David Gries and Narain Gehani}, title = {Some ideas on data types in high-level languages}, journal = {Communications of the ACM}, volume = 20, number = 6, year = 1977, issn = {0001-0782}, pages = {414--420}, doi = {http://doi.acm.org/10.1145/359605.359624}, publisher = ACM, address = {New York, NY, USA}, } @MastersThesis{Chevalier2004MastersThesis, author = {Marie-Christine (Kirsten) Chevalier}, title = {Implementing Type-Based Deforestation}, school = {University of California at Berkeley}, year = 2004 } @inproceedings{Bacon2003RealTimeGC, author = {David F. Bacon and Perry Cheng and V. T. Rajan}, title = {A real-time garbage collector with low overhead and consistent utilization}, booktitle = {POPL '03: Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages}, year = 2003, isbn = {1-58113-628-5}, pages = {285--298}, location = {New Orleans, Louisiana, USA}, doi = {http://doi.acm.org/10.1145/604131.604155}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Crary1998IntensionalPolymorphism, author = {Karl Crary and Stephanie Weirich and Greg Morrisett}, title = {Intensional polymorphism in type-erasure semantics}, booktitle = {ICFP '98: Proceedings of the third ACM SIGPLAN International Conference on Functional Programming}, year = 1998, isbn = {1-58113-024-4}, pages = {301--312}, location = {Baltimore, Maryland, United States}, doi = {http://doi.acm.org/10.1145/289423.289459}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Harper1995CompilingPolymorphism, author = {Robert Harper and Greg Morrisett}, title = {Compiling polymorphism using intensional type analysis}, booktitle = {POPL '95: Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages}, year = 1995, isbn = {0-89791-692-1}, pages = {130--141}, location = {San Francisco, California, United States}, doi = {http://doi.acm.org/10.1145/199448.199475}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Mauny1986CAM, author = {Michel Mauny and Asc{\'a}nder Su{\'a}rez}, title = {Implementing functional languages in the Categorical Abstract Machine}, booktitle = {LFP '86: Proceedings of the 1986 ACM conference on LISP and functional programming}, year = 1986, isbn = {0-89791-200-4}, pages = {266--278}, location = {Cambridge, Massachusetts, United States}, doi = {http://doi.acm.org/10.1145/319838.319869}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Fairbairn1986CodeGeneration, author = {Jon Fairbairn and Stuart C. Wray}, title = {Code generation techniques for functional languages}, booktitle = {LFP '86: Proceedings of the 1986 ACM conference on LISP and functional programming}, year = 1986, isbn = {0-89791-200-4}, pages = {94--104}, location = {Cambridge, Massachusetts, United States}, doi = {http://doi.acm.org/10.1145/319838.319853}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Clack1986FourStroke, author = {Chris Clack and Simon L. {Peyton Jones}}, title = {The four-stroke reduction engine}, booktitle = {LFP '86: Proceedings of the 1986 ACM conference on LISP and functional programming}, year = 1986, isbn = {0-89791-200-4}, pages = {220--232}, location = {Cambridge, Massachusetts, United States}, doi = {http://doi.acm.org/10.1145/319838.319865}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Nielson1986SemanticsDirected, author = {Hanne R. Nielson and Flemming Nielson}, title = {Semantics directed compiling for functional languages}, booktitle = {LFP '86: Proceedings of the 1986 ACM conference on LISP and functional programming}, year = 1986, isbn = {0-89791-200-4}, pages = {249--257}, location = {Cambridge, Massachusetts, United States}, doi = {http://doi.acm.org/10.1145/319838.319867}, publisher = ACM, address = {New York, NY, USA}, } @TechReport{Dockins2007BytecodeVerification, author = {Robert Dockins and Samuel Z. Guyer}, title = {Bytecode Verification for {Haskell}}, institution = {Tufts University}, year = 2007, month = feb } @InProceedings{Meijer1991BananasLenses, author = {Erik Meijer and Maarten Fokkinga and Ross Paterson}, title = {Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire}, booktitle = {FPCA'91}, year = 1991 } @InProceedings{PeytonJones1997Henk, author = {Simon L. {Peyton Jones} and Erik Meijer}, title = {Henk: a typed intermediate language}, booktitle = {Proc. First Int'l Workshop on Types in Compilation}, year = 1997, month = jun } @misc{ Hammond1992DynamicSemanticsforHaskell, author = "Kevin Hammond and Cordelia Hall", title = "A Dynamic Semantics for Haskell", url = "citeseer.ist.psu.edu/hammond92dynamic.html" } @InProceedings{Ford2002PackratParsing, author = {Bryan Ford}, title = {Packrat Parsing: Simple, Powerful, Lazy, Linear Time}, booktitle = {International Conference on Functional Programming}, year = 2002, address = {Pittsburgh}, month = oct, publisher = ACM } @unpublished{ baudinet85tree, author = "Marianne Baudinet and David MacQueen", title = "Tree Pattern Matching for {ML}", year = "1985", url = "citeseer.ist.psu.edu/baudinet85tree.html" } @MastersThesis{Roorda2000PTSforFP, author = {Jan-Willem Roorda}, title = {Pure Type Systems for Functional Programming}, school = {University of Utrecht}, year = 2000 } @incollection{Barendregt1992LambdaCalculiWithTypes, author = {Henk Barendregt}, title = {Lambda Calculi with Types}, editor = {Abramsky and Gabbay and Maibaum}, booktitle = {Handbook of Logic in Computer Science, (Background: Computational Structures)}, publisher = {Oxford University Press}, volume = 2, year = 1992 } @MastersThesis{RosendahlAutomaticProgramAnalysis, author = {Mads Rosendahl}, title = {Automatic Program Analysis}, school = {University of Copenhagen}, year = {???} } @Unpublished{RosendahlSimpleDriving, author = {Mads Rosendahl}, title = {Simple Driving Techniques}, note = {www: \url{http://akira.ruc.dk/~madsr/webpub/driv.pdf}} } @Book{Bertot2004InteractiveTheoremProving, author = {Yves Bertot and Pierre Cast{\'e}ran}, title = {Interactive Theorem Proving and Program Development -- Coq'Art: The Calculus of Inductive Constructions}, publisher = SV, year = 2004 } @inproceedings{Walker2006FaultyLambda, author = {David Walker and Lester Mackey and Jay Ligatti and George A. Reis and David I. August}, title = {Static typing for a faulty lambda calculus}, booktitle = {ICFP '06: Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming}, year = 2006, isbn = {1-59593-309-3}, pages = {38--49}, location = {Portland, Oregon, USA}, doi = {http://doi.acm.org/10.1145/1159803.1159809}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Might2006GammaCFA, author = {Matthew Might and Olin Shivers}, title = {Improving flow analyses via $\Gamma$CFA: abstract garbage collection and counting}, booktitle = {ICFP '06: Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming}, year = 2006, isbn = {1-59593-309-3}, pages = {13--25}, location = {Portland, Oregon, USA}, doi = {http://doi.acm.org/10.1145/1159803.1159807}, publisher = ACM, address = {New York, NY, USA}, } @Misc{Meacham2007JHCHomepage, author = {John Meacham}, title = {jhc}, howpublished = {Available from: \url{http://repetae.net/john/computer/jhc/}}, year = 2007, note = {Last visited: 2008-10-07} } @InProceedings{Rossberg2006AliceThrough, author = {Andreas Rossberg and Didier Le Botlan and Guido Tack and Thorsten Brunklaus and Gert Smolka}, title = {Alice Through the Looking Glass}, booktitle = {Trends in Functional Programming}, year = 2006, volume = 5, pages = {79-96}, publisher = {Intellect} } @inproceedings{Hawblitzel2007GarbageCollectingTAL, author = {Chris Hawblitzel and Heng Huang and Lea Wittie and Juan Chen}, title = {A garbage-collecting typed assembly language}, booktitle = {TLDI '07: Proceedings of the 2007 ACM SIGPLAN international workshop on Types in languages design and implementation}, year = 2007, isbn = {1-59593-393-X}, pages = {41--52}, location = {Nice, Nice, France}, doi = {http://doi.acm.org/10.1145/1190315.1190323}, publisher = ACM, address = {New York, NY, USA}, } @article{ Coquand1996TypeCheckingDependentTypes, author = "Thierry Coquand", title = "An Algorithm for Type-Checking Dependent Types", journal = "Science of Computer Programming", volume = 26, number = "1-3", pages = "167-177", year = 1996, url = "citeseer.ist.psu.edu/coquand96algorithm.html" } @InProceedings{Wadler2003PrettierPrinter, author = {Philip Wadler}, title = {A prettier printer}, booktitle = {The Fun of Programming. A symposium in honour of Professor Richard Bird's 60th birthday}, year = 2003, address = {Examination Schools, Oxford}, month = mar } @MastersThesis{Lindgren1996SoftTypeErlang, author = {Anders Lindgren}, title = {A Prototype of a Soft Type System for Erlang}, school = {Computer Science Department, Uppsala University}, year = 1996 } @PhdThesis{Gast2003GeneratorTypeCheckers, author = {Holger Gast}, title = {A Generator for Type Checkers}, school = {Universit{\"a}t T{\"u}bingen}, year = 2004 } @inproceedings{Bell1997TypeDrivenDefunctionalization, author = {Jeffrey M. Bell and Fran{\c c}oise Bellegarde and James Hook}, title = {Type-driven defunctionalization}, booktitle = {ICFP '97: Proceedings of the second ACM SIGPLAN international conference on Functional programming}, year = 1997, isbn = {0-89791-918-1}, pages = {25--37}, location = {Amsterdam, The Netherlands}, doi = {http://doi.acm.org/10.1145/258948.258953}, publisher = ACM, address = {New York, NY, USA}, } @PhdThesis{Abrams1970AnAPLMachine, author = {Philip S. Abrams}, title = {An {APL} machine}, school = {Stanford University}, year = 1970, note = {Also, Stanford Linear Accelerator Center (SLAC) Rep.~114} } @MastersThesis{BelangerMasters06, author = "David B{\'e}langer", title = "{SableJIT}: A Retargetable Just-In-Time Compiler", school = "McGill University", year = "2004", month = "August" } @InProceedings{Cierniak1997Briki, author = {Michal Cierniak and Wei Li}, title = {Briki: an optimizing Java compiler}, booktitle = {Compcon '97. Proceedings}, pages = {23--26}, year = 1997, month = feb, publisher = {IEEE} } @inproceedings{Johansson2000ErlangSystem, author = {Erik Johansson and Mikael Pettersson and Konstantinos Sagonas}, title = {A high performance Erlang system}, booktitle = {PPDP '00: Proceedings of the 2nd ACM SIGPLAN international conference on Principles and practice of declarative programming}, year = 2000, isbn = {1-58113-265-4}, pages = {32--43}, location = {Montreal, Quebec, Canada}, doi = {http://doi.acm.org/10.1145/351268.351273}, publisher = ACM, address = {New York, NY, USA}, } @article{Sarkar2005Nanopass, author = {Dipanwita Sarkar and Oscar Waddell and R. Kent Dybvig}, title = {A Nanopass Framework for Compiler Education}, journal = {Journal of Functional Programming}, volume = 15, number = 5, month = sep, year = 2005, texturl = "http://www.cs.indiana.edu/~dyb/pubs/nano-jfp.pdf", note = "Educational Pearl" } @article{Leroy2003BytecodeVerification, author = {Xavier Leroy}, title = {{Java} bytecode verification: algorithms and formalizations}, journal = {Journal of Automated Reasoning}, year = 2003, volume = 30, number = {3--4}, pages = {235--269}, abstract = {Bytecode verification is a crucial security component for Java applets, on the Web and on embedded devices such as smart cards. This paper reviews the various bytecode verification algorithms that have been proposed, recasts them in a common framework of dataflow analysis, and surveys the use of proof assistants to specify bytecode verification and prove its correctness. (Extended and revised version of \cite{Leroy-survey-verif}.)}, } @InProceedings{Okasaki2005Alternatives, author = {Chris Okasaki}, title = {Alternatives to Two Classic Data Structures}, booktitle = {Symposium on Computer Science Education (SIGCSE)}, pages = {162--165}, year = 2005, month = feb } @Article{Okasaki1994CallByNeedAndCPS, author = {Call-by-need and Continuation-passing Style}, title = {Chris Okasaki Peter Lee and David Tarditi}, journal = {Lisp and Symbolic Computation}, year = 1994, volume = 7, number = 1, pages = {57--81}, month = jan } @Article{Wakeling2007SpreadsheedFP, author = {David Wakeling}, title = {Spreadsheet functional programming}, journal = JFP, year = 2007, volume = 17, number = 1, pages = {131--143}, month = jan } @inproceedings{Bondorf1990CompilingLaziness, author = {Anders Bondorf}, title = {Compiling laziness by partial evaluation}, booktitle = {Functional Programming, Glasgow 1990}, year = 1990 } @inproceedings{Duggan1996MixinModules, author = {Dominic Duggan and Constantinos Sourelis}, title = {Mixin modules}, booktitle = {ICFP '96: Proceedings of the first ACM SIGPLAN international conference on Functional programming}, year = 1996, isbn = {0-89791-770-7}, pages = {262--273}, location = {Philadelphia, Pennsylvania, United States}, doi = {http://doi.acm.org/10.1145/232627.232654}, publisher = ACM, address = {New York, NY, USA}, } @Article{Appel1989RuntimeTags, author = {Andrew W. Appel}, title = {Runtime Tags Aren't Necessary}, journal = {Lisp and Symbolic Computation}, year = 1989, volume = 19, number = 7, pages = {703--705}, month = jul } @TechReport{Appel1988ProfilingPresence, author = {Andrew W. Appel and Bruce Duba and David B. MacQueen}, title = {Profiling in the presence of optimization and garbage collection}, institution = {Princeton University}, year = 1988, number = {CS-TR-197-88}, month = nov } @Article{Cardelli1983MLunderUnix, author = {Luca Cardelli}, title = {ML under Unix}, journal = {Polymorphism, The ML/LCF/Hope Newsletters}, year = 1983, volume = 1, number = 3, month = dec } @article{Ungar1984GenerationScavenging, author = {David Ungar}, title = {Generation Scavenging: A non-disruptive high performance storage reclamation algorithm}, journal = {SIGPLAN Notices}, volume = 19, number = 5, year = 1984, issn = {0362-1340}, pages = {157--167}, doi = {http://doi.acm.org/10.1145/390011.808261}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Kennedy2001DotNetGenerics, author = {Andrew Kennedy and Don Syme}, title = {Design and implementation of generics for the .NET Common language runtime}, booktitle = {PLDI '01: Proceedings of the ACM SIGPLAN 2001 Conference on Programming Language Design and Implementation}, year = 2001, isbn = {1-58113-414-2}, pages = {1--12}, location = {Snowbird, Utah, United States}, doi = {http://doi.acm.org/10.1145/378795.378797}, publisher = ACM, address = {New York, NY, USA}, } @InProceedings{Benton1998CompilingSMLtoJavaBytecodes, author = {N. Benton and A. Kennedy and G. Russell}, title = {Compiling Standard ML to Java Bytecodes}, booktitle = {Proceedings of the 3rd ACM SIGPLAN Conference on Functional Programming (ICFP)}, year = 1998, publisher = ACM } @PhdThesis{Connor1990TypesAndPolymorphism, author = {R.C.H. Connor}, title = {Types and Polymorphism in Persistent Programming Systems}, school = {University of St. Andrews}, year = 1990 } @TechReport{Minamide1997FullLifting, author = {Y. Minamide}, title = {Full lifting of type parameters}, institution = {RIMS, Kyoto University}, year = 1997 } @Article{Heckmann1997TeXFormula, author = {Reinhold Heckmann and Reinhard Wilhelm}, title = {A Functional Description of TeX's Formula Layout}, journal = JFP, year = 1997, volume = 7, number = 5, pages = {451--485}, month = sep } @article{Ertl2002vmgen, author = "M. Anton Ertl and David Gregg and Andreas Krall and Bernd Paysan", title = "{Vmgen} --- a generator of efficient virtual machine interpreters", journal = "Soft\-ware --- Prac\-tice and Experience", volume = 32, number = 3, pages = "265--294", year = 2002, url = "citeseer.ist.psu.edu/ertl01vmgen.html" } @InProceedings{Ertl2002BuildingInterpreter, author = {M. Anton Ertl and David Gregg}, title = {Building an interpreter with \textsf{vmgen}}, booktitle = {Compiler Construction (CC'02)}, pages = {5--8}, year = 2002, publisher = {Springer LNCS~2304}, note = {Tool Demonstration}, url = {http://www.complang.tuwien.ac.at/papers/ertl\%26gregg02.ps.gz}, abstract = {\textsf{Vmgen} automates many of the tasks of writing the virtual machine part of an interpreter, resulting in less coding, debugging and maintenance effort. This paper gives some quantitative data about the source code and generated code for a \textsf{vmgen}-based interpreter, and gives some examples demonstrating the simplicity of using \textsf{vmgen}.} } @InProceedings{Marlow2007PointerTagging, author = {Simon Marlow and Alexey Rodriguez Yakushev and Simon {Peyton Jones}}, title = {Faster laziness using dynamic pointer tagging}, booktitle = {ICFP 2007}, year = 2007 } @InProceedings{PeytonJones2007ConstructorSpecialisation, author = {Simon {Peyton Jones}}, title = {Constructor specialisation for Haskell programs}, booktitle = {ICFP 2007}, year = 2007 } @phdthesis{Fax:Lic, author = {Karl-Filip Fax{\'e}n}, title = {Flow Inference, Code Generation, and Garbage Collection for Lazy Functional Languages}, school = "Dept.\ of Teleinformatics, KTH", address = {Stockholm}, year = {1996}, type = {Licentiate thesis}, month = jan } @article{Leone1998DynamicSpecializationFabius, author = {Mark Leone and Peter Lee}, title = {Dynamic specialization in the Fabius system}, journal = {ACM Computing Surveys}, volume = 30, number = {3es}, year = 1998, issn = {0360-0300}, pages = 23, doi = {http://doi.acm.org/10.1145/289121.289144}, publisher = ACM, address = {New York, NY, USA}, } @article{Johnsson2004EfficientCompilation2, author = {Thomas Johnsson}, title = {Efficient compilation of lazy evaluation}, journal = {SIGPLAN Notices}, volume = 39, number = 4, year = 2004, issn = {0362-1340}, pages = {125--138}, doi = {http://doi.acm.org/10.1145/989393.989409}, publisher = ACM, address = {New York, NY, USA}, } @Article{Johnsson2004EfficientCompilation, author = {Thomas Johnsson}, title = {Efficient compilation of lazy evaluation}, journal = {SIGPLAN Notices}, year = 1984, volume = 19, number = 6, month = {jun} } @misc{ johnsson-compiling, author = "Thomas Johnsson", title = "Compiling Lazy Functional Languages: An introduction", url = "citeseer.ist.psu.edu/3555.html" } @InProceedings{Holyer1998BriskMachine, author = {Ian Holyer and Eleni Spiliopoulou}, title = {The {Brisk} Machine: A Simplified {STG} Machine}, booktitle = {Implementation of Functional Languages, IFL'97}, pages = {20--38}, year = 1998, volume = 1467, series = LNCS, publisher = SV } @inproceedings{DBLP:conf/inap/HofstedtK05, author = {Petra Hofstedt and Olaf Krzikalla}, title = {TURTLE++ - A CIP-Library for C++.}, booktitle = {INAP}, year = {2005}, pages = {12-24}, ee = {http://dx.doi.org/10.1007/11963578_2}, crossref = {DBLP:conf/inap/2005}, bibsource = {DBLP, http://dblp.uni-trier.de} } @proceedings{DBLP:conf/inap/2005, editor = {Masanobu Umeda and Armin Wolf and Oskar Bartenstein and Ulrich Geske and Dietmar Seipel and Osamu Takata}, title = {Declarative Programming for Knowledge Management, 16th International Conference on Applications of Declarative Programming and Knowledge Management, INAP 2005, Fukuoka, Japan, October 22-24, 2005, Revised Selected Papers}, booktitle = {INAP}, publisher = {Springer}, series = {Lecture Notes in Computer Science}, volume = {4369}, year = {2006}, isbn = {3-540-69233-9}, bibsource = {DBLP, http://dblp.uni-trier.de} } @Misc{Nguyen2007RecordUnboxing, author = {Huu-Duc Nguyen and Atsushi Ohori}, title = {Record Unboxing}, howpublished = {World Wide Web: \url{http://www.pllab.riec.tohoku.ac.jp/~ohori/research/RecordUnboxing.pdf}}, note = {Last visited: 2008-10-07}, month = may, year = 2007 } @InProceedings{Thiemann1994HigherOrderRedundancyElimination, author = {Peter Thiemann}, title = {Higher-Order Redundancy Elimination}, booktitle = {Proceedings of the ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation PEPM '94}, pages = {73--84}, year = 1994, editor = {Peter Sestoft and Harald S{\o}ndergaard}, address = {Orlando, Florida}, month = jun } @InProceedings{Li2007LightweightConcurrency, author = {Peng Li and Andrew Tolmach and Simon Marlow and Simon {Peyton Jones}}, title = {Lightweight concurrency primitives for {GHC}}, booktitle = {Haskell Workshop 2007}, year = 2007, note = {submitted} } @InProceedings{Wadler2007Comprehensive, author = {Phil Wadler and Simon {Peyton Jones}}, title = {Comprehensive comprehensions: comprehensions with "Order by" and "Group by"}, booktitle = {Haskell Workshop 2007}, year = 2007, note = {submitted} } @Misc{Gibbons2007EssenceIteratorPattern, author = {Jeremy Gibbons and Bruno C. d. S. Oliveira}, title = {The Essence of the Iterator Pattern}, howpublished = {Available from: \url{http://web.comlab.ox.ac.uk/oucl/work/jeremy.gibbons/publications/#iterator}}, year = 2007, note = {A revision of the MSFP version, submitted for publication.} } @Unpublished{McBride2001Derivative, author = {Conor McBride}, title = {The {D}erivative of a {R}egular {T}ype is its {T}ype of {O}ne-{H}ole {C}ontexts}, note = {Available at \url{http://www.cs.nott.ac.uk/~ctm/diff.ps.gz}}, year = 2001 } @InProceedings{Seefried2007ExpressionProblem, author = {Sean Seefried and Manuel M.T. Chakravarty}, title = {Solving the expression problem with true separate compilation}, booktitle = {Haskell Workshop 2007}, year = 2007, note = {Submitted} } @TechReport{Burrows1994BlockSorting, author = {M. Burrows and D. J. Wheeler}, title = {A Block-sorting Lossless Data Compression Algorithm}, institution = {Digital Systems Research Center}, year = 1994, type = {Research Report}, number = {SRC-124}, month = may } @TechReport{McAdam1997Fix, author = {Bruce J. McAdam}, title = {That About Wraps it Up: Using FIX to Handle Errors Without Exceptions, and Other Programming Tricks}, institution = {Department of Computer Science, University of Edinburgh}, year = 1997, number = {ECS-LFCS-97-375} } @inproceedings{Kennedy2007CwCC, author = {Andrew Kennedy}, title = {Compiling with continuations, continued}, booktitle = {ICFP '07: Proceedings of the 12th ACM SIGPLAN International Conference on Functional Programming}, year = 2007, isbn = {978-1-59593-815-2}, pages = {177--190}, location = {Freiburg, Germany}, doi = {http://doi.acm.org/10.1145/1291151.1291179}, publisher = {ACM}, address = {New York, NY, USA}, } @InProceedings{Danvy2002FirstOrderOnePassCPS, author = {Olivier Danvy, Lasse R. Nielsen}, title = {A First-Order One-Pass CPS Transformation}, booktitle = {Foundations of Software Science and Computation Structures : 5th International Conference, FOSSACS 2002}, pages = {367--393}, year = 2002, volume = 2303, series = LNCS } @article{ Hatcliff1997ThunksAndLambdaCalculus, author = "John Hatcliff and Olivier Danvy", title = "Thunks and the lambda-Calculus", journal = "Journal of Functional Programming", volume = 7, number = 3, pages = "303-319", year = 1997, url = "citeseer.ist.psu.edu/article/hatcliff95thunks.html" } @InProceedings{Guillemette2007TypePreserving, author = {Louis-Julien Guillemette and Stefan Monnier}, title = {A Type-Preserving Closure Conversion in {Haskell}}, booktitle = {Haskell Workshop 2007}, year = 2007 } @PhdThesis{Veldhuizen2004PhD, author = {Todd L. Veldhuizen}, title = {Active Libraries and Universal Languages}, school = {Indiana University Computer Science}, year = 2004 } @inproceedings{Chlipala2007CertifiedCompiler, author = {Adam Chlipala}, title = {A certified type-preserving compiler from lambda calculus to assembly language}, booktitle = {PLDI '07: Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation}, year = 2007, isbn = {978-1-59593-633-2}, pages = {54--65}, location = {San Diego, California, USA}, doi = {http://doi.acm.org/10.1145/1250734.1250742}, publisher = {ACM Press}, address = {New York, NY, USA}, } @article{ Danvy1992RepresentingControl, author = "Olivier Danvy and Andrzej Filinski", title = "Representing Control: {A} study of the {CPS} transformation", journal = "Mathematical Structures in Computer Science", volume = 2, number = 4, pages = "361--391", year = 1992 } @TechReport{Kim1998AssessingOverhead, author = {Jung-taek Kim and Kwangkeun Yi and Olivier Danvy}, title = {Assessing the Overhead of ML Exceptions by Selective CPS Transformation}, institution = {BRICS}, year = 1998, number = {RS-98-15}, month = sep } @TechReport{Appel2000OptimalSpilling, author = {Andrew W. Appel and Lal George}, title = {Optimal Spilling for {CISC} Machines with Few Registers}, institution = {Princeton University}, year = 2000, number = {TR-630-00}, month = nov } @InProceedings{Tolmach1997CombiningClosureConversion, author = {Andrew Tolmach}, title = {Combining Closure Conversion with Closure Analysis using Algebraic Types}, booktitle = {Types in Compilation workshop}, year = 1997, month = jun } @InProceedings{Tolmach1998OptimizingML, author = {Andrew Tolmach}, title = {Optimizing ML Using a Hierarchy of Monadic Types}, booktitle = {Types in Compilation '98}, pages = {97--113}, year = 1998, volume = 1473, series = LNCS } @InProceedings{Ramsey2005ApplicativeCFG, author = {Norman Ramsey and Jo{\~a}o Dias}, title = {An Applicative Control-Flow Graph Based on Huet's Zipper}, booktitle = {ACM SIGPLAN Workshop on ML}, pages = {101--122}, year = 2005, month = sep } @InProceedings{Dias2006ConvertingIntermediate, author = {Jo{\~a}o Dias and Norman Ramsey}, title = {Converting Intermediate Code to Assembly Code Using Declarative Machine Descriptions}, booktitle = {15th International Conference on Compiler Construction (CC 2006)}, pages = {217--231}, year = 2006, volume = 3923, series = LNCS, month = mar } @InProceedings{Smith2004GeneralizedAlgorithm, author = {Michael D. Smith and Norman Ramsey and Glenn Holloway}, title = {A Generalized Algorithm for Graph-Coloring Register Allocation}, booktitle = {ACM SIGPLAN '04 Conference on Programming Language Design and Implementation}, pages = {277--288}, year = 2004, volume = 39, number = 6, series = {SIGPLAN Notices}, month = jun } @InProceedings{Kahl1999BeyondPrettyPrinting, author = {Wolfram Kahl}, title = {Beyond Pretty-Printing: Galley Concepts in Document Formatting Combinators}, year = 1999, series = LNCS, publisher = SV, volume = 1551, pages = {76--90}, editor = {Gopal Gupta}, booktitle = {Practical Aspects of Declarative Languages, First International Workshop, {PADL '99, San Antonio, Texas, USA, January 1999, Proceedings}}, abstract = {Galleys have been introduced by Jeff Kingston as one of the key concepts underlying his advanced document formatting system Lout. Although Lout is built on a lazy functional programming language, galley concepts are implemented as part of that language and defined only informally. In this paper we present a first formalisation of document formatting combinators using galley concepts in the purely functional programming language Haskell.} } @InProceedings{Mueller2006ExpressionAndLoop, author = {Christopher Mueller and Andrew Lumsdaine}, title = {Expression and Loop Libraries for High-Performance Code Synthesis}, booktitle = {The 19th International Workshop on Languages and Compilers for Parallel Computing (LCPC 2006)}, year = 2007, series = LNCS, volume = 4382 } @Book{Asperti1991Categories, author = {Andrea Asperti and Giuseppe Longo}, title = {Categories, Types and Structures. Category Theory for the working computer scientist}, publisher = MIT, year = 1991 } @PhdThesis{Uh1997PhD, author = {Gang-Ryung Uh}, title = {Effectively Exploiting Indirect Jumps}, school = {Florida State University}, year = 1997 } @inproceedings{Balat1998Strong, author = {Vincent Balat and Olivier Danvy}, title = {Strong Normalization by Type-Directed Partial Evaluation and Run-Time Code Generation}, booktitle = {TIC '98: Proceedings of the Second International Workshop on Types in Compilation}, year = 1998, isbn = {3-540-64925-5}, pages = {240--252}, publisher = {Springer-Verlag}, address = {London, UK}, } @inproceedings{Vechev2005DerivationEvaluation, title = {Derivation and Evaluation of Concurrent Collectors.}, author = {Martin T. Vechev and David F. Bacon and Perry Cheng and David Grove}, booktitle = {ECOOP}, editor = {Andrew P. Black}, pages = {577-601}, publisher = {Springer}, series = {Lecture Notes in Computer Science}, url = {http://dblp.uni-trier.de/db/conf/ecoop/ecoop2005.html#VechevBCG05}, volume = 3586, year = 2005, biburl = {http://www.bibsonomy.org/bibtex/2b5ccfd5c3d61b385c4638bb94469e8f8/dblp}, description = {dblp}, ee = {http://dx.doi.org/10.1007/11531142_25}, isbn = {3-540-27992-X}, date = {2005-10-05}, keywords = {dblp } } @inproceedings{Fluet2007ManticoreStatus, author = {Matthew Fluet and Nic Ford and Mike Rainey and John Reppy and Adam Shaw and Yingqi Xiao}, title = {Status Report: The {Manticore} Project}, booktitle = {Proceedings of the 2007 ACM SIGPLAN Workshop on {ML}}, year = 2007, month = oct, abstract = { The Manticore project is an effort to design and implement a new functional language for parallel programming. Unlike many earlier parallel languages, Manticore is a \emph{heterogeneous} language that supports parallelism at multiple levels. Specifically, we combine CML-style explicit concurrency with fine-grain, implicitly threaded, parallel constructs. We have been working on an implementation of Manticore for the past six months; this paper gives an overview of our design and a report on the status of the implementation effort. } } @InProceedings{Luna2005HiPEExperience, author = {Daniel Luna and Mikael Pettersson and Konstantinos Sagonas}, title = {Efficiently Compiling a Functional Language on AMD64: The HiPE Experience}, booktitle = { 7th ACM SIGPLAN International Symposium on Principles and Practice of Declarative Programming (PPDP 2005)}, year = 2005 } @InProceedings{Lindahl2002UnboxedCompilation, author = {Tobias Lindahl and Konstantinos Sagonas}, title = {Unboxed Compilation of Floating Point Arithmetic in a Dynamically Typed Language Environment}, booktitle = {14th International Workshop on the Implementation of Functional Languages (IFL'02)}, year = 2002 } @Article{Favero2007OperatorPrecedence, author = {E. L. Favero}, title = {The simple and powerful yfx operator precedence parser}, journal = SPE, year = 2007, volume = 37, number = 14, pages = {1451-1474}, month = nov } @Article{Ramsey1998Unparsing, author = {Norman Ramsey}, title = {Unparsing expressions with prefix and postfix operators}, journal = SPE, year = 1998, volume = 28, number = 12, pages = {1327-1356}, month = oct } @book{Backhouse2002AlgebraicMethods, title = {Algebraic and coalgebraic methods in the mathematics of program construction}, publisher = SV, year = 2002, editor = {Roland Backhouse and Roy Crole and Jeremy Gibbons}, address = {New York, NY, USA} } @InProceedings{Beckmann2004RunTimeCodeGeneration, author = {Olav Beckmann and Alastair Houghton and Paul H. J. Kelly and Michael Mellor}, title = {Run-time code generation in C++ as a foundation for domain-specific optimisation}, booktitle = {Domain-Specific Program Generation International Seminar}, pages = {291-306}, year = 2004, volume = 3016, series = LNCS } @phdthesis{Rhiger2001PhD, author = {Morten Rhiger}, title = {Higher-Order Program Generation}, school = {Aarhus University}, month = aug, year = 2001 } @InProceedings{Shapiro2004Towards, author = {Jonathan S. Shapiro}, title = {Towards a Verified, General-Purpose Operating System Kernel}, booktitle = {1st NICTA Workshop on Operating System Verification}, year = 2004 } @inproceedings{Sabry2005Quantum, author = {Amr Sabry}, title = {Modeling quantum computing in Haskell}, booktitle = {Haskell '03: Proceedings of the 2003 ACM SIGPLAN workshop on Haskell}, year = 2003, isbn = {1-58113-758-3}, pages = {39--49}, location = {Uppsala, Sweden}, doi = {http://doi.acm.org/10.1145/871895.871900}, publisher = ACM, address = {New York, NY, USA}, } @Book{Allen2001OptimizingCompilers, author = {Randy Allen and Ken Kennedy}, title = {Optimizing Compilers for Modern Architectures. A Dependence-based Approach}, publisher = MK, year = 2001 } @Unpublished{Langford2001MRsync, author = {John Langford}, title = {Multiround Rsync}, note = {World Wide Web: \url{http://www-2.cs.cmu.edu/~jcl/research/mrsync/mrsync.ps}}, year = 2001 } @PhdThesis{Tridgell2001PhD, author = {Andrew Tridgell}, title = {Efficient Algorithms for Sorting and Synchronization}, school = {The Australian National University}, year = 1999, month = feb } @article{Ganapathi1982RetargetableCodeGeneration, author = {Mahadevan Ganapathi and Charles N. Fischer and John L. Hennessy}, title = {Retargetable Compiler Code Generation}, journal = {ACM Comput. Surv.}, volume = 14, number = 4, year = 1982, issn = {0360-0300}, pages = {573--592}, doi = {http://doi.acm.org/10.1145/356893.356897}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Johnston1979DynamicIncremental, author = {Ronald L. Johnston}, title = {The Dynamic Incremental Compiler of {APL}$\backslash$3000}, booktitle = {APL '79: Proceedings of the International Conference on APL: part 1}, year = 1979, pages = {82--87}, location = {New York, New York, United States}, doi = {http://doi.acm.org/10.1145/800136.804442}, publisher = ACM, address = {New York, NY, USA}, } @article{Schwartz1984IncrementalCompilation, author = {Mayer D. Schwartz and Norman M. Delisle and Vimal S. Begwani}, title = {Incremental compilation in Magpie}, journal = {SIGPLAN Notices}, volume = 19, number = 6, year = 1984, issn = {0362-1340}, pages = {122--131}, doi = {http://doi.acm.org/10.1145/502949.502887}, publisher = ACM, address = {New York, NY, USA}, } @article{DBLP:journals/spe/Ammann77, author = {Urs Ammann}, title = {On Code Generation in a PASCAL Compiler}, journal = {Softw., Pract. Exper.}, volume = {7}, number = {3}, year = {1977}, pages = {391-423}, bibsource = {DBLP, http://dblp.uni-trier.de} } @mastersthesis{Mun2005Functional3DGames, author = {Mun Hon Cheong}, title = {Functional Programming and 3D Games}, year = 2005, month = {November}, school = {University of New South Wales}, address = {Sydney, Australia}, abstract = {Games are commonly programmed in imperative languages. Functional languages have been known to have benefits but have rarely been used to program games. In this thesis we implement a first person shooting game in Haskell and Yampa. The merits of this approach are examined.} } @inproceedings{Parnas1976Response, author = {D. L. Parnas and H. W{\"u}rges}, title = {Response to undesired events in software systems}, booktitle = {ICSE '76: Proceedings of the 2nd international conference on Software engineering}, year = {1976}, pages = {437--446}, location = {San Francisco, California, United States}, publisher = {IEEE Computer Society Press}, address = {Los Alamitos, CA, USA}, } @MastersThesis{Stewart2002MultiParadigmJITCompilation, author = {Don Stewart}, title = {Multi-paradigm Just-In-Time Compilation}, school = {School of Computer Science and Engineering, The University of New South Wales}, year = 2002, month = nov } @inproceedings{Longley1999WhenIsAFunctional, author = "John Longley", title = "When is a Functional Program Not a Functional Program?", booktitle = "International Conference on Functional Programming", pages = "1-7", year = 1999, url = "citeseer.ist.psu.edu/longley99when.html" } @Book{Gabriel1996PatternsOfSoftware, author = {Richard P. Gabriel}, title = {Patterns of Software: Tales from the Software Community}, publisher = {Oxford Press}, year = 1996 } @InProceedings{Hiser2007IndirectBranchHandling, author = {Jason D. Hiser and Daniel Williams and Wei Hu and Jack W. Davidson and Jason Mars and Bruce R. Childers}, title = {Evaluating Indirect Branch Handling Mechanisms in Software Dynamic Translation Systems}, booktitle = {CGO '07}, year = 2007, month = mar } @inproceedings{Bala2000Dynamo, author = {Vasanth Bala and Evelyn Duesterwald and Sanjeev Banerjia}, title = {Dynamo: a transparent dynamic optimization system}, booktitle = {PLDI '00: Proceedings of the ACM SIGPLAN 2000 Conference on Programming Language Design and Implementation}, year = 2000, isbn = {1-58113-199-2}, pages = {1--12}, location = {Vancouver, British Columbia, Canada}, doi = {http://doi.acm.org/10.1145/349299.349303}, publisher = {ACM}, address = {New York, NY, USA}, } @inproceedings{Lucco2000SplitStream, author = {Steven Lucco}, title = {Transitive website}, booktitle = {PLDI '00: Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation}, year = 2000, isbn = {1-58113-199-2}, pages = {27--34}, location = {Vancouver, British Columbia, Canada}, doi = {http://doi.acm.org/10.1145/349299.349307}, publisher = {ACM}, address = {New York, NY, USA}, } @Misc{Transitive2008Website, author = {Transitive Corporation}, title = {Transitive website}, howpublished = {WWW: \url{http://www.transitive.com/}}, month = mar, year = 2008 } @techreport{Scott2001Strata, author = {Kevin Scott and Jack Davidson}, title = {Strata: A Software Dynamic Translation Infrastructure}, year = 2001, source = {http://www.ncstrl.org:8900/ncstrl/servlet/search?formname=detail\&id=oai%3Ancstrlh%3Auva_cs%3Ancstrl.uva_cs%2F%2FCS-2001-17}, publisher = {University of Virginia}, address = {Charlottesville, VA, USA}, } @techreport{Scott2000MatchCompilation, author = {Kevin Scott and Norman Ramsey}, title = {When Do Match-compilation Heuristics Matter?}, year = 2000, publisher = {University of Virginia}, address = {Charlottesville, VA, USA}, } @inproceedings{Minamide1996TypedClosureConversion, author = {Y. Minamide and G. Morrisett and R. Harper}, title = {Typed closure conversion}, booktitle = {In Proc. 23rd Annual ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages}, year = 1996, pages = {271--283}, publisher = {ACM Press} } @Article{Harper1993Polymorphic, author = {Robert Harper and Mark Lillibridge}, title = {Polymorphic Type Assignment and {CPS} Conversion}, journal = {Lisp and Symbolic Computation}, year = 1993, volume = 6, number = {3--4}, pages = {361--379}, month = nov } @misc{ tolmach-from, author = "A. Tolmach and D. Oliva", title = "From ML to Ada: Strongly-typed language interoperability via source translation", text = "A. Tolmach and D. Oliva. From ML to Ada: Strongly-typed language interoperability via source translation. Journal of Functional Programming. (to appear).", url = "citeseer.ist.psu.edu/article/tolmach97from.html" } @misc{ bellegarde-notes, author = "F. Bellegarde", title = "Notes for pipelines of transformations for ML", url = "citeseer.ist.psu.edu/bellegarde95notes.html" } @InProceedings{Wells1997TypedIL, author = {J. B. Wells and Allyn Dimock and Robert Muller and Franklyn Turbak}, title = { A typed intermediate language for flow-directed compilation}, booktitle = {TAPSOFT '97: Theory and Practice of Software Development}, pages = {757--771}, year = 1997, volume = 1214, series = LNCS, publisher = SV } @article{Dimock1997Strongly, author = {Allyn Dimock and Robert Muller and Franklyn Turbak and J. B. Wells}, title = {Strongly typed flow-directed representation transformations (extended abstract)}, journal = {SIGPLAN Notices}, volume = 32, number = 8, year = 1997, issn = {0362-1340}, pages = {11--24}, doi = {http://doi.acm.org/10.1145/258949.258952}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Benton2007RelationalSemantics, author = {Nick Benton and Andrew Kennedy and Lennart Beringer and Martin Hofmann}, title = {Relational semantics for effect-based program transformations with dynamic allocation}, booktitle = {PPDP '07: Proceedings of the 9th ACM SIGPLAN international conference on Principles and practice of declarative programming}, year = 2007, isbn = {978-1-59593-769-8}, pages = {87--96}, location = {Wroclaw, Poland}, doi = {http://doi.acm.org/10.1145/1273920.1273932}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Benton2007SemanticsEffectAnalysis, author = {Nick Benton and Peter Buchlovsky}, title = {Semantics of an effect analysis for exceptions}, booktitle = {TLDI '07: Proceedings of the 2007 ACM SIGPLAN international workshop on Types in languages design and implementation}, year = 2007, isbn = {1-59593-393-X}, pages = {15--26}, location = {Nice, Nice, France}, doi = {http://doi.acm.org/10.1145/1190315.1190320}, publisher = ACM, address = {New York, NY, USA}, } @InProceedings{Truong1998ImprovingCacheBehavior, author = {D. N. Truong and F. Bodin and A. Seznec}, title = {Improving cache behavior of dynamically allocated data structures}, booktitle = {1998 International Conference on Parallel Architectures and Compilation Techniques}, pages = {322--329}, year = 1998, month = oct } @article{Kistler2000AutomatedDataMember, author = {Thomas Kistler and Michael Franz}, title = {Automated data-member layout of heap objects to improve memory-hierarchy performance}, journal = {ACM Trans. Program. Lang. Syst.}, volume = 22, number = 3, year = 2000, issn = {0164-0925}, pages = {490--505}, doi = {http://doi.acm.org/10.1145/353926.353937}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Calder1998CacheConscious, author = {Brad Calder and Chandra Krintz and Simmi John and Todd Austin}, title = {Cache-conscious data placement}, booktitle = {ASPLOS-VIII: Proceedings of the eighth international conference on Architectural support for programming languages and operating systems}, year = 1998, isbn = {1-58113-107-0}, pages = {139--149}, location = {San Jose, California, United States}, doi = {http://doi.acm.org/10.1145/291069.291036}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Luk1996CompilerBasedPrefetching, author = {Chi-Keung Luk and Todd C. Mowry}, title = {Compiler-based prefetching for recursive data structures}, booktitle = {ASPLOS-VII: Proceedings of the seventh international conference on Architectural support for programming languages and operating systems}, year = 1996, isbn = {0-89791-767-7}, pages = {222--233}, location = {Cambridge, Massachusetts, United States}, doi = {http://doi.acm.org/10.1145/237090.237190}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Stichnoth1999SupportGC, author = {James M. Stichnoth and Guei-Yuan Lueh and Micha\l Cierniak}, title = {Support for garbage collection at every instruction in a Java compiler}, booktitle = {PLDI '99: Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation}, year = 1999, isbn = {1-58113-094-5}, pages = {118--127}, location = {Atlanta, Georgia, United States}, doi = {http://doi.acm.org/10.1145/301618.301652}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Chilimbi1999CacheConsciousStructureLayout, author = {Trishul M. Chilimbi and Mark D. Hill and James R. Larus}, title = {Cache-conscious structure layout}, booktitle = {PLDI '99: Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation}, year = 1999, isbn = {1-58113-094-5}, pages = {1--12}, location = {Atlanta, Georgia, United States}, doi = {http://doi.acm.org/10.1145/301618.301633}, publisher = ACM, address = {New York, NY, USA}, } @article{Chilimbi1999CacheConsciousStructureDefinition, author = {Trishul M. Chilimbi and Bob Davidson and James R. Larus}, title = {Cache-conscious structure definition}, journal = {SIGPLAN Notices}, volume = 34, number = 5, year = 1999, issn = {0362-1340}, pages = {13--24}, doi = {http://doi.acm.org/10.1145/301631.301635}, publisher = ACM, address = {New York, NY, USA}, } @InProceedings{Vytiniotis2008FPH, author = {Dimitrios Vytiniotis and Stephanie Weirich and Simon {Peyton Jones}}, title = {FPH : First-class Polymorphism for Haskell}, booktitle = {ICFP 2008}, year = 2008, note = {Submitted} } @InProceedings{Bansal2006Superoptimizers, author = {Sorav Bansal and Alex Aiken}, title = {Automatic Generation of Peephole Superoptimizers}, booktitle = {ASPLOS 2006}, year = 2006 } @inproceedings{Partain1993Nofib, author = {Will Partain}, title = {The nofib Benchmark Suite of Haskell Programs}, booktitle = {Proceedings of the 1992 Glasgow Workshop on Functional Programming}, year = 1993, isbn = {3-540-19820-2}, pages = {195--202}, publisher = {Springer-Verlag}, address = {London, UK}, } @Book{Kernighan1988CProgrammingLanguage, author = {Brian W. Kernighan and Dennis M. Ritchie}, title = {The {C} Programming Language}, publisher = PH, year = 1988, edition = {2nd} } @PhdThesis{Nemeth2000PhD, author = {L{\'a}szl{\'o} N{\'e}meth}, title = {Catamorphism-based program transformations for non-strict functional languages}, school = {University of Glasgow}, year = 2000, month = nov } @inproceedings{Hage2008HeapRecycling, author = {Jurriaan Hage and Stefan Holdermans}, title = {Heap recycling for lazy languages}, booktitle = {PEPM '08: Proceedings of the 2008 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation}, year = 2008, isbn = {978-1-59593-977-7}, pages = {189--197}, location = {San Francisco, California, USA}, doi = {http://doi.acm.org/10.1145/1328408.1328436}, publisher = ACM, address = {New York, NY, USA}, } @Misc{Grabmueller2008RdtscHomepage, author = {Martin Grabm{\"u}ller}, title = {rdtsc -- Binding for the rdtsc machine instruction}, howpublished = {Available on the World Wide Web: \url{http://uebb.cs.tu-berlin.de/~magr/projects/rdtsc/doc/}}, note = {Last visited: 2008-10-07}, month = jun, year = 2008 } @INPROCEEDINGS{Bohannon2008Boomerang, AUTHOR = {Aaron Bohannon and J. Nathan Foster and Benjamin C. Pierce and Alexandre Pilkiewicz and Alan Schmitt}, TITLE = {Boomerang: Resourceful Lenses for String Data}, BOOKTITLE = {{ACM} {SIGPLAN--SIGACT} {S}ymposium on {P}rinciples of {P}rogramming {L}anguages ({POPL}), San Francisco, California}, YEAR = 2008, MONTH = JAN, BCP = {Yes}, KEYS = {harmony}, PLCLUB = {Yes}, SHORT = {http://www.cis.upenn.edu/~bcpierce/papers/boomerang.pdf}, TR = {http://www.cis.upenn.edu/~bcpierce/papers/boomerang-tr.pdf} } @inproceedings{ Veldhuizen2002GuaranteedOptimization, author = "Todd L. Veldhuizen and Andrew Lumsdaine", title = "Guaranteed Optimization: Proving Nullspace Properties of Compilers", url = "citeseer.ist.psu.edu/veldhuizen02guaranteed.html", url = "http://osl.iu.edu/~tveldhui/papers/", booktitle = "Proceedings of the 2002 Static Analysis Symposium (SAS'02)", publisher = "Springer-Verlag", year = 2002, pages = "263-277", volume = 2477, conflocation = "Madrid, Spain", conftitle = "Static Analysis Symposium", series = "Lecture Notes in Computer Science", abstract = "Writing performance-critical programs can be frustrating because optimizing compilers for imperative languages tend to be unpredictable. For a subset of optimizations - those that simplify rather than reorder code - it would be useful to prove that a compiler reliably performs optimizations. We show that adopting a ``superanalysis'' approach to optimization enables such a proof. By analogy with linear algebra, we define the nullspace of an optimizer as those programs it reduces to the empty program. To span the nullspace, we define rewrite rules that de-optimize programs by introducing abstraction. For a model compiler we prove that any sequence of de-optimizing rewrite rule applications is undone by the optimizer. Thus, we are able to give programmers a clear mental model of what simplifications the compiler is guaranteed to perform, and make progress on the problem of ``abstraction penalty'' in imperative languages." } @Article{Ershov1977PartialComputation, author = {Andrei Ershov}, title = { On the partial computation principle}, journal = {Information Processing Letters}, year = 1977, volume = 6, number = 2, pages = {38--41} } @mastersthesis{ Whaley1999Thesis, author = "John Whaley", title = "Dynamic Optimization through the use of Automatic Runtime Specialization", school = "Massachusetts Institute of Technology", month = may, year = 1999, } @phdthesis{Ljunglof2002licthesis, author = {Peter Ljungl{\"o}f}, month = apr, school = {Department of Computer Science, Gothenburg University and Chalmers University of Technology}, title = {Pure Functional Parsing -- an advanced tutorial}, type = {Licenciate Thesis}, year = 2002 } @Article{Erwig2001InductiveGraphs, author = {Martin Erwig}, title = {Inductive Graphs and Functional Graph Algorithms}, journal = {Journal of Functional Programming}, year = 2001, volume = 11, number = 5, pages = {467--492} } @MastersThesis{Boehm2007AutomaticCodeGeneration, author = {Igor B{\"o}hm}, title = {Automatic Code Generation using Dynamic Programming Techniques}, school = {Johannes Kepler Universit{\"a}t Linz}, year = 2007 } @article{Poletto1999LinScanRegAlloc, author = {Massimiliano Poletto and Vivek Sarkar}, title = {Linear scan register allocation}, journal = {ACM Trans. Program. Lang. Syst.}, volume = {21}, number = {5}, year = {1999}, issn = {0164-0925}, pages = {895--913}, doi = {http://doi.acm.org/10.1145/330249.330250}, publisher = {ACM}, address = {New York, NY, USA}, } @Article{Sagonas2003LinScanRegAlloc, author = {Konstantinos Sagonas and Erik Stenman}, title = {Experimental evaluation and improvements to linear scan register allocation}, journal = {Software: Practice and Experience}, year = 2003, volume = 33, number = 11, pages = {1003--1034} } @InProceedings{Moessenboeck2002LinScanRegAllocSSA, author = {Hanspeter M{\"o}ssenb{\"o}ck and Michael Pfeiffer}, title = {Linear Scan Register Allocation in the Context of SSA Form and Register Constraints}, booktitle = {Compiler Construction}, pages = {153-206}, year = 2002, volume = 2304, series = LNCS, publisher = SV } @article{Fraser1992BURG, author = {Christopher W. Fraser and Robert R. Henry and Todd A. Proebsting}, title = {BURG: fast optimal instruction selection and tree parsing}, journal = {SIGPLAN Notices}, volume = 27, number = 4, year = 1992, issn = {0362-1340}, pages = {68--76}, doi = {http://doi.acm.org/10.1145/131080.131089}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Chaitin1982RegisterAllocation, author = {G. J. Chaitin}, title = {Register allocation \& spilling via graph coloring}, booktitle = {SIGPLAN '82: Proceedings of the 1982 SIGPLAN Symposium on Compiler Construction}, year = 1982, isbn = {0-89791-074-5}, pages = {98--105}, location = {Boston, Massachusetts, United States}, doi = {http://doi.acm.org/10.1145/800230.806984}, publisher = ACM, address = {New York, NY, USA}, } @article{Proebsting1995BURSAutomataGeneration, author = {Todd A. Proebsting}, title = {BURS automata generation}, journal = {ACM Trans. Program. Lang. Syst.}, volume = 17, number = 3, year = 1995, issn = {0164-0925}, pages = {461--486}, doi = {http://doi.acm.org/10.1145/203095.203098}, publisher = ACM, address = {New York, NY, USA}, } @article{Fraser1992EngineeringCodeGenGen, author = {Christopher W. Fraser and David R. Hanson and Todd A. Proebsting}, title = {Engineering a simple, efficient code-generator generator}, journal = {ACM Lett. Program. Lang. Syst.}, volume = 1, number = 3, year = 1992, issn = {1057-4514}, pages = {213--226}, doi = {http://doi.acm.org/10.1145/151640.151642}, publisher = ACM, address = {New York, NY, USA}, } @incollection{Malmqvist1996RTCG, author = "Markus Malmqvist and Tero Hasu", title = "Runtime Code Generation", booktitle = {Seminar on Mobile Code}, publisher = {Helsinki University of Technology, Department of Computer Science}, month = May, year = 1996, series = {TKO-C79} } @phdthesis{Heeren2005TopQualityTypeErrorMessages, author = {Bastiaan J. Heeren}, school = {Universiteit Utrecht, The Netherlands}, title = {Top Quality Type Error Messages}, year = 2005, month = sep, url = {\url{http://www.cs.uu.nl/people/bastiaan/phdthesis}}, } @InProceedings{Hallet2005ExPolyRec, author = {J.J. Hallett and A.J. Kfoury}, title = {Programming Examples Needing Polymorphic Recursion}, booktitle = {Proceedings of the Third International Workshop on Intersection Types and Related Systems (ITRS 2004)}, pages = {57-102}, year = 2005, volume = 136, series = {Electronic Notes in Theoretical Computer Science} } @InProceedings{Leermakers1991RecursiveAscent, author = {Renee Leermakers}, title = {Non-Deterministic Recursive Ascent Parsing}, booktitle = {1991 conference on European chapter of the Association for Computational Linguistics}, year = 1991 } @TechReport{Gal2006Incremental, author = {A. Gal and M. Franz}, title = {Incremental Dynamic Code Generation with Trace Trees}, institution = {Donald Bren School of Information and Computer Science, University of California, Irvine}, year = 2006, number = {06-16} } @inproceedings{Ronne2004InterpretingSSA, author = {{Jeffery von} Ronne and Ning Wang and Michael Franz}, title = {Interpreting programs in static single assignment form}, booktitle = {IVME '04: Proceedings of the 2004 workshop on Interpreters, virtual machines and emulators}, year = 2004, isbn = {1-58113-909-8}, pages = {23--30}, location = {Washington, D.C.}, doi = {http://doi.acm.org/10.1145/1059579.1059585}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Zhou2005PlanningCodeBuffer, author = {Shukang Zhou and Bruce R. Childers and Mary Lou Soffa}, title = {Planning for code buffer management in distributed virtual execution environments}, booktitle = {VEE '05: Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments}, year = 2005, isbn = {1-59593-047-7}, pages = {100--109}, location = {Chicago, IL, USA}, doi = {http://doi.acm.org/10.1145/1064979.1064994}, publisher = ACM, address = {New York, NY, USA}, } @inproceedings{Lerner2002ComposingDataflow, author = {Sorin Lerner and David Grove and Craig Chambers}, title = {Composing dataflow analyses and transformations}, booktitle = {POPL '02: Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages}, year = 2002, isbn = {1-58113-450-9}, pages = {270--282}, location = {Portland, Oregon}, doi = {http://doi.acm.org/10.1145/503272.503298}, publisher = ACM, address = {New York, NY, USA}, } @article{Click1993SimpleGraphBased, author = {Cliff Click and Michael Paleczny}, title = {A simple graph-based intermediate representation}, journal = {SIGPLAN Not.}, volume = 30, number = 3, year = 1993, issn = {0362-1340}, pages = {35--49}, doi = {http://doi.acm.org/10.1145/202530.202534}, publisher = ACM, address = {New York, NY, USA}, } @InProceedings{Chakravarty2008PartialVectorisation, author = {Manuel M. T. Chakravarty and Roman Leshchinskiy and Simon {Peyton Jones} and Gabriele Keller}, title = {Partial vectorisation of Haskell programs}, booktitle = {Proc ACM Workshop on Declarative Aspects of Multicore Programming}, year = 2008, month = jan } @article{McCarthy1960RecursiveFunctions, author = {John McCarthy}, title = {Recursive functions of symbolic expressions and their computation by machine, {Part I}}, journal = CACM, volume = 3, number = 4, year = 1960, issn = {0001-0782}, pages = {184--195}, doi = {http://doi.acm.org/10.1145/367177.367199}, publisher = ACM, address = {New York, NY, USA}, }