[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Implementation of functional languages



Here is a ``must read'' bibliography for those interested in modern implementations
of functional languages.  Apologies for any omissions.

Nikhil

-------- CUT HERE ------------------
@inProceedings{
    Appel87a,
    key = "Appel, Andrew",
    author = "Appel, Andrew and MacQueen, David B.",
    title = "A Standard ML Compiler",
    booktitle = "Proceedings of the Conference on Functional Programming
                 and Computer Architecture, Portland, Oregon",
    year = 1987,
    month = "September",
    note = "Springer-Verlag LNCS 274",
    annote = "Functional languages"
}

@inProceedings{
    Argo88a,
    key = "Argo, Guy",
    author = "Argo, Guy",
    title = "The G-TIM: a refined Three Instruction Machine",
    booktitle = "Proceedings of the Workshop on Implementation of Lazy
                 Functional Languages, Aspenas, Sweden (to appear)",
    month = "September 5-8",
    year = 1988,
    annote = "Graph Reduction, Lambda Calculus"
}

@inProceedings{
    Augustsson84,
    key = "Augustsson, Lennart",
    author = "Augustsson, Lennart",
    title = "A Compiler for Lazy ML",
    booktitle = "Proc. 1984 ACM Conf. on Lisp and Functional Programming,
                 Austin, Texas",
    organization = ACM,
    year = 1984,
    month = "August",
    pages = "218-227",
    annote = "Lambda-lifting, Super-Combinators"
}

@inProceedings{
    Augustsson85,
    key = "Augustsson, Lennart",
    author = "Augustsson, Lennart",
    title = "Compiling Pattern Matching",
    booktitle = "Proc. 1985 Workshop on Implementations of
                 Functional Languages, Goteborg, Sweden",
    organization = "Chalmers University of Technology",
    year = 1985,
    month = "February",
    annote = "Lambda-lifting, Super-Combinators, ML"
}

@PhDThesis{
    Augustsson87a,
    key = "Augustsson, Lennart",
    author = "Augustsson, Lennart",
    title = "Compiling Lazy Functional Languages, Part II",
    school = "Department of Computer Sciences,
              Chalmers University of Technology",
    address = "Goteborg, Sweden",
    year = 1987,
    annote = "LML, G-Machine, graph reduction"
}

@inProceedings{
    Augustsson88a,
    key = "Augustsson, Lennart",
    author = "Augustsson, Lennart",
    title = "The nu G-machine",
    booktitle = "Proceedings of the Workshop on Implementation of Lazy
                 Functional Languages, Aspenas, Sweden (to appear)",
    month = "September 5-8",
    year = 1988,
    annote = "Parallel Graph Reduction, Lambda Calculus"
}

@inProceedings{
    Bloss88a,
    key = "Bloss, Adrienne",
    author = "Bloss, Adrienne and Hudak, Paul and Young, Jonathan",
    title = "Code Optimizations for Lazy Evaluation",
    booktitle = "Proceedings of the Workshop on Implementation of Lazy
                 Functional Languages, Aspenas, Sweden (to appear)",
    month = "September 5-8",
    year = 1988,
    annote = "Graph Reduction, Lambda Calculus"
}

@inProceedings{
    Burn88a,
    key = "Burn, Geoffrey L.",
    author = "Burn, Geoffrey L.",
    title = "{A Shared Memory Parallel G-machine Based on the Evaluation
              Transformer Model of Computation}",
    booktitle = "Proceedings of the Workshop on Implementation of Lazy
                 Functional Languages, Aspenas, Sweden (to appear)",
    month = "September 5-8",
    year = 1988,
    annote = "Graph Reduction, Lambda Calculus"
}

@inProceedings{
    Burn88b,
    key = "Burn, Geoffrey L.",
    author = "Burn, Geoffrey L.",
    title = "{Developing a Distributed Memory Architecture for Parallel Graph Reduction}",
    booktitle = "Proceedings of the Workshop on Implementation of Lazy
                 Functional Languages, Aspenas, Sweden (to appear)",
    month = "September 5-8",
    year = 1988,
    annote = "Graph Reduction, Lambda Calculus"
}

