%%% -*-BibTeX-*-
%%% ====================================================================
%%%  BibTeX-file{
%%%     author-1        = "Preston Briggs",
%%%     author-2        = "Nelson H. F. Beebe",
%%%     version         = "2.113",
%%%     date            = "09 August 2014",
%%%     time            = "08:16: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        = "07094 39405 190047 1942375",
%%%     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
%%%                        (print), 1558-4593 (electronic)), 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.113, the year coverage looked
%%%                        like this:
%%%
%%%                             1979 (  20)    1991 (  30)    2003 (  20)
%%%                             1980 (  33)    1992 (  22)    2004 (  28)
%%%                             1981 (  28)    1993 (  32)    2005 (  33)
%%%                             1982 (  39)    1994 (  66)    2006 (  27)
%%%                             1983 (  36)    1995 (  39)    2007 (  45)
%%%                             1984 (  34)    1996 (  29)    2008 (  33)
%%%                             1985 (  34)    1997 (  35)    2009 (  23)
%%%                             1986 (  26)    1998 (  34)    2010 (  21)
%%%                             1987 (  27)    1999 (  32)    2011 (  21)
%%%                             1988 (  32)    2000 (  28)    2012 (  17)
%%%                             1989 (  30)    2001 (  14)    2013 (  14)
%%%                             1990 (  28)    2002 (  21)    2014 (   7)
%%%
%%%                             Article:       1037
%%%                             TechReport:       1
%%%
%%%                             Total entries: 1038
%%%
%%%                        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",
  ISBN-13 =      "978-0-902928-52-7",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 6 11:06:56 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 6 13:02:18 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See also corrigendum \cite{Lamport:1980:CNA}.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 18:36:35 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Parallel/scheduling.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Ai/Constr.logic.prog.bib; Compiler/Compiler.Lins.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib;
                 Compiler/garbage.collection.bib; Compiler/Heaps.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  comment =      "Good words on {CDR}-coding",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 13:02:21 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See also corrigendum \cite{Francez:1980:CDT} and
                 remarks \cite{Mohan:1981:TCF,Francez:1981:TCR}.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/hash.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 12:53:34 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See \cite{Lamport:1979:NAP}.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See also corrigendum \cite{Wallis:1981:CER}.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 13:02:24 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See also corrigendum \cite{Davidson:1981:CDA}.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Theory/ProbAlgs.bib",
  note =         "Bernstein presents a distributed algorithm for CSP
                 output guards based on priority ordering of
                 processes.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 6 13:22:43 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See remarks \cite{Moitra:1983:TCA}.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@Article{Francez:1980:CDT,
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 12:55:53 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See
                 \cite{Francez:1980:DT,Mohan:1981:TCF,Francez:1981:TCR}.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See remarks
                 \cite{Ellis:1982:TCS,Steensgaard-Madsen:1982:TCS}.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib;
                 Compiler/garbage.collection.bib; Compiler/Heaps.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 6 13:17:11 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See remarks
                 \cite{Henderson:1983:TCL,LaLonde:1983:TCL}.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See \cite{Davidson:1980:DAR}.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@Article{Wallis:1981:CER,
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See \cite{Wallis:1980:ERO}.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See \cite{Francez:1980:DT,Francez:1981:TCR}.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 13:05:53 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See \cite{Francez:1980:DT,Mohan:1981:TCF}.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Ai/lisp.bib; Compiler/Compiler.Lins.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 Database/Graefe.bib;
                 http://www.math.utah.edu/pub/tex/bib/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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Sep 9 14:11:06 1994",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://doi.acm.org/10.1145/357133.357137",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Oct 31 06:37:56 2003",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Object/Nierstrasz.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/prog.lang.theory.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/bevan.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.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",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Mon Oct 26 07:58:22 1998",
  bibsource =    "Compiler/bevan.bib; Compiler/Compiler.Lins.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/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",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/bevan.bib; Compiler/Compiler.Lins.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/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",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/bevan.bib; Compiler/Compiler.Lins.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/Functional.bib; Parallel/par.dataflow.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",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/bevan.bib; Compiler/Compiler.Lins.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/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",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jun 8 13:21:42 1984",
  bibsource =    "Compiler/bevan.bib; Compiler/compiler.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.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",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 13:08:12 1996",
  bibsource =    "Compiler/bevan.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See
                 \cite{Steensgaard-Madsen:1981:SOA,Steensgaard-Madsen:1982:TCS}",
  checked =      "19940302",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  sjb =          "Points out that Madsen's ``new'' approach already
                 exists in languages like Smalltalk and Scheme.",
}

@Article{Steensgaard-Madsen:1982:TCS,
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/bevan.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See
                 \cite{Steensgaard-Madsen:1981:SOA,Ellis:1982:TCS}.",
  checked =      "19940302",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/bevan.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.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",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 18:36:33 1996",
  bibsource =    "Compiler/bevan.bib; Compiler/Compiler.Lins.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.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",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/bevan.bib; Compiler/Compiler.Lins.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/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",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/bevan.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.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",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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",
  DOI =          "http://doi.acm.org/10.1145/357162.357168",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Thu Nov 8 14:50:28 2007",
  bibsource =    "Compiler/bevan.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.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",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Ai/prolog.1.bib; Compiler/bevan.bib;
                 Compiler/Compiler.Lins.bib;
                 Compiler/prog.lang.theory.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.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",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; complexity of proof procedures; languages;
                 logic; mechanical theorem proving; performance; prolog;
                 resolution; theory",
  source =       "Dept. Library",
}

@Article{Ashcroft:1982:RS,
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/bevan.bib; Compiler/Compiler.Lins.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/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",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/bevan.bib; Compiler/Compiler.Lins.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/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",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 6 14:20:25 1996",
  bibsource =    "Compiler/bevan.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.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",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/bevan.bib; Compiler/Compiler.Lins.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/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",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Oct 17 12:24:31 1998",
  bibsource =    "Compiler/bevan.bib; Compiler/Compiler.Lins.bib;
                 Compiler/TOPLAS.bib; Database/dbase.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Theory/ProbAlgs.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",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/bevan.bib; Compiler/Compiler.Lins.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/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",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Ai/nonmono.bib; Compiler/bevan.bib;
                 Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/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",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/bevan.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.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",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 6 13:36:09 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Thu May 26 15:49:48 1988",
  bibsource =    "Compiler/bevan.bib; Compiler/Compiler.Lins.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/programming.env.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",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/bevan.bib; Compiler/Compiler.Lins.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/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",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/bevan.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.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",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/bevan.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.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",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/bevan.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.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",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat May 4 17:32:11 1996",
  bibsource =    "Compiler/bevan.bib; Compiler/Compiler.Lins.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/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",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/bevan.bib; Compiler/Compiler.Lins.bib;
                 Compiler/garbage.collection.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.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",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/bevan.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.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",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/bevan.bib; Compiler/Compiler.Lins.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/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",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/bevan.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.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",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/bevan.bib; Compiler/Compiler.Lins.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/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",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/bevan.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.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",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Database/Wiederhold.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  annote =       "Immune to process failures and restarts.",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 6 11:07:03 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See \cite{LaLonde:1981:HOP,LaLonde:1983:TCL}.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See \cite{LaLonde:1981:HOP,Henderson:1983:TCL}.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Thu Jul 28 16:03:28 1983",
  bibsource =    "Compiler/compiler.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.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]",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 Database/Graefe.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 Database/dbase.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Theory/ProbAlgs.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Thu Jul 28 16:27:08 1983",
  bibsource =    "Compiler/compiler.bib; Compiler/Compiler.Lins.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/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]",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 13:32:11 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Object/Nierstrasz.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/vlsi.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.",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See \cite{Tanenbaum:1982:UPO,Tanenbaum:1983:TCT}.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See \cite{Tanenbaum:1982:UPO,Pemberton:1983:TCT}.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See \cite{Apt:1980:PSC}.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 6 13:36:05 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib;
                 Compiler/garbage.collection.bib; Compiler/Heaps.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib;
                 Compiler/garbage.collection.bib; Compiler/Heaps.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Ai/nonmono.bib; Compiler/Compiler.Lins.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Object/Nierstrasz.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 18:36:30 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/Functional.bib; Parallel/Pfpbib.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Theory/ProbAlgs.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 Database/dbase.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See \cite{Soisalon-Soininen:1982:IEE}.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 6 13:27:37 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 13:28:08 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See addendum \cite{Bird:1985:APA}.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Tue Nov 20 15:31:51 1984",
  bibsource =    "Compiler/compiler.bib; Compiler/Compiler.Lins.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Tue Nov 20 15:35:55 1984",
  bibsource =    "Compiler/compiler.bib; Compiler/Compiler.Lins.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Thu Feb 7 11:53:52 1985",
  bibsource =    "Compiler/compiler.bib; Compiler/Compiler.Lins.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Theory/graph.coloring.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See remark \cite{Nielson:1986:TCC}.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Thu Feb 7 12:01:54 1985",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/os.bib; Os/os.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/2364.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/2365.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/2366.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Wed Mar 6 11:45:48 1985",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 Graphics/graphics.1.bib;
                 http://www.math.utah.edu/pub/tex/bib/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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/2433.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/2528.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/2708.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Wed Mar 6 12:00:21 1985",
  bibsource =    "Compiler/compiler.bib; Compiler/Compiler.Lins.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Wed Mar 6 12:03:08 1985",
  bibsource =    "Compiler/compiler.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/215005.html",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Mon Oct 21 13:40:48 1985",
  bibsource =    "Compiler/Compiler.Lins.bib;
                 Compiler/garbage.collection.bib; Compiler/Heaps.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/programming.env.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/3320.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Theory/obscure.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/3319.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 Database/dbase.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/Discrete.event.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/3322.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/3323.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/3480.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/3479.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/3478.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/3917.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/3989.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Mon Sep 30 16:35:18 1985",
  bibsource =    "Database/time.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Aug 13 17:16:20 MDT 1994",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/sigplan.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/3987.html",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/3986.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/4019.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See \cite{Bird:1984:PAS}.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 6 13:35:53 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 13:36:44 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 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.",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Aug 13 17:16:20 MDT 1994",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/sigplan.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/4477.html",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 09:17:25 1996",
  bibsource =    "Compiler/compiler.bib; Compiler/Compiler.Lins.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/sigplan.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/4476.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/4475.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/4474.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Oct 31 06:38:00 2003",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/4473.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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.",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jun 1 08:35:36 MDT 1996",
  bibsource =    "http://www.acm.org/pubs/toc/;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/215006.html",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/5390.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/5005.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/5004.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/5003.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/5007.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/5002.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/30847.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/5918.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Ai/nonmono.bib; Compiler/Compiler.Lins.bib;
                 Compiler/TOPLAS.bib; Database/dbase.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Object/Nierstrasz.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/30850.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/5959.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/5957.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/5958.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/5999.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/6000.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See \cite{Georgeff:1984:TRS}",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/215007.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 6 15:04:03 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Mon Jan 19 14:55:31 1987",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/programming.env.bib; Object/Nierstrasz.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Mon Jan 19 15:05:31 1987",
  bibsource =    "Compiler/Compiler.Lins.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/programming.env.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Feb 24 09:59:21 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/programming.env.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.",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 09:41:04 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/programming.env.bib; Misc/sigplan.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Tue Jan 20 11:19:15 1987",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/programming.env.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 13:41:06 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/10500.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/9759.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/10501.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/11326.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Mon Jun 29 10:47:01 1987",
  bibsource =    "Compiler/compiler.bib; Compiler/Compiler.Lins.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Mon Jun 29 11:01:25 1987",
  bibsource =    "Compiler/compiler.bib; Compiler/Compiler.Lins.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Mon Jun 29 11:08:03 1987",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/softeng.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Mon Jun 29 11:22:11 1987",
  bibsource =    "Ai/ai.bib; Ai/nonmono.bib; Compiler/Compiler.Lins.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Mon Jun 29 11:30:12 1987",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/arch.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 11:07:27 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/programming.env.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Aug 21 09:04:21 1987",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Wed Sep 2 13:23:46 1987",
  bibsource =    "Compiler/compiler.bib; Compiler/Compiler.Lins.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/24050.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Wed Sep 2 13:49:06 1987",
  bibsource =    "Compiler/compiler.bib; Compiler/Compiler.Lins.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Theory/obscure.bib",
  note =         "See remarks \cite{Yemini:1988:TCA}.",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/24052.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Wed Sep 2 13:55:34 1987",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/programming.env.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/24071.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 6 13:43:09 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Mon Feb 15 12:34:06 1988",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Mon Feb 15 12:46:31 1988",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/programming.env.bib; Parallel/par.compiler.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/29876.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/30391.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/30392.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/31334.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/31333.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/30399.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/42193.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/42324.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/42194.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/45067.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib; Object/Nierstrasz.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/42195.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Tue May 17 14:11:24 1988",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib; Misc/softeng.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Tue May 17 14:16:02 1988",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib; Misc/softeng.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/42191.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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{LeMetayer: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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib; Parallel/Pfpbib.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/42348.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/hash.bib; Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/42277.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/42278.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/42276.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/214503.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/44502.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib; Misc/Z.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/44503.html",
  acknowledgement = ack-pb,
  annote =       "Also reprinted in \cite{Morgan:1988:RC}.",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/44504.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/44505.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib;
                 Compiler/prog.lang.theory.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib; Object/Nierstrasz.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See \cite{Yemini:1987:ATE}.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 6 15:04:15 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 13:50:15 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/48023.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/absint.bib; Compiler/Compiler.Lins.bib;
                 Compiler/garbage.collection.bib; Compiler/Heaps.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/48025.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/48024.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  note =         "See corrigendum \cite{Kennaway:1989:CDS}.",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/48026.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  note =         "See remarks \cite{Tichy:1988:TCT}.",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/214505.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See \cite{Schwanke:1988:SR}.",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/214507.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See remark \cite{Sorkin:1989:TCS}.",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/214509.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 13:53:44 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Aug 13 17:16:20 MDT 1994",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib; Misc/sigplan.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/59289.html",
  acknowledgement = ack-pb # " and " # ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/59290.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib; Parallel/scheduling.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/59291.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/77345.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/59292.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/59293.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/62028.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/63400.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/63401.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/63265.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/63518.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/63402.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/63403.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/65980.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/65981.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/65982.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/absint.bib; Compiler/Compiler.Lins.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/65983.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/65984.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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:CDS,
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See \cite{Kennaway:1988:DSC}.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 6 15:04:22 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 Database/Graefe.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/75700.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/69559.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/69560.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/69561.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Tue May 2 18:50:35 2000",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.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.",
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib; Parallel/Pfpbib.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  note =         "See \cite{Drechsler:1988:TCS}.",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/214513.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 14:00:28 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib; Misc/scm.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/77607.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/77608.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/77609.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/77610.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/77611.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/77612.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  note =         "See \cite{Volpano:1991:TCS,Burton:1991:TCA}.",
  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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/78943.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/78944.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/78945.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/78946.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/partial-eval.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib; Theory/CLiCS.bib;
                 Theory/partial-eval.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/78947.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/78948.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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:IBA,
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/absint.bib; Compiler/Compiler.Lins.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/78963.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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:WSP,
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/78970.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/78971.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/78972.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 6 14:04:29 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 14:04:27 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/88621.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib; Object/Ooos.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/88631.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/214518.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/88637.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 14:05:08 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/absint.bib; Compiler/Compiler.Lins.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See \cite{Wileden:1990:CEO}.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.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,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/117013.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/117012.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/117017.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/117016.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  note =         "See \cite{Purushothaman:1991:CDF}.",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/117015.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Misc/IMMD_IV.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 14:07:30 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/115320.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Object/Ooos.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/115324.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/115369.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/115370.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/115371.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 6 14:08:14 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See \cite{Wirth:1988:TE,Wirth:1991:TCR}.",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/115297.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See \cite{Wirth:1988:TE,Cohen:1991:TCT}.",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/214521.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See \cite{Burton:1990:TCT,Burton:1991:TCA}.",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/214523.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "languages; theory",
  subject =      "{\bf F.3.3}: Theory of Computation, LOGICS AND
                 MEANINGS OF PROGRAMS, Studies of Program Constructs,
                 Type structure.",
}

@Article{Burton:1991:TCA,
  author =       "F. Warren Burton",
  title =        "Technical Correspondence: Author's Reply to
                 ``{Subtypes and Quantification}'', by {D. M. Volpano}",
  journal =      j-TOPLAS,
  volume =       "13",
  number =       "4",
  pages =        "633--633",
  month =        oct,
  year =         "1991",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 6 14:12:08 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See \cite{Burton:1990:TCT,Volpano:1991:TCS}.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@Article{Purushothaman:1991:CDF,
  author =       "S. Purushothaman",
  title =        "Corrigendum: ``{Data Flow Analysis of Communicating
                 Finite State Machines}''",
  journal =      j-TOPLAS,
  volume =       "13",
  number =       "4",
  pages =        "633--633",
  month =        oct,
  year =         "1991",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See \cite{Peng:1991:DFA}.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@Article{Anonymous:1991:AI,
  author =       "Anonymous",
  title =        "1991 Author Index",
  journal =      j-TOPLAS,
  volume =       "13",
  number =       "4",
  pages =        "634--635",
  month =        oct,
  year =         "1991",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 14:14:37 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@Article{Ungar:1992:ATP,
  author =       "David Ungar and Frank Jackson",
  title =        "An Adaptive Tenuring Policy for Generation
                 Scavengers",
  journal =      j-TOPLAS,
  volume =       "14",
  number =       "1",
  pages =        "1--27",
  month =        jan,
  year =         "1992",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/116734.html",
  abstract =     "One of the more promising automatic storage
                 reclamation techniques, generation scavenging, suffers
                 poor performance if many objects live for a fairly long
                 time and then die. We have investigated the severity of
                 this problem by simulating a two-generation scavenger
                 using traces taken from actual 4-h sessions. There was
                 a wide variation in the sample runs, with
                 garbage-collection overhead ranging from insignificant,
                 during three of the runs, to severe, during a single
                 run. All runs demonstrated that performance could be
                 improved with two techniques: segregating large bitmaps
                 and strings, and adapting the scavenger's tenuring
                 policy according to demographic feedback. We therefore
                 incorporated these ideas into a commercial Smalltalk
                 implementation. These two improvements deserve
                 consideration for any storage reclamation strategy that
                 utilizes a generation scavenger.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; languages; measurement; performance;
                 theory",
  subject =      "{\bf D.4.2}: Software, OPERATING SYSTEMS, Storage
                 Management, Allocation/deallocation strategies. {\bf
                 D.2.6}: Software, SOFTWARE ENGINEERING, Programming
                 Environments, Interactive. {\bf D.3.2}: Software,
                 PROGRAMMING LANGUAGES, Language Classifications, Self.
                 {\bf D.3.2}: Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Smalltalk. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Run-time
                 environments.",
}

@Article{Solworth:1992:E,
  author =       "Jon A. Solworth",
  title =        "Epochs",
  journal =      j-TOPLAS,
  volume =       "14",
  number =       "1",
  pages =        "28--53",
  month =        jan,
  year =         "1992",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/116785.html",
  abstract =     "To date, the implementation of message passing
                 languages has required the communications variables
                 (sometimes called ports) either to be limited to the
                 number of physical communications registers in the
                 machine or to be mapped to memory. Neither solution is
                 satisfactory. Limiting the number of variables
                 decreases modularity and efficiency of parallel
                 programs. Mapping variables to memory increases the
                 cost of communications and the granularity of
                 parallelism. We present here a new programming language
                 construct called {\em epochs}.\par

                 Epochs are a scoping mechanism within which the
                 programmer can declare communications variables, which
                 are live only during the scope of that epoch. To limit
                 the range of time a register has to be allocated for a
                 communications variable, the compiler ensures that all
                 processors enter an epoch simultaneously. The
                 programming style engendered fits somewhere between the
                 SIMD data parallel and the MIMD process spawning
                 models.\par

                 We describe an implementation for epochs including an
                 efficient synchronization mechanism, a means of
                 statically binding registers to communications
                 variables, and a method of fusing epochs to reduce
                 synchronization overhead.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; design; languages; theory",
  subject =      "{\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features. {\bf D.4.4}: Software,
                 OPERATING SYSTEMS, Communications Management, Message
                 sending. {\bf C.1.2}: Computer Systems Organization,
                 PROCESSOR ARCHITECTURES, Multiple Data Stream
                 Architectures (Multiprocessors). {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Compilers. {\bf
                 D.4.1}: Software, OPERATING SYSTEMS, Process
                 Management, Synchronization.",
}

@Article{Hickey:1992:CAM,
  author =       "Timothy J. Hickey and Jacques Cohen and Hitofumi Hotta
                 and Thierry PetitJean",
  title =        "Computer-Assisted Microanalysis of Parallel Programs",
  journal =      j-TOPLAS,
  volume =       "14",
  number =       "1",
  pages =        "54--106",
  month =        jan,
  year =         "1992",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/126699.html",
  abstract =     "This paper consists of two parts: the first provides
                 the theoretical foundations for analyzing parallel
                 programs and illustrates how the theory can be applied
                 to estimate the execution time of a class of parallel
                 programs being executed on a MIMD computer. The second
                 part describes a program analysis system, based on the
                 theoretical model, which allows a user to interactively
                 analyze the results of executing (or simulating the
                 execution) of such parallel programs. Several examples
                 illustrating the use of the tool are presented. A novel
                 contribution is the separation (both at the conceptual
                 and the implementation levels) of the
                 machine-independent and the machine-dependent parts of
                 the analysis. This separation enables the users of the
                 system to establish speed-up curves for machines having
                 varying characteristics.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; design; languages; performance; theory",
  subject =      "{\bf D.1.3}: Software, PROGRAMMING TECHNIQUES,
                 Concurrent Programming, Parallel programming. {\bf
                 D.2.8}: Software, SOFTWARE ENGINEERING, Metrics,
                 Performance measures. {\bf D.2.2}: Software, SOFTWARE
                 ENGINEERING, Tools and Techniques, Programmer
                 workbench. {\bf D.2.5}: Software, SOFTWARE ENGINEERING,
                 Testing and Debugging, Symbolic execution. {\bf F.4.1}:
                 Theory of Computation, MATHEMATICAL LOGIC AND FORMAL
                 LANGUAGES, Mathematical Logic, Prolog.",
}

@Article{Gudeman:1992:DSG,
  author =       "David A. Gudeman",
  title =        "Denotational Semantics of a Goal-Directed Language",
  journal =      j-TOPLAS,
  volume =       "14",
  number =       "1",
  pages =        "107--125",
  month =        jan,
  year =         "1992",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/104659.html",
  abstract =     "Goal-directed evaluation is a very expressive
                 programming language paradigm that is supported in
                 relatively few languages. It is characterized by
                 evaluation of expressions in an attempt to meet some
                 goal, with resumption of previous expressions on
                 failure. This paradigm is found in SNOBL4 in its
                 pattern-matching facilities, and in Icon as a general
                 part of the language. This paper presents a
                 denotational semantics of Icon and shows how Icon is in
                 fact a combination of two distinct paradigms,
                 goal-directed evaluation and functional application.
                 The two paradigms are not supported separately in
                 different contexts, but integrated fully into a single
                 evaluation mechanism.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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.1}:
                 Software, PROGRAMMING LANGUAGES, Formal Definitions and
                 Theory, Semantics. {\bf D.3.2}: Software, PROGRAMMING
                 LANGUAGES, Language Classifications, Nonprocedural
                 languages. {\bf D.3.2}: Software, PROGRAMMING
                 LANGUAGES, Language Classifications, ICON. {\bf D.3.3}:
                 Software, PROGRAMMING LANGUAGES, Language Constructs
                 and Features, Control structures. {\bf F.3.3}: Theory
                 of Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Studies of Program Constructs, Control primitives.",
}

@Article{Boute:1992:EDF,
  author =       "Raymond T. Boute",
  title =        "The {Euclidean} Definition of the Functions div and
                 mod",
  journal =      j-TOPLAS,
  volume =       "14",
  number =       "2",
  pages =        "127--144",
  month =        apr,
  year =         "1992",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/128862.html",
  abstract =     "The definitions of the functions div and mod in the
                 computer science literature and in programming
                 languages are either similar to the Algol of Pascal
                 definition (which is shown to be an unfortunate choice)
                 or based on division by truncation (T-definition) or
                 division by flooring as defined by Knuth
                 (F-definition). The differences between various
                 definitions that are in common usage are discussed, and
                 an additional one is proposed, which is based on
                 Euclid's theorem and therefore is called the {\em
                 Euclidean\/} definition (E-definition). Its
                 distinguishing feature is that $0 <= D \bmod d < d$
                 irrespective of the signs of $D$ and $d$. It is argued
                 that the E- and F-definitions are superior to all other
                 ones in regularity and useful mathematical properties
                 and hence deserve serious consideration as the standard
                 convention at the applications and language level. It
                 is also shown that these definitions are the most
                 suitable ones for describing number representation
                 systems and the realization of arithmetic operations at
                 the architecture and hardware level.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "design; languages; standardization; theory",
  subject =      "{\bf D.3.1}: Software, PROGRAMMING LANGUAGES, Formal
                 Definitions and Theory, Semantics. {\bf B.2.m}:
                 Hardware, ARITHMETIC AND LOGIC STRUCTURES,
                 Miscellaneous. {\bf D.3.0}: Software, PROGRAMMING
                 LANGUAGES, General, Standards. {\bf D.3.3}: Software,
                 PROGRAMMING LANGUAGES, Language Constructs and
                 Features, Data types and structures. {\bf G.1.0}:
                 Mathematics of Computing, NUMERICAL ANALYSIS, General,
                 Computer arithmetic.",
}

@Article{Wolf:1992:GEI,
  author =       "Alexander L. Wolf",
  title =        "{Guest Editor}'s Introduction to the Special Section
                 on the {Third International Conference on Computer
                 Languages}",
  journal =      j-TOPLAS,
  volume =       "14",
  number =       "2",
  pages =        "145--146",
  month =        apr,
  year =         "1992",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 11:18:44 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/128863.html",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  subject =      "{\bf D.3.0}: Software, PROGRAMMING LANGUAGES, General.
                 {\bf F.3.0}: Theory of Computation, LOGICS AND MEANINGS
                 OF PROGRAMS, General. {\bf F.4.0}: Theory of
                 Computation, MATHEMATICAL LOGIC AND FORMAL LANGUAGES,
                 General.",
}

@Article{Gomard:1992:SAP,
  author =       "Carsten K. Gomard",
  title =        "A Self-applicable Partial Evaluator for the Lambda
                 Calculus: Correctness and Pragmatics",
  journal =      j-TOPLAS,
  volume =       "14",
  number =       "2",
  pages =        "147--172",
  month =        apr,
  year =         "1992",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/absint.bib; Compiler/Compiler.Lins.bib;
                 Compiler/partial-eval.bib; Compiler/semantics.bib;
                 Compiler/TOPLAS.bib; Compiler/TOPPS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Theory/partial-eval.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/128864.html",
  abstract =     "We describe theoretical and a few practical aspects of
                 an implemented self-applicable partial evaluator for
                 the untyped lambda calculus with constants,
                 conditionals, and a fixed point operator.\par

                 The purpose of this paper is first to announce the
                 existence of (and to describe) a partial evaluator that
                 is both higher-order and self-applicable; second to
                 describe a surprisingly simple solution to the central
                 problem of binding time analysis, and third to prove
                 that the partial evaluator yields correct
                 answers.\par

                 While [lambda]-mix (the name of our system) seems to
                 have been the first higher-order self-applicable
                 partial evaluator to run on a computer, it was
                 developed mainly for research purposes. Two recently
                 developed systems are much more powerful for practical
                 use, but also much more complex: Similix[3,5] and
                 Schism[7].\par

                 Our partial evaluator is surprisingly simple,
                 completely automatic, and has been implemented in a
                 side effect-free subset of Scheme. It has been used to
                 compile, generate compilers and generate a compiler
                 generator.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "correctness; lambda calculus; languages; partial
                 evaluation; self-application; theory",
  semno =        "D-78",
  subject =      "{\bf I.1.3}: Computing Methodologies, ALGEBRAIC
                 MANIPULATION, Languages and Systems, Evaluation
                 strategies. {\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,
                 Denotational semantics. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Translator writing
                 systems and compiler generators. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Compilers. {\bf
                 D.2.1}: Software, SOFTWARE ENGINEERING,
                 Requirements/Specifications.",
  summary =      "A partial evaluator for the Lambda Calculus is
                 described and proven correct. This means that programs
                 generated by the partial evaluator (including, e.g.,
                 the compilers obtained by self-application) are known
                 to be correct.",
}

@Article{Pollock:1992:IGR,
  author =       "Lori L. Pollock and Mary Lou Soffa",
  title =        "Incremental Global Reoptimization of Programs",
  journal =      j-TOPLAS,
  volume =       "14",
  number =       "2",
  pages =        "173--200",
  month =        apr,
  year =         "1992",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/128865.html",
  abstract =     "Although optimizing compilers have been quite
                 successful in producing excellent code, two factors
                 that limit their usefulness are the accompanying long
                 compilation times and the lack of good symbolic
                 debuggers for optimized code. One approach to attaining
                 faster recompilations is to reduce the redundant
                 analysis that is performed for optimization in response
                 to edits, and in particulars, small maintenance
                 changes, without affecting the quality of the generated
                 code. Although modular programming with separate
                 compilation aids in eliminating unnecessary
                 recompilation and reoptimization, recent studies have
                 discovered that more efficient code can be generated by
                 collapsing a modular program through procedure
                 inlining. To avoid having to reoptimize the resultant
                 large procedures, this paper presents techniques for
                 incrementally incorporating changes into globally
                 optimized code. An algorithm is given for determining
                 which optimizations are no longer safe after a program
                 change, and for discovering which new optimizations can
                 be performed in order to maintain a high level of
                 optimization. An intermediate representation is
                 incrementally updated to reflect the current
                 optimizations in the program. Analysis is performed in
                 response to changes rather than in preparation for
                 possible changes, so analysis is not wasted if an edit
                 has no far-reaching effects. The techniques developed
                 in this paper have also been exploited to improve on
                 the current techniques for symbolic debugging of
                 optimized code.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; languages; performance",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Optimization. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Code generation.
                 {\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Compilers. {\bf D.2.2}: Software, SOFTWARE
                 ENGINEERING, Tools and Techniques.",
}

@Article{Kaiser:1992:OBP,
  author =       "Gail E. Kaiser and Brent Hailpern",
  title =        "An Object-Based Programming Model for Shared Data",
  journal =      j-TOPLAS,
  volume =       "14",
  number =       "2",
  pages =        "201--264",
  month =        apr,
  year =         "1992",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/128866.html",
  abstract =     "The classical object model supports private data
                 within objects and clean interfaces between objects,
                 and by definition does not permit sharing of data among
                 arbitrary objects. This is a problem for real-world
                 applications, such as advanced financial services and
                 integrated network management, where the same data
                 logically belong to multiple objects and may be
                 distributed over multiple nodes on the network. Rather
                 than give up the advantages of encapsulated objects in
                 modeling real-world entities, we propose a new object
                 model that supports shared data in a distributed
                 environment. The key is separating distribution of
                 computation units from information-hiding concerns.
                 Minimal units of data and control, called {\em facets},
                 may be shared among multiple {\em objects\/} and are
                 grouped into {\em processes}. Thus, a single object, or
                 information-hiding unit, may be distributed among
                 multiple processes, or computation units. In other
                 words, different facets of the same object may reside
                 in different address spaces on different machines. We
                 introduce our new object model, describe a motivating
                 example from the financial domain, and then explain
                 facets, objects, and processes, followed by timing and
                 synchronization concerns.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "design; languages",
  subject =      "{\bf D.1.3}: Software, PROGRAMMING TECHNIQUES,
                 Concurrent Programming, Distributed 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 H.2.4}: Information Systems, DATABASE
                 MANAGEMENT, Systems, Distributed systems. {\bf E.2}:
                 Data, DATA STORAGE REPRESENTATIONS. {\bf E.1}: Data,
                 DATA STRUCTURES.",
}

@Article{Koopman:1992:CBC,
  author =       "Philip J. {Koopman, Jr.} and Peter Lee and Daniel P.
                 Siewiorek",
  title =        "Cache Behavior of Combinator Graph Reduction",
  journal =      j-TOPLAS,
  volume =       "14",
  number =       "2",
  pages =        "265--297",
  month =        apr,
  year =         "1992",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 14:28:31 1996",
  bibsource =    "Compiler/Compiler.Lins.bib;
                 Compiler/garbage.collection.bib; Compiler/Heaps.bib;
                 Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Theory/CLiCS.bib",
  note =         "Also see~\cite{Koopman:1992:CBC}.",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/128867.html",
  abstract =     "The results of cache-simulation experiments with an
                 abstract machine for reducing combinator graphs are
                 presented. The abstract machine, called TIGRE, exhibits
                 reduction rates that, for similar kinds of combinator
                 graphs on similar kinds of hardware, compare favorably
                 with previously reported techniques. Furthermore, TIGRE
                 maps easily and efficiently onto standard computer
                 architectures, particularly those that allow a
                 restricted form of self-modifying code. This provides
                 some indication that the conventional ``stored
                 program'' organization of computer systems is not
                 necessarily an inappropriate one for functional
                 programming language implementations.\par

                 This is not to say, however, that present day computer
                 systems are well equipped to reduce combinator graphs.
                 In particular, the behavior of the cache memory has a
                 significant effect on performance. In order to study
                 and quantify this effect, trace-driven cache
                 simulations of a TIGRE graph reducer running on a
                 reduced instruction-set computer are conducted. The
                 results of these simulations are presented with the
                 following hardware-cache parameters varied: cache size,
                 block size, associativity, memory update policy, and
                 write-allocation policy. To begin with, the cache
                 organization of a commercially available system is used
                 and then the performance sensitivity with respect to
                 variations of each parameter are measured. From the
                 results of the simulation study, a conclusion is made
                 that combinator-graph reduction using TIGRE runs most
                 efficiently when using a cache memory with an
                 allocate-on-write-miss strategy, moderately large block
                 size (preferably with subblock placement), and
                 copy-back memory updates.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; languages; performance; theory;
                 threading",
  sjb =          "In amongst all the cache stuff is a description of how
                 subroutine threading can form the basis for a
                 relatively efficient method of performing combinator
                 graph reduction.",
  subject =      "{\bf B.3.2}: Hardware, MEMORY STRUCTURES, Design
                 Styles, Cache memories. {\bf B.3.3}: Hardware, MEMORY
                 STRUCTURES, Performance Analysis and Design Aids,
                 Simulation. {\bf D.1.1}: Software, PROGRAMMING
                 TECHNIQUES, Applicative (Functional) Programming. {\bf
                 D.3.2}: Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Applicative languages. {\bf D.3.4}:
                 Software, PROGRAMMING LANGUAGES, Processors, Compilers.
                 {\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Interpreters. {\bf G.2.1}: Mathematics of
                 Computing, DISCRETE MATHEMATICS, Combinatorics.",
}

@Article{Wall:1992:ESD,
  author =       "David W. Wall",
  title =        "Experience with a Software-Defined Machine
                 Architecture",
  journal =      j-TOPLAS,
  volume =       "14",
  number =       "3",
  pages =        "299--338",
  month =        jul,
  year =         "1992",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/129395.html",
  abstract =     "We have built a system in which the compiler back end
                 and the linker work together to present an abstract
                 machine at a considerably higher level than the actual
                 machine. The intermediate language translated by the
                 back end is the target language of all high-level
                 compilers and is also the only assembly language
                 generally available. This lets us do intermodule
                 register allocation, which would be harder if some of
                 the code in the program had come from a traditional
                 assembler, out of sight of the optimizer. We do
                 intermodule register allocation and pipeline
                 instruction scheduling at link time, using information
                 gathered by the compiler back end. The mechanism for
                 analyzing and modifying the program at link time is
                 also useful in a wide array of instrumentation tools.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "languages; 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,
                 Instruction set design. {\bf D.3.2}: Software,
                 PROGRAMMING LANGUAGES, Language Classifications, Macro
                 and assembly languages.",
}

@Article{Jaffar:1992:CLS,
  author =       "Joxan Jaffar and Spiro Michaylov and Peter J. Stuckey
                 and Roland H. C. Yap",
  title =        "The {CLP($\cal R$)} Language and System",
  journal =      j-TOPLAS,
  volume =       "14",
  number =       "3",
  pages =        "339--395",
  month =        jul,
  year =         "1992",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/129398.html",
  abstract =     "The CLP $(R)$ programming language is defined, its
                 underlying philosophy and programming methodology are
                 discussed, important implementation issues are explored
                 in detail, and finally, a prototype interpreter is
                 described.\par

                 CLP $(R)$is designed to be an instance of the
                 Constraint Logic Programming Scheme, a family of
                 rule-based constraint programming languages defined by
                 Jaffar and Lassez. The domain of computation $ R$of
                 this particular instance is the algebraic structure
                 consisting of uninterpreted functors over real numbers.
                 An important property of CLP $(R)$is that the
                 constraints are treated uniformly in the sense that
                 they are used to specify the input parameters to a
                 program, they are the only primitives used in the
                 execution of a program, and they are used to describe
                 the output of a program.\par

                 Implementation of a CLP language, and of CLP $(R)$ in
                 particular, raises new problems in the design of a
                 constraint-solver. For example, the constraint solver
                 must be incremental in the sense that solving
                 additional constraints must not entail the resolving of
                 old constraints. In our system, constraints are
                 filtered through an inference engine, an engine/solver
                 interface, an equation solver and an inequality solver.
                 This sequence of modules reflects a classification and
                 prioritization of the classes of constraints. Modules
                 solving higher priority constraints are isolated from
                 the complexities of modules solving lower priority
                 constraints. This multiple-phase solving of
                 constraints, together with a set of associated
                 algorithms, gives rise to a practical system.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; languages",
  subject =      "{\bf D.3.m}: Software, PROGRAMMING LANGUAGES,
                 Miscellaneous. {\bf D.3.4}: Software, PROGRAMMING
                 LANGUAGES, Processors, Interpreters. {\bf G.1.3}:
                 Mathematics of Computing, NUMERICAL ANALYSIS, Numerical
                 Linear Algebra, Linear systems (direct and iterative
                 methods). {\bf I.1.3}: Computing Methodologies,
                 ALGEBRAIC MANIPULATION, Languages and Systems. {\bf
                 D.1.6}: Software, PROGRAMMING TECHNIQUES, Logic
                 Programming. {\bf F.4.0}: Theory of Computation,
                 MATHEMATICAL LOGIC AND FORMAL LANGUAGES, General.",
}

@Article{Widom:1992:TBN,
  author =       "Jennifer Widom and David Gries and F. B. Schneider",
  title =        "Trace-Based Network Proof Systems: Expressiveness and
                 Completeness",
  journal =      j-TOPLAS,
  volume =       "14",
  number =       "3",
  pages =        "396--416",
  month =        jul,
  year =         "1992",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See corrigendum \cite{Widom:1993:CTB}.",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/129396.html",
  abstract =     "We consider incomplete trace-based network proof
                 systems for safety properties, identifying extensions
                 that are necessary and sufficient to achieve relative
                 completeness. We investigate the expressiveness
                 required of any trace logic to encode these
                 extensions.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "verification",
  subject =      "{\bf D.2.4}: Software, SOFTWARE ENGINEERING, Program
                 Verification, Correctness proofs. {\bf D.1.3}:
                 Software, PROGRAMMING TECHNIQUES, Concurrent
                 Programming. {\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. {\bf F.4.1}: Theory of Computation,
                 MATHEMATICAL LOGIC AND FORMAL LANGUAGES, Mathematical
                 Logic, Proof theory.",
}

@Article{Shankar:1992:SRH,
  author =       "A. Udaya Shankar and Simon S. Lam",
  title =        "A Stepwise Refinement Heuristic for Protocol
                 Construction",
  journal =      j-TOPLAS,
  volume =       "14",
  number =       "3",
  pages =        "417--461",
  month =        jul,
  year =         "1992",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/Compiler.Lins.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/129394.html",
  abstract =     "A stepwise refinement heuristic to construct
                 distributed systems is presented. The heuristic is
                 based on a conditional refinement relation between
                 system specifications, and a ``Marking''. It is applied
                 to construct four sliding window protocols that provide
                 reliable data transfer over unreliable communication
                 channels. The protocols use modulo-$N$ sequence
                 numbers. The first protocol is for channels that can
                 only lose messages in transit. By refining this
                 protocol, we obtain three protocols for channels that
                 can lose, reorder, and duplicate messages in transit.
                 The protocols herein are less restrictive and easier to
                 implement than sliding window protocols previously
                 studied in the protocol verification literature.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "design; languages; verification",
  subject =      "{\bf C.2.2}: Computer Systems Organization,
                 COMPUTER-COMMUNICATION NETWORKS, Network Protocols,
                 Protocol verification. {\bf F.3.1}: Theory of
                 Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Specifying and Verifying and Reasoning about
                 Programs.",
}

@Article{Krogh:1992:AAP,
  author =       "Fred T. Krogh",
  title =        "{ACM} Algorithms Policy",
  journal =      j-TOPLAS,
  volume =       "14",
  number =       "3",
  pages =        "462--465",
  month =        jul,
  year =         "1992",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@Article{Anonymous:1992:IA,
  author =       "Anonymous",
  title =        "Information for Authors",
  journal =      j-TOPLAS,
  volume =       "14",
  number =       "3",
  pages =        "466--469",
  month =        jul,
  year =         "1992",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 14:15:24 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@Article{Hansen:1992:SRF,
  author =       "Wilfred J. Hansen",
  title =        "Subsequence References: First-Class Values for
                 Substrings",
  journal =      j-TOPLAS,
  volume =       "14",
  number =       "4",
  pages =        "471--489",
  month =        oct,
  year =         "1992",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/133234.html",
  abstract =     "Arrays of characters are a basic data type in many
                 programming languages, but strings and substrings are
                 seldom accorded first-class status as parameters and
                 return values. Such status would enable a routine that
                 calls a search function to readily access context on
                 both sides of a return value. To enfranchise
                 substrings, this paper describes a new data type for
                 substrings as a special case of one for general
                 subsequences. The key idea is that values are not
                 sequences or references to positions in sequences, but
                 rather references to subsequences. Primitive operations
                 on the data type are constants, concatenation, and four
                 new functions --- {\em base}, {\em start}, {\em next},
                 and {\em extent\/} --- which map subsequence references
                 to subsequence references.\par

                 This paper informally presents the data type,
                 demonstrates its convenience for defining search
                 functions, and shows how it can be concisely
                 implemented. Examples are given in Ness, a language
                 incorporating the new data type, which is implemented
                 as part of the Andrew User Interface System.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "languages",
  subject =      "{\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Data types and structures.
                 {\bf E.1}: Data, DATA STRUCTURES.",
}

@Article{Heering:1992:IGL,
  author =       "J. Heering and P. Klint and J. Rekers",
  title =        "Incremental Generation of Lexical Scanners",
  journal =      j-TOPLAS,
  volume =       "14",
  number =       "4",
  pages =        "490--520",
  month =        oct,
  year =         "1992",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/133240.html",
  abstract =     "It is common practice to specify textual patterns by
                 means of a set of regular expressions and to transform
                 this set into a finite automaton to be used for the
                 scanning of input strings. In many applications, the
                 cost of this preprocessing phase can be amortized over
                 many uses of the constructed automaton. In this paper
                 new techniques for lazy and incremental scanner
                 generation are presented. The lazy technique postpones
                 the construction of parts of the automaton until they
                 are really needed during the scanning of input. The
                 incremental technique allows modifications to the
                 original set of regular expressions to be made and
                 reuses major parts of the previous automaton. This is
                 interesting in applications such as environments for
                 the interactive development of language definitions in
                 which modifications to the definition of lexical syntax
                 and the uses of the generated scanners alternate
                 frequently.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; languages; performance",
  subject =      "{\bf D.1.2}: Software, PROGRAMMING TECHNIQUES,
                 Automatic Programming. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Translator writing
                 systems and compiler generators.",
}

@Article{Morzenti:1992:MPR,
  author =       "Angelo Morzenti and Dino Mandrioli and Carlo Ghezzi",
  title =        "A Model Parametric Real-Time Logic",
  journal =      j-TOPLAS,
  volume =       "14",
  number =       "4",
  pages =        "521--573",
  month =        oct,
  year =         "1992",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/129397.html",
  abstract =     "TRIO is a formal notation for the logic-based
                 specification of real-time systems. In this paper the
                 language and its straightforward model-theoretic
                 semantics are briefly summarized. Then the need for
                 assigning a consistent meaning to TRIO specifications
                 is discussed, with reference to a variety of underlying
                 time structures such as infinite-time structures (both
                 dense and discrete) and finite-time structures. The
                 main motivation is the ability to validate formal
                 specifications. A solution to this problem is
                 presented, which gives a new, model-parametric
                 semantics to the language. An algorithm for
                 constructively verifying the satisfiability of formulas
                 in the decidable cases is defined, and several
                 important temporal properties of specifications are
                 characterized.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "languages",
  subject =      "{\bf D.2.1}: Software, SOFTWARE ENGINEERING,
                 Requirements/Specifications, Languages. {\bf F.4.1}:
                 Theory of Computation, MATHEMATICAL LOGIC AND FORMAL
                 LANGUAGES, Mathematical Logic, Model theory. {\bf
                 D.2.1}: Software, SOFTWARE ENGINEERING,
                 Requirements/Specifications, Tools. {\bf D.4.7}:
                 Software, OPERATING SYSTEMS, Organization and Design,
                 Real-time and embedded systems.",
}

@Article{Katzenelson:1992:TMT,
  author =       "Jacob Katzenelson and Shlomit S. Pinter and Eugen
                 Schenfeld",
  title =        "Type Matching, Type-Graphs, and the {Schanuel}
                 Conjecture",
  journal =      j-TOPLAS,
  volume =       "14",
  number =       "4",
  pages =        "574--588",
  month =        oct,
  year =         "1992",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/133247.html",
  abstract =     "This work considers type systems that are defined by
                 type-graphs (tgraphs), which are rooted directed graphs
                 with order among the edges leaving each node. Tgraphs
                 are uniquely mapped into polynomials which, in turn,
                 are each evaluated at a special point to yield an
                 irrational number named the tgraph's {\em magic
                 number}. This special point is chosen using the
                 Schanuel conjecture. It is shown that each tgraph can
                 be uniquely represented by this magic number; namely,
                 types are equal if and only if the corresponding magic
                 numbers are equal. Since irrational numbers require
                 infinite precision, the algorithm for generating magic
                 numbers is carried out using a double-precision
                 floating-point approximation. This approximation is
                 viewed as a hashing scheme, mapping the infinite domain
                 of the irrational numbers into finite computer words.
                 The proposed hashing scheme was investigated
                 experimentally, with the conclusion that it is a good
                 and practical hashing method. In tests involving over a
                 million randomly chosen tgraphs, we have not
                 encountered a single collision. We conclude that this
                 method for representation and management of types is
                 practical, and offers novel possibilities for enforcing
                 strict type matching at link time among separately
                 compiled modules.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "languages",
  subject =      "{\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Data types and structures.
                 {\bf E.2}: Data, DATA STORAGE REPRESENTATIONS,
                 Composite structures. {\bf I.1.1}: Computing
                 Methodologies, ALGEBRAIC MANIPULATION, Expressions and
                 Their Representation, Representations (general and
                 polynomial). {\bf G.2.2}: Mathematics of Computing,
                 DISCRETE MATHEMATICS, Graph Theory. {\bf D.3.4}:
                 Software, PROGRAMMING LANGUAGES, Processors.",
}

@Article{Muller:1992:MLR,
  author =       "Robert Muller",
  title =        "{M-LISP}: {A} Representation-Independent Dialect of
                 {LISP} with Reduction Semantics",
  journal =      j-TOPLAS,
  volume =       "14",
  number =       "4",
  pages =        "589--616",
  month =        oct,
  year =         "1992",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/133254.html",
  abstract =     "In this paper we introduce M-LISP, a dialect of LISP
                 designed with an eye toward reconciling LISP's
                 metalinguistic power with the {\em structural\/} style
                 of operational semantics advocated by Plotkin [28]. We
                 begin by reviewing the original definition of LISP [20]
                 in an attempt to clarify the source of its
                 metalinguistic power. We find that it arises from a
                 problematic clause in this definition. We then define
                 the abstract syntax and operational semantics of
                 M-LISP, essentially a hybrid of M-expression LISP and
                 Scheme. Next, we tie the operational semantics to the
                 corresponding equational logic. As usual, provable
                 equality in the logic implies operational
                 equality.\par

                 Having established this framework we then extend M-LISP
                 with the metalinguistic {\em eval\/} and {\em reify\/}
                 operators (the latter is a nonstrict operator that
                 converts its argument to its metalanguage
                 representation). These operators encapsulate the
                 matalinguistic representation conversions that occur
                 globally in S-expression LISP. We show that the naive
                 versions of these operators render LISP's equational
                 logic inconsistent. On the positive side, we show that
                 a naturally restricted form of the {\em eval\/}
                 operator is confluent and therefore a conservative
                 extension of M-LISP. Unfortunately, we must weaken the
                 logic considerably to obtain a consistent theory of
                 reification.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "languages; theory",
  subject =      "{\bf F.3.2}: Theory of Computation, LOGICS AND
                 MEANINGS OF PROGRAMS, Semantics of Programming
                 Languages, Operational semantics. {\bf D.3.2}:
                 Software, PROGRAMMING LANGUAGES, Language
                 Classifications, LISP. {\bf D.3.1}: Software,
                 PROGRAMMING LANGUAGES, Formal Definitions and Theory.
                 {\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features. {\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 F.4.1}: Theory of
                 Computation, MATHEMATICAL LOGIC AND FORMAL LANGUAGES,
                 Mathematical Logic, Lambda calculus and related
                 systems.",
}

@Article{Anonymous:1992:AI,
  author =       "Anonymous",
  title =        "1992 Author Index",
  journal =      j-TOPLAS,
  volume =       "14",
  number =       "4",
  pages =        "617--618",
  month =        oct,
  year =         "1992",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 14:00:28 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@Article{Tel:1993:DDT,
  author =       "Gerard Tel and Friedmann Mattern",
  title =        "The Derivation of Distributed Termination Detection
                 Algorithms from Garbage Collection Schemes",
  journal =      j-TOPLAS,
  volume =       "15",
  number =       "1",
  pages =        "1--35",
  month =        jan,
  year =         "1993",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/garbage.collection.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Object/Ooos.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/151647.html",
  abstract =     "It is shown that the termination detection problem for
                 distributed computations can be modeled as an instance
                 of the garbage collection problem. Consequently,
                 algorithms for the termination detection problem are
                 obtained by applying transformations to garbage
                 collection algorithms. The transformation can be
                 applied to collectors of the ``mark-and-sweep'' type as
                 well as to reference-counting protocol of Lermen and
                 Maurer, the weighted-reference-counting protocol, the
                 local-reference-counting protocol, and Ben-Ari's
                 mark-and-sweep collector into termination detection
                 algorithms. Known termination detection algorithms as
                 well as new variants are obtained.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; design; theory; verification",
  subject =      "{\bf D.4.2}: Software, OPERATING SYSTEMS, Storage
                 Management, Distributed memories. {\bf D.1.3}:
                 Software, PROGRAMMING TECHNIQUES, Concurrent
                 Programming. {\bf D.2.4}: Software, SOFTWARE
                 ENGINEERING, Program Verification. {\bf C.2.4}:
                 Computer Systems Organization, COMPUTER-COMMUNICATION
                 NETWORKS, Distributed Systems, Network operating
                 systems.",
}

@Article{Cleaveland:1993:CWS,
  author =       "Rance Cleaveland and Joachim Parrow and Bernhard
                 Steffen",
  title =        "The {Concurrency Workbench}: {A} Semantics-Based Tool
                 for the Verification of Concurrent Systems",
  journal =      j-TOPLAS,
  volume =       "15",
  number =       "1",
  pages =        "36--72",
  month =        jan,
  year =         "1993",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/151648.html",
  abstract =     "The Concurrency Workbench is an automated tool for
                 analyzing networks of finite-state processes expressed
                 in Milner's Calculus of Communicating Systems. Its key
                 feature is its breadth: a variety of different
                 verification methods, including equivalence checking,
                 preorder checking, and model checking, are supported
                 for several different process semantics. One experience
                 from our work is that a large number of interesting
                 verification methods can be formulated as combinations
                 of a small number of primitive algorithms. The
                 Workbench has been applied to the verification of
                 communications protocols and mutual exclusion
                 algorithms and has proven a valuable aid in teaching
                 and research.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "design; reliability; 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.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,
                 Programmer workbench. {\bf D.2.4}: Software, SOFTWARE
                 ENGINEERING, Program Verification. {\bf C.2.2}:
                 Computer Systems Organization, COMPUTER-COMMUNICATION
                 NETWORKS, Network Protocols, Protocol verification.",
}

@Article{Abadi:1993:CS,
  author =       "Mart{\'\i}n Abadi and Leslie Lamport",
  title =        "Composing Specifications",
  journal =      j-TOPLAS,
  volume =       "15",
  number =       "1",
  pages =        "73--132",
  month =        jan,
  year =         "1993",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib; Database/dbase.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/151649.html",
  abstract =     "A rigorous modular specification method requires a
                 proof rule asserting that if each component behaves
                 correctly in isolation, then it behaves correctly in
                 concert with other components. Such a rule is subtle
                 because a component need behave correctly only when its
                 environment does, and each component is part of the
                 others' environments. We examine the precise
                 distinction between a system and its environment, and
                 provide the requisite proof rule when modules are
                 specified with safety and liveness properties.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 D.2.4}: Software, SOFTWARE ENGINEERING, Program
                 Verification, Correctness proofs. {\bf D.1.3}:
                 Software, PROGRAMMING TECHNIQUES, Concurrent
                 Programming.",
}

@Article{Barbuti:1993:GFS,
  author =       "Roberto Barbuti and Roberto Giacobazzi and Giorgio
                 Levi",
  title =        "A General Framework for Semantics-Based Bottom-Up
                 Abstract Interpretation of Logic Programs",
  journal =      j-TOPLAS,
  volume =       "15",
  number =       "1",
  pages =        "133--181",
  month =        jan,
  year =         "1993",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/absint.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/151650.html",
  abstract =     "The theory of abstract interpretation provides a
                 formal framework to develop advanced dataflow analysis
                 tools. The idea is to define a nonstandard semantics
                 which is able to compute, in finite time, an
                 approximated model of the program. In this paper, we
                 define an abstract interpretation framework based on a
                 fixpoint approach to the semantics. This leads to the
                 definition, by means of a suitable set of operators, of
                 an abstract fixpoint characterization of a model
                 associated with the program. Thus, we obtain a
                 specializable abstract framework for bottom-up abstract
                 interpretations of definite logic programs. The
                 specialization of the framework is shown on two
                 examples, namely, ground-dependence analysis and
                 depth-$k$ analysis.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "design; languages; theory",
  subject =      "{\bf D.3.1}: Software, PROGRAMMING LANGUAGES, Formal
                 Definitions and Theory, Semantics. {\bf D.2.2}:
                 Software, SOFTWARE ENGINEERING, Tools and Techniques.
                 {\bf F.3.2}: Theory of Computation, LOGICS AND MEANINGS
                 OF PROGRAMS, Semantics of Programming Languages. {\bf
                 D.2.4}: Software, SOFTWARE ENGINEERING, Program
                 Verification. {\bf D.1.6}: Software, PROGRAMMING
                 TECHNIQUES, Logic Programming.",
}

@Article{Afek:1993:LC,
  author =       "Yehuda Afek and Geoffrey Brown and Michael Merritt",
  title =        "Lazy Caching",
  journal =      j-TOPLAS,
  volume =       "15",
  number =       "1",
  pages =        "182--205",
  month =        jan,
  year =         "1993",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Object/Ooos.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/151651.html",
  abstract =     "This paper examines cache consistency conditions for
                 multiprocessor shared memory systems. It states and
                 motivates a weaker condition than is normally
                 implemented. An algorithm is presented that exploits
                 the weaker condition to achieve greater concurrency.
                 The algorithm is shown to satisfy the weak consistency
                 condition. Other properties of the algorithm and
                 possible extensions are discussed.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; design; reliability; verification",
  subject =      "{\bf D.4.2}: Software, OPERATING SYSTEMS, Storage
                 Management, Distributed memories. {\bf B.3.2}:
                 Hardware, MEMORY STRUCTURES, Design Styles, Cache
                 memories. {\bf B.3.2}: Hardware, MEMORY STRUCTURES,
                 Design Styles, Shared memory. {\bf B.3.4}: Hardware,
                 MEMORY STRUCTURES, Reliability, Testing, and
                 Fault-Tolerance.",
}

@Article{Finlay:1993:TCC,
  author =       "Alan Finlay and Lloyd Allison",
  title =        "Technical Correspondence: {A} Correction to the
                 Denotational Semantics for the {Prolog} of {Nicholson}
                 and {Foo}",
  journal =      j-TOPLAS,
  volume =       "15",
  number =       "1",
  pages =        "206--208",
  month =        jan,
  year =         "1993",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See \cite{Nicholson:1989:DSP}.",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/151652.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "design; languages",
  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. {\bf
                 D.1.1}: Software, PROGRAMMING TECHNIQUES, Applicative
                 (Functional) Programming. {\bf D.3.1}: Software,
                 PROGRAMMING LANGUAGES, Formal Definitions and Theory.",
}

@Article{Widom:1993:CTB,
  author =       "Jennifer Widom and David Gries and F. B. Schneider",
  title =        "Corrigendum: ``{Trace-Based Network Proof Systems:
                 Expressiveness and Completeness}''",
  journal =      j-TOPLAS,
  volume =       "15",
  number =       "1",
  pages =        "208--208",
  month =        jan,
  year =         "1993",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 12:58:29 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See \cite{Widom:1992:TBN}.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@Article{Appel:1993:Ea,
  author =       "Andrew W. Appel",
  title =        "Editorial",
  journal =      j-TOPLAS,
  volume =       "15",
  number =       "2",
  pages =        "209--210",
  month =        apr,
  year =         "1993",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 14:29:44 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@Article{Harper:1993:TSS,
  author =       "Robert Harper and John C. Mitchell",
  title =        "On the Type Structure of Standard {ML}",
  journal =      j-TOPLAS,
  volume =       "15",
  number =       "2",
  pages =        "211--252",
  month =        apr,
  year =         "1993",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/prog.lang.theory.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "Earlier version appears as ``The Essence of {ML}'' in
                 {\em Proc. 15th ACM Symp. on Principles of Programming
                 Languages}, 1988, pp. 28--46",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/169696.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "design; languages; theory",
  subject =      "{\bf F.3.3}: Theory of Computation, LOGICS AND
                 MEANINGS OF PROGRAMS, Studies of Program Constructs,
                 Type structure. {\bf D.3.2}: Software, PROGRAMMING
                 LANGUAGES, Language Classifications, Applicative
                 languages. {\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 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 F.4.1}: Theory of Computation,
                 MATHEMATICAL LOGIC AND FORMAL LANGUAGES, Mathematical
                 Logic, Lambda calculus and related systems. {\bf
                 D.3.2}: Software, PROGRAMMING LANGUAGES, Language
                 Classifications, ML.",
}

@Article{Henglein:1993:TIP,
  author =       "Fritz Henglein",
  title =        "Type Inference with Polymorphic Recursion",
  journal =      j-TOPLAS,
  volume =       "15",
  number =       "2",
  pages =        "253--289",
  month =        apr,
  year =         "1993",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPPS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/169692.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; design; languages; ML; polymorphism;
                 semi-unification; theory; type inference",
  semno =        "D-127",
  subject =      "{\bf F.3.3}: Theory of Computation, LOGICS AND
                 MEANINGS OF PROGRAMS, Studies of Program Constructs,
                 Type structure. {\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 F.4.1}: Theory of Computation, MATHEMATICAL LOGIC
                 AND FORMAL LANGUAGES, Mathematical Logic, Lambda
                 calculus and related systems.",
  summary =      "It is shown that type inference for ML with
                 polymorphic recursion (Mycroft's extension) is
                 log-space equivalent to semi-unification. Since
                 semi-unification is undecidable so is type inference
                 with polymorphic recursion. Nonetheless reasons are
                 presented for its usability in practice.",
}

@Article{Kfoury:1993:TRP,
  author =       "A. J. Kfoury and J. Tiuryn and P. Urzyczyn",
  title =        "Type Recursion in the Presence of Polymorphic
                 Recursion",
  journal =      j-TOPLAS,
  volume =       "15",
  number =       "2",
  pages =        "290--311",
  month =        apr,
  year =         "1993",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/169687.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "languages; theory",
  subject =      "{\bf F.3.3}: Theory of Computation, LOGICS AND
                 MEANINGS OF PROGRAMS, Studies of Program Constructs.
                 {\bf D.1.1}: Software, PROGRAMMING TECHNIQUES,
                 Applicative (Functional) Programming. {\bf D.3.1}:
                 Software, PROGRAMMING LANGUAGES, Formal Definitions and
                 Theory. {\bf D.3.2}: Software, PROGRAMMING LANGUAGES,
                 Language Classifications, Applicative languages. {\bf
                 D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features. {\bf F.4.1}: Theory of
                 Computation, MATHEMATICAL LOGIC AND FORMAL LANGUAGES,
                 Mathematical Logic.",
}

@Article{Dhamdhere:1993:EAB,
  author =       "Dhananjay M. Dhamdhere and Harish Patil",
  title =        "An Elimination Algorithm for Bidirectional Data Flow
                 Problems Using Edge Placement",
  journal =      j-TOPLAS,
  volume =       "15",
  number =       "2",
  pages =        "312--336",
  month =        apr,
  year =         "1993",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/169684.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Optimization. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Compilers. {\bf
                 F.2.2}: Theory of Computation, ANALYSIS OF ALGORITHMS
                 AND PROBLEM COMPLEXITY, Nonnumerical Algorithms and
                 Problems. {\bf F.3.3}: Theory of Computation, LOGICS
                 AND MEANINGS OF PROGRAMS, Studies of Program
                 Constructs.",
}

@Article{Katz:1993:SCC,
  author =       "Shmuel Katz",
  title =        "A Superimposition Control Construct for Distributed
                 Systems",
  journal =      j-TOPLAS,
  volume =       "15",
  number =       "2",
  pages =        "337--356",
  month =        apr,
  year =         "1993",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/169682.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "design; languages",
  subject =      "{\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Control structures. {\bf
                 D.1.3}: Software, PROGRAMMING TECHNIQUES, Concurrent
                 Programming. {\bf D.3.3}: Software, PROGRAMMING
                 LANGUAGES, Language Constructs and Features, Modules,
                 packages.",
}

@Article{Copperman:1993:TCF,
  author =       "Max Copperman and Charles E. McDowell",
  title =        "Technical Correspondence: {A} Further Note on
                 {Hennessy}'s ``{Symbolic Debugging of Optimized
                 Code}''",
  journal =      j-TOPLAS,
  volume =       "15",
  number =       "2",
  pages =        "357--365",
  month =        apr,
  year =         "1993",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 14:20:23 1996",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  note =         "See \cite{Hennessy:1982:SDO}.",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/214526.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "performance; verification",
  subject =      "{\bf D.2.5}: Software, SOFTWARE ENGINEERING, Testing
                 and Debugging, Symbolic execution. {\bf D.2.7}:
                 Software, SOFTWARE ENGINEERING, Distribution and
                 Maintenance. {\bf D.2.3}: Software, SOFTWARE
                 ENGINEERING, Coding.",
}

@Article{Burke:1993:IOE,
  author =       "Michael Burke and Linda Torczon",
  title =        "Interprocedural Optimization: Eliminating Unnecessary
                 Recompilation",
  journal =      j-TOPLAS,
  volume =       "15",
  number =       "3",
  pages =        "367--399",
  month =        jul,
  year =         "1993",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/169678.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; languages",
  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{Chatterjee:1993:CND,
  author =       "Siddhartha Chatterjee",
  title =        "Compiling Nested Data-Parallel Programs for
                 Shared-Memory Multiprocessors",
  journal =      j-TOPLAS,
  volume =       "15",
  number =       "3",
  pages =        "400--462",
  month =        jul,
  year =         "1993",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/174152.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; languages; performance",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Optimization. {\bf D.3.3}: Software,
                 PROGRAMMING LANGUAGES, Language Constructs and
                 Features, Control structures. {\bf E.1}: Data, DATA
                 STRUCTURES. {\bf D.3.4}: Software, PROGRAMMING
                 LANGUAGES, Processors, Compilers. {\bf C.1.2}: Computer
                 Systems Organization, PROCESSOR ARCHITECTURES, Multiple
                 Data Stream Architectures (Multiprocessors).",
}

@Article{Consel:1993:PPE,
  author =       "Charles Consel and Siau Cheng Khoo",
  title =        "Parameterized Partial Evaluation",
  journal =      j-TOPLAS,
  volume =       "15",
  number =       "3",
  pages =        "463--493",
  month =        jul,
  year =         "1993",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/partial-eval.bib; Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib;
                 Theory/partial-eval.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/174155.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "languages; theory",
  subject =      "{\bf F.3.1}: Theory of Computation, LOGICS AND
                 MEANINGS OF PROGRAMS, Specifying and Verifying and
                 Reasoning about Programs. {\bf D.3.1}: Software,
                 PROGRAMMING LANGUAGES, Formal Definitions and Theory.
                 {\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors.",
}

@Article{Richardson:1993:DPL,
  author =       "Joel E. Richardson and Michael J. Carey and Daniel T.
                 Schuh",
  title =        "The Design of the {E} Programming Language",
  journal =      j-TOPLAS,
  volume =       "15",
  number =       "3",
  pages =        "494--534",
  month =        jul,
  year =         "1993",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/174157.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "design; languages",
  subject =      "{\bf D.3.2}: Software, PROGRAMMING LANGUAGES, Language
                 Classifications, E. {\bf D.3.2}: Software, PROGRAMMING
                 LANGUAGES, Language Classifications, Object-oriented
                 languages. {\bf D.3.2}: Software, PROGRAMMING
                 LANGUAGES, Language Classifications, C++. {\bf D.3.3}:
                 Software, PROGRAMMING LANGUAGES, Language Constructs
                 and Features. {\bf H.2.3}: Information Systems,
                 DATABASE MANAGEMENT, Languages, Database (persistent)
                 programming languages.",
}

@Article{Odersky:1993:DCD,
  author =       "Martin Odersky",
  title =        "Defining Context-Dependent Syntax Without Using
                 Contexts",
  journal =      j-TOPLAS,
  volume =       "15",
  number =       "3",
  pages =        "535--562",
  month =        jul,
  year =         "1993",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/174159.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "languages; theory",
  subject =      "{\bf D.3.1}: Software, PROGRAMMING LANGUAGES, Formal
                 Definitions and Theory, Syntax. {\bf D.3.1}: Software,
                 PROGRAMMING LANGUAGES, Formal Definitions and Theory,
                 Semantics. {\bf F.4.1}: Theory of Computation,
                 MATHEMATICAL LOGIC AND FORMAL LANGUAGES, Mathematical
                 Logic, Model theory. {\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.",
}

@Article{Huang:1993:LEU,
  author =       "Shing-Tsaan Huang",
  title =        "Leader Election in Uniform Rings",
  journal =      j-TOPLAS,
  volume =       "15",
  number =       "3",
  pages =        "563--573",
  month =        jul,
  year =         "1993",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/174161.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; reliability; theory",
  subject =      "{\bf D.4.1}: Software, OPERATING SYSTEMS, Process
                 Management, Concurrency. {\bf C.2.4}: Computer Systems
                 Organization, COMPUTER-COMMUNICATION NETWORKS,
                 Distributed Systems. {\bf D.1.3}: Software, PROGRAMMING
                 TECHNIQUES, Concurrent Programming. {\bf D.4.1}:
                 Software, OPERATING SYSTEMS, Process Management, Mutual
                 exclusion. {\bf D.4.5}: Software, OPERATING SYSTEMS,
                 Reliability, Fault-tolerance. {\bf F.1.2}: Theory of
                 Computation, COMPUTATION BY ABSTRACT DEVICES, Modes of
                 Computation, Parallelism and concurrency.",
}

@Article{Amadio:1993:SRT,
  author =       "Roberto M. Amadio and Luca Cardelli",
  title =        "Subtyping Recursive Types",
  journal =      j-TOPLAS,
  volume =       "15",
  number =       "4",
  pages =        "575--631",
  month =        sep,
  year =         "1993",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/155231.html",
  abstract =     "We investigate the interactions of subtyping and
                 recursive types, in a simply typed [lambda]-calculus.
                 The two fundamental questions here are whether two
                 (recursive)types are in the subtype relation and
                 whether a term has a type. To address the first
                 question, we relate various definitions of type
                 equivalence and subtyping that are induced by a model,
                 an ordering on infinite trees, an algorithm, and a set
                 of type rules. We show soundness and completeness among
                 the rules, the algorithm, and the tree semantics. We
                 also prove soundness and a restricted form of
                 completeness for the model. To address the second
                 question, we show that to every pair of types in the
                 subtype relation we can associate a term whose
                 denotation is the uniquely determined coercion map
                 between the two types. Moreover, we derive an algorithm
                 that, when given a term with implicit coercions, can
                 infer its least type whenever possible.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; languages; theory",
  subject =      "{\bf F.3.3}: Theory of Computation, LOGICS AND
                 MEANINGS OF PROGRAMS, Studies of Program Constructs,
                 Program and recursion schemes. {\bf F.4.3}: Theory of
                 Computation, MATHEMATICAL LOGIC AND FORMAL LANGUAGES,
                 Formal Languages, Classes defined by grammars or
                 automata. {\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. {\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, Recursion. {\bf D.3.3}: Software,
                 PROGRAMMING LANGUAGES, Language Constructs and
                 Features, Abstract data types.",
}

@Article{Palem:1993:STC,
  author =       "Krishna V. Palem and Barbara B. Simons",
  title =        "Scheduling Time-Critical Instructions on {RISC}
                 Machines",
  journal =      j-TOPLAS,
  volume =       "15",
  number =       "4",
  pages =        "632--658",
  month =        sep,
  year =         "1993",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/155190.html",
  abstract =     "We present a polynomial time algorithm for
                 constructing a minimum completion time schedule of
                 instructions from a basic block on RISC machines such
                 as the Sun SPARC, the IBM 801, the Berkeley RISC
                 machine, and the HP Precision Architecture. Our
                 algorithm can be used as a heuristic for RISC
                 processors with longer pipelines, for which there is no
                 known optimal algorithm. Our algorithm can also handle
                 time-critical instructions, which are instructions that
                 have to be completed by a specific time. Time-critical
                 instructions occur in some real-time computations, and
                 can also be used to make shared resources such as
                 registers quickly available for reuse. We also prove
                 that in the absence of time-critical constraints, a
                 greedy scheduling algorithm always produces a schedule
                 for a target machine with multiple identical pipelines
                 that has a length less than twice that of an optimal
                 schedule. The behavior of the heuristic is of interest
                 because, as we show, the instruction scheduling problem
                 becomes NP-hard for arbitrary length pipelines, even
                 when the basic block of code being input consists of
                 only several independent streams of straightline code,
                 and there are no time-critical constraints. Finally, we
                 prove that the problem becomes NP-hard even for small
                 pipelines, no time-critical constraints, and input of
                 several independent streams of straightline code if
                 either there is only a single register or if no two
                 instructions are allowed to complete simultaneously
                 because of some shared resource such as a bus.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; performance",
  subject =      "{\bf F.2.2}: Theory of Computation, ANALYSIS OF
                 ALGORITHMS AND PROBLEM COMPLEXITY, Nonnumerical
                 Algorithms and Problems, Sequencing and scheduling.
                 {\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Optimization. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Code generation.
                 {\bf C.1.1}: Computer Systems Organization, PROCESSOR
                 ARCHITECTURES, Single Data Stream Architectures, RISC.
                 {\bf F.1.3}: Theory of Computation, COMPUTATION BY
                 ABSTRACT DEVICES, Complexity Classes, Reducibility and
                 completeness.",
}

@Article{Gupta:1993:APE,
  author =       "Gopal Gupta and Bharat Jayaraman",
  title =        "Analysis of {Or}-Parallel Execution Models",
  journal =      j-TOPLAS,
  volume =       "15",
  number =       "4",
  pages =        "659--680",
  month =        sep,
  year =         "1993",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/155220.html",
  abstract =     "We discuss fundamental limitations of or-parallel
                 execution models of nondeterministic programming
                 languages. Or-parallelism corresponds to the execution
                 of different nondeterministic computational paths in
                 parallel. A natural way to represent the state of
                 (parallel) execution of a nondeterministic program is
                 by means of an or-parallel tree. We identify three
                 important criteria that underlie the design of
                 or-parallel implementations based on the or-parallel
                 tree: constant-time access to variables, constant-time
                 task creation, and constant-time task switching, where
                 the term {\em constant-time\/} means that the time for
                 these operations is independent of the number of nodes
                 in the or-parallel tree, as well as the size of each
                 node. We prove that all three criteria cannot be
                 simultaneously satisfied by any or-parallel execution
                 model based on a finite number of processors but
                 unbounded memory. We discuss in detail the application
                 of our result to the class of logic programming
                 languages and show how our result can serve as a useful
                 way to categorize the various or-parallel methods
                 proposed in this field. We also discuss the suitability
                 of different or-parallel implementation strategies for
                 different parallel architectures.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "languages; performance",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Run-time environments. {\bf D.3.2}:
                 Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Applicative languages. {\bf D.3.2}:
                 Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Nondeterministic languages. {\bf
                 I.2.8}: Computing Methodologies, ARTIFICIAL
                 INTELLIGENCE, Problem Solving, Control Methods, and
                 Search, Backtracking. {\bf C.1.2}: Computer Systems
                 Organization, PROCESSOR ARCHITECTURES, Multiple Data
                 Stream Architectures (Multiprocessors),
                 Multiple-instruction-stream, multiple-data-stream
                 processors (MIMD). {\bf D.1.6}: Software, PROGRAMMING
                 TECHNIQUES, Logic Programming.",
}

@Article{Fidge:1993:FDP,
  author =       "C. J. Fidge",
  title =        "A Formal Definition of Priority in {CSP}",
  journal =      j-TOPLAS,
  volume =       "15",
  number =       "4",
  pages =        "681--705",
  month =        sep,
  year =         "1993",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/155221.html",
  abstract =     "The process models of Ada and occam are formally based
                 on the CSP process algebra. However, for fine-tuning
                 real-time performance, they include ``prioritized''
                 constructs that have no counterparts in CSP. These
                 constructs therefore lack any formal definition, a
                 situation that leaves room for misunderstandings. We
                 extend CSP with a formal definition of the notion of
                 priority. The definition is then used to assess the
                 transputer implementation of priority in occam and the
                 definition of priority in Ada.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "languages; theory",
  subject =      "{\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, CSP. {\bf D.3.1}: Software,
                 PROGRAMMING LANGUAGES, Formal Definitions and Theory,
                 Semantics. {\bf D.3.2}: Software, PROGRAMMING
                 LANGUAGES, Language Classifications, OCCAM. {\bf
                 D.3.2}: Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Ada. {\bf D.3.3}: Software,
                 PROGRAMMING LANGUAGES, Language Constructs and
                 Features, Concurrent programming structures. {\bf
                 F.3.2}: Theory of Computation, LOGICS AND MEANINGS OF
                 PROGRAMS, Semantics of Programming Languages,
                 Operational semantics.",
}

@Article{Abadi:1993:CAC,
  author =       "Mart{\'\i}n Abadi and Michael Burrows and Butler
                 Lampson and Gordon Plotkin",
  title =        "A Calculus for Access Control in Distributed Systems",
  journal =      j-TOPLAS,
  volume =       "15",
  number =       "4",
  pages =        "706--734",
  month =        sep,
  year =         "1993",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/155225.html",
  abstract =     "We study some of the concepts, protocols, and
                 algorithms for access control in distributed systems,
                 from a logical perspective. We account for how a
                 principal may come to believe that another principal is
                 making a request, either on his own or on someone
                 else's behalf. We also provide a logical language for
                 access control lists and theories for deciding whether
                 requests should be granted.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "security; theory; verification",
  subject =      "{\bf D.4.6}: Software, OPERATING SYSTEMS, Security and
                 Protection, Access controls. {\bf F.4.1}: Theory of
                 Computation, MATHEMATICAL LOGIC AND FORMAL LANGUAGES,
                 Mathematical Logic. {\bf D.4.6}: Software, OPERATING
                 SYSTEMS, Security and Protection, Authentication. {\bf
                 D.4.6}: Software, OPERATING SYSTEMS, Security and
                 Protection, Verification. {\bf C.2.4}: Computer Systems
                 Organization, COMPUTER-COMMUNICATION NETWORKS,
                 Distributed Systems.",
}

@Article{Ghosh:1993:ASP,
  author =       "Sukumar Ghosh",
  title =        "An Alternative Solution to a Problem on
                 Self-Stabilization",
  journal =      j-TOPLAS,
  volume =       "15",
  number =       "4",
  pages =        "735--742",
  month =        sep,
  year =         "1993",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/155228.html",
  abstract =     "Dijkstra [4, 5] introduced the problem of
                 self-stabilization in distributed systems as an
                 interesting exercise for achieving global convergence
                 through local actions. In [4] he presented three
                 solutions to a specific version of the
                 self-stabilization problem, one of which was proved in
                 [6]. This paper presents an alternative solution of his
                 self-stabilization problem with four-state machines.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; theory",
  subject =      "{\bf C.2.4}: Computer Systems Organization,
                 COMPUTER-COMMUNICATION NETWORKS, Distributed Systems,
                 Distributed applications. {\bf D.4.1}: Software,
                 OPERATING SYSTEMS, Process Management,
                 Synchronization.",
}

@Article{Appel:1993:Eb,
  author =       "A. W. Appel and S. L. Graham",
  title =        "Editorial",
  journal =      j-TOPLAS,
  volume =       "15",
  number =       "5",
  pages =        "743--744",
  month =        nov,
  year =         "1993",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@Article{Herlihy:1993:MIH,
  author =       "Maurice Herlihy",
  title =        "A Methodology for Implementing Highly Concurrent Data
                 Objects",
  journal =      j-TOPLAS,
  volume =       "15",
  number =       "5",
  pages =        "745--770",
  month =        nov,
  year =         "1993",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/161469.html",
  abstract =     "A {\em concurrent object\/} is a data structure shared
                 by concurrent processes. Conventional techniques for
                 implementing concurrent objects typically rely on {\em
                 critical sections\/}; ensuring that only one process at
                 a time can operate on the object. Nevertheless,
                 critical sections are poorly suited for asynchronous
                 systems: if one process is halted or delayed in a
                 critical section, other, nonfaulty processes will be
                 unable to progress. By contrast, a concurrent object
                 implementation is {\em lock free\/} if it always
                 guarantees that some process will complete an operation
                 in a finite number of steps, and it is {\em wait
                 free\/} if it guarantees that {\em each\/} process will
                 complete an operation in a finite number of steps. This
                 paper proposes a new methodology for constructing
                 lock-free and wait-free implementations of concurrent
                 objects. The object's representation and operations are
                 written as stylized sequential programs, with no
                 explicit synchronization. Each sequential operation is
                 automatically transformed into a lock-free or wait-free
                 operation using novel synchronization and memory
                 management algorithms. These algorithms are presented
                 for a multiple instruction/multiple data (MIMD)
                 architecture in which $n$ processes communicate by
                 applying atomic {\em read, write, load\_linked,\/} and
                 {\em store\_conditional\/} operations to a shared
                 memory.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; design",
  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.2}:
                 Software, OPERATING SYSTEMS, Storage Management.",
}

@Article{Leivent:1993:MFT,
  author =       "Jonathan I. Leivent and Ronald J. Watro",
  title =        "Mathematical Foundations for {Time Warp} Systems",
  journal =      j-TOPLAS,
  volume =       "15",
  number =       "5",
  pages =        "771--794",
  month =        nov,
  year =         "1993",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Wed May 14 09:24:08 1997",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/161470.html",
  abstract =     "We develop a simple formal model of the Time Warp
                 approach to distributed computation, prove several
                 important properties of the model, and devise some
                 extensions to Time Warp that provide improved
                 termination behavior. Our model consists of processes
                 that communicate solely via message passing. One of the
                 basic process steps is a rollback operation that
                 includes message retraction via transmission of
                 antimessages. In the model, we consider three problems:
                 safety, progress, and termination. By safety, we mean
                 that for a given system of processes, if a run of the
                 system terminates, then the final system state of the
                 run is identical to the final system state of a
                 rollback-free run. We give premises that imply safety,
                 and a counterexample that shows how safety can fail. By
                 progress, we mean that, as a run of a system proceeds,
                 the minimum timestamp of an unprocessed message always
                 eventually increases. We state three axioms that imply
                 the progress property. By termination, we mean that, if
                 all rollback-free runs of a system terminate, then all
                 runs terminate. The termination property is generally
                 false in existing implementations of Time Warp systems
                 due to the possibility of Time Warp vortices. We define
                 additional mechanisms that can guarantee the
                 termination property for most Time Warp applications.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; languages; theory; verification",
  subject =      "{\bf I.6.1}: Computing Methodologies, SIMULATION AND
                 MODELING, Simulation Theory. {\bf D.1.3}: Software,
                 PROGRAMMING TECHNIQUES, Concurrent Programming. {\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{Bowman:1993:RAN,
  author =       "Mic Bowman and Saumya K. Debray and Larry L.
                 Peterson",
  title =        "Reasoning About Naming Systems",
  journal =      j-TOPLAS,
  volume =       "15",
  number =       "5",
  pages =        "795--825",
  month =        nov,
  year =         "1993",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/161471.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; design; theory",
  subject =      "{\bf H.3.4}: Information Systems, INFORMATION STORAGE
                 AND RETRIEVAL, Systems and Software, Question-answering
                 (fact retrieval) systems. {\bf H.2.3}: Information
                 Systems, DATABASE MANAGEMENT, Languages, Query
                 languages. {\bf H.2.4}: Information Systems, DATABASE
                 MANAGEMENT, Systems, Query processing. {\bf H.3.3}:
                 Information Systems, INFORMATION STORAGE AND RETRIEVAL,
                 Information Search and Retrieval, Selection process.",
}

@Article{Debray:1993:CAL,
  author =       "Saumya K. Debray and Nai-Wei Lin",
  title =        "Cost Analysis of Logic Programs",
  journal =      j-TOPLAS,
  volume =       "15",
  number =       "5",
  pages =        "826--875",
  month =        nov,
  year =         "1993",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/161472.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "languages; performance",
  subject =      "{\bf D.2.8}: Software, SOFTWARE ENGINEERING, Metrics,
                 Performance measures. {\bf D.1.6}: Software,
                 PROGRAMMING TECHNIQUES, Logic Programming. {\bf D.2.8}:
                 Software, SOFTWARE ENGINEERING, Metrics, Complexity
                 measures. {\bf D.3.2}: Software, PROGRAMMING LANGUAGES,
                 Language Classifications, Nonprocedural languages. {\bf
                 I.2.2}: Computing Methodologies, ARTIFICIAL
                 INTELLIGENCE, Automatic Programming, Automatic analysis
                 of algorithms.",
}

@Article{Lin:1993:PIA,
  author =       "Huimin Lin",
  title =        "Procedural Implementation of Algebraic Specification",
  journal =      j-TOPLAS,
  volume =       "15",
  number =       "5",
  pages =        "876--895",
  month =        nov,
  year =         "1993",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/161473.html",
  abstract =     "An implementation of an algebraic specification in an
                 imperative programming language consists of a
                 representation type, together with an invariant and an
                 equivalence relation over it, and a procedure for each
                 operator in the specification. A formal technique is
                 developed to check the correctness of an implementation
                 with respect to its specification. Here ``correctness''
                 means that the implementation satisfies the axioms and
                 preserves the behavior of the specification. Within
                 legal representing value space, a correct
                 implementation behaves like a desirable model of the
                 specification. A notion of implementation refinement is
                 also proposed, and it is shown that the correctness
                 relation between implementations and specifications is
                 preserved by implementation refinement. In the extreme
                 case the procedures in an implementation may be
                 pre-post-condition pairs. Such abstract implementations
                 can be refined into executable code by refining the
                 abstract procedures in it. In this way a formal link
                 between the algebraic and the pre-post-condition
                 specification techniques is established.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "design; theory; verification",
  subject =      "{\bf D.2.4}: Software, SOFTWARE ENGINEERING, Program
                 Verification, Correctness proofs. {\bf D.2.2}:
                 Software, SOFTWARE ENGINEERING, Tools and Techniques,
                 Top-down programming. {\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.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. {\bf D.2.1}: Software,
                 SOFTWARE ENGINEERING, Requirements/Specifications,
                 Spec.",
}

@Article{Appel:1994:PS,
  author =       "Andrew Appel",
  title =        "Purpose and Scope",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "1",
  pages =        "1--2",
  month =        jan,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@Article{Tick:1994:DTN,
  author =       "E. Tick and M. Korsloot",
  title =        "Determinacy Testing for Nondeterminate Logic
                 Programming Languages",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "1",
  pages =        "3--34",
  month =        jan,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/174626.html",
  abstract =     "This paper describes an algorithm for the code
                 generation of determinacy testing for nondeterminate
                 flat concurrent logic programming languages. Languages
                 such as Andorra and Pandora require that procedure
                 invocations suspend if there is more than one candidate
                 clause potentially satisfying the goal. The algorithm
                 described has been developed specifically for a variant
                 of flat Pandora based on FGHC, although the concepts
                 are general. We have extended Kliger and Shapiro's
                 decision-graph construction algorithm to compile
                 ``don't-know'' procedures that must suspend for
                 nondeterminate goal invocation. The determinacy test is
                 compiled into a decision graph quite different from
                 those of committed-choice procedures: They are more
                 similar to decision trees optimized by code sharing. We
                 present both empirical data of compilation results
                 (code size and graph characteristics), and a
                 correctness proof for our code-generation algorithm.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; languages; performance",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Code generation. {\bf D.1.6}: Software,
                 PROGRAMMING TECHNIQUES, Logic Programming. {\bf D.3.2}:
                 Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Applicative languages. {\bf D.3.2}:
                 Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Concurrent, distributed, and parallel
                 languages. {\bf D.3.4}: Software, PROGRAMMING
                 LANGUAGES, Processors, Compilers. {\bf D.3.4}:
                 Software, PROGRAMMING LANGUAGES, Processors,
                 Optimization.",
}

@Article{LeCharlier:1994:EEG,
  author =       "Baudouin {Le Charlier} and Pascal {Van Hentenryck}",
  title =        "Experimental Evaluation of a Generic Abstract
                 Interpretation Algorithm for {PROLOG}",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "1",
  pages =        "35--101",
  month =        jan,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Mon Oct 26 07:59:10 1998",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/174627.html",
  abstract =     "Abstract interpretation of PROLOG programs has
                 attracted many researchers in recent years, partly
                 because of the potential for optimization in PROLOG
                 compilers and partly because of the declarative nature
                 of logic programming languages that make them more
                 amenable to optimization than procedural languages.
                 Most of the work, however, has remained at the
                 theoretical level, focusing on the developments of
                 frameworks and the definition of abstract
                 domains.\par

                 This paper reports our effort to verify experimentally
                 the practical value of this area of research. It
                 describes the design and implementation of the generic
                 abstract interpretation algorithm GAIA that we
                 originally proposed in Le Charlier et al. [1991], its
                 instantiation to a sophisticated abstract domain
                 (derived from Bruynooghe and Janssens [1988])
                 containing modes, types, sharing, and aliasing, and its
                 evaluation both in terms of performance and accuracy.
                 The overall implementation (over 5000 lines of Pascal)
                 has been systematically analyzed on a variety of
                 programs and compared with the complexity analysis of
                 Le Charlie et al. [1991] and the specific analysis
                 systems of Hickey and Mudambi [1989], Taylor [1989;
                 1990], Van Roy and Despain [1990], and Warren et al.
                 [1988].",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; experimentation; languages; performance",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Optimization. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Compilers. {\bf
                 D.3.2}: Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Prolog.",
}

@Article{Waters:1994:CBP,
  author =       "Richard C. Waters",
  title =        "Clich{\'e}-Based Program Editors",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "1",
  pages =        "102--150",
  month =        jan,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/174628.html",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "design; experimentation",
  subject =      "{\bf D.2.3}: Software, SOFTWARE ENGINEERING, Coding,
                 Program editors. {\bf D.2.2}: Software, SOFTWARE
                 ENGINEERING, Tools and Techniques, Programmer
                 workbench. {\bf D.2.2}: Software, SOFTWARE ENGINEERING,
                 Tools and Techniques, Software libraries. {\bf D.2.3}:
                 Software, SOFTWARE ENGINEERING, Coding, Pretty
                 printers. {\bf D.2.6}: Software, SOFTWARE ENGINEERING,
                 Programming Environments. {\bf I.2.2}: Computing
                 Methodologies, ARTIFICIAL INTELLIGENCE, Automatic
                 Programming, Program synthesis. {\bf K.6.3}: Computing
                 Milieux, MANAGEMENT OF COMPUTING AND INFORMATION
                 SYSTEMS, Software Management, Software development.
                 {\bf K.6.3}: Computing Milieux, MANAGEMENT OF COMPUTING
                 AND INFORMATION SYSTEMS, Software Management, Software
                 maintenance. {\bf D.2.2}: Software, SOFTWARE
                 ENGINEERING, Tools and Techniques, Computer-aided
                 software engineering (CASE).",
}

@Article{Purtilo:1994:PSB,
  author =       "James M. Purtilo",
  title =        "The {POLYLITH} Software Bus",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "1",
  pages =        "151--174",
  month =        jan,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/174629.html",
  abstract =     "We describe a system called POLYLITH that helps
                 programmers prepare and interconnect mixed-language
                 software components for execution in heterogeneous
                 environments. POLYLITH's principal benefit is that
                 programmers are free to implement functional
                 requirements separately from their treatment of
                 interfacing requirements; this means that once an
                 application has been developed for use in one execution
                 environment (such as a distributed network) it can be
                 adapted for reuse in other environments (such as a
                 shared-memory multiprocessor) by automatic techniques.
                 This flexibility is provided without loss of
                 performance. We accomplish this by creating a new
                 run-time organization for software. An abstract
                 decoupling agent, called the {\em software bus}, is
                 introduced between the system components. Heterogeneity
                 in language and architecture is accommodated since
                 program units are prepared to interface directly to the
                 bus and not to other program units. Programmers specify
                 application structure in terms of a module
                 interconnection language (MIL); POLYLITH uses this
                 specification to guide {\em packaging\/} (static
                 interfacing activities such as stub generation, source
                 program adaptation, compilation, and linking). At run
                 time, an implementation of the bus abstraction may
                 assist in message delivery, name service, or system
                 reconfiguration.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "languages",
  subject =      "{\bf D.2.2}: Software, SOFTWARE ENGINEERING, Tools and
                 Techniques, Modules and interfaces. {\bf D.3.3}:
                 Software, PROGRAMMING LANGUAGES, Language Constructs
                 and Features. {\bf D.3.4}: Software, PROGRAMMING
                 LANGUAGES, Processors.",
}

@Article{Harrold:1994:ECI,
  author =       "Mary Jean Harrold and Mary Lou Soffa",
  title =        "Efficient Computation of Interprocedural
                 Definition-Use Chains",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "2",
  pages =        "175--204",
  month =        mar,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/174663.html",
  abstract =     "The dependencies that exist among definitions and uses
                 of variables in a program are required by many
                 language-processing tools. This paper considers the
                 computation of definition-use and use-definition chains
                 that extend across procedure boundaries at call and
                 return sites. Intraprocedural definition and use
                 information is abstracted for each procedure and is
                 used to construct an interprocedural flow graph. This
                 intraprocedural data-flow information is then
                 propagated throughout the program via the
                 interprocedural flow graph to obtain sets of reaching
                 definitions and/or reachable uses for reach
                 interprocedural control point, including procedure
                 entry, exit, call, and return. Interprocedural
                 definition-use and/or use-definition chains are
                 computed from this reaching information. The technique
                 handles the interprocedural effects of the data flow
                 caused by both reference parameters and global
                 variables, while preserving the calling context of
                 called procedures. Additionally, recursion, aliasing,
                 and separate compilation are handled. The technique has
                 been implemented using a Sun-4 Workstation and
                 incorporated into an interprocedural data-flow tester.
                 Results from experiments indicate the practicality of
                 the technique, both in terms of the size of the
                 interprocedural flow graph and the size of the
                 data-flow sets.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; languages",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Optimization. {\bf D.2.5}: Software,
                 SOFTWARE ENGINEERING, Testing and Debugging. {\bf
                 D.2.6}: Software, SOFTWARE ENGINEERING, Programming
                 Environments. {\bf D.3.4}: Software, PROGRAMMING
                 LANGUAGES, Processors, Compilers.",
}

@Article{Mulkers:1994:LSD,
  author =       "Anne Mulkers and William Winsborough and Maurice
                 Bruynooghe",
  title =        "Live-Structure Dataflow Analysis for {Prolog}",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "2",
  pages =        "205--258",
  month =        mar,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/174664.html",
  abstract =     "For the class of applicative programming languages,
                 efficient methods for reclaiming the memory occupied by
                 released data structures constitute an important aspect
                 of current implementations. The present article
                 addresses the problem of memory reuse for logic
                 programs through program analysis rather than by
                 run-time garbage collection. The aim is to derive
                 run-time properties that can be used at compile time to
                 specialize the target code for a program according to a
                 given set of queries and to automatically introduce
                 destructive assignments in a safe and transparent way
                 so that fewer garbage cells are created.\par

                 The dataflow analysis is constructed as an application
                 of abstract interpretation for logic programs. An
                 abstract domain for describing structure-sharing and
                 liveness properties is developed as are primitive
                 operations that guarantee a sound and terminating
                 global analysis. We explain our motivation for the
                 design of the abstract domain, make explicit the
                 underlying implementation assumptions, and discuss the
                 precision of the results obtained by a prototype
                 analyzer.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "languages; performance; theory",
  subject =      "{\bf D.3.2}: Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Prolog. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Optimization. {\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 I.2.3}: Computing
                 Methodologies, ARTIFICIAL INTELLIGENCE, Deduction and
                 Theorem Proving, Logic programming.",
}

@Article{Jonsson:1994:CSV,
  author =       "Bengt Jonsson",
  title =        "Compositional Specification and Verification of
                 Distributed Systems",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "2",
  pages =        "259--303",
  month =        mar,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/174665.html",
  abstract =     "We present a method for specification and verification
                 of distributed systems that communicate via
                 asynchronous message passing. The method handles both
                 safety and liveness properties. It is compositional,
                 i.e., a specification of a composite system can be
                 obtained from specifications of its components.
                 Specifications are given as labeled transition systems
                 with fairness properties, using a program-like notation
                 with guarded multiple assignments. Compositionality is
                 attained by partitioning the labels of a transition
                 system into input events, which intuitively denote
                 message receptions, and output events, which
                 intuitively denote message transmissions. A
                 specification denotes a set of allowed sequences of
                 message transmissions and receptions, in analogy with
                 the way finite automata are used as acceptors of finite
                 strings. A lower-level specification implements a
                 higher-level one. We present a verification technique
                 which reduces the problem of verifying the correctness
                 of an implementation to classical verification
                 conditions. Safety properties are verified by
                 establishing a simulation relation between transition
                 systems. Liveness properties are verified using methods
                 for proving termination under fairness assumptions.
                 Since specifications can be given at various levels of
                 abstraction, the method is suitable in a development
                 process where a detailed implementation is developed
                 from an abstract specification through a sequence of
                 refinement steps. As an application of the method, an
                 algorithm by Thomas for updating a distributed database
                 is specified and verified.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 C.2.2}: Computer Systems Organization,
                 COMPUTER-COMMUNICATION NETWORKS, Network Protocols,
                 Protocol verification. {\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.2.4}: Software, SOFTWARE
                 ENGINEERING, Program Verification, Correctness
                 proofs.",
}

@Article{Pinter:1994:POP,
  author =       "Shlomit S. Pinter and Ron Y. Pinter",
  title =        "Program Optimization and Parallelization Using
                 Idioms",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "3",
  pages =        "305--327",
  month =        may,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/177494.html",
  abstract =     "Programs in languages such as Fortran, Pascal, and C
                 were designed and written for a sequential machine
                 model. During the last decade, several methods to
                 vectorize such programs and recover other forms of
                 parallelism that apply to more advanced machine
                 architectures have been developed (particularly for
                 Fortran, due to its pointer-free semantics). We propose
                 and demonstrate a more powerful translation technique
                 for making such programs run efficiently on parallel
                 machines which support facilities such as parallel
                 prefix operations as well as parallel and vector
                 capabilities. This technique, which is global in nature
                 and involves a modification of the traditional
                 definition of the program dependence graph (PDG), is
                 based on the extraction of parallelizable program
                 structures (``idioms'') from the given (sequential)
                 program. The benefits of our technique extend beyond
                 the above-mentioned architectures and can be viewed as
                 a general program optimization method, applicable in
                 many other situations. We show a few examples in which
                 our method indeed outperforms existing analysis
                 techniques.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; languages; performance",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Translator writing systems and compiler
                 generators. {\bf D.3.4}: Software, PROGRAMMING
                 LANGUAGES, Processors, Optimization.",
}

@Article{Bloss:1994:PAO,
  author =       "Adrienne Bloss",
  title =        "Path Analysis and the Optimization of Nonstrict
                 Functional Languages",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "3",
  pages =        "328--369",
  month =        may,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/177497.html",
  abstract =     "The functional programming style is increasingly
                 popular in the research world, but functional languages
                 still execute slowly relative to imperative languages.
                 This is largely because the power and flexibility of
                 functional languages restrict the amount of information
                 readily available to the compiler, hindering its
                 ability to generate good code. This article
                 demonstrates that information about {\em order of
                 evaluation of expressions\/} can be statically inferred
                 for nonstrict functional programs and that
                 optimizations based on this information can provide
                 substantial speedups at runtime. We present an exact,
                 nonstandard semantics called {\em path semantics\/}
                 that models order of evaluation in a nonstrict,
                 sequential functional language, and its computable
                 abstraction, {\em path analysis}. We show how the
                 information inferred by path analysis can be used to
                 implement destructive aggregate updating, in which
                 updates on functional aggregates that are provably not
                 live are done destructively. We also demonstrate a new
                 approach to strictness analysis and show that
                 strictness analysis is subsumed by path analysis.
                 Benchmarks are presented.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "design; languages; 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.3.1}: Software,
                 PROGRAMMING LANGUAGES, Formal Definitions and Theory,
                 Semantics. {\bf D.3.4}: Software, PROGRAMMING
                 LANGUAGES, Processors, Compilers. {\bf D.3.4}:
                 Software, PROGRAMMING LANGUAGES, Processors,
                 Optimization. {\bf E.1}: Data, DATA STRUCTURES, Arrays.
                 {\bf F.3.2}: Theory of Computation, LOGICS AND MEANINGS
                 OF PROGRAMS, Semantics of Programming Languages,
                 Denotational semantics.",
}

@Article{Gupta:1994:ERA,
  author =       "Rajiv Gupta and Mary Lou Soffa and Denise Ombres",
  title =        "Efficient Register Allocation via Coloring Using
                 Clique Separators",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "3",
  pages =        "370--386",
  month =        may,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/177499.html",
  abstract =     "Although graph coloring is widely recognized as an
                 effective technique for register allocation, memory
                 demands can become quite high for large interference
                 graphs that are needed in coloring. In this paper we
                 present an algorithm that uses the notion of clique
                 separators to improve the space overhead of coloring.
                 The algorithm, based on a result by R. Tarjan regarding
                 the colorability of graphs, partitions program code
                 into code segments using clique separators. The
                 interference graphs for the code partitions are
                 constructed one at a time and colored independently.
                 The colorings for the partitions are combined to obtain
                 a register allocation for the entire program. This
                 approach can be used to perform register allocation in
                 a space-efficient manner. For straight-line code (e.g.,
                 local register allocation), an optimal allocation can
                 be obtained from optimal allocations for individual
                 code partitions. Experimental results are presented
                 demonstrating memory demand reductions for interference
                 graphs when allocating registers using clique
                 separators.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; design; languages; performance",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Optimization. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Code generation.
                 {\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Compilers. {\bf C.0}: Computer Systems
                 Organization, GENERAL, Hardware/software interfaces.",
}

@Article{Copperman:1994:DOC,
  author =       "Max Copperman",
  title =        "Debugging Optimized Code Without Being Misled",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "3",
  pages =        "387--427",
  month =        may,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/177517.html",
  abstract =     "Correct optimization can change the behavior of an
                 incorrect program; therefore at times it is necessary
                 to debug optimized code. However, optimizing compilers
                 produce code that impedes source-level
                 debugging.\par

                 Optimization can cause an inconsistency between where
                 the user expects a breakpoint to be located and the
                 breakpoint's actual location. This article describes a
                 mapping between statements and breakpoint locations
                 that ameliorates this problem. The mapping enables
                 debugger behavior on optimized code that approximates
                 debugger behavior on unoptimized code sufficiently
                 closely for the user to use traditional debugging
                 strategies.\par

                 Optimization can also cause the value of a variable to
                 be {\em noncurrent\/}---to differ from the value that
                 would be predicted by a close reading of the source
                 code. This article presents a method of determining
                 when this has occurred, and shows how a debugger can
                 describe the relevant effects of optimization. The
                 determination method is more general than previously
                 published methods; it handles global optimization and
                 many flow graph transformations, and it is not tightly
                 coupled to optimizations performed by a particular
                 compiler. Necessary compiler support is also
                 described.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "performance; verification",
  subject =      "{\bf D.2.5}: Software, SOFTWARE ENGINEERING, Testing
                 and Debugging, Debugging aids. {\bf D.2.6}: Software,
                 SOFTWARE ENGINEERING, Programming Environments. {\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.",
}

@Article{Briggs:1994:IGC,
  author =       "Preston Briggs and Keith D. Cooper and Linda
                 Torczon",
  title =        "Improvements to Graph Coloring Register Allocation",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "3",
  pages =        "428--455",
  month =        may,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/177575.html",
  abstract =     "We describe two improvements to Chaitin-style graph
                 coloring register allocators. The first, {\em
                 optimistic coloring}, uses a stronger heuristic to find
                 a $k$-coloring for the interference graph. The second
                 extends Chaitin's treatment of {\em
                 rematerialization\/} to handle a larger class of
                 values. These techniques are complementary. Optimistic
                 coloring decreases the number of procedures that
                 require spill code and reduces the amount of spill code
                 when spilling is unavoidable. Rematerialization lowers
                 the cost of spilling some values. This paper describes
                 both of the techniques and our experience building and
                 using register allocators that incorporate them. It
                 provides a detailed description of optimistic coloring
                 and rematerialization. It presents experimental data to
                 show the performance of several versions of the
                 register allocator on a suite of FORTRAN programs. It
                 discusses several insights that we discovered only
                 after repeated implementation of these allocators.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; languages",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Optimization. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Compilers.",
}

@Article{Jagannathan:1994:MBB,
  author =       "Suresh Jagannathan",
  title =        "Metalevel Building Blocks for Modular Systems",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "3",
  pages =        "456--492",
  month =        may,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/177578.html",
  abstract =     "The formal definition of any namespace device found in
                 a programming language can be given in terms of
                 transformations on a semantic environment. It is
                 worthwhile, therefore, to consider the implications of
                 incorporating environments as bona fide data objects in
                 a programming system.\par

                 In this article, we propose a treatment of environments
                 and the mechanism by which they are reified and
                 manipulated, that addresses these concerns. The
                 language described below (Rascal) permits environments
                 to be reified into data structures, and data structures
                 to be reflected into environments, but gives users
                 great flexibility to constrain the extent and scope of
                 these processes. We argue that the techniques and
                 operators developed define a cohesive basis for
                 building large-scale modular systems using reflective
                 programming techniques.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "languages",
  subject =      "{\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features. {\bf F.3.2}: Theory of
                 Computation, LOGICS AND MEANINGS OF PROGRAMS, Semantics
                 of Programming Languages, Denotational semantics.",
}

@Article{Kennaway:1994:AGR,
  author =       "J. R. Kennaway and J. W. Klop and M. R. Sleep and F.
                 J. {De Vries}",
  title =        "On the Adequacy of Graph Rewriting for Simulating Term
                 Rewriting",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "3",
  pages =        "493--523",
  month =        may,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/177577.html",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "languages; theory",
  subject =      "{\bf F.4.2}: Theory of Computation, MATHEMATICAL LOGIC
                 AND FORMAL LANGUAGES, Grammars and Other Rewriting
                 Systems. {\bf F.1.1}: Theory of Computation,
                 COMPUTATION BY ABSTRACT DEVICES, Models of Computation.
                 {\bf F.4.1}: Theory of Computation, MATHEMATICAL LOGIC
                 AND FORMAL LANGUAGES, Mathematical Logic.",
}

@Article{Crowl:1994:PPC,
  author =       "Lawrence A. Crowl and Thomas J. LeBlanc",
  title =        "Parallel Programming with Control Abstraction",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "3",
  pages =        "524--576",
  month =        may,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/177584.html",
  abstract =     "Parallel programming involves finding the potential
                 parallelism in an application and mapping it to the
                 architecture at hand. Since a typical application has
                 more potential parallelism than any single architecture
                 can exploit effectively, programmers usually limit
                 their focus to the parallelism that the available
                 control constructs express easily and that the given
                 architecture exploits efficiently. This approach
                 produces programs that exhibit much less parallelism
                 that exists in the application, and whose performance
                 depends critically on the underlying hardware and
                 software.\par

                 We argue for an alternative approach based on {\em
                 control abstraction}. Control abstraction is the
                 process by which programmers define new control
                 constructs, specifying constraints on statement
                 ordering separately from an implementation of that
                 ordering. With control abstraction programmers can
                 define and use a rich variety of control constructs to
                 represent an algorithm's potential
                 parallelism.\par

                 Since control abstraction separates the definition of a
                 construct from its implementation, a construct may have
                 several different implementations, each exploiting a
                 different subset of the parallelism admitted by the
                 construct. By selecting an implementation for each
                 control construct using annotations, a programmer can
                 vary the parallelism in a program to best exploit the
                 underlying hardware without otherwise changing the
                 source code. This approach produces programs that
                 exhibit most of the potential parallelism in an
                 algorithm, and whose performance can be tuned simply by
                 choosing among the various implementations for the
                 control constructs in use.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; design; languages",
  subject =      "{\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Concurrent programming
                 structures. {\bf D.1.3}: Software, PROGRAMMING
                 TECHNIQUES, Concurrent Programming, Parallel
                 programming. {\bf D.2.m}: Software, SOFTWARE
                 ENGINEERING, Miscellaneous, Reusable software. {\bf
                 D.3.2}: Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Concurrent, distributed, and parallel
                 languages. {\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, Control
                 structures. {\bf D.3.3}: Software, PROGRAMMING
                 LANGUAGES, Language Constructs and Features,
                 Procedures, functions, and subroutines. {\bf F.3.3}:
                 Theory of Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Studies of Program Constructs, Control primitives.",
}

@Article{Foster:1994:CAS,
  author =       "Ian Foster and Stephen Taylor",
  title =        "A Compiler Approach to Scalable Concurrent-Program
                 Design",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "3",
  pages =        "577--604",
  month =        may,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/177612.html",
  abstract =     "We describe a compilation system for the concurrent
                 programming language Program Composition Notation
                 (PCN). This notation provides a {\em single-assignment
                 programming model\/} that permits
                 concurrent-programming concerns such as decomposition,
                 communication, synchronization, mapping, granularity,
                 and load balancing to be addressed separately in a
                 design. PCN is also extensible with {\em
                 programmer-defined operators}, allowing common
                 abstractions to be encapsulated and reused in different
                 contexts.\par

                 The compilation system incorporates a {\em
                 concurrent-transformation system\/} that allows
                 abstractions to be defined through concurrent
                 source-to-source transformations; these convert
                 programmer-defined operators into a core notation. {\em
                 Run-time techniques\/} allow the core notation to be
                 compiled into a simple concurrent abstract machine
                 which can be implemented in a portable fashion using a
                 run-time library. The abstract machine provides a
                 uniform treatment of single-assignment and mutable data
                 structures, allowing data sharing between concurrent
                 and sequential program segments and permitting
                 integration of sequential C and Fortran code into
                 concurrent programs.\par

                 This compilation system forms part of a program
                 development toolkit that operates on a wide variety of
                 networked workstations, multicomputers, and
                 shared-memory multiprocessors. The toolkit has been
                 used both to develop substantial applications and to
                 teach introductory concurrent-programming classes,
                 including a freshman course at Caltech.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "design; languages",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Compilers. {\bf D.1.3}: Software,
                 PROGRAMMING TECHNIQUES, Concurrent Programming. {\bf
                 D.2.10}: Software, SOFTWARE ENGINEERING, Design,
                 Methodologies. {\bf D.3.4}: Software, PROGRAMMING
                 LANGUAGES, Processors, Run-time environments.",
}

@Article{Arbab:1994:SCD,
  author =       "Bijan Arbab and Daniel Berry",
  title =        "Some Comments on ``{A} Denotational Semantics for
                 {Prolog}''",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "3",
  pages =        "605--606",
  month =        may,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/177605.html",
  abstract =     "Two independently derived denotational semantics for
                 Prolog are contrasted, Arbab and Berry's for the full
                 language and Nicholson and Foo's for a databaseless
                 language. Using the ideas suggested by the former, the
                 latter can be easily extended to include the database
                 operations.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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.1}:
                 Software, PROGRAMMING LANGUAGES, Formal Definitions and
                 Theory, Semantics. {\bf D.3.2}: Software, PROGRAMMING
                 LANGUAGES, Language Classifications. {\bf F.4.1}:
                 Theory of Computation, MATHEMATICAL LOGIC AND FORMAL
                 LANGUAGES, Mathematical Logic, Logic programming.",
}

@Article{Marriott:1994:DAI,
  author =       "Kim Marriott and Harald S{\o}ndergaard and Neil D.
                 Jones",
  title =        "Denotational Abstract Interpretation of Logic
                 Programs",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "3",
  pages =        "607--648",
  month =        may,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib; Compiler/TOPPS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/177650.html",
  abstract =     "Logic-programming languages are based on a principle
                 of separation ``logic'' and ``control.''. This means
                 that they can be given simple model-theoretic semantics
                 without regard to any particular execution mechanism
                 (or proof procedure, viewing execution as theorem
                 proving). Although the separation is desirable from a
                 semantical point of view, it makes sound, efficient
                 implementation of logic-programming languages
                 difficult. The lack of ``control information'' in
                 programs calls for complex data-flow analysis
                 techniques to guide execution. Since data-flow analysis
                 furthermore finds extensive use in error-finding and
                 transformation tools, there is a need for a simple and
                 powerful theory of data-flow analysis of logic
                 programs.\par

                 This paper offers such a theory, based on F. Nielson's
                 extension of P. Cousot and R. Cousot's {\em abstract
                 interpretation}. We present a denotational definition
                 of the semantics of definite logic programs. This
                 definition is of interest in its own right because of
                 its compactness. Stepwise we develop the definition
                 into a generic data-flow analysis that encompasses a
                 large class of data-flow analyses based on the SLD
                 execution model. We exemplify one instance of the
                 definition by developing a provably correct groundness
                 analysis to predict how variables may be bound to
                 ground terms during execution. We also discuss
                 implementation issues and related work.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "abstract interpretation; flow analysis; languages;
                 logical relations; Prolog; theory",
  semno =        "D-94",
  subject =      "{\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. {\bf F.3.1}: Theory of
                 Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Specifying and Verifying and Reasoning about Programs,
                 Specification techniques. {\bf F.4.1}: Theory of
                 Computation, MATHEMATICAL LOGIC AND FORMAL LANGUAGES,
                 Mathematical Logic, Logic programming.",
  summary =      "A framework is established for the static analysis of
                 prolog programs. The framework is quite general and is
                 solidly based in a formal semantics, thus enabling
                 rigorous correctness proofs of various analyses. The
                 methods used include an adaptation of logical relations
                 as applied by Nielson and Nielson.",
}

@Article{Codish:1994:SAC,
  author =       "Michael Codish and Moreno Falaschi and Kim Marriott",
  title =        "Suspension Analyses for Concurrent Logic Programs",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "3",
  pages =        "649--686",
  month =        may,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/177656.html",
  abstract =     "Concurrent logic languages specify reactive systems
                 which consist of collections of communicating
                 processes. The presence of unintended suspended
                 computations is a common programming error which is
                 difficult to detect using standard debugging and
                 testing techniques. We develop a number of analyses,
                 based on abstract interpretation, which succeed if a
                 program is definitely suspension free. If an analysis
                 fails, the program may, or may not, be suspension free.
                 Examples demonstrate that the analyses are practically
                 useful. They are conceptually simple and easy to
                 justify because they are based directly on the
                 transition system semantics of concurrent logic
                 programs. A naive analysis must consider {\em all
                 scheduling policies}. However, it is proven that for
                 our analyses it suffices to consider only {\em one\/}
                 scheduling policy, allowing for efficient
                 implementation.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "languages",
  subject =      "{\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 F.3.1}: Theory of Computation, LOGICS
                 AND MEANINGS OF PROGRAMS, Specifying and Verifying and
                 Reasoning about Programs, Logics of programs. {\bf
                 D.1.6}: Software, PROGRAMMING TECHNIQUES, Logic
                 Programming. {\bf D.3.2}: Software, PROGRAMMING
                 LANGUAGES, Language Classifications, Concurrent,
                 distributed, and parallel languages. {\bf D.1.3}:
                 Software, PROGRAMMING TECHNIQUES, Concurrent
                 Programming. {\bf F.3.2}: Theory of Computation, LOGICS
                 AND MEANINGS OF PROGRAMS, Semantics of Programming
                 Languages, Operational semantics.",
}

@Article{Apt:1994:OCF,
  author =       "Krzysztof R. Apt and Alessando Pellegrini",
  title =        "On the Occur-Check-Free {Prolog} Programs",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "3",
  pages =        "687--726",
  month =        may,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/177673.html",
  abstract =     "In most PROLOG implementations, for efficiency
                 occur-check is omitted from the unification algorithm.
                 This paper provides natural syntactic conditions that
                 allow the occur-check to be safely omitted. The
                 established results apply to most well-known PROLOG
                 programs, including those that use difference lists,
                 and seem to explain why this omission does not lead in
                 practice to any complications. When applying these
                 results to general programs, we show their usefulness
                 for proving absence of floundering. Finally, we propose
                 a program transformation that transforms every program
                 into a program for which only the calls to the built-in
                 unification predicate need to be resolved by a
                 unification algorithm with the occur-check.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; languages; theory",
  subject =      "{\bf D.3.2}: Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Prolog. {\bf F.4.1}: Theory of
                 Computation, MATHEMATICAL LOGIC AND FORMAL LANGUAGES,
                 Mathematical Logic, Logic programming. {\bf F.4.1}:
                 Theory of Computation, MATHEMATICAL LOGIC AND FORMAL
                 LANGUAGES, Mathematical Logic, Mechanical theorem
                 proving. {\bf D.2.4}: Software, SOFTWARE ENGINEERING,
                 Program Verification, Correctness proofs. {\bf D.3.4}:
                 Software, PROGRAMMING LANGUAGES, Processors,
                 Preprocessors.",
}

@Article{Garlan:1994:TAM,
  author =       "David Garlan and Charles W. Krueger and Barbara S.
                 Lerner",
  title =        "{TransformGen}: Automating the Maintenance of
                 Structure-Oriented Environments",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "3",
  pages =        "727--774",
  month =        may,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/177697.html",
  abstract =     "A serious problem for programs that use persistent
                 data is that information created and maintained by the
                 program becomes invalid if the persistent types used in
                 the program are modified in a new release.
                 Unfortunately, there has been little systematic
                 treatment of the problem; current approaches are
                 manual, ad hoc, and time consuming both for programmers
                 and users. In this article we present a new approach.
                 Focusing on the special case of managing abstract
                 syntax trees in structure-oriented environments, we
                 show how automatic transformers can be generated in
                 terms of an implementor's changes to the grammar of
                 these environments.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "design",
  subject =      "{\bf D.2.6}: Software, SOFTWARE ENGINEERING,
                 Programming Environments. {\bf D.2.2}: Software,
                 SOFTWARE ENGINEERING, Tools and Techniques. {\bf
                 D.2.6}: Software, SOFTWARE ENGINEERING, Programming
                 Environments. {\bf D.2.7}: Software, SOFTWARE
                 ENGINEERING, Distribution and Maintenance. {\bf H.2.1}:
                 Information Systems, DATABASE MANAGEMENT, Logical
                 Design, Schema and subschema.",
}

@Article{Yu:1994:LTS,
  author =       "Lin Yu and Daniel J. Rosenkrantz",
  title =        "A Linear-Time Scheme for Version Reconstruction",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "3",
  pages =        "775--797",
  month =        may,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/177705.html",
  abstract =     "An efficient scheme to store and reconstruct versions
                 of sequential files is presented. The reconstruction
                 scheme involves building a data structure representing
                 a complete version, and then successively modifying
                 this data structure by applying a sequence of specially
                 formatted differential files to it. Each application of
                 a differential file produces a representation of an
                 intermediate version, with the final data structure
                 representing the requested version.\par

                 The scheme uses a linked list to represent an
                 intermediate version, instead of a sequential array, as
                 is used traditionally. A new format for differential
                 files specifying changes to this linked list data
                 structure is presented. The specification of each
                 change points directly to where the change is to take
                 place, thereby obviating a search. Algorithms are
                 presented for using such a new format differential file
                 to transform the representation of a version, and for
                 reconstructing a requested version. Algorithms are also
                 presented for generating the new format differential
                 files, both for the case of a forward differential
                 specifying how to transform the representation of an
                 old version to the representation of a new version, and
                 for the case of a reverse differential specifying how
                 to transform the representation of a new version to the
                 representation of an old version.\par

                 The new version reconstruction scheme takes time linear
                 in the sum of the size of the initial complete version
                 and the sizes of the file differences involved in
                 reconstructing the requested version. In contrast, the
                 classical scheme for reconstructing versions takes time
                 proportional to the sum of the sizes of the sequence of
                 versions involved in the reconstruction, and therefore
                 has a worst-case time that is quadratic in the sum of
                 the size of the initial complete version and the sizes
                 of the file differences. The time cost of the new
                 differential file generation scheme is comparable to
                 the time cost of the classical differential file
                 generation scheme.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; languages",
  subject =      "{\bf H.2.5}: Information Systems, DATABASE MANAGEMENT,
                 Heterogeneous Databases, Program translation. {\bf
                 H.3.2}: Information Systems, INFORMATION STORAGE AND
                 RETRIEVAL, Information Storage, File organization. {\bf
                 H.2.1}: Information Systems, DATABASE MANAGEMENT,
                 Logical Design. {\bf H.2.0}: Information Systems,
                 DATABASE MANAGEMENT, General, Security, integrity, and
                 protection. {\bf H.2.5}: Information Systems, DATABASE
                 MANAGEMENT, Heterogeneous Databases, Data translation.
                 {\bf D.2.7}: Software, SOFTWARE ENGINEERING,
                 Distribution and Maintenance.",
}

@Article{Rao:1994:RAP,
  author =       "Josyula R. Rao",
  title =        "Reasoning about Probabilistic Parallel Programs",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "3",
  pages =        "798--842",
  month =        may,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/177724.html",
  abstract =     "The use of randomization in the design and analysis of
                 algorithms promises simple and efficient algorithms to
                 difficult problems, some of which may not have a
                 deterministic solution. This gain in simplicity,
                 efficiency, and solvability results in a trade-off of
                 the traditional notion of absolute correctness of
                 algorithms for a more quantitative notion: correctness
                 with a probability between 0 and 1. The addition of the
                 notion of parallelism to the already unintuitive idea
                 of randomization makes reasoning about probabilistic
                 parallel programs all the more tortuous and
                 difficult.\par

                 In this paper we address the problem of specifying and
                 deriving properties of probabilistic parallel programs
                 that either hold deterministically or with probability
                 1. We present a proof methodology based on existing
                 proof systems for probabilistic algorithms, the theory
                 of the predicate transformer, and the theory of UNITY.
                 Although the proofs of probabilistic programs are
                 slippery at best, we show that such programs can be
                 derived with the same rigor and elegance that we have
                 seen in the derivation of sequential and parallel
                 programs. By applying this methodology to derive
                 probabilistic programs, we hope to develop tools and
                 techniques that would make randomization a useful
                 paradigm in algorithm design.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; verification",
  subject =      "{\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,
                 Parallel programming. {\bf D.2.4}: Software, SOFTWARE
                 ENGINEERING, Program Verification, Correctness proofs.
                 {\bf D.2.10}: Software, SOFTWARE ENGINEERING, Design,
                 Methodologies. {\bf G.3}: Mathematics of Computing,
                 PROBABILITY AND STATISTICS, Probabilistic algorithms
                 (including Monte Carlo).",
}

@Article{Grumberg:1994:MCM,
  author =       "Orna Grumberg and David E. Long",
  title =        "Model Checking and Modular Verification",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "3",
  pages =        "843--871",
  month =        may,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/177725.html",
  abstract =     "We describe a framework for compositional verification
                 of finite-state processes. The framework is based on
                 two ideas: a subset of the logic CTL for which
                 satisfaction is preserved under composition, and a
                 preorder on structures which captures the relation
                 between a component and a system containing the
                 component. Satisfaction of a formula in the logic
                 corresponds to being below a particular structure (a
                 tableau for the formula) in the preorder. We show how
                 to do assume-guarantee-style reasoning within this
                 framework. Additionally, we demonstrate efficient
                 methods for model checking in the logic and for
                 checking the preorder in several special cases. We have
                 implemented a system based on these methods, and we use
                 it to give a compositional verification of a CPU
                 controller.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; 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
                 D.2.2}: Software, SOFTWARE ENGINEERING, Tools and
                 Techniques, Computer-aided software engineering (CASE).
                 {\bf D.2.2}: Software, SOFTWARE ENGINEERING, Tools and
                 Techniques, Decision tables. {\bf D.2.4}: Software,
                 SOFTWARE ENGINEERING, Program Verification. {\bf
                 F.1.1}: Theory of Computation, COMPUTATION BY ABSTRACT
                 DEVICES, Models of Computation, Relations among
                 models.",
}

@Article{Lamport:1994:TLA,
  author =       "Leslie Lamport",
  title =        "The Temporal Logic of Actions",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "3",
  pages =        "872--923",
  month =        may,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/177726.html",
  abstract =     "The temporal logic of actions (TLA) is a logic for
                 specifying and reasoning about concurrent systems.
                 Systems and their properties are represented in the
                 same logic, so the assertion that a system meets its
                 specification and the assertion that one system
                 implements another are both expressed by logical
                 implication. TLA is very simple; its syntax and
                 complete formal semantics are summarized in about a
                 page. Yet, TLA is not just a logician's toy; it is
                 extremely powerful, both in principle and in practice.
                 This report introduces TLA and describes how it is used
                 to specify and verify concurrent algorithms. The use of
                 TLA to specify and reason about open systems will be
                 described elsewhere.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 D.2.4}: Software, SOFTWARE ENGINEERING, Program
                 Verification, Correctness proofs.",
}

@Article{Broy:1994:AFC,
  author =       "Manfred Broy and Greg Nelson",
  title =        "Adding Fair Choice to {Dijkstra}'s Calculus",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "3",
  pages =        "924--938",
  month =        may,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/177727.html",
  abstract =     "The paper studies the incorporation of a fair
                 nondeterministic choice operator into a generalization
                 of Dijkstra's calculus of guarded commands. The
                 generalization drops the law of the excluded miracle to
                 allow commands that correspond to partial relations.
                 Because of fairness, the new operator is not monotonic
                 for the orderings that are generally used for proving
                 the existence of least fixed points for recursive
                 definitions. To prove the existence of fixed points it
                 is necessary to consider several orderings at once, and
                 to restrict the class of recursive definitions.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; theory",
  subject =      "{\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Concurrent programming
                 structures. {\bf D.3.1}: Software, PROGRAMMING
                 LANGUAGES, Formal Definitions and Theory, Semantics.
                 {\bf F.1.2}: Theory of Computation, COMPUTATION BY
                 ABSTRACT DEVICES, Modes of Computation, Alternation and
                 nondeterminism.",
}

@Article{Afek:1994:BFF,
  author =       "Yehuda Afek and Danny Dolev and Eli Gafni and Michael
                 Merritt and Nir Shavit",
  title =        "A Bounded First-In, First-Enabled Solution to the
                 $\ell$-Exclusion Problem",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "3",
  pages =        "939--953",
  month =        may,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/177731.html",
  abstract =     "This article presents a solution to the first-come,
                 first-enabled $\ell$-exclusion problem of Fischer et
                 al. [1979]. Unlike their solution, this solution does
                 not use powerful read-modify-write synchronization
                 primitives and requires only bounded shared memory. Use
                 of the concurrent timestamp system of Dolev and Shavir
                 [1989] is key in solving the problem within bounded
                 shared memory.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; reliability",
  subject =      "{\bf D.4.1}: Software, OPERATING SYSTEMS, Process
                 Management, Mutual exclusion.",
}

@Article{Joung:1994:CFO,
  author =       "Yuh-Jzer Joung and Scott A. Smolka",
  title =        "Coordinating First-Order Multiparty Interactions",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "3",
  pages =        "954--985",
  month =        may,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/177739.html",
  abstract =     "A {\em first-order multiparty interaction\/} is an
                 abstraction mechanism that defines communication among
                 a set of {\em formal process roles}. Actual processes
                 participate in a first-order interaction by {\em
                 enroling\/} into roles, and execution of the
                 interaction can proceed when all roles are filled by
                 distinct processes. As in CSP, enrolement statements
                 can serve as guards in alternative commands. The {\em
                 enrolement guard-scheduling problem\/} then is to
                 enable the execution of first-order interactions
                 through the judicious scheduling of roles to processes
                 that are currently ready to execute enrolement
                 guards.\par

                 We present a fully distributed and message-efficient
                 algorithm for the enrolement guard-scheduling problem,
                 the first such solution of which we are aware. We also
                 describe several extensions of the algorithm,
                 including: {\em generic roles; dynamically changing
                 environments}, where processes can be created and
                 destroyed at run time; and {\em nested-enrolement},
                 which allows interactions to be nested.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; design; languages",
  subject =      "{\bf D.4.1}: Software, OPERATING SYSTEMS, Process
                 Management, Synchronization. {\bf D.4.1}: Software,
                 OPERATING SYSTEMS, Process Management, Scheduling. {\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.4}: Software,
                 OPERATING SYSTEMS, Communications Management,
                 Input/Output. {\bf D.4.7}: Software, OPERATING SYSTEMS,
                 Organization and Design, Distributed systems.",
}

@Article{Reiter:1994:HSR,
  author =       "Michael K. Reiter and Kenneth P. Birman",
  title =        "How to Securely Replicate Services",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "3",
  pages =        "986--1009",
  month =        may,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/177745.html",
  abstract =     "We present a method for constructing replicated
                 services that retain their availability and integrity
                 despite several servers and clients being corrupted by
                 an intruder, in addition to others failing benignly. We
                 also address the issue of maintaining a causal order
                 among client requests. We illustrate a security breach
                 resulting from an intruder's ability to effect a
                 violation of causality in the sequence of requests
                 processed by the service and propose an approach to
                 counter this attack. An important and novel feature of
                 our techniques is that the client need not be able to
                 identify or authenticate even a single server. Instead,
                 the client is required to possess only a single public
                 key for the service. We demonstrate the performance of
                 our techniques with a service we have implemented using
                 one of our protocols.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "reliability; security",
  subject =      "{\bf D.4.5}: Software, OPERATING SYSTEMS, Reliability,
                 Fault-tolerance. {\bf C.2.0}: Computer Systems
                 Organization, COMPUTER-COMMUNICATION NETWORKS, General,
                 Security and protection. {\bf C.2.4}: Computer Systems
                 Organization, COMPUTER-COMMUNICATION NETWORKS,
                 Distributed Systems. {\bf D.4.5}: Software, OPERATING
                 SYSTEMS, Reliability, Fault-tolerance. {\bf D.4.6}:
                 Software, OPERATING SYSTEMS, Security and Protection,
                 Authentication. {\bf D.4.6}: Software, OPERATING
                 SYSTEMS, Security and Protection, Cryptographic
                 controls. {\bf K.6.5}: Computing Milieux, MANAGEMENT OF
                 COMPUTING AND INFORMATION SYSTEMS, Security and
                 Protection, Authentication.",
}

@Article{Heering:1994:LIP,
  author =       "J. Heering and P. Klint and J. Rekers",
  title =        "Lazy and Incremental Program Generation",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "3",
  pages =        "1010--1023",
  month =        may,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/177750.html",
  abstract =     "Current program generators usually operate in a {\em
                 greedy\/} manner in the sense that a program must be
                 generated in its entirety before it can be used. If
                 generation time is scarce, or if the input to the
                 generator is subject to modification, it may be better
                 to be more cautious and to generate only those parts of
                 the program that are indispensable for processing the
                 particular data at hand. We call this {\em lazy program
                 generation}. Another, closely related strategy is {\em
                 incremental program generation}. When its input is
                 modified, an incremental generator will try to make a
                 corresponding modification in its output rather than
                 generate a completely new program. It may be
                 advantageous to use a combination of both strategies in
                 program generators that have to operate in a highly
                 dynamic and/or interactive environment.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; performance",
  subject =      "{\bf D.1.2}: Software, PROGRAMMING TECHNIQUES,
                 Automatic Programming. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Compilers. {\bf
                 D.3.4}: Software, PROGRAMMING LANGUAGES, Processors,
                 Parsing. {\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Translator writing systems and compiler
                 generators.",
}

@Article{Thorup:1994:CGA,
  author =       "Mikkel Thorup",
  title =        "Controlled Grammatic Ambiguity",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "3",
  pages =        "1024--1050",
  month =        may,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/177759.html",
  abstract =     "A new approach to ambiguity of context-free grammars
                 is presented, and within this approach the LL and LR
                 techniques are generalized to solve the following
                 problems for large classes of ambiguous
                 grammars:\par

                 \begin{itemize} \item Construction of a parser that
                 accepts all sentences generated by the grammar, and
                 which always terminates in linear time.\par

                 \item Identification of the structural ambiguity: a
                 finite set of pairs of partial parse trees is
                 constructed; if for each pair the two partial parse
                 trees are semantically equivalent, the ambiguity of the
                 grammar is semantically irrelevant.\par

                 \end{itemize} The user may control the parser
                 generation so as to get a parser which finds some
                 specific parse trees for the sentences. The generalized
                 LL and LR techniques will still guarantee that the
                 resulting parser accepts all sentences and terminates
                 in linear time on all input.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "design; 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. {\bf D.3.1}:
                 Software, PROGRAMMING LANGUAGES, Formal Definitions and
                 Theory. {\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors. {\bf F.3.2}: Theory of Computation, LOGICS
                 AND MEANINGS OF PROGRAMS, Semantics of Programming
                 Languages.",
}

@Article{Bates:1994:RSL,
  author =       "Joseph Bates and Alon Lavie",
  title =        "Recognizing Substrings of {LR$(k)$} Languages in
                 Linear Time",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "3",
  pages =        "1051--1077",
  month =        may,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/177768.html",
  abstract =     "LR parsing techniques have long been studied as being
                 efficient and powerful methods for processing
                 context-free languages. A linear-time algorithm for
                 recognizing languages representable by LR(k) grammars
                 has long been known. Recognizing substrings of a
                 context-free language is at least as hard as
                 recognizing full strings of the language, since the
                 latter problem easily reduces to the former. In this
                 article we present a linear-time algorithm for
                 recognizing substrings of LR(k) languages, thus showing
                 that the substring recognition problem for these
                 languages is no harder than the full string recognition
                 problem. An interesting data structure, the
                 Forest-Structured Stack, allows the algorithm to track
                 all possible parses of a substring without loosing the
                 efficiency of the original LR parser. We present the
                 algorithm, prove its correctness, analyze its
                 complexity, and mention several applications that have
                 been constructed.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; languages",
  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, Parsing.
                 {\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, Grammar types. {\bf F.4.3}:
                 Theory of Computation, MATHEMATICAL LOGIC AND FORMAL
                 LANGUAGES, Formal Languages, Classes defined by
                 grammars or automata.",
}

@Article{Appel:1994:E,
  author =       "Andrew Appel and Charles Fischer",
  title =        "Editorial",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "4",
  pages =        "1079--1079",
  month =        jul,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "Compiler/TOPLAS.bib;
                 http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@Article{Bossi:1994:TAP,
  author =       "Annalisa Bossi and Sandro Etalle",
  title =        "Transforming Acyclic Programs",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "4",
  pages =        "1081--1096",
  month =        jul,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/183434.html",
  abstract =     "An unfold/fold transformation system is a
                 source-to-source rewriting methodology devised to
                 improve the efficiency of a program. Any such
                 transformation should preserve the main properties of
                 the initial program: among them, termination. In the
                 field of logic programming, the class of acyclic
                 programs plays an important role in this respect, since
                 it is closely related to the one of terminating
                 programs. The two classes coincide when negation is not
                 allowed in the bodies of the clauses.\par

                 We prove that the Unfold/Fold transformation system
                 defined by Tamaki and Sato preserves the acyclicity of
                 the initial program. From this result, it follows that
                 when the transformation is applied to an acyclic
                 program, then the finite failure set for definite
                 programs is preserved; in the case of normal programs,
                 all major declarative and operational semantics are
                 preserved as well. These results cannot be extended to
                 the class of left-terminating programs without
                 modifying the definition of the transformation.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "languages; theory",
  subject =      "{\bf D.1.6}: Software, PROGRAMMING TECHNIQUES, Logic
                 Programming. {\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, Logic programming. {\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.",
}

@Article{Choi:1994:SSP,
  author =       "Jong-Deok Choi and Jeanne Ferrante",
  title =        "Static Slicing in the Presence of Goto Statements",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "4",
  pages =        "1097--1113",
  month =        jul,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/183438.html",
  abstract =     "A static program slice is an extract of a program
                 which can help our understanding of the behavior of the
                 program; it has been proposed for use in debugging,
                 optimization, parallelization, and integration of
                 programs. This article considers two types of static
                 slices: executable and nonexecutable. Efficient and
                 well-founded methods have been developed to construct
                 executable slices for programs without goto statements;
                 it would be tempting to assume these methods would
                 apply as well in programs with arbitrary goto
                 statements. We show why previous methods do not work in
                 this more general setting, and describe our solutions
                 that correctly and efficiently compute executable
                 slices for programs even with arbitrary goto
                 statements. Our conclusion is that goto statements can
                 be accommodated in generating executable static
                 slices.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; languages",
  subject =      "{\bf D.2.5}: Software, SOFTWARE ENGINEERING, Testing
                 and Debugging, Debugging aids. {\bf D.2.6}: Software,
                 SOFTWARE ENGINEERING, Programming Environments.",
}

@Article{Wolfe:1994:DDD,
  author =       "Michael Wolfe",
  title =        "The Definition of Dependence Distance",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "4",
  pages =        "1114--1116",
  month =        jul,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/183440.html",
  abstract =     "Several definitions of dependence distance can be
                 found in the literature. A single coherent definition
                 is the vector distance between the iteration vectors of
                 two iterations involved in a dependence relation.
                 Different ways to associate iteration vectors with
                 iterations can give different dependence distances to
                 the same program, and have different advantages.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "languages; theory",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Optimization. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Compilers.",
}

@Article{Knoop:1994:OCM,
  author =       "Jens Knoop and Oliver {R\"uthing} and Bernhard
                 Steffen",
  title =        "Optimal Code Motion: Theory and Practice",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "4",
  pages =        "1117--1155",
  month =        jul,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/183443.html",
  abstract =     "An implementation-oriented algorithm for {\em lazy
                 code motion\/} is presented that minimizes the number
                 of computations in programs while suppressing any
                 unnecessary code motion in order to avoid superfluous
                 register pressure. In particular, this variant of the
                 original algorithm for lazy code motion works on
                 flowgraphs whose nodes are basic blocks rather than
                 single statements, since this format is standard in
                 optimizing compilers. The theoretical foundations of
                 the modified algorithm are given in the first part,
                 where $t$-refined flowgraphs are introduced for
                 simplifying the treatment of flow graphs whose nodes
                 are basic blocks. The second part presents the ``basic
                 block'' algorithm in standard notation and gives
                 directions for its implementation in standard compiler
                 environments.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; performance",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Optimization. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Code generation.
                 {\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Compilers. {\bf F.2.2}: Theory of
                 Computation, ANALYSIS OF ALGORITHMS AND PROBLEM
                 COMPLEXITY, Nonnumerical Algorithms and Problems.",
}

@Article{Freudenberger:1994:ASC,
  author =       "Stefan Freudenberger and Thomas R. Gross and P.
                 Geoffrey Lowney",
  title =        "Avoidance and Suppression of Compensation Code in a
                 Trace Scheduling Compiler",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "4",
  pages =        "1156--1214",
  month =        jul,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/183446.html",
  abstract =     "Trace scheduling is an optimization technique that
                 selects a sequence of basic blocks as a trace and
                 schedules the operations from the trace together. If an
                 operation is moved across basic block boundaries, one
                 or more compensation copies may be required in the
                 off-trace code. This article discusses the generation
                 of compensation code in a trace scheduling compiler and
                 presents techniques for limiting the amount of
                 compensation code: avoidance (restricting code motion
                 so that no compensation code is required) and
                 suppression (analyzing the global flow of the program
                 to detect when a copy is redundant). We evaluate the
                 effectiveness of these techniques based on measurements
                 for the SPEC89 suite and the Livermore Fortran Kernels,
                 using our implementation of trace scheduling for a
                 Multiflow Trace 7/300. The article compares different
                 compiler models contrasting the performance of trace
                 scheduling with the performance obtained from typical
                 RISC compilation techniques.\par

                 There are two key results of this study. First, the
                 amount of compensation code generated is not large. For
                 the SPEC89 suite, the average code size increase due to
                 trace scheduling is 6\%. Avoidance is more important
                 than suppression, although there are some kernels that
                 benefit significantly from compensation code
                 suppression. Since compensation code is not a major
                 issue, a compiler can be more aggressive in code motion
                 and loop unrolling. Second, compensation code is not
                 critical to obtain the benefits of trace scheduling.
                 Our implementation of trace scheduling improves the
                 SPEC mark rating by 30\% over basic block scheduling,
                 but restricting trace scheduling so that no
                 compensation code is required improves the rating by
                 25\%. This indicates that most basic block scheduling
                 techniques can be extended to trace scheduling without
                 requiring any complicated compensation code
                 bookkeeping.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "languages; measurement; performance",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Optimization. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Code generation.
                 {\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Compilers.",
}

@Article{Hannan:1994:OSD,
  author =       "John Hannan",
  title =        "Operational Semantics-Directed Compilers and Machine
                 Architectures",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "4",
  pages =        "1215--1247",
  month =        jul,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/183458.html",
  abstract =     "We consider the task of automatically constructing
                 intermediate-level machine architectures and compilers
                 generating code for these architectures, given
                 operational semantics for source languages. We use
                 operational semantics in the form of abstract machines
                 given by rewrite systems in which the rewrite rules
                 operate on terms representing states of computations.
                 To construct compilers and new architectures we employ
                 a particular strategy called pass separation, a form of
                 staging transformation, that takes a program $p$ and
                 constructs a pair of programs $p_{1}, p_{2}$ such that
                 $p(x, y) = p_{2}(p_{1}(x), y)$ for all $x,y$. If $p$
                 represents an operational semantics for a language,
                 with arguments $x$ and $y$ denoting a source program
                 and its input data, then pass separation constructs
                 programs $p_{1}$ and $p_{2}$ corresponding to a
                 compiler and an executor.\par

                 The compiler translates the source language into an
                 intermediate-level target language, and the executor
                 provides the definition for this language. Our use of
                 pass separation supports the automatic definition of
                 target languages or architectures, and the structure of
                 these architectures is directed by the structure of the
                 given source semantics. These architectures resemble
                 abstract machine languages found in hand-crafted
                 compilers. Our method is restricted to a limited class
                 of abstract machines given as term-rewriting systems,
                 but we argue that this class encompasses a large set of
                 language definitions derived from more natural
                 operational semantics. We provide two examples of our
                 method by constructing compilers and target
                 architectures for a simple functional language and a
                 simple imperative language. Though we construct these
                 architectures automatically, they bear a striking
                 resemblance to existing architectures constructed by
                 hand.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "languages; theory",
  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,
                 Operational semantics.",
}

@Article{Pugh:1994:SAU,
  author =       "William Pugh and David Wonnacott",
  title =        "Static Analysis of Upper and Lower Bounds on
                 Dependences and Parallelism",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "4",
  pages =        "1248--1278",
  month =        jul,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/183525.html",
  abstract =     "Existing compilers often fail to parallelize
                 sequential code, even when a program can be manually
                 transformed into parallel form by a sequence of
                 well-understood transformations (as in the case for
                 many of the Perfect Club Benchmark programs). These
                 failures can occur for several reasons: the code
                 transformations implemented in the compiler may not be
                 sufficient to produce parallel code, the compiler may
                 not find the proper sequence of transformations, or the
                 compiler may not be able to prove that one of the
                 necessary transformations is legal.\par

                 When a compiler fails to extract sufficient parallelism
                 from a program, the programmer may try to extract
                 additional parallelism. Unfortunately, the programmer
                 is typically left to search for parallelism without
                 significant assistance. The compiler generally does not
                 give feedback about which parts of the program might
                 contain additional parallelism, or about the types of
                 transformations that might be needed to realize this
                 parallelism. Standard program transformations and
                 dependence abstractions cannot be used to provide this
                 feedback.\par

                 In this paper, we propose a two-step approach to the
                 search for parallelism in sequential programs. In the
                 first step, we construct several sets of constraints
                 that describe, for each statement, which iterations of
                 that statement can be executed concurrently. By
                 constructing constraints that correspond to different
                 assumptions about which dependences might be eliminated
                 through additional analysis, transformations, and user
                 assertions, we can determine whether we can expose
                 parallelism by eliminating dependences. In the second
                 step of our search for parallelism, we examine these
                 constraint sets to identify the kinds of
                 transformations needed to exploit scalable parallelism.
                 Our tests will identify conditional parallelism and
                 parallelism that can be exposed by combinations of
                 transformations that reorder the iteration space (such
                 as loop interchange and loop peeling).\par

                 This approach lets us distinguish inherently sequential
                 code from code that contains unexploited parallelism.
                 It also produces information about the kinds of
                 transformations needed to parallelize the code, without
                 worrying about the order of application of the
                 transformations. Furthermore, when our dependence test
                 is inexact we can identify which unresolved dependences
                 inhibit parallelism by comparing the effects of
                 assuming dependence or independence. We are currently
                 exploring the use of this information in
                 programmer-assisted parallelization.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; theory",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Optimization. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Compilers.",
}

@Article{Ait-Kaci:1994:FPC,
  author =       "Hassan A{\"\i}t-Kaci and Andreas Podelski",
  title =        "Functions as Passive Constraints in {LIFE}",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "4",
  pages =        "1279--1318",
  month =        jul,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/183526.html",
  abstract =     "LIFE is a programming language proposing to integrate
                 logic programming, functional programming, and
                 object-oriented programming. It replaces first-order
                 terms with [psi]-terms, data structures that allow
                 computing with partial information. These are
                 approximation structures denoting sets of values. LIFE
                 further enriches the expressiveness of [psi]-terms with
                 functional dependency constraints. We must explain the
                 meaning and use of functions in LIFE declaratively, as
                 solving partial information constraints. These
                 constraints do not attempt to generate their solutions
                 but behave as demons filtering out anything else. In
                 this manner, LIFE functions act as declarative
                 coroutines. We need to show that the [psi]-term's
                 approximation semantics is congruent with an
                 operational semantics viewing functional reduction as
                 an effective enforcing of passive constraints. In this
                 article, we develop a general formal framework for
                 entailment and disentailment of constraints based on a
                 technique called relative simplification. We study its
                 operational and semantical properties, and we use it to
                 account for functional application over [psi]-terms in
                 LIFE.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; design; languages; performance; theory",
  subject =      "{\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.3.2}: Software, PROGRAMMING
                 LANGUAGES, Language Classifications, Applicative
                 languages. {\bf D.3.2}: Software, PROGRAMMING
                 LANGUAGES, Language Classifications, Concurrent,
                 distributed, and parallel languages. {\bf D.3.2}:
                 Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Nonprocedural languages. {\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 D.3.3}:
                 Software, PROGRAMMING LANGUAGES, Language Constructs
                 and Features, Data types and structures. {\bf E.1}:
                 Data, DATA STRUCTURES, Graphs. {\bf E.1}: Data, DATA
                 STRUCTURES, Trees. {\bf D.1.0}: Software, PROGRAMMING
                 TECHNIQUES, General.",
}

@Article{Ball:1994:OPT,
  author =       "Thomas Ball and James R. Larus",
  title =        "Optimally Profiling and Tracing Programs",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "4",
  pages =        "1319--1360",
  month =        jul,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/183527.html",
  abstract =     "This paper describes algorithms for inserting
                 monitoring code to profile and trace programs. These
                 algorithms greatly reduce the cost of measuring
                 programs with respect to the commonly used technique of
                 placing code in each basic block. Program profiling
                 counts the number of times each basic block in a
                 program executes. Instruction tracing records the
                 sequence of basic blocks traversed in a program
                 execution. The algorithms optimize the placement of
                 counting/tracing code with respect to the expected or
                 measured frequency of each block or edge in a program's
                 control-flow graph. We have implemented the algorithms
                 in a profiling/tracing tool, and they substantially
                 reduce the overhead of profiling and tracing.\par

                 We also define and study the hierarchy of profiling
                 problems. These problems have two dimensions: what is
                 profiled (i.e., vertices (basic blocks) or edges in a
                 control-flow graph) and where the instrumentation code
                 is placed (in blocks or along edges). We compare the
                 optimal solutions to the profiling problems and
                 describe a new profiling problem: basic-block profiling
                 with edge counters. This problem is important because
                 an optimal solution to any other profiling problem (for
                 a given control-flow graph) is never better than an
                 optimal solution to this problem. Unfortunately,
                 finding an optimal placement of edge counters for
                 vertex profiling appears to be a hard problem in
                 general. However, our work shows that edge profiling
                 with edge counters works well in practice because it is
                 simple and efficient and finds optimal counter
                 placements in most cases. Furthermore, it yields more
                 information than a vertex profile. Tracing also
                 benefits from placing instrumentation code along edges
                 rather than on vertices.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; measurement",
  subject =      "{\bf D.2.5}: Software, SOFTWARE ENGINEERING, Testing
                 and Debugging, Tracing. {\bf C.4}: Computer Systems
                 Organization, PERFORMANCE OF SYSTEMS, Measurement
                 techniques. {\bf D.2.2}: Software, SOFTWARE
                 ENGINEERING, Tools and Techniques, Programmer
                 workbench. {\bf D.2.5}: Software, SOFTWARE ENGINEERING,
                 Testing and Debugging, Diagnostics.",
}

@Article{Brogi:1994:MLP,
  author =       "Antonio Brogi and Paolo Mancarella and Dino Pedreschi
                 and Franco Turini",
  title =        "Modular Logic Programming",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "4",
  pages =        "1361--1398",
  month =        jul,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/183528.html",
  abstract =     "Modularity is a key issue in the design of modern
                 programming languages. When designing modular features
                 for declarative languages in general, and for logic
                 programming languages in particular, the challenge lies
                 in avoiding the superimposition of a complex syntactic
                 and semantic structure over the simple structure of the
                 basic language. The modular framework defined here for
                 logic programming consists of a small number of
                 operations over modules which are (meta-) logically
                 defined and semantically justified in terms of the
                 basic logic programming semantics. The operations enjoy
                 a number of algebraic properties, thus yielding an
                 algebra of modules. Despite its simplicity, the suite
                 of operations is shown capable of capturing the core
                 features of modularization: information hiding,
                 import/export relationships, and construction of module
                 hierarchies. A metalevel implementation and a
                 compilation-oriented implementation of the operations
                 are provided and proved sound with respect to the
                 semantics. The compilation-oriented implementation is
                 based on manipulation of name spaces and provides the
                 basis for an efficient implementation.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "languages; theory",
  subject =      "{\bf D.1.6}: Software, PROGRAMMING TECHNIQUES, Logic
                 Programming. {\bf D.2.2}: Software, SOFTWARE
                 ENGINEERING, Tools and Techniques, Modules and
                 interfaces. {\bf D.3.3}: Software, PROGRAMMING
                 LANGUAGES, Language Constructs and Features, Modules,
                 packages. {\bf F.3.2}: Theory of Computation, LOGICS
                 AND MEANINGS OF PROGRAMS, Semantics of Programming
                 Languages. {\bf F.4.1}: Theory of Computation,
                 MATHEMATICAL LOGIC AND FORMAL LANGUAGES, Mathematical
                 Logic, Logic programming.",
}

@Article{Ball:1994:ECP,
  author =       "Thomas Ball",
  title =        "Efficiently Counting Program Events with Support for
                 On-Line Queries",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "5",
  pages =        "1399--1410",
  month =        sep,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/186027.html",
  abstract =     "The ability to count events in a program's execution
                 is required by many program analysis applications. We
                 represent an instrumentation method for efficiently
                 counting events in a program's execution, with support
                 for on-line queries of the event count. Event counting
                 differs from basic block profiling in that an aggregate
                 count of events is kept rather than a set of counters.
                 Due to this difference, solutions to basic block
                 profiling are not well suited to event counting. Our
                 algorithm finds a subset of points in a program to
                 instrument, while guaranteeing that accurate event
                 counts can be obtained efficiently at every point in
                 the execution.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; languages",
  subject =      "{\bf C.4}: Computer Systems Organization, PERFORMANCE
                 OF SYSTEMS, Measurement techniques. {\bf D.2.2}:
                 Software, SOFTWARE ENGINEERING, Tools and Techniques.",
}

@Article{Laufer:1994:PTI,
  author =       "Konstantin L{\"a}ufer and Martin Odersky",
  title =        "Polymorphic Type Inference and Abstract Data Types",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "5",
  pages =        "1411--1430",
  month =        sep,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/186031.html",
  abstract =     "Many statically typed programming languages provide an
                 abstract data type construct, such as the module in
                 Modula-2. However, in most of these languages,
                 implementations of abstract data types are not
                 first-class values. Thus, they cannot be assigned to
                 variables, passed as function parameters, or returned
                 as function results. Several higher-order functional
                 languages feature strong and static type systems,
                 parametric polymorphism, algebraic data types, and
                 explicit type variables. Most of them rely on
                 Hindley-Milner type inference instead of requiring
                 explicit type declarations for identifiers. Although
                 some of these languages support abstract data types, it
                 appears that none of them directly provides
                 light-weight abstract data types whose implementations
                 are first-class values. We show how to add significant
                 expressive power to statically typed functional
                 languages with explicit type variables by incorporating
                 first-class abstract types as an extension of algebraic
                 data types. Furthermore, we extend record types to
                 allow abstract components. The components of such
                 abstract records are selected using the dot notation.
                 Following Mitchell and Plotkin, we formalize abstract
                 types in terms of existentially quantified types. We
                 give a syntactically sound and complete type inference
                 algorithm and prove that our type system is
                 semantically sound with respect to standard
                 denotational semantics.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "languages; theory",
  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, Modules, packages. {\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, Type structure. {\bf D.3.2}:
                 Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Applicative languages. {\bf F.3.3}:
                 Theory of Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Studies of Program Constructs, Type structure.",
}

@Article{Ashley:1994:FCP,
  author =       "J. Michael Ashley and Charles Consel",
  title =        "Fixpoint Computation for Polyvariant Static Analyses
                 of Higher-Order Applicative Programs",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "5",
  pages =        "1431--1448",
  month =        sep,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/186037.html",
  abstract =     "This paper presents an optimized general-purpose
                 algorithm for polyvariant, static analyses of
                 higher-order applicative programs. A polyvariant
                 analysis is a very accurate form of analysis that
                 produces many more abstract descriptions for a program
                 than does a conventional analysis. It may also compute
                 intermediate abstract descriptions that are irrelevant
                 to the final result of the analysis. The optimized
                 algorithm addresses this overhead while preserving the
                 accuracy of the analysis. The algorithm is also
                 parameterized over both the abstract domain and degree
                 of polyvariance. We have implemented an instance of our
                 algorithm and evaluated its performance compared to the
                 unoptimized algorithm. Our implementation runs
                 significantly faster on average than the other
                 algorithm for benchmarks reported here.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; design",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Parsing.",
}

@Article{Beemster:1994:SOG,
  author =       "Marcel Beemster",
  title =        "Strictness Optimization for Graph Reduction Machines
                 ({Why} id Might Not Be Strict)",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "5",
  pages =        "1449--1466",
  month =        sep,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/186040.html",
  abstract =     "Strictness optimizations in the implementation of lazy
                 functional languages are not always valid. In
                 nonoptimized graph reduction, evaluation always takes
                 place at the request of case analysis or a primitive
                 operation. Hence, the result of a reduction is always a
                 data value and never a function. This implies that in
                 an implementation no argument satisfaction check is
                 required. But in the presence of strict arguments,
                 ``premature'' reduction may take place outside the
                 scope of a case or primitive operation. This causes
                 problems in graph reducers that use an {\em aggressive
                 take}. Two solutions are presented, one based on a
                 run-time argument satisfaction check, the other on a
                 weakened strictness analyzer. Experimental results are
                 used to compare the two solutions and show that the
                 cost of the aggressive take can be arbitrarily high for
                 specific programs. The experimental results enable a
                 trade-off to be made by the reduction machine
                 designer.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "languages; performance",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Optimization. {\bf D.3.2}: Software,
                 PROGRAMMING LANGUAGES, Language Classifications,
                 Applicative languages. {\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, Run-time
                 environments. {\bf F.1.1}: Theory of Computation,
                 COMPUTATION BY ABSTRACT DEVICES, Models of Computation,
                 Relations among models.",
}

@Article{Ramalingam:1994:UA,
  author =       "G. Ramalingam",
  title =        "The Undecidability of Aliasing",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "5",
  pages =        "1467--1471",
  month =        sep,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/186041.html",
  abstract =     "Alias analysis is a prerequisite for performing most
                 of the common program analyses such as
                 reaching-definitions analysis or live-variables
                 analysis. Landi [1992] recently established that it is
                 impossible to compute statically precise alias
                 information---either may-alias or must-alias---in
                 languages with if statements, loops, dynamic storage,
                 and recursive data structures: more precisely, he
                 showed that the may-alias relation is not recursive,
                 while the must-alias relation is not even recursively
                 enumerable. This article presents simpler proofs of the
                 same results.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "languages; theory",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Optimization. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Compilers. {\bf
                 F.4.1}: Theory of Computation, MATHEMATICAL LOGIC AND
                 FORMAL LANGUAGES, Mathematical Logic, Computability
                 theory. {\bf F.4.3}: Theory of Computation,
                 MATHEMATICAL LOGIC AND FORMAL LANGUAGES, Formal
                 Languages, Decision problems. {\bf D.3.3}: Software,
                 PROGRAMMING LANGUAGES, Language Constructs and
                 Features, Procedures, functions, and subroutines.",
}

@Article{Khedker:1994:GTB,
  author =       "Uday P. Khedker and Dhananjay M. Dhamdhere",
  title =        "A Generalized Theory of Bit Vector Data Flow
                 Analysis",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "5",
  pages =        "1472--1511",
  month =        sep,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/186043.html",
  abstract =     "The classical theory of data flow analysis, which has
                 its roots in unidirectional flows, is inadequate to
                 characterize bidirectional data flow problems. We
                 present a generalized theory of bit vector data flow
                 analysis which explains the known results in
                 unidirectional and bidirectional data flows and
                 provides a deeper insight into the process of data flow
                 analysis. Based on the theory, we develop a
                 worklist-based generic algorithm which is uniformly
                 applicable to unidirectional and bidirectional data
                 flow problems. It is simple, versatile, and easy to
                 adapt for a specific problem. We show that the theory
                 and the algorithm are applicable to all bounded
                 monotone data flow problems which possess the property
                 of the separability of solution.\par

                 The theory yields valuable information about the
                 complexity of data flow analysis. We show that the
                 complexity of worklist-based iterative analysis is the
                 same for unidirectional and bidirectional problems. We
                 also define a measure of the complexity of round-robin
                 iterative analysis. This measure, called {\em width},
                 is uniformly applicable to unidirectional and
                 bidirectional problems and provides a tighter bound for
                 unidirectional problems than the traditional measure of
                 {\em depth}. Other applications include explanation of
                 isolated results in efficient solution techniques and
                 motivation of new techniques for bidirectional flows.
                 In particular, we discuss edge splitting and edge
                 placement and develop a feasibility criterion for
                 decomposition of a bidirectional flow into a sequence
                 of unidirectional flows.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; theory",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Optimization. {\bf F.2.2}: Theory of
                 Computation, ANALYSIS OF ALGORITHMS AND PROBLEM
                 COMPLEXITY, Nonnumerical Algorithms and Problems,
                 Complexity of proof procedures. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Compilers.",
}

@Article{Clarke:1994:MCA,
  author =       "Edmund M. Clarke and Orna Grumberg and David E.
                 Long",
  title =        "Model Checking and Abstraction",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "5",
  pages =        "1512--1542",
  month =        sep,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/186051.html",
  abstract =     "We describe a method for using abstraction to reduce
                 the complexity of temporal-logic model checking. Using
                 techniques similar to those involved in abstract
                 interpretation, we construct an abstract model of a
                 program without ever examining the corresponding
                 unabstracted model. We show how this abstract model can
                 be used to verify properties of the original program.
                 We have implemented a system based on these techniques,
                 and we demonstrate their practicality using a number of
                 examples, including a program representing a pipelined
                 ALU circuit with over $10^{1300}$ states.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "verification",
  subject =      "{\bf F.3.1}: Theory of Computation, LOGICS AND
                 MEANINGS OF PROGRAMS, Specifying and Verifying and
                 Reasoning about Programs, Mechanical verification. {\bf
                 B.5.2}: Hardware, REGISTER-TRANSFER-LEVEL
                 IMPLEMENTATION, Design Aids, Verification. {\bf D.3.1}:
                 Software, PROGRAMMING LANGUAGES, Formal Definitions and
                 Theory.",
}

@Article{Abadi:1994:OFR,
  author =       "Mart{\'\i}n Abadi and Leslie Lamport",
  title =        "An Old-Fashioned Recipe for Real Time",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "5",
  pages =        "1543--1571",
  month =        sep,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/186058.html",
  abstract =     "Traditional methods for specifying and reasoning about
                 concurrent systems work for real-time systems. Using
                 TLA (the temporal logic of actions), we illustrate how
                 they work with the examples of a queue and of a
                 mutual-exclusion protocol. In general, two problems
                 must be addressed: avoiding the real-time programming
                 version of Zeno's paradox, and coping with
                 circularities when composing real-time
                 assumption/guarantee specifications. Their solutions
                 rest on properties of machine closure and
                 realizability.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  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 D.2.4}: Software, SOFTWARE ENGINEERING, Program
                 Verification, Correctness proofs.",
}

@Article{Micallef:1994:EAG,
  author =       "Josephine Micallef and Gail E. Kaiser",
  title =        "Extending Attribute Grammers to Support
                 Programming-in-the-Large",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "5",
  pages =        "1572--1612",
  month =        sep,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/186091.html",
  abstract =     "Attribute grammars add specification of static
                 semantic properties to context-free grammars, which, in
                 turn, describe the syntactic structure of program
                 units. However, context-free grammars cannot express
                 programming-in-the-large features common in modern
                 programming languages, including unordered collections
                 of units, included units, and sharing of included
                 units. We present extensions to context-free grammars,
                 and corresponding extensions to attribute grammars,
                 suitable for defining such features. We explain how
                 batch and incremental attribute-evaluation algorithms
                 can be adapted to support these extensions, resulting
                 in a uniform approach to intraunit and interunit static
                 semantic analysis and translation of multiunit
                 programs.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; languages",
  subject =      "{\bf D.2.6}: Software, SOFTWARE ENGINEERING,
                 Programming Environments, Interactive. {\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.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Modules, packages. {\bf
                 D.3.4}: Software, PROGRAMMING LANGUAGES, Processors,
                 Translator writing systems and compiler generators.
                 {\bf D.2.2}: Software, SOFTWARE ENGINEERING, Tools and
                 Techniques, Modules and interfaces. {\bf D.2.3}:
                 Software, SOFTWARE ENGINEERING, Coding. {\bf D.3.1}:
                 Software, PROGRAMMING LANGUAGES, Formal Definitions and
                 Theory, GRAMPS.",
}

@Article{Breuer:1994:DET,
  author =       "Peter T. Breuer and Jonathan P. Bowen",
  title =        "Decompilation: The Enumeration of Types and Grammers",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "5",
  pages =        "1613--1647",
  month =        sep,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/186093.html",
  abstract =     "While a compiler produces low-level object code from
                 high-level source code, a decompiler produces
                 high-level code from low-level code and has
                 applications in the testing and validation of
                 safety-critical software. The decompilation of an
                 object code provides an independent demonstration of
                 correctness that is hard to better for industrial
                 purposes (an alternative is to prove the compiler
                 correct). But, although compiler compilers are in
                 common use in the software industry, a decompiler
                 compiler is much more unusual.\par

                 It turns out that a data type specification for a
                 programming-language grammar can be remolded into a
                 functional program that enumerates all of the abstract
                 syntax trees of the grammar. This observation is the
                 springboard for a general method for compiling
                 decompilers from the specifications of (nonoptimizing)
                 compilers.\par

                 This paper deals with methods and theory, together with
                 an application of the technique. The correctness of a
                 decompiler generated from a simple occam-like compiler
                 specification is demonstrated. The basic problem of
                 enumerating the syntax trees of grammars, and then
                 stopping, is shown to have no recursive solution, but
                 methods of abstract interpretation can be used to
                 guarantee the adequacy and completeness of our
                 technique in practical instances, including the
                 decompiler for the language presented here.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "languages; theory",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Translator writing systems and compiler
                 generators. {\bf F.4.3}: Theory of Computation,
                 MATHEMATICAL LOGIC AND FORMAL LANGUAGES, Formal
                 Languages, Operations on languages. {\bf D.1.1}:
                 Software, PROGRAMMING TECHNIQUES, Applicative
                 (Functional) Programming. {\bf D.1.6}: Software,
                 PROGRAMMING TECHNIQUES, Logic Programming. {\bf D.3.1}:
                 Software, PROGRAMMING LANGUAGES, Formal Definitions and
                 Theory, Semantics. {\bf D.3.1}: Software, PROGRAMMING
                 LANGUAGES, Formal Definitions and Theory, Syntax.",
}

@Article{Whalley:1994:AIC,
  author =       "David B. Whalley",
  title =        "Automatic Isolation of Compiler Errors",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "5",
  pages =        "1648--1659",
  month =        sep,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/186103.html",
  abstract =     "This paper describes a tool called {\em vpoiso\/} that
                 was developed to isolate errors automatically in the
                 {\em vpo\/} compiler system. The two general types of
                 compiler errors isolated by this tool are optimization
                 and nonoptimization errors. When isolating optimization
                 errors, {\em vpoiso\/} relies on the {\em vpo\/}
                 optimizer to identify sequences of changes, referred to
                 as transformations, that result in semantically
                 equivalent code and to provide the ability to stop
                 performing {\em improving\/} (or unnecessary)
                 transformations after a specified number have been
                 performed. A compilation of a typical program by {\em
                 vpo\/} often results in thousands of {\em improving\/}
                 transformations being performed. The {\em vpoiso\/}
                 tool can automatically isolate the first {\em
                 improving\/} transformation that causes incorrect
                 output of the execution of the compiled programs by
                 using a binary search that varies the number of {\em
                 improving\/} transformation performed. Not only is the
                 illegal transformation automatically isolated, but {\em
                 vpoiso\/} also identifies the location and instant the
                 transformation is performed in {\em vpo}.
                 Nonoptimization errors occur from problems in the front
                 end, code generator, and {\em necessary\/}
                 transformations in the optimizer. If another compiler
                 is available that can produce correct (but perhaps more
                 inefficient) code, then {\em vpoiso\/} can isolate
                 nonoptimization errors to a single function. Automatic
                 isolation of compiler errors facilitates retargeting a
                 compiler to a new machine, maintenance of the compiler,
                 and supporting experimentation with new
                 optimizations.",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; languages",
  subject =      "{\bf D.2.5}: Software, SOFTWARE ENGINEERING, Testing
                 and Debugging, Debugging aids. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Compilers. {\bf
                 D.3.4}: Software, PROGRAMMING LANGUAGES, Processors,
                 Optimization.",
}

@Article{Zic:1994:TCB,
  author =       "J. J. {\v{Z}}ic",
  title =        "Time-Constrained Buffer Specifications in {CSP+T} and
                 Timed {CSP}",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "6",
  pages =        "1661--1674",
  month =        nov,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/197322.html",
  abstract =     "A finite buffer with time constraints on the rate of
                 accepting inputs, producing outputs, and message
                 latency is specified using both Timed CSP and a new
                 real-time specification language, CSP + T, which adds
                 expressive power to some of the sequential aspects of
                 CSP and allows the description of complex event timings
                 from within a single sequential process. On the other
                 hand, Timed CSP encourages event-timing descriptions to
                 be built up in a constraint-oriented manner with the
                 parallel composition of several processes. Although
                 these represent two complementary specification styles,
                 both provide valuable insights into the specification
                 of complex event timings.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "design; languages; performance",
  subject =      "{\bf D.2.1}: Software, SOFTWARE ENGINEERING,
                 Requirements/Specifications, Languages. {\bf B.4.4}:
                 Hardware, INPUT/OUTPUT AND DATA COMMUNICATIONS,
                 Performance Analysis and Design Aids, Formal models.",
}

@Article{Bohm:1994:TIP,
  author =       "A. P. W. B{\"o}hm and R. R. Oldehoeft",
  title =        "Two Issues in Parallel Language Design",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "6",
  pages =        "1675--1683",
  month =        nov,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/197325.html",
  abstract =     "In this article, we discuss two programming language
                 features that have value for expressibility and
                 efficiency: nonstrictness and nondeterminism. Our work
                 arose while assessing ways to enhance a currently
                 successful language, SISAL [McGraw et al. 1985]. The
                 questions of how best to include these features, if at
                 all, has led not to conclusions but to an impetus to
                 explore the answers in an objective way. We will retain
                 strictness for efficiency reasons and explore the
                 limits it may impose, and we will experiment with a
                 carefully controlled form of nondeterminism to assess
                 its expressive power.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "design; languages",
  subject =      "{\bf D.3.2}: Software, PROGRAMMING LANGUAGES, Language
                 Classifications, SISAL. {\bf D.3.2}: Software,
                 PROGRAMMING LANGUAGES, Language Classifications,
                 Concurrent, distributed, and parallel languages. {\bf
                 D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Concurrent programming
                 structures.",
}

@Article{Brandis:1994:SPG,
  author =       "M. M. Brandis and H. Moessenboeck",
  title =        "Single-Pass Generation of Static Single-Assignment
                 Form for Structured Languages",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "6",
  pages =        "1684--1698",
  month =        nov,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/197331.html",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; design; languages",
  subject =      "{\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Control structures. {\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 E.1}: Data, DATA STRUCTURES,
                 Trees.",
}

@Article{Appel:1994:ABG,
  author =       "A. W. Appel",
  title =        "Axiomatic Bootstrapping: {A} Guide for Compiler
                 Hackers",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "6",
  pages =        "1699--1718",
  month =        nov,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/197336.html",
  abstract =     "If a compiler for language $L$ is implemented in $L$,
                 then it should be able to compile itself. But for
                 systems used interactively commands are compiled and
                 immediately executed, and these commands may invoke the
                 compiler; so there is the question of how ever to
                 cross-compile for another architecture. Also, where the
                 compiler writes binary files of static type information
                 that must then be read in by the bootstrapped
                 interactive compiler, how can one ever change the
                 format of digested type information in binary
                 files?\par

                 Here I attempt an axiomatic clarification of the
                 bootstrapping technique, using {\em Standard ML of New
                 Jersey\/} as a case study. This should be useful to
                 implementors of any self-applicable interactive
                 compiler with nontrivial object-file and runtime-system
                 compatibility problems.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "verification",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Compilers. {\bf D.2.4}: Software, SOFTWARE
                 ENGINEERING, Program Verification. {\bf D.2.6}:
                 Software, SOFTWARE ENGINEERING, Programming
                 Environments, Interactive. {\bf D.4.9}: Software,
                 OPERATING SYSTEMS, Systems Programs and Utilities,
                 Linkers. {\bf D.4.9}: Software, OPERATING SYSTEMS,
                 Systems Programs and Utilities, Loaders.",
}

@Article{Haines:1994:CFC,
  author =       "N. Haines and D. Kindred and J. G. Morrisett and S. M.
                 Nettles",
  title =        "Composing First-Class Transactions",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "6",
  pages =        "1719--1736",
  month =        nov,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/197346.html",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "languages; reliability",
  subject =      "{\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Control structures. {\bf
                 D.3.2}: Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Applicative languages. {\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
                 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 D.4.5}:
                 Software, OPERATING SYSTEMS, Reliability,
                 Fault-tolerance.",
}

@Article{Misra:1994:PSP,
  author =       "J. Misra",
  title =        "Powerlist: {A} Structure for Parallel Recursion",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "6",
  pages =        "1737--1767",
  month =        nov,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/197356.html",
  abstract =     "Many data-parallel algorithms---Fast Fourier
                 Transform, Batcher's sorting schemes, and the
                 prefix-sum---exhibit recursive structure. We propose a
                 data structure called {\em powerlist\/} that permits
                 succinct descriptions of such algorithms, highlighting
                 the roles of both parallelism and recursion. Simple
                 algebraic properties of this data structure can be
                 exploited to derive properties of these algorithms and
                 to establish equivalence of different algorithms that
                 solve the same problem.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms",
  subject =      "{\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, Recursion.
                 {\bf D.1.3}: Software, PROGRAMMING TECHNIQUES,
                 Concurrent Programming, Parallel programming.",
}

@Article{Carr:1994:IRM,
  author =       "S. Carr and K. Kennedy",
  title =        "Improving the Ratio of Memory Operations in
                 Floating-Point Operations in Loops",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "6",
  pages =        "1768--1810",
  month =        nov,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/197366.html",
  abstract =     "Over the past decade, microprocessor design strategies
                 have focused on increasing the computational power on a
                 single chip. Because computations often require more
                 data from cache per floating-point operation than a
                 machine can deliver and because operations are
                 pipelined, idle computational cycles are common when
                 scientific applications are executed. To overcome these
                 bottlenecks, programmers have learned to use a coding
                 style that ensures a better balance between memory
                 references and floating-point operations. In our view,
                 this is a step in the wrong direction because it makes
                 programs more machine-specific. A programmer should not
                 be required to write a new program version for each new
                 machine; instead, the task of specializing a program to
                 a target machine should be left to the
                 compiler.\par

                 But is our view practical? Can a sophisticated
                 optimizing compiler obviate the need for the myriad of
                 programming tricks that have found their way into
                 practice to improve the performance of the memory
                 hierarchy? In this paper we attempt to answer that
                 question. To do so, we develop and evaluate techniques
                 that automatically restructure program loops to achieve
                 high performance on specific target architectures.
                 These methods attempt to balance computation and memory
                 accesses and seek to eliminate or reduce pipeline
                 interlock. To do this, they estimate statically the
                 balance between memory operations and floating-point
                 operations for each loop in a particular program and
                 use these estimates to determine whether to apply
                 various loop transformations.\par

                 Experiments with our automatic techniques show that
                 integer-factor speedups are possible on kernels.
                 Additionally, the estimate of the balance between
                 memory operations and computation, and the application
                 of the estimate are very accurate---experiments reveal
                 little difference between the balance achieved by our
                 automatic system that is made possible by hand
                 optimization.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "design; languages; measurement; performance",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Optimization. {\bf D.3.4}: Software,
                 PROGRAMMING LANGUAGES, Processors, Compilers.",
}

@Article{Liskov:1994:BNS,
  author =       "B. H. Liskov and J. M. Wing",
  title =        "A Behavioral Notion of Subtyping",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "6",
  pages =        "1811--1841",
  month =        nov,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/197383.html",
  abstract =     "The use of hierarchy is an important component of
                 object-oriented design. Hierarchy allows the use of
                 type families, in which higher level supertypes capture
                 the behavior that all of their subtypes have in common.
                 For this methodology to be effective, it is necessary
                 to have a clear understanding of how subtypes and
                 supertypes are related. This paper takes the position
                 that the relationship should ensure that any property
                 proved about supertype objects also holds for its
                 subtype objects. It presents two ways of defining the
                 subtype relation, each of which meets this criterion,
                 and each of which is easy for programmers to use. The
                 subtype relation is based on the specifications of the
                 sub- and supertypes; the paper presents a way of
                 specifying types that makes it convenient to define the
                 subtype relation. The paper also discusses the
                 ramifications of this notion of subtyping on the design
                 of type families.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "languages; verification",
  subject =      "{\bf D.2.1}: Software, SOFTWARE ENGINEERING,
                 Requirements/Specifications, Methodologies. {\bf
                 D.1.5}: Software, PROGRAMMING TECHNIQUES,
                 Object-oriented Programming. {\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, Invariants. {\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. {\bf F.3.3}: Theory of
                 Computation, LOGICS AND MEANINGS OF PROGRAMS, Studies
                 of Program Constructs, Type structure.",
}

@Article{VonBank:1994:UMP,
  author =       "D. G. {Von Bank} and C. M. Shub and R. W. Sebesta",
  title =        "A Unified Model of Pointwise Equivalence of Procedural
                 Computations",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "6",
  pages =        "1842--1874",
  month =        nov,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Mon Oct 26 07:59:06 1998",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/197402.html",
  abstract =     "The execution of a program on a processor is viewed as
                 a representation of that program going through a
                 sequence of states. Each state change is manifested by
                 the execution of a single instruction. Models that
                 depend on this perspective are presented. The first is
                 a static model of a description of a procedural
                 computation. This model formalizes the description of
                 the information in an executable module. Following this
                 dynamic model of a procedural computation is given.
                 This second model describes how a computation
                 transitions from state to state and how the states of a
                 computation are represented. Next, the state of a
                 procedural computation is defined at certain
                 well-defined points in its progression. These points
                 represent potential points of correspondence to another
                 instance of the computation. Then, the equivalence of
                 these well-defined computation states is described.
                 This refinement eliminates the nonmatching potential
                 correspondences. The remaining points describe where
                 the two computations are in the same state. These are
                 precisely the points of equivalence of procedural
                 computations. This final model of pointwise equivalence
                 can be applied to the problem of migrating a
                 computation from one processor to another (possibly
                 architecturally dissimilar) processor.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "design; languages; theory",
  subject =      "{\bf F.3.1}: Theory of Computation, LOGICS AND
                 MEANINGS OF PROGRAMS, Specifying and Verifying and
                 Reasoning about Programs, Logics of programs. {\bf
                 D.3.1}: Software, PROGRAMMING LANGUAGES, Formal
                 Definitions and Theory. {\bf F.1.1}: Theory of
                 Computation, COMPUTATION BY ABSTRACT DEVICES, Models of
                 Computation, Relations among models. {\bf F.3.1}:
                 Theory of Computation, LOGICS AND MEANINGS OF PROGRAMS,
                 Specifying and Verifying and Reasoning about Programs,
                 Specification techniques.",
}

@Article{Berzins:1994:SMS,
  author =       "V. Berzins",
  title =        "Software Merge: Semantics of Combining Changes to
                 Programs",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "6",
  pages =        "1875--1903",
  month =        nov,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/197403.html",
  abstract =     "We present a language-independent semantic model of
                 the process of combining changes to programs. This
                 model extends the domains used in denotational
                 semantics (complete partial orders) to Boolean
                 algebras, and represents incompatible modifications as
                 well as compatible extensions. The model is used to
                 define the intended semantics of change-merging
                 operations on programs and to establish some general
                 properties of software merging. We determine conditions
                 under which changes to subprograms of a software system
                 can be merged independently and illustrate cases where
                 this is not possible.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "languages; theory; verification",
  subject =      "{\bf F.3.2}: Theory of Computation, LOGICS AND
                 MEANINGS OF PROGRAMS, Semantics of Programming
                 Languages, Denotational semantics. {\bf D.2.7}:
                 Software, SOFTWARE ENGINEERING, Distribution and
                 Maintenance, Enhancement. {\bf D.2.7}: Software,
                 SOFTWARE ENGINEERING, Distribution and Maintenance,
                 Version control. {\bf D.3.1}: Software, PROGRAMMING
                 LANGUAGES, Formal Definitions and Theory, Semantics.
                 {\bf I.2.2}: Computing Methodologies, ARTIFICIAL
                 INTELLIGENCE, Automatic Programming, Program
                 modification. {\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{Anonymous:1994:AI,
  author =       "Anonymous",
  title =        "1994 Author Index",
  journal =      j-TOPLAS,
  volume =       "16",
  number =       "6",
  pages =        "1904--1907",
  month =        oct,
  year =         "1994",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Sat Jan 06 14:21:36 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  acknowledgement = ack-pb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
}

@Article{Larcheveque:1995:OIP,
  author =       "J.-M. Larchev{\^{e}}que",
  title =        "Optimal Incremental Parsing",
  journal =      j-TOPLAS,
  volume =       "17",
  number =       "1",
  pages =        "1--15",
  month =        jan,
  year =         "1995",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/200996.html",
  abstract =     "This communication sets the problem of incremental
                 parsing in the context of a complete incremental
                 compiling system. It turns out that, according to the
                 incrementally paradigm of the attribute evaluator and
                 data-flow analyzer to be used, two definitions of
                 optimal incrementality in a parser are possible.
                 Algorithms for achieving both forms of optimality are
                 given, both of them based on ordinary LALR(1) parse
                 tables. Optimality and correctness proofs, which are
                 merely outlined in this communication, are made
                 intuitive thanks to the concept of a {\em well-formed
                 list of threaded trees}, a natural extension of the
                 concept of {\em threaded tree\/} found in earlier works
                 on incremental parsing.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "algorithms; performance; theory",
  subject =      "{\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Parsing. {\bf D.2.6}: Software, SOFTWARE
                 ENGINEERING, Programming Environments, Interactive.
                 {\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Compilers. {\bf E.1}: Data, DATA
                 STRUCTURES, Trees.",
}

@Article{Tsay:1995:DFP,
  author =       "Yih-Kuen Tsay and Rajive L. Bagrodia",
  title =        "Deducing Fairness Properties in {UNITY} Logic --- {A}
                 New Completeness Result",
  journal =      j-TOPLAS,
  volume =       "17",
  number =       "1",
  pages =        "16--27",
  month =        jan,
  year =         "1995",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/200997.html",
  abstract =     "We explore the use of UNITY logic in specifying and
                 verifying fairness properties of UNITY and UNITY-like
                 programs whose semantics can be modeled by weakly fair
                 transition systems. For such programs, strong fairness
                 properties in the form of ``if $p$ holds infinitely
                 often then $q$ also holds infinitely often
                 $\Box\Diamond p\mapsto\Box\Diamond q$, can be expressed
                 as conditional UNITY properties of the form of
                 ``Hypothesis: {\em true\/} $\mapsto p$ Conclusion: {\em
                 true\/} $\mapsto q$''. We show that UNITY logic is
                 relatively complete for proving such properties; in the
                 process, a simple inference rule is derived.
                 Specification and verification of weak fairness
                 properties are also discussed.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Programming Languages and
                 Systems",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J783",
  keywords =     "verification",
  subject =      "{\bf F.3.1}: Theory of Computation, LOGICS AND
                 MEANINGS OF PROGRAMS, Specifying and Verifying and
                 Reasoning about Programs, Logics of programs. {\bf
                 D.2.4}: Software, SOFTWARE ENGINEERING, Program
                 Verification, Correctness proofs.",
}

@Article{Codish:1995:IAI,
  author =       "Michael Codish and Anne Mulkers and Maurice Bruynooghe
                 and Maria Garcia de la Banda and Manuel Hermenegildo",
  title =        "Improving Abstract Interpretations by Combining
                 Domains",
  journal =      j-TOPLAS,
  volume =       "17",
  number =       "1",
  pages =        "28--44",
  month =        jan,
  year =         "1995",
  CODEN =        "ATPSDT",
  ISSN =         "0164-0925 (print), 1558-4593 (electronic)",
  ISSN-L =       "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  bibsource =    "http://www.math.utah.edu/pub/tex/bib/toplas.bib",
  URL =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/200998.html",
  abstract =     "This article considers static analysis based on
                 abstract interpretation of logic programs over combined
                 domains. It is known that analyses over combin