%%% -*-BibTeX-*-
%%% ====================================================================
%%%  BibTeX-file{
%%%     author-1        = "Preston Briggs",
%%%     author-2        = "Nelson H. F. Beebe",
%%%     version         = "2.72",
%%%     date            = "24 August 2009",
%%%     time            = "13:24:13 MDT",
%%%     filename        = "toplas.bib",
%%%     address-1       = "Tera Computer Company
%%%                        2815 Eastlake East
%%%                        Seattle, WA 98102
%%%                        USA",
%%%     address-2       = "University of Utah
%%%                        Department of Mathematics, 110 LCB
%%%                        155 S 1400 E RM 233
%%%                        Salt Lake City, UT 84112-0090
%%%                        USA",
%%%     telephone-1     = "+1 206 325-0800",
%%%     telephone-2     = "+1 801 581 5254",
%%%     FAX-2           = "+1 801 581 4148",
%%%     URL-2           = "http://www.math.utah.edu/~beebe",
%%%     checksum        = "63009 30746 150917 1469064",
%%%     email-1         = "preston at tera.com (Internet)",
%%%     email-2         = "beebe at math.utah.edu, beebe at acm.org,
%%%                        beebe at computer.org (Internet)",
%%%     codetable       = "ISO/ASCII",
%%%     keywords        = "bibliography, BibTeX, ACM Transactions on
%%%                        Programming Languages and Systems, TOPLAS",
%%%     license         = "public domain",
%%%     supported       = "yes",
%%%     docstring       = "This is a COMPLETE bibliography of the journal
%%%                        ACM Transactions on Programming Languages and
%%%                        Systems (CODEN ATPSDT, ISSN 0164-0925),
%%%                        informally known as TOPLAS, covering volumes
%%%                        1--21 (1988--1999).
%%%
%%%                        The publisher maintains a World Wide Web site
%%%                        for this journal at
%%%
%%%                            http://www.acm.org/pubs/contents/journals/toplas/
%%%                            http://portal.acm.org/browse_dl.cfm?idx=J783
%%%
%%%                        At version 2.72, the year coverage looked
%%%                        like this:
%%%
%%%                             1979 (  20)    1990 (  28)    2001 (  14)
%%%                             1980 (  33)    1991 (  30)    2002 (  21)
%%%                             1981 (  28)    1992 (  22)    2003 (  20)
%%%                             1982 (  39)    1993 (  32)    2004 (  28)
%%%                             1983 (  36)    1994 (  66)    2005 (  33)
%%%                             1984 (  34)    1995 (  39)    2006 (  27)
%%%                             1985 (  34)    1996 (  29)    2007 (  45)
%%%                             1986 (  26)    1997 (  35)    2008 (  33)
%%%                             1987 (  27)    1998 (  34)    2009 (  20)
%%%                             1988 (  32)    1999 (  32)
%%%                             1989 (  30)    2000 (  28)
%%%
%%%                             Article:        954
%%%                             TechReport:       1
%%%
%%%                             Total entries:  955
%%%
%%%                        This bibliography was initially constructed
%%%                        by hand by the first author (PB) from
%%%                        various sources, and at its last release in
%%%                        February 1995, had 447 entries.
%%%
%%%                        It was further extended by the second
%%%                        author (NHFB) using bibliographies in
%%%                        NHFB's personal files, from the OCLC
%%%                        Contents1st database, from the IEEE INSPEC
%%%                        database, from the computer graphics
%%%                        bibliography archive at ftp.siggraph.org,
%%%                        and from the computer science bibliography
%%%                        collection on ftp.ira.uka.de in
%%%                        /pub/bibliography to which many people of
%%%                        have contributed.  The snapshot of this
%%%                        collection was taken on 5-May-1994, and it
%%%                        consists of 441 BibTeX files, 2,672,675
%%%                        lines, 205,289 entries, and 6,375
%%%                        <at>String{} abbreviations, occupying
%%%                        94.8MB of disk space.  This work updated 85
%%%                        existing entries and added 104 new entries,
%%%                        completing coverage to for all issues up to
%%%                        Volume 17, Number 5, September 1995.
%%%
%%%                        Numerous errors in the sources noted above
%%%                        have been corrected.  Spelling has been
%%%                        verified with the UNIX spell and GNU ispell
%%%                        programs using the exception dictionary
%%%                        stored in the companion file with extension
%%%                        .sok.
%%%
%%%                        The ACM maintains Web pages with journal
%%%                        tables of contents for 1985--1995 at
%%%                        http://www.acm.org/pubs/toc.  That data has
%%%                        been automatically converted to BibTeX
%%%                        form, corrected for spelling and page
%%%                        number errors, and merged into this file.
%%%
%%%                        ACM copyrights explicitly permit abstracting
%%%                        with credit, so article abstracts, keywords,
%%%                        and subject classifications have been
%%%                        included in this bibliography wherever
%%%                        available.  Article reviews have been
%%%                        omitted, until their copyright status has
%%%                        been clarified.
%%%
%%%                        bibsource keys in the bibliography entries
%%%                        below indicate the entry originally came
%%%                        from the computer science bibliography
%%%                        archive, even though it has likely since
%%%                        been corrected and updated.
%%%
%%%                        URL keys in the bibliography point to
%%%                        World Wide Web locations of additional
%%%                        information about the entry.
%%%
%%%                        BibTeX citation tags are uniformly chosen as
%%%                        name:year:abbrev, where name is the family
%%%                        name of the first author or editor, year is a
%%%                        4-digit number, and abbrev is a 3-letter
%%%                        condensation of important title
%%%                        words. Citation tags were automatically
%%%                        generated by software developed for the
%%%                        BibNet Project.
%%%
%%%                        In this bibliography, entries are sorted in
%%%                        publication order, using bibsort -byvolume.
%%%
%%%                        The checksum field above contains a CRC-16
%%%                        checksum as the first value, followed by the
%%%                        equivalent of the standard UNIX wc (word
%%%                        count) utility output of lines, words, and
%%%                        characters.  This is produced by Robert
%%%                        Solovay's checksum utility.",
%%%  }
%%% ====================================================================

@Preamble{
    "\hyphenation{
        Fa-la-schi
        Her-men-e-gil-do
        Lu-ba-chev-sky
        Pu-ru-sho-tha-man
        Roe-ver
        Ros-en-krantz
        Ru-dolph
    }" #
    "\ifx \undefined \circled \def \circled #1{(#1)}\fi" #
    "\ifx \undefined \reg \def \reg {\circled{R}}\fi"
}

%%% ====================================================================
%%% Acknowledgement abbreviations:

@String{ack-meo =  "Melissa E. O'Neill,
                    School of Computing Science,
                    Simon Fraser University,
                    Burnaby, BC,
                    Canada V5A 1S6,
                    e-mail: \path|oneill@cs.sfu.ca|,
                    URL: \path|http://www.cs.sfu.ca/people/GradStudents/oneill/|"}

@String{ack-nhfb = "Nelson H. F. Beebe,
                    University of Utah,
                    Department of Mathematics, 110 LCB,
                    155 S 1400 E RM 233,
                    Salt Lake City, UT 84112-0090, USA,
                    Tel: +1 801 581 5254,
                    FAX: +1 801 581 4148,
                    e-mail: \path|beebe@math.utah.edu|,
                            \path|beebe@acm.org|,
                            \path|beebe@computer.org| (Internet),
                    URL: \path|http://www.math.utah.edu/~beebe/|"}

@String{ack-pb =    "Preston Briggs,
                     Tera Computer Company,
                     2815 Eastlake East,
                     Seattle, WA 98102,
                     USA,
                     Tel: +1 206 325-0800,
                     e-mail: \path|preston@tera.com|"}

%%% ====================================================================
%%% Journal abbreviations:

@String{j-TOPLAS                = "ACM Transactions on Programming
                                  Languages and Systems"}

%%% ====================================================================
%%% Bibliography entries:

@TechReport{Morgan:1988:RC,
  author =       "C. C. Morgan and K. A. Robinson and P. H. B.
                 Gardiner",
  title =        "On the Refinement Calculus",
  type =         "Technical Monograph",
  number =       "PRG-70",
  institution =  "Oxford University Computing Laboratory",
  address =      "Wolfson Building, Parks Road, Oxford, UK",
  month =        oct,
  year =         "1988",
  ISBN =         "0-902928-52-X",
  length =       "151",
}

@Article{Lindstrom:1979:BGC,
  author =       "Gary Lindstrom",
  title =        "Backtracking in a Generalized Control Setting",
  journal =      j-TOPLAS,
  volume =       "1",
  number =       "1",
  pages =        "8--26",
  month =        jul,
  year =         "1979",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Dewar:1979:PRE,
  author =       "Robert B. K. Dewar and Arthur Grand and Ssu-Cheng Liu
                 and Jacob T. Schwartz and Edmond Schonberg",
  title =        "Programming by Refinement, as Exemplified by the
                 {SETL} Representation Sublanguage",
  journal =      j-TOPLAS,
  volume =       "1",
  number =       "1",
  pages =        "27--49",
  month =        jul,
  year =         "1979",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Sites:1979:CLI,
  author =       "Richard L. Sites",
  title =        "The Compilation of Loop Induction Expressions",
  journal =      j-TOPLAS,
  volume =       "1",
  number =       "1",
  pages =        "50--57",
  month =        jul,
  year =         "1979",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Ghezzi:1979:IP,
  author =       "Carlo Ghezzi and Dino Mandrioli",
  title =        "Incremental Parsing",
  journal =      j-TOPLAS,
  volume =       "1",
  number =       "1",
  pages =        "58--70",
  month =        jul,
  year =         "1979",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 6 11:06:56 1996",
  acknowledgement = ack-pb,
}

@Article{Robertson:1979:CGS,
  author =       "Edward L. Robertson",
  title =        "Code Generation and Storage Allocation for Machines
                 with Span-Dependent Instructions",
  journal =      j-TOPLAS,
  volume =       "1",
  number =       "1",
  pages =        "71--83",
  month =        jul,
  year =         "1979",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Lamport:1979:NAP,
  author =       "Leslie Lamport",
  title =        "A New Approach to Proving the Correctness of
                 Multiprocess Programs",
  journal =      j-TOPLAS,
  volume =       "1",
  number =       "1",
  pages =        "84--97",
  month =        jul,
  year =         "1979",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 6 13:02:18 1996",
  note =         "See also corrigendum \cite{Lamport:1980:CNA}.",
  acknowledgement = ack-pb,
}

@Article{Constable:1979:HAF,
  author =       "Robert L. Constable and James E. Donahue",
  title =        "A Hierarchical Approach to Formal Semantics With
                 Application to the Definition of {PL\slash CS}",
  journal =      j-TOPLAS,
  volume =       "1",
  number =       "1",
  pages =        "98--114",
  month =        jul,
  year =         "1979",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 18:36:35 1996",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Wise:1979:MGC,
  author =       "David S. Wise",
  title =        "{Morris}'s Garbage Compaction Algorithm Restores
                 Reference Counts",
  journal =      j-TOPLAS,
  volume =       "1",
  number =       "1",
  pages =        "115--120",
  month =        jul,
  year =         "1979",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Lengauer:1979:FAF,
  author =       "Thomas Lengauer and Robert Endre Tarjan",
  title =        "A Fast Algorithm for Finding Dominators in a
                 Flowgraph",
  journal =      j-TOPLAS,
  volume =       "1",
  number =       "1",
  pages =        "121--141",
  month =        jul,
  year =         "1979",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Kennedy:1979:DAG,
  author =       "Ken Kennedy and Jayashree Ramanathan",
  title =        "A Deterministic Attribute Grammar Evaluator Based on
                 Dynamic Scheduling",
  journal =      j-TOPLAS,
  volume =       "1",
  number =       "1",
  pages =        "142--160",
  month =        jul,
  year =         "1979",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Parallel/scheduling.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  acknowledgement = ack-pb,
}

@Article{Iverson:1979:O,
  author =       "Kenneth E. Iverson",
  title =        "Operators",
  journal =      j-TOPLAS,
  volume =       "1",
  number =       "2",
  pages =        "161--176",
  month =        oct,
  year =         "1979",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Perrott:1979:LAV,
  author =       "R. H. Perrott",
  title =        "A Language for Array and Vector Processors",
  journal =      j-TOPLAS,
  volume =       "1",
  number =       "2",
  pages =        "177--195",
  month =        oct,
  year =         "1979",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Prywes:1979:UNS,
  author =       "N. S. Prywes and Amir Pnueli and S. Shastry",
  title =        "Use of a Nonprocedural Specification Language and
                 Associated Program Generator in Software Development",
  journal =      j-TOPLAS,
  volume =       "1",
  number =       "2",
  pages =        "196--217",
  month =        oct,
  year =         "1979",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Kieburtz:1979:CCS,
  author =       "Richard B. Kieburtz and Abraham Silberschatz",
  title =        "Comments on ``{Communicating} Sequential Processes''",
  journal =      j-TOPLAS,
  volume =       "1",
  number =       "2",
  pages =        "218--225",
  month =        oct,
  year =         "1979",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Luckham:1979:VAR,
  author =       "David C. Luckham and Norihisa Suzuki",
  title =        "Verification of Array, Record, and Pointer Operations
                 in {Pascal}",
  journal =      j-TOPLAS,
  volume =       "1",
  number =       "2",
  pages =        "226--244",
  month =        oct,
  year =         "1979",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Nelson:1979:SCD,
  author =       "Greg Nelson and Derek C. Oppen",
  title =        "Simplification by Cooperating Decision Procedures",
  journal =      j-TOPLAS,
  volume =       "1",
  number =       "2",
  pages =        "245--257",
  month =        oct,
  year =         "1979",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib,
                 Ai/Constr.logic.prog.bib",
  acknowledgement = ack-pb,
}

@Article{Gries:1979:SEB,
  author =       "David Gries",
  title =        "Is Sometimes Ever Better Than Alway?",
  journal =      j-TOPLAS,
  volume =       "1",
  number =       "2",
  pages =        "258--265",
  month =        oct,
  year =         "1979",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Bobrow:1979:CEL,
  author =       "Daniel G. Bobrow and Douglas W. Clark",
  title =        "Compact Encodings of List Structure",
  journal =      j-TOPLAS,
  volume =       "1",
  number =       "2",
  pages =        "266--286",
  month =        oct,
  year =         "1979",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/Heaps.bib, Compiler/garbage.collection.bib,
                 Compiler/Compiler.Lins.bib, Compiler/TOPLAS.bib",
  acknowledgement = ack-pb,
  comment =      "Good words on {CDR}-coding",
}

@Article{Beyer:1979:SED,
  author =       "Eric Beyer and Peter Buneman",
  title =        "A Space Efficient Dynamic Allocation Algorithm for
                 Queuing Messages",
  journal =      j-TOPLAS,
  volume =       "1",
  number =       "2",
  pages =        "287--294",
  month =        oct,
  year =         "1979",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Tai:1979:NSG,
  author =       "Kou-Chung Tai",
  title =        "Noncanonical {SLR}(1) Grammars",
  journal =      j-TOPLAS,
  volume =       "1",
  number =       "2",
  pages =        "295--320",
  month =        oct,
  year =         "1979",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Harel:1980:PNA,
  author =       "David Harel",
  title =        "{And/Or} Programs: {A} New Approach to Structured
                 Programming",
  journal =      j-TOPLAS,
  volume =       "2",
  number =       "1",
  pages =        "1--17",
  month =        jan,
  year =         "1980",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Pai:1980:GCR,
  author =       "Ajit B. Pai and Richard B. Kieburtz",
  title =        "Global Context Recovery: {A} New Strategy for
                 Syntactic Error Recovery by Table-Drive Parsers",
  journal =      j-TOPLAS,
  volume =       "2",
  number =       "1",
  pages =        "18--41",
  month =        jan,
  year =         "1980",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Francez:1980:DT,
  author =       "Nissim Francez",
  title =        "Distributed Termination",
  journal =      j-TOPLAS,
  volume =       "2",
  number =       "1",
  pages =        "42--55",
  month =        jan,
  year =         "1980",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 13:02:21 1996",
  note =         "See also corrigendum \cite{Francez:1980:CT} and
                 remarks \cite{Mohan:1981:TCF,Francez:1981:TCR}.",
  acknowledgement = ack-pb,
}

@Article{Andrews:1980:AAI,
  author =       "Gregory R. Andrews and Richard P. Reitman",
  title =        "An Axiomatic Approach to Information Flow in
                 Programs",
  journal =      j-TOPLAS,
  volume =       "2",
  number =       "1",
  pages =        "56--76",
  month =        jan,
  year =         "1980",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Papadimitriou:1980:PBH,
  author =       "Christos H. Papadimitriou and Philip A. Bernstein",
  title =        "On the Performance of Balanced Hashing Functions When
                 the Keys Are Not Equiprobable",
  journal =      j-TOPLAS,
  volume =       "2",
  number =       "1",
  pages =        "77--89",
  month =        jan,
  year =         "1980",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/hash.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  acknowledgement = ack-pb,
}

@Article{Manna:1980:DAP,
  author =       "Zohar Manna and Richard Waldinger",
  title =        "A Deductive Approach to Program Synthesis",
  journal =      j-TOPLAS,
  volume =       "2",
  number =       "1",
  pages =        "90--121",
  month =        jan,
  year =         "1980",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Arnold:1980:URG,
  author =       "D. B. Arnold and M. R. Sleep",
  title =        "Uniform Random Generation of Balanced Parenthesis
                 Strings",
  journal =      j-TOPLAS,
  volume =       "2",
  number =       "1",
  pages =        "122--128",
  month =        jan,
  year =         "1980",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Comer:1980:NMS,
  author =       "Douglas Comer",
  title =        "A Note on Median Split Trees",
  journal =      j-TOPLAS,
  volume =       "2",
  number =       "1",
  pages =        "129--133",
  month =        jan,
  year =         "1980",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Lamport:1980:CNA,
  author =       "Leslie Lamport",
  title =        "Corrigendum: ``{A New Approach to Proving the
                 Correctness of Multiprocess Programs}''",
  journal =      j-TOPLAS,
  volume =       "2",
  number =       "1",
  pages =        "134--134",
  month =        jan,
  year =         "1980",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 12:53:34 1996",
  note =         "See \cite{Lamport:1979:NAP}.",
  acknowledgement = ack-pb,
}

@Article{Wallis:1980:ERO,
  author =       "Peter J. L. Wallis",
  title =        "External Representations of Objects of User-Defined
                 Type",
  journal =      j-TOPLAS,
  volume =       "2",
  number =       "2",
  pages =        "137--152",
  month =        apr,
  year =         "1980",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  note =         "See also corrigendum \cite{Wallis:1981:CRO}.",
  acknowledgement = ack-pb,
}

@Article{Griswold:1980:AUP,
  author =       "Ralph E. Griswold and David R. Hanson",
  title =        "An Alternative to the Use of Patterns in String
                 Processing",
  journal =      j-TOPLAS,
  volume =       "2",
  number =       "2",
  pages =        "153--172",
  month =        apr,
  year =         "1980",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Cattell:1980:ADC,
  author =       "R. G. G. Cattell",
  title =        "Automatic Derivation of Code Generators from Machine
                 Descriptions",
  journal =      j-TOPLAS,
  volume =       "2",
  number =       "2",
  pages =        "173--190",
  month =        apr,
  year =         "1980",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Davidson:1980:DAR,
  author =       "Jack W. Davidson and Christopher W. Fraser",
  title =        "The Design and Application of a Retargetable Peephole
                 Optimizer",
  journal =      j-TOPLAS,
  volume =       "2",
  number =       "2",
  pages =        "191--202",
  month =        apr,
  year =         "1980",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 13:02:24 1996",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  note =         "See also corrigendum \cite{Davidson:1981:CDA}.",
  acknowledgement = ack-pb,
}

@Article{Fischer:1980:PCA,
  author =       "Charles N. Fischer",
  title =        "On Parsing and Compiling Arithmetic Expressions on
                 Vector Computers",
  journal =      j-TOPLAS,
  volume =       "2",
  number =       "2",
  pages =        "203--224",
  month =        apr,
  year =         "1980",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Luckham:1980:AEH,
  author =       "David C. Luckham and W. Polak",
  title =        "{Ada} exception handling: an axiomatic approach",
  journal =      j-TOPLAS,
  volume =       "2",
  number =       "2",
  pages =        "225--233",
  month =        apr,
  year =         "1980",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib, Compiler/TOPLAS.bib",
  acknowledgement = ack-pb,
}

@Article{Bernstein:1980:OGN,
  author =       "Arthur Bernstein",
  title =        "Output Guards and Nondeterminism in ``{Communicating
                 Sequential Processes}''",
  journal =      j-TOPLAS,
  volume =       "2",
  number =       "2",
  pages =        "234--238",
  month =        apr,
  year =         "1980",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Theory/ProbAlgs.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  note =         "Bernstein presents a distributed algorithm for CSP
                 output guards based on priority ordering of
                 processes.",
  acknowledgement = ack-pb,
}

@Article{Ma:1980:DMI,
  author =       "Perng-Ti Ma and T. G. Lewis",
  title =        "Design of a Machine-Independent Optimizing System for
                 Emulator Development",
  journal =      j-TOPLAS,
  volume =       "2",
  number =       "2",
  pages =        "239--262",
  month =        apr,
  year =         "1980",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Bobrow:1980:MRS,
  author =       "Daniel G. Bobrow",
  title =        "Managing Reentrant Structures Using Reference Counts",
  journal =      j-TOPLAS,
  volume =       "2",
  number =       "3",
  pages =        "269--273",
  month =        jul,
  year =         "1980",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Leverett:1980:CSD,
  author =       "Bruce W. Leverett and Thomas G. Szymanski",
  title =        "Chaining Span-Dependent Jump Instructions",
  journal =      j-TOPLAS,
  volume =       "2",
  number =       "3",
  pages =        "274--289",
  month =        jul,
  year =         "1980",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Samet:1980:CAP,
  author =       "Hanan Samet",
  title =        "A Coroutine Approach to Parsing",
  journal =      j-TOPLAS,
  volume =       "2",
  number =       "3",
  pages =        "290--306",
  month =        jul,
  year =         "1980",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Howden:1980:ASV,
  author =       "W. E. Howden",
  title =        "Applicability of Software Validation Techniques to
                 Scientific Programs",
  journal =      j-TOPLAS,
  volume =       "2",
  number =       "3",
  pages =        "307--320",
  month =        jul,
  year =         "1980",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Broy:1980:DIA,
  author =       "Manfred Broy and Bernd Krieg-{Br\"uckner}",
  title =        "Derivation of Invariant Assertions During Program
                 Development by Transformation",
  journal =      j-TOPLAS,
  volume =       "2",
  number =       "3",
  pages =        "321--337",
  month =        jul,
  year =         "1980",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Clarke:1980:SRI,
  author =       "Edmund Melson {Clarke, Jr.}",
  title =        "Synthesis of Resource Invariants for Concurrent
                 Programs",
  journal =      j-TOPLAS,
  volume =       "2",
  number =       "3",
  pages =        "338--358",
  month =        jul,
  year =         "1980",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Apt:1980:PSC,
  author =       "Krzysztof R. Apt and Nissim Francez and Willem P. de
                 Roever",
  title =        "A Proof System for Communicating Sequential
                 Processes",
  journal =      j-TOPLAS,
  volume =       "2",
  number =       "3",
  pages =        "359--385",
  month =        jul,
  year =         "1980",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 6 13:22:43 1996",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  note =         "See remarks \cite{Moitra:1983:TCA}.",
  acknowledgement = ack-pb,
}

@Article{Casanova:1980:FSR,
  author =       "Marco R. Casanova and Phillip A. Bernstein",
  title =        "A Formal System for Reasoning about Programs Accessing
                 a Relational Database",
  journal =      j-TOPLAS,
  volume =       "2",
  number =       "3",
  pages =        "386--414",
  month =        jul,
  year =         "1980",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Graham:1980:ICF,
  author =       "Susan L. Graham and Michael A. Harrison and Walter L.
                 Ruzzo",
  title =        "An Improved Context-Free Recognizer",
  journal =      j-TOPLAS,
  volume =       "2",
  number =       "3",
  pages =        "415--462",
  month =        jul,
  year =         "1980",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Francez:1980:CT,
  author =       "Nissim Francez",
  title =        "Corrigendum: ``{Distributed Termination}''",
  journal =      j-TOPLAS,
  volume =       "2",
  number =       "3",
  pages =        "463--463",
  month =        jul,
  year =         "1980",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 12:55:53 1996",
  note =         "See
                 \cite{Francez:1980:DT,Mohan:1981:TCF,Francez:1981:TCR}.",
  acknowledgement = ack-pb,
}

@Article{Oppen:1980:P,
  author =       "Dereck C. Oppen",
  title =        "Prettyprinting",
  journal =      j-TOPLAS,
  volume =       "2",
  number =       "4",
  pages =        "465--483",
  month =        oct,
  year =         "1980",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Schwartz:1980:U,
  author =       "Jacob T. Schwartz",
  title =        "Ultracomputers",
  journal =      j-TOPLAS,
  volume =       "2",
  number =       "4",
  pages =        "484--521",
  month =        oct,
  year =         "1980",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Ernst:1980:SAD,
  author =       "George W. Ernst and William F. Ogden",
  title =        "Specification of Abstract Data Types in {Modula}",
  journal =      j-TOPLAS,
  volume =       "2",
  number =       "4",
  pages =        "522--543",
  month =        oct,
  year =         "1980",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Landwehr:1980:ATS,
  author =       "Carl E. Landwehr",
  title =        "An Abstract Type for Statistics Collection in
                 {Simula}",
  journal =      j-TOPLAS,
  volume =       "2",
  number =       "4",
  pages =        "544--563",
  month =        oct,
  year =         "1980",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Gries:1980:APC,
  author =       "David Gries and Gary Levin",
  title =        "Assignment and Procedure Call Proof Rules",
  journal =      j-TOPLAS,
  volume =       "2",
  number =       "4",
  pages =        "564--579",
  month =        oct,
  year =         "1980",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Moret:1980:AVR,
  author =       "B. M. E. Moret and M. G. Thomason and R. C. Gonzalez",
  title =        "The Activity of a Variable and Its Relation to
                 Decision Trees",
  journal =      j-TOPLAS,
  volume =       "2",
  number =       "4",
  pages =        "580--595",
  month =        oct,
  year =         "1980",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Steensgaard-Madsen:1981:SOA,
  author =       "J. Steensgaard-Madsen",
  title =        "A Statement-Oriented Approach to Data Abstraction",
  journal =      j-TOPLAS,
  volume =       "3",
  number =       "1",
  pages =        "1--10",
  month =        jan,
  year =         "1981",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  note =         "See remarks
                 \cite{Ellis:1982:TCS,Steensgaard-Madsen:1982:SMR}.",
  acknowledgement = ack-pb,
}

@Article{Andre:1981:MAC,
  author =       "F. {Andr\'e} and J. P. Banatre and J. P. Routeau",
  title =        "A Multiprocessing Approach to Compile-Time Symbol
                 Resolution",
  journal =      j-TOPLAS,
  volume =       "3",
  number =       "1",
  pages =        "11--23",
  month =        jan,
  year =         "1981",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Juelich:1981:CAS,
  author =       "Otto C. Juelich and Clinton R. Foulk",
  title =        "Compilation of Acyclic Smooth Programs for Parallel
                 Execution",
  journal =      j-TOPLAS,
  volume =       "3",
  number =       "1",
  pages =        "24--48",
  month =        jan,
  year =         "1981",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Grit:1981:DIT,
  author =       "Dale H. Grit and Rex L. Page",
  title =        "Deleting Irrelevant Tasks in an Expression-Oriented
                 Multiprocessor System",
  journal =      j-TOPLAS,
  volume =       "3",
  number =       "1",
  pages =        "49--59",
  month =        jan,
  year =         "1981",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/Heaps.bib, Compiler/garbage.collection.bib,
                 Compiler/Compiler.Lins.bib, Compiler/TOPLAS.bib",
  acknowledgement = ack-pb,
}

@Article{Kristensen:1981:MCL,
  author =       "Bent Bruun Kristensen and Ole Lehrmann Madsen",
  title =        "Methods for Computing {LALR$(k)$} Lookahead",
  journal =      j-TOPLAS,
  volume =       "3",
  number =       "1",
  pages =        "60--82",
  month =        jan,
  year =         "1981",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib, Compiler/TOPLAS.bib",
  acknowledgement = ack-pb,
}

@Article{LaLonde:1981:HOP,
  author =       "Wilf R. LaLonde and Jim des Rivieres",
  title =        "Handling Operator Precedence in Arithmetic Expressions
                 with Tree Transformations",
  journal =      j-TOPLAS,
  volume =       "3",
  number =       "1",
  pages =        "83--103",
  month =        jan,
  year =         "1981",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 6 13:17:11 1996",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  note =         "See remarks
                 \cite{Henderson:1983:TCL,LaLonde:1983:TCL}.",
  acknowledgement = ack-pb,
}

@Article{Misra:1981:EPE,
  author =       "Jayadev Misra",
  title =        "An Exercise in Program Explanation",
  journal =      j-TOPLAS,
  volume =       "3",
  number =       "1",
  pages =        "104--109",
  month =        jan,
  year =         "1981",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Davidson:1981:CDA,
  author =       "Jack W. Davidson and Christopher W. Fraser",
  title =        "Corrigendum: ``{The Design and Application of a
                 Retargetable Peephole Optimizer}''",
  journal =      j-TOPLAS,
  volume =       "3",
  number =       "1",
  pages =        "110--110",
  month =        jan,
  year =         "1981",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  note =         "See \cite{Davidson:1980:DAR}.",
  acknowledgement = ack-pb,
}

@Article{Wallis:1981:CRO,
  author =       "Peter J. L. Wallis",
  title =        "Corrigendum: ``{External Representations of Objects of
                 User-Defined Type}''",
  journal =      j-TOPLAS,
  volume =       "3",
  number =       "1",
  pages =        "111--111",
  month =        jan,
  year =         "1981",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  note =         "See \cite{Wallis:1980:ERO}.",
  acknowledgement = ack-pb,
}

@Article{Mohan:1981:TCF,
  author =       "C. Mohan",
  title =        "Technical Correspondence: On {Francez}'s
                 ``{Distributed Termination}''",
  journal =      j-TOPLAS,
  volume =       "3",
  number =       "1",
  pages =        "112--112",
  month =        jan,
  year =         "1981",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  note =         "See \cite{Francez:1980:DT,Francez:1981:TCR}.",
  acknowledgement = ack-pb,
}

@Article{Francez:1981:TCR,
  author =       "N. Francez",
  title =        "Technical Correspondence: Reply from {Francez}",
  journal =      j-TOPLAS,
  volume =       "3",
  number =       "1",
  pages =        "112--113",
  month =        jan,
  year =         "1981",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 13:05:53 1996",
  note =         "See \cite{Francez:1980:DT,Mohan:1981:TCF}.",
  acknowledgement = ack-nhfb,
}

@Article{Fraser:1981:EDS,
  author =       "Christopher W. Fraser and A. A. Lopez",
  title =        "Editing Data Structures",
  journal =      j-TOPLAS,
  volume =       "3",
  number =       "2",
  pages =        "115--125",
  month =        apr,
  year =         "1981",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib,
                 Ai/lisp.bib",
  acknowledgement = ack-pb,
}

@Article{Schonberg:1981:ATS,
  author =       "Edmond Schonberg and Jacob T. Schwartz and Micha
                 Sharir",
  title =        "An Automatic Technique for Selection of Data
                 Structures in {SETL} Programs",
  journal =      j-TOPLAS,
  volume =       "3",
  number =       "2",
  pages =        "126--143",
  month =        apr,
  year =         "1981",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Database/Graefe.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  abstract =     "SETL is a very high level programming language
                 supporting set theoretic syntax and semantics. It
                 allows algorithms to be programmed rapidly and
                 succinctly without requiring data structure
                 declarations to be supplied. Such declarations can be
                 manually specified later, without recoding the program,
                 to improve the efficiency of program execution. We
                 describe a new technique for automatic selection of
                 appropriate data representations during compile time
                 for programs with omitted declarations and present an
                 efficient data representation selection algorithm,
                 whose complexity is comparable with those of the
                 fastest known general data-flow algorithms of Tarjan
                 and Reif.",
  acknowledgement = ack-pb,
  keywords =     "New York Univ. bit vector direct representation
                 pointer array for subsets",
}

@Article{Griswold:1981:GI,
  author =       "Ralph E. Griswold and David R. Hanson and John T.
                 Korb",
  title =        "Generators in {Icon}",
  journal =      j-TOPLAS,
  volume =       "3",
  number =       "2",
  pages =        "144--161",
  month =        apr,
  year =         "1981",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Hanson:1981:APP,
  author =       "David R. Hanson",
  title =        "{Algorithm 568}. {PDS} --- {A} Portable Directory
                 System",
  journal =      j-TOPLAS,
  volume =       "3",
  number =       "2",
  pages =        "162--167",
  month =        apr,
  year =         "1981",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Sep 9 14:11:06 1994",
  URL =          "http://doi.acm.org/10.1145/357133.357137",
  acknowledgement = ack-pb,
}

@Article{LaLonde:1981:CSC,
  author =       "Wilf R. LaLonde",
  title =        "The Construction of Stack-Controlling {LR} Parsers for
                 Regular Right Part Grammars",
  journal =      j-TOPLAS,
  volume =       "3",
  number =       "2",
  pages =        "168--206",
  month =        apr,
  year =         "1981",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Gannon:1981:DAI,
  author =       "John Gannon and Paul McMullin and Richard Hamlet",
  title =        "Data Abstraction, Implementation, Specification, and
                 Testing",
  journal =      j-TOPLAS,
  volume =       "3",
  number =       "3",
  pages =        "211--223",
  month =        jul,
  year =         "1981",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{vandenBos:1981:PCB,
  author =       "Jan {van den Bos} and R. Plasmeijer and Jan W. M.
                 Stroet",
  title =        "Process Communication Based on Input Specifications",
  journal =      j-TOPLAS,
  volume =       "3",
  number =       "3",
  pages =        "224--250",
  month =        jul,
  year =         "1981",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Oct 31 06:37:56 2003",
  bibsource =    "Object/Nierstrasz.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  acknowledgement = ack-pb,
  keywords =     "uilit",
}

@Article{Rem:1981:APN,
  author =       "Martin Rem",
  title =        "Associons: {A} Program Notation with Tuples Instead of
                 Variables",
  journal =      j-TOPLAS,
  volume =       "3",
  number =       "3",
  pages =        "251--262",
  month =        jul,
  year =         "1981",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Lindstrom:1981:RRB,
  author =       "Gary Lindstrom and Mary Lou Soffa",
  title =        "Referencing and Retention in Block-Structured
                 Coroutines",
  journal =      j-TOPLAS,
  volume =       "3",
  number =       "3",
  pages =        "263--292",
  month =        jul,
  year =         "1981",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Barnden:1981:NCA,
  author =       "J. A. Barnden",
  title =        "Nonsequentiality and Concrete Activity Phases in
                 Discrete-Event Simulation Languages",
  journal =      j-TOPLAS,
  volume =       "3",
  number =       "3",
  pages =        "293--317",
  month =        jul,
  year =         "1981",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Anderson:1981:LLC,
  author =       "S. O. Anderson and R. C. Backhouse",
  title =        "Locally Least-Cost Error Recovery in {Early}'s
                 Algorithm",
  journal =      j-TOPLAS,
  volume =       "3",
  number =       "3",
  pages =        "318--347",
  month =        jul,
  year =         "1981",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Borning:1981:PLA,
  author =       "Alan Borning",
  title =        "The Programming Language Aspects of {ThingLab}, a
                 Constraint-Oriented Simulation Laboratory",
  journal =      j-TOPLAS,
  volume =       "3",
  number =       "4",
  pages =        "353--387",
  month =        oct,
  year =         "1981",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Jazayeri:1981:SES,
  author =       "Medhi Jazayeri and Diane Pozefsky",
  title =        "Space-Efficient Storage Management in an Attribute
                 Grammar Evaluator",
  journal =      j-TOPLAS,
  volume =       "3",
  number =       "4",
  pages =        "388--404",
  month =        oct,
  year =         "1981",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Andrews:1981:SR,
  author =       "Gregory R. Andrews",
  title =        "Synchronizing Resources",
  journal =      j-TOPLAS,
  volume =       "3",
  number =       "4",
  pages =        "405--430",
  month =        oct,
  year =         "1981",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Apt:1981:TYH,
  author =       "Krzysztof R. Apt",
  title =        "Ten Years of {Hoare}'s Logic: {A} Survey --- {Part
                 I}",
  journal =      j-TOPLAS,
  volume =       "3",
  number =       "4",
  pages =        "431--483",
  month =        oct,
  year =         "1981",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/prog.lang.theory.bib",
  acknowledgement = ack-pb,
}

@Article{Greif:1981:SSW,
  author =       "Irene Greif and Albert R. Meyer",
  title =        "Specifying the Semantics of while Programs: {A}
                 Tutorial and Critique of a Paper by {Hoare} and
                 {Lauer}",
  journal =      j-TOPLAS,
  volume =       "3",
  number =       "4",
  pages =        "484--507",
  month =        oct,
  year =         "1981",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Hansen:1981:CMI,
  author =       "Wilfred J. Hansen",
  title =        "A Cost Model for the Internal Organization of
                 {B$^{+}$}-Tree Nodes",
  journal =      j-TOPLAS,
  volume =       "3",
  number =       "4",
  pages =        "508--532",
  month =        oct,
  year =         "1981",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Feather:1982:SAP,
  author =       "Martin S. Feather",
  title =        "A System for Assisting Program Transformation",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "1",
  pages =        "1--20",
  month =        jan,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/bevan.bib",
  abstract =     "Program transformation has been advocated as a
                 potentially appropriate methodology for program
                 development. The ability to transform large programs is
                 crucial to the practicality of such an approach. This
                 paper describes research directed towards applying one
                 particular transformation method to problems of
                 increasing scale. The method adopted is that developed
                 by Burstall and Darlington, and familiarity with their
                 work is assumed. The problems which arise when
                 attempting transformation of larger scale programs are
                 discussed, and an approach to overcoming them is
                 presented. Parts of the approach have been embodied in
                 a machine-based system which assists a user in
                 transforming his programs. The approach, and the use of
                 this system, are illustrated by presenting portions of
                 the transformation of a compiler for a ``toy''
                 language.",
  acknowledgement = ack-pb,
  checked =      "19940302",
  keywords =     "program development; program transformation",
  sjb =          "Manual transformation method i.e. the program has to
                 be told where to do the transformations.",
  source =       "Dept. Library",
}

@Article{Tanenbaum:1982:UPO,
  author =       "Andrew S. Tanenbaum and Hans {van Staveren} and Johan
                 W. Stevenson",
  title =        "Using Peephole Optimization on Intermediate Code",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "1",
  pages =        "21--36",
  month =        jan,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Mon Oct 26 07:58:22 1998",
  bibsource =    "Compiler/bevan.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  note =         "See remarks \cite{Pemberton:1983:TCT}.",
  abstract =     "Many portable compilers generate an intermediate code
                 that is subsequently translated into target machine's
                 assembly language. In this paper a stack-machine-based
                 intermediate code suitable for algebraic languages
                 (e.g., PASCAL, C, FORTRAN) and most byte-addressed
                 mini- and microcomputers is described. A table-driven
                 peephole optimizer that improves the intermediate code
                 is discussed in detail and compared with other local
                 optimization methods. Measurements show an improvement
                 of about 15 percent, depending on precise metrics
                 used.",
  acknowledgement = ack-pb,
  checked =      "19940302",
  keywords =     "abstract machine; intermediate code; peephole
                 optimizer",
  source =       "Dept. Library",
}

@Article{Misra:1982:TDD,
  author =       "Jayadev Misra and K. M. Chandy",
  title =        "Termination Detection of Diffusing Computations in
                 Communicating Sequential Processes",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "1",
  pages =        "37--43",
  month =        jan,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/bevan.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  abstract =     "In this paper it is shown how the Dijkstra-Scholten
                 scheme for termination detection in a diffusing
                 computation can be adapted to detect termination or
                 deadlock in a network of communicating sequential
                 processes as defined by Hoare.",
  acknowledgement = ack-pb,
  checked =      "19940302",
  keywords =     "diffusing computation; distributed systems; networks
                 of processes; termination detection",
  source =       "Dept. Library",
}

@Article{McGraw:1982:VLD,
  author =       "James R. McGraw",
  title =        "The {VAL} Language: Description and Analysis",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "1",
  pages =        "44--82",
  month =        jan,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Parallel/par.dataflow.bib, Misc/Functional.bib,
                 Compiler/Compiler.Lins.bib, Compiler/TOPLAS.bib,
                 Compiler/bevan.bib",
  abstract =     "VAL is a high-level, function-based language designed
                 for use on data flow computers. A data flow computer
                 has many small processors organized to cooperate in the
                 execution of a single computation. A computation is
                 represented by its data flow graph; each operator in a
                 graph is scheduled for execution on one of the
                 processors after all of its operands' values are known.
                 VAL promotes the identification of concurrency in
                 algorithms and simplifies the mapping into data flow
                 graphs. This paper presents a detailed introduction to
                 VAL and analyzes its usefulness for programming in a
                 highly concurrent environment. VAL provides {\em
                 implicit concurrency\/} (operations that can execute
                 simultaneously are evident without the need for any
                 explicit language notation). The language uses
                 function- and expression-based features that prohibit
                 all side effects, which simplifies translation to
                 graphs. The salient language features are described and
                 illustrated through examples taken from a complete VAL
                 program for adaptive quadrature. Analysis of the
                 language shows that VAL meets the critical needs for a
                 data flow environment. The language encourages
                 programmers to think in terms of general concurrency,
                 enhances readability (due to the absence of side
                 effects), and possesses a structure amenable
                 verification techniques. However, VAL is still
                 evolving. The language definition needs refining, and
                 more support tools for programmer use need to be
                 developed. Also, some new kinds of optimization
                 problems should be addressed.",
  acknowledgement = ack-pb,
  checked =      "19940302",
  keywords =     "applicative languages; concurrent programming
                 structures; data-flow languages; design; functional;
                 languages",
  source =       "Dept. Library",
}

@Article{Hoffman:1982:PE,
  author =       "Christoph M. Hoffman and Michael J. O'Donnell",
  title =        "Programming with Equations",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "1",
  pages =        "83--112",
  month =        jan,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/bevan.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  abstract =     "Equations provide a convenient notation for defining
                 many computations, for example, for programming
                 language interpreters. This paper illustrates the
                 usefulness of equational programs, describes the
                 problems involved in implementing equational programs,
                 and investigates practical solutions to those problems.
                 The goal of the study is a system to automatically
                 transform a set of equations into an efficient program
                 which exactly implements the logical meaning of the
                 equations. This logical meaning may be defined in terms
                 of the traditional mathematical interpretation of
                 equations, without using advanced computing concepts.",
  acknowledgement = ack-pb,
  checked =      "19940302",
  keywords =     "equations; interpreters; nonprocedural languages;
                 term-rewriting systems",
  sjb =          "Includes code for a 2-3 tree.",
}

@Article{Williams:1982:FNS,
  author =       "M. Howard Williams",
  title =        "A Flexible Notation for Syntactic Definitions",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "1",
  pages =        "113--119",
  month =        jan,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jun 8 13:21:42 1984",
  bibsource =    "Compiler/compiler.bib, Compiler/bevan.bib",
  abstract =     "In view of the proliferation of notations for defining
                 the syntax of programming languages, it has been
                 suggested that a simple notation should be adopted as a
                 standard. However, any notation adopted as a standard
                 should also be as versatile as possible. For this
                 reason, a notation is presented here which is both
                 simple and versatile and which has additional benefits
                 when specifying the static semantic rules of a
                 language.",
  acknowledgement = ack-pb,
  checked =      "19940302",
  keywords =     "BNF; syntax",
  sjb =          "Suggests some additions to Wirth's notation to capture
                 some commonly required constraints such as ``maximum
                 length of an identifier is $X$'', ``$X$ can be repeated
                 $Y$ times''. The ``simple and versatile'' notation is
                 just Wirth's EBNF augmented with affixes/attributes.
                 Ends with the following ``It is hoped that this paper
                 will not be viewed simply as a presentation of yet
                 another notation for syntactic definitions. The main
                 purpose of the paper has been to look closely at the
                 advantages of the notation proposed, and it is hoped
                 that in the future, before adopting any syntactic
                 notation, readers will give careful consideration to
                 the advantages of such a notation and avoid the
                 introduction of new notations or variations on existing
                 ones unless the advantages can be clearly spelled
                 out.''",
}

@Article{Ellis:1982:TCS,
  author =       "John R. Ellis",
  title =        "Technical Correspondence: On {Steensgaard-Madsen}'s
                 ``{A Statement-Oriented Approach to Data
                 Abstraction}''",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "1",
  pages =        "120--122",
  month =        jan,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 13:08:12 1996",
  bibsource =    "Compiler/bevan.bib",
  note =         "See
                 \cite{Steensgaard-Madsen:1981:SOA,Steensgaard-Madsen:1982:SMR}",
  checked =      "19940302",
  sjb =          "Points out that Madsen's ``new'' approach already
                 exists in languages like Smalltalk and Scheme.",
}

@Article{Steensgaard-Madsen:1982:SMR,
  author =       "J. Steensgaard-Madsen",
  title =        "Technical Correspondence: {Steensgaard-Madsen}'s
                 reply",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "1",
  pages =        "122--123",
  month =        jan,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/bevan.bib",
  note =         "See
                 \cite{Steensgaard-Madsen:1981:SOA,Ellis:1982:TCS}.",
  checked =      "19940302",
  sjb =          "Admits ignorance of Scheme and Smalltalk, but doggedly
                 clings to the idea that his approach is new.",
}

@Article{Schneider:1982:SDP,
  author =       "Fred B. Schneider",
  title =        "Synchronization in Distributed Programs",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "2",
  pages =        "125--148",
  month =        apr,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/bevan.bib",
  abstract =     "A technique for solving synchronization problems in
                 distributed programs is described. Use of this
                 technique in environments in which processes may fail
                 is discussed. The technique can be used to solve
                 synchronization problems directly, to implement new
                 synchronization mechanisms (which are presumably well
                 suite for use in distributed programs), and to
                 construct distributed versions of existing
                 synchronization mechanisms. use of the technique is
                 illustrated with implementations of distributed
                 semaphores and a conditional message-passing
                 facility.",
  acknowledgement = ack-pb,
  checked =      "19940302",
  keywords =     "logical clocks",
  source =       "Dept. Library",
}

@Article{Holt:1982:ISS,
  author =       "Richard C. Holt and J. R. Cordy and David B. Wortman",
  title =        "An Introduction to {S/SL}: {Syntax\slash Semantic
                 Language}",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "2",
  pages =        "149--178",
  month =        apr,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 18:36:33 1996",
  bibsource =    "Compiler/bevan.bib, Compiler/TOPLAS.bib,
                 Compiler/Compiler.Lins.bib",
  abstract =     "S/SL (Syntax/Semantic Language) is a language that was
                 developed for implementing compilers. A subset called
                 SL (Syntax Language) has the same recognition power as
                 do LR(k) parsers. Complete S/SL includes invocation of
                 semantic operations implemented in another language
                 such as PASCAL. S/SL implies a top-down programming
                 methodology. First, a data-free algorithm is developed
                 in S/SL. The algorithm invokes operations on ``semantic
                 mechanisms.'' A semantic mechanism is an abstract
                 object, specified, from the point of view of the S/SL,
                 only by the effect of operations upon the object.
                 Later, the mechanisms are implemented apart from the
                 S/SL program. The separation of the algorithm from the
                 data and the division of data into mechanisms reduce
                 the effort needed to understand and maintain the
                 resulting software. S/SL has been used to construct
                 compilers for SPECKLE (a PL/I subset), PT (a PASCAL
                 subset), Toronto EUCLID, and Concurrent EUCLID. It has
                 been used to implement scanners, parser, semantic
                 analyzers, and code generators. S/SL programs are
                 implemented by translating them into tables of
                 integers. A ``table walker'' program executes the S/SL
                 program by interpreting this table. The translation of
                 S/SL programs into tables is performed by a program
                 called the S/SL processor. This processor serves a
                 function analogous to that served by an LR(k) parser
                 generator. The implementation of S/SL is simple and
                 portable. It is available in a small subset of PASCAL
                 that can be easily transliterated into other high-level
                 languages.",
  acknowledgement = ack-pb,
  checked =      "19940302",
  keywords =     "design languages; LR(k)",
  source =       "Dept. Library",
}

@Article{Soisalon-Soininen:1982:IEE,
  author =       "Eljas Soisalon-Soininen",
  title =        "Inessential Error Entries and Their Use in {LR} Parser
                 Optimization",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "2",
  pages =        "179--195",
  month =        apr,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/bevan.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  note =         "See \cite{LaLonde:1984:TCC}.",
  abstract =     "The use of ``default reductions'' in implementing LR
                 parsers is considered in conjunction with the desire to
                 decrease the number of states of the parser by making
                 use of ``don't care'' (also called ``inessential'')
                 error entries. Default reduction are those which are
                 performed independently of the lookahead string when
                 other operations do not apply, and their use can lead
                 to substantial savings in space and time. Don't-care
                 error entries of an LR parser are those which are never
                 consulted, and thus they can be arbitrarily replaced by
                 nonerror entries in order to make a state compatible
                 with another one. Determining don't-care error entries
                 is most important in avoiding the growth of the sie of
                 the parser when eliminating reductions by single
                 productions, that is, productions for which the
                 right-hand side is a single symbol. The use of default
                 reductions diminishes don't-care entries. This effect
                 is analyzed by giving a necessary and sufficient
                 condition for an error entry to be don't care when
                 default reductions are used. As an application,
                 elimination of reductions by single productions in
                 conjunction with the use of default reductions is
                 considered.",
  acknowledgement = ack-pb,
  checked =      "19940302",
  keywords =     "default reductions; don't-care error entries; LR(k);
                 single productions",
  source =       "Dept. Library",
}

@Article{Sharir:1982:SOC,
  author =       "Micha Sharir",
  title =        "Some Observations Concerning Formal Differentiation of
                 Set Theoretic Expressions",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "2",
  pages =        "196--225",
  month =        apr,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Wetherell:1982:EDV,
  author =       "C. S. Wetherell",
  title =        "Error Data Values in the Data-Flow Language {VAL}",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "2",
  pages =        "226--238",
  month =        apr,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/bevan.bib",
  abstract =     "The data-flow architecture is intended to support
                 large scientific computations, and VAL is an algebraic,
                 procedural language for use on a data-flow computer.
                 VAL is Apt for numerical computations but requires an
                 error monitoring feature that can be used to diagnose
                 and correct errors arising during program execution.
                 Traditional monitoring methods (software traps and
                 condition codes) are inappropriate for VAL; instead VAL
                 includes a set of error data values and an algebra for
                 their manipulation. The error data values and their
                 algebra are described an assessed; the conclusion is
                 that error values provide a clean way for a high-level
                 language to handle numeric (and some other) errors.",
  acknowledgement = ack-pb,
  checked =      "19940302",
  keywords =     "applicative languages; computer arithmetic; data-flow
                 architectures; data-flow languages; design; error
                 handling and recovery; languages",
  sjb =          "easy read",
  source =       "Dept. Library",
}

@Article{Fateman:1982:HLL,
  author =       "Richard J. Fateman",
  title =        "High-Level Language Implications of the Proposed
                 {IEEE} Floating-Point Standard",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "2",
  pages =        "239--257",
  month =        apr,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/bevan.bib",
  abstract =     "An IEEE Computer Society working group on
                 floating-point arithmetic has recommended a standard
                 for binary floating-point number formats, operations,
                 and semantics. This paper, which has evolved in part
                 during the deliberations of that committee, describes
                 the significance to languages and, in particular, to
                 FORTRAN and its variants, of various novel features of
                 the recommended standard.",
  acknowledgement = ack-pb,
  checked =      "19940302",
  keywords =     "computer arithmetic; control structures; data types
                 and structures; error handling and recovery;
                 floating-point arithmetic; FORTRAN; run-time
                 environments",
  source =       "Dept. Library",
}

@Article{Martelli:1982:EUA,
  author =       "Alberto Martelli and Ugo Montanari",
  title =        "An Efficient Unification Algorithm",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "2",
  pages =        "258--282",
  month =        feb,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/prog.lang.theory.bib, Compiler/TOPLAS.bib,
                 Ai/prolog.1.bib, Compiler/Compiler.Lins.bib,
                 Compiler/bevan.bib,
                 Misc/formal.hardware.verification.bib",
  abstract =     "The unification problem in first-order predicate
                 calculus is described in general terms as the solution
                 of a system of equations, and a nondeterministic
                 algorithm is given. A new unification algorithm,
                 characterized by having the acyclicity test efficiently
                 embedded into it, is derived from the nondeterministic
                 one, and a PASCAL implementation is given. A comparison
                 with other well-known unification algorithms shows that
                 the algorithm described here performs well in all
                 cases.",
  acknowledgement = ack-pb,
  checked =      "19940302",
  keywords =     "algorithms; complexity of proof procedures; languages;
                 logic; mechanical theorem proving; performance; prolog;
                 resolution; theory",
  source =       "Dept. Library",
}

@Article{Ashcroft:1982:BRS,
  author =       "E. A. Ashcroft and W. W. Wadge",
  title =        "{\bf R}$_{\!\!\!\mbox{\raisebox{.5ex}{\tiny /}}}$ for
                 Semantics",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "2",
  pages =        "283--294",
  month =        apr,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/bevan.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  abstract =     "A constructive criticism of recent work in the
                 semantics of programming languages is offered. The
                 criticism is directed not so much at the techniques and
                 results obtained as at the use to which they are put.
                 The fact that denotational (or ``mathematical'')
                 semantics plays on the whole a passive
                 (``descriptive'') role, while operational semantics
                 plays on the whole an active (``prescriptive'') role,
                 is seen as the basic problem. It is suggested that
                 these roles be reversed.",
  acknowledgement = ack-pb,
  checked =      "19940302",
  keywords =     "denotational semantics; operational semantics;
                 semantics; theory",
  sjb =          "Easy read. Note the format of the title is taken the
                 ACM TOPLAS bibliography maintained by
                 preston@cs.rice.edu",
  source =       "Dept. Library",
}

@Article{Arsac:1982:STR,
  author =       "J. Arsac and Y. Kodratoff",
  title =        "Some Techniques for Recursion Removal from Recursive
                 Functions",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "2",
  pages =        "295--322",
  month =        apr,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/bevan.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  abstract =     "Three different techniques that can be used for
                 recursion removal are described: generalization of the
                 function definition, study of the computation traces of
                 the function, and nonprocedural languages. Despite the
                 existence of implemented versions of these techniques,
                 they are easy to use ``by hand'' and should therefore
                 be part of every programmers knowledge.",
  acknowledgement = ack-pb,
  checked =      "19940302",
  keywords =     "computation trace; denotational semantics; operational
                 semantics; recursion removal; semantics; tail
                 recursion",
  sjb =          "Gets a bit heavy in places, but on the whole quite
                 readable.",
  source =       "Dept. Library",
}

@Article{Hennessy:1982:SDO,
  author =       "John L. Hennessy",
  title =        "Symbolic Debugging of Optimized Code",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "3",
  pages =        "323--344",
  month =        jul,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 6 14:20:25 1996",
  bibsource =    "Compiler/bevan.bib",
  note =         "See remark \cite{Copperman:1993:TCF}.",
  abstract =     "The long-standing conflict between code optimization
                 and symbolic debugging is examined. The effects of
                 local and global optimizations on the variables of a
                 program are categorized, and models for representing
                 the effect of optimizations are given. Algorithms use
                 these models to determine the subset of variables hose
                 values do not correspond to those in the original
                 program. Restoring these variables to their correct
                 values is investigated, and empirical results from the
                 application of these algorithms to local optimization
                 are also presented.",
  acknowledgement = ack-pb,
  checked =      "19940302",
  keywords =     "code generation optimization; debugging aids; directed
                 acyclic graphs; flow graphs; symbolic debugging",
  source =       "Dept. Library",
}

@Article{Sipala:1982:CSB,
  author =       "Paolo Sipala",
  title =        "Compact Storage of Binary Trees",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "3",
  pages =        "345--361",
  month =        jul,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Broy:1982:CAA,
  author =       "Manfred Broy and Peter Pepper",
  title =        "Combining Algebraic and Algorithmic Reasoning: An
                 Approach to the {Schorr-Waite} Algorithm",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "3",
  pages =        "362--381",
  month =        jul,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/bevan.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  abstract =     "The basic idea of the Schorr-Waite graph-marking
                 algorithm can be precisely formulated, explained, and
                 verified in a completely applicative (functional)
                 programming style. Graphs are specified algebraically
                 as objects of an abstract data type. When formulating
                 recursive programs over such types, one can combine
                 algebraic and algorithmic reasoning: An applicative
                 depth-first-search algorithm is derived from a
                 mathematical specification by applying properties of
                 reflexive, transitive closures of relations. This
                 program is then transformed in several steps into a
                 final procedural version with the help of both
                 algebraic properties of graphs and algorithmic
                 properties reflected in the recursion structure of the
                 program.",
  acknowledgement = ack-pb,
  checked =      "19940302",
  keywords =     "abstract data types; algorithms; applicative
                 (functional) programming; languages; program
                 transformation; verification",
  source =       "Dept. Library",
}

@Article{Lamport:1982:BGP,
  author =       "Leslie Lamport and Robert Shostak and Marshall Pease",
  title =        "The {Byzantine} Generals Problem",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "3",
  pages =        "382--401",
  month =        jul,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Oct 17 12:24:31 1998",
  bibsource =    "Theory/ProbAlgs.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib, Compiler/bevan.bib,
                 Database/dbase.bib",
  note =         "They proved that Byzantine agreement (the subject of
                 Section~\ref{sec-byzantine}) cannot be reached unless
                 fewer than one-third of the processes are faulty. This
                 result assumes that authentication, i.e., the crypting
                 of messages to make them unforgeable, is not used. With
                 unforgeable messages, they show that the problem is
                 solvable for any $n \geq t > 0$, where $n$ is the total
                 number of processes and $t$ is the number of faulty
                 processes.",
  abstract =     "Reliable computer systems must handle malfunctioning
                 components that give conflicting information to
                 different parts of the system. This situation can be
                 expressed abstractly in terms of a group of generals of
                 the Byzantine army camped with their troops around an
                 enemy city. Communicating only by messenger, the
                 generals must agree upon a common battle plan. However,
                 one or more of them may be traitors who will try and
                 confuse the others. The problem is to find an algorithm
                 to ensure that the loyal generals will reach agreement.
                 It is shown that, using only oral messages, this
                 problem is solvable if and only if more than two-thirds
                 of the generals are loyal; so a single traitor can
                 confound two loyal generals. With unforgeable written
                 messages, the problem is solvable for any number of
                 generals and possible traitors. Applications of the
                 solutions to reliable computer systems are then
                 discussed.",
  acknowledgement = ack-pb,
  checked =      "19940302",
  keywords =     "fault tolerance; interactive consistency; network
                 communications; network operating systems;
                 reliability",
  source =       "Dept. Library",
}

@Article{Paige:1982:FDC,
  author =       "Robert Paige and Shaye Koenig",
  title =        "Finite Differencing of Computable Expressions",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "3",
  pages =        "402--454",
  month =        jul,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/bevan.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  abstract =     "Finite differencing is a program optimization method
                 that generalizes strength reduction, and provides an
                 efficient implementation for a host of program
                 transformations including ``iterator inversion.''
                 Finite differencing is formally specified in terms of
                 more basic transformations shown to preserve program
                 semantics. Estimates of the speedup that the technique
                 yields are given. A full illustrative example of the
                 algorithm is given.",
  acknowledgement = ack-pb,
  checked =      "19940302",
  keywords =     "algorithms; automatic programming; computations on
                 discrete structures; differentiable expression;
                 languages; optimization; program transformation; SETL;
                 theory; verification; very high-level languages",
  source =       "Dept. Library",
}

@Article{Owicki:1982:PLP,
  author =       "Susan Owicki and Leslie Lamport",
  title =        "Proving Liveness Properties of Concurrent Programs",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "3",
  pages =        "455--495",
  month =        jul,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/bevan.bib, Compiler/Compiler.Lins.bib,
                 Ai/nonmono.bib, Compiler/TOPLAS.bib",
  abstract =     "A liveness property asserts that program execution
                 eventually reaches some desirable state. While
                 termination has been studied extensively, many other
                 liveness properties are important for concurrent
                 programs. A formal proof method, based on temporal
                 logic, for deriving liveness properties is presented.
                 It allows a rigorous formulation of simple informal
                 arguments. How to reason with temporal logic and how to
                 use safety (invariance) properties in proving liveness
                 is shown. The method is illustrated using, first, a
                 simple programming language without synchronization
                 primitives, then one with semaphores. However, it is
                 applicable to any programming language.",
  acknowledgement = ack-pb,
  checked =      "19940302",
  keywords =     "concurrent programming; fairness; languages; liveness;
                 multiprocessing; program verification; proof of
                 correctness; semantics of programming languages;
                 synchronization; temporal logic; theory; verification",
  source =       "Dept. Library",
}

@Article{Wand:1982:DTC,
  author =       "Mitchell Wand",
  title =        "Deriving Target Code as a Representation of
                 Continuation Semantics",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "3",
  pages =        "496--517",
  month =        jul,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/bevan.bib",
  abstract =     "Reynolds' technique for deriving interpreters is
                 extended to derive compilers from continuation
                 semantics. The technique starts by eliminating
                 $\lambda$-variables from the semantic equations through
                 the introduction of special-purpose combinators. The
                 semantics of a program phrase may be represented by a
                 term built from these combinators. Then associative and
                 distributive laws are used to simplify the terms. Last,
                 a machine is built to interpret the simplified terms as
                 the functions they represent. The combinators reappear
                 as the instructions of this machine. The technique is
                 illustrated with three examples.",
  acknowledgement = ack-pb,
  checked =      "19940302",
  keywords =     "code generation; combinators; compilers;
                 continuations; denotational semantics; lambda calculus;
                 semantics",
  sjb =          "excellent paper",
  source =       "Dept. Library",
}

@Article{Krogh:1982:AAP,
  author =       "Fred T. Krogh",
  title =        "{ACM} Algorithms Policy",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "3",
  pages =        "518--521",
  month =        jul,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 6 13:36:09 1996",
  bibsource =    "Misc/IMMD_IV.bib",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:1982:IA,
  author =       "Anonymous",
  title =        "Information for Authors",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "3",
  pages =        "522--525",
  month =        jul,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  acknowledgement = ack-pb,
}

@Article{Herlihy:1982:VTM,
  author =       "Maurice P. Herlihy and Barbara Liskov",
  title =        "A Value Transmission Method for Abstract Data Types",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "4",
  pages =        "527--551",
  month =        oct,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Thu May 26 15:49:48 1988",
  bibsource =    "Misc/programming.env.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib, Compiler/bevan.bib",
  abstract =     "Abstract data types have proved to be a useful
                 technique for structuring systems. In large systems it
                 is sometimes useful to have different regions of the
                 system use different representations for the abstract
                 data values. A technique is described for communicating
                 abstract values between such regions. The method was
                 developed for use in constructing distributed systems,
                 where the regions exist at different computers and the
                 values are communicated over a network. The method
                 defines a call-by-value semantics; it is also useful in
                 nondistributed systems wherever call by value is the
                 desired semantics. An important example of such a use
                 is a repository, such as a file system, for storing
                 long lived data.",
  checked =      "19940302",
  keywords =     "abstract data types; call by value; data translation;
                 design; distributed systems; input/output; languages;
                 long-term storage.; message communications; message
                 sending",
  sjb =          "For every type that is to be transmitted, need to
                 define encode $:: T \rightarrow XT$, decode $:: XT
                 \rightarrow T$, from these, the ``system'' generates
                 transmit $:: T\rightarrow T$ and transmit $:: XT
                 \rightarrow XT$, where $XT$ is the external
                 representation. As an example of how $XT$ may differ
                 from $T$, in the case of 2D coordinates, $T$ might be
                 cartesian whereas $XT$ may be a variant containing
                 either cartesian or polar. Note that it is up to the
                 user to decide what to do about sharing e.g. to
                 structured types having a pointer to a third.",
  source =       "Dept. Library",
}

@Article{Holt:1982:MIE,
  author =       "Richard C. Holt and David B. Wortman",
  title =        "A Model for Implementing {Euclid} Modules and
                 Prototypes",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "4",
  pages =        "552--562",
  month =        oct,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/bevan.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  abstract =     "The PASCAL-based programming language EUCLID was
                 designed for use in implementing verifiable systems
                 software. The design of EUCLID includes many novel
                 extensions, including a module mechanism and a
                 substantial generalization of the PASCAL type
                 mechanism. This paper presents an implementation model
                 for two of these extensions: modules and parameterized
                 type definitions (prototypes).",
  acknowledgement = ack-pb,
  checked =      "19940302",
  keywords =     "abstract data types; data types and structures;
                 EUCLID; packages; run-time environments; systems
                 implementation language",
  sjb =          "Amongst other things discusses how to compile generics
                 e.g. macro vs. shared.",
  source =       "Dept. Library",
}

@Article{Griswold:1982:EEI,
  author =       "Ralph E. Griswold",
  title =        "The Evaluation of Expressions in {Icon}",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "4",
  pages =        "563--584",
  month =        oct,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/bevan.bib",
  abstract =     "Expressions in the Icon programming language may be
                 {\em conditional}, possibly producing no result, or
                 they may be {\em generators}, possibly producing a
                 sequence of results. Generators, coupled with a goal
                 directed evaluation mechanism, provide a concise method
                 for expression many complex computations. This paper
                 describes the evaluation of expressions in Icon and
                 presents an Icon program that explicates the semantics
                 of expression evaluation. This program also provides an
                 executable ``formalism'' that can be used as a tool to
                 design and test changes and additions to the
                 language.",
  acknowledgement = ack-pb,
  checked =      "19940302",
  keywords =     "control structures; Icon; interpreters; semantics",
  source =       "Dept. Library",
}

@Article{Gergeron:1982:SAS,
  author =       "J. Gergeron and A. Dubuque",
  title =        "A Structured {APL} System",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "4",
  pages =        "585--600",
  month =        oct,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/bevan.bib",
  abstract =     "A structured APL system introducing several
                 interesting features is described. The APL group
                 concept has been considerably extended to yield a new
                 type of APL object called a segment. Segments
                 constitute the basic building blocks used to manage
                 memory and build up the workspace and the user's
                 library. The encapsulation capability provides a
                 unified scheme for handling variables, functions and
                 other APL objects, including files. A new structured
                 user library is proposed. The dynamic call of objects
                 during a terminal session links the user library to the
                 workspace. New types of variables are described along
                 with solutions to interesting problems based on them.",
  checked =      "19940302",
  keywords =     "APL; segmentation; software libraries; workspace",
  source =       "Dept. Library",
}

@Article{Baker:1982:OPA,
  author =       "T. P. Baker",
  title =        "A One-Pass Algorithm for Overload Resolution in
                 {Ada}",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "4",
  pages =        "601--614",
  month =        oct,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/bevan.bib",
  abstract =     "A simple method is presented for detecting ambiguities
                 and finding the correct interpretations of expressions
                 in the programming language Ada. Unlike previously
                 reported solutions to this problem, which require
                 multiple passes over a tree structure, the method
                 described here operates in one bottom-up pass, during
                 which a directed acyclic graph is produced. The
                 correctness of this approach is demonstrated by a brief
                 formal argument.",
  acknowledgement = ack-pb,
  checked =      "19940302",
  keywords =     "Ada; compilers; overloading; translators",
  source =       "Dept. Library",
}

@Article{DeRemer:1982:ECL,
  author =       "Frank DeRemer and Thomas Pennello",
  title =        "Efficient Computation of {LALR}(1) Look-Ahead Sets",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "4",
  pages =        "615--649",
  month =        oct,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat May 4 17:32:11 1996",
  bibsource =    "Compiler/bevan.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  abstract =     "Two relations that capture the essential structure of
                 the problem of computing LALR(1) look-ahead sets are
                 defined, an efficient algorithm is presented to compute
                 the sets in time linear in the size of the relations.
                 In particular, for a PASCAL grammar, the algorithm
                 performs fewer than 15 percent of the set unions
                 performed by the popular compiler-compiler YACC. When a
                 grammar is not LALR(1), the relations, represented
                 explicitly, provide for printing user-oriented error
                 messages that specifically indicate {\em how\/} the
                 look-ahead problem arose. In addition, certain loops in
                 the digraphs induced by these relations indicate that
                 the grammar is not LR($k$) for any $k$. Finally, on
                 oft-discovered and used but {\em incorrect\/}
                 look-ahead set algorithm is similarly based on two
                 other relations defined for the first time here. The
                 formal presentation of this algorithm should help
                 prevent its rediscovery.",
  acknowledgement = ack-pb,
  checked =      "19940302",
  keywords =     "Backus-Naur form; compiler generators; context-free
                 grammar; grammar debugging.; LALR(1); LR(k); parsing;
                 strongly connected component; syntax; translator
                 writing systems",
  source =       "Dept. Library",
}

@Article{Dewar:1982:TDG,
  author =       "Robert B. K. Dewar and Micha Sharir and Elia
                 Weixelbaum",
  title =        "Transformational Derivation of a Garbage Collection
                 Algorithm",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "4",
  pages =        "650--667",
  month =        oct,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/garbage.collection.bib,
                 Compiler/Compiler.Lins.bib, Compiler/bevan.bib",
  abstract =     "Transformational programming is a relatively new
                 programming technique intended to derive complex
                 algorithms automatically. Initially, a set of
                 transformational rules is described, and an initial
                 specification of the problem to be programmed is given.
                 The specification is written in a high-level language
                 in a fairly compact form possibly ignoring efficiency.
                 A number of versions, called transformations, are
                 created by successively applying the transformational
                 rules starting with the initial specification. As an
                 example of the application of this technique to a
                 fairly complex case, a transformational derivation of a
                 variant of known efficient garbage collection and
                 compaction algorithm from an initial very high-level
                 specification is given. Currently, the techniques are
                 still being developed, and therefore the
                 transformations are derived manually. However, most of
                 the transformations done are of a technical nature and
                 could eventually be automated.",
  acknowledgement = ack-pb,
  checked =      "19940302",
  keywords =     "algorithms; automatic programming; design; formal
                 differentiation; garbage collection; languages; loop
                 fusion; program transformation; strength reduction.;
                 transformational programming; very high level
                 languages; wide-spectrum languages",
  source =       "Dept. Library",
}

@Article{Boom:1982:WPL,
  author =       "H. J. Boom",
  title =        "A Weaker Precondition for Loops",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "4",
  pages =        "668--677",
  month =        oct,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/bevan.bib",
  abstract =     "In his book, {\em A Discipline of Programming},
                 Dijkstra presents the skeleton for a programming
                 language and defines its semantics axiomatically using
                 predicate transformers. His language involves only
                 bounded nondeterminism. He shows that unbounded
                 nondeterminism is incompatible with his axioms and his
                 continuity principle, and he argues that this is no
                 drawback because unboundedly nondeterministic machines
                 cannot be built. This paper considers the question of
                 unbounded nondeterminism. A new predicate transformer
                 is derived to handle this. A proof is given that the
                 new transformer corresponds to operational semantics,
                 and an informal argument is given that unbounded
                 nondeterminism can be a useful programming concept even
                 in the absence of nondeterministic machines.",
  acknowledgement = ack-pb,
  checked =      "19940302",
  keywords =     "Ackermann's function; fair do loop; fair scheduling;
                 nondeterminism; predicate transformer; total
                 correctness; unbounded nondeterminism; weakest
                 precondition",
  source =       "Dept. Library",
}

@Article{Misra:1982:DGA,
  author =       "Jayadev Misra and K. M. Chandy",
  title =        "A Distributed Graph Algorithm: Knot Detection",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "4",
  pages =        "678--686",
  month =        oct,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/bevan.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  abstract =     "A {\em knot\/} is a directed graph is [sic] a useful
                 concept in deadlock detection. A distributed algorithm
                 for identifying a knot in a graph using a network of
                 processes is presented. The algorithm is based on the
                 work of Dijkstra and Scholten.",
  acknowledgement = ack-pb,
  checked =      "19940302",
  keywords =     "distributed algorithms; distributed applications;
                 graph algorithms; knot; message communication; network
                 operating systems; network problems; sequencing and
                 scheduling",
  source =       "Dept. Library",
}

@Article{Mallgren:1982:FSG,
  author =       "William R. Mallgren",
  title =        "Formal Specification of Graphic Data Types",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "4",
  pages =        "687--710",
  month =        oct,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/bevan.bib",
  abstract =     "Formal specification techniques and data abstractions
                 have seen little application to computer graphics. Many
                 of the objects and operations unique to graphics
                 programs can be handled conveniently by defining
                 special graphic data types. Not only do graphic data
                 types provide an attractive way to work with pictures,
                 but they also allow specification techniques for data
                 abstractions to be employed. Algebraic axioms, because
                 of their definitional nature, are especially well
                 suited to specifying the diversity of types useful in
                 graphics applications. In this paper, definitions are
                 given for some important concepts that appear in
                 graphics programs. Based on these definitions, some
                 illustrative graphic data types, called point, region,
                 geometric function, graphic transformation, and
                 tree-structured picture, are defined and specified
                 algebraically. A simple graphics language for line
                 drawings is created by embedding these new data types
                 in the language PASCAL. Using the specifications, an
                 outline of a correctness proof for a small programming
                 example is presented.",
  acknowledgement = ack-pb,
  checked =      "19940302",
  keywords =     "abstract data types; algebraic approaches to
                 semantics; correctness proofs; graphic data type;
                 languages; specification techniques; verification",
  sjb =          "readable",
  source =       "Dept. Library",
}

@Article{Thatcher:1982:DTS,
  author =       "J. W. Thatcher and E. G. Wagner and J. B. Wright",
  title =        "Data Type Specification: Parameterization and the
                 Power of Specification Techniques",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "4",
  pages =        "711--732",
  month =        oct,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/bevan.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  abstract =     "Our earlier work on abstract data types is extended by
                 the answers to a number of questions on the power and
                 limitations of algebraic specification techniques and
                 by a algebraic treatment of parameterized data types
                 like {\em set-of-(\ )\/} and {\em stacks-of(\ )}. The
                 ``hidden function'' problem (the need to include
                 operations in specifications which are wanted hidden
                 from the user) is investigated; the relative power of
                 conditional specifications and equational
                 specifications is investigated; and it is show that
                 parameterized specifications must contain ``side
                 conditions'' (e.g., that {\em finite-sets-of-d\/}
                 requires an equality predicate on $d$).",
  acknowledgement = ack-pb,
  checked =      "19940302",
  keywords =     "abstract data types; algebraic approaches to
                 semantics; algebraic specification; semantics; type
                 structure",
  sjb =          "Looks dated now",
  source =       "Dept. Library",
}

@Article{Williams:1982:DAF,
  author =       "John H. Williams",
  title =        "On the Development of the Algebra of Functional
                 Programs",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "4",
  pages =        "733--757",
  month =        oct,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/bevan.bib",
  abstract =     "The development of the algebraic approach to reasoning
                 about functional programs that was introduced by Backus
                 in his Turing Award Lecture is furthered. Precise
                 definitions for the foundations on which the algebra is
                 based are given, and some new expansion theorems that
                 broaden the class of functions for which this approach
                 is applicable are proved. In particular, the class of
                 ``overrun-tolerant'' forms, nonlinear forms that
                 include some of the familiar divide-and-conquer program
                 schemes, are defined; an expansion theorem for such
                 forms is proved; and that theorem is used to show how
                 to derive expansions for some programs defined by
                 nonlinear forms.",
  acknowledgement = ack-pb,
  checked =      "19940302",
  keywords =     "algebraic approaches to semantics; applicative
                 (functional) programming; correctness proofs;
                 functional constructs; semantics; transformations",
  sjb =          "Looks dated now",
  source =       "Dept. Library",
}

@Article{Peterson:1982:UAC,
  author =       "Gary L. Peterson",
  title =        "An {$O(n\log{n})$} Unidirectional Algorithm for the
                 Circular Extrema Problem",
  journal =      j-TOPLAS,
  volume =       "4",
  number =       "4",
  pages =        "758--762",
  month =        oct,
  year =         "1982",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Theory/ProbAlgs.bib",
  note =         "Peterson presents a deterministic distributed
                 algorithm for finding the largest of a set of $n$
                 uniquely numbered processes in a ring. The algorithm
                 requires $O(n \log n)$ messages in the worst case, and
                 is unidirectional. The number of processes is not
                 initially known.",
  acknowledgement = ack-pb,
}

@Article{Merlin:1983:CSS,
  author =       "Philip Merlin and Gregor V. Bochmann",
  title =        "On the Construction of Submodule Specifications and
                 Communication Protocols",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "1",
  pages =        "1--25",
  month =        jan,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Freudenberger:1983:ESO,
  author =       "Stefan M. Freudenberger and Jacob T. Schwartz and
                 Micha Sharir",
  title =        "Experience with the {SETL} Optimizer",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "1",
  pages =        "26--45",
  month =        jan,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Peterson:1983:CRW,
  author =       "Gary L. Peterson",
  title =        "Concurrent Reading While Writing",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "1",
  pages =        "46--55",
  month =        jan,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Peterson:1983:NSL,
  author =       "Gary L. Peterson",
  title =        "A New Solution to {Lamport}'s Concurrent Programming
                 Problem Using Small Shared Variables",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "1",
  pages =        "56--65",
  month =        jan,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Database/Wiederhold.bib",
  acknowledgement = ack-pb,
  annote =       "Immune to process failures and restarts.",
}

@Article{Gallager:1983:DAM,
  author =       "R. G. Gallager and P. A. Humblet and P. M. Spira",
  title =        "A Distributed Algorithm for Minimum-Weight Spanning
                 Trees",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "1",
  pages =        "66--77",
  month =        jan,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Kieburtz:1983:ARE,
  author =       "Richard B. Kieburtz and Abraham Silberschatz",
  title =        "Access-Right Expressions",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "1",
  pages =        "78--96",
  month =        jan,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Kamin:1983:FDT,
  author =       "Samuel Kamin",
  title =        "Final Data Types and Their Specification",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "1",
  pages =        "97--121",
  month =        jan,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 6 11:07:03 1996",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Henderson:1983:TCL,
  author =       "Peter B. Henderson",
  title =        "Technical Correspondence: On {LaLonde} and {des
                 Rivieres}' ``{Handling Operator Precedence in
                 Arithmetic Expressions with Tree Transformations}''",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "1",
  pages =        "122--122",
  month =        jan,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  note =         "See \cite{LaLonde:1981:HOP,LaLonde:1983:TCL}.",
  acknowledgement = ack-pb,
}

@Article{LaLonde:1983:TCL,
  author =       "Wilf R. LaLonde",
  title =        "Technical Correspondence: {LaLonde}'s Reply",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "1",
  pages =        "122--122",
  month =        jan,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  note =         "See \cite{LaLonde:1981:HOP,Henderson:1983:TCL}.",
  acknowledgement = ack-pb,
}

@Article{Reiss:1983:GCS,
  author =       "Steven P. Reiss",
  title =        "Generation of Compiler Symbol Processing Mechanisms
                 from Specifications",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "2",
  pages =        "127--163",
  month =        apr,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Thu Jul 28 16:03:28 1983",
  bibsource =    "Compiler/compiler.bib",
  acknowledgement = ack-pb,
  annote =       "Compiler symbol processing has become complex as
                 programming languages have evolved. In this paper we
                 describe a comprehensive model of symbol processing,
                 and a system that uses this model to generate the
                 symbol processing portions of a compiler from simple
                 specifications. The model supports a variety of
                 entities with different types of names. It includes a
                 detailed view of scoping. It provides a simple picture
                 of the complex mapping from a source token to a
                 specific entity. The model is illustrated with examples
                 from Ada. The system is divided into two parts. The
                 first takes a nonprocedural description of the
                 semantics of symbols in the language and produces a
                 symbol table module for a compiler in that language.
                 The second supports a simple symbol processing language
                 that allows the easy connection of syntax and semantic
                 processing to the symbol module. [abstract]",
}

@Article{Gottlieb:1983:BTE,
  author =       "Allan Gottlieb and Boris D. Lubachevsky and Larry
                 Rudolph",
  title =        "Basic Techniques for the Efficient Coordination of
                 Very Large Numbers of Cooperating Sequential
                 Processors",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "2",
  pages =        "164--189",
  month =        apr,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Database/Graefe.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  acknowledgement = ack-pb,
  keywords =     "glr acm toplas",
}

@Article{Lamport:1983:SCP,
  author =       "Leslie Lamport",
  title =        "Specifying Concurrent Program Modules",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "2",
  pages =        "190--222",
  month =        apr,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Buckley:1983:EIG,
  author =       "G. N. Buckley and Abraham Silberschatz",
  title =        "An Effective Implementation for the Generalized
                 Input-Output Construct of {CSP}",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "2",
  pages =        "223--235",
  month =        apr,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Theory/ProbAlgs.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib, Database/dbase.bib",
  note =         "They present a distributed algorithm for CSP output
                 guards based on priority ordering of processes. Their
                 algorithm has the property that two processes that can
                 communicate and do not establish communication with a
                 third process will communicate within a bounded time.",
  acknowledgement = ack-pb,
}

@Article{Maher:1983:API,
  author =       "B. Maher and D. H. Sleeman",
  title =        "Automatic Program Improvement: Variable Usage
                 Transformations",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "2",
  pages =        "236--264",
  month =        apr,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Thu Jul 28 16:27:08 1983",
  bibsource =    "Compiler/compiler.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  acknowledgement = ack-pb,
  annote =       "The design of the Leeds Transformation System is to
                 transform existing programs, written in a variety of
                 languages, into `tidier' programs. The total system was
                 conceived of as having three phases: syntactic
                 transformations, variable usage transformations, and
                 synthesizing features. Because programmers vary greatly
                 in what they consider to be a more acceptable form, we
                 have aimed to make the system as data driven as
                 possible. (That also enables us to deal with a variety
                 of programming languages.) The paper reviews the first
                 two phases, reports the second in some detail, and
                 illustrates the use of the system on an ALGOL 60
                 program. Redundant assignments, redundant variables,
                 and loop-invariant statements are discovered by means
                 of a novel approach which represents variable usage
                 within a program as a correspondence matrix. Potential
                 enhancements of the system are also discussed.
                 [abstract]",
}

@Article{Cohen:1983:ERR,
  author =       "Norman H. Cohen",
  title =        "Eliminating Redundant Recursive Calls",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "3",
  pages =        "265--299",
  month =        jul,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Dekel:1983:PGP,
  author =       "Eliezer Dekel and Sartaj Sahni",
  title =        "Parallel Generation of Postfix and Tree Forms",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "3",
  pages =        "300--317",
  month =        jul,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Gazinger:1983:PSP,
  author =       "Harald Gazinger",
  title =        "Parameterized Specifications: Parameter Passing and
                 Implementation with Respect to Observability",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "3",
  pages =        "318--354",
  month =        jul,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{DeMillo:1983:GEI,
  author =       "Richard A. DeMillo",
  title =        "{Guest Editor}'s Introduction",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "3",
  pages =        "355--355",
  month =        jul,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 13:32:11 1996",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Hart:1983:TPC,
  author =       "Sergiu Hart and Micha Sharir and Amir Pnueli",
  title =        "Termination of Probabilistic Concurrent Program",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "3",
  pages =        "356--380",
  month =        jul,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Liskov:1983:GAL,
  author =       "Barbara Liskov and Robert Scheifler",
  title =        "Guardians and Actions: Linguistic Support for Robust,
                 Distributed Programs",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "3",
  pages =        "381--404",
  month =        jul,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Object/Nierstrasz.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  acknowledgement = ack-pb,
  keywords =     "olit-oopl argus guardians transactions",
}

@Article{Lipton:1983:VLP,
  author =       "Richard J. Lipton and Jacobo Valdes and Gopalakrishnan
                 Vijayen and Stephen C. Notth and Robert Sedgewick",
  title =        "{VLSI} Layout as Programming",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "3",
  pages =        "405--421",
  month =        jul,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/vlsi.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  abstract =     "The first component of a VLSI design environment being
                 built at Princeton University is described. The general
                 theme of this effort is to make the design of VLSI
                 circuits as similar to programming as possible. The
                 attempt is to build tools that do for the VLSI circuit
                 designer what the best software tools do for the
                 implementor of large software systems.",
  acknowledgement = ack-pb,
  annote =       "This paper describes ALI, a procedural language to
                 describe layouts. The main feature of ALI is that it
                 allows its user to design layouts at a conceptual level
                 at which neither sizes nor positions (absolute or
                 relative) of layout components may be specified. ALI is
                 similar to IDEAL in both design and implementation, in
                 that both use a strongly-typed variant of Pascal (or
                 C), both solve a set of linear inequalities to
                 determine the final positions of the elements, and both
                 support hierarchies through the use of procedures.",
  owner =        "Rick Snodgrass",
}

@Article{Hennessy:1983:PCO,
  author =       "John L. Hennessy and Thomas Gross",
  title =        "Postpass Code Optimization of Pipeline Constraints",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "3",
  pages =        "422--448",
  month =        jul,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Reps:1983:ICD,
  author =       "Thomas Reps and Tim Teitelbaum and Alan Demers",
  title =        "Incremental Context-Dependent Analysis for
                 Language-Based Editors",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "3",
  pages =        "449--477",
  month =        jul,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib, Compiler/TOPLAS.bib",
  acknowledgement = ack-pb,
}

@Article{Giegerich:1983:FFD,
  author =       "Robert Giegerich",
  title =        "A Formal Framework for the Derivation of
                 Machine-Specific Optimizers",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "3",
  pages =        "478--498",
  month =        jul,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Pemberton:1983:TCT,
  author =       "Steven Pemberton",
  title =        "Technical Correspondence: On {Tanenbaum}, {van
                 Staveren}, and {Stevenson}'s ``{Using Peephole
                 Optimization on Intermediate Code}''",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "3",
  pages =        "499--499",
  month =        jul,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  note =         "See \cite{Tanenbaum:1982:UPO,Tanenbaum:1983:TCT}.",
  acknowledgement = ack-pb,
}

@Article{Tanenbaum:1983:TCT,
  author =       "Andrew S. Tanenbaum",
  title =        "Technical Correspondence: {Tanenbaum}'s Reply",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "3",
  pages =        "499--500",
  month =        jul,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  note =         "See \cite{Tanenbaum:1982:UPO,Pemberton:1983:TCT}.",
  acknowledgement = ack-pb,
}

@Article{Moitra:1983:TCA,
  author =       "Abha Moitra",
  title =        "Technical Correspondence: On {Apt}, {Francez}, and {de
                 Roever}'s ``{A Proof System for Communicating
                 Sequential Processes}''",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "3",
  pages =        "500--501",
  month =        jul,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  note =         "See \cite{Apt:1980:PSC}.",
  acknowledgement = ack-pb,
}

@Article{Krogh:1983:AAP,
  author =       "F. T. Krogh",
  title =        "{ACM} Algorithms Policy",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "3",
  pages =        "502--505",
  month =        jul,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 6 13:36:05 1996",
  bibsource =    "Misc/IMMD_IV.bib",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:1983:IA,
  author =       "Anonymous",
  title =        "Information for Authors",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "3",
  pages =        "506--509",
  month =        jul,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  acknowledgement = ack-pb,
}

@Article{Waters:1983:UFC,
  author =       "Richard C. Waters",
  title =        "User Format Control in a {Lisp} Prettyprinter",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "4",
  pages =        "513--531",
  month =        oct,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Cohen:1983:CCA,
  author =       "Jacques Cohen and Alexandru Nicolau",
  title =        "Comparison of Compacting Algorithms for Garbage
                 Collection",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "4",
  pages =        "532--553",
  month =        oct,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/Heaps.bib, Compiler/garbage.collection.bib,
                 Compiler/Compiler.Lins.bib, Compiler/TOPLAS.bib",
  acknowledgement = ack-pb,
}

@Article{Sethi:1983:CFA,
  author =       "Ravi Sethi",
  title =        "Control Flow Aspects of Semantics-Directed Compiling",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "4",
  pages =        "554--595",
  month =        oct,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Jones:1983:TST,
  author =       "C. B. Jones",
  title =        "Tentative Steps Toward a Development Method for
                 Interfering Programs",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "4",
  pages =        "596--619",
  month =        oct,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Ossefort:1983:CPC,
  author =       "Marty Ossefort",
  title =        "Correctness Proofs of Communicating Processes: Three
                 Illustrative Examples from the Literature",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "4",
  pages =        "620--640",
  month =        oct,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Weyuker:1983:ATD,
  author =       "Elaine J. Weyuker",
  title =        "Assessing Test Data Adequacy through Program
                 Inference",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "4",
  pages =        "641--655",
  month =        oct,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Sippu:1983:SEH,
  author =       "Seppo Sippu and Eljas Soisalon-Soininen",
  title =        "A Syntax-Error-Handling Technique and Its Experimental
                 Analysis",
  journal =      j-TOPLAS,
  volume =       "5",
  number =       "4",
  pages =        "656--679",
  month =        oct,
  year =         "1983",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Archer:1984:URR,
  author =       "James E. {Archer, Jr.} and Richard Conway and Fred B.
                 Schneider",
  title =        "User Recovery and Reversal in Interactive Systems",
  journal =      j-TOPLAS,
  volume =       "6",
  number =       "1",
  pages =        "1--19",
  month =        jan,
  year =         "1984",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/Heaps.bib, Compiler/garbage.collection.bib,
                 Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
}

@Article{Cameron:1984:GBD,
  author =       "Robert D. Cameron and M. Robert Ito",
  title =        "Grammar-Based Definition of Metaprogramming Systems",
  journal =      j-TOPLAS,
  volume =       "6",
  number =       "1",
  pages =        "20--54",
  month =        jan,
  year =         "1984",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Colussi:1984:RES,
  author =       "L. Colussi",
  title =        "Recursion As an Effective Step in Program
                 Development",
  journal =      j-TOPLAS,
  volume =       "6",
  number =       "1",
  pages =        "55--67",
  month =        jan,
  year =         "1984",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Manna:1984:SCP,
  author =       "Zohar Manna and Pierre Wolper",
  title =        "Synthesis of Communicating Processes from Temporal
                 Logic Specifications",
  journal =      j-TOPLAS,
  volume =       "6",
  number =       "1",
  pages =        "68--93",
  month =        jan,
  year =         "1984",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Object/Nierstrasz.bib, Compiler/Compiler.Lins.bib,
                 Ai/nonmono.bib, Compiler/TOPLAS.bib",
  acknowledgement = ack-pb,
  keywords =     "temporal-logic csp binder(csp)",
}

@Article{Constable:1984:TTP,
  author =       "Robert L. Constable and Daniel R. Zlatin",
  title =        "The Type Theory of {PL\slash CV3}",
  journal =      j-TOPLAS,
  volume =       "6",
  number =       "1",
  pages =        "94--117",
  month =        jan,
  year =         "1984",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 18:36:30 1996",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Kaufman:1984:TLR,
  author =       "Arie Kaufman",
  title =        "Tailored-List and Recombination-Delaying Buddy
                 Systems",
  journal =      j-TOPLAS,
  volume =       "6",
  number =       "1",
  pages =        "118--125",
  month =        jan,
  year =         "1984",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Applelbe:1984:ECS,
  author =       "William F. Applelbe and A. P. Ravn",
  title =        "Encapsulation Constructs in Systems Programming
                 Languages",
  journal =      j-TOPLAS,
  volume =       "6",
  number =       "2",
  pages =        "129--158",
  month =        apr,
  year =         "1984",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Burton:1984:ACP,
  author =       "F. Warren Burton",
  title =        "{Annotations to Control Parallelism and Reduction
                 Order in the Distributed Evaluation of Functional
                 Programs}",
  journal =      j-TOPLAS,
  volume =       "6",
  number =       "2",
  pages =        "159--174",
  month =        apr,
  year =         "1984",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Parallel/Pfpbib.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib, Misc/Functional.bib",
  abstract =     "When evaluating a functional program on a network of
                 processors, it is necessary to decide when parallelism
                 is desirable, which work may be transferred to another
                 processor, and in what form the work is to be
                 transferred. If the wrong decisions are made, a
                 parallel evaluation may require asymptotically more
                 time than a sequential evaluation, owing to
                 communication costs. The introduction of annotations to
                 give the programmer control over the above decisions is
                 proposed. The annotations and their effects are defined
                 in terms of the lambda calculus. Each application must
                 have one of three annotations. No other annotations are
                 required. Examples and possible extensions to this
                 work, including annotated combinators, are briefly
                 considered.",
  acknowledgement = ack-pb,
  keywords =     "Annotations; Para-Functional Programming",
}

@Article{Hull:1984:CSP,
  author =       "M. Elizabeth C. Hull and R. M. McKeag",
  title =        "Communicating Sequential Processes for Centralized and
                 Distributed Operating System Design",
  journal =      j-TOPLAS,
  volume =       "6",
  number =       "2",
  pages =        "175--191",
  month =        apr,
  year =         "1984",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Backhouse:1984:GDF,
  author =       "Roland Backhouse",
  title =        "Global Data Flow Analysis Problems Arising in Locally
                 Least-Cost Error Recovery",
  journal =      j-TOPLAS,
  volume =       "6",
  number =       "2",
  pages =        "192--214",
  month =        apr,
  year =         "1984",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Reif:1984:RTS,
  author =       "John H. Reif and Paul G. Spirakis",
  title =        "Real-Time Synchronization of Interprocess
                 Communications",
  journal =      j-TOPLAS,
  volume =       "6",
  number =       "2",
  pages =        "215--238",
  month =        apr,
  year =         "1984",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Theory/ProbAlgs.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  note =         "They present probabilistic distributed algorithms for
                 the guard-scheduling problem
                 (Section~\ref{sec-guardscheduling}) that guarantee
                 real-time response. A preliminary version of this paper
                 appeared as ``Distributed Algorithms for Synchronizing
                 Interprocess Communication in Real Time,'' in {\em
                 Proc. 13th Ann. ACM Symp. on Theory of Computing},
                 1981.",
  acknowledgement = ack-pb,
}

@Article{Karp:1984:PFF,
  author =       "Richard Alan Karp",
  title =        "Proving Failure-Free Properties of Concurrent Systems
                 Using Temporal Logic",
  journal =      j-TOPLAS,
  volume =       "6",
  number =       "2",
  pages =        "239--253",
  month =        apr,
  year =         "1984",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Lamport:1984:UTI,
  author =       "Leslie Lamport",
  title =        "Using Time Instead of Timeout for Fault-Tolerant
                 Distributed Systems",
  journal =      j-TOPLAS,
  volume =       "6",
  number =       "2",
  pages =        "254--280",
  month =        apr,
  year =         "1984",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Lamport:1984:HLC,
  author =       "Leslie Lamport and Fred B. Schneider",
  title =        "The ``{Hoare} Logic'' of {CSP}, and All That",
  journal =      j-TOPLAS,
  volume =       "6",
  number =       "2",
  pages =        "281--296",
  month =        apr,
  year =         "1984",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Budd:1984:ACV,
  author =       "Timothy A. Budd",
  title =        "An {APL} Compiler for a Vector Processor",
  journal =      j-TOPLAS,
  volume =       "6",
  number =       "3",
  pages =        "297--313",
  month =        jul,
  year =         "1984",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Hobson:1984:DEE,
  author =       "Richard F. Hobson",
  title =        "A Directly Executable Encoding for {APL}",
  journal =      j-TOPLAS,
  volume =       "6",
  number =       "3",
  pages =        "314--332",
  month =        jul,
  year =         "1984",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Ben-Ari:1984:AFG,
  author =       "Mordechai Ben-Ari",
  title =        "Algorithms for On-the-fly Garbage Collection",
  journal =      j-TOPLAS,
  volume =       "6",
  number =       "3",
  pages =        "333--344",
  month =        jul,
  year =         "1984",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Katayama:1984:TAG,
  author =       "Takuya Katayama",
  title =        "Translation of Attribute Grammars into Procedures",
  journal =      j-TOPLAS,
  volume =       "6",
  number =       "3",
  pages =        "345--369",
  month =        jul,
  year =         "1984",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Apt:1984:MDT,
  author =       "Krzysztof R. Apt and Nissem Francez",
  title =        "Modeling the Distributed Termination Convention of
                 {CSP}",
  journal =      j-TOPLAS,
  volume =       "6",
  number =       "3",
  pages =        "370--379",
  month =        jul,
  year =         "1984",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Database/dbase.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  acknowledgement = ack-pb,
}

@Article{Korach:1984:DAF,
  author =       "E. Korach and D. Rotem and N. Santoro",
  title =        "Distributed Algorithms for Finding Centers and Medians
                 in Networks",
  journal =      j-TOPLAS,
  volume =       "6",
  number =       "3",
  pages =        "380--401",
  month =        jul,
  year =         "1984",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Schlichting:1984:UMP,
  author =       "Richard D. Schlichting and Fred B. Schneider",
  title =        "Using Message Passing for Distributed Programming:
                 Proof Rules and Disciplines",
  journal =      j-TOPLAS,
  volume =       "6",
  number =       "3",
  pages =        "402--431",
  month =        jul,
  year =         "1984",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{LaLonde:1984:TCC,
  author =       "Wilf R. LaLonde",
  title =        "Technical Correspondence: Comments on
                 {Soisalon-Soininen}'s ``{Inessential Error Entries and
                 Their Use in {LR} Parser Optimization}''",
  journal =      j-TOPLAS,
  volume =       "6",
  number =       "3",
  pages =        "432--439",
  month =        jul,
  year =         "1984",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  note =         "See \cite{Soisalon-Soininen:1982:IEE}.",
  acknowledgement = ack-pb,
}

@Article{Krogh:1984:AAP,
  author =       "F. T. Krogh",
  title =        "{ACM} Algorithms Policy",
  journal =      j-TOPLAS,
  volume =       "6",
  number =       "3",
  pages =        "440--443",
  month =        jul,
  year =         "1984",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 6 13:27:37 1996",
  bibsource =    "Misc/IMMD_IV.bib",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:1984:IA,
  author =       "Anonymous",
  title =        "Information for Authors",
  journal =      j-TOPLAS,
  volume =       "6",
  number =       "3",
  pages =        "444--447",
  month =        jul,
  year =         "1984",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 13:28:08 1996",
  acknowledgement = ack-pb,
}

@Article{Winner:1984:UO,
  author =       "Robert I. Winner",
  title =        "Unassigned Objects",
  journal =      j-TOPLAS,
  volume =       "6",
  number =       "4",
  pages =        "449--467",
  month =        oct,
  year =         "1984",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Turini:1984:MLO,
  author =       "Franco Turini",
  title =        "{Magma2}: {A} Language Oriented toward Experiments in
                 Control",
  journal =      j-TOPLAS,
  volume =       "6",
  number =       "4",
  pages =        "468--486",
  month =        oct,
  year =         "1984",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Bird:1984:PAS,
  author =       "R. S. Bird",
  title =        "The Promotion and Accumulation Strategies in
                 Transformational Programming",
  journal =      j-TOPLAS,
  volume =       "6",
  number =       "4",
  pages =        "487--504",
  month =        oct,
  year =         "1984",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  note =         "See addendum \cite{Bird:1985:APA}.",
  acknowledgement = ack-pb,
}

@Article{Davidson:1984:CST,
  author =       "Jack W. Davidson and Christopher W. Fraser",
  title =        "Code Selection through Object Code Optimization",
  journal =      j-TOPLAS,
  volume =       "6",
  number =       "4",
  pages =        "505--526",
  month =        oct,
  year =         "1984",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Tue Nov 20 15:31:51 1984",
  bibsource =    "Compiler/compiler.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  abstract =     "This paper shows how thorough object code optimization
                 has simplified a compiler and made it easy to retarget.
                 The code generator forgoes case analysis and emits
                 naive code that is improved by a retargetable object
                 code optimizer. With this technique, cross-compilers
                 emit code comparable to host-specific compilers",
  acknowledgement = ack-pb,
  keywords =     "code generation; compilation; optimization; peephole
                 optimization; portability",
}

@Article{Ramanath:1984:JML,
  author =       "M. V. S. Ramanath and Marvin Solomon",
  title =        "Jump Minimization in Linear Time",
  journal =      j-TOPLAS,
  volume =       "6",
  number =       "4",
  pages =        "527--545",
  month =        oct,
  year =         "1984",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Tue Nov 20 15:35:55 1984",
  bibsource =    "Compiler/compiler.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  abstract =     "Unlike other instructions, which compute or test
                 values, unconditional branch instructions do no useful
                 work. Rather, they are artifacts of the translation
                 from a flow graph to the linear form of conventional
                 machine language. Careful ordering of the basic blocks
                 of a program can decrease the number of branches
                 required by allowing a basic block to `fall through' to
                 a successor. It is shown that although the general
                 problem of minimizing the number of branches is
                 NP-complete, an efficient algorithm is possible for
                 `structured' programs --- those written without goto
                 statements. More specifically, an algorithm is
                 presented that produces an optimal odering of the basic
                 blocks of any program that uses only the control
                 structures if-then-else, loop, and exit. The running
                 time of the algorithm is proportional to the length of
                 the program, provided the number of loops exited by any
                 exit statement can be bounded by a constant.",
  acknowledgement = ack-pb,
  keywords =     "code generation; code reordering; goto statements;
                 program optimization; unconditional branches",
}

@Article{Dencker:1984:OPT,
  author =       "Peter Dencker and Karl {D\"urre} and Johannes Heuft",
  title =        "Optimization of Parser Tables for Portable Compilers",
  journal =      j-TOPLAS,
  volume =       "6",
  number =       "4",
  pages =        "546--572",
  month =        oct,
  year =         "1984",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Thu Feb 7 11:53:52 1985",
  bibsource =    "Theory/graph.coloring.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib, Compiler/compiler.bib",
  abstract =     "Six methods for parser table compression are compared.
                 The investigations are focused on four methods that
                 allow the access of table entries with a constant
                 number of index operations. The advantage of these
                 methods is that the access to the compressed tables can
                 be programmed efficiently in portable high-level
                 languages like Pascal or FORTRAN. The results are
                 related to two simple methods based on list searching.
                 Experimental results on eleven different grammers show
                 that, on the average, a method based on graph coloring
                 turns our best.",
  acknowledgement = ack-pb,
  keywords =     "Graph coloring; sparse matrices; table compression",
}

@Article{Minsky:1984:SLC,
  author =       "Naftaly H. Minsky",
  title =        "Selective and Locally Controlled Transport of
                 Privileges",
  journal =      j-TOPLAS,
  volume =       "6",
  number =       "4",
  pages =        "573--602",
  month =        oct,
  year =         "1984",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  acknowledgement = ack-pb,
}

@Article{Georgeff:1984:TRS,
  author =       "Michael Georgeff",
  title =        "Transformations and Reduction Strategies for Typed
                 Lambda Expressions",
  journal =      j-TOPLAS,
  volume =       "6",
  number =       "4",
  pages =        "603--631",
  month =        oct,
  year =         "1984",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  note =         "See remark \cite{Nielson:1986:TCC}.",
  acknowledgement = ack-pb,
}

@Article{Chandy:1984:DPP,
  author =       "K. M. Chandy and Jayadev Misra",
  title =        "The Drinking Philosopher's Problem",
  journal =      j-TOPLAS,
  volume =       "6",
  number =       "4",
  pages =        "632--646",
  month =        oct,
  year =         "1984",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Thu Feb 7 12:01:54 1985",
  bibsource =    "Os/os.bib, Misc/os.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  abstract =     "The problem of resolving conflicts between processes
                 in distributed systems is of practical importance. A
                 conflict between a set of processes must be resolved in
                 favor of some (usually one) process and against the
                 others: a favored process must have some property that
                 distinguishes it from others. To guarantee fairness,
                 the distinguishing property must be such that the
                 process selected for favorable treatment is not always
                 the same. A distributed implementation of an acyclic
                 precedence graph, in which the depth of a process (the
                 longest chain of predecessors) is a distinguishing
                 property, is presented. A simple conflict resolution
                 rule coupled with the acyclic graph ensures fair
                 resolution of all conflicts. To make the problem
                 concrete, two paradigms are presented: the well-known
                 distributed dining philosophers problem and a
                 generalization of it, the distributed drinking
                 philosophers problem.",
  acknowledgement = ack-pb,
  keywords =     "Asymmetry; dining philosophers problem",
}

@Article{Soundararajan:1984:ASC,
  author =       "N. Soundararajan",
  title =        "Axiomatic Semantics of Communicating Sequential
                 Processes",
  journal =      j-TOPLAS,
  volume =       "6",
  number =       "4",
  pages =        "647--662",
  month =        oct,
  year =         "1984",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  acknowledgement = ack-pb,
}

@Article{Barstow:1985:CTD,
  author =       "David Barstow",
  title =        "On Convergence Toward a Database of Program
                 Transformations",
  journal =      j-TOPLAS,
  volume =       "7",
  number =       "1",
  pages =        "1--9",
  month =        jan,
  year =         "1985",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/2364.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; measurement",
  subject =      "{\bf I.2.4}: Computing Methodologies, ARTIFICIAL
                 INTELLIGENCE, Knowledge Representation Formalisms and
                 Methods. {\bf I.2.2}: Computing Methodologies,
                 ARTIFICIAL INTELLIGENCE, Automatic Programming, Program
                 transformation. {\bf D.1.2}: Software, PROGRAMMING
                 TECHNIQUES, Automatic Programming. {\bf E.1}: Data,
                 DATA STRUCTURES, Graphs. {\bf I.2.4}: Computing
                 Methodologies, ARTIFICIAL INTELLIGENCE, Knowledge
                 Representation Formalisms and Methods, PECOS.",
}

@Article{Zave:1985:DAF,
  author =       "Pamela Zave",
  title =        "A Distributed Alternative to Finite-State-Machine
                 Specifications",
  journal =      j-TOPLAS,
  volume =       "7",
  number =       "1",
  pages =        "10--36",
  month =        jan,
  year =         "1985",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/2365.html",
  acknowledgement = ack-pb,
  keywords =     "theory",
  subject =      "{\bf D.2.1}: Software, SOFTWARE ENGINEERING,
                 Requirements/Specifications, Methodologies. {\bf
                 D.2.1}: Software, SOFTWARE ENGINEERING,
                 Requirements/Specifications, Tools. {\bf F.3.1}: Theory
                 of Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Specifying and Verifying and Reasoning about Programs,
                 Specification techniques.",
}

@Article{Bergeretti:1985:IFD,
  author =       "Jean-Francois Bergeretti and Bernard A. {Carr\'e}",
  title =        "Information-Flow and Data-Flow Analysis of
                 while-Programs",
  journal =      j-TOPLAS,
  volume =       "7",
  number =       "1",
  pages =        "37--61",
  month =        jan,
  year =         "1985",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/2366.html",
  acknowledgement = ack-pb,
  keywords =     "documentation; languages; verification",
  subject =      "{\bf D.2.4}: Software, SOFTWARE ENGINEERING, Program
                 Verification. {\bf D.2.2}: Software, SOFTWARE
                 ENGINEERING, Tools and Techniques. {\bf D.2.5}:
                 Software, SOFTWARE ENGINEERING, Testing and Debugging.
                 {\bf D.2.6}: Software, SOFTWARE ENGINEERING,
                 Programming Environments. {\bf D.2.4}: Software,
                 SOFTWARE ENGINEERING, Program Verification, Assertion
                 checkers.",
}

@Article{Fuchs:1985:OPF,
  author =       "David R. Fuchs and Donald E. Knuth",
  title =        "Optimal Prepaging and Font Caching",
  journal =      j-TOPLAS,
  volume =       "7",
  number =       "1",
  pages =        "62--79",
  month =        jan,
  year =         "1985",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Wed Mar 6 11:45:48 1985",
  bibsource =    "Graphics/graphics.1.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/2367.html",
  abstract =     "An efficient algorithm for communicating letter-shape
                 information from a high-speed computer with a large
                 memory to a typesetting device that has a limited
                 memory is presented. The encoding is optimum in the
                 sense that the total time for typesetting is minimized,
                 using a model that generalizes well-known ``demand
                 paging'' strategies to the case where changes to the
                 cache are allowed before the associated information is
                 actually needed. Extensive empirical data show that
                 good results are obtained even when difficult technical
                 material is being typeset on a machine that can store
                 information concerning only 100 characters. The methods
                 of this paper are also applicable to other hardware and
                 software caching applications with restricted
                 lookahead.",
  acknowledgement = ack-pb,
  keywords =     "algorithms; measurement; performance; theory",
  subject =      "{\bf D.4.2}: Software, OPERATING SYSTEMS, Storage
                 Management, Allocation/deallocation strategies. {\bf
                 D.4.2}: Software, OPERATING SYSTEMS, Storage
                 Management, Secondary storage. {\bf D.4.2}: Software,
                 OPERATING SYSTEMS, Storage Management, Virtual memory.
                 {\bf E.2}: Data, DATA STORAGE REPRESENTATIONS, Linked
                 representations. {\bf I.7.2}: Computing Methodologies,
                 TEXT PROCESSING, Document Preparation,
                 Photocomposition/typesetting.",
}

@Article{Gelernter:1985:GCL,
  author =       "David Gelernter",
  title =        "Generative Communication in {Linda}",
  journal =      j-TOPLAS,
  volume =       "7",
  number =       "1",
  pages =        "80--112",
  month =        jan,
  year =         "1985",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/2433.html",
  acknowledgement = ack-pb,
  keywords =     "design; languages; theory",
  subject =      "{\bf D.3.2}: Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Linda. {\bf C.2.1}: Computer Systems
                 Organization, COMPUTER-COMMUNICATION NETWORKS, Network
                 Architecture and Design, Network communications. {\bf
                 D.3.4}: Software, PROGRAMMING LANGUAGES, Processors,
                 Compilers. {\bf D.3.3}: Software, PROGRAMMING
                 LANGUAGES, Language Constructs and Features, Concurrent
                 programming structures. {\bf D.4.4}: Software,
                 OPERATING SYSTEMS, Communications Management, Message
                 sending. {\bf D.1.3}: Software, PROGRAMMING TECHNIQUES,
                 Concurrent Programming. {\bf C.2.4}: Computer Systems
                 Organization, COMPUTER-COMMUNICATION NETWORKS,
                 Distributed Systems, Distributed applications. {\bf
                 D.4.2}: Software, OPERATING SYSTEMS, Storage
                 Management, Distributed memories.",
}

@Article{Bates:1985:PP,
  author =       "Joseph L. Bates and Robert L. Constable",
  title =        "Proofs as Programs",
  journal =      j-TOPLAS,
  volume =       "7",
  number =       "1",
  pages =        "113--136",
  month =        jan,
  year =         "1985",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/2528.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; design; languages; theory; verification",
  subject =      "{\bf D.1.2}: Software, PROGRAMMING TECHNIQUES,
                 Automatic Programming. {\bf I.2.3}: Computing
                 Methodologies, ARTIFICIAL INTELLIGENCE, Deduction and
                 Theorem Proving. {\bf F.3.1}: Theory of Computation,
                 LOGICS AND MEANINGS OF PROGRAMS, Specifying and
                 Verifying and Reasoning about Programs. {\bf I.2.2}:
                 Computing Methodologies, ARTIFICIAL INTELLIGENCE,
                 Automatic Programming. {\bf D.1.2}: Software,
                 PROGRAMMING TECHNIQUES, Automatic Programming, PRL.
                 {\bf D.2.4}: Software, SOFTWARE ENGINEERING, Program
                 Verification.",
}

@Article{Dunlop:1985:GSU,
  author =       "Douglas D. Dunlop and Victor R. Basili",
  title =        "Generalizing Specifications for Uniformly Implemented
                 Loops",
  journal =      j-TOPLAS,
  volume =       "7",
  number =       "1",
  pages =        "137--158",
  month =        jan,
  year =         "1985",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/2708.html",
  acknowledgement = ack-pb,
  keywords =     "languages; theory; verification",
  subject =      "{\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Control structures. {\bf
                 F.3.1}: Theory of Computation, LOGICS AND MEANINGS OF
                 PROGRAMS, Specifying and Verifying and Reasoning about
                 Programs, Specification techniques. {\bf D.2.4}:
                 Software, SOFTWARE ENGINEERING, Program Verification,
                 Assertion checkers. {\bf D.2.4}: Software, SOFTWARE
                 ENGINEERING, Program Verification, Correctness proofs.
                 {\bf D.2.4}: Software, SOFTWARE ENGINEERING, Program
                 Verification, Validation.",
}

@Article{Park:1985:NAL,
  author =       "Joseph C. H. Park and K. M. Choe and C. H. Chang",
  title =        "A New Analysis of {LALR} Formalisms",
  journal =      j-TOPLAS,
  volume =       "7",
  number =       "1",
  pages =        "159--175",
  month =        jan,
  year =         "1985",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Wed Mar 6 12:00:21 1985",
  bibsource =    "Compiler/compiler.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/2527.html",
  abstract =     "The traditional LALR analysis is reexamined using a
                 new operator and an associated graph. An improved
                 method that allows factoring out a crucial part of the
                 computation for defining states of LR(0) canonical
                 collection and for computing LALR(1) lookahead sets is
                 presented. This factorization leads to significantly
                 improved algorithms with respect to execution time as
                 well as storage requirements. Experimental results
                 including comparison with other known methods are
                 presented.",
  acknowledgement = ack-pb,
  keywords =     "algorithms; experimentation; LALR(1) lookahead sets;
                 LALR(k) grammar; languages; parser generating system;
                 performance; theory; verification",
  subject =      "{\bf F.4.2}: Theory of Computation, MATHEMATICAL LOGIC
                 AND FORMAL LANGUAGES, Grammars and Other Rewriting
                 Systems, Parsing. {\bf D.3.4}: Software, PROGRAMMING
                 LANGUAGES, Processors, Compilers. {\bf D.3.4}:
                 Software, PROGRAMMING LANGUAGES, Processors, Translator
                 writing systems and compiler generators. {\bf D.3.1}:
                 Software, PROGRAMMING LANGUAGES, Formal Definitions and
                 Theory, Syntax. {\bf F.4.2}: Theory of Computation,
                 MATHEMATICAL LOGIC AND FORMAL LANGUAGES, Grammars and
                 Other Rewriting Systems, Grammar types. {\bf D.3.4}:
                 Software, PROGRAMMING LANGUAGES, Processors, Parsing.",
}

@Article{Wall:1985:TCN,
  author =       "D. Wall and A. Srivastava and F. Templin",
  title =        "Technical Correspondence: {A} Note on {Hennessy}'s
                 ``{Symbolic Debugging of Optimized Code}''",
  journal =      j-TOPLAS,
  volume =       "7",
  number =       "1",
  pages =        "176--181",
  month =        jan,
  year =         "1985",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Wed Mar 6 12:03:08 1985",
  bibsource =    "Compiler/compiler.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/215005.html",
  keywords =     "design; performance; reliability",
  subject =      "{\bf D.2.5}: Software, SOFTWARE ENGINEERING, Testing
                 and Debugging, Symbolic execution. {\bf D.2.3}:
                 Software, SOFTWARE ENGINEERING, Coding. {\bf D.3.4}:
                 Software, PROGRAMMING LANGUAGES, Processors,
                 Optimization.",
}

@Article{Heering:1985:TMP,
  author =       "Jan Heering and Paul Klint",
  title =        "Towards Monolingual Programming Environments",
  journal =      j-TOPLAS,
  volume =       "7",
  number =       "2",
  pages =        "183--213",
  month =        apr,
  year =         "1985",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Mon Oct 21 13:40:48 1985",
  bibsource =    "Misc/programming.env.bib,
                 Compiler/garbage.collection.bib,
                 Compiler/Compiler.Lins.bib, Compiler/TOPLAS.bib,
                 Compiler/Heaps.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/3321.html",
  abstract =     "Most programming environments are much too complex.
                 One way of simplifying them is to reduce the number of
                 mode-dependent languages the user has to be familiar
                 with. As a first step towards this end, the feasibility
                 of unified command/programming/debugging languages, and
                 the concepts on which such languages have to be based,
                 are investigated. The unification process is
                 accomplished in two phases. First, a unified
                 command/programming framework is defined and, second,
                 this framework is extended by adding an integrated
                 debugging capability to it. Strict rules are laid down
                 by which to judge language concepts presenting
                 themselves as candidates for inclusion in the framework
                 during each phase. On the basis of these rules many of
                 the language design questions that have hitherto been
                 resolved this way or that, depending on the taste of
                 the designer, lose their vagueness and can be decided
                 in an unambiguous manner.",
  acknowledgement = ack-pb,
  keywords =     "debugging language; design; event association;
                 language design; language integration; languages;
                 monolingual system; side-effect recovery; type
                 checking",
  subject =      "{\bf D.2.6}: Software, SOFTWARE ENGINEERING,
                 Programming Environments. {\bf D.4.7}: Software,
                 OPERATING SYSTEMS, Organization and Design. {\bf
                 D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Data types and structures.
                 {\bf D.4.9}: Software, OPERATING SYSTEMS, Systems
                 Programs and Utilities. {\bf D.2.5}: Software, SOFTWARE
                 ENGINEERING, Testing and Debugging. {\bf D.4.9}:
                 Software, OPERATING SYSTEMS, Systems Programs and
                 Utilities, Command and control languages. {\bf D.3.2}:
                 Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Smalltalk-80. {\bf D.3.2}: Software,
                 PROGRAMMING LANGUAGES, Language Classifications,
                 INTERLISP.",
}

@Article{Yemini:1985:MVE,
  author =       "Shaula Yemini and Daniel M. Berry",
  title =        "A Modular Verifiable Exception-Handling Mechanism",
  journal =      j-TOPLAS,
  volume =       "7",
  number =       "2",
  pages =        "214--243",
  month =        apr,
  year =         "1985",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/3320.html",
  acknowledgement = ack-pb,
  keywords =     "design; languages; reliability; security;
                 verification",
  subject =      "{\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Control structures. {\bf
                 D.2.5}: Software, SOFTWARE ENGINEERING, Testing and
                 Debugging, Error handling and recovery. {\bf D.2.2}:
                 Software, SOFTWARE ENGINEERING, Tools and Techniques,
                 Modules and interfaces. {\bf D.3.3}: Software,
                 PROGRAMMING LANGUAGES, Language Constructs and
                 Features, Abstract data types. {\bf D.2.4}: Software,
                 SOFTWARE ENGINEERING, Program Verification. {\bf
                 D.3.2}: Software, PROGRAMMING LANGUAGES, Language
                 Classifications, ALGOL-68. {\bf D.3.3}: Software,
                 PROGRAMMING LANGUAGES, Language Constructs and
                 Features, Modules, packages.",
}

@Article{Weihl:1985:IRA,
  author =       "William Weihl and Barbara Liskov",
  title =        "Implementation of Resilient, Atomic Data Types",
  journal =      j-TOPLAS,
  volume =       "7",
  number =       "2",
  pages =        "244--269",
  month =        apr,
  year =         "1985",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Theory/obscure.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/3319.html",
  acknowledgement = ack-pb,
  keywords =     "languages; reliability",
  subject =      "{\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Data types and structures.
                 {\bf D.1.3}: Software, PROGRAMMING TECHNIQUES,
                 Concurrent Programming. {\bf D.3.3}: Software,
                 PROGRAMMING LANGUAGES, Language Constructs and
                 Features, Abstract data types. {\bf D.3.3}: Software,
                 PROGRAMMING LANGUAGES, Language Constructs and
                 Features, Concurrent programming structures. {\bf
                 D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Modules, packages. {\bf
                 D.4.1}: Software, OPERATING SYSTEMS, Process
                 Management, Concurrency. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors. {\bf D.3.2}:
                 Software, PROGRAMMING LANGUAGES, Language
                 Classifications, ARGUS.",
}

@Article{Milne:1985:CRC,
  author =       "George J. Milne",
  title =        "{CIRCAL} and the representation of communication,
                 concurrency, and time",
  journal =      j-TOPLAS,
  volume =       "7",
  number =       "2",
  pages =        "270--298",
  month =        apr,
  year =         "1985",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/Discrete.event.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib, Database/dbase.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/3322.html",
  acknowledgement = ack-pb,
  keywords =     "design; languages; theory; verification",
  subject =      "{\bf F.1.2}: Theory of Computation, COMPUTATION BY
                 ABSTRACT DEVICES, Modes of Computation, CIRCAL. {\bf
                 F.1.2}: Theory of Computation, COMPUTATION BY ABSTRACT
                 DEVICES, Modes of Computation, Parallelism and
                 concurrency. {\bf F.1.2}: Theory of Computation,
                 COMPUTATION BY ABSTRACT DEVICES, Modes of Computation,
                 Alternation and nondeterminism. {\bf B.7.2}: Hardware,
                 INTEGRATED CIRCUITS, Design Aids, Verification. {\bf
                 C.2.3}: Computer Systems Organization,
                 COMPUTER-COMMUNICATION NETWORKS, Network Operations.
                 {\bf D.1.3}: Software, PROGRAMMING TECHNIQUES,
                 Concurrent Programming. {\bf F.4.1}: Theory of
                 Computation, MATHEMATICAL LOGIC AND FORMAL LANGUAGES,
                 Mathematical Logic, Lambda calculus and related
                 systems. {\bf F.3.2}: Theory of Computation, LOGICS AND
                 MEANINGS OF PROGRAMS, Semantics of Programming
                 Languages.",
}

@Article{Schmidt:1985:DGV,
  author =       "David A. Schmidt",
  title =        "Detecting Global Variables in Denotational
                 Specifications",
  journal =      j-TOPLAS,
  volume =       "7",
  number =       "2",
  pages =        "299--310",
  month =        apr,
  year =         "1985",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/3323.html",
  acknowledgement = ack-pb,
  keywords =     "languages; theory; verification",
  subject =      "{\bf F.3.2}: Theory of Computation, LOGICS AND
                 MEANINGS OF PROGRAMS, Semantics of Programming
                 Languages, Denotational semantics. {\bf F.4.1}: Theory
                 of Computation, MATHEMATICAL LOGIC AND FORMAL
                 LANGUAGES, Mathematical Logic, Lambda calculus and
                 related systems. {\bf D.3.1}: Software, PROGRAMMING
                 LANGUAGES, Formal Definitions and Theory, Semantics.",
}

@Article{Pingali:1985:EDD,
  author =       "Keshav Pingali and Arvind",
  title =        "Efficient Demand-Driven Evaluation. Part 1",
  journal =      j-TOPLAS,
  volume =       "7",
  number =       "2",
  pages =        "311--333",
  month =        apr,
  year =         "1985",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/3480.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; languages; theory; verification",
  subject =      "{\bf D.1.1}: Software, PROGRAMMING TECHNIQUES,
                 Applicative (Functional) Programming. {\bf D.1.3}:
                 Software, PROGRAMMING TECHNIQUES, Concurrent
                 Programming. {\bf D.3.2}: Software, PROGRAMMING
                 LANGUAGES, Language Classifications, Applicative
                 languages. {\bf D.3.1}: Software, PROGRAMMING
                 LANGUAGES, Formal Definitions and Theory, Semantics.
                 {\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors. {\bf F.3.2}: Theory of Computation, LOGICS
                 AND MEANINGS OF PROGRAMS, Semantics of Programming
                 Languages. {\bf F.3.3}: Theory of Computation, LOGICS
                 AND MEANINGS OF PROGRAMS, Studies of Program
                 Constructs.",
}

@Article{Gini:1985:DWM,
  author =       "Giuseppina C. Gini and Maria L. Gini",
  title =        "Dealing with World-Model-Based Programs",
  journal =      j-TOPLAS,
  volume =       "7",
  number =       "2",
  pages =        "334--347",
  month =        apr,
  year =         "1985",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/3479.html",
  acknowledgement = ack-pb,
  keywords =     "design; experimentation; languages",
  subject =      "{\bf I.2.9}: Computing Methodologies, ARTIFICIAL
                 INTELLIGENCE, Robotics. {\bf D.2.6}: Software, SOFTWARE
                 ENGINEERING, Programming Environments. {\bf I.2.5}:
                 Computing Methodologies, ARTIFICIAL INTELLIGENCE,
                 Programming Languages and Software. {\bf J.6}: Computer
                 Applications, COMPUTER-AIDED ENGINEERING. {\bf I.2.9}:
                 Computing Methodologies, ARTIFICIAL INTELLIGENCE,
                 Robotics, POINTY.",
}

@Article{Bar-on:1985:OPG,
  author =       "Ilan Bar-On and Uzi Vishkin",
  title =        "Optimal Parallel Generation of a Computation Tree
                 Form",
  journal =      j-TOPLAS,
  volume =       "7",
  number =       "2",
  pages =        "348--357",
  month =        apr,
  year =         "1985",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/3478.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; performance; theory",
  subject =      "{\bf F.2.2}: Theory of Computation, ANALYSIS OF
                 ALGORITHMS AND PROBLEM COMPLEXITY, Nonnumerical
                 Algorithms and Problems, Computations on discrete
                 structures. {\bf F.1.2}: Theory of Computation,
                 COMPUTATION BY ABSTRACT DEVICES, Modes of Computation,
                 Parallelism and concurrency. {\bf G.2.2}: Mathematics
                 of Computing, DISCRETE MATHEMATICS, Graph Theory, Graph
                 algorithms. {\bf E.1}: Data, DATA STRUCTURES, Trees.",
}

@Article{Nielson:1985:PTD,
  author =       "Flemming Nielson",
  title =        "Program Transformations in a Denotational Setting",
  journal =      j-TOPLAS,
  volume =       "7",
  number =       "3",
  pages =        "359--379",
  month =        jul,
  year =         "1985",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/3917.html",
  acknowledgement = ack-pb,
  keywords =     "design; languages; theory; verification",
  subject =      "{\bf F.3.1}: Theory of Computation, LOGICS AND
                 MEANINGS OF PROGRAMS, Specifying and Verifying and
                 Reasoning about Programs, Mechanical verification. {\bf
                 F.3.2}: Theory of Computation, LOGICS AND MEANINGS OF
                 PROGRAMS, Semantics of Programming Languages,
                 Denotational semantics. {\bf D.3.1}: Software,
                 PROGRAMMING LANGUAGES, Formal Definitions and Theory,
                 Semantics. {\bf I.2.2}: Computing Methodologies,
                 ARTIFICIAL INTELLIGENCE, Automatic Programming, Program
                 transformation. {\bf D.3.4}: Software, PROGRAMMING
                 LANGUAGES, Processors, Compilers. {\bf D.3.4}:
                 Software, PROGRAMMING LANGUAGES, Processors,
                 Optimization.",
}

@Article{Avrunin:1985:DAD,
  author =       "George S. Avrunin and Jack C. Wileden",
  title =        "Describing and Analyzing Distributed Software System
                 Designs",
  journal =      j-TOPLAS,
  volume =       "7",
  number =       "3",
  pages =        "380--403",
  month =        jul,
  year =         "1985",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/3989.html",
  acknowledgement = ack-pb,
  keywords =     "design; languages; theory; verification",
  subject =      "{\bf D.3.2}: Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Design languages. {\bf D.1.3}:
                 Software, PROGRAMMING TECHNIQUES, Concurrent
                 Programming. {\bf D.2.2}: Software, SOFTWARE
                 ENGINEERING, Tools and Techniques. {\bf D.2.4}:
                 Software, SOFTWARE ENGINEERING, Program Verification.
                 {\bf D.3.2}: Software, PROGRAMMING LANGUAGES, Language
                 Classifications, DYMOL. {\bf F.3.1}: Theory of
                 Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Specifying and Verifying and Reasoning about
                 Programs.",
}

@Article{Jefferson:1985:VT,
  author =       "David R. Jefferson",
  title =        "Virtual Time",
  journal =      j-TOPLAS,
  volume =       "7",
  number =       "3",
  pages =        "404--425",
  month =        jul,
  year =         "1985",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Mon Sep 30 16:35:18 1985",
  bibsource =    "Database/time.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/3988.html",
  abstract =     "Virtual time a new paradigm for organizing and
                 synchronizing distributed systems which can be applied
                 to such problems as distributed discrete event
                 simulation and distributed database concurrency
                 control. Virtual time provides a flexible abstraction
                 of real time in much the same way that virtual memory
                 provides an abstraction of real memory. It is
                 implemented using the Time Warp mechanism, a
                 synchronization protocol distinguished by its reliance
                 on lookahead-rollback, and by its implementation of
                 rollback via antimessages.",
  acknowledgement = ack-pb,
  keywords =     "concurrency control; design; performance; reliability;
                 simulation; Time Warp",
  subject =      "{\bf D.4.7}: Software, OPERATING SYSTEMS, Organization
                 and Design, Distributed systems. {\bf D.4.1}: Software,
                 OPERATING SYSTEMS, Process Management, Synchronization.
                 {\bf D.1.3}: Software, PROGRAMMING TECHNIQUES,
                 Concurrent Programming. {\bf F.1.2}: Theory of
                 Computation, COMPUTATION BY ABSTRACT DEVICES, Modes of
                 Computation, Parallelism and concurrency.",
}

@Article{Donahue:1985:DTV,
  author =       "James Donahue and Alan Demers",
  title =        "Data Types Are Values",
  journal =      j-TOPLAS,
  volume =       "7",
  number =       "3",
  pages =        "426--445",
  month =        jul,
  year =         "1985",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Aug 13 17:16:20 MDT 1994",
  bibsource =    "Misc/sigplan.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/3987.html",
  acknowledgement = ack-nhfb,
  keywords =     "languages; theory",
  review =       "ACM CR 8604-0326",
  subject =      "{\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Data types and structures.
                 {\bf D.3.1}: Software, PROGRAMMING LANGUAGES, Formal
                 Definitions and Theory. {\bf F.3.2}: Theory of
                 Computation, LOGICS AND MEANINGS OF PROGRAMS, Semantics
                 of Programming Languages. {\bf D.3.2}: Software,
                 PROGRAMMING LANGUAGES, Language Classifications,
                 RUSSELL.",
}

@Article{Dershowitz:1985:PAI,
  author =       "Nachum Dershowitz",
  title =        "Program Abstraction and Instantiation",
  journal =      j-TOPLAS,
  volume =       "7",
  number =       "3",
  pages =        "446--477",
  month =        jul,
  year =         "1985",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib, Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/3986.html",
  acknowledgement = ack-pb,
  keywords =     "design; theory; verification",
  subject =      "{\bf F.3.1}: Theory of Computation, LOGICS AND
                 MEANINGS OF PROGRAMS, Specifying and Verifying and
                 Reasoning about Programs, Specification techniques.
                 {\bf D.2.2}: Software, SOFTWARE ENGINEERING, Tools and
                 Techniques, Structured programming. {\bf D.2.4}:
                 Software, SOFTWARE ENGINEERING, Program Verification,
                 Correctness proofs. {\bf D.2.6}: Software, SOFTWARE
                 ENGINEERING, Programming Environments. {\bf D.1.2}:
                 Software, PROGRAMMING TECHNIQUES, Automatic
                 Programming. {\bf F.3.1}: Theory of Computation, LOGICS
                 AND MEANINGS OF PROGRAMS, Specifying and Verifying and
                 Reasoning about Programs, Assertions. {\bf F.3.1}:
                 Theory of Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Specifying and Verifying and Reasoning about Programs,
                 Invariants. {\bf D.2.2}: Software, SOFTWARE
                 ENGINEERING, Tools and Techniques, Software
                 libraries.",
}

@Article{Richter:1985:NSE,
  author =       "Helmut Richter",
  title =        "Noncorrecting Syntax Error Recovery",
  journal =      j-TOPLAS,
  volume =       "7",
  number =       "3",
  pages =        "478--489",
  month =        jul,
  year =         "1985",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/4019.html",
  acknowledgement = ack-pb,
  keywords =     "design; Futures; languages; Lisp; performance; theory;
                 verification",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Parsing. {\bf D.3.4}: Software, PROGRAMMING
                 LANGUAGES, Processors, Compilers. {\bf D.2.5}:
                 Software, SOFTWARE ENGINEERING, Testing and Debugging,
                 Error handling and recovery. {\bf D.3.1}: Software,
                 PROGRAMMING LANGUAGES, Formal Definitions and Theory,
                 Syntax.",
}

@Article{Bird:1985:APA,
  author =       "R. S. Bird",
  title =        "Addendum: ``{The Promotion and Accumulation Strategies
                 in Transformational Programming}''",
  journal =      j-TOPLAS,
  volume =       "7",
  number =       "3",
  pages =        "490--492",
  month =        jul,
  year =         "1985",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  note =         "See \cite{Bird:1984:PAS}.",
  acknowledgement = ack-pb,
}

@Article{Krogh:1985:AAP,
  author =       "F. T. Krogh",
  title =        "{ACM} Algorithms Policy",
  journal =      j-TOPLAS,
  volume =       "7",
  number =       "3",
  pages =        "493--496",
  month =        jul,
  year =         "1985",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 6 13:35:53 1996",
  bibsource =    "Misc/IMMD_IV.bib",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:1985:IA,
  author =       "Anonymous",
  title =        "Information for Authors",
  journal =      j-TOPLAS,
  volume =       "7",
  number =       "3",
  pages =        "497--500",
  month =        jul,
  year =         "1985",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 13:36:44 1996",
  acknowledgement = ack-pb,
}

@Article{Halstead:1985:MLC,
  author =       "Robert H. {Halstead, Jr.}",
  title =        "{Multilisp: A Language for Concurrent Symbolic
                 Computation}",
  journal =      j-TOPLAS,
  volume =       "7",
  number =       "4",
  pages =        "501--538",
  month =        oct,
  year =         "1985",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Parallel/Pfpbib.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/4478.html",
  abstract =     "Multilisp is a version of the Lisp dialect Scheme
                 extended with constructs for parallel execution. Like
                 Scheme, Multilisp is oriented toward symbolic
                 computation. Unlike some parallel programming
                 languages, Multilisp incorporates constructs for
                 causing side effects and for explicitly introducing
                 parallelism. The potential complexity of dealing with
                 side effects in a parallel context is mitigated by the
                 nature of the parallelism constructs and by support for
                 abstract data types: a recommended Multilisp
                 programming style is presented which, if followed,
                 should lead to highly parallel, easily understandable
                 programs. Multilisp is being implemented on the 32
                 processor {\em Concert\/} multiprocessor; however, it
                 is ultimately intended for use on larger
                 multiprocessors. The current implementation, called
                 {\em Concert Multilisp}, is complete enough to run the
                 Multilisp compiler itself and has been run on Concert
                 prototypes including up to eight processors. Concert
                 Multilisp uses novel techniques for task scheduling and
                 garbage collection. The task scheduler helps control
                 excessive resource utilization by means of an unfair
                 scheduling policy; the garbage collector uses a
                 multiprocessor algorithm based on the incremental
                 garbage collector of Baker.",
  subject =      "{\bf D.3.2}: Software, PROGRAMMING LANGUAGES, Language
                 Classifications, MULTILISP. {\bf D.1.3}: Software,
                 PROGRAMMING TECHNIQUES, Concurrent Programming. {\bf
                 D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Concurrent programming
                 structures. {\bf C.1.2}: Computer Systems Organization,
                 PROCESSOR ARCHITECTURES, Multiple Data Stream
                 Architectures (Multiprocessors),
                 Multiple-instruction-stream, multiple-data-stream
                 processors (MIMD). {\bf D.3.2}: Software, PROGRAMMING
                 LANGUAGES, Language Classifications, LISP. {\bf D.3.2}:
                 Software, PROGRAMMING LANGUAGES, Language
                 Classifications, SCHEME.",
}

@Article{Atkinson:1985:PPD,
  author =       "Malcolm P. Atkinson and Ronald Morrison",
  title =        "Procedures as Persistent Data Objects",
  journal =      j-TOPLAS,
  volume =       "7",
  number =       "4",
  pages =        "539--559",
  month =        oct,
  year =         "1985",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Aug 13 17:16:20 MDT 1994",
  bibsource =    "Misc/sigplan.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/4477.html",
  acknowledgement = ack-nhfb,
  keywords =     "design; languages",
  review =       "ACM CR 8607-0603",
  subject =      "{\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Procedures, functions, and
                 subroutines. {\bf D.3.3}: Software, PROGRAMMING
                 LANGUAGES, Language Constructs and Features, Abstract
                 data types. {\bf D.2.6}: Software, SOFTWARE
                 ENGINEERING, Programming Environments. {\bf D.2.2}:
                 Software, SOFTWARE ENGINEERING, Tools and Techniques.",
}

@Article{Ganapathi:1985:AGD,
  author =       "Mahadevan Ganapathi and Charles N. Fischer",
  title =        "Affix Grammar Driven Code Generation",
  journal =      j-TOPLAS,
  volume =       "7",
  number =       "4",
  pages =        "560--599",
  month =        oct,
  year =         "1985",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 09:17:25 1996",
  bibsource =    "Misc/sigplan.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib, Compiler/compiler.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/4486.html",
  abstract =     "Affix grammars are used to describe the instruction
                 set of a target architecture for purposes of compiler
                 code generation. A code generator is obtained
                 automatically for a compiler using attributed parsing
                 techniques. A compiler built on this model can
                 automatically perform most popular machine-dependent
                 optimizations, including peephole optimizations. Code
                 generators based on this model demonstrate
                 retargetability for the VAX1-11, iAPX2-86, Z-80003,
                 PDP4-11, MC-68000, NS32032, FOM, and IBM-370
                 architectures.",
  acknowledgement = ack-pb # " and " # ack-nhfb,
  keywords =     "algorithms; Code generation; code optimization;
                 code-generator-generator; compiler compiler; design;
                 intermediate representation; languages; machine
                 description; machine-dependent optimization",
  owner =        "manning",
  review =       "ACM CR 8607-0604",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Code generation. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Compilers. {\bf
                 D.3.4}: Software, PROGRAMMING LANGUAGES, Processors,
                 Optimization. {\bf D.3.4}: Software, PROGRAMMING
                 LANGUAGES, Processors, Translator writing systems and
                 compiler generators.",
}

@Article{Nix:1985:EE,
  author =       "Robert P. Nix",
  title =        "Editing by Example",
  journal =      j-TOPLAS,
  volume =       "7",
  number =       "4",
  pages =        "600--621",
  month =        oct,
  year =         "1985",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/4476.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; design; languages; theory",
  subject =      "{\bf I.7.1}: Computing Methodologies, TEXT PROCESSING,
                 Text Editing. {\bf I.2.2}: Computing Methodologies,
                 ARTIFICIAL INTELLIGENCE, Automatic Programming, Program
                 synthesis. {\bf H.4.1}: Information Systems,
                 INFORMATION SYSTEMS APPLICATIONS, Office Automation,
                 Word processing. {\bf I.5.4}: Computing Methodologies,
                 PATTERN RECOGNITION, Applications, Text processing.
                 {\bf I.5.5}: Computing Methodologies, PATTERN
                 RECOGNITION, Implementation, Interactive systems. {\bf
                 I.7.1}: Computing Methodologies, TEXT PROCESSING, Text
                 Editing, Languages.",
}

@Article{Francez:1985:SIC,
  author =       "Nissim Francez and Shaula A. Yemini",
  title =        "Symmetric Intertask Communication",
  journal =      j-TOPLAS,
  volume =       "7",
  number =       "4",
  pages =        "622--636",
  month =        oct,
  year =         "1985",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/4475.html",
  acknowledgement = ack-pb,
  keywords =     "design; languages; theory",
  subject =      "{\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Concurrent programming
                 structures. {\bf D.1.3}: Software, PROGRAMMING
                 TECHNIQUES, Concurrent Programming. {\bf D.4.1}:
                 Software, OPERATING SYSTEMS, Process Management,
                 Concurrency. {\bf D.4.1}: Software, OPERATING SYSTEMS,
                 Process Management, Synchronization. {\bf D.4.4}:
                 Software, OPERATING SYSTEMS, Communications Management.
                 {\bf F.3.3}: Theory of Computation, LOGICS AND MEANINGS
                 OF PROGRAMS, Studies of Program Constructs.",
}

@Article{Boehm:1985:SEA,
  author =       "Hans-Juergen Boehm",
  title =        "Side Effects and Aliasing Can Have Simple Axiomatic
                 Descriptions",
  journal =      j-TOPLAS,
  volume =       "7",
  number =       "4",
  pages =        "637--655",
  month =        oct,
  year =         "1985",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/4474.html",
  acknowledgement = ack-pb,
  keywords =     "languages; theory; verification",
  subject =      "{\bf D.3.1}: Software, PROGRAMMING LANGUAGES, Formal
                 Definitions and Theory, Semantics. {\bf F.3.1}: Theory
                 of Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Specifying and Verifying and Reasoning about Programs,
                 Logics of programs. {\bf F.3.1}: Theory of Computation,
                 LOGICS AND MEANINGS OF PROGRAMS, Specifying and
                 Verifying and Reasoning about Programs, Mechanical
                 verification. {\bf F.3.3}: Theory of Computation,
                 LOGICS AND MEANINGS OF PROGRAMS, Studies of Program
                 Constructs. {\bf F.3.2}: Theory of Computation, LOGICS
                 AND MEANINGS OF PROGRAMS, Semantics of Programming
                 Languages.",
}

@Article{deBruin:1985:DSD,
  author =       "Arie de Bruin and Wim {B\"ohm}",
  title =        "The Denotational Semantics of Dynamic Networks of
                 Processes",
  journal =      j-TOPLAS,
  volume =       "7",
  number =       "4",
  pages =        "656--679",
  month =        oct,
  year =         "1985",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/4473.html",
  acknowledgement = ack-pb,
  keywords =     "languages; theory",
  subject =      "{\bf D.3.1}: Software, PROGRAMMING LANGUAGES, Formal
                 Definitions and Theory, Semantics. {\bf D.3.3}:
                 Software, PROGRAMMING LANGUAGES, Language Constructs
                 and Features, Concurrent programming structures. {\bf
                 D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Coroutines. {\bf F.3.2}:
                 Theory of Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Semantics of Programming Languages, Denotational
                 semantics. {\bf D.3.2}: Software, PROGRAMMING
                 LANGUAGES, Language Classifications, DNP.",
  bibdate =      "Fri Oct 31 06:38:00 2003",
}

@Article{Cohen:1985:NCE,
  author =       "Norman H. Cohen",
  title =        "A note on {Cohen}'s {``Eliminating Redundant Recursive
                 Calls''}",
  journal =      j-TOPLAS,
  volume =       "7",
  number =       "4",
  pages =        "680--685",
  month =        oct,
  year =         "1985",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jun 1 08:35:36 MDT 1996",
  bibsource =    "http://www.acm.org/pubs/toc/",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/215006.html",
  acknowledgement = ack-nhfb,
  keywords =     "algorithms; languages; performance; theory",
  subject =      "{\bf I.2.2}: Computing Methodologies, ARTIFICIAL
                 INTELLIGENCE, Automatic Programming, Program
                 transformation. {\bf D.1.2}: Software, PROGRAMMING
                 TECHNIQUES, Automatic Programming. {\bf D.3.3}:
                 Software, PROGRAMMING LANGUAGES, Language Constructs
                 and Features, Procedures, functions, and subroutines.
                 {\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Optimization. {\bf F.3.3}: Theory of
                 Computation, LOGICS AND MEANINGS OF PROGRAMS, Studies
                 of Program Constructs, Program and recursion schemes.
                 {\bf G.2.2}: Mathematics of Computing, DISCRETE
                 MATHEMATICS, Graph Theory, Graph algorithms. {\bf
                 G.2.2}: Mathematics of Computing, DISCRETE MATHEMATICS,
                 Graph Theory, Trees.",
}

@Article{Clark:1986:PPP,
  author =       "Keith Clark and Steve Gregory",
  title =        "{Parlog}: parallel programming in logic",
  journal =      j-TOPLAS,
  volume =       "8",
  number =       "1",
  pages =        "1--49",
  month =        jan,
  year =         "1986",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/5390.html",
  acknowledgement = ack-pb,
  keywords =     "design; languages",
  subject =      "{\bf D.3.2}: Software, PROGRAMMING LANGUAGES, Language
                 Classifications, PARLOG. {\bf D.3.2}: Software,
                 PROGRAMMING LANGUAGES, Language Classifications,
                 Applicative languages. {\bf D.3.3}: Software,
                 PROGRAMMING LANGUAGES, Language Constructs and
                 Features, Concurrent programming structures. {\bf
                 D.3.2}: Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Prolog. {\bf I.2.3}: Computing
                 Methodologies, ARTIFICIAL INTELLIGENCE, Deduction and
                 Theorem Proving, Logic programming.",
}

@Article{Leeman:1986:FAU,
  author =       "George B. {Leeman, Jr.}",
  title =        "A Formal Approach to Undo Operations in Programming
                 Languages",
  journal =      j-TOPLAS,
  volume =       "8",
  number =       "1",
  pages =        "50--87",
  month =        jan,
  year =         "1986",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/5005.html",
  acknowledgement = ack-pb,
  keywords =     "design; human factors; languages",
  subject =      "{\bf D.2.5}: Software, SOFTWARE ENGINEERING, Testing
                 and Debugging, Error handling and recovery. {\bf
                 D.2.2}: Software, SOFTWARE ENGINEERING, Tools and
                 Techniques. {\bf D.2.6}: Software, SOFTWARE
                 ENGINEERING, Programming Environments. {\bf D.3.3}:
                 Software, PROGRAMMING LANGUAGES, Language Constructs
                 and Features, Procedures, functions, and subroutines.
                 {\bf D.4.5}: Software, OPERATING SYSTEMS, Reliability,
                 Checkpoint/restart. {\bf H.2.1}: Information Systems,
                 DATABASE MANAGEMENT, Logical Design, Data models. {\bf
                 H.2.7}: Information Systems, DATABASE MANAGEMENT,
                 Database Administration, Logging and recovery. {\bf
                 I.2.8}: Computing Methodologies, ARTIFICIAL
                 INTELLIGENCE, Problem Solving, Control Methods, and
                 Search, Backtracking.",
}

@Article{Keller:1986:AC,
  author =       "Robert M. Keller and M. Ronan Sleep",
  title =        "Applicative Caching",
  journal =      j-TOPLAS,
  volume =       "8",
  number =       "1",
  pages =        "88--108",
  month =        jan,
  year =         "1986",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/5004.html",
  acknowledgement = ack-pb,
  keywords =     "design; experimentation; languages; measurement;
                 performance",
  subject =      "{\bf D.3.2}: Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Applicative languages. {\bf D.1.1}:
                 Software, PROGRAMMING TECHNIQUES, Applicative
                 (Functional) Programming. {\bf D.1.3}: Software,
                 PROGRAMMING TECHNIQUES, Concurrent Programming. {\bf
                 E.2}: Data, DATA STORAGE REPRESENTATIONS. {\bf D.3.4}:
                 Software, PROGRAMMING LANGUAGES, Processors.",
}

@Article{Pingali:1986:EDD,
  author =       "Keshav Pingali and Arvind",
  title =        "Efficient Demand-Driven Evaluation. Part 2",
  journal =      j-TOPLAS,
  volume =       "8",
  number =       "1",
  pages =        "109--139",
  month =        jan,
  year =         "1986",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  abstract =     "In Part 1 of this paper [5], we presented a scheme
                 whereby a compiler could propagate demands through
                 programs in a powerful stream language L. A data-driven
                 evaluation of the transformed program performed exactly
                 the same computation as a demand-driven evaluation of
                 the original program. In this paper we explore a
                 different transformation, which trades the complexity
                 of demand propagation for a {\em bounded\/} amount of
                 extra computation on some data lines.",
  acknowledgement = ack-pb,
  subject =      "Categories and Subject Descriptors: Software
                 -Programming Techniques - Applicative (Functional)
                 Programming (D.1.1); Software -Programming Techniques -
                 Concurrent Programming (D.1.3); Software -Programming
                 Languages - Formal Definitions and Theory (D.3.1):
                 Semantics ; Theory of Computation -Logics and Meanings
                 of Programs - Semantics of Programming Languages
                 (F.3.2); Software -Programming Languages - Processors
                 (D.3.4); Theory of Computation -Logics and Meanings of
                 Programs - Studies of Program Constructs (F.3.3);
                 Software -Programming Languages - Language
                 Classifications (D.3.2); Software -Programming
                 Languages - Language Classifications (D.3.2): Data-flow
                 languages ; Software -Programming Languages -
                 Processors (D.3.4): Optimization ; Software
                 -Programming Languages - Language Classifications
                 (D.3.2): LD ; General Terms: Algorithms, Languages,
                 Theory, Verification",
}

@Article{Pingali:1986:CFI,
  author =       "Keshav Pingali and Arvind",
  title =        "Clarification of ``{Feeding} Inputs on Demand'' in
                 {Efficient} Demand-Driven Evaluation. Part 1",
  journal =      j-TOPLAS,
  volume =       "8",
  number =       "1",
  pages =        "140--141",
  month =        jan,
  year =         "1986",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/5003.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; languages; theory; verification",
  subject =      "{\bf D.1.1}: Software, PROGRAMMING TECHNIQUES,
                 Applicative (Functional) Programming. {\bf D.1.3}:
                 Software, PROGRAMMING TECHNIQUES, Concurrent
                 Programming. {\bf D.3.1}: Software, PROGRAMMING
                 LANGUAGES, Formal Definitions and Theory, Semantics.
                 {\bf F.3.2}: Theory of Computation, LOGICS AND MEANINGS
                 OF PROGRAMS, Semantics of Programming Languages. {\bf
                 D.3.4}: Software, PROGRAMMING LANGUAGES, Processors.
                 {\bf F.3.3}: Theory of Computation, LOGICS AND MEANINGS
                 OF PROGRAMS, Studies of Program Constructs. {\bf
                 D.3.2}: Software, PROGRAMMING LANGUAGES, Language
                 Classifications. {\bf D.3.2}: Software, PROGRAMMING
                 LANGUAGES, Language Classifications, Data-flow
                 languages. {\bf D.3.4}: Software, PROGRAMMING
                 LANGUAGES, Processors, Optimization. {\bf D.3.2}:
                 Software, PROGRAMMING LANGUAGES, Language
                 Classifications, LD.",
}

@Article{Misra:1986:AMA,
  author =       "Jayadev Misra",
  title =        "Axioms for Memory Access in Asynchronous Hardware
                 Systems",
  journal =      j-TOPLAS,
  volume =       "8",
  number =       "1",
  pages =        "142--153",
  month =        jan,
  year =         "1986",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/5007.html",
  acknowledgement = ack-pb,
  keywords =     "design; verification",
  subject =      "{\bf D.1.3}: Software, PROGRAMMING TECHNIQUES,
                 Concurrent Programming. {\bf B.3.2}: Hardware, MEMORY
                 STRUCTURES, Design Styles, Sequential-access memory.
                 {\bf B.5.1}: Hardware, REGISTER-TRANSFER-LEVEL
                 IMPLEMENTATION, Design, Memory design. {\bf B.4.3}:
                 Hardware, INPUT/OUTPUT AND DATA COMMUNICATIONS,
                 Interconnections (subsystems), Asynchronous/synchronous
                 operation.",
}

@Article{Gouda:1986:PLN,
  author =       "Mohamed G. Gouda and Chung-Kou Chang",
  title =        "Proving Liveness for Networks of Communicating Finite
                 State Machines",
  journal =      j-TOPLAS,
  volume =       "8",
  number =       "1",
  pages =        "154--182",
  month =        jan,
  year =         "1986",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/5002.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; theory; verification",
  subject =      "{\bf B.4.4}: Hardware, INPUT/OUTPUT AND DATA
                 COMMUNICATIONS, Performance Analysis and Design Aids,
                 Formal models. {\bf C.2.2}: Computer Systems
                 Organization, COMPUTER-COMMUNICATION NETWORKS, Network
                 Protocols, Protocol architecture. {\bf C.2.2}: Computer
                 Systems Organization, COMPUTER-COMMUNICATION NETWORKS,
                 Network Protocols, Protocol verification. {\bf D.2.4}:
                 Software, SOFTWARE ENGINEERING, Program Verification,
                 Correctness proofs. {\bf F.3.1}: Theory of Computation,
                 LOGICS AND MEANINGS OF PROGRAMS, Specifying and
                 Verifying and Reasoning about Programs. {\bf D.1.3}:
                 Software, PROGRAMMING TECHNIQUES, Concurrent
                 Programming.",
}

@Article{Chirica:1986:TCI,
  author =       "Laurian M. Chirica and David F. Martin",
  title =        "Toward Compiler Implementation Correctness Proofs",
  journal =      j-TOPLAS,
  volume =       "8",
  number =       "2",
  pages =        "185--214",
  month =        apr,
  year =         "1986",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/30847.html",
  acknowledgement = ack-pb,
  keywords =     "languages; verification",
  subject =      "{\bf F.3.2}: Theory of Computation, LOGICS AND
                 MEANINGS OF PROGRAMS, Semantics of Programming
                 Languages, Denotational semantics. {\bf F.3.2}: Theory
                 of Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Semantics of Programming Languages, Algebraic
                 approaches to semantics. {\bf F.3.1}: Theory of
                 Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Specifying and Verifying and Reasoning about Programs,
                 Specification techniques. {\bf F.3.1}: Theory of
                 Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Specifying and Verifying and Reasoning about Programs,
                 Pre- and post-conditions. {\bf F.3.1}: Theory of
                 Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Specifying and Verifying and Reasoning about Programs,
                 Invariants. {\bf F.3.1}: Theory of Computation, LOGICS
                 AND MEANINGS OF PROGRAMS, Specifying and Verifying and
                 Reasoning about Programs, Assertions. {\bf D.3.4}:
                 Software, PROGRAMMING LANGUAGES, Processors, Parsing.
                 {\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Compilers. {\bf D.2.4}: Software, SOFTWARE
                 ENGINEERING, Program Verification, Correctness
                 proofs.",
}

@Article{Spooner:1986:MAR,
  author =       "C. R. Spooner",
  title =        "The {ML} Approach to the Readable All-Purpose
                 Language",
  journal =      j-TOPLAS,
  volume =       "8",
  number =       "2",
  pages =        "215--243",
  month =        apr,
  year =         "1986",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/5918.html",
  acknowledgement = ack-pb,
  keywords =     "design; languages",
  subject =      "{\bf D.3.2}: Software, PROGRAMMING LANGUAGES, Language
                 Classifications, ML. {\bf D.3.4}: Software, PROGRAMMING
                 LANGUAGES, Processors. {\bf D.3.3}: Software,
                 PROGRAMMING LANGUAGES, Language Constructs and
                 Features.",
}

@Article{Clarke:1986:AVF,
  author =       "E. M. Clarke and E. A. Emerson and A. P. Sistla",
  title =        "Automatic Verification of Finite-State Concurrent
                 Systems Using Temporal Logic Specifications",
  journal =      j-TOPLAS,
  volume =       "8",
  number =       "2",
  pages =        "244--263",
  month =        apr,
  year =         "1986",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Object/Nierstrasz.bib, Ai/nonmono.bib,
                 Compiler/Compiler.Lins.bib, Compiler/TOPLAS.bib,
                 Database/dbase.bib",
  note =         "An early version appeared in {\em Proc.~10th ACM
                 Symposium on Principles of Programming Languages},
                 1983",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/5399.html",
  acknowledgement = ack-pb,
  keywords =     "concurrency regular processes binder; verification",
  subject =      "{\bf D.2.4}: Software, SOFTWARE ENGINEERING, Program
                 Verification. {\bf F.3.1}: Theory of Computation,
                 LOGICS AND MEANINGS OF PROGRAMS, Specifying and
                 Verifying and Reasoning about Programs, Mechanical
                 verification. {\bf F.3.1}: Theory of Computation,
                 LOGICS AND MEANINGS OF PROGRAMS, Specifying and
                 Verifying and Reasoning about Programs. {\bf F.4.1}:
                 Theory of Computation, MATHEMATICAL LOGIC AND FORMAL
                 LANGUAGES, Mathematical Logic.",
}

@Article{Sager:1986:SPC,
  author =       "Thomas J. Sager",
  title =        "A Short Proof of a Conjecture of {DeRemer} and
                 {Pennello}",
  journal =      j-TOPLAS,
  volume =       "8",
  number =       "2",
  pages =        "264--271",
  month =        apr,
  year =         "1986",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/30850.html",
  acknowledgement = ack-pb,
  keywords =     "languages; theory",
  subject =      "{\bf D.3.1}: Software, PROGRAMMING LANGUAGES, Formal
                 Definitions and Theory, Syntax. {\bf F.4.2}: Theory of
                 Computation, MATHEMATICAL LOGIC AND FORMAL LANGUAGES,
                 Grammars and Other Rewriting Systems, Grammar types.
                 {\bf F.4.3}: Theory of Computation, MATHEMATICAL LOGIC
                 AND FORMAL LANGUAGES, Formal Languages, Classes defined
                 by grammars or automata.",
}

@Article{Tichy:1986:SR,
  author =       "Walter F. Tichy",
  title =        "Smart Recompilation",
  journal =      j-TOPLAS,
  volume =       "8",
  number =       "3",
  pages =        "273--291",
  month =        jul,
  year =         "1986",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/5959.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; languages; performance",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Compilers. {\bf D.2.2}: Software, SOFTWARE
                 ENGINEERING, Tools and Techniques, Modules and
                 interfaces. {\bf D.2.2}: Software, SOFTWARE
                 ENGINEERING, Tools and Techniques, Software libraries.
                 {\bf D.2.6}: Software, SOFTWARE ENGINEERING,
                 Programming Environments. {\bf D.2.7}: Software,
                 SOFTWARE ENGINEERING, Distribution and Maintenance,
                 Version control.",
}

@Article{Turchin:1986:CS,
  author =       "Valentin F. Turchin",
  title =        "The Concept of a Supercompiler",
  journal =      j-TOPLAS,
  volume =       "8",
  number =       "3",
  pages =        "292--325",
  month =        jul,
  year =         "1986",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/5957.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; design; languages; performance; theory",
  subject =      "{\bf D.3.2}: Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Refal. {\bf D.3.2}: Software,
                 PROGRAMMING LANGUAGES, Language Classifications. {\bf
                 D.3.4}: Software, PROGRAMMING LANGUAGES, Processors,
                 Compilers. {\bf F.3.1}: Theory of Computation, LOGICS
                 AND MEANINGS OF PROGRAMS, Specifying and Verifying and
                 Reasoning about Programs. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Optimization.",
}

@Article{Chandy:1986:ESR,
  author =       "K. M. Chandy and Jayadev Misra",
  title =        "An Example of Stepwise Refinement of Distributed
                 Programs: Quiescence Detection",
  journal =      j-TOPLAS,
  volume =       "8",
  number =       "3",
  pages =        "326--343",
  month =        jul,
  year =         "1986",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/5958.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; theory",
  subject =      "{\bf D.1.3}: Software, PROGRAMMING TECHNIQUES,
                 Concurrent Programming. {\bf D.4.1}: Software,
                 OPERATING SYSTEMS, Process Management, Deadlocks. {\bf
                 F.3.1}: Theory of Computation, LOGICS AND MEANINGS OF
                 PROGRAMS, Specifying and Verifying and Reasoning about
                 Programs.",
}

@Article{Hennessy:1986:PSS,
  author =       "Matthew Hennessy",
  title =        "Proving Systolic Systems Correct",
  journal =      j-TOPLAS,
  volume =       "8",
  number =       "3",
  pages =        "344--387",
  month =        jul,
  year =         "1986",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/5999.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; design; languages; theory; verification",
  subject =      "{\bf B.7.1}: Hardware, INTEGRATED CIRCUITS, Types and
                 Design Styles, Algorithms implemented in hardware. {\bf
                 D.2.4}: Software, SOFTWARE ENGINEERING, Program
                 Verification, Correctness proofs. {\bf F.3.1}: Theory
                 of Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Specifying and Verifying and Reasoning about Programs,
                 Mechanical verification. {\bf F.3.1}: Theory of
                 Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Specifying and Verifying and Reasoning about Programs,
                 Specification techniques. {\bf D.2.1}: Software,
                 SOFTWARE ENGINEERING, Requirements/Specifications,
                 Languages.",
}

@Article{Apt:1986:CPD,
  author =       "Krzysztof R. Apt",
  title =        "Correctness Proofs of Distributed Termination
                 Algorithms",
  journal =      j-TOPLAS,
  volume =       "8",
  number =       "3",
  pages =        "388--405",
  month =        jul,
  year =         "1986",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/6000.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; theory; verification",
  subject =      "{\bf D.1.3}: Software, PROGRAMMING TECHNIQUES,
                 Concurrent Programming. {\bf F.3.1}: Theory of
                 Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Specifying and Verifying and Reasoning about Programs.
                 {\bf D.2.4}: Software, SOFTWARE ENGINEERING, Program
                 Verification, Correctness proofs. {\bf D.1.3}:
                 Software, PROGRAMMING TECHNIQUES, Concurrent
                 Programming, CSP.",
}

@Article{Nielson:1986:TCC,
  author =       "Flemming Nielson and Hanne Riis Nielson",
  title =        "Technical Correspondence: Comments on {Georgeff}'s
                 ``{Transformations and Reduction Strategies for Typed
                 Lambda Expressions}''",
  journal =      j-TOPLAS,
  volume =       "8",
  number =       "3",
  pages =        "406--407",
  month =        jul,
  year =         "1986",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  note =         "See \cite{Georgeff:1984:TRS}",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/215007.html",
  acknowledgement = ack-pb,
  keywords =     "languages; theory",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors. {\bf D.1.1}: Software, PROGRAMMING
                 TECHNIQUES, Applicative (Functional) Programming. {\bf
                 F.4.1}: Theory of Computation, MATHEMATICAL LOGIC AND
                 FORMAL LANGUAGES, Mathematical Logic, Lambda calculus
                 and related systems.",
}

@Article{Krogh:1986:AAP,
  author =       "F. T. Krogh",
  title =        "{ACM} Algorithms Policy",
  journal =      j-TOPLAS,
  volume =       "8",
  number =       "3",
  pages =        "408--411",
  month =        jul,
  year =         "1986",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 6 15:04:03 1996",
  bibsource =    "Misc/IMMD_IV.bib",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:1986:IA,
  author =       "Anonymous",
  title =        "Information for Authors",
  journal =      j-TOPLAS,
  volume =       "8",
  number =       "3",
  pages =        "412--415",
  month =        jul,
  year =         "1986",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  acknowledgement = ack-pb,
}

@Article{Reps:1986:GEI,
  author =       "Thomas Reps",
  title =        "{Guest Editor}'s Introduction",
  journal =      j-TOPLAS,
  volume =       "8",
  number =       "4",
  pages =        "417--418",
  month =        oct,
  year =         "1986",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  acknowledgement = ack-pb,
}

@Article{Swinehart:1986:SVC,
  author =       "Daniel Swinehart and Polle Zellweger and Richard Beach
                 and Robert Hagemann",
  title =        "A Structural View of the {Cedar} Programming
                 Environment",
  journal =      j-TOPLAS,
  volume =       "8",
  number =       "4",
  pages =        "419--490",
  month =        oct,
  year =         "1986",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Mon Jan 19 14:55:31 1987",
  bibsource =    "Object/Nierstrasz.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib, Misc/programming.env.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/6466.html",
  abstract =     "This paper presents an overview of the Cedar
                 programming environment, focusing on its overall
                 structure-that is, the major components of Cedar and
                 the way they are organized. Cedar supports the
                 development of programs written in a single programming
                 language, also called Cedar. Its primary purpose is to
                 increase the productivity of programmers whose
                 activities include experimental programming and the
                 development of prototype software systems for a
                 high-performance personal computer. The paper
                 emphasizes the extent to which the Cedar language, with
                 run-time support, has influenced the organization,
                 flexibility, usefulness, and stability of the Cedar
                 environment. It highlights the novel system features of
                 Cedar, including automatic storage management of
                 dynamically allocated typed values, a run-time type
                 system that provides run-time access to Cedar data type
                 definitions and allows interpretive manipulation of
                 typed values, and a powerful device-independent imaging
                 model that supports the user interface facilities.
                 Using these discussions to set the context, the paper
                 addresses the language and system features and the
                 methodologies used to facilitate the integration of
                 Cedar applications. A comparison of Cedar with other
                 programming environments further identifies areas where
                 Cedar excels and areas where work remains to be done.",
  acknowledgement = ack-pb,
  keywords =     "design; experimental programming; experimentation;
                 integrated programming environment; languages;
                 olit-oopl cedar; open operating system; strongly typed
                 programming language",
  owner =        "manning",
  subject =      "{\bf D.2.6}: Software, SOFTWARE ENGINEERING,
                 Programming Environments, CEDAR. {\bf D.2.2}: Software,
                 SOFTWARE ENGINEERING, Tools and Techniques. {\bf
                 D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features. {\bf D.4.0}: Software,
                 OPERATING SYSTEMS, General. {\bf D.4.7}: Software,
                 OPERATING SYSTEMS, Organization and Design. {\bf H.0}:
                 Information Systems, GENERAL.",
}

@Article{Cooper:1986:IIA,
  author =       "Keith D. Cooper and Ken Kennedy and Linda Torczon",
  title =        "The impact of interprocedural analysis and
                 optimizations in the {R}(n) programming environment",
  journal =      j-TOPLAS,
  volume =       "8",
  number =       "4",
  pages =        "491--523",
  month =        oct,
  year =         "1986",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Mon Jan 19 15:05:31 1987",
  bibsource =    "Misc/programming.env.bib, Compiler/Compiler.Lins.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/6489.html",
  abstract =     "In spite of substantial progress in the theory of
                 interprocedural data flow analysis, few practical
                 compiling systems can afford to apply it to produce
                 more efficient object programs. To perform
                 interprocedural analysis, a compiler needs not only the
                 source code of the module being compiled, but also
                 information about the side effects of every procedure
                 in the program containing that module, even separately
                 compiled procedures. In a conventional batch compiler
                 system, the increase in compilation time required to
                 gather this information would make the whole process
                 impractical. In an integrated programming environment,
                 however, other tools can cooperate with the compiler to
                 compute the necessary interprocedural information
                 incrementally as the program is being developed,
                 decreasing both the overall cost of the analysis and
                 the cost of individual compilations. A central goal of
                 the Rn project at Rice University is to construct a
                 prototype software development environment that is
                 designed to build whole programs, rather than just
                 individual modules. It employs interprocedural analysis
                 and optimization to produce high-quality machine code
                 for whole programs. This paper presents an overview of
                 the methods used by the environment to accomplish this
                 task and discusses the impact of these methods on the
                 various environment components. The responsibilities of
                 each component of the environment for the preparation
                 and use of interprocedural information are presented in
                 detail.",
  acknowledgement = ack-pb,
  keywords =     "algorithms; data flow analysis; design; languages;
                 performance",
  owner =        "manning",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Optimization. {\bf D.2.6}: Software,
                 SOFTWARE ENGINEERING, Programming Environments. {\bf
                 D.3.4}: Software, PROGRAMMING LANGUAGES, Processors,
                 Compilers.",
}

@Article{Moriconi:1986:PSP,
  author =       "Mark Moriconi and Dwight Hare",
  title =        "The {PegaSys} System: Pictures as Formal Documentation
                 of Large Programs",
  journal =      j-TOPLAS,
  volume =       "8",
  number =       "4",
  pages =        "524--546",
  month =        oct,
  year =         "1986",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Feb 24 09:59:21 1996",
  bibsource =    "Misc/programming.env.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/6478.html",
  abstract =     "PegaSys is an experimental system in which a user
                 formally describes how a program is put together by
                 means of a hierarchically structured collection of
                 pictures, called formal dependency diagrams (FDDs).
                 Icons in an FDD demote a wide range of data and control
                 dependencies among the relatively coarse-grained
                 entities contained in large programs. Dependencies
                 considered atomic with respect to one level in a
                 hierarchy can be decomposed into a number of
                 dependencies at a lower level. Each dependency can be
                 predefined primitive of the FDD language or it can be
                 defined by a PegaSys user in terms of the primitives. A
                 PegaSys user is given the illusion that logical
                 formulas do not exist, even thought PegaSys reasons
                 about them internally. This involves (1) checking
                 whether an FDD is meaningful syntactically, (2)
                 determining whether hierarchical refinements of an FDD
                 are methodologically sound, and (3) deciding whether an
                 FDD hierarchy is logically consistent with the program
                 that it is intended to describe. The techniques used to
                 provide these capabilities are discussed along with the
                 logical properties that enable PegaSys to maintain the
                 user illusion.",
  keywords =     "Ada; data and control dependencies; design; design
                 hierarchy; documentation; experimentation; graphical
                 formalism; languages; mechanical decision procedure;
                 programming in the large; theory; verification",
  owner =        "manning",
  subject =      "{\bf D.2.6}: Software, SOFTWARE ENGINEERING,
                 Programming Environments, PegaSys. {\bf D.2.2}:
                 Software, SOFTWARE ENGINEERING, Tools and Techniques,
                 User interfaces. {\bf D.2.1}: Software, SOFTWARE
                 ENGINEERING, Requirements/Specifications. {\bf F.3.1}:
                 Theory of Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Specifying and Verifying and Reasoning about Programs,
                 Mechanical verification. {\bf D.2.10}: Software,
                 SOFTWARE ENGINEERING, Design.",
}

@Article{Bahlke:1986:PSF,
  author =       "Rolf Bahlke and Gregor Snelting",
  title =        "The {PSG} System: From Formal Language Definitions to
                 Interactive Programming Environments",
  journal =      j-TOPLAS,
  volume =       "8",
  number =       "4",
  pages =        "547--576",
  month =        oct,
  year =         "1986",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 09:41:04 1996",
  bibsource =    "Misc/sigplan.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib, Misc/programming.env.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/20890.html",
  abstract =     "The PSG programming system generator developed at the
                 Technical University of Darmstadt produces interactive,
                 language-specific programming environments from formal
                 language definitions. All language-dependent parts of
                 the environment are generated from an entirely
                 nonprocedural specification of the language's syntax,
                 context conditions, and dynamic semantics. The
                 generated environment consists of a language-based
                 editor, supporting systematic program development by
                 named program fragments, an interpreter, and a fragment
                 library system. The major component of the environment
                 is a full-screen editor, which allows both structure
                 and text editing. In structure mode the editor
                 guarantees prevention of both syntactic and semantic
                 errors, whereas in textual semantic analysis which is
                 based on unification. The algorithm will immediately
                 detect semantic errors even in incomplete program
                 fragments. The dynamic semantics of the language are
                 defined in denotational style using a functional
                 language based on the lambda calculus. Program
                 fragments are compiled to terms of the functional
                 language which are executed by an interpreter. The PSG
                 generator has been used to produce environments for
                 Pascal, ALGOL 60, MODULA-2, and the formal language
                 definition language itself.",
  acknowledgement = ack-pb # " and " # ack-nhfb,
  keywords =     "algorithms; design; documentation; languages; theory;
                 theory and verification and Hybrid editor and
                 unification-based incremental semantic analysis;
                 verification",
  owner =        "manning",
  review =       "ACM CR 8711-0926",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Compilers. {\bf D.2.3}: Software, SOFTWARE
                 ENGINEERING, Coding, Program editors. {\bf D.2.6}:
                 Software, SOFTWARE ENGINEERING, Programming
                 Environments. {\bf D.3.1}: Software, PROGRAMMING
                 LANGUAGES, Formal Definitions and Theory, Semantics.
                 {\bf D.3.1}: Software, PROGRAMMING LANGUAGES, Formal
                 Definitions and Theory, Syntax. {\bf D.2.3}: Software,
                 SOFTWARE ENGINEERING, Coding, Pretty printers. {\bf
                 F.3.2}: Theory of Computation, LOGICS AND MEANINGS OF
                 PROGRAMS, Semantics of Programming Languages. {\bf
                 F.4.2}: Theory of Computation, MATHEMATICAL LOGIC AND
                 FORMAL LANGUAGES, Grammars and Other Rewriting Systems,
                 Grammar types. {\bf F.4.2}: Theory of Computation,
                 MATHEMATICAL LOGIC AND FORMAL LANGUAGES, Grammars and
                 Other Rewriting Systems, Parsing. {\bf I.2.3}:
                 Computing Methodologies, ARTIFICIAL INTELLIGENCE,
                 Deduction and Theorem Proving, Deduction.",
}

@Article{Horwitz:1986:GEE,
  author =       "Susan Horwitz and Tim Teitelbaum",
  title =        "Generating Editing Environments Based on Relations and
                 Attributes",
  journal =      j-TOPLAS,
  volume =       "8",
  number =       "4",
  pages =        "577--608",
  month =        oct,
  year =         "1986",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Tue Jan 20 11:19:15 1987",
  bibsource =    "Misc/programming.env.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/6512.html",
  abstract =     "The ability to generate language-based editors depends
                 on the existence of a powerful, language-independent
                 model of editing. A model is proposed in which programs
                 are represented as attributed abstract-syntax trees
                 with an associated relational database. Relations can
                 depend on state of the attributed tree, and attributes
                 can depend on the values in relations, provided there
                 are no circular dependencies. The power and the
                 limitations of relational operations are demonstrated
                 with respect to the support of static-semantic
                 checking, anomaly detection, an interrogation facility,
                 and the ability to define alternative program displays.
                 The advantages of the hybrid system over both the
                 purely relational and purely attribute-based systems
                 are presented, and new algorithms are given for query
                 evaluation and incremental view updating motivated by
                 the efficiency requirements of interactive editing
                 under the defined model. A prototype implementation of
                 an editor generator is described, and suggestions for
                 future research are made.",
  acknowledgement = ack-pb,
  keywords =     "algorithms; design; documentation; languages;
                 relational database; verification and attribute grammar
                 and generating language-based editors and incremental
                 view updating",
  owner =        "manning",
  subject =      "{\bf D.2.3}: Software, SOFTWARE ENGINEERING, Coding,
                 Program editors. {\bf D.2.6}: Software, SOFTWARE
                 ENGINEERING, Programming Environments. {\bf D.3.4}:
                 Software, PROGRAMMING LANGUAGES, Processors. {\bf
                 H.2.1}: Information Systems, DATABASE MANAGEMENT,
                 Logical Design, Data models. {\bf H.2.4}: Information
                 Systems, DATABASE MANAGEMENT, Systems, Query
                 processing.",
}

@Article{Anonymous:1986:AI,
  author =       "Anonymous",
  title =        "1986 Author Index",
  journal =      j-TOPLAS,
  volume =       "8",
  number =       "4",
  pages =        "609--610",
  month =        oct,
  year =         "1986",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 13:41:06 1996",
  acknowledgement = ack-pb,
}

@Article{Wing:1987:WLI,
  author =       "Jeannette M. Wing",
  title =        "Writing {Larch} Interface Language Specifications",
  journal =      j-TOPLAS,
  volume =       "9",
  number =       "1",
  pages =        "1--24",
  month =        jan,
  year =         "1987",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/10500.html",
  acknowledgement = ack-pb,
  keywords =     "design; languages; verification",
  subject =      "{\bf D.2.1}: Software, SOFTWARE ENGINEERING,
                 Requirements/Specifications, Languages. {\bf D.2.1}:
                 Software, SOFTWARE ENGINEERING,
                 Requirements/Specifications, Methodologies. {\bf
                 D.2.2}: Software, SOFTWARE ENGINEERING, Tools and
                 Techniques, Modules and interfaces. {\bf D.3.2}:
                 Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Larch. {\bf D.3.3}: Software,
                 PROGRAMMING LANGUAGES, Language Constructs and
                 Features, Abstract data types. {\bf D.3.3}: Software,
                 PROGRAMMING LANGUAGES, Language Constructs and
                 Features, Modules, packages. {\bf D.3.3}: Software,
                 PROGRAMMING LANGUAGES, Language Constructs and
                 Features, Procedures, functions, and subroutines. {\bf
                 F.3.1}: Theory of Computation, LOGICS AND MEANINGS OF
                 PROGRAMS, Specifying and Verifying and Reasoning about
                 Programs, Pre- and post-conditions. {\bf F.3.1}: Theory
                 of Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Specifying and Verifying and Reasoning about Programs,
                 Specification techniques.",
}

@Article{Carson:1987:GSP,
  author =       "Scott D. Carson and Paul F. {Reynolds, Jr.}",
  title =        "The Geometry of Semaphore Programs",
  journal =      j-TOPLAS,
  volume =       "9",
  number =       "1",
  pages =        "25--53",
  month =        jan,
  year =         "1987",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/9759.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; theory",
  subject =      "{\bf D.4.1}: Software, OPERATING SYSTEMS, Process
                 Management, Synchronization. {\bf D.4.1}: Software,
                 OPERATING SYSTEMS, Process Management, Concurrency.
                 {\bf D.4.1}: Software, OPERATING SYSTEMS, Process
                 Management, Deadlocks. {\bf D.1.3}: Software,
                 PROGRAMMING TECHNIQUES, Concurrent Programming. {\bf
                 D.4.1}: Software, OPERATING SYSTEMS, Process
                 Management, Mutual exclusion. {\bf G.2.2}: Mathematics
                 of Computing, DISCRETE MATHEMATICS, Graph Theory, Graph
                 algorithms.",
}

@Article{Broy:1987:ADP,
  author =       "Manfred Broy and Martin Wirsing and Peter Pepper",
  title =        "On the Algebraic Definition of Programming Languages",
  journal =      j-TOPLAS,
  volume =       "9",
  number =       "1",
  pages =        "54--99",
  month =        jan,
  year =         "1987",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/10501.html",
  acknowledgement = ack-pb,
  keywords =     "languages; theory",
  subject =      "{\bf F.3.1}: Theory of Computation, LOGICS AND
                 MEANINGS OF PROGRAMS, Specifying and Verifying and
                 Reasoning about Programs, Specification techniques.
                 {\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features. {\bf F.3.2}: Theory of
                 Computation, LOGICS AND MEANINGS OF PROGRAMS, Semantics
                 of Programming Languages, Algebraic approaches to
                 semantics. {\bf D.3.1}: Software, PROGRAMMING
                 LANGUAGES, Formal Definitions and Theory.",
}

@Article{Sokolowski:1987:SHL,
  author =       "Stefan Soko{\l}owski",
  title =        "Soundness of {Hoare}'s Logic: An Automated Proof Using
                 {LCF}",
  journal =      j-TOPLAS,
  volume =       "9",
  number =       "1",
  pages =        "100--120",
  month =        jan,
  year =         "1987",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/11326.html",
  acknowledgement = ack-pb,
  keywords =     "theory; verification",
  subject =      "{\bf F.3.1}: Theory of Computation, LOGICS AND
                 MEANINGS OF PROGRAMS, Specifying and Verifying and
                 Reasoning about Programs. {\bf F.4.1}: Theory of
                 Computation, MATHEMATICAL LOGIC AND FORMAL LANGUAGES,
                 Mathematical Logic. {\bf I.2.3}: Computing
                 Methodologies, ARTIFICIAL INTELLIGENCE, Deduction and
                 Theorem Proving.",
}

@Article{Cohen:1987:PCU,
  author =       "Jacques Cohen and Timothy J. Hickey",
  title =        "Parsing and Compiling Using {Prolog}",
  journal =      j-TOPLAS,
  volume =       "9",
  number =       "2",
  pages =        "125--163",
  month =        apr,
  year =         "1987",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Mon Jun 29 10:47:01 1987",
  bibsource =    "Compiler/compiler.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/22946.html",
  abstract =     "This paper presents the material needed for exposing
                 the reader to the advantages of using Prolog as a
                 language for describing succinctly most of the
                 algorithms needed in prototyping and implementing
                 compilers or producing tools that facilitate this task.
                 The available published material on the subject
                 describes one particular approach in implementing
                 compilers using Prolog. It consists of coupling actions
                 to recursive descent parsers to produce syntax-trees
                 which are subsequently utilized in guiding the
                 generation of assembly language code. Although this
                 remains a worthwhile approach, there is a host of
                 possibilities for Prolog usage in compiler
                 construction. The primary aim of this paper is to
                 demonstrate the use of Prolog in parsing and compiling.
                 A second, but equally important, goal of this paper is
                 to show that Prolog is a labor-saving tool in
                 prototyping and implementing many non-numerical
                 algorithms which arise in compiling, and whose
                 description using Prolog is not available in the
                 literature. The paper discusses the use of unification
                 and nondeterminism in compiler writing as well as means
                 to bypass these (costly) features when they are deemed
                 unnecessary. Topics covered include bottom-up and
                 top-down parsers, syntax-directed translation, grammar
                 properties, parser generation, code generation, and
                 optimizations. Newly proposed features that are useful
                 in compiler construction are also discussed. A
                 knowledge of Prolog is assumed.",
  acknowledgement = ack-pb,
  keywords =     "algorithms; code generation; grammar properties;
                 languages; optimization; parsing; theory;
                 verification",
  owner =        "manning",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors. {\bf D.3.2}: Software, PROGRAMMING
                 LANGUAGES, Language Classifications, Prolog. {\bf
                 D.1.0}: Software, PROGRAMMING TECHNIQUES, General.",
}

@Article{Burke:1987:PML,
  author =       "Michael G. Burke and Gerald A. Fisher",
  title =        "A Practical Method for {LR} and {LL} Syntactic Error
                 Diagnosis and Recovery",
  journal =      j-TOPLAS,
  volume =       "9",
  number =       "2",
  pages =        "164--197",
  month =        apr,
  year =         "1987",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Mon Jun 29 11:01:25 1987",
  bibsource =    "Compiler/compiler.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/22720.html",
  abstract =     "This paper presents a powerful, practical, and
                 essentially language-independent syntactic error
                 diagnosis and recovery method that is applicable within
                 the frameworks of LR and LL parsing. The method
                 generally issues accurate diagnoses even where multiple
                 errors occur within close proximity, yet seldom issues
                 spurious error messages. It employs a new technique,
                 parse action deferral, that allows the most appropriate
                 recovery in cases where this would ordinarily be
                 precluded by late detection of the error. The method is
                 practical in that it does not impose substantial space
                 or time overhead on the parsing of correct programs,
                 and in that its time efficiency in processing an error
                 allows for it incorporation in a production compiler.
                 The method is language independent, but it does allow
                 for tuning with respect to particular languages and
                 implementations through the setting of
                 language-specific parameters.",
  acknowledgement = ack-pb,
  keywords =     "algorithms; languages; LL parser; LR parser; syntactic
                 error diagnosis; syntactic error recovery; syntactic
                 error repair",
  owner =        "manning",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Compilers. {\bf D.2.6}: Software, SOFTWARE
                 ENGINEERING, Programming Environments. {\bf D.2.2}:
                 Software, SOFTWARE ENGINEERING, Tools and Techniques,
                 User interfaces. {\bf D.2.5}: Software, SOFTWARE
                 ENGINEERING, Testing and Debugging, Error handling and
                 recovery. {\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Parsing.",
}

@Article{Feather:1987:LSS,
  author =       "Martin S. Feather",
  title =        "Language Support for the Specification and Development
                 of Composite Systems",
  journal =      j-TOPLAS,
  volume =       "9",
  number =       "2",
  pages =        "198--234",
  month =        apr,
  year =         "1987",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Mon Jun 29 11:08:03 1987",
  bibsource =    "Misc/softeng.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/22947.html",
  abstract =     "When a complex system is to be realized as a
                 combination of interacting components, development of
                 those components should commence from a specification
                 of the behavior required of the composite system. A
                 separate specification should be used to describe the
                 decomposition of that system into components. The first
                 phase of implementation from a specification in this
                 style is the derivation of the individual component
                 behaviors implied by these specifications. The virtues
                 of this approach to specification are expounded, and
                 specification language features that are supportive of
                 it are presented. It is shown how these are
                 incorporated in the specification language Gist, which
                 our group has developed. These issues are illustrated
                 in a development of a controller for elevators serving
                 passengers in a multistory building.",
  acknowledgement = ack-pb,
  keywords =     "composite systems; design; distributed decomposition;
                 interactive systems; languages; theory; verification",
  owner =        "manning",
  subject =      "{\bf D.2.1}: Software, SOFTWARE ENGINEERING,
                 Requirements/Specifications, Languages. {\bf D.2.1}:
                 Software, SOFTWARE ENGINEERING,
                 Requirements/Specifications, Methodologies. {\bf
                 D.3.1}: Software, PROGRAMMING LANGUAGES, Formal
                 Definitions and Theory, Semantics. {\bf D.2.1}:
                 Software, SOFTWARE ENGINEERING,
                 Requirements/Specifications, Gist. {\bf D.3.2}:
                 Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Very high-level languages. {\bf
                 D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features. {\bf F.3.1}: Theory of
                 Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Specifying and Verifying and Reasoning about Programs,
                 Specification techniques.",
}

@Article{Finkel:1987:DDI,
  author =       "Raphael Finkel and Udi Manber",
  title =        "{DIB} --- {A} distributed implementation of
                 backtracking",
  journal =      j-TOPLAS,
  volume =       "9",
  number =       "2",
  pages =        "235--256",
  month =        apr,
  year =         "1987",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Mon Jun 29 11:22:11 1987",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib,
                 Ai/ai.bib, Ai/nonmono.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/24067.html",
  abstract =     "DIB is a general-purpose package that allows a wide
                 range of applications such as recursive backtrack,
                 branch and bound, and alpha-beta search to be
                 implemented on a multicomputer. It is very easy to use.
                 The application program needs to specify only the root
                 of the recursion tree, the computation to be performed
                 at each node, and how to generate children at each
                 node. In addition, the application and how to
                 disseminate information (such as bounds) either
                 globally or locally in the tree. DIB uses a distributed
                 algorithm, transparent to the application programmer,
                 that divides the problem into subproblems and
                 dynamically allocates them to any number of
                 (potentially nonhomogeneous) machines. This algorithm
                 requires only minimal support from the distributed
                 operating system. DIB can recover from failures of
                 machines even if they are not detected DIB currently
                 runs on the Crystal multicomputer at the University of
                 Wisconsin-Madison. Many applications have been
                 implemented quite easily, including exhaustive
                 traversal (N queens, knight's tour, megamax tree
                 evaluation), branch and bound (traveling salesman) and
                 alpha-beta search (the game of NIM). Speedup is
                 excellent for exhaustive traversal and quite good for
                 branch and bound.",
  acknowledgement = ack-pb,
  keywords =     "algorithms; backtracking; branch and bound; design;
                 distributed algorithms; local-area networks; networks
                 of workstations; reliability",
  owner =        "manning",
  subject =      "{\bf C.2.4}: Computer Systems Organization,
                 COMPUTER-COMMUNICATION NETWORKS, Distributed Systems,
                 Distributed applications. {\bf D.1.3}: Software,
                 PROGRAMMING TECHNIQUES, Concurrent Programming. {\bf
                 D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Concurrent programming
                 structures. {\bf D.4.1}: Software, OPERATING SYSTEMS,
                 Process Management, Concurrency. {\bf D.4.1}: Software,
                 OPERATING SYSTEMS, Process Management,
                 Multiprocessing/multiprogramming. {\bf D.4.5}:
                 Software, OPERATING SYSTEMS, Reliability,
                 Fault-tolerance. {\bf D.4.7}: Software, OPERATING
                 SYSTEMS, Organization and Design, Distributed
                 systems.",
}

@Article{Mueller:1987:RMS,
  author =       "Robert A. Mueller and Joseph Varghese",
  title =        "Retargetable Microcode Synthesis",
  journal =      j-TOPLAS,
  volume =       "9",
  number =       "2",
  pages =        "257--276",
  month =        apr,
  year =         "1987",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Mon Jun 29 11:30:12 1987",
  bibsource =    "Misc/arch.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/23717.html",
  abstract =     "Most work on automating the translation of high-level
                 microprogramming languages into microcode has dealt
                 with lexical and syntactic analysis and the use of
                 manually produced macro tables for code generation. We
                 describe an approach to and some results on the
                 formalization and automation of the more difficult
                 problem of retargeting local code generation in a
                 machine-independent, optimizing microcode synthesis
                 system. Whereas this problem is similar in many ways to
                 that of retargeting local code generation in high-level
                 language compilers, there are some major differences
                 that call for new approaches. The primary issues
                 addressed in this paper are the representation of
                 target microprogrammable machines, the intermediate
                 representation of local microprogram function, and
                 general algorithmic methods for deriving local
                 microcode from target machine and microcode function
                 specifications. Of particular interest are the use of
                 formal semantics and data flow principles in achieving
                 both a general and reasonably efficient solution.
                 Examples of the modeling of a representative horizontal
                 machine (the PUMA) and the generation of microcode for
                 the PUMA machine model from our working implementation
                 are presented.",
  acknowledgement = ack-pb,
  keywords =     "data antidependency; data dependency; Design; flow
                 graph; languages; machine description; microcode
                 compaction; microcode generation; microinstruction set
                 processors; microprogramming",
  owner =        "manning",
  subject =      "{\bf B.1.4}: Hardware, CONTROL STRUCTURES AND
                 MICROPROGRAMMING, Microprogram Design Aids, Languages
                 and compilers. {\bf B.1.4}: Hardware, CONTROL
                 STRUCTURES AND MICROPROGRAMMING, Microprogram Design
                 Aids, Machine-independent microcode generation. {\bf
                 D.3.4}: Software, PROGRAMMING LANGUAGES, Processors,
                 Code generation. {\bf D.3.4}: Software, PROGRAMMING
                 LANGUAGES, Processors, Compilers. {\bf D.3.4}:
                 Software, PROGRAMMING LANGUAGES, Processors, Translator
                 writing systems and compiler generators.",
}

@Article{Fraser:1987:ERC,
  author =       "Christopher W. Fraser and Eugene W. Myers",
  title =        "An Editor for Revision Control",
  journal =      j-TOPLAS,
  volume =       "9",
  number =       "2",
  pages =        "277--295",
  month =        apr,
  year =         "1987",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 11:07:27 1996",
  bibsource =    "Misc/programming.env.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/22948.html",
  abstract =     "Programming environments support revision control in
                 several guises. Explicitly, revision control softwre
                 manages the trees of revisions that grow as software is
                 modified. Implicitly, editors retain past versions by
                 automatically saving backup copies and by allowing
                 users to undo commands. This paper describes an editor
                 that offers a uniform solution to these problems by
                 never destroying the old version of the file being
                 edited. It represents files using a generalization of
                 AVL trees called ``AVL dags,'' which makes it
                 affordable to automatically retain past versions of
                 files. Automatic retention makes revision maintenance
                 transparent to users. The editor also uses the same
                 command language to edit both text and revision
                 trees.",
  acknowledgement = ack-pb,
  keywords =     "algorithms; Algorithms and design and languages and
                 management and editor and persistent data type; design;
                 languages; management; revision control; undo command",
  owner =        "manning",
  subject =      "{\bf D.2.7}: Software, SOFTWARE ENGINEERING,
                 Distribution and Maintenance, Version control. {\bf
                 D.2.6}: Software, SOFTWARE ENGINEERING, Programming
                 Environments. {\bf D.1.1}: Software, PROGRAMMING
                 TECHNIQUES, Applicative (Functional) Programming. {\bf
                 E.1}: Data, DATA STRUCTURES, Lists. {\bf I.7.1}:
                 Computing Methodologies, TEXT PROCESSING, Text
                 Editing.",
}

@Article{Lamb:1987:ISI,
  author =       "David Alex Lamb",
  title =        "{IDL}: Sharing Intermediate Representations",
  journal =      j-TOPLAS,
  volume =       "9",
  number =       "3",
  pages =        "297--318",
  month =        jul,
  year =         "1987",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Aug 21 09:04:21 1987",
  bibsource =    "Misc/programming.env.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/24040.html",
  abstract =     "IDL (Interface Description Language) is a practical
                 and useful tool for controlling the exchange of
                 structured data between different components of a large
                 system. IDL is a notation for describing collections of
                 programs and the data structures through which they
                 communicate. Using IDL, a designer gives abstract
                 descriptions of data structures, together with
                 representation specifications that specialize the
                 abstract structures of particular programs. A tool, the
                 IDL translator, generates readers and writers that map
                 between concrete internal representations and abstract
                 exchange representations. data between",
  acknowledgement = ack-pb,
  keywords =     "Data representation; data structures; design;
                 input/output; languages; performance; software
                 engineering; system design",
  owner =        "manning",
  subject =      "{\bf D.2.2}: Software, SOFTWARE ENGINEERING, Tools and
                 Techniques, Modules and interfaces. {\bf D.2.6}:
                 Software, SOFTWARE ENGINEERING, Programming
                 Environments. {\bf D.3.4}: Software, PROGRAMMING
                 LANGUAGES, Processors, Run-time environments. {\bf
                 E.2}: Data, DATA STORAGE REPRESENTATIONS. {\bf H.2.3}:
                 Information Systems, DATABASE MANAGEMENT, Languages,
                 Data description languages (DDL).",
}

@Article{Ferrante:1987:PDG,
  author =       "Jeanne Ferrante and Karl J. Ottenstein and Joe D.
                 Warren",
  title =        "The Program Dependence Graph and its Use in
                 Optimization",
  journal =      j-TOPLAS,
  volume =       "9",
  number =       "3",
  pages =        "319--349",
  month =        jul,
  year =         "1987",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Wed Sep 2 13:23:46 1987",
  bibsource =    "Compiler/compiler.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/24041.html",
  abstract =     "In this paper, we present an intermediate program
                 representation, called the program dependence
                 graph-PDG-, that makes explicit both the data and
                 control dependences for each operation in a program.
                 Data dependences have been used to represent only the
                 relevant data flow relationships of a program. Control
                 dependences are introduced to analogously represent
                 only the essential control of a program. Control
                 dependences are derived from the usual control flow
                 graph. Many traditional optimizations operate more
                 efficiently on the PDG. Since dependences in the PDG
                 connect computationally related parts of the program, a
                 single walk of these dependences is sufficient to
                 perform many optimizations. The PDG allows
                 transformations such as vectorization, that previously
                 required special treatment of control dependence, to be
                 performed in a manner that is uniform for both control
                 and data dependences. Program transformations that
                 require interaction of the two dependence types can be
                 easily handled with our representation. As an example,
                 an incremental approach to modifying data dependences
                 resulting from branch deletion or loop unrolling is
                 introduced. The PDG supports incremental optimization,
                 permitting transformations to be triggered by one
                 another and applied only to affect dependences.",
  acknowledgement = ack-pb,
  keywords =     "algorithms; branch deletion; code motion; data flow;
                 debugging; dependence analysis; incremental data flow
                 analysis; intermediate program representation; internal
                 program form; languages; loop fusion; loop unrolling;
                 node splitting; parallelism; performance; slicing;
                 vectorization",
  owner =        "manning",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Compilers. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Optimization.",
}

@Article{Charlesworth:1987:MR,
  author =       "Arthur Charlesworth",
  title =        "The Multiway Rendezvous",
  journal =      j-TOPLAS,
  volume =       "9",
  number =       "3",
  pages =        "350--366",
  month =        jul,
  year =         "1987",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/24050.html",
  acknowledgement = ack-pb,
  keywords =     "languages",
  subject =      "{\bf D.4.1}: Software, OPERATING SYSTEMS, Process
                 Management, Mutual exclusion. {\bf D.3.3}: Software,
                 PROGRAMMING LANGUAGES, Language Constructs and
                 Features, Concurrent programming structures. {\bf
                 D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Control structures. {\bf
                 D.1.3}: Software, PROGRAMMING TECHNIQUES, Concurrent
                 Programming. {\bf D.4.1}: Software, OPERATING SYSTEMS,
                 Process Management, Concurrency.",
}

@Article{Holt:1987:DDC,
  author =       "Richard C. Holt",
  title =        "Data Descriptors: {A} Compile-Time Model of Data and
                 Addressing",
  journal =      j-TOPLAS,
  volume =       "9",
  number =       "3",
  pages =        "367--389",
  month =        jul,
  year =         "1987",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Wed Sep 2 13:49:06 1987",
  bibsource =    "Compiler/compiler.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/24051.html",
  abstract =     "Data descriptors, which have evolved from Wilcox's
                 value descriptors, are a notation for representing
                 run-time data objects at compile time. One of the
                 principal reasons for developing this notation was to
                 aid in the rapid construction of code generators,
                 especially for new microprocessors. Each data
                 descriptor contains a base, a displacement, and a level
                 of indirection. For example, a variable $x$ lying at
                 displacement 28 from base register B3 is represented by
                 this data descriptor: @B3.28. The general form of a
                 data descriptor is @kb.d.i where $k$ give the number of
                 levels of indirection, $b$ is a base, $d$ is a
                 displacement, and $i$ is an index. Data descriptors are
                 convenient for representing addressing in Fortran ---
                 with static allocation and common blocks-in Pascal and
                 Turing-with automatic allocation and stack frames ---
                 and in more general languages such as Euclid and PL/1.
                 This generality of data descriptors allows code
                 generation to be largely machine independent. This
                 paper gives a machine independent method for storage
                 allocation that uses data descriptors. Techniques are
                 given for local optimization of basic arithmetic and
                 addressing code using data descriptors. Target machine
                 dependencies are isolated so that the part of the code
                 generator that handles high-level addressing-such as
                 subscripting-is machine independent. The techniques
                 described in this paper have proven effective in the
                 rapid development of a number of production code
                 generators.",
  acknowledgement = ack-pb,
  keywords =     "addressability; addressing modes; array subscripting;
                 base displacement addressing; code generation; code
                 optimization; compiler structure; compilers; data
                 alignment; data descriptor; display based addressing;
                 language translators; languages; machine idioms;
                 machine-independent code generation; optimal addition;
                 portable compiler; storage allocation",
  owner =        "manning",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Code generation. {\bf E.2}: Data, DATA
                 STORAGE REPRESENTATIONS.",
}

@Article{Yemini:1987:ATE,
  author =       "Shaula Yemini and Daniel M. Berry",
  title =        "An Axiomatic Treatment of Exception Handling in an
                 Expression-Oriented Language",
  journal =      j-TOPLAS,
  volume =       "9",
  number =       "3",
  pages =        "390--407",
  month =        jul,
  year =         "1987",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Theory/obscure.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  note =         "See remarks \cite{Yemini:1988:TCA}.",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/24052.html",
  acknowledgement = ack-pb,
  keywords =     "design; languages; theory; verification",
  subject =      "{\bf D.2.4}: Software, SOFTWARE ENGINEERING, Program
                 Verification, Correctness proofs. {\bf D.3.1}:
                 Software, PROGRAMMING LANGUAGES, Formal Definitions and
                 Theory, Semantics. {\bf D.3.3}: Software, PROGRAMMING
                 LANGUAGES, Language Constructs and Features, Control
                 structures. {\bf F.3.1}: Theory of Computation, LOGICS
                 AND MEANINGS OF PROGRAMS, Specifying and Verifying and
                 Reasoning about Programs. {\bf F.3.3}: Theory of
                 Computation, LOGICS AND MEANINGS OF PROGRAMS, Studies
                 of Program Constructs, Control primitives. {\bf D.3.2}:
                 Software, PROGRAMMING LANGUAGES, Language
                 Classifications, ALGOL-68.",
}

@Article{Reps:1987:SSE,
  author =       "Thomas Reps and Alan Demers",
  title =        "Sublinear-Space Evaluation Algorithms for Attribute
                 Grammars",
  journal =      j-TOPLAS,
  volume =       "9",
  number =       "3",
  pages =        "408--440",
  month =        jul,
  year =         "1987",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Wed Sep 2 13:55:34 1987",
  bibsource =    "Misc/programming.env.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/214529.html",
  abstract =     "A major drawback of attribute-grammar-based systems is
                 that they are profligate consumers of storage. This
                 paper concerns new storage-management techniques that
                 reduce the number of attribute values retained at any
                 stage of attribute evaluation; it presents an
                 algorithms for evaluating an $n$-attribute tree that
                 never retains more than $O-\log n$-attribute values.
                 This method is optimal, although it may require
                 nonlinear time. A second algorithm, which never retains
                 more than $O$-square root $n$-attribute values, it also
                 presented, both as an introduction to the $O-\log
                 n$-method and because it works in linear time.",
  acknowledgement = ack-pb,
  keywords =     "algorithms; attribute evaluation; attribute grammar
                 and language-based editor and spill file; theory",
  owner =        "manning",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Translator writing systems and compiler
                 generators. {\bf D.3.1}: Software, PROGRAMMING
                 LANGUAGES, Formal Definitions and Theory, Semantics.
                 {\bf F.3.2}: Theory of Computation, LOGICS AND MEANINGS
                 OF PROGRAMS, Semantics of Programming Languages,
                 Denotational semantics.",
}

@Article{Banerjee:1987:MSR,
  author =       "Debasish Banerjee",
  title =        "A Methodology for Synthesis of Recursive Functional
                 Programs",
  journal =      j-TOPLAS,
  volume =       "9",
  number =       "3",
  pages =        "441--462",
  month =        jul,
  year =         "1987",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/24071.html",
  acknowledgement = ack-pb,
  keywords =     "languages; theory",
  subject =      "{\bf D.1.1}: Software, PROGRAMMING TECHNIQUES,
                 Applicative (Functional) Programming. {\bf D.2.1}:
                 Software, SOFTWARE ENGINEERING,
                 Requirements/Specifications, Methodologies. {\bf
                 D.3.1}: Software, PROGRAMMING LANGUAGES, Formal
                 Definitions and Theory, Semantics. {\bf F.3.2}: Theory
                 of Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Semantics of Programming Languages, Algebraic
                 approaches to semantics. {\bf F.3.2}: Theory of
                 Computation, LOGICS AND MEANINGS OF PROGRAMS, Semantics
                 of Programming Languages, Denotational semantics. {\bf
                 F.3.3}: Theory of Computation, LOGICS AND MEANINGS OF
                 PROGRAMS, Studies of Program Constructs, Functional
                 constructs. {\bf I.2.2}: Computing Methodologies,
                 ARTIFICIAL INTELLIGENCE, Automatic Programming, Program
                 synthesis.",
}

@Article{Krogh:1987:AAP,
  author =       "F. T. Krogh",
  title =        "{ACM} Algorithms Policy",
  journal =      j-TOPLAS,
  volume =       "9",
  number =       "3",
  pages =        "463--466",
  month =        jul,
  year =         "1987",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 6 13:43:09 1996",
  bibsource =    "Misc/IMMD_IV.bib",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:1987:IA,
  author =       "Anonymous",
  title =        "Information for Authors",
  journal =      j-TOPLAS,
  volume =       "9",
  number =       "3",
  pages =        "467--470",
  month =        jul,
  year =         "1987",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  acknowledgement = ack-pb,
}

@Article{Sonnenschein:1987:GTS,
  author =       "Michael Sonnenschein",
  title =        "Graph Translation Schemes to Generate Compiler Parts",
  journal =      j-TOPLAS,
  volume =       "9",
  number =       "4",
  pages =        "473--490",
  month =        oct,
  year =         "1987",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Mon Feb 15 12:34:06 1988",
  bibsource =    "Misc/programming.env.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/29874.html",
  abstract =     "Graph translation schemes-GTSs-are a generalization of
                 attribute grammars and of some ideas in Koster's
                 language CDL2. They are specially designed to support a
                 compiler writer in defining parts of the back-end of
                 his compiler, but they can also be useful for the
                 specification of the analysis pass of a compiler. GTSs
                 combine elements of functional and of algorithmic
                 specification techniques to allow iterative attribute
                 evaluation and attributing of program graphs. GTSs
                 consist of only a few syntactical elements. We present
                 operational semantics and discuss improvements in the
                 efficiency of the proposed implementation of GTSs.",
  acknowledgement = ack-pb,
  keywords =     "attribute grammars; data flow analysis; design;
                 grammars; graph-oriented intermediate languages;
                 languages; program graphs",
  owner =        "manning",
  subject =      "{\bf D.3.2}: Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Design languages. {\bf D.3.4}:
                 Software, PROGRAMMING LANGUAGES, Processors, Compilers.
                 {\bf F.4.2}: Theory of Computation, MATHEMATICAL LOGIC
                 AND FORMAL LANGUAGES, Grammars and Other Rewriting
                 Systems.",
}

@Article{Allen:1987:ATF,
  author =       "Randy Allen and Ken Kennedy",
  title =        "Automatic Translation of {Fortran} Programs to Vector
                 Form",
  journal =      j-TOPLAS,
  volume =       "9",
  number =       "4",
  pages =        "491--542",
  month =        oct,
  year =         "1987",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Mon Feb 15 12:46:31 1988",
  bibsource =    "Misc/programming.env.bib, Parallel/vectorization.bib,
                 Parallel/par.compiler.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib, Parallel/vectorization.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/29875.html",
  abstract =     "The recent success of vector computers such as the
                 Cray-1 and array processors such as those manufactured
                 by Floating Point Systems has increased interest in
                 making vector operations available to the FORTRAN
                 programmer. The FORTRAN standards committee is
                 currently considering a successor to FORTRAN 77,
                 usually called FORTRAN 8x, that will permit the
                 programmer to explicitly specify vector and array
                 operations. Although FORTRAN 8x will make it convenient
                 to specify explicit vector operations in new programs,
                 it does little for existing code. In order to benefit
                 from the power of vector hardware, existing programs
                 will need to be rewritten in some language, presumably
                 FORTRAN 8x, that permits the explicit specification of
                 vector operations. One way to avoid a massive manual
                 recoding effort is to provide a translator that
                 discovers the parallelism implicit in a FORTRAN program
                 and automatically rewrites that program in FORTRAN 8x.
                 Such a translation from FORTRAN to FORTRAN 8x is not
                 straightforward because FORTRAN DO loops are not always
                 semantically equivalent to the corresponding FORTRAN 8x
                 parallel operation. The semantic difference between
                 these two constructs is precisely captured by the
                 concept of dependence. A translation from FORTRAN to
                 FORTRAN 8x preserves the semantics of the original
                 program if it preserves the dependences in that
                 program. The theoretical background is developed here
                 for employing data dependence to convert FORTRAN
                 programs to parallel form. Dependence is defined and
                 characterized in terms of the conditions that give rise
                 to it; accurate tests to determine dependence are
                 presented; and transformations that use dependence to
                 uncover additional parallelism are discussed.",
  acknowledgement = ack-pb,
  keywords =     "detection of parallelism; FORTRAN; language
                 translators; languages; vector computing",
  owner =        "manning",
  subject =      "{\bf D.1.2}: Software, PROGRAMMING TECHNIQUES,
                 Automatic Programming. {\bf D.1.3}: Software,
                 PROGRAMMING TECHNIQUES, Concurrent Programming. {\bf
                 D.3.4}: Software, PROGRAMMING LANGUAGES, Processors,
                 Optimization.",
}

@Article{Rosenkrantz:1987:EAA,
  author =       "D. J. Rosenkrantz and H. B. Hunt",
  title =        "Efficient Algorithms for Automatic Construction and
                 Compactification of Parsing Grammars",
  journal =      j-TOPLAS,
  volume =       "9",
  number =       "4",
  pages =        "543--566",
  month =        oct,
  year =         "1987",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/29876.html",
  acknowledgement = ack-pb,
  keywords =     "design; languages; theory",
  subject =      "{\bf F.4.2}: Theory of Computation, MATHEMATICAL LOGIC
                 AND FORMAL LANGUAGES, Grammars and Other Rewriting
                 Systems, Grammar types. {\bf F.4.2}: Theory of
                 Computation, MATHEMATICAL LOGIC AND FORMAL LANGUAGES,
                 Grammars and Other Rewriting Systems, Decision
                 problems. {\bf D.3.1}: Software, PROGRAMMING LANGUAGES,
                 Formal Definitions and Theory, Syntax. {\bf D.3.4}:
                 Software, PROGRAMMING LANGUAGES, Processors, Translator
                 writing systems and compiler generators. {\bf D.3.4}:
                 Software, PROGRAMMING LANGUAGES, Processors, Parsing.
                 {\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Compilers.",
}

@Article{Anson:1987:GIC,
  author =       "Ed Anson",
  title =        "A Generalized Iterative Construct and Its Semantics",
  journal =      j-TOPLAS,
  volume =       "9",
  number =       "4",
  pages =        "567--581",
  month =        oct,
  year =         "1987",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/30391.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; languages; theory; verification",
  subject =      "{\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Control structures. {\bf
                 D.3.1}: Software, PROGRAMMING LANGUAGES, Formal
                 Definitions and Theory, Semantics. {\bf D.2.4}:
                 Software, SOFTWARE ENGINEERING, Program Verification,
                 Correctness proofs.",
}

@Article{Haynes:1987:ECP,
  author =       "Christopher T. Haynes and Daniel P. Friedman",
  title =        "Embedding Continuations in Procedural Objects",
  journal =      j-TOPLAS,
  volume =       "9",
  number =       "4",
  pages =        "582--598",
  month =        oct,
  year =         "1987",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/30392.html",
  acknowledgement = ack-pb,
  keywords =     "languages; security; theory",
  subject =      "{\bf D.3.2}: Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Extensible languages. {\bf D.3.2}:
                 Software, PROGRAMMING LANGUAGES, Language
                 Classifications, LISP. {\bf D.3.2}: Software,
                 PROGRAMMING LANGUAGES, Language Classifications,
                 SCHEME. {\bf D.3.3}: Software, PROGRAMMING LANGUAGES,
                 Language Constructs and Features, Control structures.",
}

@Article{Cuny:1987:CDD,
  author =       "Janice E. Cuny and Lawrence Snyder",
  title =        "Conversion from Data-Driven to Synchronous Execution
                 in Loop Programs",
  journal =      j-TOPLAS,
  volume =       "9",
  number =       "4",
  pages =        "599--617",
  month =        oct,
  year =         "1987",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/31334.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; languages; performance",
  subject =      "{\bf C.1.2}: Computer Systems Organization, PROCESSOR
                 ARCHITECTURES, Multiple Data Stream Architectures
                 (Multiprocessors), Multiple-instruction-stream,
                 multiple-data-stream processors (MIMD). {\bf C.1.2}:
                 Computer Systems Organization, PROCESSOR ARCHITECTURES,
                 Multiple Data Stream Architectures (Multiprocessors),
                 Parallel processors. {\bf C.1.3}: Computer Systems
                 Organization, PROCESSOR ARCHITECTURES, Other
                 Architecture Styles, Adaptable architectures. {\bf
                 C.1.3}: Computer Systems Organization, PROCESSOR
                 ARCHITECTURES, Other Architecture Styles, Data-flow
                 architectures. {\bf D.3.3}: Software, PROGRAMMING
                 LANGUAGES, Language Constructs and Features. {\bf
                 D.3.4}: Software, PROGRAMMING LANGUAGES, Processors.
                 {\bf D.4.1}: Software, OPERATING SYSTEMS, Process
                 Management.",
}

@Article{Bic:1987:DDM,
  author =       "Lubomir Bic and Craig Lee",
  title =        "A Data-Driven Model for a Subset of Logic
                 Programming",
  journal =      j-TOPLAS,
  volume =       "9",
  number =       "4",
  pages =        "618--645",
  month =        oct,
  year =         "1987",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/31333.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; design; performance; theory",
  subject =      "{\bf F.4.1}: Theory of Computation, MATHEMATICAL LOGIC
                 AND FORMAL LANGUAGES, Mathematical Logic, Logic
                 programming. {\bf F.1.2}: Theory of Computation,
                 COMPUTATION BY ABSTRACT DEVICES, Modes of Computation,
                 Parallelism and concurrency. {\bf I.2.4}: Computing
                 Methodologies, ARTIFICIAL INTELLIGENCE, Knowledge
                 Representation Formalisms and Methods, Semantic
                 networks. {\bf C.1.3}: Computer Systems Organization,
                 PROCESSOR ARCHITECTURES, Other Architecture Styles,
                 Data-flow architectures.",
}

@Article{Loeckx:1987:ASC,
  author =       "Jacques Loeckx",
  title =        "Algorithmic Specifications: {A} Constructive
                 Specification Method for Abstract Data Types",
  journal =      j-TOPLAS,
  volume =       "9",
  number =       "4",
  pages =        "646--685",
  month =        oct,
  year =         "1987",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/30399.html",
  acknowledgement = ack-pb,
  keywords =     "languages; theory; verification",
  subject =      "{\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Abstract data types. {\bf
                 D.2.4}: Software, SOFTWARE ENGINEERING, Program
                 Verification, Correctness proofs. {\bf D.2.1}:
                 Software, SOFTWARE ENGINEERING,
                 Requirements/Specifications, Methodologies. {\bf
                 F.3.1}: Theory of Computation, LOGICS AND MEANINGS OF
                 PROGRAMS, Specifying and Verifying and Reasoning about
                 Programs, Specification techniques. {\bf F.3.3}: Theory
                 of Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Studies of Program Constructs, Type structure.",
}

@Article{Ryder:1988:IDF,
  author =       "Barbara G. Ryder and Marvin C. Paull",
  title =        "Incremental Data-flow Analysis Algorithms",
  journal =      j-TOPLAS,
  volume =       "10",
  number =       "1",
  pages =        "1--50",
  month =        jan,
  year =         "1988",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/42193.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; languages",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Optimization. {\bf D.3.3}: Software,
                 PROGRAMMING LANGUAGES, Language Constructs and
                 Features, Control structures. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors. {\bf F.2.2}: Theory
                 of Computation, ANALYSIS OF ALGORITHMS AND PROBLEM
                 COMPLEXITY, Nonnumerical Algorithms and Problems. {\bf
                 D.3.4}: Software, PROGRAMMING LANGUAGES, Processors,
                 Compilers.",
}

@Article{Andrews:1988:OSL,
  author =       "Gregory R. Andrews and Ronald A. Olsson and Michael
                 Coffin and Irving Elshoff and Kelvin Nilsen and Titus
                 Purdin and Gregg Townsend",
  title =        "An Overview of the {SR} Language and Implementation",
  journal =      j-TOPLAS,
  volume =       "10",
  number =       "1",
  pages =        "51--86",
  month =        jan,
  year =         "1988",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/42324.html",
  acknowledgement = ack-pb,
  keywords =     "languages",
  subject =      "{\bf C.2.4}: Computer Systems Organization,
                 COMPUTER-COMMUNICATION NETWORKS, Distributed Systems,
                 Distributed applications. {\bf C.2.4}: Computer Systems
                 Organization, COMPUTER-COMMUNICATION NETWORKS,
                 Distributed Systems, Network operating systems. {\bf
                 D.1.3}: Software, PROGRAMMING TECHNIQUES, Concurrent
                 Programming. {\bf D.3.3}: Software, PROGRAMMING
                 LANGUAGES, Language Constructs and Features. {\bf
                 D.3.2}: Software, PROGRAMMING LANGUAGES, Language
                 Classifications, SR.",
}

@Article{Hesselink:1988:MAN,
  author =       "W. H. Hesselink",
  title =        "A Mathematical Approach to Nondeterminism in Data
                 Types",
  journal =      j-TOPLAS,
  volume =       "10",
  number =       "1",
  pages =        "87--117",
  month =        jan,
  year =         "1988",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/42194.html",
  acknowledgement = ack-pb,
  keywords =     "design; languages; theory",
  subject =      "{\bf D.3.1}: Software, PROGRAMMING LANGUAGES, Formal
                 Definitions and Theory, Semantics. {\bf D.3.3}:
                 Software, PROGRAMMING LANGUAGES, Language Constructs
                 and Features, Abstract data types. {\bf F.1.2}: Theory
                 of Computation, COMPUTATION BY ABSTRACT DEVICES, Modes
                 of Computation, Alternation and nondeterminism. {\bf
                 F.3.3}: Theory of Computation, LOGICS AND MEANINGS OF
                 PROGRAMS, Studies of Program Constructs, Type
                 structure.",
}

@Article{Boute:1988:SSP,
  author =       "Raymond T. Boute",
  title =        "System Semantics: Principles, Applications, and
                 Implementation",
  journal =      j-TOPLAS,
  volume =       "10",
  number =       "1",
  pages =        "118--155",
  month =        jan,
  year =         "1988",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/45067.html",
  acknowledgement = ack-pb,
  keywords =     "design; documentation; languages; performance;
                 reliability; theory; verification",
  subject =      "{\bf F.3.2}: Theory of Computation, LOGICS AND
                 MEANINGS OF PROGRAMS, Semantics of Programming
                 Languages, Denotational semantics. {\bf F.3.2}: Theory
                 of Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Semantics of Programming Languages, Operational
                 semantics. {\bf D.2.6}: Software, SOFTWARE ENGINEERING,
                 Programming Environments. {\bf D.3.1}: Software,
                 PROGRAMMING LANGUAGES, Formal Definitions and Theory,
                 Semantics. {\bf D.3.1}: Software, PROGRAMMING
                 LANGUAGES, Formal Definitions and Theory, Syntax. {\bf
                 I.2.4}: Computing Methodologies, ARTIFICIAL
                 INTELLIGENCE, Knowledge Representation Formalisms and
                 Methods, Representation languages. {\bf I.1.3}:
                 Computing Methodologies, ALGEBRAIC MANIPULATION,
                 Languages and Systems, Special-purpose algebraic
                 systems.",
}

@Article{Reed:1988:SVL,
  author =       "Joylyn Reed and Raymond T. Yeh",
  title =        "Specification and Verification of Liveness Properties
                 of Cyclic, Concurrent Processes",
  journal =      j-TOPLAS,
  volume =       "10",
  number =       "1",
  pages =        "156--177",
  month =        jan,
  year =         "1988",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Object/Nierstrasz.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib, Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/42195.html",
  acknowledgement = ack-pb,
  keywords =     "concurrency liveness; design; verification",
  subject =      "{\bf D.2.1}: Software, SOFTWARE ENGINEERING,
                 Requirements/Specifications, Methodologies. {\bf
                 D.2.4}: Software, SOFTWARE ENGINEERING, Program
                 Verification, Correctness proofs. {\bf F.3.1}: Theory
                 of Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Specifying and Verifying and Reasoning about Programs,
                 Specification techniques.",
}

@Article{Murphy:1988:NDP,
  author =       "Sandra L. Murphy and A. Udaya Shankar",
  title =        "A Note on the Drinking Philosophers Problem (Technical
                 Correspondence)",
  journal =      j-TOPLAS,
  volume =       "10",
  number =       "1",
  pages =        "178--188",
  month =        jan,
  year =         "1988",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  acknowledgement = ack-pb,
}

@Article{Hilfinger:1988:APD,
  author =       "Paul N. Hilfinger",
  title =        "An {Ada} Package for Dimensional Analysis",
  journal =      j-TOPLAS,
  volume =       "10",
  number =       "2",
  pages =        "189--203",
  month =        apr,
  year =         "1988",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Tue May 17 14:11:24 1988",
  bibsource =    "Misc/softeng.bib, Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/42346.html",
  abstract =     "This paper illustrates the use of Ada's abstraction
                 facilities--notably, operator overloading and type
                 parameterization--to define an oft-requested feature: a
                 way to attribute units of measure to variables and
                 values. The definition given allows the programmer to
                 specify units of measure for variables, constants, and
                 parameters; checks uses of these entities for
                 dimensional consistency; allows arithmetic between
                 them, where legal; and provides scale conversions
                 between commensurate units. It is not constrained to a
                 particular system of measurement-such as the metric or
                 English systems. Although the definition is in standard
                 Ada and requires nothing special of the compiler,
                 certain reasonable design choices in the compiler,
                 discussed here at some length, can make its
                 implementation particularly efficient.",
  acknowledgement = ack-pb,
  keywords =     "dimensional analysis; language design; languages;
                 measurement; reliability; units",
  owner =        "manning",
  subject =      "{\bf D.3.2}: Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Ada. {\bf D.3.2}: Software,
                 PROGRAMMING LANGUAGES, Language Classifications,
                 Extensible languages. {\bf D.3.3}: Software,
                 PROGRAMMING LANGUAGES, Language Constructs and
                 Features, Data types and structures. {\bf D.3.3}:
                 Software, PROGRAMMING LANGUAGES, Language Constructs
                 and Features, Modules, packages. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Optimization.",
}

@Article{Wirth:1988:TE,
  author =       "Nicklaus Wirth",
  title =        "Type Extensions",
  journal =      j-TOPLAS,
  volume =       "10",
  number =       "2",
  pages =        "204--214",
  month =        apr,
  year =         "1988",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Tue May 17 14:16:02 1988",
  bibsource =    "Misc/softeng.bib, Misc/IMMD_IV.bib",
  note =         "See remarks \cite{Cohen:1991:TCT,Wirth:1991:TCR}.",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/46167.html",
  abstract =     "Software systems represent a hierarchy of modules.
                 Client modules contain sets of procedures that extend
                 the capabilities of imported modules. This concept of
                 extension is here applied to data types. Extended types
                 are related to their ancestor in terms of a hierarchy.
                 Variables of an extended type are compatible with
                 variables of the ancestor type. This scheme is
                 expressed by three language constructs only: the
                 declaration of extended record types, the type test,
                 and the type guard. The facility of extended types,
                 which closely resembles the class concept, is defined
                 in rigorous and concise terms, and an efficient
                 implementation is presented.",
  acknowledgement = ack-pb,
  keywords =     "Extensible data type; languages; Modula-2",
  owner =        "manning",
  subject =      "{\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Data types and structures.
                 {\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Code generation.",
}

@Article{vandenBos:1988:AIT,
  author =       "Jan {van den Bos}",
  title =        "Abstract Interaction Tools: {A} Language for User
                 Interface Management Systems",
  journal =      j-TOPLAS,
  volume =       "10",
  number =       "2",
  pages =        "215--247",
  month =        apr,
  year =         "1988",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/42191.html",
  acknowledgement = ack-pb,
  keywords =     "human factors; languages",
  subject =      "{\bf D.2.2}: Software, SOFTWARE ENGINEERING, Tools and
                 Techniques, User interfaces. {\bf D.3.3}: Software,
                 PROGRAMMING LANGUAGES, Language Constructs and
                 Features, Input/Output. {\bf H.1.2}: Information
                 Systems, MODELS AND PRINCIPLES, User/Machine Systems,
                 Human factors. {\bf I.3.6}: Computing Methodologies,
                 COMPUTER GRAPHICS, Methodology and Techniques.",
}

@Article{Metayer:1988:AAC,
  author =       "Daniel {Le M{\'e}tayer}",
  title =        "{ACE}: An Automatic Complexity Evaluator",
  journal =      j-TOPLAS,
  volume =       "10",
  number =       "2",
  pages =        "248--266",
  month =        apr,
  year =         "1988",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Parallel/Pfpbib.bib, Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/42347.html",
  abstract =     "There has been a great deal of research done on the
                 evaluation of the complexity of particular algorithms;
                 little effort, however, has been devoted to the
                 mechanization of this evaluation. The ACE (Automatic
                 Complexity Evaluator) system is able to analyze
                 reasonably large programs, like sorting programs, in a
                 fully mechanically way. A time-complexity function is
                 derived from the initial functional program. This
                 function is transformed into its nonrecursive
                 equivalent according to McCarthy's recursion induction
                 principle, using a predefined library of recursive
                 definitions. As the complexity is not a decidable
                 property, this transformation will not be possible in
                 all cases. The richer the predefined library is, the
                 more likely the system is to succeed. The operations
                 performed by ACE are described and the use ofthe system
                 is illustrated with the analysis of a sorting
                 algorithm. Related works and further improvements are
                 discussed in the conclusion.",
  acknowledgement = ack-pb,
  keywords =     "Granularity Analysis; languages; measurement;
                 performance",
  subject =      "{\bf D.2.8}: Software, SOFTWARE ENGINEERING, Metrics.
                 {\bf D.1.1}: Software, PROGRAMMING TECHNIQUES,
                 Applicative (Functional) Programming. {\bf D.2.6}:
                 Software, SOFTWARE ENGINEERING, Programming
                 Environments. {\bf I.2.2}: Computing Methodologies,
                 ARTIFICIAL INTELLIGENCE, Automatic Programming, Program
                 synthesis. {\bf I.2.2}: Computing Methodologies,
                 ARTIFICIAL INTELLIGENCE, Automatic Programming, Program
                 transformation.",
}

@Article{Lamport:1988:CPB,
  author =       "Leslie Lamport",
  title =        "Control Predicates are Better than Dummy Variables for
                 Reasoning about Program Control",
  journal =      j-TOPLAS,
  volume =       "10",
  number =       "2",
  pages =        "267--281",
  month =        apr,
  year =         "1988",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/42348.html",
  acknowledgement = ack-pb,
  keywords =     "theory; verification",
  subject =      "{\bf D.2.4}: Software, SOFTWARE ENGINEERING, Program
                 Verification, Correctness proofs. {\bf F.3.1}: Theory
                 of Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Specifying and Verifying and Reasoning about
                 Programs.",
}

@Article{Shasha:1988:ECE,
  author =       "Dennis Shasha and Marc Snir",
  title =        "Efficient and Correct Execution of Parallel Programs
                 that Share Memory",
  journal =      j-TOPLAS,
  volume =       "10",
  number =       "2",
  pages =        "282--312",
  month =        apr,
  year =         "1988",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/hash.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib, Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/42277.html",
  acknowledgement = ack-pb,
  keywords =     "design; languages; theory",
  subject =      "{\bf D.4.1}: Software, OPERATING SYSTEMS, Process
                 Management. {\bf C.2.4}: Computer Systems Organization,
                 COMPUTER-COMMUNICATION NETWORKS, Distributed Systems.",
}

@Article{Greenberg:1988:SEA,
  author =       "Albert G. Greenberg and Boris D. Lubachevsky and
                 Andrew M. Odlyzko",
  title =        "Simple, Efficient, Asynchronous Parallel Algorithms
                 for Maximization",
  journal =      j-TOPLAS,
  volume =       "10",
  number =       "2",
  pages =        "313--337",
  month =        apr,
  year =         "1988",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/42278.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; performance; theory",
  subject =      "{\bf C.1.2}: Computer Systems Organization, PROCESSOR
                 ARCHITECTURES, Multiple Data Stream Architectures
                 (Multiprocessors), Parallel processors. {\bf C.4}:
                 Computer Systems Organization, PERFORMANCE OF SYSTEMS,
                 Modeling techniques. {\bf G.1.0}: Mathematics of
                 Computing, NUMERICAL ANALYSIS, General, Parallel
                 algorithms.",
}

@Article{Bermudez:1988:NRB,
  author =       "Manuel E. Bermudez and Karl M. Schimpf",
  title =        "On the (non-) Relationship between {SLR}(1) and
                 {NQLALR}(1) Grammars (Technical Correspondence)",
  journal =      j-TOPLAS,
  volume =       "10",
  number =       "2",
  pages =        "338--342",
  month =        apr,
  year =         "1988",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/42276.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; languages; theory",
  subject =      "{\bf D.3.1}: Software, PROGRAMMING LANGUAGES, Formal
                 Definitions and Theory, Syntax. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Translator writing
                 systems and compiler generators. {\bf F.4.2}: Theory of
                 Computation, MATHEMATICAL LOGIC AND FORMAL LANGUAGES,
                 Grammars and Other Rewriting Systems, Parsing.",
}

@Article{Degano:1988:EIL,
  author =       "Pierpaolo Degano and Stefano Mannucci and Bruno
                 Mojana",
  title =        "Efficient Incremental {LR} Parsing for Syntax-Directed
                 Editors",
  journal =      j-TOPLAS,
  volume =       "10",
  number =       "3",
  pages =        "345--373",
  month =        jul,
  year =         "1988",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/214503.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; design; languages",
  subject =      "{\bf F.4.2}: Theory of Computation, MATHEMATICAL LOGIC
                 AND FORMAL LANGUAGES, Grammars and Other Rewriting
                 Systems, Parsing. {\bf D.2.3}: Software, SOFTWARE
                 ENGINEERING, Coding, Program editors. {\bf D.2.6}:
                 Software, SOFTWARE ENGINEERING, Programming
                 Environments. {\bf D.3.1}: Software, PROGRAMMING
                 LANGUAGES, Formal Definitions and Theory, Syntax.",
}

@Article{Dillon:1988:CET,
  author =       "Laura K. Dillon and George S. Avrunin and Jack C.
                 Wiledon",
  title =        "Constrained Expressions: Toward Broad Applicability of
                 Analysis Methods for Distributed Software Systems",
  journal =      j-TOPLAS,
  volume =       "10",
  number =       "3",
  pages =        "374--402",
  month =        jul,
  year =         "1988",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/44502.html",
  acknowledgement = ack-pb,
  keywords =     "design; languages; theory; verification",
  subject =      "{\bf F.3.1}: Theory of Computation, LOGICS AND
                 MEANINGS OF PROGRAMS, Specifying and Verifying and
                 Reasoning about Programs. {\bf D.4.7}: Software,
                 OPERATING SYSTEMS, Organization and Design, Distributed
                 systems. {\bf D.3.2}: Software, PROGRAMMING LANGUAGES,
                 Language Classifications, Design languages. {\bf
                 D.4.1}: Software, OPERATING SYSTEMS, Process
                 Management, Concurrency. {\bf F.4.3}: Theory of
                 Computation, MATHEMATICAL LOGIC AND FORMAL LANGUAGES,
                 Formal Languages, Algebraic language theory.",
}

@Article{Morgan:1988:SS,
  author =       "Carroll Morgan",
  title =        "The Specification Statement",
  journal =      j-TOPLAS,
  volume =       "10",
  number =       "3",
  pages =        "403--419",
  month =        jul,
  year =         "1988",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/Z.bib, Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/44503.html",
  acknowledgement = ack-pb,
  annote =       "Also reprinted in \cite{Morgan:1988:RC}.",
  keywords =     "theory; verification",
  subject =      "{\bf F.3.1}: Theory of Computation, LOGICS AND
                 MEANINGS OF PROGRAMS, Specifying and Verifying and
                 Reasoning about Programs, Specification techniques.
                 {\bf F.3.1}: Theory of Computation, LOGICS AND MEANINGS
                 OF PROGRAMS, Specifying and Verifying and Reasoning
                 about Programs, Pre- and post-conditions. {\bf D.2.1}:
                 Software, SOFTWARE ENGINEERING,
                 Requirements/Specifications, Methodologies. {\bf
                 D.2.2}: Software, SOFTWARE ENGINEERING, Tools and
                 Techniques, Top-down programming. {\bf D.2.4}:
                 Software, SOFTWARE ENGINEERING, Program Verification,
                 Correctness proofs.",
}

@Article{Olderog:1988:FPP,
  author =       "Ernst-{R\"udiger} Olderog and Krzysztof R. Apt",
  title =        "Fairness in Parallel Programs: The Transformational
                 Approach",
  journal =      j-TOPLAS,
  volume =       "10",
  number =       "3",
  pages =        "420--455",
  month =        jul,
  year =         "1988",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/44504.html",
  acknowledgement = ack-pb,
  keywords =     "languages; verification",
  subject =      "{\bf D.1.3}: Software, PROGRAMMING TECHNIQUES,
                 Concurrent Programming. {\bf D.4.1}: Software,
                 OPERATING SYSTEMS, Process Management, Concurrency.
                 {\bf F.3.1}: Theory of Computation, LOGICS AND MEANINGS
                 OF PROGRAMS, Specifying and Verifying and Reasoning
                 about Programs.",
}

@Article{Mauney:1988:DEL,
  author =       "Jon Mauney and Charles N. Fischer",
  title =        "Determining the Extent of Lookahead in Syntactic Error
                 Repair",
  journal =      j-TOPLAS,
  volume =       "10",
  number =       "3",
  pages =        "456--469",
  month =        jul,
  year =         "1988",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/44505.html",
  acknowledgement = ack-pb,
  keywords =     "languages; performance",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Parsing. {\bf D.3.4}: Software, PROGRAMMING
                 LANGUAGES, Processors, Compilers.",
}

@Article{Mitchell:1988:ATE,
  author =       "John C. Mitchell and Gordon D. Plotkin",
  title =        "Abstract Types Have Existential Type",
  journal =      j-TOPLAS,
  volume =       "10",
  number =       "3",
  pages =        "470--502",
  month =        jul,
  year =         "1988",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Object/Nierstrasz.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib, Misc/IMMD_IV.bib,
                 Compiler/prog.lang.theory.bib",
  note =         "Preliminary version appeared in {\em Proc. 12th ACM
                 Symp. on Principles of Programming Languages}, 1985",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/45065.html",
  acknowledgement = ack-pb,
  keywords =     "design; languages; theory; types fpl sol binder",
  subject =      "{\bf D.3.1}: Software, PROGRAMMING LANGUAGES, Formal
                 Definitions and Theory, Semantics. {\bf F.3.2}: Theory
                 of Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Semantics of Programming Languages.",
}

@Article{Yemini:1988:TCA,
  author =       "Shaula Yemini and Daniel M. Berry",
  title =        "Technical Correspondence: ``{An Axiomatic Treatment of
                 Exception Handling in an Expression-Oriented
                 Language}''",
  journal =      j-TOPLAS,
  volume =       "10",
  number =       "3",
  pages =        "503--504",
  month =        jul,
  year =         "1988",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  note =         "See \cite{Yemini:1987:ATE}.",
  acknowledgement = ack-pb,
}

@Article{Krogh:1988:AAP,
  author =       "F. T. Krogh",
  title =        "{ACM} Algorithms Policy",
  journal =      j-TOPLAS,
  volume =       "10",
  number =       "3",
  pages =        "504--507",
  month =        jul,
  year =         "1988",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 6 15:04:15 1996",
  bibsource =    "Misc/IMMD_IV.bib",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:1988:IA,
  author =       "Anonymous",
  title =        "Information for Authors",
  journal =      j-TOPLAS,
  volume =       "10",
  number =       "3",
  pages =        "508--511",
  month =        jul,
  year =         "1988",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 13:50:15 1996",
  acknowledgement = ack-pb,
}

@Article{Back:1988:DCA,
  author =       "R. J. R. Back and R. Kurki-Suonio",
  title =        "Distributed Cooperation with Action Systems",
  journal =      j-TOPLAS,
  volume =       "10",
  number =       "4",
  pages =        "513--554",
  month =        oct,
  year =         "1988",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/48023.html",
  acknowledgement = ack-pb,
  keywords =     "languages; theory; verification",
  subject =      "{\bf D.1.3}: Software, PROGRAMMING TECHNIQUES,
                 Concurrent Programming. {\bf D.3.3}: Software,
                 PROGRAMMING LANGUAGES, Language Constructs and
                 Features, Concurrent programming structures. {\bf
                 C.2.4}: Computer Systems Organization,
                 COMPUTER-COMMUNICATION NETWORKS, Distributed Systems.
                 {\bf F.3.1}: Theory of Computation, LOGICS AND MEANINGS
                 OF PROGRAMS, Specifying and Verifying and Reasoning
                 about Programs.",
}

@Article{Inoue:1988:AFP,
  author =       "Katsuro Inoue and Hiroyuki Seki and Hikaru Yagi",
  title =        "Analysis of Functional Programs to Detect Run-Time
                 Garbage Cells",
  journal =      j-TOPLAS,
  volume =       "10",
  number =       "4",
  pages =        "555--578",
  month =        oct,
  year =         "1988",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/garbage.collection.bib,
                 Compiler/Compiler.Lins.bib, Compiler/TOPLAS.bib,
                 Compiler/absint.bib, Compiler/Heaps.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/48025.html",
  acknowledgement = ack-pb,
  keywords =     "languages; performance",
  subject =      "{\bf D.4.2}: Software, OPERATING SYSTEMS, Storage
                 Management, Allocation/deallocation strategies. {\bf
                 D.3.2}: Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Applicative languages. {\bf D.3.4}:
                 Software, PROGRAMMING LANGUAGES, Processors,
                 Optimization. {\bf E.2}: Data, DATA STORAGE
                 REPRESENTATIONS, Linked representations.",
}

@Article{Kruskal:1988:ESM,
  author =       "Clyde P. Kruskal and Larry Rudolph and Marc Snir",
  title =        "Efficient Synchronization on Multiprocessors with
                 Shared Memory",
  journal =      j-TOPLAS,
  volume =       "10",
  number =       "4",
  pages =        "579--601",
  month =        oct,
  year =         "1988",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/48024.html",
  acknowledgement = ack-pb,
  keywords =     "design; theory; verification",
  subject =      "{\bf F.1.2}: Theory of Computation, COMPUTATION BY
                 ABSTRACT DEVICES, Modes of Computation, Parallelism and
                 concurrency. {\bf B.3.2}: Hardware, MEMORY STRUCTURES,
                 Design Styles, Shared memory. {\bf C.1.2}: Computer
                 Systems Organization, PROCESSOR ARCHITECTURES, Multiple
                 Data Stream Architectures (Multiprocessors),
                 Interconnection architectures. {\bf C.1.2}: Computer
                 Systems Organization, PROCESSOR ARCHITECTURES, Multiple
                 Data Stream Architectures (Multiprocessors),
                 Multiple-instruction-stream, multiple-data-stream
                 processors (MIMD). {\bf C.1.2}: Computer Systems
                 Organization, PROCESSOR ARCHITECTURES, Multiple Data
                 Stream Architectures (Multiprocessors), Parallel
                 processors.",
}

@Article{Kennaway:1988:DSC,
  author =       "Richard Kennaway and Ronan Sleep",
  title =        "Director Strings as Combinators",
  journal =      j-TOPLAS,
  volume =       "10",
  number =       "4",
  pages =        "602--626",
  month =        oct,
  year =         "1988",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  note =         "See corrigendum \cite{Kennaway:1989:CSC}.",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/48026.html",
  acknowledgement = ack-pb,
  keywords =     "languages; theory",
  subject =      "{\bf D.1.1}: Software, PROGRAMMING TECHNIQUES,
                 Applicative (Functional) Programming. {\bf D.3.1}:
                 Software, PROGRAMMING LANGUAGES, Formal Definitions and
                 Theory, Semantics. {\bf D.3.2}: Software, PROGRAMMING
                 LANGUAGES, Language Classifications, Applicative
                 languages. {\bf F.3.2}: Theory of Computation, LOGICS
                 AND MEANINGS OF PROGRAMS, Semantics of Programming
                 Languages.",
}

@Article{Schwanke:1988:SR,
  author =       "Robert W. Schwanke and Gail E. Kaiser",
  title =        "Smarter Recompilation",
  journal =      j-TOPLAS,
  volume =       "10",
  number =       "4",
  pages =        "627--632",
  month =        oct,
  year =         "1988",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  note =         "See remarks \cite{Tichy:1988:TCT}.",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/214505.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; languages; performance",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Compilers. {\bf D.2.2}: Software, SOFTWARE
                 ENGINEERING, Tools and Techniques, Modules and
                 interfaces. {\bf D.2.2}: Software, SOFTWARE
                 ENGINEERING, Tools and Techniques, Software libraries.
                 {\bf D.2.6}: Software, SOFTWARE ENGINEERING,
                 Programming Environments. {\bf D.2.7}: Software,
                 SOFTWARE ENGINEERING, Distribution and Maintenance,
                 Version control.",
}

@Article{Tichy:1988:TCT,
  author =       "Walter F. Tichy",
  title =        "Technical Correspondence: {Tichy}'s Response to {R. W.
                 Schwanke} and {G. E. Kaiser}'s ``{Smarter
                 Recompilation}''",
  journal =      j-TOPLAS,
  volume =       "10",
  number =       "4",
  pages =        "633--634",
  month =        oct,
  year =         "1988",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  note =         "See \cite{Schwanke:1988:SR}.",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/214507.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; languages; performance",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Compilers. {\bf D.2.2}: Software, SOFTWARE
                 ENGINEERING, Tools and Techniques, Modules and
                 interfaces. {\bf D.2.2}: Software, SOFTWARE
                 ENGINEERING, Tools and Techniques, Software libraries.
                 {\bf D.2.6}: Software, SOFTWARE ENGINEERING,
                 Programming Environments. {\bf D.2.7}: Software,
                 SOFTWARE ENGINEERING, Distribution and Maintenance,
                 Version control.",
}

@Article{Drechsler:1988:TCS,
  author =       "Karl-Heinz Drechsler and Manfred P. Stadel",
  title =        "Technical Correspondence: {A} Solution to a Problem
                 with {Morel} and {Renvoise}'s ``{Global Optimization by
                 Suppression of Partial Redundancies}''",
  journal =      j-TOPLAS,
  volume =       "10",
  number =       "4",
  pages =        "635--640",
  month =        oct,
  year =         "1988",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  note =         "See remark \cite{Sorkin:1989:TCS}.",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/214509.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; theory",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Optimization. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Compilers.",
}

@Article{Anonymous:1988:AI,
  author =       "Anonymous",
  title =        "1988 Author Index",
  journal =      j-TOPLAS,
  volume =       "10",
  number =       "4",
  pages =        "641--642",
  month =        oct,
  year =         "1988",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 13:53:44 1996",
  acknowledgement = ack-pb,
}

@Article{Steenkiste:1989:SIR,
  author =       "Peter A. Steenkiste and John L. Hennessy",
  title =        "A Simple Interprocedural Register Allocation Algorithm
                 and Its Effectiveness for {Lisp}",
  journal =      j-TOPLAS,
  volume =       "11",
  number =       "1",
  pages =        "1--32",
  month =        jan,
  year =         "1989",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Aug 13 17:16:20 MDT 1994",
  bibsource =    "Misc/sigplan.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib, Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/59289.html",
  acknowledgement = ack-pb # " and " # ack-nhfb,
  keywords =     "algorithms; design; measurement; performance",
  review =       "ACM CR 8909-0658",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Optimization. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Compilers. {\bf
                 C.0}: Computer Systems Organization, GENERAL,
                 Hardware/software interfaces. {\bf D.3.2}: Software,
                 PROGRAMMING LANGUAGES, Language Classifications,
                 LISP.",
}

@Article{Myers:1989:RRA,
  author =       "Eugene W. Myers and Webb Miller",
  title =        "Row Replacement Algorithms for Screen Editors",
  journal =      j-TOPLAS,
  volume =       "11",
  number =       "1",
  pages =        "33--56",
  month =        jan,
  year =         "1989",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/59290.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; performance",
  subject =      "{\bf D.2.3}: Software, SOFTWARE ENGINEERING, Coding,
                 Program editors. {\bf I.2.8}: Computing Methodologies,
                 ARTIFICIAL INTELLIGENCE, Problem Solving, Control
                 Methods, and Search, Dynamic programming. {\bf D.4.4}:
                 Software, OPERATING SYSTEMS, Communications Management,
                 Input/Output. {\bf F.2.2}: Theory of Computation,
                 ANALYSIS OF ALGORITHMS AND PROBLEM COMPLEXITY,
                 Nonnumerical Algorithms and Problems, Computations on
                 discrete structures.",
}

@Article{Bernstein:1989:SEP,
  author =       "David Bernstein and Izidor Gertner",
  title =        "Scheduling Expressions on a Pipelined Processor with a
                 Maximal Delay of One Cycle",
  journal =      j-TOPLAS,
  volume =       "11",
  number =       "1",
  pages =        "57--66",
  month =        jan,
  year =         "1989",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Parallel/scheduling.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib, Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/59291.html",
  acknowledgement = ack-pb,
  keywords =     "design; performance",
  subject =      "{\bf C.1.2}: Computer Systems Organization, PROCESSOR
                 ARCHITECTURES, Multiple Data Stream Architectures
                 (Multiprocessors), Pipeline processors. {\bf D.4.7}:
                 Software, OPERATING SYSTEMS, Organization and Design,
                 Hierarchical design. {\bf D.3.4}: Software, PROGRAMMING
                 LANGUAGES, Processors, Code generation. {\bf F.2.2}:
                 Theory of Computation, ANALYSIS OF ALGORITHMS AND
                 PROBLEM COMPLEXITY, Nonnumerical Algorithms and
                 Problems, Sequencing and scheduling.",
}

@Article{Steensgaard-Madsen:1989:TRO,
  author =       "J. Steensgaard-Madsen",
  title =        "Type Representation of Objects by Functions",
  journal =      j-TOPLAS,
  volume =       "11",
  number =       "1",
  pages =        "67--89",
  month =        jan,
  year =         "1989",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/77345.html",
  acknowledgement = ack-pb,
  keywords =     "design; languages; theory",
  subject =      "{\bf F.4.1}: Theory of Computation, MATHEMATICAL LOGIC
                 AND FORMAL LANGUAGES, Mathematical Logic, Lambda
                 calculus and related systems. {\bf F.3.3}: Theory of
                 Computation, LOGICS AND MEANINGS OF PROGRAMS, Studies
                 of Program Constructs, Functional constructs.",
}

@Article{Fischer:1989:DFA,
  author =       "Michael J. Fischer and Nancy A. Lynch and James E.
                 Burns and Allan Borodin",
  title =        "Distributed {FIFO} Allocation of Identical Resources
                 Using Small Shared Space",
  journal =      j-TOPLAS,
  volume =       "11",
  number =       "1",
  pages =        "90--114",
  month =        jan,
  year =         "1989",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/59292.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; theory",
  subject =      "{\bf D.4.1}: Software, OPERATING SYSTEMS, Process
                 Management, Scheduling. {\bf C.2.4}: Computer Systems
                 Organization, COMPUTER-COMMUNICATION NETWORKS,
                 Distributed Systems, Distributed applications. {\bf
                 C.2.4}: Computer Systems Organization,
                 COMPUTER-COMMUNICATION NETWORKS, Distributed Systems,
                 Network operating systems. {\bf D.4.1}: Software,
                 OPERATING SYSTEMS, Process Management, Concurrency.
                 {\bf D.4.1}: Software, OPERATING SYSTEMS, Process
                 Management, Mutual exclusion. {\bf D.4.1}: Software,
                 OPERATING SYSTEMS, Process Management, Synchronization.
                 {\bf F.1.2}: Theory of Computation, COMPUTATION BY
                 ABSTRACT DEVICES, Modes of Computation, Parallelism and
                 concurrency.",
}

@Article{Ait-Kaci:1989:EIL,
  author =       "Hassan {A\"{\i}t}-Kaci and Robert Boyer and Patrick
                 Lincoln and Roger Nasr",
  title =        "Efficient Implementation of Lattice Operations",
  journal =      j-TOPLAS,
  volume =       "11",
  number =       "1",
  pages =        "115--146",
  month =        jan,
  year =         "1989",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/59293.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; languages; performance",
  subject =      "{\bf F.3.3}: Theory of Computation, LOGICS AND
                 MEANINGS OF PROGRAMS, Studies of Program Constructs,
                 Type structure. {\bf I.2.4}: Computing Methodologies,
                 ARTIFICIAL INTELLIGENCE, Knowledge Representation
                 Formalisms and Methods, Frames and scripts. {\bf
                 H.3.3}: Information Systems, INFORMATION STORAGE AND
                 RETRIEVAL, Information Search and Retrieval,
                 Clustering.",
}

@Article{Alpern:1989:VTP,
  author =       "Bowen Alpern and Fred B. Schneider",
  title =        "Verifying Temporal Properties without Temporal Logic",
  journal =      j-TOPLAS,
  volume =       "11",
  number =       "1",
  pages =        "147--167",
  month =        jan,
  year =         "1989",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/62028.html",
  acknowledgement = ack-pb,
  keywords =     "languages; theory; verification",
  subject =      "{\bf F.3.1}: Theory of Computation, LOGICS AND
                 MEANINGS OF PROGRAMS, Specifying and Verifying and
                 Reasoning about Programs. {\bf D.2.1}: Software,
                 SOFTWARE ENGINEERING, Requirements/Specifications,
                 Methodologies. {\bf D.2.4}: Software, SOFTWARE
                 ENGINEERING, Program Verification, Correctness proofs.
                 {\bf D.3.1}: Software, PROGRAMMING LANGUAGES, Formal
                 Definitions and Theory, Semantics. {\bf D.1.3}:
                 Software, PROGRAMMING TECHNIQUES, Concurrent
                 Programming. {\bf F.1.1}: Theory of Computation,
                 COMPUTATION BY ABSTRACT DEVICES, Models of Computation,
                 Automata.",
}

@Article{Kaiser:1989:IDS,
  author =       "Gail E. Kaiser",
  title =        "Incremental Dynamic Semantics for Language-Based
                 Programming Environments",
  journal =      j-TOPLAS,
  volume =       "11",
  number =       "2",
  pages =        "169--193",
  month =        apr,
  year =         "1989",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/63400.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; design; languages; reliability; theory",
  subject =      "{\bf D.2.6}: Software, SOFTWARE ENGINEERING,
                 Programming Environments. {\bf D.3.1}: Software,
                 PROGRAMMING LANGUAGES, Formal Definitions and Theory,
                 Semantics. {\bf F.4.2}: Theory of Computation,
                 MATHEMATICAL LOGIC AND FORMAL LANGUAGES, Grammars and
                 Other Rewriting Systems, Grammar types. {\bf D.2.3}:
                 Software, SOFTWARE ENGINEERING, Coding, Program
                 editors. {\bf D.2.5}: Software, SOFTWARE ENGINEERING,
                 Testing and Debugging, Debugging aids. {\bf D.3.4}:
                 Software, PROGRAMMING LANGUAGES, Processors. {\bf
                 F.3.1}: Theory of Computation, LOGICS AND MEANINGS OF
                 PROGRAMS, Specifying and Verifying and Reasoning about
                 Programs.",
}

@Article{Cameron:1989:EHL,
  author =       "Robert D. Cameron",
  title =        "Efficient High-Level Iteration with Accumulators",
  journal =      j-TOPLAS,
  volume =       "11",
  number =       "2",
  pages =        "194--211",
  month =        apr,
  year =         "1989",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/63401.html",
  acknowledgement = ack-pb,
  keywords =     "languages",
  subject =      "{\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Control structures.",
}

@Article{LaLonde:1989:DFD,
  author =       "Wilf R. LaLonde",
  title =        "Designing Families of Data Types Using Exemplars",
  journal =      j-TOPLAS,
  volume =       "11",
  number =       "2",
  pages =        "212--248",
  month =        apr,
  year =         "1989",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/63265.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; design; languages; performance",
  subject =      "{\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Data types and structures.
                 {\bf D.2.10}: Software, SOFTWARE ENGINEERING, Design,
                 Methodologies. {\bf D.2.2}: Software, SOFTWARE
                 ENGINEERING, Tools and Techniques.",
}

@Article{Weihl:1989:LAP,
  author =       "William E. Weihl",
  title =        "Local Atomicity Properties: Modular Concurrency
                 Control for Abstract Data Types",
  journal =      j-TOPLAS,
  volume =       "11",
  number =       "2",
  pages =        "249--283",
  month =        apr,
  year =         "1989",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/63518.html",
  acknowledgement = ack-pb,
  keywords =     "design; reliability; theory; verification",
  subject =      "{\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Abstract data types. {\bf
                 D.4.1}: Software, OPERATING SYSTEMS, Process
                 Management, Concurrency. {\bf D.4.5}: Software,
                 OPERATING SYSTEMS, Reliability, Fault-tolerance. {\bf
                 C.2.4}: Computer Systems Organization,
                 COMPUTER-COMMUNICATION NETWORKS, Distributed Systems,
                 Distributed databases. {\bf H.2.4}: Information
                 Systems, DATABASE MANAGEMENT, Systems, Transaction
                 processing.",
}

@Article{Carchiolo:1989:ELT,
  author =       "Vincenza Carchiolo and Antonella Di Stefano and
                 Alberto Faro and Giuseppe Pappalardo",
  title =        "{ECCS} and {LIPS}: Two Languages for {OSI} Systems
                 Specification and Verification",
  journal =      j-TOPLAS,
  volume =       "11",
  number =       "2",
  pages =        "284--329",
  month =        apr,
  year =         "1989",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/63402.html",
  acknowledgement = ack-pb,
  keywords =     "design; languages; theory; verification",
  subject =      "{\bf C.2.0}: Computer Systems Organization,
                 COMPUTER-COMMUNICATION NETWORKS, General, Open System
                 Interconnection reference model (OSI). {\bf D.2.1}:
                 Software, SOFTWARE ENGINEERING,
                 Requirements/Specifications, Languages. {\bf F.3.1}:
                 Theory of Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Specifying and Verifying and Reasoning about Programs.
                 {\bf C.2.2}: Computer Systems Organization,
                 COMPUTER-COMMUNICATION NETWORKS, Network Protocols,
                 Protocol verification.",
}

@Article{Burns:1989:USS,
  author =       "James E. Burns and Jan Pachi",
  title =        "Uniform Self-Stabilizing Rings",
  journal =      j-TOPLAS,
  volume =       "11",
  number =       "2",
  pages =        "330--344",
  month =        apr,
  year =         "1989",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/63403.html",
  acknowledgement = ack-pb,
  keywords =     "design; reliability; theory",
  subject =      "{\bf F.1.1}: Theory of Computation, COMPUTATION BY
                 ABSTRACT DEVICES, Models of Computation, Automata. {\bf
                 C.2.5}: Computer Systems Organization,
                 COMPUTER-COMMUNICATION NETWORKS, Local Networks, Rings.
                 {\bf C.2.2}: Computer Systems Organization,
                 COMPUTER-COMMUNICATION NETWORKS, Network Protocols.",
}

@Article{Horwitz:1989:INV,
  author =       "Susan Horwitz and Jan Prins and Thomas Reps",
  title =        "Integrating Noninterfering Versions of Programs",
  journal =      j-TOPLAS,
  volume =       "11",
  number =       "3",
  pages =        "345--387",
  month =        jul,
  year =         "1989",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/65980.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; design; languages; management",
  subject =      "{\bf D.2.2}: Software, SOFTWARE ENGINEERING, Tools and
                 Techniques. {\bf D.2.3}: Software, SOFTWARE
                 ENGINEERING, Coding, Program editors. {\bf D.2.7}:
                 Software, SOFTWARE ENGINEERING, Distribution and
                 Maintenance, Restructuring. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Compilers. {\bf
                 D.2.7}: Software, SOFTWARE ENGINEERING, Distribution
                 and Maintenance, Version control.",
}

@Article{Brent:1989:EIF,
  author =       "R. P. Brent",
  title =        "Efficient Implementation of the First-Fit Strategy for
                 Dynamic Storage Allocation",
  journal =      j-TOPLAS,
  volume =       "11",
  number =       "3",
  pages =        "388--403",
  month =        jul,
  year =         "1989",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/65981.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; design; languages; performance",
  subject =      "{\bf D.4.2}: Software, OPERATING SYSTEMS, Storage
                 Management, Allocation/deallocation strategies. {\bf
                 D.4.2}: Software, OPERATING SYSTEMS, Storage
                 Management, Main memory.",
}

@Article{Anger:1989:LIC,
  author =       "Frank D. Anger",
  title =        "On {Lamport}'s Interprocessor Communication Model",
  journal =      j-TOPLAS,
  volume =       "11",
  number =       "3",
  pages =        "404--417",
  month =        jul,
  year =         "1989",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/65982.html",
  acknowledgement = ack-pb,
  keywords =     "design; theory",
  subject =      "{\bf D.4.8}: Software, OPERATING SYSTEMS, Performance,
                 Modeling and prediction. {\bf D.4.1}: Software,
                 OPERATING SYSTEMS, Process Management, Mutual
                 exclusion. {\bf D.4.7}: Software, OPERATING SYSTEMS,
                 Organization and Design, Distributed systems. {\bf
                 D.4.1}: Software, OPERATING SYSTEMS, Process
                 Management, Synchronization. {\bf D.4.4}: Software,
                 OPERATING SYSTEMS, Communications Management, Network
                 communication. {\bf F.2.2}: Theory of Computation,
                 ANALYSIS OF ALGORITHMS AND PROBLEM COMPLEXITY,
                 Nonnumerical Algorithms and Problems, Sequencing and
                 scheduling.",
}

@Article{Debray:1989:SIM,
  author =       "Saumya K. Debray",
  title =        "Static Inference of Modes and Data Dependencies in
                 Logic Programs",
  journal =      j-TOPLAS,
  volume =       "11",
  number =       "3",
  pages =        "418--450",
  month =        jul,
  year =         "1989",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib, Compiler/absint.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/65983.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; design; languages; performance; theory;
                 verification",
  subject =      "{\bf F.4.1}: Theory of Computation, MATHEMATICAL LOGIC
                 AND FORMAL LANGUAGES, Mathematical Logic, Logic
                 programming. {\bf I.2.4}: Computing Methodologies,
                 ARTIFICIAL INTELLIGENCE, Knowledge Representation
                 Formalisms and Methods, Predicate logic. {\bf D.3.4}:
                 Software, PROGRAMMING LANGUAGES, Processors, Compilers.
                 {\bf F.3.3}: Theory of Computation, LOGICS AND MEANINGS
                 OF PROGRAMS, Studies of Program Constructs, Type
                 structure.",
}

@Article{Debray:1989:FCL,
  author =       "Saumya K. Debray and David S. Warren",
  title =        "Functional Computations in Logic Programs",
  journal =      j-TOPLAS,
  volume =       "11",
  number =       "3",
  pages =        "451--481",
  month =        jul,
  year =         "1989",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/65984.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; design; languages; performance;
                 verification",
  subject =      "{\bf F.4.1}: Theory of Computation, MATHEMATICAL LOGIC
                 AND FORMAL LANGUAGES, Mathematical Logic, Logic
                 programming. {\bf D.2.8}: Software, SOFTWARE
                 ENGINEERING, Metrics, Performance measures. {\bf
                 D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Compilers.",
}

@Article{Kennaway:1989:CSC,
  author =       "Richard Kennaway and Ronan Sleep",
  title =        "Corrigendum: ``{Director Strings as Combinators}''",
  journal =      j-TOPLAS,
  volume =       "11",
  number =       "3",
  pages =        "482--482",
  month =        jul,
  year =         "1989",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  note =         "See \cite{Kennaway:1988:DSC}.",
  acknowledgement = ack-pb,
}

@Article{Krogh:1989:AAP,
  author =       "F. T. Krogh",
  title =        "{ACM} Algorithms Policy",
  journal =      j-TOPLAS,
  volume =       "11",
  number =       "3",
  pages =        "483--486",
  month =        jul,
  year =         "1989",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 6 15:04:22 1996",
  bibsource =    "Misc/IMMD_IV.bib",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:1989:IA,
  author =       "Anonymous",
  title =        "Information for Authors",
  journal =      j-TOPLAS,
  volume =       "11",
  number =       "3",
  pages =        "487--490",
  month =        jul,
  year =         "1989",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  acknowledgement = ack-pb,
}

@Article{Aho:1989:CGU,
  author =       "Alfred V. Aho and Mahadevan Ganapathi and Steven W. K.
                 Tjiang",
  title =        "Code Generation Using Tree Matching and Dynamic
                 Programming",
  journal =      j-TOPLAS,
  volume =       "11",
  number =       "4",
  pages =        "491--516",
  month =        oct,
  year =         "1989",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Database/Graefe.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib, Database/Graefe.bib,
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/75700.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; comparison of alternative covers of
                 original expression; design; experimentation;
                 languages; matching multiple trees using finite state
                 automata; reduction rules: complex expression
                 $\rightarrow$ single instruction cost; theory",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, twig. {\bf D.3.4}: Software, PROGRAMMING
                 LANGUAGES, Processors, Code generation. {\bf D.3.2}:
                 Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Nonprocedural languages. {\bf F.2.2}:
                 Theory of Computation, ANALYSIS OF ALGORITHMS AND
                 PROBLEM COMPLEXITY, Nonnumerical Algorithms and
                 Problems, Pattern matching. {\bf F.4.2}: Theory of
                 Computation, MATHEMATICAL LOGIC AND FORMAL LANGUAGES,
                 Grammars and Other Rewriting Systems, Parallel
                 rewriting systems. {\bf I.2.8}: Computing
                 Methodologies, ARTIFICIAL INTELLIGENCE, Problem
                 Solving, Control Methods, and Search, Dynamic
                 programming.",
}

@Article{Nelson:1989:GDC,
  author =       "Greg Nelson",
  title =        "A Generalization of {Dijkstra}'s Calculus",
  journal =      j-TOPLAS,
  volume =       "11",
  number =       "4",
  pages =        "517--561",
  month =        oct,
  year =         "1989",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/69559.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; languages",
  subject =      "{\bf F.3.2}: Theory of Computation, LOGICS AND
                 MEANINGS OF PROGRAMS, Semantics of Programming
                 Languages. {\bf D.3.3}: Software, PROGRAMMING
                 LANGUAGES, Language Constructs and Features. {\bf
                 D.3.1}: Software, PROGRAMMING LANGUAGES, Formal
                 Definitions and Theory.",
}

@Article{Barbosa:1989:CHL,
  author =       "Valmir Barbosa and Eli Gafni",
  title =        "Concurrency in Heavily Loaded Neighborhood-Constrained
                 Systems",
  journal =      j-TOPLAS,
  volume =       "11",
  number =       "4",
  pages =        "562--584",
  month =        oct,
  year =         "1989",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/69560.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; performance; theory",
  subject =      "{\bf F.2.2}: Theory of Computation, ANALYSIS OF
                 ALGORITHMS AND PROBLEM COMPLEXITY, Nonnumerical
                 Algorithms and Problems, Sequencing and scheduling.
                 {\bf F.1.2}: Theory of Computation, COMPUTATION BY
                 ABSTRACT DEVICES, Modes of Computation, Parallelism and
                 concurrency. {\bf G.2.2}: Mathematics of Computing,
                 DISCRETE MATHEMATICS, Graph Theory, Network problems.
                 {\bf F.4.3}: Theory of Computation, MATHEMATICAL LOGIC
                 AND FORMAL LANGUAGES, Formal Languages, Decision
                 problems.",
}

@Article{Bagrodia:1989:SAP,
  author =       "Rajive Bagrodia",
  title =        "Synchronization of Asynchronous Processes in {CSP}",
  journal =      j-TOPLAS,
  volume =       "11",
  number =       "4",
  pages =        "585--597",
  month =        oct,
  year =         "1989",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/69561.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; languages; management",
  subject =      "{\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Concurrent programming
                 structures. {\bf D.4.4}: Software, OPERATING SYSTEMS,
                 Communications Management, Message sending. {\bf
                 F.2.2}: Theory of Computation, ANALYSIS OF ALGORITHMS
                 AND PROBLEM COMPLEXITY, Nonnumerical Algorithms and
                 Problems, Sequencing and scheduling. {\bf D.4.1}:
                 Software, OPERATING SYSTEMS, Process Management,
                 Synchronization.",
}

@Article{Arvind:1989:SDS,
  author =       "Arvind and Rishiyur S. Nikhil and Keshav K. Pingali",
  title =        "{I}-Structures: Data Structures for Parallel
                 Computing",
  journal =      j-TOPLAS,
  volume =       "11",
  number =       "4",
  pages =        "598--632",
  month =        oct,
  year =         "1989",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Tue May 2 18:50:35 2000",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib,
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/69562.html",
  abstract =     "It is difficult simultaneously to achieve elegance,
                 efficiency and parallelism in functional programs that
                 manipulate large data structures. We demonstrate this
                 through careful analysis of program examples using
                 three common functional data-structuring approaches -
                 lists using Cons and arrays using Update (both
                 fine-grained operators), and arrays using make-array (a
                 ``bulk'' operator). We then present I-structures as an
                 alternative, defining precisely the parallel
                 operational semantics of Id, a language with
                 I-structures. We show elegant, efficient and parallel
                 solutions for the program examples in Id. I-structures
                 make the language non-functional, but do not raise
                 determinancy issues. Finally, we show that even in the
                 context of purely functional languages, I-structures
                 are invaluable for implementing functional data
                 abstractions.",
  acknowledgement = ack-pb # " and " # ack-meo,
  annote =       "First appeared in Graph Reduction: Proceedings of a
                 Workshop at Santa F{\'e}, New Mexico, 1987, ISBN:
                 0-387-18420-1, pages 336--369 and as Cornell
                 University, Computer Science Department technical
                 report TR87-810, 1987.",
  keywords =     "algorithms; design; languages; performance",
  subject =      "{\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Concurrent programming
                 structures. {\bf D.3.2}: Software, PROGRAMMING
                 LANGUAGES, Language Classifications, Applicative
                 languages. {\bf D.3.1}: Software, PROGRAMMING
                 LANGUAGES, Formal Definitions and Theory, Semantics.
                 {\bf E.1}: Data, DATA STRUCTURES, Arrays. {\bf E.1}:
                 Data, DATA STRUCTURES, Lists.",
  xxnote =       "Yes, the primary author has only a single name.",
}

@Article{Sijtsma:1989:PRL,
  author =       "Ben A. Sijtsma",
  title =        "{On the Productivity of Recursive List Definitions}",
  journal =      j-TOPLAS,
  volume =       "11",
  number =       "4",
  pages =        "633--649",
  month =        oct,
  year =         "1989",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Parallel/Pfpbib.bib, Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/69563.html",
  abstract =     "Several related notions of the productivity are
                 presented for functional languages with lazy
                 evaluation. The notion of productivity captures the
                 idea of computability, of progress of infinite-list
                 programs. If an infinite-list program is {\em
                 productive}, then every element of the list can be
                 computed in finite ``time''. These notions are used to
                 study recursive list definitions, that is, lists
                 defined by $l$ where $l=fl$. Sufficient conditions are
                 given in terms of the function $f$ that either
                 guarantee the productivity of the list or its
                 unproductivity. Furthermore, a calculus is developed
                 that can be used in verifying that lists defined by $l
                 \mbox{\em where } l = fl$ are productive. The power and
                 the usefulness of our theory are demonstrated by
                 several nontrivial examples. Several observations are
                 given in conclusion.",
  acknowledgement = ack-pb,
  keywords =     "algorithms; Circular Programs; languages",
  subject =      "{\bf F.3.3}: Theory of Computation, LOGICS AND
                 MEANINGS OF PROGRAMS, Studies of Program Constructs,
                 Program and recursion schemes. {\bf F.4.1}: Theory of
                 Computation, MATHEMATICAL LOGIC AND FORMAL LANGUAGES,
                 Mathematical Logic, Computability theory. {\bf F.3.1}:
                 Theory of Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Specifying and Verifying and Reasoning about Programs,
                 Specification techniques. {\bf D.3.2}: Software,
                 PROGRAMMING LANGUAGES, Language Classifications,
                 Applicative languages.",
}

@Article{Nicholson:1989:DSP,
  author =       "Tim Nicholson and Norman Foo",
  title =        "A Denotational Semantics for {Prolog}",
  journal =      j-TOPLAS,
  volume =       "11",
  number =       "4",
  pages =        "650--665",
  month =        oct,
  year =         "1989",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  note =         "See also remarks in \cite{Finlay:1993:TCC}.",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/69564.html",
  acknowledgement = ack-pb,
  keywords =     "languages; theory; verification",
  subject =      "{\bf F.3.2}: Theory of Computation, LOGICS AND
                 MEANINGS OF PROGRAMS, Semantics of Programming
                 Languages, Denotational semantics. {\bf F.4.1}: Theory
                 of Computation, MATHEMATICAL LOGIC AND FORMAL
                 LANGUAGES, Mathematical Logic, Prolog. {\bf F.4.1}:
                 Theory of Computation, MATHEMATICAL LOGIC AND FORMAL
                 LANGUAGES, Mathematical Logic, Logic programming.",
}

@Article{Sorkin:1989:TCS,
  author =       "Arthur Sorkin",
  title =        "Technical Correspondence: Some Comments on ``{A
                 Solution to a Problem with {Morel} and {Renvoise}'s
                 ``{Global Optimization by Suppression of Partial
                 Redundancies}''}''",
  journal =      j-TOPLAS,
  volume =       "11",
  number =       "4",
  pages =        "666--668",
  month =        oct,
  year =         "1989",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  note =         "See \cite{Drechsler:1988:TCS}.",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/214513.html",
  acknowledgement = ack-pb,
  keywords =     "languages; performance; theory",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Optimization. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Compilers.",
}

@Article{Anonymous:1989:AI,
  author =       "Anonymous",
  title =        "1989 Author Index",
  journal =      j-TOPLAS,
  volume =       "11",
  number =       "4",
  pages =        "669--670",
  month =        oct,
  year =         "1989",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 14:00:28 1996",
  acknowledgement = ack-pb,
}

@Article{Clemm:1990:MEI,
  author =       "Geoffrey Clemm and Leon Osterweil",
  title =        "A Mechanism for Environment Integration",
  journal =      j-TOPLAS,
  volume =       "12",
  number =       "1",
  pages =        "1--25",
  month =        jan,
  year =         "1990",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Misc/scm.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib, Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/77607.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  keywords =     "design; experimentation; languages; obms; odin; scm:;
                 sde",
  subject =      "{\bf D.2.6}: Software, SOFTWARE ENGINEERING,
                 Programming Environments. {\bf D.2.2}: Software,
                 SOFTWARE ENGINEERING, Tools and Techniques. {\bf
                 D.4.2}: Software, OPERATING SYSTEMS, Storage
                 Management.",
}

@Article{Horwitz:1990:ISU,
  author =       "Susan Horwitz and Thomas Reps and David Binkley",
  title =        "Interprocedural Slicing Using Dependence Graphs",
  journal =      j-TOPLAS,
  volume =       "12",
  number =       "1",
  pages =        "26--60",
  month =        jan,
  year =         "1990",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/77608.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  keywords =     "algorithms; design",
  subject =      "{\bf F.3.3}: Theory of Computation, LOGICS AND
                 MEANINGS OF PROGRAMS, Studies of Program Constructs,
                 Program and recursion schemes. {\bf G.2.2}: Mathematics
                 of Computing, DISCRETE MATHEMATICS, Graph Theory, Graph
                 algorithms. {\bf F.4.2}: Theory of Computation,
                 MATHEMATICAL LOGIC AND FORMAL LANGUAGES, Grammars and
                 Other Rewriting Systems, Grammar types.",
}

@Article{Waddle:1990:PTC,
  author =       "Vance E. Waddle",
  title =        "Production Trees: {A} Compact Representation of Parsed
                 Programs",
  journal =      j-TOPLAS,
  volume =       "12",
  number =       "1",
  pages =        "61--83",
  month =        jan,
  year =         "1990",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/77609.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  keywords =     "languages; measurement; theory",
  subject =      "{\bf F.4.2}: Theory of Computation, MATHEMATICAL LOGIC
                 AND FORMAL LANGUAGES, Grammars and Other Rewriting
                 Systems, Parsing.",
}

@Article{Korach:1990:MTD,
  author =       "E. Korach and S. Kutten and S. Moran",
  title =        "A Modular Technique for the Design of Efficient
                 Distributed Leader Finding Algorithms",
  journal =      j-TOPLAS,
  volume =       "12",
  number =       "1",
  pages =        "84--101",
  month =        jan,
  year =         "1990",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/77610.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  keywords =     "algorithms; theory",
  subject =      "{\bf G.2.2}: Mathematics of Computing, DISCRETE
                 MATHEMATICS, Graph Theory, Network problems. {\bf
                 F.2.2}: Theory of Computation, ANALYSIS OF ALGORITHMS
                 AND PROBLEM COMPLEXITY, Nonnumerical Algorithms and
                 Problems, Sequencing and scheduling. {\bf F.1.1}:
                 Theory of Computation, COMPUTATION BY ABSTRACT DEVICES,
                 Models of Computation, Unbounded-action devices.",
}

@Article{Huang:1990:DDD,
  author =       "Shing-Tsaan Huang",
  title =        "A Distributed Deadlock Detection Algorithm for
                 {CSP}-Like Communication",
  journal =      j-TOPLAS,
  volume =       "12",
  number =       "1",
  pages =        "102--122",
  month =        jan,
  year =         "1990",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/77611.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; design; languages; performance; theory",
  subject =      "{\bf D.4.7}: Software, OPERATING SYSTEMS, Organization
                 and Design, Distributed systems. {\bf D.4.1}: Software,
                 OPERATING SYSTEMS, Process Management, Deadlocks. {\bf
                 D.4.4}: Software, OPERATING SYSTEMS, Communications
                 Management, Message sending. {\bf G.2.2}: Mathematics
                 of Computing, DISCRETE MATHEMATICS, Graph Theory,
                 Network problems.",
}

@Article{Farmer:1990:CPC,
  author =       "William M. Farmer and John D. Ramsdell and Ronald J.
                 Watro",
  title =        "A Correctness Proof for Combinator Reduction with
                 Cycles",
  journal =      j-TOPLAS,
  volume =       "12",
  number =       "1",
  pages =        "123--134",
  month =        jan,
  year =         "1990",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/77612.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  keywords =     "algorithms; languages; theory",
  subject =      "{\bf F.4.1}: Theory of Computation, MATHEMATICAL LOGIC
                 AND FORMAL LANGUAGES, Mathematical Logic, Lambda
                 calculus and related systems. {\bf F.4.2}: Theory of
                 Computation, MATHEMATICAL LOGIC AND FORMAL LANGUAGES,
                 Grammars and Other Rewriting Systems. {\bf G.2.2}:
                 Mathematics of Computing, DISCRETE MATHEMATICS, Graph
                 Theory. {\bf F.3.2}: Theory of Computation, LOGICS AND
                 MEANINGS OF PROGRAMS, Semantics of Programming
                 Languages.",
}

@Article{Burton:1990:TCT,
  author =       "F. Warren Burton",
  title =        "Technical Correspondence: Type Extension Through
                 Polymorphism",
  journal =      j-TOPLAS,
  volume =       "12",
  number =       "1",
  pages =        "135--138",
  month =        jan,
  year =         "1990",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Misc/IMMD_IV.bib",
  note =         "See \cite{Volpano:1991:TCS,Burton:1991:RSQ}.",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/214515.html,
                 http://www.acm.org/pubs/toc/Abstracts/0164-0925/77560.html",
  acknowledgement = ack-nhfb,
  keywords =     "languages",
  subject =      "{\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Data types and structures.
                 {\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Modules, packages.",
}

@Article{Parnas:1990:TCI,
  author =       "David L. Parnas",
  title =        "Technical Correspondence: On Iterative Constructs",
  journal =      j-TOPLAS,
  volume =       "12",
  number =       "1",
  pages =        "139--141",
  month =        jan,
  year =         "1990",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/214517.html,
                 http://www.acm.org/pubs/toc/Abstracts/0164-0925/77613.html",
  acknowledgement = ack-nhfb,
  keywords =     "languages; theory",
  subject =      "{\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features. {\bf F.3.2}: Theory of
                 Computation, LOGICS AND MEANINGS OF PROGRAMS, Semantics
                 of Programming Languages. {\bf F.3.1}: Theory of
                 Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Specifying and Verifying and Reasoning about
                 Programs.",
}

@Article{Myers:1990:CUI,
  author =       "Brad A. Myers",
  title =        "Creating User Interfaces Using Programming by Example,
                 Visual Programming, and Constraints",
  journal =      j-TOPLAS,
  volume =       "12",
  number =       "2",
  pages =        "143--177",
  month =        apr,
  year =         "1990",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/78943.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  keywords =     "design; human factors",
  subject =      "{\bf D.2.2}: Software, SOFTWARE ENGINEERING, Tools and
                 Techniques, User interfaces. {\bf D.2.6}: Software,
                 SOFTWARE ENGINEERING, Programming Environments,
                 Interactive. {\bf I.3.6}: Computing Methodologies,
                 COMPUTER GRAPHICS, Methodology and Techniques,
                 Interaction techniques. {\bf H.1.2}: Information
                 Systems, MODELS AND PRINCIPLES, User/Machine Systems.
                 {\bf I.2.2}: Computing Methodologies, ARTIFICIAL
                 INTELLIGENCE, Automatic Programming, Program
                 synthesis.",
}

@Article{Weihl:1990:LSA,
  author =       "William E. Weihl",
  title =        "Linguistic Support for Atomic Data Types",
  journal =      j-TOPLAS,
  volume =       "12",
  number =       "2",
  pages =        "178--202",
  month =        apr,
  year =         "1990",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/78944.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  keywords =     "design; languages; reliability",
  subject =      "{\bf H.2.4}: Information Systems, DATABASE MANAGEMENT,
                 Systems, Transaction processing. {\bf H.2.4}:
                 Information Systems, DATABASE MANAGEMENT, Systems,
                 Concurrency. {\bf H.2.4}: Information Systems, DATABASE
                 MANAGEMENT, Systems, Distributed systems. {\bf D.3.3}:
                 Software, PROGRAMMING LANGUAGES, Language Constructs
                 and Features, Abstract data types. {\bf D.4.1}:
                 Software, OPERATING SYSTEMS, Process Management,
                 Synchronization. {\bf D.4.5}: Software, OPERATING
                 SYSTEMS, Reliability, Fault-tolerance.",
}

@Article{Knapp:1990:EFD,
  author =       "Edgar Knapp",
  title =        "An Exercise in the Formal Derivation of Parallel
                 Programs: Maximum Flows in Graphs",
  journal =      j-TOPLAS,
  volume =       "12",
  number =       "2",
  pages =        "203--223",
  month =        apr,
  year =         "1990",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/78945.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  keywords =     "algorithms; theory",
  subject =      "{\bf F.1.2}: Theory of Computation, COMPUTATION BY
                 ABSTRACT DEVICES, Modes of Computation, Parallelism and
                 concurrency. {\bf F.3.1}: Theory of Computation, LOGICS
                 AND MEANINGS OF PROGRAMS, Specifying and Verifying and
                 Reasoning about Programs, Specification techniques.
                 {\bf F.1.2}: Theory of Computation, COMPUTATION BY
                 ABSTRACT DEVICES, Modes of Computation, Alternation and
                 nondeterminism. {\bf G.2.2}: Mathematics of Computing,
                 DISCRETE MATHEMATICS, Graph Theory. {\bf F.2.2}: Theory
                 of Computation, ANALYSIS OF ALGORITHMS AND PROBLEM
                 COMPLEXITY, Nonnumerical Algorithms and Problems,
                 Sequencing and scheduling.",
}

@Article{Darlington:1990:SDG,
  author =       "Jared L. Darlington",
  title =        "Search Direction by Goal Failure in Goal-Oriented
                 Programming",
  journal =      j-TOPLAS,
  volume =       "12",
  number =       "2",
  pages =        "224--252",
  month =        apr,
  year =         "1990",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/78946.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  keywords =     "experimentation; languages",
  subject =      "{\bf I.2.3}: Computing Methodologies, ARTIFICIAL
                 INTELLIGENCE, Deduction and Theorem Proving, Logic
                 programming. {\bf D.2.1}: Software, SOFTWARE
                 ENGINEERING, Requirements/Specifications. {\bf D.1.1}:
                 Software, PROGRAMMING TECHNIQUES, Applicative
                 (Functional) Programming.",
}

@Article{Bossi:1990:MSL,
  author =       "A. Bossi and N. Cocco and S. Dulli",
  title =        "A Method for Specializing Logic Programs",
  journal =      j-TOPLAS,
  volume =       "12",
  number =       "2",
  pages =        "253--302",
  month =        apr,
  year =         "1990",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Theory/partial-eval.bib, Compiler/partial-eval.bib,
                 Theory/CLiCS.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib, Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/78947.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  keywords =     "design; languages; verification",
  subject =      "{\bf I.2.2}: Computing Methodologies, ARTIFICIAL
                 INTELLIGENCE, Automatic Programming, Program
                 transformation. {\bf I.2.3}: Computing Methodologies,
                 ARTIFICIAL INTELLIGENCE, Deduction and Theorem Proving,
                 Logic programming. {\bf D.2.4}: Software, SOFTWARE
                 ENGINEERING, Program Verification, Correctness
                 proofs.",
}

@Article{Aggarwal:1990:ALP,
  author =       "S. Aggarwal and C. Courcoubetis and P. Wolper",
  title =        "Adding Liveness Properties to Coupled Finite-State
                 Machines",
  journal =      j-TOPLAS,
  volume =       "12",
  number =       "2",
  pages =        "303--339",
  month =        apr,
  year =         "1990",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/78948.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  keywords =     "algorithms; verification",
  subject =      "{\bf C.2.2}: Computer Systems Organization,
                 COMPUTER-COMMUNICATION NETWORKS, Network Protocols,
                 Protocol verification. {\bf F.1.1}: Theory of
                 Computation, COMPUTATION BY ABSTRACT DEVICES, Models of
                 Computation, Automata. {\bf F.3.1}: Theory of
                 Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Specifying and Verifying and Reasoning about Programs,
                 Mechanical verification. {\bf D.2.4}: Software,
                 SOFTWARE ENGINEERING, Program Verification, Correctness
                 proofs. {\bf C.4}: Computer Systems Organization,
                 PERFORMANCE OF SYSTEMS, Modeling techniques.",
}

@Article{Burke:1990:IAE,
  author =       "Michael Burke",
  title =        "An Interval-Based Approach to Exhaustive and
                 Incremental Interprocedural Data-Flow Analysis",
  journal =      j-TOPLAS,
  volume =       "12",
  number =       "3",
  pages =        "341--395",
  month =        jul,
  year =         "1990",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib, Compiler/absint.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/78963.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; design; theory",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Compilers. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Optimization. {\bf
                 G.2.2}: Mathematics of Computing, DISCRETE MATHEMATICS,
                 Graph Theory. {\bf F.3.3}: Theory of Computation,
                 LOGICS AND MEANINGS OF PROGRAMS, Studies of Program
                 Constructs.",
}

@Article{Lamport:1990:SWS,
  author =       "Leslie Lamport",
  title =        "{\sl win\/} and {\sl sin\/}: Predicate Transformers
                 for Concurrency",
  journal =      j-TOPLAS,
  volume =       "12",
  number =       "3",
  pages =        "396--428",
  month =        jul,
  year =         "1990",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib,
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/78970.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; languages; verification",
  subject =      "{\bf D.2.4}: Software, SOFTWARE ENGINEERING, Program
                 Verification, Correctness proofs. {\bf F.3.1}: Theory
                 of Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Specifying and Verifying and Reasoning about Programs,
                 Assertions. {\bf F.3.1}: Theory of Computation, LOGICS
                 AND MEANINGS OF PROGRAMS, Specifying and Verifying and
                 Reasoning about Programs, Invariants. {\bf D.1.3}:
                 Software, PROGRAMMING TECHNIQUES, Concurrent
                 Programming.",
}

@Article{Jones:1990:EEC,
  author =       "Larry G. Jones",
  title =        "Efficient Evaluation of Circular Attribute Grammars",
  journal =      j-TOPLAS,
  volume =       "12",
  number =       "3",
  pages =        "429--462",
  month =        jul,
  year =         "1990",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/78971.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  keywords =     "algorithms; languages; theory",
  subject =      "{\bf D.3.1}: Software, PROGRAMMING LANGUAGES, Formal
                 Definitions and Theory. {\bf F.3.2}: Theory of
                 Computation, LOGICS AND MEANINGS OF PROGRAMS, Semantics
                 of Programming Languages. {\bf F.4.2}: Theory of
                 Computation, MATHEMATICAL LOGIC AND FORMAL LANGUAGES,
                 Grammars and Other Rewriting Systems.",
}

@Article{Herlihy:1990:LCC,
  author =       "Maurice P. Herlihy and Jeannette M. Wing",
  title =        "Linearizability: {A} Correctness Condition for
                 Concurrent Objects",
  journal =      j-TOPLAS,
  volume =       "12",
  number =       "3",
  pages =        "463--492",
  month =        jul,
  year =         "1990",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/78972.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  keywords =     "design; theory; verification",
  subject =      "{\bf D.2.4}: Software, SOFTWARE ENGINEERING, Program
                 Verification, Correctness proofs. {\bf D.1.3}:
                 Software, PROGRAMMING TECHNIQUES, Concurrent
                 Programming. {\bf D.2.1}: Software, SOFTWARE
                 ENGINEERING, Requirements/Specifications. {\bf F.1.2}:
                 Theory of Computation, COMPUTATION BY ABSTRACT DEVICES,
                 Modes of Computation. {\bf F.3.1}: Theory of
                 Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Specifying and Verifying and Reasoning about Programs,
                 Pre- and post-conditions. {\bf F.3.1}: Theory of
                 Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Specifying and Verifying and Reasoning about Programs,
                 Specification techniques.",
}

@Article{Krogh:1990:AAP,
  author =       "F. T. Krogh",
  title =        "{ACM} Algorithms Policy",
  journal =      j-TOPLAS,
  volume =       "12",
  number =       "3",
  pages =        "493--496",
  month =        jul,
  year =         "1990",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 6 14:04:29 1996",
  bibsource =    "Misc/IMMD_IV.bib",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:1990:IA,
  author =       "Anonymous",
  title =        "Information for Authors",
  journal =      j-TOPLAS,
  volume =       "12",
  number =       "3",
  pages =        "497--500",
  month =        jul,
  year =         "1990",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 14:04:27 1996",
  acknowledgement = ack-pb,
}

@Article{Chow:1990:PBC,
  author =       "Fred C. Chow and John L. Hennessy",
  title =        "The Priority-Based Coloring Approach to Register
                 Allocation",
  journal =      j-TOPLAS,
  volume =       "12",
  number =       "4",
  pages =        "501--536",
  month =        oct,
  year =         "1990",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/88621.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; design; measurement; performance",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Optimization. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Compilers. {\bf
                 C.0}: Computer Systems Organization, GENERAL,
                 Hardware/software interfaces.",
}

@Article{Stamos:1990:RE,
  author =       "James W. Stamos and David K. Gifford",
  title =        "Remote Evaluation",
  journal =      j-TOPLAS,
  volume =       "12",
  number =       "4",
  pages =        "537--565",
  month =        oct,
  year =         "1990",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Object/Ooos.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib, Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/88631.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  keywords =     "design; languages; performance",
  subject =      "{\bf C.2.4}: Computer Systems Organization,
                 COMPUTER-COMMUNICATION NETWORKS, Distributed Systems.
                 {\bf C.2.1}: Computer Systems Organization,
                 COMPUTER-COMMUNICATION NETWORKS, Network Architecture
                 and Design, Distributed networks. {\bf D.4.7}:
                 Software, OPERATING SYSTEMS, Organization and Design,
                 Distributed systems.",
}

@Article{Dewan:1990:ASA,
  author =       "Prasun Dewan and Marvin Solomon",
  title =        "An Approach to Support Automatic Generation of User
                 Interfaces",
  journal =      j-TOPLAS,
  volume =       "12",
  number =       "4",
  pages =        "566--609",
  month =        oct,
  year =         "1990",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/214518.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  keywords =     "design; languages",
  subject =      "{\bf D.2.6}: Software, SOFTWARE ENGINEERING,
                 Programming Environments. {\bf D.2.2}: Software,
                 SOFTWARE ENGINEERING, Tools and Techniques, User
                 interfaces. {\bf D.3.3}: Software, PROGRAMMING
                 LANGUAGES, Language Constructs and Features.",
}

@Article{Leiss:1990:KME,
  author =       "Hans Leiss",
  title =        "On {Kilbury}'s Modification of {Earley}'s Algorithm",
  journal =      j-TOPLAS,
  volume =       "12",
  number =       "4",
  pages =        "610--640",
  month =        oct,
  year =         "1990",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/88637.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  keywords =     "algorithms; languages; theory",
  subject =      "{\bf F.4.2}: Theory of Computation, MATHEMATICAL LOGIC
                 AND FORMAL LANGUAGES, Grammars and Other Rewriting
                 Systems, Parsing. {\bf F.4.2}: Theory of Computation,
                 MATHEMATICAL LOGIC AND FORMAL LANGUAGES, Grammars and
                 Other Rewriting Systems, Grammar types.",
}

@Article{Perry:1990:GEI,
  author =       "Dewayne E. Perry",
  title =        "{Guest Editor}'s Introduction",
  journal =      j-TOPLAS,
  volume =       "12",
  number =       "4",
  pages =        "641--642",
  month =        oct,
  year =         "1990",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Misc/IMMD_IV.bib",
  acknowledgement = ack-nhfb,
}

@Article{Dillon:1990:USE,
  author =       "Laura K. Dillon",
  title =        "Using Symbolic Execution for Verification of {Ada}
                 Tasking Programs",
  journal =      j-TOPLAS,
  volume =       "12",
  number =       "4",
  pages =        "643--669",
  month =        oct,
  year =         "1990",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/96551.html",
  abstract =     "A method is presented for using symbolic execution to
                 generate the verification conditions required for
                 proving correctness of programs written in a tasking
                 subset of Ada. The symbolic execution rules are derived
                 from proof systems that allow tasks to be verified
                 independently in local proofs, which are then checked
                 for cooperation. The isolation nature of this approach
                 to symbolic execution of concurrent programs makes it
                 better suited to formal verification than the more
                 traditional interleaving approach, which suffers from
                 combinatorial problems. The criteria for correct
                 operation of a concurrent program include partial
                 correctness, as well as more general safety properties,
                 such as mutual exclusion and freedom from deadlock.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  keywords =     "languages; verification",
  subject =      "{\bf D.2.4}: Software, SOFTWARE ENGINEERING, Program
                 Verification, Correctness proofs. {\bf D.2.5}:
                 Software, SOFTWARE ENGINEERING, Testing and Debugging,
                 Symbolic execution. {\bf D.3.2}: Software, PROGRAMMING
                 LANGUAGES, Language Classifications, Ada. {\bf D.1.3}:
                 Software, PROGRAMMING TECHNIQUES, Concurrent
                 Programming.",
}

@Article{Wileden:1990:CEO,
  author =       "Jack C. Wileden and Lori A. Clarke and Alexander L.
                 Wolf",
  title =        "A Comparative Evaluation of Object Definition
                 Techniques for Large Prototype Systems",
  journal =      j-TOPLAS,
  volume =       "12",
  number =       "4",
  pages =        "670--699",
  month =        oct,
  year =         "1990",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  note =         "See corrigenda \cite{Wileden:1991:CCE}.",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/88639.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  keywords =     "design; experimentation; languages",
  subject =      "{\bf D.2.6}: Software, SOFTWARE ENGINEERING,
                 Programming Environments. {\bf D.2.m}: Software,
                 SOFTWARE ENGINEERING, Miscellaneous, Rapid prototyping.
                 {\bf D.2.2}: Software, SOFTWARE ENGINEERING, Tools and
                 Techniques, Modules and interfaces. {\bf D.3.3}:
                 Software, PROGRAMMING LANGUAGES, Language Constructs
                 and Features, Abstract data types.",
}

@Article{Anonymous:1990:AI,
  author =       "Anonymous",
  title =        "1990 Author Index",
  journal =      j-TOPLAS,
  volume =       "12",
  number =       "4",
  pages =        "700--701",
  month =        oct,
  year =         "1990",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 14:05:08 1996",
  acknowledgement = ack-pb,
}

@Article{Quong:1991:LPI,
  author =       "Russell W. Quong and Mark A. Linton",
  title =        "Linking Programs Incrementally",
  journal =      j-TOPLAS,
  volume =       "13",
  number =       "1",
  pages =        "1--20",
  month =        jan,
  year =         "1991",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/102804.html",
  abstract =     "Linking is traditionally a batch process that resolves
                 cross-references between object modules and run-time
                 libraries to produce a stand-alone executable image.
                 Because most program changes only involve a small part
                 of the program, we have implemented an incremental
                 linker, named Inclink, that processes only the changed
                 modules. Inclink generates a new executable in time
                 proportional to the size of change; in contrast, a
                 batch linker generates an executable in time
                 proportional to the size of the program. To minimize
                 updates to the executable, Inclink allocates extra
                 space for every module. By allocating 24 percent more
                 space in the executable for overflows, Inclink can
                 update a module in place over 97 percent of the time.
                 Measurements show that Inclink is more than an order of
                 magnitude faster than the UNIX [2] batch linker and
                 that 88 percent of all links will take less than 2~s of
                 CPU time on a MicroVAX-2, independent of program
                 size.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  keywords =     "algorithms; measurement; performance",
  subject =      "{\bf D.4.9}: Software, OPERATING SYSTEMS, Systems
                 Programs and Utilities, Linkers. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Run-time
                 environments. {\bf D.3.3}: Software, PROGRAMMING
                 LANGUAGES, Language Constructs and Features, Modules,
                 packages.",
}

@Article{Fradet:1991:CFL,
  author =       "Pascal Fradet and Daniel Le {M{\'e}tayer}",
  title =        "Compilation of Functional Languages by Program
                 Transformation",
  journal =      j-TOPLAS,
  volume =       "13",
  number =       "1",
  pages =        "21--51",
  month =        jan,
  year =         "1991",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib, Compiler/absint.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/102805.html",
  abstract =     "One of the most important issues concerning functional
                 languages is the efficiency and the correctness of
                 their implementation. We focus on sequential
                 implementations for conventional von Neumann computers.
                 The compilation process is described in terms of
                 program transformations in the functional framework.
                 The original functional expression is transformed into
                 a functional term that can be seen as a traditional
                 machine code. The two main steps are the compilation of
                 the computation rule by the introduction of
                 continuation functions and the compilation of the
                 environment management using combinators. The advantage
                 of this approach is that we do not have to introduce an
                 abstract machine, which makes correctness proofs much
                 simpler. As far as efficiency is concerned, this
                 approach is promising since many optimizations can be
                 described and formally justified in the functional
                 framework.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  keywords =     "design; languages; verification",
  subject =      "{\bf D.3.2}: Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Applicative languages. {\bf D.3.4}:
                 Software, PROGRAMMING LANGUAGES, Processors, Compilers.
                 {\bf D.2.4}: Software, SOFTWARE ENGINEERING, Program
                 Verification, Correctness proofs. {\bf I.2.2}:
                 Computing Methodologies, ARTIFICIAL INTELLIGENCE,
                 Automatic Programming, Program transformation.",
}

@Article{Waters:1991:ATS,
  author =       "Richard C. Waters",
  title =        "Automatic Transformation of Series Expressions into
                 Loops",
  journal =      j-TOPLAS,
  volume =       "13",
  number =       "1",
  pages =        "52--98",
  month =        jan,
  year =         "1991",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/102806.html",
  abstract =     "The benefits of programming in a functional style are
                 well known. In particular, algorithms that are
                 expressed as compositions of functions operating on
                 sequences/vectors/streams of data elements are easier
                 to understand and modify than equivalent algorithms
                 expressed as loops. Unfortunately, this kind of
                 expression is not used anywhere near as often as it
                 could be, for at least three reasons: (1) most
                 programmers are less familiar with this kind of
                 expression than with loops; (2) most programming
                 languages provide poor support for this kind of
                 expression; and (3) when support is provided, it is
                 seldom efficient.\par

                 In any programming language, the second and third
                 problems can be largely solved by introducing a data
                 type called {\em series}, a comprehensive set of
                 procedures operating on series, and a preprocessor (or
                 compiler extension) that automatically converts most
                 series expressions into efficient loops. A set of
                 restrictions specifies which series expressions can be
                 optimized. If programmers stay within the limits
                 imposed, they are guaranteed of high efficiency at all
                 times.\par

                 A common Lisp macro package supporting series has been
                 in use for some time. A prototype demonstrates that
                 series can be straightforwardly supported in Pascal.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  keywords =     "algorithms; design; languages",
  subject =      "{\bf I.2.2}: Computing Methodologies, ARTIFICIAL
                 INTELLIGENCE, Automatic Programming, Program
                 transformation. {\bf D.1.1}: Software, PROGRAMMING
                 TECHNIQUES, Applicative (Functional) Programming. {\bf
                 D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Data types and structures.
                 {\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Control structures. {\bf
                 D.3.4}: Software, PROGRAMMING LANGUAGES, Processors.",
}

@Article{Brogi:1991:CLS,
  author =       "Antonio Brogi and Paolo Ciancarini",
  title =        "The Concurrent Language, {Shared Prolog}",
  journal =      j-TOPLAS,
  volume =       "13",
  number =       "1",
  pages =        "99--123",
  month =        jan,
  year =         "1991",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/102807.html",
  abstract =     "Shared Prolog is a new concurrent logic language. A
                 Shared Prolog system is composed of a set of parallel
                 agents that are Prolog programs extended by a guard
                 mechanism. The programmer controls the granularity of
                 parallelism, coordinating communication and
                 synchronization of the agents via a centralized data
                 structure. The communication mechanism is inherited
                 from the blackboard model of problem solving.
                 Intuitively, the granularity of the logic processes to
                 be elaborated in parallel is large, while the resources
                 shared on the blackboard can be very fined
                 grained.\par

                 An operational semantics for Shared Prolog is given in
                 terms of a distributed model. Through an abstract
                 notion of computation, the kinds of parallelism
                 supported by the language, as well as properties of
                 infinite computations, such as local deadlocks, are
                 studied.\par

                 The expressiveness of the language is shown with
                 respect to the specification of two classes of
                 applications: metaprogramming and blackboard systems.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  keywords =     "languages; theory",
  subject =      "{\bf D.3.2}: Software, PROGRAMMING LANGUAGES, Language
                 Classifications. {\bf I.2.3}: Computing Methodologies,
                 ARTIFICIAL INTELLIGENCE, Deduction and Theorem Proving,
                 Logic programming. {\bf D.3.1}: Software, PROGRAMMING
                 LANGUAGES, Formal Definitions and Theory, Semantics.
                 {\bf D.3.2}: Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Concurrent, distributed, and parallel
                 languages. {\bf F.4.1}: Theory of Computation,
                 MATHEMATICAL LOGIC AND FORMAL LANGUAGES, Mathematical
                 Logic, Logic programming.",
}

@Article{Herlihy:1991:WFS,
  author =       "Maurice Herlihy",
  title =        "Wait-Free Synchronization",
  journal =      j-TOPLAS,
  volume =       "13",
  number =       "1",
  pages =        "124--149",
  month =        jan,
  year =         "1991",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/102808.html",
  abstract =     "A {\em wait-free\/} implementation of a concurrent
                 data object is one that guarantees that any process can
                 complete any operation in a finite number of steps,
                 regardless of the execution speeds of the other
                 processes. The problem of constructing a wait-free
                 implementation of one data object from another lies at
                 the heart of much recent work in concurrent algorithms,
                 concurrent data structures, and multiprocessor
                 architectures. First, we introduce a simple and general
                 technique, based on reduction to a concensus protocol,
                 for proving statements of the form, ``there is no
                 wait-free implementation of $X$ by $Y$.'' We derive a
                 hierarchy of objects such that no object at one level
                 has a wait-free implementation in terms of objects at
                 lower levels. In particular, we show that atomic
                 read/write registers, which have been the focus of much
                 recent attention, are at the bottom of the hierarchy:
                 they cannot be used to construct wait-free
                 implementations of many simple and familiar data types.
                 Moreover, classical synchronization primitives such as
                 {\em test\&set\/} and {\em fetch\&add}, while more
                 powerful than {\em read\/} and {\em write}, are also
                 computationally weak, as are the standard
                 message-passing primitives. Second, nevertheless, we
                 show that there do exist simple universal objects from
                 which one can construct a wait-free implementation of
                 any sequential object.",
  acknowledgement = ack-pb,
  keywords =     "algorithms; design; reliability; verification",
  subject =      "{\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Concurrent programming
                 structures. {\bf D.4.1}: Software, OPERATING SYSTEMS,
                 Process Management, Synchronization. {\bf D.4.1}:
                 Software, OPERATING SYSTEMS, Process Management,
                 Concurrency.",
}

@Article{Ancona:1991:ECL,
  author =       "M. Ancona and G. Dodero and V. Gianuzzi and M.
                 Morgavi",
  title =        "Efficient Construction of {LR$(k)$} States and
                 Tables",
  journal =      j-TOPLAS,
  volume =       "13",
  number =       "1",
  pages =        "150--178",
  month =        jan,
  year =         "1991",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/102809.html",
  abstract =     "A new method for building LR($k$) states and parsing
                 tables is presented. The method aims at giving a
                 feasible construction of a collection of LR($k$)
                 parsing tables, especially when $k > 1$. for nontrivial
                 grammars. To this purpose, the algorithm first attempts
                 to build a set of {\em normal states\/} for the given
                 grammar, each one associated to a single parsing action
                 in {\em accept, reduce, shift}. When such an action
                 cannot be uniquely determined, that is, when up to $k$
                 input symbols have to be examined (inadequacy), further
                 states, belonging to a new type, called {\em
                 look-ahead\/} states, are computed. The action
                 associated with inadequate states is a new parsing
                 action, {\em look}. States are built without actual
                 computation of the FIRST${}_k$ and EFF${}_k$ functions;
                 that is, nonterminals are kept in the context string of
                 items composing each state, and their expansion to
                 terminals is deferred until indispensable to solve
                 inadequacy. The aforementioned method is illustrated;
                 then the canonical collection of states and the
                 canonical tables are compared with those obtained from
                 the proposed method. A sufficient condition is stated,
                 by which the size of parsing tables, obtained by
                 applying this new method, is smaller than that of
                 canonical tables. Experimental results show that such a
                 condition is verified by the grammars of several
                 programming languages and that significant speed is
                 gained by avoiding the computation of the FIRST${}_k$
                 function.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  keywords =     "algorithms; experimentation; languages; theory;
                 verification",
  subject =      "{\bf F.4.2}: Theory of Computation, MATHEMATICAL LOGIC
                 AND FORMAL LANGUAGES, Grammars and Other Rewriting
                 Systems, Parsing. {\bf F.4.2}: Theory of Computation,
                 MATHEMATICAL LOGIC AND FORMAL LANGUAGES, Grammars and
                 Other Rewriting Systems, Grammar types.",
}

@Article{Wileden:1991:CCE,
  author =       "Jack C. Wileden and Lori A. Clarke and Alexander L.
                 Wolf",
  title =        "Corrigenda: ``{A Comparative Evaluation of Object
                 Definition Techniques for Large Prototype Systems}''",
  journal =      j-TOPLAS,
  volume =       "13",
  number =       "1",
  pages =        "179--179",
  month =        jan,
  year =         "1991",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  note =         "See \cite{Wileden:1990:CEO}.",
  acknowledgement = ack-pb,
}

@Article{Wegman:1991:CPC,
  author =       "Mark N. Wegman and F. Kenneth Zadeck",
  title =        "Constant Propagation with Conditional Branches",
  journal =      j-TOPLAS,
  volume =       "13",
  number =       "2",
  pages =        "181--210",
  month =        apr,
  year =         "1991",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/103136.html",
  abstract =     "Constant propagation is a well-known global flow
                 analysis problem. The goal of constant propagation is
                 to discover values that are constant on all possible
                 executions of a program and to propagate these constant
                 values as far forward through the program as possible.
                 Expressions whose operands are all constants can be
                 evaluated at compile time and the results propagated
                 further. Using the algorithms presented in this paper
                 can produce smaller and faster compiled programs. The
                 same algorithms can be used for other kinds of analyses
                 (e.g., type of determination). We present four
                 algorithms in this paper, all {\em conservative\/} in
                 the sense that all constants may not be found, but each
                 constant found is constant over all possible executions
                 of the program. These algorithms are among the
                 simplest, fastest, and most powerful global constant
                 propagation algorithms known. We also present a new
                 algorithm that performs a form of interprocedural data
                 flow analysis in which aliasing information is gathered
                 in conjunction with constant progagation. Several
                 variants of this algorithm are considered.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  keywords =     "algorithms; design; languages; performance",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Optimization. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Compilers. {\bf
                 I.2.2}: Computing Methodologies, ARTIFICIAL
                 INTELLIGENCE, Automatic Programming, Program
                 transformation. {\bf D.3.3}: Software, PROGRAMMING
                 LANGUAGES, Language Constructs and Features.",
}

@Article{Yellin:1991:ILI,
  author =       "Daniel M. Yellin and Robert E. Strom",
  title =        "{INC}: {A} Language for Incremental Computations",
  journal =      j-TOPLAS,
  volume =       "13",
  number =       "2",
  pages =        "211--236",
  month =        apr,
  year =         "1991",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/103137.html",
  abstract =     "An incremental computation is one that is performed
                 repeatedly on nearly identical inputs. Incremental
                 computations occur naturally in many environments, such
                 as compilers, language-based editors, spreadsheets, and
                 formatters. This article describes a proposed tool for
                 making it easy to write incremental programs. The tool
                 consists of a programming language, INC, and a set of
                 compile-time transformations for the primitive elements
                 of INC. A programmer defines an algorithm in INC
                 without regard to efficient incremental execution. The
                 transformations automatically convert this algorithm
                 into an efficient incremental algorithm. INC is a
                 functional language. The implementation of an INC
                 program is a network of processes. Each INC function is
                 transformed into a process that receives and transmits
                 messages describing changes to its inputs and outputs.
                 We give an overview to the language and illustrate the
                 incremental techniques employed by INC. We present the
                 static and incremental complexity bounds for the
                 primitive INC functions. We also present some example
                 programs illustrating INC's flexibility.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  keywords =     "algorithms; languages",
  subject =      "{\bf D.3.2}: Software, PROGRAMMING LANGUAGES, Language
                 Classifications, INC. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Compilers. {\bf
                 D.2.6}: Software, SOFTWARE ENGINEERING, Programming
                 Environments, Interactive.",
}

@Article{Abadi:1991:DTS,
  author =       "{Mart\'{\i}n} Abadi and Luca Cardelli and Benjamin
                 Pierce and Gordon Plotkin",
  title =        "Dynamic Typing in a Statically Typed Language",
  journal =      j-TOPLAS,
  volume =       "13",
  number =       "2",
  pages =        "237--268",
  month =        apr,
  year =         "1991",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/103138.html",
  abstract =     "Statically typed programming languages allow earlier
                 error checking, better enforcement of disciplined
                 programming styles, and the generation of more
                 efficient object code than languages where all type
                 consistency checks are performed at run time. However,
                 even in statically typed languages, there is often the
                 need to deal with data whose type cannot be determined
                 at compile time. To handle such situations safely, we
                 propose to add a type Dynamic whose values are pairs of
                 a value $v$ and a type tag $T$ where $v$ has the type
                 denoted by $T$. Instances of Dynamic are built with an
                 explicit tagging construct and inspected with a type
                 safe typecase construct.\par

                 This paper explores the syntax, operational semantics,
                 and denotational semantics of a simple language that
                 includes the type Dynamic. We give examples of how
                 dynamically typed values can be used in programming.
                 Then we discuss an operational semantics for our
                 language and obtain a soundness theorem. We present two
                 formulations of the denotational semantics of this
                 language and relate them to the operational semantics.
                 Finally, we consider the implications of polymorphism
                 and some implementation issues.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  keywords =     "design; languages; theory",
  subject =      "{\bf F.3.3}: Theory of Computation, LOGICS AND
                 MEANINGS OF PROGRAMS, Studies of Program Constructs,
                 Type structure. {\bf F.3.2}: Theory of Computation,
                 LOGICS AND MEANINGS OF PROGRAMS, Semantics of
                 Programming Languages.",
}

@Article{Hudak:1991:CIE,
  author =       "Paul Hudak and Jonathan Young",
  title =        "Collecting Interpretations of Expressions",
  journal =      j-TOPLAS,
  volume =       "13",
  number =       "2",
  pages =        "269--290",
  month =        apr,
  year =         "1991",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/103139.html",
  abstract =     "A {\em collecting interpretation of expressions\/} is
                 an interpretation of a program that allows one to
                 answer questions of the sort: ``What are all possible
                 values to which an expression might evaluate during
                 program execution?'' Answering such questions in a
                 denotational framework is akin to traditional data flow
                 analysis and, when used in the context of abstract
                 interpretation, allows one to infer properties that
                 approximate the run-time behavior of expression
                 evaluation.\par

                 Exact collecting interpretations of expressions are
                 developed for three abstract functional languages: a
                 strict first-order language, a nonstrict first-order
                 language, and a nonstrict higher order language (the
                 full untyped lambda calculus with constants). It is
                 argued that the method is simple (in particular, no
                 powerdomains are needed), Natural (it captures the
                 intuitive operational behavior of a cache), yet more
                 expressive than existing methods (it is the first exact
                 collecting interpretation for either nonstrict higher
                 order languages). Correctness of the interpretations
                 with respect to the standard semantics is shown via a
                 generalization of the notion of strictness. It is
                 further shown how to form abstractions of these exact
                 interpretations, using as an example a collecting
                 strictness analysis which yields compile-time
                 information not previously captured by conventional
                 strictness analyses.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  keywords =     "languages; theory",
  subject =      "{\bf F.3.2}: Theory of Computation, LOGICS AND
                 MEANINGS OF PROGRAMS, Semantics of Programming
                 Languages, Denotational semantics. {\bf D.3.2}:
                 Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Applicative languages. {\bf F.4.2}:
                 Theory of Computation, MATHEMATICAL LOGIC AND FORMAL
                 LANGUAGES, Grammars and Other Rewriting Systems. {\bf
                 D.3.4}: Software, PROGRAMMING LANGUAGES, Processors,
                 Compilers.",
}

@Article{Dhamdhere:1991:PAG,
  author =       "Dhananjay M. Dhamdhere",
  title =        "Practical Adaptation of the Global Optimization
                 Algorithm of {Morel} and {Renvoise}",
  journal =      j-TOPLAS,
  volume =       "13",
  number =       "2",
  pages =        "291--294",
  month =        apr,
  year =         "1991",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/103161.html,
                 http://www.acm.org/pubs/toc/Abstracts/0164-0925/214520.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  keywords =     "algorithms; theory",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Optimization. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Compilers.",
}

@Article{Borstler:1991:TCT,
  author =       "J{\"u}rgen B{\"o}rstler and Ulrich M{\"o}ncke and
                 Reinhard Wilhelm",
  title =        "Table Compression for Tree Automata",
  journal =      j-TOPLAS,
  volume =       "13",
  number =       "3",
  pages =        "295--314",
  month =        jul,
  year =         "1991",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/117013.html",
  acknowledgement = ack-pb,
  keywords =     "design; experimentation; theory",
  subject =      "{\bf F.4.2}: Theory of Computation, MATHEMATICAL LOGIC
                 AND FORMAL LANGUAGES, Grammars and Other Rewriting
                 Systems, Parsing. {\bf F.1.1}: Theory of Computation,
                 COMPUTATION BY ABSTRACT DEVICES, Models of Computation,
                 Automata. {\bf E.1}: Data, DATA STRUCTURES, Trees. {\bf
                 E.4}: Data, CODING AND INFORMATION THEORY, Data
                 compaction and compression.",
}

@Article{Hudson:1991:IAE,
  author =       "Scott E. Hudson",
  title =        "Incremental Attribute Evaluation: {A} Flexible
                 Algorithm for Lazy Update",
  journal =      j-TOPLAS,
  volume =       "13",
  number =       "3",
  pages =        "315--341",
  month =        jul,
  year =         "1991",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/117012.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  keywords =     "algorithms; design; languages",
  subject =      "{\bf I.1.3}: Computing Methodologies, ALGEBRAIC
                 MANIPULATION, Languages and Systems, Evaluation
                 strategies. {\bf F.3.2}: Theory of Computation, LOGICS
                 AND MEANINGS OF PROGRAMS, Semantics of Programming
                 Languages. {\bf I.1.2}: Computing Methodologies,
                 ALGEBRAIC MANIPULATION, Algorithms, Nonalgebraic
                 algorithms.",
}

@Article{Morrison:1991:AHA,
  author =       "R. Morrison and A. Dearle and R. C. H. {Connor (or
                 Conner?)} and A. L. Brown",
  title =        "An Ad Hoc Approach to the Implementation of
                 Polymorphism",
  journal =      j-TOPLAS,
  volume =       "13",
  number =       "3",
  pages =        "342--371",
  month =        jul,
  year =         "1991",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/117017.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  keywords =     "languages; performance; theory",
  subject =      "{\bf D.3.2}: Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Napier88. {\bf D.3.3}: Software,
                 PROGRAMMING LANGUAGES, Language Constructs and
                 Features. {\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Run-time environments. {\bf D.3.3}:
                 Software, PROGRAMMING LANGUAGES, Language Constructs
                 and Features, Abstract data types.",
}

@Article{Murtagh:1991:ISM,
  author =       "Thomas P. Murtagh",
  title =        "An Improved Storage Management Scheme for Block
                 Structured Languages",
  journal =      j-TOPLAS,
  volume =       "13",
  number =       "3",
  pages =        "372--398",
  month =        jul,
  year =         "1991",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/117016.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  keywords =     "languages; performance; theory",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Compilers. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Optimization. {\bf
                 D.2.2}: Software, SOFTWARE ENGINEERING, Tools and
                 Techniques, Structured programming. {\bf G.2.2}:
                 Mathematics of Computing, DISCRETE MATHEMATICS, Graph
                 Theory, Graph algorithms.",
}

@Article{Peng:1991:DFA,
  author =       "Wuxu Peng and S. Purushothaman",
  title =        "Data Flow Analysis of Communicating Finite State
                 Machines",
  journal =      j-TOPLAS,
  volume =       "13",
  number =       "3",
  pages =        "399--442",
  month =        jul,
  year =         "1991",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Misc/IMMD_IV.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  note =         "See \cite{Purushothaman:1991:CFA}.",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/117015.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; theory; verification",
  subject =      "{\bf F.1.1}: Theory of Computation, COMPUTATION BY
                 ABSTRACT DEVICES, Models of Computation,
                 Unbounded-action devices. {\bf F.2.2}: Theory of
                 Computation, ANALYSIS OF ALGORITHMS AND PROBLEM
                 COMPLEXITY, Nonnumerical Algorithms and Problems,
                 Sequencing and scheduling. {\bf F.1.1}: Theory of
                 Computation, COMPUTATION BY ABSTRACT DEVICES, Models of
                 Computation, Automata.",
}

@Article{Krogh:1991:AAP,
  author =       "Fred T. Krogh",
  title =        "{ACM} Algorithms Policy",
  journal =      j-TOPLAS,
  volume =       "13",
  number =       "3",
  pages =        "443--446",
  month =        jul,
  year =         "1991",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Misc/IMMD_IV.bib",
  acknowledgement = ack-nhfb,
}

@Article{Anonymous:1991:IA,
  author =       "Anonymous",
  title =        "Information for Authors",
  journal =      j-TOPLAS,
  volume =       "13",
  number =       "3",
  pages =        "447--450",
  month =        jul,
  year =         "1991",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 06 14:07:30 1996",
  acknowledgement = ack-pb,
}

@Article{Cytron:1991:ECS,
  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 =      j-TOPLAS,
  volume =       "13",
  number =       "4",
  pages =        "451--490",
  month =        oct,
  year =         "1991",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/115320.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  keywords =     "algorithms; languages",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Compilers. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Optimization. {\bf
                 D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Data types and structures.
                 {\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Control structures. {\bf
                 I.1.2}: Computing Methodologies, ALGEBRAIC
                 MANIPULATION, Algorithms, Analysis of algorithms. {\bf
                 I.2.2}: Computing Methodologies, ARTIFICIAL
                 INTELLIGENCE, Automatic Programming, Program
                 transformation.",
}

@Article{Choi:1991:TDP,
  author =       "Jong-Deok Choi and Barton P. Miller and Robert H. B.
                 Netzer",
  title =        "Techniques for Debugging Parallel Programs with
                 Flowback Analysis",
  journal =      j-TOPLAS,
  volume =       "13",
  number =       "4",
  pages =        "491--530",
  month =        oct,
  year =         "1991",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Object/Ooos.bib, Compiler/Compiler.Lins.bib,
                 Compiler/TOPLAS.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/115324.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; design; languages; measurement;
                 performance",
  subject =      "{\bf D.2.5}: Software, SOFTWARE ENGINEERING, Testing
                 and Debugging, Debugging aids. {\bf D.2.5}: Software,
                 SOFTWARE ENGINEERING, Testing and Debugging, Monitors.
                 {\bf D.2.5}: Software, SOFTWARE ENGINEERING, Testing
                 and Debugging, Tracing. {\bf D.3.3}: Software,
                 PROGRAMMING LANGUAGES, Language Constructs and
                 Features, Concurrent programming structures. {\bf
                 D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Control structures. {\bf
                 D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Procedures, functions, and
                 subroutines. {\bf D.3.4}: Software, PROGRAMMING
                 LANGUAGES, Processors, Code generation. {\bf D.4.1}:
                 Software, OPERATING SYSTEMS, Process Management,
                 Multiprocessing/multiprogramming. {\bf D.1.3}:
                 Software, PROGRAMMING TECHNIQUES, Concurrent
                 Programming, Parallel programming.",
}

@Article{Sheard:1991:AGU,
  author =       "Tim Sheard",
  title =        "Automatic Generation and Use of Abstract Structure
                 Operators",
  journal =      j-TOPLAS,
  volume =       "13",
  number =       "4",
  pages =        "531--557",
  month =        oct,
  year =         "1991",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/115369.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  keywords =     "algorithms; design; languages",
  subject =      "{\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Abstract data types. {\bf
                 D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Recursion. {\bf D.1.1}:
                 Software, PROGRAMMING TECHNIQUES, Applicative
                 (Functional) Programming.",
}

@Article{Lycklama:1991:FCF,
  author =       "Edward A. Lycklama and Vassos Hadzilacos",
  title =        "A First-Come-First-Served Mutual-Exclusion Algorithm
                 with Small Communication Variables",
  journal =      j-TOPLAS,
  volume =       "13",
  number =       "4",
  pages =        "558--576",
  month =        oct,
  year =         "1991",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/115370.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; design; theory",
  subject =      "{\bf D.4.1}: Software, OPERATING SYSTEMS, Process
                 Management, Mutual exclusion. {\bf D.4.1}: Software,
                 OPERATING SYSTEMS, Process Management, Synchronization.
                 {\bf C.2.4}: Computer Systems Organization,
                 COMPUTER-COMMUNICATION NETWORKS, Distributed Systems.",
}

@Article{Jagadeesan:1991:FAS,
  author =       "Radha Jagadeesan and Keshav Pingali and Prakash
                 Panangaden",
  title =        "A Fully Abstract Semantics for a First-Order
                 Functional Language with Logic Variables",
  journal =      j-TOPLAS,
  volume =       "13",
  number =       "4",
  pages =        "577--625",
  month =        oct,
  year =         "1991",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/115371.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  keywords =     "design; languages; theory",
  subject =      "{\bf F.3.2}: Theory of Computation, LOGICS AND
                 MEANINGS OF PROGRAMS, Semantics of Programming
                 Languages. {\bf D.3.1}: Software, PROGRAMMING
                 LANGUAGES, Formal Definitions and Theory, Semantics.
                 {\bf D.1.1}: Software, PROGRAMMING TECHNIQUES,
                 Applicative (Functional) Programming. {\bf F.4.1}:
                 Theory of Computation, MATHEMATICAL LOGIC AND FORMAL
                 LANGUAGES, Mathematical Logic, Logic programming. {\bf
                 D.1.6}: Software, PROGRAMMING TECHNIQUES, Logic
                 Programming.",
}

@Article{Cohen:1991:TCT,
  author =       "Norman H. Cohen",
  title =        "Technical Correspondence: Type-Extension Type Tests
                 Can Be Performed In Constant Time",
  journal =      j-TOPLAS,
  volume =       "13",
  number =       "4",
  pages =        "626--629",
  month =        oct,
  year =         "1991",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Sat Jan 6 14:08:14 1996",
  note =         "See \cite{Wirth:1988:TE,Wirth:1991:TCR}.",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/115297.html",
  acknowledgement = ack-pb,
  keywords =     "algorithms; languages; performance; theory",
  subject =      "{\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Data types and structures.
                 {\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Procedures, functions, and
                 subroutines. {\bf D.3.4}: Software, PROGRAMMING
                 LANGUAGES, Processors. {\bf E.2}: Data, DATA STORAGE
                 REPRESENTATIONS, Linked representations. {\bf E.1}:
                 Data, DATA STRUCTURES, Lists.",
}

@Article{Wirth:1991:TCR,
  author =       "Nicklaus Wirth",
  title =        "Technical Correspondence: Reply to ``{Type}-Extension
                 Tests Can Be Performed In Constant Time''",
  journal =      j-TOPLAS,
  volume =       "13",
  number =       "4",
  pages =        "630--630",
  month =        oct,
  year =         "1991",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  note =         "See \cite{Wirth:1988:TE,Cohen:1991:TCT}.",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/214521.html",
  acknowledgement = ack-pb,
  keywords =     "performance",
  subject =      "{\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Data types and structures.",
}

@Article{Volpano:1991:TCS,
  author =       "Dennis M. Volpano",
  title =        "Technical Correspondence: Subtypes and
                 Quantification",
  journal =      j-TOPLAS,
  volume =       "13",
  number =       "4",
  pages =        "631--632",
  month =        oct,
  year =         "1991",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib, Compiler/Compiler.Lins.bib",
  note =         "See \cite{Burton:1990:TCT,Burton:1991:RSQ}.",
  URL =          "