@inProceedings{
    Burn88c,
    key = "Burn, Geoffrey L.",
    author = "Burn, Geoffrey L., {Peyton Jones}, Simon L. and Robson, J.D.",
    title = "{The Spineless G-Machine",
    booktitle = "Proceedings of the ACM Conference on Lisp and Functional Programming,
                 Snowbird, Utah",
    month = "July 25-27",
    year = 1988,
    annote = "Graph Reduction, Lambda Calculus"
}

@inProceedings{
    Cardelli84d,
    key = "Cardelli, Luca",
    author = "Cardelli, Luca",
    title = "Compiling a Functional Language",
    booktitle = "Proceedings of the ACM Conference on Lisp and Functional
                 Programming, Austin, Texas",
    year = "1984",
    month = "August 6-8",
    pages = "208-217",
    annote = "ML"
}

@inProceedings{
    Clack86a,
    key = "Clack, Chris",
    author = "Clack, Chris and Peyton-Jones, Simon L.",
    title = "The Four-Stroke Reduction Engine",
    booktitle = "Proceedings of the 1986 ACM Conference on Lisp and Functional
                 Programming, Cambridge, Mass.",
    year = 1986,
    month = "August 4-6",
    pages = "220-232",
    annote = "parallel graph reduction"
}

@article{
    Cousineau87,
    key = "Cousineau, G and Curien, Pierre-Louis and Mauny, Michel",
    author = "Cousineau, G and Curien, Pierre-Louis and Mauny, Michel",
    title = "The Categorical Abstract Machine",
    journal = "Science of Computer Programming",
    volume = 8,
    year = "1987",
    pages = "173-202",
    annote = "ML, CAM, Categorical Combinators"
}

@inProceedings{
    Fairbairn85,
    key = "Fairbairn, Jon",
    author = "Fairbairn, Jon",
    title = "Removing Redundant Laziness from Supercombinators",
    booktitle = "Proc. 1985 Workshop on Implementations of
                 Functional Languages, Goteborg, Sweden",
    organization = "Chalmers University of Technology",
    year = 1985,
    month = "February",
    annote = "Ponder, strictness, lazy evaluation"
}

@inProceedings{
    Fairbairn87a,
    key = "Fairbairn87, Jon",
    author = "Fairbairn, Jon and Wray, Stuart C.",
    title = "TIM: A Simple, Lazy Abstract Machine to Execute Supercombinators",
    booktitle = "Proceedings of the 1987 Functional Programming and
                 Computer Architecture Conference, Portland, Oregon",
    year = 1987,
    month = "September",
    pages = "34-45",
    annote = "non-strictness, continuations"
}

@inProceedings{
    Goldberg86,
    key = "Goldberg86, Benjamin and Hudak, Paul",
    author = "Goldberg, Benjamin and Hudak, Paul",
    title = "Alfalfa: Distributed Graph Reduction on a Hypercube Multiprocessor",
    booktitle = "{Proceedings of the Workshop on Graph Reduction,
                 Santa Fe, New Mexico, USA,
                 (Springer-Verlag LNCS 279).}",
    year = 1986,
    month = "September/October",
    pages = "94-113"
}

@inProceedings{
    Goldberg88a,
    key = "Goldberg, Benjamin",
    author = "Goldberg, Benjamin",
    title = "Buckwheat: Graph Reduction on a Shared Memory Multiprocessor",
    booktitle = "{Proceedings of the 1988 ACM Conference on Lisp and Functional Programming,
                  Snowbird, Utah}",
    year = 1988,
    month = "July 25-27",
    pages = "40-51"
}

@PhDThesis{
    Goldberg88a,
    key = "Goldberg, Benjamin",
    author = "Goldberg, Benjamin",
    title = "Multiprocessor Execution of Functional Programs",
    school = "Department of Computer Science,
              Yale University",
    year = 1988,
    annote = "Scheme, T"
}

@inProceedings{
    Halstead84a,
    key = "Halstead, Robert H.",
    author = "Halstead, Robert H.",
    title = "Implementation of Multilisp: Lisp on a Multiprocessor",
    booktitle = "Proceedings of the ACM Conference on Lisp and Functional
                 Programming, Austin, Texas",
    year = "1984",
    month = "August 6-8",
    pages = "9-17",
    annote = "Scheme"
}

@inProceedings{
    Hughes82,
    key = "Hughes,R.J.M.",
    author = "Hughes,R.J.M.",
    title = "Super-Combinators",
    booktitle = "Proc. 1982 ACM Symp. on Lisp and Functional Programming,
                 Pittsburgh, PA",
    organization = "ACM",
    year = 1982,
    month = "August",
    pages = "1-10",
    annote = "Graph Reduction,  functional languages"
}

@article{
    Johnsson84,
    key = "Johnsson,T.",
    author = "Johnsson,T.",
    title = "Efficient Compilation of Lazy Evaluation",
    journal = "ACM SIGPLAN Notices",
    volume = 19,
    number = 6,
    year = 1984,
    month = "June",
    pages = "58-69",
    note = "Proc. ACM SIGPLAN '84 Symposium on Compiler Construction",
    annote = "ML, lambda-lifting, super-combinators, G-machine"
}

@inProceedings{
    Johnsson85,
    key = "Johnsson, Thomas",
    author = "Johnsson, Thomas",
    title = "Lambda Lifting: Transforming Programs to Recursive Equations",
    booktitle = "Springer-Verlag LNCS 201 (Proc. Functional Programming
                 Languages and Computer Architecture, Nancy, France)",
    year = "1985",
    month = "September",
    annote = "ML, super-combinators, G-machine"
}

@inProceedings{
    Johnsson86a,
    key = "Johnsson86, Thomas",
    author = "Johnsson, Thomas",
    title = "Target Code Generation from G-Machine Code",
    booktitle = "Proceedings of the Workshop on Graph Reduction,
                 Santa Fe, New Mexico, USA,
                 (Springer-Verlag LNCS 279).",
    note = "(also Programming Methodology Group Report 39,
             Department of Computer Science,
             Chalmers University of Technology and University of Goteborg,
             S-421 96 Goteborg, Sweden)",
    year = "1986",
    month = "September/October",
    annote = "LML, functional languages"
}

@PhDThesis{
    Johnsson88a,
    key = "Johnsson, Thomas",
    author = "Johnsson, Thomas",
    title = "Compiling Lazy Functional Languages",
    school = "Department of Computer Sciences,
              Chalmers University of Technology",
    address = "Goteborg, Sweden",
    year = 1987,
    annote = "LML, G-Machine, graph reduction"
}

@article{
    Kranz86a,
    key = "Kranz86, David",
    author = "Kranz, David and Kelsey, R. and Rees, Jonathan
              and Hudak, Paul and Philbin, J. and Adams, N.",
    title = "{ORBIT:  An Optimizing Compiler for Scheme}",
    journal = "ACM SIGPLAN Notices",
    year = 1986,
    volume = 21,
    number = 7,
    pages = "219-233",
    month = "July",
    note= "(Proceedings of the {SIGPLAN} 86 Symposium on Compiler Construction)",
    annote = "Lisp, functional languages"
}

@PhDThesis{
    Kranz88a,
    key = "Kranz, David",
    author = "Kranz, David",
    title = "ORBIT: An Optimizing Compiler for Scheme",
    school = "Department of Computer Science,
              Yale University",
    year = 1988,
    annote = "Scheme, T"
}

@article{
    Landin64,
    key = "Landin, Peter J.",
    author = "Landin, Peter J.",
    title = "The Mechanical Evaluation of Languages",
    journal = "Computer Journal",
    volume = 6,
    number = 4,
    year = 1964,
    month = "January",
    pages = "308-320",
    annote = "ISWIM, applicative languages, SECD machines"
}

@inProceedings{
    Peyton-Jones85,
    key = "Peyton Jones, Simon L.",
    author = "{Peyton Jones}, Simon L. and Clack,C. and Harris,N.",
    title = "GRIP - a Parallel Graph Reduction Machine",
    booktitle = "Proc. 1985 Workshop on Implementations of
                 Functional Languages, Goteborg, Sweden",
    organization = "Chalmers University of Technology",
    year = 1985,
    month = "February",
    annote = "Combinators"
}

@Book{
    Peyton-Jones87a,
    key = "Peyton Jones87, Simon L.",
    author = "{Peyton Jones}, Simon L."
    title = "The Implementation of Functional Programming Languages",
    publisher = "Prentice Hall",
    year = 1987,
    annote = "Combinators, G-Machine"
}

@inProceedings{
    Peyton-Jones87b,
    key = "Peyton Jones87, Simon L. and Clack, Chris and Salkild, Jon and Hardie, Mark ",
    author = "{Peyton Jones}, Simon L. and Clack, Chris and Salkild, Jon and Hardie, Mark ",
    title = "{GRIP -- A High Performance Architecture for Parallel Graph Reduction}",
    booktitle = "{Proceedings of the 3rd. International Conference on
                  Functional Programming and Computer Architecture, Portland, Oregon}",
    year = "1987",
    month = "September",
    annote = "Combinators, G-Machine"
}

@misc{
    Peyton-Jones87c,
    key = "Peyton Jones, Simon L.",
    author = "{Peyton Jones}, Simon L.",
    title = "{The tag is dead -- long live the packet}",
    month = "October 22",
    year = 1987,
    note = "Note to FP e-mailing list",
    annote = "Graph Reduction, Lambda Calculus"
}

@article{
    Peyton-Jones88a,
    key = "Peyton Jones, Simon L.",
    author = "{Peyton Jones}, Simon L.",
    title = "{FLIC --- a Functional Language Intermediate Code}",
    journal = "ACM SIGPLAN Notices",
    volume = 23,
    number = 8,
    year = 1988,
    month = "August",
    pages = "30-48",
    note = "Also: Internal Note 2048,
            Department of Computer Science, University College London,
            Gower St., London WC1E 6BT",
    annote = "Graph Reduction, Lambda Calculus"
}

@inProceedings{
    Peyton-Jones88b,
    key = "Peyton Jones, Simon L.",
    author = "{Peyton Jones}, Simon L.",
    title = "{The Spineless Tagless G-machine}",
    booktitle = "Proceedings of the Workshop on Implementation of Lazy
                 Functional Languages, Aspenas, Sweden (to appear)"
    month = "September 5-8",
    year = 1988,
    annote = "Graph Reduction, Lambda Calculus"
}

@techreport{
    Steele78c,
    key = "{Steele Jr.}, Guy Lewis",
    author = "{Steele Jr.}, Guy Lewis",
    title = "{RABBIT:  A Compiler for SCHEME}",
    institution = "Massachusetts Institute of Technology Artificial Intelligence Laboratory",
    year = 1978,
    month = "May",
    number = "AI-TR-474",
    address = "Cambridge, MA",
    annote = "Lisp, functional languages"
}

@techReport{
    Traub86,
    key = "Traub86, Kenneth R.",
    author = "Traub, Kenneth R.",
    title = "A Compiler for the MIT Tagged-Token Dataflow Architecture",
    institution = "MIT Laboratory for Computer Science,
                   545 Technology Square,
                   Cambridge, MA 02139",
    number = "LCS TR-370",
    year = "1986",
    month = "August",
    school = "(Master's Thesis, Dept. of Electrical Engineering and Computer
               Science, MIT)",
    annote = "Functional Languages, Id"
}

@PhdThesis{
    Traub88a,
    key = "Traub88, Kenneth R.",
    author = "Traub, Kenneth R.",
    title = "Sequential Implementation of Lenient
             Programming Languages",
    school = "Massachusetts Institute of Technology",
    year = "1988",
    month = "May",
    note = "Also: TR-417,
                  MIT Laboratory for Computer Science,
                  545 Technology Square,
                  Cambridge, MA 02139",
    annote = "Functional Languages, Id"
}

-------