Valid HTML 4.0! Valid CSS!
%%% -*-BibTeX-*-
%%% ====================================================================
%%%  BibTeX-file{
%%%     author          = "Nelson H. F. Beebe",
%%%     version         = "1.07",
%%%     date            = "03 February 2024",
%%%     time            = "10:42:10 MST",
%%%     filename        = "hansen-per-brinch.bib",
%%%     address         = "University of Utah
%%%                        Department of Mathematics, 110 LCB
%%%                        155 S 1400 E RM 233
%%%                        Salt Lake City, UT 84112-0090
%%%                        USA",
%%%     telephone       = "+1 801 581 5254",
%%%     FAX             = "+1 801 581 4148",
%%%     URL             = "https://www.math.utah.edu/~beebe",
%%%     checksum        = "20204 5388 22772 243046",
%%%     email           = "beebe at math.utah.edu, beebe at acm.org,
%%%                        beebe at computer.org (Internet)",
%%%     codetable       = "ISO/ASCII",
%%%     keywords        = "Ada (programming language); bibliography;
%%%                        BibTeX; COBOL; Computing Surface; Concurrent
%%%                        Pascal (programming language); Edison
%%%                        (programming language); Encore Multimax; High
%%%                        Performance Fortran (programming language);
%%%                        Java (programming language); Joyce
%%%                        (programming language); Message-Passing
%%%                        Interface (MPI); multiprogramming; Pascal
%%%                        (programming language); parallel programming;
%%%                        Per Brinch Hansen; RC 4000; RegneCentralen;
%%%                        Siemens 3003; Solo Operating System; Super
%%%                        Pascal (programming language); Trio Operating
%%%                        System",
%%%     license         = "public domain",
%%%     supported       = "yes",
%%%     docstring       = "This is a bibliography of publications of the
%%%                        influential Danish computer scientist Per
%%%                        Brinch Hansen (13 November 1938--31 July
%%%                        2007).  Part 2 of this file contains entries
%%%                        with titles that refer to him or his works.
%%%
%%%                        There are Web sites about him at
%%%
%%%                            http://brinch-hansen.net/
%%%                            http://brinch-hansen.net/papers/
%%%                            https://en.wikipedia.org/wiki/Per_Brinch_Hansen
%%%                            https://peoplepill.com/people/per-brinch-hansen
%%%
%%%                        All of the technical reports recorded at
%%%                        Syracuse University at the Web site
%%%
%%%                            https://surface.syr.edu/eecs_techreports
%%%
%%%                        that are authored by Per Brinch Hansen are
%%%                        recorded here.
%%%
%%%                        Most of the documents at the papers site have
%%%                        been retypeset in a consistent format
%%%                        suitable for chapters of a book, and do not
%%%                        resemble their journal appearance.  That site
%%%                        lists 42 papers, and says that they are a
%%%                        selection from about 100 by Per Brinch
%%%                        Hansen.  All of those URLs are recorded in
%%%                        entries in this file, but as of version 1.00,
%%%                        only 81 publications authored or edited by
%%%                        Per Brinch Hansen have been identified.
%%%                        Thus, this bibliography cannot yet claim
%%%                        complete coverage of his works.
%%%
%%%                        The papers Web site mentions an autobiography
%%%                        titled ``A Programmer's Story'', but searches
%%%                        in several large Internet library catalogs
%%%                        have failed to find it.  It appears to be
%%%                        found only in the online Web site cited in
%%%                        entry BrinchHansen:2004:PS.
%%%
%%%                        At version 1.07, the year coverage looked
%%%                        like this:
%%%
%%%                             1966 (   2)    1980 (   1)    1994 (   5)
%%%                             1967 (   2)    1981 (  21)    1995 (   7)
%%%                             1968 (   0)    1982 (   1)    1996 (  28)
%%%                             1969 (   3)    1983 (   1)    1997 (   2)
%%%                             1970 (   1)    1984 (   1)    1998 (   6)
%%%                             1971 (   3)    1985 (   2)    1999 (  15)
%%%                             1972 (   5)    1986 (   0)    2000 (   2)
%%%                             1973 (   4)    1987 (   2)    2001 (  26)
%%%                             1974 (   1)    1988 (   2)    2002 (  23)
%%%                             1975 (   5)    1989 (   5)    2003 (   1)
%%%                             1976 (   5)    1990 (   5)    2004 (   1)
%%%                             1977 (   4)    1991 (   4)    2005 (   0)
%%%                             1978 (   7)    1992 (   7)    2006 (   0)
%%%                             1979 (   4)    1993 (   4)    2007 (   1)
%%%
%%%                             Article:         74
%%%                             Book:            11
%%%                             InCollection:   103
%%%                             InProceedings:    8
%%%                             Manual:           2
%%%                             Misc:             1
%%%                             Proceedings:      1
%%%                             TechReport:      19
%%%
%%%                             Total entries:  219
%%%
%%%                        Bibliographer's note: Patronymic names like
%%%                        Andersen, Hansen, and Jensen are common in
%%%                        Denmark, so many people with such names have
%%%                        a distinctive middle name, such as in Per
%%%                        Brinch Hansen.  The last two names are not a
%%%                        compound family name, but are often used as
%%%                        an appelation by friends and collegues.  Per
%%%                        Brinch Hansen himself abbreviated his name to
%%%                        P. Brinch Hansen in reference lists.  Thus,
%%%                        citation labels in this bibliography have
%%%                        been altered from Hansen:YEAR:XXX to
%%%                        BrinchHansen:YEAR:XXX, and the author name is
%%%                        recorded with braces, just like a compound
%%%                        family name: {Brinch Hansen}.
%%%
%%%                        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{
    "\ifx \undefined \booktitle      \def \booktitle#1{{{\em #1}}} \fi" #
    "\ifx \undefined \cdprime        \def \cdprime {$''$} \fi" #
    "\ifx \undefined \cprime         \def \cprime{$'$} \fi" #
    "\ifx \undefined \cyr            \let \cyr = \rm \fi" #
    "\ifx \undefined \mathbb         \def \mathbb #1{{\bf #1}}\fi" #
    "\ifx \undefined \mathbf         \def \mathbf #1{{\bf #1}}\fi" #
    "\ifx \undefined \mathcal        \def \mathcal #1{{\cal #1}}\fi" #
    "\ifx \undefined \mathit         \def \mathit #1{\hbox{\it #1\/}} \fi" #
    "\ifx \undefined \mathrm         \def \mathrm #1{{\rm #1}}\fi"
}

%%% ====================================================================
%%% Journal abbreviations:
@String{j-ACTA-INFO             = "Acta Informatica"}

@String{j-BIT                   = "BIT"}

@String{j-CACM                  = "Communications of the Association for
                                  Computing Machinery"}

@String{j-COMP-ARCH-NEWS        = "ACM SIGARCH Computer Architecture News"}

@String{j-COMP-J                = "The Computer Journal"}

@String{j-COMP-SURV             = "ACM Computing Surveys"}

@String{j-COMPUTER              = "Computer"}

@String{j-CPE                   = "Concurrency: Prac\-tice and Experience"}

@String{j-IEEE-ANN-HIST-COMPUT  = "IEEE Annals of the History of Computing"}

@String{j-IEEE-COMPUT-SCI-ENG   = "IEEE Computational Science \&
                                  Engineering"}

@String{j-IEEE-SOFTWARE         = "IEEE Software"}

@String{j-IEEE-TRANS-SOFTW-ENG  = "IEEE Transactions on Software Engineering"}

@String{j-INFO-PROC-LETT        = "Information Processing Letters"}

@String{j-NORDISK-TIDSKR-INFORM-BEHAND = "Nordisk tidskrift for
                                  informationsbehandling"}

@String{j-OPER-SYS-REV          = "Operating Systems Review"}

@String{j-SIGNUM                = "ACM SIGNUM Newsletter"}

@String{j-SIGPLAN               = "ACM SIG{\-}PLAN Notices"}

@String{j-SIGSOFT               = "ACM SIGSOFT Software Engineering Notes"}

@String{j-SPE                   = "Soft\-ware\emdash Prac\-tice and Experience"}

@String{j-STRUCT-PROGRAM        = "Structured Programming"}

@String{j-TOMS                  = "ACM Transactions on Mathematical Software"}

%%% ====================================================================
%%% Publisher abbreviations:
@String{pub-ACADEMIC            = "Academic Press"}
@String{pub-ACADEMIC:adr        = "New York, USA"}

@String{pub-ACM                 = "ACM Press"}
@String{pub-ACM:adr             = "New York, NY 10036, USA"}

@String{pub-AW                  = "Ad{\-d}i{\-s}on-Wes{\-l}ey"}
@String{pub-AW:adr              = "Reading, MA, USA"}

@String{pub-IEEE                = "IEEE Computer Society Press"}
@String{pub-IEEE:adr            = "1109 Spring Street, Suite 300, Silver
                                    Spring, MD 20910, USA"}

@String{pub-MIT                 = "MIT Press"}
@String{pub-MIT:adr             = "Cambridge, MA, USA"}

@String{pub-NORTH-HOLLAND       = "North-Holland Publishing Co."}
@String{pub-NORTH-HOLLAND:adr   = "Amsterdam, The Netherlands"}

@String{pub-PH                  = "Pren{\-}tice-Hall"}
@String{pub-PH:adr              = "Upper Saddle River, NJ 07458, USA"}

@String{pub-SV                  = "Spring{\-}er-Ver{\-}lag"}
@String{pub-SV:adr              = "Berlin, Germany~/ Heidelberg,
                                  Germany~/ London, UK~/ etc."}

%%% ====================================================================
%%% Series abbreviations:
@String{ser-LNCS                = "Lecture Notes in Computer Science"}

%%% ====================================================================
%%%             Part 1: Publications of Per Brinch Hansen
%%%
%%% Bibliography entries, sorted in approximate publication order with
%%% ``bibsort --byyear'':
@Article{BrinchHansen:1966:CCS,
  author =       "Per {Brinch Hansen} and Roger House",
  title =        "The {COBOL} Compiler for the {Siemens 3003}",
  journal =      j-NORDISK-TIDSKR-INFORM-BEHAND,
  volume =       "6",
  number =       "1",
  pages =        "1--23",
  month =        mar,
  year =         "1966",
  CODEN =        "BITTEL, NBITAB",
  DOI =          "https://doi.org/10.1007/BF01939545",
  ISSN =         "0006-3835 (print), 1572-9125 (electronic)",
  ISSN-L =       "0006-3835",
  bibdate =      "Wed Jan 4 18:52:09 MST 2006",
  bibsource =    "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0006-3835&volume=6&issue=1;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/bit.bib",
  URL =          "http://brinch-hansen.net/papers/1966a.pdf;
                 http://www.springerlink.com/openurl.asp?genre=article&issn=0006-3835&volume=6&issue=1&spage=1",
  acknowledgement = ack-nhfb,
  journal-URL =  "http://link.springer.com/journal/10543",
}

@TechReport{BrinchHansen:1966:DCR,
  author =       "Per {Brinch Hansen} and Peter Kraft",
  title =        "Design Considerations for the {RC 4000} Computer",
  type =         "Report",
  institution =  "A/S Regnecentralen",
  address =      "Copenhagen, Denmark",
  pages =        "46",
  month =        mar,
  year =         "1966",
  bibdate =      "Thu Jul 21 11:16:45 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "http://brinch-hansen.net/papers/1966b.pdf",
  abstract =     "The RC 4000 computer which will be developed by
                 Regnecentralen in 1966 is a low-cost computer oriented
                 towards process control applications. The present
                 report deals with the choice of data and instruction
                 formats, storage addressing, arithmetic, input-output
                 control, and special multiprogramming features.",
  acknowledgement = ack-nhfb,
}

@Article{BrinchHansen:1967:LSR,
  author =       "Per {Brinch Hansen}",
  title =        "The logical structure of the {RC 4000} computer",
  journal =      j-BIT,
  volume =       "7",
  number =       "3",
  pages =        "191--199",
  month =        sep,
  year =         "1967",
  CODEN =        "BITTEL, NBITAB",
  DOI =          "https://doi.org/10.1007/BF01939260",
  ISSN =         "0006-3835 (print), 1572-9125 (electronic)",
  ISSN-L =       "0006-3835",
  bibdate =      "Wed Jan 4 18:52:10 MST 2006",
  bibsource =    "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0006-3835&volume=7&issue=3;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/bit.bib",
  URL =          "http://brinch-hansen.net/papers/1967a.pdf;
                 http://www.springerlink.com/openurl.asp?genre=article&issn=0006-3835&volume=7&issue=3&spage=191",
  acknowledgement = ack-nhfb,
  fjournal =     "BIT (Nordisk tidskrift for informationsbehandling)",
  journal-URL =  "http://link.springer.com/journal/10543",
  xxtitle =      "The Logical Structure of the {RC 4000}",
}

@Article{BrinchHansen:1967:RRT,
  author =       "Per {Brinch Hansen}",
  title =        "The {RC 4000} Real-Time Control System at {Pulawy}",
  journal =      j-BIT,
  volume =       "7",
  number =       "4",
  pages =        "279--288",
  month =        dec,
  year =         "1967",
  CODEN =        "BITTEL, NBITAB",
  DOI =          "https://doi.org/10.1007/BF01939322",
  ISSN =         "0006-3835 (print), 1572-9125 (electronic)",
  ISSN-L =       "0006-3835",
  bibdate =      "Wed Jan 4 18:52:10 MST 2006",
  bibsource =    "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0006-3835&volume=7&issue=4;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/bit.bib",
  URL =          "http://brinch-hansen.net/papers/1967b.pdf;
                 http://www.springerlink.com/openurl.asp?genre=article&issn=0006-3835&volume=7&issue=4&spage=279",
  abstract =     "This paper describes a real-time control system
                 implemented on the RC 4000 computer with an internal
                 store of 4096 words. The system permits a number of
                 independent programs to be executed periodically on a
                 time-sharing basis. The first version of the system
                 performs supervisory control of the ammonium nitrate
                 plant Pulawy II in Poland. After a description of the
                 Pulawy system, the choice of a time-sharing scheme and
                 the handling of shared facilities are discussed. This
                 is followed by an evaluation of the size and
                 performance of the system.",
  acknowledgement = ack-nhfb,
  fjournal =     "BIT (Nordisk tidskrift for informationsbehandling)",
  journal-URL =  "http://link.springer.com/journal/10543",
}

@Manual{BrinchHansen:1969:RCR,
  author =       "Per {Brinch Hansen}",
  title =        "{RC-4000 Computer} Reference Manual",
  number =       "RCSL No: 55-D1",
  organization = "A/S Regnecentralen",
  address =      "Copenhagen, Denmark",
  edition =      "Second",
  pages =        "85",
  month =        jun,
  year =         "1969",
  bibdate =      "Sat Mar 09 14:14:25 2019",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/fparith.bib",
  note =         "RCSL No: 55-D1.",
  URL =          "http://bitsavers.org/pdf/regnecentralen/RC_4000_Reference_Manual_Jun69.pdf;
                 http://brinch-hansen.net/papers/1969b.pdf;
                 https://www.math.utah.edu/~beebe/RC-4000",
  acknowledgement = ack-nhfb,
  remark =       "The RC-4000 has a 24-bit word, and supplies 12-bit and
                 24-bit integer arithmetic, and 48-bit floating-point
                 arithmetic. The latter has a signed 36-bit normalized
                 two's-complement binary fraction stored at the left of
                 a double word, followed by a 12-bit two's-complement
                 signed exponent. The representable range is therefore
                 [-0x1p-2049, +0x1p2047), or about [-1.547e-617,
                 1.615e+161]. The sign, and zero value, can be
                 determined by examining only the first word. Its
                 floating-point arithmetic can exactly represent 35-bit
                 integer arithmetic.",
  tableofcontents = "1. RC 4000 Specifications / 9 \\
                 2. Design Considerations / 11 \\
                 2.1. Word Length / 11 \\
                 2.2. Register Structure / 11 \\
                 2.3. Address Modification / 11 \\
                 2.4. Monitor Control / 12 \\
                 2.5. Input/Output Control / 13 \\
                 3. Data and Instruction Formats / 15 \\
                 3.1. Data Formats / 15 \\
                 3.2. Storage Addressing / 15 \\
                 3.3. Working Registers / 16 \\
                 3.4. Instruction Format / 17 \\
                 3.5. Address Modify Instruction / 18 \\
                 4. Integer Arithmetic / 19 \\
                 4.1. Number Representation / 19 \\
                 4.2. Byte Arithmetic / 19 \\
                 4.3. Multiplication and Division / 20 \\
                 4.4. Overflow and Carry Indication / 21 \\
                 5. Floating-Point Arithmetic / 22 \\
                 5.1. Number Representation / 22 \\
                 5.2. Arithmetic Operations / 23 \\
                 5.3. Normalization and Rounding / 23 \\
                 5.4. Precision Modes / 24 \\
                 5.5. Underflow, Overflow, and Non-Normalized Operands /
                 25 \\
                 5.6. Number Conversion / 26 \\
                 5.7. Exact Arithmetic with Floating-Point Instructions
                 / 26 \\
                 6. Protection System / 28 \\
                 6.1. Storage Protection / 28 \\
                 6.2. Privileged Instructions / 29 \\
                 6.3. Summary of Protection System / 29 \\
                 6.4. An Example of Protected Areas / 30 \\
                 7. Interruption System / 32 \\
                 7.1. Interruption Logic / 32 \\
                 7.2. Interruption Conditions / 33 \\
                 8. Low-Speed Data Channel / 35 \\
                 8.1. Main Characteristics / 35 \\
                 8.2. Input/Output Instruction / 35 \\
                 8.3. Channel Operation / 36 \\
                 8.4. Disconnected and Busy Indication / 37 \\
                 8.5. Device Commands / 37 \\
                 8.6. Read / 37 \\
                 8.7. Sense / 37 \\
                 8.8. Write / 38 \\
                 8.9. Control / 39 \\
                 8.10. Summary of Low-Speed Channel / 39 \\
                 9. High-Speed Data Channel / 41 \\
                 10. Standard Peripheral Devices / 43 \\
                 10.1. Console Devices / 43 \\
                 10.2. Interval Timer / 43 \\
                 11. Operator Control Panel / 44 \\
                 11.1. Indicators and Control Keys / 44 \\
                 11.2. Machine Errors / 44 \\
                 11.3. Reset Control / 44 \\
                 11.4. Start Control / 45 \\
                 11.5. Autoload Control / 45 \\
                 11.6. Local/Remote Indication / 46 \\
                 12. Technical Control Panel / 47 \\
                 12.1. Operating Modes / 47 \\
                 12.2. Instruction Step Keys / 47 \\
                 12.3. Register Setting and Display / 47 \\
                 12.4. Microinstruction Selection and Display / 48 \\
                 12.5. Parity Control / 48 \\
                 13. Instruction Set / 49 \\
                 14. Definition of Instructions / 51 \\
                 14.1. Algol Notation / 51 \\
                 14.2. Register Structure / 51 \\
                 14.3. Elementary Operations / 54 \\
                 14.4. Control Panel Functions / 55 \\
                 14.5. Instruction Fetch Cycle / 55 \\
                 14.6. Protection Procedures / 56 \\
                 14.7. Arithmetic Procedures / 57 \\
                 14.8. Instruction Execution / 58 \\
                 Appendix / 79 \\
                 A.1. Reserved Storage Locations / 79 \\
                 A.2. Numeric Instruction Codes / 80 \\
                 A.3. Instruction Execution Times / 81 \\
                 Index / 83",
}

@InCollection{BrinchHansen:1969:RSMa,
  author =       "Per {Brinch Hansen}",
  booktitle =    "{RC 4000} Software: Multiprogramming System, {Part I}:
                 General Description",
  title =        "{RC 4000} Software: Multiprogramming System",
  publisher =    "Regnecentralen",
  address =      "Copenhagen, Denmark",
  pages =        "13--52",
  year =         "1969",
  bibdate =      "Thu Jul 21 11:42:26 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "http://brinch-hansen.net/papers/1969a.pdf",
  acknowledgement = ack-nhfb,
}

@Manual{BrinchHansen:1969:RSMb,
  author =       "Per {Brinch Hansen}",
  title =        "{RC 4000} Software Multiprogramming System
                 (complete)",
  organization = "A/S Regnecentralen",
  address =      "Copenhagen, Denmark",
  edition =      "Second",
  pages =        "159",
  month =        apr,
  year =         "1969",
  bibdate =      "Thu Jul 21 11:55:32 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  note =         "RCSL No: 55-D17.",
  URL =          "http://brinch-hansen.net/papers/1969b.pdf;
                 http://brinch-hansen.net/papers/1969c.pdf",
  acknowledgement = ack-nhfb,
}

@Article{BrinchHansen:1970:NMS,
  author =       "Per {Brinch Hansen}",
  title =        "The Nucleus of a Multiprogramming System",
  journal =      j-CACM,
  volume =       "13",
  number =       "4",
  pages =        "238--241, 250",
  month =        apr,
  year =         "1970",
  CODEN =        "CACMA2",
  DOI =          "https://doi.org/10.1145/362258.362278",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  bibdate =      "Tue Mar 25 13:26:09 MST 1997",
  bibsource =    "Compendex database;
                 ftp://ftp.ira.uka.de/pub/bibliography/Misc/os.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/cacm1970.bib",
  URL =          "http://brinch-hansen.net/papers/1970a.pdf",
  abstract =     "The philosophy and structure is described of a
                 multiprogramming system that can be extended with a
                 hierarchy of operating systems to suit diverse
                 requirements of program scheduling and resource
                 allocation. The system nucleus simulates an environment
                 in which program execution and input\slash output are
                 handled uniformly as parallel, cooperating processes. A
                 fundamental set of primitives allows the dynamic
                 creation and control of a hierarchy of processes as
                 well as the communication among them.",
  acknowledgement = ack-nhfb,
  classcodes =   "C6150J (Operating systems)",
  corpsource =   "A/S Regnecentralen, Copenhagen, Denmark",
  fjournal =     "Communications of the ACM",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J79",
  journalabr =   "Commun ACM",
  keywords =     "computers; computers, time sharing; multiprogramming;
                 operating systems",
}

@InProceedings{BrinchHansen:1971:ARR,
  author =       "Per {Brinch Hansen}",
  title =        "An Analysis of Response Ratio Scheduling",
  crossref =     "Freiman:1971:IPP",
  pages =        "479--484",
  year =         "1971",
  bibdate =      "Tue Jul 26 10:49:47 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://dblp.org",
  acknowledgement = ack-nhfb,
  biburl =       "https://dblp.org/rec/conf/ifip/Hansen71.bib",
}

@InProceedings{BrinchHansen:1971:STS,
  author =       "Per {Brinch Hansen}",
  booktitle =    "Proceedings of the third symposium on Operating
                 systems principles --- {SOSP '71}",
  title =        "Short-term scheduling in multiprogramming systems",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  year =         "1971",
  DOI =          "https://doi.org/10.1145/800212.806506",
  bibdate =      "Thu Jul 21 08:23:24 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@Article{BrinchHansen:1972:CTS,
  author =       "Per {Brinch Hansen}",
  title =        "A Comparison of Two Synchronizing Concepts",
  journal =      j-ACTA-INFO,
  volume =       "1",
  number =       "3",
  pages =        "190--199",
  month =        feb,
  year =         "1972",
  CODEN =        "AINFA2",
  ISSN =         "0001-5903 (print), 1432-0525 (electronic)",
  ISSN-L =       "0001-5903",
  bibdate =      "Wed Dec 10 14:35:02 1986",
  bibsource =    "ftp://ftp.ira.uka.de/pub/bibliography/Compiler/bevan.bib;
                 ftp://ftp.ira.uka.de/pub/bibliography/Database/Wiederhold/Pre.1975.bib;
                 ftp://ftp.ira.uka.de/pub/bibliography/Misc/HBP/ACTAI.bib;
                 ftp://ftp.ira.uka.de/pub/bibliography/Parallel/Multi.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/actainfo.bib",
  note =         "See comments \cite{Courtois:1972:CCT} and reply
                 \cite{BrinchHansen:1973:RCC}.",
  annote =       "Also, reply to Acta Inf., Vol.2 No.2, pp.189--190,
                 Aug.1973",
  fjournal =     "Acta Informatica",
  journal-URL =  "http://link.springer.com/journal/236",
  owner =        "seufert",
}

@InProceedings{BrinchHansen:1972:OCO,
  author =       "Per {Brinch Hansen}",
  editor =       "C. A. R. Hoare and R. H. Perrott",
  booktitle =    "{Operating Systems Techniques, Proceedings of a
                 Seminar at Queen's University, Belfast, Northern
                 Ireland, August--September 1971}",
  title =        "An outline of a course on operating system
                 principles",
  publisher =    pub-ACADEMIC,
  address =      pub-ACADEMIC:adr,
  pages =        "29--36",
  year =         "1972",
  bibdate =      "Thu Jul 21 11:24:58 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "http://brinch-hansen.net/papers/1971a.pdf",
  acknowledgement = ack-nhfb,
}

@Article{BrinchHansen:1972:SM,
  author =       "Per {Brinch Hansen}",
  title =        "Structured Multiprogramming",
  journal =      j-CACM,
  volume =       "15",
  number =       "7",
  pages =        "574--578",
  month =        jul,
  year =         "1972",
  CODEN =        "CACMA2",
  DOI =          "https://doi.org/10.1145/361454.361473",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  bibdate =      "Mon Jan 22 06:48:15 MST 2001",
  bibsource =    "ftp://ftp.ira.uka.de/pub/bibliography/Object/Nierstrasz.bib;
                 ftp://ftp.ira.uka.de/pub/bibliography/Os/os.bib;
                 http://dblp.uni-trier.de/db/journals/cacm/cacm15.html#Hansen72;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/cacm1970.bib",
  URL =          "http://brinch-hansen.net/papers/1972a.pdf",
  acknowledgement = ack-nhfb,
  annote =       "This paper presents a proposal for structured
                 representation of multiprogramming in a high level
                 language. Shared variables are introduced, and their
                 role in `critical regions (denoted by the structured
                 statement region var do Statement)' is discussed. A
                 synchronization primitive `await Boolean' delays a
                 process until the components of a shared variable
                 satisfy the boolean expression. For explicit control of
                 the scheduling of resources, an event queue is
                 associated with a shared variable, and two procedures
                 await (event) (leave a critical region associated with
                 the shared variable and join the event queue) and cause
                 (event) (enable all processes in the event queue to
                 reenter their critical regions) are provided, which can
                 control process scheduling to any degree desired.",
  classcodes =   "C6150J (Operating systems)",
  corpsource =   "California Inst. Technol., Pasadena, CA, USA",
  fjournal =     "Communications of the ACM",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J79",
  keywords =     "concurrency; critical regions; event variables; high
                 level; language; multiprogramming; operating systems;
                 structured multiprogramming",
  oldlabel =     "Hansen72",
  treatment =    "P Practical",
  XMLdata =      "ftp://ftp.informatik.uni-trier.de/pub/users/Ley/bib/records.tar.gz#journals/cacm/Hansen72",
}

@Article{BrinchHansen:1972:STS,
  author =       "Per {Brinch Hansen}",
  title =        "Short-term scheduling in multiprogramming systems",
  journal =      j-OPER-SYS-REV,
  volume =       "6",
  number =       "1--2",
  pages =        "101--105",
  month =        jun,
  year =         "1972",
  CODEN =        "OSRED8",
  DOI =          "https://doi.org/10.1145/850614.850633",
  ISSN =         "0163-5980 (print), 1943-586X (electronic)",
  ISSN-L =       "0163-5980",
  bibdate =      "Sat Aug 26 08:55:33 MDT 2006",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/opersysrev.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGOPS Operating Systems Review",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J597",
}

@Article{BrinchHansen:1973:CPC,
  author =       "Per {Brinch Hansen}",
  title =        "Concurrent Programming Concepts",
  journal =      j-COMP-SURV,
  volume =       "5",
  number =       "4",
  pages =        "223--245",
  month =        dec,
  year =         "1973",
  CODEN =        "CMSVAN",
  DOI =          "https://doi.org/10.1145/356622.356624",
  ISSN =         "0010-4892",
  ISSN-L =       "0360-0300",
  bibdate =      "Thu Jun 19 09:17:30 MDT 2008",
  bibsource =    "ftp://ftp.ira.uka.de/pub/bibliography/Database/Wiederhold.bib;
                 http://www.acm.org/pubs/contents/journals/surveys/;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/compsurv.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Computing Surveys",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J204",
}

@Article{BrinchHansen:1973:RCC,
  author =       "Per {Brinch Hansen}",
  title =        "A Reply to Comments on {{\em A Comparison of Two
                 Synchronizing Concepts}}",
  journal =      j-ACTA-INFO,
  volume =       "2",
  number =       "??",
  pages =        "189--190",
  month =        "????",
  year =         "1973",
  CODEN =        "AINFA2",
  ISSN =         "0001-5903 (print), 1432-0525 (electronic)",
  ISSN-L =       "0001-5903",
  bibsource =    "ftp://ftp.ira.uka.de/pub/bibliography/Misc/HBP/ACTAI.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/actainfo.bib",
  note =         "See \cite{BrinchHansen:1972:CTS,Courtois:1972:CCT}.",
  fjournal =     "Acta Informatica",
  journal-URL =  "http://link.springer.com/journal/236",
}

@InCollection{BrinchHansen:1973:SC,
  author =       "Per {Brinch Hansen}",
  booktitle =    "Operating System Principles",
  title =        "Shared Classes",
  publisher =    pub-PH,
  address =      pub-PH:adr,
  pages =        "226--232",
  year =         "1973",
  bibdate =      "Thu Jul 21 11:35:49 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "http://brinch-hansen.net/papers/1973b.pdf",
  acknowledgement = ack-nhfb,
}

@Article{BrinchHansen:1973:TMS,
  author =       "Per {Brinch Hansen}",
  title =        "Testing a Multiprogramming System",
  journal =      j-SPE,
  volume =       "3",
  number =       "2",
  pages =        "145--150",
  month =        apr # "\slash " # jun,
  year =         "1973",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.4380030206",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib",
  URL =          "http://brinch-hansen.net/papers/1973c.pdf",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "4 Oct 2011",
}

@InProceedings{BrinchHansen:1974:PMO,
  author =       "Per {Brinch Hansen}",
  editor =       "Jack L. Rosenfeld",
  booktitle =    "Information Processing, Proceedings of the {6th IFIP
                 Congress 1974, Stockholm, Sweden, August 5--10, 1974}",
  title =        "A Programming Methodology for Operating System
                 Design",
  publisher =    pub-NORTH-HOLLAND,
  address =      pub-NORTH-HOLLAND:adr,
  pages =        "394--397",
  year =         "1974",
  bibdate =      "Tue Jul 26 10:57:22 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://dblp.org",
  acknowledgement = ack-nhfb,
  biburl =       "https://dblp.org/rec/conf/ifip/Hansen74.bib",
}

@Article{BrinchHansen:1975:PCP,
  author =       "Per {Brinch Hansen}",
  title =        "The purpose of {Concurrent PASCAL}",
  journal =      j-SIGPLAN,
  volume =       "10",
  number =       "6",
  pages =        "305--309",
  month =        jun,
  year =         "1975",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/800027.808452",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sat Apr 25 11:46:37 MDT 1998",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1970.bib",
  acknowledgement = ack-nhfb,
  classification = "C6110 (Systems analysis and programming); C6140D
                 (High level languages); C6150J (Operating systems)",
  conflocation = "Los Angeles, CA, USA; 21-23 April 1975",
  conftitle =    "International Conference on Reliable Software",
  corpsource =   "Information Sci., California Inst. of Technol.,
                 Pasadena, CA, USA",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "compiler; computer operating systems; Concurrent
                 PASCAL; concurrent programming; hierarchical design;
                 hierarchical operating systems; monitor concept;
                 operating systems (computers); problem oriented
                 languages; programming; programming language;
                 scheduling; shared data structures; structured
                 multiprogramming; structured programming",
  sponsororg =   "IEEE; ACM; et al",
  treatment =    "A Application; P Practical",
}

@Article{BrinchHansen:1975:PLCa,
  author =       "Per {Brinch Hansen}",
  title =        "The programming language {Concurrent Pascal}",
  journal =      j-IEEE-TRANS-SOFTW-ENG,
  volume =       "SE-1",
  number =       "2",
  pages =        "199--207",
  month =        jun,
  year =         "1975",
  CODEN =        "IESEDJ",
  DOI =          "https://doi.org/10.1109/TSE.1975.6312840",
  ISSN =         "0098-5589 (print), 1939-3520 (electronic)",
  ISSN-L =       "0098-5589",
  bibdate =      "Thu Feb 1 08:07:37 MST 2018",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/w/wirth-niklaus.bib;
                 https://www.math.utah.edu/pub/tex/bib/ieeetranssoftweng1970.bib",
  URL =          "http://brinch-hansen.net/papers/1975a.pdf;
                 http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=6312840",
  abstract =     "The paper describes a new programming language for
                 structured programming of computer operating systems.
                 It extends the sequential programming language Pascal
                 with concurrent programming tools called processes and
                 monitors. Section I explains these concepts informally
                 by means of pictures illustrating a hierarchical design
                 of a simple spooling system. Section II uses the same
                 example to introduce the language notation. The main
                 contribution of Concurrent Pascal is to extend the
                 monitor concept with an explicit hierarchy of access
                 rights to shared data structures that can be stated in
                 the program text and checked by a compiler",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Software Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=32",
}

@InProceedings{BrinchHansen:1975:PLCb,
  author =       "Per {Brinch Hansen}",
  editor =       "Friedrich L. Bauer and Klaus Samelson",
  booktitle =    "Language Hierarchies and Interfaces, {International
                 Summer School, Marktoberdorf, Germany, July 23--August
                 2, 1975}",
  title =        "The programming language {Concurrent Pascal}",
  volume =       "46",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "82--110",
  year =         "1975",
  DOI =          "https://doi.org/10.1007/3-540-07994-7_50",
  bibdate =      "Tue Jul 26 10:54:39 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/w/wirth-niklaus.bib;
                 https://dblp.org",
  series =       ser-LNCS,
  acknowledgement = ack-nhfb,
  biburl =       "https://dblp.org/rec/conf/ac/Hansen75.bib",
}

@Article{BrinchHansen:1975:UTC,
  author =       "Per {Brinch Hansen}",
  title =        "Universal Types in {Concurrent Pascal}",
  journal =      j-INFO-PROC-LETT,
  volume =       "3",
  number =       "6",
  pages =        "165--166",
  day =          "??",
  month =        jul,
  year =         "1975",
  CODEN =        "IFPLAT",
  ISSN =         "0020-0190 (print), 1872-6119 (electronic)",
  ISSN-L =       "0020-0190",
  bibdate =      "Tue Nov 17 10:49:43 MST 1998",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/w/wirth-niklaus.bib;
                 https://www.math.utah.edu/pub/tex/bib/infoproc1970.bib",
  acknowledgement = ack-nhfb,
  classification = "723; C6130 (Data handling techniques); C6140D (High
                 level languages); C6150J (Operating systems)",
  corpsource =   "California Inst. of Technol., Pasadena, CA, USA",
  fjournal =     "Information Processing Letters",
  journal-URL =  "http://www.sciencedirect.com/science/journal/00200190/",
  journalabr =   "Inf Process Lett",
  keywords =     "abstract programming language; character sets;
                 computer operating systems; computer programming
                 languages; Concurrent Pascal; operating systems
                 (computers); problem oriented languages; structured
                 programming; system programming; universal types",
  treatment =    "P Practical",
}

@Article{BrinchHansen:1976:DSC,
  author =       "Per {Brinch Hansen}",
  title =        "Disk Scheduling at Compile Time",
  journal =      j-SPE,
  volume =       "6",
  number =       "2",
  pages =        "201--205",
  month =        apr # "\slash " # jun,
  year =         "1976",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.4380060205",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "27 Oct 2006",
}

@InCollection{BrinchHansen:1976:PYD,
  author =       "Per {Brinch Hansen}",
  editor =       "P. Sveistrup and P. Naur and H. B. Hansen and C.
                 Gram",
  booktitle =    "{Niels Ivar Bech} --- en epoke i edb-udviklingen i
                 {Danmark}. ({Danish}) [{Niels Ivar Bech} --- an epoch
                 in data processing development in Denmark]",
  title =        "The Programmer as a Young Dog",
  publisher =    "Data",
  address =      "Copenhagen, Denmark",
  pages =        "65--68",
  year =         "1976",
  bibdate =      "Thu Jul 21 12:03:24 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  note =         "translation to English by the author.",
  URL =          "http://brinch-hansen.net/papers/1976e.pdf",
  abstract =     "This autobiographical sketch describes the beginning
                 of the author's career at the Danish computer company
                 Regnecentralen from 1963 to 1970. (The title is
                 inspired by James Joyce's ``A Portrait of the Artist as
                 a Young Man'' and Dylan Thomas's ``Portrait of the
                 Artist as a Young Dog.'') After three years in
                 Regnecentralen's compiler group, the author got the
                 chance to design the architecture of the RC 4000
                 computer. In 1967, he became Head of the Software
                 Development group that designed the RC 4000
                 multiprogramming system. The article was written in
                 memory of Niels Ivar Bech, the dynamic director of
                 Regnecentralen, who inspired a generation of young
                 Danes to make unique contributions to computing.",
  acknowledgement = ack-nhfb,
}

@Article{BrinchHansen:1976:SOSa,
  author =       "Per {Brinch Hansen}",
  title =        "The {Solo} Operating System: a {Concurrent Pascal}
                 Program",
  journal =      j-SPE,
  volume =       "6",
  number =       "2",
  pages =        "141--149",
  month =        apr # "\slash " # jun,
  year =         "1976",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.4380060202",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/w/wirth-niklaus.bib;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib",
  URL =          "http://brinch-hansen.net/papers/1976b.pdf",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "27 Oct 2006",
}

@Article{BrinchHansen:1976:SOSb,
  author =       "Per {Brinch Hansen}",
  title =        "The {Solo} Operating System: Job Interface",
  journal =      j-SPE,
  volume =       "6",
  number =       "2",
  pages =        "151--164",
  month =        apr # "\slash " # jun,
  year =         "1976",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.4380060203",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/w/wirth-niklaus.bib;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "27 Oct 2006",
}

@Article{BrinchHansen:1976:SOSc,
  author =       "Per {Brinch Hansen}",
  title =        "The {Solo} Operating System: Processes, Monitors, and
                 Classes",
  journal =      j-SPE,
  volume =       "6",
  number =       "2",
  pages =        "165--200",
  month =        apr # "\slash " # jun,
  year =         "1976",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.4380060204",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib",
  URL =          "http://brinch-hansen.net/papers/1976c.pdf",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "27 Oct 2006",
}

@Article{BrinchHansen:1977:BRS,
  author =       "Per {Brinch Hansen}",
  title =        "Book Review: {{\booktitle{Studies in operating
                 systems}}, R. M. McKeag and R. Wilson, edited by D. H.
                 R. Huxtable, academic press, London, 1976. no. of
                 pages: 263. price: \pounds 8.50}",
  journal =      j-SPE,
  volume =       "7",
  number =       "2",
  pages =        "302--303",
  month =        mar,
  year =         "1977",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.4380070228",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Wed Sep 10 12:36:39 MDT 2014",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "27 Oct 2006",
}

@InCollection{BrinchHansen:1977:DP,
  author =       "Per {Brinch Hansen}",
  title =        "Design Principles",
  crossref =     "BrinchHansen:1977:ACP",
  pages =        "3--14",
  year =         "1977",
  bibdate =      "Thu Jul 21 12:09:57 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "http://brinch-hansen.net/papers/1977c.pdf",
  acknowledgement = ack-nhfb,
}

@Article{BrinchHansen:1977:EMC,
  author =       "Per {Brinch Hansen}",
  title =        "Experience with Modular Concurrent Programming",
  journal =      j-IEEE-TRANS-SOFTW-ENG,
  volume =       "{SE-3}",
  number =       "2",
  pages =        "156--159",
  month =        mar,
  year =         "1977",
  CODEN =        "IESEDJ",
  DOI =          "https://doi.org/10.1109/tse.1977.229907",
  ISSN =         "0098-5589 (print), 1939-3520 (electronic)",
  ISSN-L =       "0098-5589",
  bibdate =      "Thu Jul 21 08:49:10 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/w/wirth-niklaus.bib",
  URL =          "http://brinch-hansen.net/papers/1977a.pdf",
  abstract =     "This paper summarizes the initial experience with the
                 programming language Concurrent Pascal in the design of
                 three model operating systems. A Concurrent Pascal
                 program consists of modules called processes, monitors,
                 and classes. The compiler checks that the data
                 structures of each module are accessed only by the
                 operations defined in the module. The author emphasizes
                 that the creative aspect of program construction is the
                 initial selection of modules and the connection of them
                 into hierarchical structures. By comparison the
                 detailed implementation of each module is
                 straightforward. The most important result is that it
                 is possible to build a concurrent program of one
                 thousand lines out of one-page modules that can be
                 comprehended at a glance.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Software Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=32",
}

@Article{BrinchHansen:1978:DPC,
  author =       "Per {Brinch Hansen}",
  title =        "Distributed Processes: a Concurrent Programming
                 Concept",
  journal =      j-CACM,
  volume =       "21",
  number =       "11",
  pages =        "934--941",
  month =        nov,
  year =         "1978",
  CODEN =        "CACMA2",
  DOI =          "https://doi.org/10.1145/359642.359651",
  ISSN =         "0001-0782 (print), 1557-7317 (electronic)",
  ISSN-L =       "0001-0782",
  bibdate =      "Mon Jan 22 06:48:16 MST 2001",
  bibsource =    "Compendex database;
                 ftp://ftp.ira.uka.de/pub/bibliography/Database/Graefe.bib;
                 ftp://ftp.ira.uka.de/pub/bibliography/Misc/os.bib;
                 ftp://ftp.ira.uka.de/pub/bibliography/Parallel/par.synch.bib;
                 http://dblp.uni-trier.de/db/journals/cacm/cacm21.html#Hansen78;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/cacm1970.bib",
  URL =          "http://brinch-hansen.net/papers/1978a.pdf",
  abstract =     "A language concept for concurrent processes without
                 common variables is introduced. These processes
                 communicate and synchronize by means of procedure calls
                 and guarded regions. This concept is proposed for
                 real-time applications controlled by microcomputer
                 networks with distributed storage. The paper gives
                 several examples of distributed processes and shows
                 that they include procedures, coroutines, classes,
                 monitors, processes, semaphores, buffers, path
                 expressions, and input-output as special cases.",
  acknowledgement = ack-nhfb,
  annote =       "Dated, but it's one of those papers that will always
                 be referenced. This is an early paper which proposes
                 having a Boolean guard at the start of a procedure. The
                 procedure is not allowed to execute until the guard
                 becomes true. This paper is also a reference for the
                 Shortest Job Next (SJN) scheduler.",
  classcodes =   "C4240 (Programming and algorithm theory); C6140D (High
                 level languages)",
  classification = "723",
  corpsource =   "Univ. of Southern California, Los Angeles, CA, USA",
  fjournal =     "Communications of the ACM",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J79",
  journalabr =   "Commun ACM",
  keywords =     "buffers; classes; communication; computer programming
                 languages; concurrency; concurrent programming;
                 coroutines; distributed; distributed processes;
                 expressions; guarded command; guarded regions;
                 input/output; k-boolean-guards; k-shortest-job-next;
                 language concept; microcomputer networks; monitors;
                 operating synchronization; parallel processing; path;
                 path expressions; procedure calls; procedures;
                 processes; programming theory; semaphores; storage",
  oldlabel =     "Hansen78",
  treatment =    "T Theoretical or Mathematical",
  XMLdata =      "ftp://ftp.informatik.uni-trier.de/pub/users/Ley/bib/records.tar.gz#journals/cacm/Hansen78",
}

@InProceedings{BrinchHansen:1978:MACa,
  author =       "Per {Brinch Hansen}",
  editor =       "Richard H. Austing and Dennis M. Conti and Gerald L.
                 Engel",
  booktitle =    "Proceedings of the {1978 ACM Annual Conference,
                 Washington, DC, USA, December 4--6, 1978, Volume I}",
  title =        "Multiprocessor Architectures For Concurrent Programs",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "317--323",
  year =         "1978",
  DOI =          "https://doi.org/10.1145/800127.804119",
  bibdate =      "Thu Jul 21 08:20:28 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "https://doi.org/10.1145/800127.804119",
  acknowledgement = ack-nhfb,
}

@Article{BrinchHansen:1978:MACb,
  author =       "Per {Brinch Hansen}",
  title =        "Multiprocessor architectures for concurrent programs",
  journal =      j-COMP-ARCH-NEWS,
  volume =       "7",
  number =       "4",
  pages =        "4--23",
  month =        dec,
  year =         "1978",
  CODEN =        "CANED2",
  DOI =          "https://doi.org/10.1145/641829.641830",
  ISSN =         "0163-5964 (ACM), 0884-7495 (IEEE)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri May 12 09:41:05 MDT 2006",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigarch.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@Article{BrinchHansen:1978:NMP,
  author =       "Per {Brinch Hansen}",
  title =        "{Network}: a Multiprocessor Program",
  journal =      j-IEEE-TRANS-SOFTW-ENG,
  volume =       "{SE-4}",
  number =       "3",
  pages =        "194--199",
  month =        may,
  year =         "1978",
  CODEN =        "IESEDJ",
  DOI =          "https://doi.org/10.1109/tse.1978.231498",
  ISSN =         "0098-5589 (print), 1939-3520 (electronic)",
  ISSN-L =       "0098-5589",
  bibdate =      "Thu Jul 21 08:53:25 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/w/wirth-niklaus.bib",
  URL =          "http://brinch-hansen.net/papers/1977d.pdf",
  abstract =     "This paper explores the problems of implementing
                 arbitrary forms of process communication on a
                 multiprocessor network. It develops a Concurrent Pascal
                 program that enables distributed processes to
                 communicate on virtual channels. The channels cannot
                 deadlock and will deliver all messages within a finite
                 time. The operation, structure, text, and performance
                 of this program are described. It was written, tested,
                 and described in two weeks and it worked immediately.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Software Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=32",
}

@Article{BrinchHansen:1978:RTM,
  author =       "Per {Brinch Hansen}",
  title =        "Reproducible testing of monitors",
  journal =      j-SPE,
  volume =       "8",
  number =       "6",
  pages =        "721--729",
  month =        nov # "\slash " # dec,
  year =         "1978",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.4380080607",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/w/wirth-niklaus.bib;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib",
  URL =          "http://brinch-hansen.net/papers/1978b.pdf",
  abstract =     "This paper describes a systematic method for testing
                 monitor modules which control process interactions in
                 concurrent programs. A monitor is tested by executing a
                 concurrent program in which the processes are
                 synchronized by a clock to make the sequence of
                 interactions reproducible. The method separates the
                 construction and implementation of test cases and makes
                 the analysis of a concurrent experiment similar to the
                 analysis of a sequential program. The implementation of
                 a test program is almost mechanical. The method, which
                 is illustrated by an example, has been used
                 successfully to test a multicomputer network program
                 written in Concurrent Pascal",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "27 Oct 2006",
}

@Article{BrinchHansen:1978:SIM,
  author =       "Per {Brinch Hansen} and J{\o}rgen Staunstrup",
  title =        "Specification and Implementation of Mutual Exclusion",
  journal =      j-IEEE-TRANS-SOFTW-ENG,
  volume =       "{SE}-4",
  number =       "5",
  pages =        "365--370",
  month =        sep,
  year =         "1978",
  CODEN =        "IESEDJ",
  DOI =          "https://doi.org/10.1109/tse.1978.233856",
  ISSN =         "0098-5589 (print), 1939-3520 (electronic)",
  ISSN-L =       "0098-5589",
  bibdate =      "Thu Jul 21 08:51:12 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Transactions on Software Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=32",
}

@Article{BrinchHansen:1979:AC,
  author =       "Per {Brinch Hansen}",
  title =        "{Author}'s correction",
  journal =      j-SPE,
  volume =       "9",
  number =       "10",
  pages =        "879--880",
  month =        oct,
  year =         "1979",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.4380091010",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Wed Sep 10 12:36:39 MDT 2014",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "27 Oct 2006",
}

@Article{BrinchHansen:1979:KAC,
  author =       "Per {Brinch Hansen}",
  title =        "A Keynote Address on Concurrent Programming",
  journal =      j-COMPUTER,
  volume =       "12",
  number =       "5",
  pages =        "50--56",
  month =        may,
  year =         "1979",
  CODEN =        "CPTRB4",
  DOI =          "https://doi.org/10.1109/MC.1979.1658745",
  ISSN =         "0018-9162 (print), 1558-0814 (electronic)",
  ISSN-L =       "0018-9162",
  bibdate =      "Thu Dec 12 07:20:54 MST 1996",
  bibsource =    "Compendex database;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/computer1970.bib",
  URL =          "http://brinch-hansen.net/papers/1978c.pdf",
  abstract =     "Evolution of ideas of concurrent programming is
                 highlighted along with description of major
                 difficulties of program testing and solution of this
                 problem. The problems of distributed processing are
                 considered by computer networks in which processors
                 communicate by input\slash output only (without any
                 common storage).",
  acknowledgement = ack-nhfb,
  classification = "723",
  fjournal =     "Computer",
  journal-URL =  "https://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=2",
  journalabr =   "Computer",
  keywords =     "computer networks; computer systems programming;
                 computer systems, digital --- time sharing",
  remark =       "Delivered at COMPSAC 78.",
}

@Article{BrinchHansen:1979:MC,
  author =       "Per {Brinch Hansen} and Charles Hayden",
  title =        "Microcomputer Comparison",
  journal =      j-SPE,
  volume =       "9",
  number =       "3",
  pages =        "211--217",
  month =        mar,
  year =         "1979",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.4380090306",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "27 Oct 2006",
}

@Article{BrinchHansen:1980:TOS,
  author =       "Per {Brinch Hansen} and Jon Fellows",
  title =        "The {Trio} Operating System",
  journal =      j-SPE,
  volume =       "10",
  number =       "11",
  pages =        "943--948",
  month =        nov,
  year =         "1980",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.4380101107",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "27 Oct 2006",
}

@InCollection{Brauer:1981:BM,
  author =       "Wilfried Brauer and Per {Brinch Hansen} and David
                 Gries and C. Moler and Gerhard Seegm{\"u}ller and Josef
                 Stoer and Niklaus Wirth",
  title =        "Back Matter",
  crossref =     "Brauer:1981:PLA",
  pages =        "207--243",
  year =         "1981",
  bibdate =      "Tue Jul 26 11:31:56 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "https://link.springer.com/content/pdf/bbm:978-3-540-38620-9/1",
  acknowledgement = ack-nhfb,
}

@InCollection{Brauer:1981:DT,
  author =       "Wilfried Brauer and Per {Brinch Hansen} and David
                 Gries and C. Moler and Gerhard Seegm{\"u}ller and Josef
                 Stoer and Niklaus Wirth",
  title =        "Declarations and Types",
  crossref =     "Brauer:1981:PLA",
  pages =        "15--45",
  year =         "1981",
  DOI =          "https://doi.org/10.1007/3-540-10693-6_3",
  bibdate =      "Tue Jul 26 11:31:56 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "https://link.springer.com/chapter/10.1007/3-540-10693-6_3",
  acknowledgement = ack-nhfb,
}

@InCollection{Brauer:1981:E,
  author =       "Wilfried Brauer and Per {Brinch Hansen} and David
                 Gries and C. Moler and Gerhard Seegm{\"u}ller and Josef
                 Stoer and Niklaus Wirth",
  title =        "Exceptions",
  crossref =     "Brauer:1981:PLA",
  pages =        "143--153",
  year =         "1981",
  DOI =          "https://doi.org/10.1007/3-540-10693-6_11",
  bibdate =      "Tue Jul 26 11:31:56 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "https://link.springer.com/chapter/10.1007/3-540-10693-6_11",
  acknowledgement = ack-nhfb,
}

@InCollection{Brauer:1981:FM,
  author =       "Wilfried Brauer and Per {Brinch Hansen} and David
                 Gries and C. Moler and Gerhard Seegm{\"u}ller and Josef
                 Stoer and Niklaus Wirth",
  title =        "Front Matter",
  crossref =     "Brauer:1981:PLA",
  pages =        "i--x",
  year =         "1981",
  bibdate =      "Tue Jul 26 11:31:56 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "https://link.springer.com/content/pdf/bfm:978-3-540-38620-9/1",
  acknowledgement = ack-nhfb,
}

@InCollection{Brauer:1981:GPU,
  author =       "Wilfried Brauer and Per {Brinch Hansen} and David
                 Gries and C. Moler and Gerhard Seegm{\"u}ller and Josef
                 Stoer and Niklaus Wirth",
  title =        "Generic Program Units",
  crossref =     "Brauer:1981:PLA",
  pages =        "155--167",
  year =         "1981",
  DOI =          "https://doi.org/10.1007/3-540-10693-6_12",
  bibdate =      "Tue Jul 26 11:31:56 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "https://link.springer.com/chapter/10.1007/3-540-10693-6_12",
  acknowledgement = ack-nhfb,
}

@InCollection{Brauer:1981:I,
  author =       "Wilfried Brauer and Per {Brinch Hansen} and David
                 Gries and C. Moler and Gerhard Seegm{\"u}ller and Josef
                 Stoer and Niklaus Wirth",
  title =        "Introduction",
  crossref =     "Brauer:1981:PLA",
  pages =        "1--6",
  year =         "1981",
  DOI =          "https://doi.org/10.1007/3-540-10693-6_1",
  bibdate =      "Tue Jul 26 11:31:56 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "https://link.springer.com/chapter/10.1007/3-540-10693-6_1",
  acknowledgement = ack-nhfb,
}

@InCollection{Brauer:1981:IO,
  author =       "Wilfried Brauer and Per {Brinch Hansen} and David
                 Gries and C. Moler and Gerhard Seegm{\"u}ller and Josef
                 Stoer and Niklaus Wirth",
  title =        "Input-Output",
  crossref =     "Brauer:1981:PLA",
  pages =        "183--206",
  year =         "1981",
  DOI =          "https://doi.org/10.1007/3-540-10693-6_14",
  bibdate =      "Tue Jul 26 11:31:56 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "https://link.springer.com/chapter/10.1007/3-540-10693-6_14",
  acknowledgement = ack-nhfb,
}

@InCollection{Brauer:1981:LE,
  author =       "Wilfried Brauer and Per {Brinch Hansen} and David
                 Gries and C. Moler and Gerhard Seegm{\"u}ller and Josef
                 Stoer and Niklaus Wirth",
  title =        "Lexical Elements",
  crossref =     "Brauer:1981:PLA",
  pages =        "7--13",
  year =         "1981",
  DOI =          "https://doi.org/10.1007/3-540-10693-6_2",
  bibdate =      "Tue Jul 26 11:31:56 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "https://link.springer.com/chapter/10.1007/3-540-10693-6_2",
  acknowledgement = ack-nhfb,
}

@InCollection{Brauer:1981:NE,
  author =       "Wilfried Brauer and Per {Brinch Hansen} and David
                 Gries and C. Moler and Gerhard Seegm{\"u}ller and Josef
                 Stoer and Niklaus Wirth",
  title =        "Names and Expressions",
  crossref =     "Brauer:1981:PLA",
  pages =        "47--71",
  year =         "1981",
  DOI =          "https://doi.org/10.1007/3-540-10693-6_4",
  bibdate =      "Tue Jul 26 11:31:56 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "https://link.springer.com/chapter/10.1007/3-540-10693-6_4",
  acknowledgement = ack-nhfb,
}

@InCollection{Brauer:1981:P,
  author =       "Wilfried Brauer and Per {Brinch Hansen} and David
                 Gries and C. Moler and Gerhard Seegm{\"u}ller and Josef
                 Stoer and Niklaus Wirth",
  title =        "Packages",
  crossref =     "Brauer:1981:PLA",
  pages =        "93--103",
  year =         "1981",
  DOI =          "https://doi.org/10.1007/3-540-10693-6_7",
  bibdate =      "Tue Jul 26 11:31:56 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "https://link.springer.com/chapter/10.1007/3-540-10693-6_7",
  acknowledgement = ack-nhfb,
}

@InCollection{Brauer:1981:PSC,
  author =       "Wilfried Brauer and Per {Brinch Hansen} and David
                 Gries and C. Moler and Gerhard Seegm{\"u}ller and Josef
                 Stoer and Niklaus Wirth",
  title =        "Program Structure and Compilation Issues",
  crossref =     "Brauer:1981:PLA",
  pages =        "131--141",
  year =         "1981",
  DOI =          "https://doi.org/10.1007/3-540-10693-6_10",
  bibdate =      "Tue Jul 26 11:31:56 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "https://link.springer.com/chapter/10.1007/3-540-10693-6_10",
  acknowledgement = ack-nhfb,
}

@InCollection{Brauer:1981:RSI,
  author =       "Wilfried Brauer and Per {Brinch Hansen} and David
                 Gries and C. Moler and Gerhard Seegm{\"u}ller and Josef
                 Stoer and Niklaus Wirth",
  title =        "Representation Specifications and Implementation
                 Dependent Features",
  crossref =     "Brauer:1981:PLA",
  pages =        "169--181",
  year =         "1981",
  DOI =          "https://doi.org/10.1007/3-540-10693-6_13",
  bibdate =      "Tue Jul 26 11:31:56 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "https://link.springer.com/chapter/10.1007/3-540-10693-6_13",
  acknowledgement = ack-nhfb,
}

@InCollection{Brauer:1981:Sa,
  author =       "Wilfried Brauer and Per {Brinch Hansen} and David
                 Gries and C. Moler and Gerhard Seegm{\"u}ller and Josef
                 Stoer and Niklaus Wirth",
  title =        "Statements",
  crossref =     "Brauer:1981:PLA",
  pages =        "73--82",
  year =         "1981",
  DOI =          "https://doi.org/10.1007/3-540-10693-6_5",
  bibdate =      "Tue Jul 26 11:31:56 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "https://link.springer.com/chapter/10.1007/3-540-10693-6_5",
  acknowledgement = ack-nhfb,
}

@InCollection{Brauer:1981:Sb,
  author =       "Wilfried Brauer and Per {Brinch Hansen} and David
                 Gries and C. Moler and Gerhard Seegm{\"u}ller and Josef
                 Stoer and Niklaus Wirth",
  title =        "Subprograms",
  crossref =     "Brauer:1981:PLA",
  pages =        "83--92",
  year =         "1981",
  DOI =          "https://doi.org/10.1007/3-540-10693-6_6",
  bibdate =      "Tue Jul 26 11:31:56 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "https://link.springer.com/chapter/10.1007/3-540-10693-6_6",
  acknowledgement = ack-nhfb,
}

@InCollection{Brauer:1981:T,
  author =       "Wilfried Brauer and Per {Brinch Hansen} and David
                 Gries and C. Moler and Gerhard Seegm{\"u}ller and Josef
                 Stoer and Niklaus Wirth",
  title =        "Tasks",
  crossref =     "Brauer:1981:PLA",
  pages =        "115--130",
  year =         "1981",
  DOI =          "https://doi.org/10.1007/3-540-10693-6_9",
  bibdate =      "Tue Jul 26 11:31:56 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "https://link.springer.com/chapter/10.1007/3-540-10693-6_9",
  acknowledgement = ack-nhfb,
}

@InCollection{Brauer:1981:VR,
  author =       "Wilfried Brauer and Per {Brinch Hansen} and David
                 Gries and C. Moler and Gerhard Seegm{\"u}ller and Josef
                 Stoer and Niklaus Wirth",
  title =        "Visibility Rules",
  crossref =     "Brauer:1981:PLA",
  pages =        "105--114",
  year =         "1981",
  DOI =          "https://doi.org/10.1007/3-540-10693-6_8",
  bibdate =      "Tue Jul 26 11:31:56 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "https://link.springer.com/chapter/10.1007/3-540-10693-6_8",
  acknowledgement = ack-nhfb,
}

@Article{BrinchHansen:1981:DE,
  author =       "Per {Brinch Hansen}",
  title =        "The design of {Edison}",
  journal =      j-SPE,
  volume =       "11",
  number =       "4",
  pages =        "363--396",
  month =        apr,
  year =         "1981",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.4380110404",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib",
  URL =          "http://brinch-hansen.net/papers/1981b.pdf",
  abstract =     "This paper describes the considerations behind the
                 design of the programming language Edison including the
                 reasons why a large number of well-known language
                 features were excluded. It also discusses the
                 linguistic problems of writing a concise language
                 report.",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "27 Oct 2006",
}

@Article{BrinchHansen:1981:EML,
  author =       "Per {Brinch Hansen}",
  title =        "{Edison}---a multiprocessor language",
  journal =      j-SPE,
  volume =       "11",
  number =       "4",
  pages =        "325--361",
  month =        apr,
  year =         "1981",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.4380110403",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "27 Oct 2006",
  xxpages =      "325--359",
}

@Article{BrinchHansen:1981:EP,
  author =       "Per {Brinch Hansen}",
  title =        "{Edison} Programs",
  journal =      j-SPE,
  volume =       "11",
  number =       "4",
  pages =        "397--414",
  month =        apr,
  year =         "1981",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.4380110405",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "27 Oct 2006",
}

@Article{BrinchHansen:1981:GEG,
  author =       "Per {Brinch Hansen}",
  title =        "Guest Editorial: Guest editorial",
  journal =      j-SPE,
  volume =       "11",
  number =       "4",
  pages =        "323--323",
  month =        apr,
  year =         "1981",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.4380110402",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Wed Sep 10 12:36:39 MDT 2014",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "27 Oct 2006",
}

@Article{BrinchHansen:1983:UPC,
  author =       "Per {Brinch Hansen}",
  title =        "Using personal computers in operating system courses",
  journal =      j-OPER-SYS-REV,
  volume =       "17",
  number =       "3",
  pages =        "41--44",
  month =        jul,
  year =         "1983",
  CODEN =        "OSRED8",
  DOI =          "https://doi.org/10.1145/850742.850747",
  ISSN =         "0163-5980 (print), 1943-586X (electronic)",
  ISSN-L =       "0163-5980",
  bibdate =      "Sat Aug 26 08:55:45 MDT 2006",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/opersysrev.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGOPS Operating Systems Review",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J597",
}

@Article{BrinchHansen:1987:JI,
  author =       "Per {Brinch Hansen}",
  title =        "A {Joyce} Implementation",
  journal =      j-SPE,
  volume =       "17",
  number =       "4",
  pages =        "267--276",
  month =        apr,
  year =         "1987",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.4380170403",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "30 Oct 2006",
}

@Article{BrinchHansen:1987:JPL,
  author =       "Per {Brinch Hansen}",
  title =        "{Joyce} --- a Programming Language for Distributed
                 Systems",
  journal =      j-SPE,
  volume =       "17",
  number =       "1",
  pages =        "29--50",
  month =        jan,
  year =         "1987",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.4380170105",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib",
  URL =          "http://brinch-hansen.net/papers/1987a.pdf",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "30 Oct 2006",
}

@TechReport{BrinchHansen:1988:JPM,
  author =       "Per {Brinch Hansen} and Rangachari Anand",
  title =        "{Joyce} Performance on a Multiprocessor",
  type =         "Electrical Engineering and Computer Science Technical
                 Report",
  number =       "28",
  institution =  "School of Computer and Information Science, Syracuse
                 University",
  address =      "Syracuse, NY, USA",
  pages =        "ii + 19",
  month =        sep,
  year =         "1988",
  bibdate =      "Sat Jul 23 13:29:02 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/w/wirth-niklaus.bib",
  URL =          "https://surface.syr.edu/eecs_techreports/28",
  abstract =     "Joyce is a parallel programming language based on CSP
                 and Pascal. The language has been moved from the IBM PC
                 to the Encore Multimax. The paper explains how the
                 multiprocessor implementation of Joyce was guided by
                 performance evaluation. The measurements show that the
                 speed-up of Joyce programs follows Amdahl's law.",
  acknowledgement = ack-nhfb,
}

@TechReport{BrinchHansen:1988:MIJ,
  author =       "Per {Brinch Hansen}",
  title =        "A Multiprocessor Implementation of {Joyce}",
  type =         "Electrical Engineering and Computer Science Technical
                 Report",
  number =       "29",
  institution =  "School of Computer and Information Science, Syracuse
                 University",
  address =      "Syracuse, NY, USA",
  pages =        "ii + 19",
  month =        sep,
  year =         "1988",
  bibdate =      "Sat Jul 23 13:29:02 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/w/wirth-niklaus.bib",
  URL =          "https://surface.syr.edu/eecs_techreports/29",
  abstract =     "Joyce is a programming language for parallel computers
                 based on CSP and Pascal. A Joyce program defines
                 concurrent agents which communicate through unbuffered
                 channels. This paper describes a multiprocessor
                 implementation of Joyce.",
  acknowledgement = ack-nhfb,
}

@TechReport{BrinchHansen:1989:APM,
  author =       "Per {Brinch Hansen}",
  title =        "Analysis of a Parallel Mergesort",
  type =         "Electrical Engineering and Computer Science Technical
                 Report",
  number =       "55 (SU-CIS-89-03)",
  institution =  "School of Computer and Information Science, Syracuse
                 University",
  address =      "Syracuse, NY, USA",
  pages =        "ii + 17",
  month =        jul,
  year =         "1989",
  bibdate =      "Sat Jul 23 13:29:02 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "https://surface.syr.edu/eecs_techreports/55",
  abstract =     "The paper describes a performance model of a
                 fine-grained, parallel mergesort which sorts $N$
                 elements in $ 0 (N)$ time using $ 0 (\log N)$
                 processors. The model predicts both the communication
                 time involved in merging the elements and the
                 decomposition time required to activate and terminate
                 the binary tree of processes. The parallel algorithm is
                 written in Joyce and runs on an Encore Multimax.",
  acknowledgement = ack-nhfb,
}

@Article{BrinchHansen:1989:JLR,
  author =       "Per {Brinch Hansen}",
  title =        "The {Joyce} Language Report",
  journal =      j-SPE,
  volume =       "19",
  number =       "6",
  pages =        "553--578",
  month =        jun,
  year =         "1989",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.4380190605",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib",
  URL =          "http://brinch-hansen.net/papers/1989c.pdf",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "30 Oct 2006",
}

@Article{BrinchHansen:1989:MIJ,
  author =       "Per {Brinch Hansen}",
  title =        "A Multiprocessor Implementation of {Joyce}",
  journal =      j-SPE,
  volume =       "19",
  number =       "6",
  pages =        "579--592",
  month =        jun,
  year =         "1989",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.4380190606",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib",
  URL =          "http://brinch-hansen.net/papers/1989a.pdf",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "30 Oct 2006",
}

@TechReport{BrinchHansen:1989:NPP,
  author =       "Per {Brinch Hansen}",
  title =        "The nature of parallel programming",
  type =         "Electrical Engineering and Computer Science Technical
                 Report",
  number =       "59 (SU-CIS-89-08)",
  institution =  "School of Computer and Information Science, Syracuse
                 University",
  address =      "Syracuse, NY, USA",
  pages =        "iii + 19",
  month =        mar,
  year =         "1989",
  bibdate =      "Sat Jul 23 13:29:02 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "htps://surface.syr.edu/eecs_techreports/59",
  abstract =     "Parallel programming is the art of writing programs
                 for computers that perform many operations
                 simultaneously. This essay discusses the nature of
                 parallel programming without going into technical
                 details. It uses a sorting problem to illustrate what
                 it means to solve a problem in parallel, how we write
                 parallel programs, how parallel computers execute them,
                 and how fast they run. The author expects that
                 scientific users of parallel computers may find ease of
                 programming more important than maximum performance. He
                 suggests ways to make this possible.",
  acknowledgement = ack-nhfb,
}

@TechReport{BrinchHansen:1990:APP,
  author =       "Per {Brinch Hansen}",
  title =        "The All-Pairs Pipeline",
  type =         "Electrical Engineering and Computer Science Technical
                 Report",
  number =       "77 (SU-CIS-90-40)",
  institution =  "School of Computer and Information Science, Syracuse
                 University",
  address =      "Syracuse, NY, USA",
  pages =        "ii + 17",
  month =        dec,
  year =         "1990",
  bibdate =      "Sat Jul 23 13:29:02 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "https://surface.syr.edu/eecs_techreports/77",
  abstract =     "An all-pairs problem is a computation on every
                 possible subset consisting of two elements chosen from
                 a set of $n$ elements. $N$-body simulation and
                 Householder reduction are all-pairs problems. The paper
                 defines the all-pairs problem concisely by means of
                 precedence matrices and derives a parallel algorithm.
                 The algorithm is presented in both coarse-grain and
                 medium-grain form. The all-pairs paradigm is
                 illustrated by a pipeline for Householder reduction of
                 a matrix to triangular form.",
  acknowledgement = ack-nhfb,
}

@TechReport{BrinchHansen:1990:BPF,
  author =       "Per {Brinch Hansen}",
  title =        "Balancing a Pipeline by Folding",
  type =         "Electrical Engineering and Computer Science Technical
                 Report",
  number =       "76 (SU-CIS-90-41)",
  institution =  "School of Computer and Information Science, Syracuse
                 University",
  address =      "Syracuse, NY, USA",
  pages =        "iii + 10",
  month =        dec,
  year =         "1990",
  bibdate =      "Sat Jul 23 13:29:02 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "https://surface.syr.edu/eecs_techreports/76/",
  abstract =     "A pipeline for Householder reduction is folded several
                 times across an array of processors to achieve
                 approximate load balancing. The performance of the
                 folded pipeline is analyzed and measured on a Computing
                 Surface.",
  acknowledgement = ack-nhfb,
}

@TechReport{BrinchHansen:1990:HR,
  author =       "Per {Brinch Hansen}",
  title =        "{Householder} reduction",
  type =         "Electrical Engineering and Computer Science Technical
                 Report",
  number =       "78 (SU-CIS-90-39)",
  institution =  "School of Computer and Information Science, Syracuse
                 University",
  address =      "Syracuse, NY, USA",
  pages =        "ii + 13",
  month =        dec,
  year =         "1990",
  bibdate =      "Sat Jul 23 13:29:02 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/h/householder-alston-s.bib",
  URL =          "htps://surface.syr.edu/eecs_techreports/78",
  abstract =     "This tutorial discusses Householder reduction of n
                 linear equations to a triangular form which can be
                 solved by back substitution. The main strengths of the
                 method are its numerical stability and suitability for
                 parallel computing. We explain how Householder
                 reduction can be derived from elementary matrix
                 algebra. The method is illustrated by a numerical
                 example and a Pascal algorithm. We assume that the
                 reader has a general knowledge of vector and matrix
                 algebra but is less familiar with linear transformation
                 of a vector space.",
  acknowledgement = ack-nhfb,
}

@Article{BrinchHansen:1990:LSR,
  author =       "Per {Brinch Hansen}",
  title =        "The Linear Search Rediscovered",
  journal =      j-STRUCT-PROGRAM,
  volume =       "11",
  pages =        "53--55",
  year =         "1990",
  CODEN =        "STPGEM",
  ISSN =         "0935-1183",
  bibdate =      "Thu Jul 21 12:22:45 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  note =         "See \cite{Dijkstra:1989:LSR}.",
  URL =          "http://brinch-hansen.net/papers/1990a.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Structured Programming",
}

@InProceedings{BrinchHansen:1990:NPP,
  author =       "Per {Brinch Hansen}",
  editor =       "M. A. Arbib and J. A. Robinson",
  booktitle =    "Natural and Artificial Parallel Computation",
  title =        "The Nature of Parallel Programming",
  publisher =    pub-MIT,
  address =      pub-MIT:adr,
  pages =        "31--46",
  year =         "1990",
  bibdate =      "Thu Jul 21 12:17:27 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  note =         "Inaugural Symposium at Syracuse University, Syracuse,
                 NY, March 1989.",
  URL =          "http://brinch-hansen.net/papers/1989b.pdf",
  acknowledgement = ack-nhfb,
}

@TechReport{BrinchHansen:1991:BP,
  author =       "Per {Brinch Hansen}",
  title =        "The {$N$}-Body Pipeline",
  type =         "Electrical Engineering and Computer Science Technical
                 Report",
  number =       "120 (SU-CIS-91-09)",
  institution =  "School of Computer and Information Science, Syracuse
                 University",
  address =      "Syracuse, NY, USA",
  pages =        "ii + 11",
  month =        mar,
  year =         "1991",
  bibdate =      "Sat Jul 23 13:29:02 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "https://surface.syr.edu/eecs_techreports/120",
  abstract =     "A general pipeline for all-pairs computations is
                 adapted for direct force summation of n bodies which
                 interact through gravitation only. To achieve
                 approximate load balance the pipeline is folded several
                 times across an array of processors. The performance of
                 the pipeline is analyzed and measured on a Computing
                 Surface.",
  acknowledgement = ack-nhfb,
}

@TechReport{BrinchHansen:1991:DHS,
  author =       "Per {Brinch Hansen}",
  title =        "Do Hypercubes Sort Faster Than Tree Machines?",
  type =         "Electrical Engineering and Computer Science Technical
                 Report",
  number =       "132 (SU-CIS-91-44)",
  institution =  "School of Computer and Information Science, Syracuse
                 University",
  address =      "Syracuse, NY, USA",
  pages =        "ii + 10",
  month =        dec,
  year =         "1991",
  bibdate =      "Sat Jul 23 13:29:02 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "https://surface.syr.edu/eecs_techreports/132",
  abstract =     "We develop a balanced, parallel quicksort algorithm
                 for a hypercube and compare it with a similar algorithm
                 for a binary tree machine. The performance of the
                 hypercube algorithm is measured on a Computing
                 Surface.",
  acknowledgement = ack-nhfb,
}

@TechReport{BrinchHansen:1991:GMP,
  author =       "Per {Brinch Hansen}",
  title =        "A Generic Multiplication Pipeline",
  type =         "Electrical Engineering and Computer Science Technical
                 Report",
  number =       "111 (SU-CIS-91-21)",
  institution =  "School of Computer and Information Science, Syracuse
                 University",
  address =      "Syracuse, NY, USA",
  pages =        "ii + 15",
  month =        jul,
  year =         "1991",
  bibdate =      "Sat Jul 23 13:29:02 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "https://surface.syr.edu/eecs_techreports/111",
  abstract =     "This paper illustrates the benefits of developing
                 generic algorithms for parallel programming paradigms
                 which can be adapted to different applications. We
                 consider a combinatorial problem called tuple
                 multiplication. This paradigm includes matrix
                 multiplication and the all-pairs shortest paths problem
                 as special cases. We develop a generic pipeline for
                 tuple multiplication. From the generic algorithm we
                 derive pipelines for matrix multiplication and shortest
                 paths computation by making substitutions of data types
                 and functions. The performance of the matrix
                 multiplication pipeline is analyzed and measured on a
                 Computing Surface.",
  acknowledgement = ack-nhfb,
}

@TechReport{BrinchHansen:1991:PDC,
  author =       "Per {Brinch Hansen}",
  title =        "Parallel Divide and Conquer",
  type =         "Electrical Engineering and Computer Science Technical
                 Report",
  number =       "131 (SU-CIS-91-45)",
  institution =  "School of Computer and Information Science, Syracuse
                 University",
  address =      "Syracuse, NY, USA",
  pages =        "ii + 17",
  month =        dec,
  year =         "1991",
  bibdate =      "Sat Jul 23 13:29:02 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "https://surface.syr.edu/eecs_techreports/131",
  abstract =     "We develop a generic divide and conquer algorithm for
                 a parallel tree machine. From the generic algorithm we
                 derive balanced, parallel versions of quicksort and the
                 fast Fourier transform by substitution of data types,
                 variables and statements. The performance of these
                 algorithms is analyzed and measured on a Computing
                 Surface configured as a tree machine with distributed
                 memory.",
  acknowledgement = ack-nhfb,
}

@Article{BrinchHansen:1992:HRL,
  author =       "Per {Brinch Hansen}",
  title =        "{Householder} Reduction of Linear Equations",
  journal =      j-COMP-SURV,
  volume =       "24",
  number =       "2",
  pages =        "185--194",
  month =        jun,
  year =         "1992",
  CODEN =        "CMSVAN",
  DOI =          "https://doi.org/10.1145/130844.130851",
  ISSN =         "0360-0300 (print), 1557-7341 (electronic)",
  ISSN-L =       "0360-0300",
  bibdate =      "Thu Jun 19 09:42:15 MDT 2008",
  bibsource =    "ftp://ftp.ira.uka.de/pub/bibliography/Database/Graefe.bib;
                 http://www.acm.org/pubs/contents/journals/surveys/;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/h/householder-alston-s.bib;
                 https://www.math.utah.edu/pub/tex/bib/compsurv.bib",
  URL =          "http://brinch-hansen.net/papers/1992a.pdf;
                 http://www.acm.org/pubs/toc/Abstracts/0360-0300/130851.html",
  abstract =     "This tutorial discusses Householder reduction of n
                 linear equations to a triangular form which can be
                 solved by back substitution. The main strength of the
                 method is its unconditional numerical stability. We
                 explain how Householder reduction can be derived from
                 elementary-matrix algebra. The method is illustrated by
                 a numerical example and a Pascal procedure. We assume
                 that the reader has a general knowledge of vector and
                 matrix algebra but is less familiar with linear
                 transformation of a vector space.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Computing Surveys",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J204",
  keywords =     "algorithms; Householder reduction",
  subject =      "{\bf G.1.3}: Mathematics of Computing, NUMERICAL
                 ANALYSIS, Numerical Linear Algebra, Linear systems
                 (direct and iterative methods).",
}

@TechReport{BrinchHansen:1992:MLD,
  author =       "Per {Brinch Hansen}",
  title =        "Multiple-Length Division Revisited: a Tour of the
                 Minefield",
  type =         "Electrical Engineering and Computer Science Technical
                 Report",
  number =       "166 (SU-CIS-92-19)",
  institution =  "School of Computer and Information Science, Syracuse
                 University",
  address =      "Syracuse, NY, USA",
  pages =        "ii + 24",
  month =        sep,
  year =         "1992",
  bibdate =      "Sat Jul 23 13:29:02 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "https://surface.syr.edu/eecs_techreports/166",
  abstract =     "Long division of natural numbers plays a crucial role
                 in Cobol arithmetic, cryptography, and primality
                 testing. Only a handful of textbooks discuss the theory
                 and practice of long division, and none of them do it
                 satisfactorily. This tutorial attempts to fill this
                 surprising gap in the literature on computer
                 algorithms. We illustrate the subtleties of long
                 division by examples, define the problem concisely,
                 summarize the theory, and develop a complete Pascal
                 algorithm using a consistent terminology.",
  acknowledgement = ack-nhfb,
}

@TechReport{BrinchHansen:1992:NSL,
  author =       "Per {Brinch Hansen}",
  title =        "Numerical Solution of {Laplace}'s Equation",
  type =         "Electrical Engineering and Computer Science Technical
                 Report",
  number =       "168 (SU-CIS-92-17)",
  institution =  "School of Computer and Information Science, Syracuse
                 University",
  address =      "Syracuse, NY, USA",
  pages =        "ii + 14",
  month =        sep,
  year =         "1992",
  bibdate =      "Sat Jul 23 13:29:02 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "https://surface.syr.edu/eecs_techreports/168",
  abstract =     "his tutorial discusses Laplace's equation for steady
                 state heat flow in a two-dimensional region with fixed
                 temperatures on the boundaries. The equilibrium
                 temperatures are computed for a square grid using
                 successive overrelaxation with parity ordering of the
                 grid elements. The numerical method is illustrated by a
                 Pascal algorithm. We assume that the reader is familiar
                 with elementary calculus.",
  acknowledgement = ack-nhfb,
}

@TechReport{BrinchHansen:1992:PCA,
  author =       "Per {Brinch Hansen}",
  title =        "Parallel Cellular Automata: a Model Program for
                 Computational Science",
  type =         "Electrical Engineering and Computer Science Technical
                 Report",
  number =       "167 (SU-CIS-92-18)",
  institution =  "School of Computer and Information Science, Syracuse
                 University",
  address =      "Syracuse, NY, USA",
  pages =        "ii + 29",
  month =        sep,
  year =         "1992",
  bibdate =      "Sat Jul 23 13:29:02 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "https://surface.syr.edu/eecs_techreports/167",
  abstract =     "We develop a model program for parallel execution of
                 cellular automata on a multicomputer. The model program
                 is then adapted for simulation of forest fires and
                 numerical solution of Laplace's equation for stationary
                 heat flow. The performance of the parallel program is
                 analyzed and measured on a Computing Surface configured
                 as a matrix of transputers with distributed memory.",
  acknowledgement = ack-nhfb,
}

@TechReport{BrinchHansen:1992:PMC,
  author =       "Per {Brinch Hansen}",
  title =        "Parallel {Monte Carlo} Trials",
  type =         "Electrical Engineering and Computer Science Technical
                 Report",
  number =       "171 (SU-CIS-92-11)",
  institution =  "School of Computer and Information Science, Syracuse
                 University",
  address =      "Syracuse, NY, USA",
  pages =        "ii + 8",
  month =        jul,
  year =         "1992",
  bibdate =      "Sat Jul 23 13:29:02 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "https://surface.syr.edu/eecs_techreports/171",
  abstract =     "The best results of Monte Carlo methods are generally
                 obtained by performing the same computation many times
                 with different random numbers. We develop a generic
                 algorithm for parallel execution of Monte Carlo trials
                 on a multicomputer. The generic algorithm has been
                 adapted for simulated annealing and primality testing
                 by simple substitutions of data types and procedures.
                 The performance of the parallel algorithms was measured
                 on a Computing Surface.",
  acknowledgement = ack-nhfb,
}

@TechReport{BrinchHansen:1992:PT,
  author =       "Per {Brinch Hansen}",
  title =        "Primality Testing",
  type =         "Electrical Engineering and Computer Science Technical
                 Report",
  number =       "169 (SU-CIS-92-13)",
  institution =  "School of Computer and Information Science, Syracuse
                 University",
  address =      "Syracuse, NY, USA",
  pages =        "ii + 9",
  month =        jul,
  year =         "1992",
  bibdate =      "Sat Jul 23 13:29:02 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "https://surface.syr.edu/eecs_techreports/169",
  abstract =     "This tutorial describes the Miller--Rabin method for
                 testing the primality of large integers. The method is
                 illustrated by a Pascal algorithm. The performance of
                 the algorithm was measured on a Computing Surface.",
  acknowledgement = ack-nhfb,
}

@TechReport{BrinchHansen:1992:SA,
  author =       "Per {Brinch Hansen}",
  title =        "Simulated Annealing",
  type =         "Electrical Engineering and Computer Science Technical
                 Report",
  number =       "170 (SU-CIS-02-12)",
  institution =  "School of Computer and Information Science, Syracuse
                 University",
  address =      "Syracuse, NY, USA",
  pages =        "??--??",
  month =        jul,
  year =         "1992",
  bibdate =      "Sat Jul 23 13:29:02 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "https://surface.syr.edu/eecs_techreports/170",
  abstract =     "This tutorial describes simulated annealing, an
                 optimization method based on the principles of
                 statistical mechanics. Simulated annealing finds
                 near-optimal solutions to optimization problems that
                 cannot be solved exactly because they are NP-complete.
                 The method is illustrated by a Pascal algorithm for the
                 traveling salesperson problem. The performance of the
                 algorithm was measured on a Computing Surface.",
  acknowledgement = ack-nhfb,
}

@TechReport{BrinchHansen:1993:FFT,
  author =       "Per {Brinch Hansen}",
  title =        "The {Fast Fourier Transform}",
  type =         "Electrical Engineering and Computer Science Technical
                 Report",
  number =       "130 (SU-CIS-91-46)",
  institution =  "School of Computer and Information Science, Syracuse
                 University",
  address =      "Syracuse, NY, USA",
  pages =        "ii + 21",
  month =        dec,
  year =         "1993",
  bibdate =      "Sat Jul 23 13:29:02 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "https://surface.syr.edu/eecs_techreports/130",
  abstract =     "This tutorial discusses the fast Fourier transform,
                 which has numerous applications in signal and image
                 processing. The FFT computes the frequency components
                 of a signal that has been sampled at n points in $ O(n
                 \log n) $ time. We explain the FFT and illustrate it by
                 examples and Pascal algorithms. We assume that you are
                 familiar with elementary calculus.",
  acknowledgement = ack-nhfb,
}

@Article{BrinchHansen:1993:MCP,
  author =       "Per {Brinch Hansen}",
  title =        "Monitors and {Concurrent Pascal}: a personal history",
  journal =      j-SIGPLAN,
  volume =       "28",
  number =       "3",
  pages =        "1--35",
  month =        mar,
  year =         "1993",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/154766.155361",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:16:34 MST 2003",
  bibsource =    "http://portal.acm.org/; http://www.acm.org/pubs/toc/;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/w/wirth-niklaus.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1990.bib",
  URL =          "http://brinch-hansen.net/papers/1993a.pdfa;
                 http://www.acm.org:80/pubs/citations/proceedings/plan/154766/p1-hansen/",
  abstract =     "This is a personal history of the early development of
                 the monitor concept and its implementation in the
                 programming language Concurrent Pascal. The paper
                 explains how monitors evolved from the ideas of Dahl,
                 Dijkstra, Hoare, and the author (1971--1973). At
                 Caltech the author and his students developed and
                 implemented Concurrent Pascal and used it to write
                 several model operating systems (1974--1975). A
                 portable implementation of Concurrent Pascal was widely
                 distributed and used for system design (1976--1990).
                 The monitor paradigm was also disseminated in survey
                 papers and text books. The author ends the story by
                 expressing his own mixed feelings about monitors and
                 Concurrent Pascal.",
  acknowledgement = ack-nhfb,
  affiliation =  "Sch. of Comput. and Inf. Sci., Syracuse Univ., NY,
                 USA",
  classification = "C6110P (Parallel programming); C6140D (High level
                 languages)",
  confdate =     "20--23 April 1993",
  conflocation = "Cambridge, MA, USA",
  confname =     "HOPL-II. The second ACM SIGPLAN conference on History
                 of programming languages, April 20--23, 1993,
                 Cambridge, MA",
  confsponsor =  "ACM",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
  keywords =     "algorithms; Concurrent Pascal; design; languages;
                 Model operating systems; Monitors; Personal history;
                 Programming language",
  subject =      "{\bf D.3.2} Software, PROGRAMMING LANGUAGES, Language
                 Classifications, Concurrent Pascal. {\bf K.2} Computing
                 Milieux, HISTORY OF COMPUTING, Software. {\bf D.3.4}
                 Software, PROGRAMMING LANGUAGES, Processors, Compilers.
                 {\bf D.3.3} Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Procedures, functions, and
                 subroutines.",
  thesaurus =    "History; Parallel languages; Pascal; Supervisory
                 programs",
}

@Article{BrinchHansen:1993:MPC,
  author =       "Per {Brinch Hansen}",
  title =        "Model Programs for Computational Science: a
                 Programming Methodology for Multicomputers",
  journal =      j-CPE,
  volume =       "5",
  number =       "5",
  pages =        "407--423",
  month =        aug,
  year =         "1993",
  CODEN =        "CPEXEI",
  ISSN =         "1040-3108 (print), 1096-9128 (electronic)",
  ISSN-L =       "1040-3108",
  bibdate =      "Tue Sep 7 05:40:19 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/cpe.bib",
  URL =          "http://brinch-hansen.net/papers/1993b.pdf",
  abstract =     "We describe a programming methodology for
                 computational science based on programming paradigms
                 for multicomputers. Each paradigm is a class of
                 algorithms that have the same control structure. For
                 every paradigm, a general parallel program is
                 developed. The general program is then used to derive
                 two or more model programs, which solve specific
                 problems in science and engineering. These programs
                 have been tested on a Computing Surface and published
                 with every detail open to scrutiny. We explain the
                 steps involved in developing model programs and
                 conclude that the study of programming paradigms
                 provides an architectural vision of parallel scientific
                 computing.",
  acknowledgement = ack-nhfb,
  fjournal =     "Concurrency, practice and experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/%28ISSN%291532-0634/issues",
}

@Article{BrinchHansen:1993:PCA,
  author =       "Per {Brinch Hansen}",
  title =        "Parallel Cellular Automata: a Model Program for
                 Computational Science",
  journal =      j-CPE,
  volume =       "5",
  number =       "5",
  pages =        "425--448",
  month =        aug,
  year =         "1993",
  CODEN =        "CPEXEI",
  ISSN =         "1040-3108 (print), 1096-9128 (electronic)",
  ISSN-L =       "1040-3108",
  bibdate =      "Tue Sep 7 05:40:19 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/cpe.bib",
  URL =          "http://brinch-hansen.net/papers/1993c.pdf",
  abstract =     "We develop a generic program for parallel execution of
                 cellular automata on a multicomputer. The generic
                 program is then adapted for simulation of a forest fire
                 and numerical solution of Laplace's equation for
                 stationary heat flow. The performance of the parallel
                 program is analyzed and measured on a Computing Surface
                 configured as a matrix of transputers with distributed
                 memory.",
  acknowledgement = ack-nhfb,
  fjournal =     "Concurrency, practice and experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/%28ISSN%291532-0634/issues",
}

@Article{BrinchHansen:1994:DHS,
  author =       "Per {Brinch Hansen}",
  title =        "Do hypercubes sort faster than tree machines?",
  journal =      j-CPE,
  volume =       "6",
  number =       "2",
  pages =        "143--151",
  month =        apr,
  year =         "1994",
  CODEN =        "CPEXEI",
  DOI =          "https://doi.org/10.1002/cpe.4330060205",
  ISSN =         "1040-3108 (print), 1096-9128 (electronic)",
  ISSN-L =       "1040-3108",
  bibdate =      "Tue Sep 7 05:40:19 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/cpe.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Concurrency, practice and experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/%28ISSN%291532-0634/issues",
}

@Article{BrinchHansen:1994:ICS,
  author =       "Per {Brinch Hansen}",
  title =        "Interference control in {SuperPascal} --- a
                 block-structured parallel language",
  journal =      j-COMP-J,
  volume =       "37",
  number =       "5",
  pages =        "399--406",
  month =        "????",
  year =         "1994",
  CODEN =        "CMPJA6",
  DOI =          "https://doi.org/10.1093/comjnl/37.5.399",
  ISSN =         "0010-4620 (print), 1460-2067 (electronic)",
  ISSN-L =       "0010-4620",
  bibdate =      "Tue Dec 4 14:48:40 MST 2012",
  bibsource =    "http://comjnl.oxfordjournals.org/content/37/5.toc;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/w/wirth-niklaus.bib;
                 https://www.math.utah.edu/pub/tex/bib/compj.bib;
                 https://www.math.utah.edu/pub/tex/bib/compj1990.bib;
                 http://www3.oup.co.uk/computer_journal/Volume_37/Issue_05/Vol37_05.index.html",
  URL =          "http://brinch-hansen.net/papers/1994d.pdf;
                 http://comjnl.oxfordjournals.org/content/37/5/399.full.pdf+html;
                 http://www3.oup.co.uk/computer_journal/Volume_37/Issue_05/Vol37_05.body.html#AbstractHansen",
  acknowledgement = ack-nhfb,
  affiliation =  "Sch. of Comput. and Inf. Sci., Syracuse Univ., NY,
                 USA",
  author-1-adr = "School of Computer and Information Science, Syracuse
                 University, Syracuse, NY 13244, USA",
  classcodes =   "C6140D (High level languages); C4240P (Parallel
                 programming and algorithm theory); C6110P (Parallel
                 programming); C6150C (Compilers, interpreters and other
                 processors)",
  classification = "C4240P (Parallel programming and algorithm theory);
                 C6110P (Parallel programming); C6140D (High level
                 languages); C6150C (Compilers, interpreters and other
                 processors)",
  corpsource =   "Sch. of Comput. and Inf. Sci., Syracuse Univ., NY,
                 USA",
  fjournal =     "The Computer Journal",
  journal-URL =  "http://comjnl.oxfordjournals.org/",
  keywords =     "block-structured parallel; Block-structured parallel
                 language; Block-structured parallel languages;
                 compilation; Compilation; compilers; global variables;
                 Global variables; insecure programming languages;
                 Insecure programming languages; interference control;
                 Interference control; language; languages; parallel;
                 parallel languages; parallel programming; Parallel
                 programming language; Parallel programs; parallel
                 scientific computing; Parallel scientific computing;
                 parallel statements; Parallel statements; Pascal;
                 process interference; Process interference; program;
                 programming language; programs; shared variables;
                 Shared variables; single-pass compiler; Single-pass
                 compiler; SuperPascal; synchronous communication
                 channels; Synchronous communication channels; syntactic
                 control; Syntactic control",
  thesaurus =    "Parallel languages; Parallel programming; Pascal;
                 Program compilers",
  treatment =    "P Practical",
}

@Article{BrinchHansen:1994:MLD,
  author =       "Per {Brinch Hansen}",
  title =        "Multiple-length Division Revisited: a Tour of the
                 Minefield",
  journal =      j-SPE,
  volume =       "24",
  number =       "6",
  pages =        "579--601",
  month =        jun,
  year =         "1994",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.4380240605",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Fri Nov 28 17:07:54 2003",
  bibsource =    "ftp://garbo.uwasa.fi/pc/doc-soft/fpbibl18.zip;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/cryptography1990.bib;
                 https://www.math.utah.edu/pub/tex/bib/fparith.bib;
                 https://www.math.utah.edu/pub/tex/bib/litprog.bib;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 https://www.math.utah.edu/pub/tex/bib/toms.bib",
  note =         "This paper derives an algorithm for division of long
                 integers, and implements it as a literate program,
                 although without identifier cross-references. See also
                 related work on division
                 \cite{BrinchHansen:1995:LDA,Regener:1984:MID} .",
  URL =          "http://brinch-hansen.net/papers/1994b.pdf",
  abstract =     "Long division of natural numbers plays a crucial role
                 in Cobol arithmetic, cryptography, and primality
                 testing. Only a handful of textbooks discuss the theory
                 and practice of long division, and none of them do it
                 satisfactorily. This tutorial attempts to fill this
                 surprising gap in the literature on computer
                 algorithms. We illustrate the subtleties of long
                 division by examples, define the problem concisely,
                 summarize the theory, and develop a complete Pascal
                 algorithm using a consistent terminology.",
  acknowledgement = ack-nj # " and " # ack-mfc # " and " # ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  keywords =     "algorithms; multiple-length integer division",
  onlinedate =   "30 Oct 2006",
}

@Article{BrinchHansen:1994:PLS,
  author =       "Per {Brinch Hansen}",
  title =        "The Programming Language {SuperPascal}",
  journal =      j-SPE,
  volume =       "24",
  number =       "5",
  pages =        "467--483",
  month =        may,
  year =         "1994",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.4380240504",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/w/wirth-niklaus.bib;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "30 Oct 2006",
}

@Article{BrinchHansen:1994:SPL,
  author =       "Per {Brinch Hansen}",
  title =        "{SuperPascal} --- a publication language for parallel
                 scientific computing",
  journal =      j-CPE,
  volume =       "6",
  number =       "5",
  pages =        "461--483",
  month =        aug,
  year =         "1994",
  CODEN =        "CPEXEI",
  ISSN =         "1040-3108 (print), 1096-9128 (electronic)",
  ISSN-L =       "1040-3108",
  bibdate =      "Tue Sep 7 05:40:19 MDT 1999",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/cpe.bib;
                 https://www.math.utah.edu/pub/tex/bib/super.bib",
  URL =          "http://brinch-hansen.net/papers/1994c.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Concurrency, practice and experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/%28ISSN%291532-0634/issues",
}

@InCollection{BrinchHansen:1995:APP,
  author =       "Per {Brinch Hansen}",
  booktitle =    "Studies in Computational Science",
  title =        "The All-Pairs Pipeline",
  chapter =      "4",
  publisher =    pub-PH,
  address =      pub-PH:adr,
  pages =        "73--89",
  year =         "1995",
  bibdate =      "Thu Jul 21 14:34:50 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "http://brinch-hansen.net/papers/1995d.pdf",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:1995:BP,
  author =       "Per {Brinch Hansen}",
  booktitle =    "Studies in Computational Science",
  title =        "Balancing a Pipeline",
  chapter =      "5",
  publisher =    pub-PH,
  address =      pub-PH:adr,
  pages =        "90--100",
  year =         "1995",
  bibdate =      "Thu Jul 21 14:34:50 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "http://brinch-hansen.net/papers/1995e.pdf",
  acknowledgement = ack-nhfb,
}

@Article{BrinchHansen:1995:EPR,
  author =       "Per {Brinch Hansen}",
  title =        "Efficient Parallel Recursion",
  journal =      j-SIGPLAN,
  volume =       "30",
  number =       "12",
  pages =        "9--16",
  month =        dec,
  year =         "1995",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/219726.219732",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:17:13 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1990.bib",
  URL =          "http://brinch-hansen.net/papers/1995c.pdf",
  acknowledgement = ack-nhfb,
  affiliation =  "Sch. of Comput. and Inf. Sci., Syracuse Univ., NY,
                 USA",
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{BrinchHansen:1995:LDA,
  author =       "Per {Brinch Hansen}",
  title =        "The Long Division Algorithm of {Linger}, {Mills} and
                 {Witt}",
  journal =      j-SPE,
  volume =       "25",
  number =       "1",
  pages =        "109--109",
  month =        jan,
  year =         "1995",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.4380250107",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/fparith.bib;
                 https://www.math.utah.edu/pub/tex/bib/litprog.bib;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib",
  note =         "See \cite{Linger:1979:SPT,BrinchHansen:1994:MLD}.",
  abstract =     "The long division algorithm of Linger, Mills and Witt
                 is discussed and found to be significantly slower than
                 a recent algorithm developed by the author.",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "30 Oct 2006",
}

@Article{BrinchHansen:1995:SSa,
  author =       "Per {Brinch Hansen}",
  title =        "The {SuperPascal} Software",
  journal =      j-SIGNUM,
  volume =       "30",
  number =       "3",
  pages =        "27--27",
  month =        jul,
  year =         "1995",
  CODEN =        "SNEWD6",
  DOI =          "https://doi.org/10.1145/221332.221335",
  ISSN =         "0163-5778 (print), 1558-0237 (electronic)",
  ISSN-L =       "0163-5778",
  bibdate =      "Tue Apr 12 07:50:26 MDT 2005",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/w/wirth-niklaus.bib;
                 https://www.math.utah.edu/pub/tex/bib/signum.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGNUM Newsletter",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J690",
}

@Article{BrinchHansen:1995:SSb,
  author =       "Per {Brinch Hansen}",
  title =        "The {SuperPascal} Software",
  journal =      j-SIGSOFT,
  volume =       "20",
  number =       "5",
  pages =        "91--91",
  month =        dec,
  year =         "1995",
  CODEN =        "SFENDP",
  DOI =          "https://doi.org/10.1145/217030.565658",
  ISSN =         "0163-5948 (print), 1943-5843 (electronic)",
  ISSN-L =       "0163-5948",
  bibdate =      "Thu Jul 21 08:20:51 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/w/wirth-niklaus.bib",
  abstract =     "Pascal is still the most widely used programming
                 language in computer science textbooks. Building on
                 that tradition I have developed SuperPascal as a
                 publication language for parallel scientific computing.
                 SuperPascal extends a subset of IEEE Standard Pascal
                 with deterministic statements for parallel processes
                 and synchronous message passing. Recursive procedures
                 may be combined with parallel statements.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGSOFT Software Engineering Notes",
  journal-URL =  "https://dl.acm.org/citation.cfm?id=J728",
}

@InCollection{BrinchHansen:1996:DE,
  author =       "Per {Brinch Hansen}",
  title =        "Design of {Edison}",
  crossref =     "BrinchHansen:1996:SSE",
  chapter =      "17",
  pages =        "??--??",
  year =         "1996",
  bibdate =      "Mon Jul 25 16:32:26 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:1996:DP,
  author =       "Per {Brinch Hansen}",
  title =        "Design Principles",
  crossref =     "BrinchHansen:1996:SSE",
  chapter =      "12",
  pages =        "??--??",
  year =         "1996",
  bibdate =      "Mon Jul 25 16:32:26 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:1996:DPC,
  author =       "Per {Brinch Hansen}",
  title =        "Distributed Processes: a Concurrent Programming
                 Concept",
  crossref =     "BrinchHansen:1996:SSE",
  chapter =      "14",
  pages =        "??--??",
  year =         "1996",
  bibdate =      "Mon Jul 25 16:32:26 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:1996:EMC,
  author =       "Per {Brinch Hansen}",
  title =        "Experience with Modular Concurrent Programming",
  crossref =     "BrinchHansen:1996:SSE",
  chapter =      "11",
  pages =        "??--??",
  year =         "1996",
  bibdate =      "Mon Jul 25 16:32:26 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:1996:EPR,
  author =       "Per {Brinch Hansen}",
  title =        "Efficient Parallel Recursion",
  crossref =     "BrinchHansen:1996:SSE",
  chapter =      "25",
  pages =        "??--??",
  year =         "1996",
  bibdate =      "Mon Jul 25 16:32:26 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:1996:JPL,
  author =       "Per {Brinch Hansen}",
  title =        "{Joyce}; A Programming Language for Distributed
                 Systems",
  crossref =     "BrinchHansen:1996:SSE",
  chapter =      "18",
  pages =        "??--??",
  year =         "1996",
  bibdate =      "Mon Jul 25 16:32:26 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:1996:KAC,
  author =       "Per {Brinch Hansen}",
  title =        "Keynote Address on Concurrent Programming",
  crossref =     "BrinchHansen:1996:SSE",
  chapter =      "16",
  pages =        "??--??",
  year =         "1996",
  bibdate =      "Mon Jul 25 16:32:26 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:1996:MCPa,
  author =       "Per {Brinch Hansen}",
  title =        "Monitors and {Concurrent Pascal}: a Personal History",
  crossref =     "BrinchHansen:1996:SSE",
  chapter =      "21",
  pages =        "??--??",
  year =         "1996",
  bibdate =      "Mon Jul 25 16:32:26 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/w/wirth-niklaus.bib",
  acknowledgement = ack-nhfb,
}

@InProceedings{BrinchHansen:1996:MCPb,
  author =       "Per {Brinch Hansen}",
  title =        "Monitors and {Concurrent Pascal}: a personal history",
  crossref =     "Bergin:1996:HPL",
  pages =        "121--172",
  year =         "1996",
  DOI =          "https://doi.org/10.1145/234286.1057814",
  bibdate =      "Thu Jul 21 08:24:34 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/w/wirth-niklaus.bib",
  abstract =     "This is a personal history of the early development of
                 the monitor concept and its implementation in the
                 programming language Concurrent Pascal. The paper
                 explains how monitors evolved from the ideas of Dahl,
                 Dijkstra, Hoare, and the author (1971--1973). At
                 Caltech the author and his students developed and
                 implemented Concurrent Pascal and used it to write
                 several model operating systems (1974--1975). A
                 portable implementation of Concurrent Pascal was widely
                 distributed and used for system design (1976--1990).
                 The monitor paradigm was also disseminated in survey
                 papers and textbooks. The author ends the story by
                 expressing his own mixed feelings about monitors and
                 Concurrent Pascal.",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:1996:MIJ,
  author =       "Per {Brinch Hansen}",
  title =        "Multiprocessor Implementation of {Joyce}",
  crossref =     "BrinchHansen:1996:SSE",
  chapter =      "19",
  pages =        "??--??",
  year =         "1996",
  bibdate =      "Mon Jul 25 16:32:26 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:1996:MPC,
  author =       "Per {Brinch Hansen}",
  title =        "Model Programs for Computational Science: a
                 Programming Methodology for Multicomputers",
  crossref =     "BrinchHansen:1996:SSE",
  chapter =      "22",
  pages =        "??--??",
  year =         "1996",
  bibdate =      "Mon Jul 25 16:32:26 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:1996:NMP,
  author =       "Per {Brinch Hansen}",
  title =        "Network: a Multiprocessor Program",
  crossref =     "BrinchHansen:1996:SSE",
  chapter =      "13",
  pages =        "??--??",
  year =         "1996",
  bibdate =      "Mon Jul 25 16:32:26 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:1996:NMS,
  author =       "Per {Brinch Hansen}",
  title =        "Nucleus of a Multiprogramming System",
  crossref =     "BrinchHansen:1996:SSE",
  chapter =      "2",
  pages =        "??--??",
  year =         "1996",
  bibdate =      "Mon Jul 25 16:32:26 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:1996:NPP,
  author =       "Per {Brinch Hansen}",
  title =        "Nature of Parallel Programming",
  crossref =     "BrinchHansen:1996:SSE",
  chapter =      "20",
  pages =        "??--??",
  year =         "1996",
  bibdate =      "Mon Jul 25 16:32:26 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:1996:OCO,
  author =       "Per {Brinch Hansen}",
  title =        "Outline of a Course on Operating System Principles",
  crossref =     "BrinchHansen:1996:SSE",
  chapter =      "3",
  pages =        "??--??",
  year =         "1996",
  bibdate =      "Mon Jul 25 16:32:26 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:1996:PCA,
  author =       "Per {Brinch Hansen}",
  title =        "Parallel Cellular Automata: a Model Program for
                 Computational Science",
  crossref =     "BrinchHansen:1996:SSE",
  chapter =      "23",
  pages =        "??--??",
  year =         "1996",
  bibdate =      "Mon Jul 25 16:32:26 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:1996:PLC,
  author =       "Per {Brinch Hansen}",
  title =        "Programming Language {Concurrent Pascal}",
  crossref =     "BrinchHansen:1996:SSE",
  chapter =      "7",
  pages =        "??--??",
  year =         "1996",
  bibdate =      "Mon Jul 25 16:32:26 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/w/wirth-niklaus.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:1996:PYD,
  author =       "Per {Brinch Hansen}",
  title =        "Programmer as a Young Dog",
  crossref =     "BrinchHansen:1996:SSE",
  chapter =      "10",
  pages =        "??--??",
  year =         "1996",
  bibdate =      "Mon Jul 25 16:32:26 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:1996:RRT,
  author =       "Per {Brinch Hansen}",
  title =        "{RC 4000} Real-time Control System at {Pulawy}",
  crossref =     "BrinchHansen:1996:SSE",
  chapter =      "1",
  pages =        "??--??",
  year =         "1996",
  bibdate =      "Mon Jul 25 16:32:26 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:1996:RTM,
  author =       "Per {Brinch Hansen}",
  title =        "Reproducible Testing of Monitors",
  crossref =     "BrinchHansen:1996:SSE",
  chapter =      "15",
  pages =        "??--??",
  year =         "1996",
  bibdate =      "Mon Jul 25 16:32:26 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:1996:SC,
  author =       "Per {Brinch Hansen}",
  title =        "Shared Classes",
  crossref =     "BrinchHansen:1996:SSE",
  chapter =      "6",
  pages =        "??--??",
  year =         "1996",
  bibdate =      "Mon Jul 25 16:32:26 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:1996:SM,
  author =       "Per {Brinch Hansen}",
  title =        "Structured Multiprogramming",
  crossref =     "BrinchHansen:1996:SSE",
  chapter =      "4",
  pages =        "??--??",
  year =         "1996",
  bibdate =      "Mon Jul 25 16:32:26 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:1996:SOSa,
  author =       "Per {Brinch Hansen}",
  title =        "{Solo} Operating System: a {Concurrent Pascal}
                 Program",
  crossref =     "BrinchHansen:1996:SSE",
  chapter =      "8",
  pages =        "??--??",
  year =         "1996",
  bibdate =      "Mon Jul 25 16:32:26 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/w/wirth-niklaus.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:1996:SOSb,
  author =       "Per {Brinch Hansen}",
  title =        "{Solo} Operating System: Processes, Monitors, and
                 Classes",
  crossref =     "BrinchHansen:1996:SSE",
  chapter =      "9",
  pages =        "??--??",
  year =         "1996",
  bibdate =      "Mon Jul 25 16:32:26 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:1996:SPL,
  author =       "Per {Brinch Hansen}",
  title =        "{SuperPascal}: a Publication Language for Parallel
                 Scientific Computing",
  crossref =     "BrinchHansen:1996:SSE",
  chapter =      "24",
  pages =        "??--??",
  year =         "1996",
  bibdate =      "Mon Jul 25 16:32:26 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/w/wirth-niklaus.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:1996:TMS,
  author =       "Per {Brinch Hansen}",
  title =        "Testing a Multiprogramming System",
  crossref =     "BrinchHansen:1996:SSE",
  chapter =      "5",
  pages =        "??--??",
  year =         "1996",
  bibdate =      "Mon Jul 25 16:32:26 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@Article{BrinchHansen:1997:RSS,
  author =       "Per {Brinch Hansen}",
  title =        "Review of The Search for Simplicity Essays in Parallel
                 Programming",
  journal =      j-SIGPLAN,
  volume =       "32",
  number =       "11",
  pages =        "31--??",
  month =        nov,
  year =         "1997",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Feb 20 10:34:09 MST 1998",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1990.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{BrinchHansen:1998:CGS,
  author =       "Per {Brinch Hansen}",
  title =        "Conjugate gradient solution of linear equations",
  journal =      j-CPE,
  volume =       "10",
  number =       "2",
  pages =        "139--156",
  month =        feb,
  year =         "1998",
  CODEN =        "CPEXEI",
  ISSN =         "1040-3108 (print), 1096-9128 (electronic)",
  ISSN-L =       "1040-3108",
  bibdate =      "Tue Sep 7 06:06:38 MDT 1999",
  bibsource =    "http://www.interscience.wiley.com/jpages/1040-3108/;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/cpe.bib;
                 http://www3.interscience.wiley.com/journalfinder.html",
  URL =          "http://www3.interscience.wiley.com/cgi-bin/abstract?ID=5370;
                 http://www3.interscience.wiley.com/cgi-bin/fulltext?ID=5370&PLACEBO=IE.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Concurrency, practice and experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/%28ISSN%291532-0634/issues",
}

@Article{BrinchHansen:1998:EHP,
  author =       "Per {Brinch Hansen}",
  title =        "An Evaluation of {High Performance Fortran}",
  journal =      j-SIGPLAN,
  volume =       "33",
  number =       "3",
  pages =        "57--64",
  month =        mar,
  year =         "1998",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/275168.275173",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:17:45 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/fortran3.bib;
                 https://www.math.utah.edu/pub/tex/bib/hpfortran.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1990.bib",
  note =         "The author strongly criticizes HPF, and remarks ``HPF
                 has severe conceptual and practical limitations.'' See
                 response \cite{Offner:1998:PBH}.",
  abstract =     "High Performance Fortran (HPF) is evaluated by
                 rewriting sequential model programs for Householder
                 reduction, simulated annealing, and grid relaxation.
                 The author concludes that HPF has severe conceptual and
                 practical limitations.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{BrinchHansen:1998:EMP,
  author =       "Per {Brinch Hansen}",
  title =        "An Evaluation of the {Message-Passing Interface}",
  journal =      j-SIGPLAN,
  volume =       "33",
  number =       "3",
  pages =        "65--72",
  month =        mar,
  year =         "1998",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/275168.275174",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Apr 30 08:30:23 MDT 1998",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/pvm.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1990.bib",
  note =         "The author criticizes MPI, and remarks ``MPI \ldots{}
                 lack[s] the elegance and security that can only by
                 checked by a parallel programming language.''",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{BrinchHansen:1998:LE,
  author =       "Per {Brinch Hansen}",
  title =        "Letter to the Editor",
  journal =      j-SIGPLAN,
  volume =       "33",
  number =       "8",
  pages =        "32--33",
  month =        aug,
  year =         "1998",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Fri Sep 11 08:45:37 1998",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1990.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@InCollection{BrinchHansen:1999:C,
  author =       "Per {Brinch Hansen}",
  title =        "Classes",
  crossref =     "BrinchHansen:1999:PEJ",
  pages =        "183--221",
  year =         "1999",
  DOI =          "https://doi.org/10.1007/978-1-4612-1514-1_11",
  bibdate =      "Sat Jul 23 13:05:39 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@Article{BrinchHansen:1999:JIP,
  author =       "Per {Brinch Hansen}",
  title =        "{Java}'s insecure parallelism",
  journal =      j-SIGPLAN,
  volume =       "34",
  number =       "4",
  pages =        "38--45",
  month =        apr,
  year =         "1999",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/312009.312034",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:18:01 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/java.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1990.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@InCollection{BrinchHansen:1999:Ma,
  author =       "Per {Brinch Hansen}",
  title =        "Matrices",
  crossref =     "BrinchHansen:1999:PEJ",
  pages =        "129--142",
  year =         "1999",
  DOI =          "https://doi.org/10.1007/978-1-4612-1514-1_8",
  bibdate =      "Sat Jul 23 13:05:39 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:1999:Mb,
  author =       "Per {Brinch Hansen}",
  title =        "Methods",
  crossref =     "BrinchHansen:1999:PEJ",
  pages =        "143--166",
  year =         "1999",
  DOI =          "https://doi.org/10.1007/978-1-4612-1514-1_9",
  bibdate =      "Sat Jul 23 13:05:39 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:1999:MC,
  author =       "Per {Brinch Hansen}",
  title =        "Multiple Choice",
  crossref =     "BrinchHansen:1999:PEJ",
  pages =        "47--64",
  year =         "1999",
  DOI =          "https://doi.org/10.1007/978-1-4612-1514-1_3",
  bibdate =      "Sat Jul 23 13:05:39 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:1999:R,
  author =       "Per {Brinch Hansen}",
  title =        "Recursion",
  crossref =     "BrinchHansen:1999:PEJ",
  pages =        "167--182",
  year =         "1999",
  DOI =          "https://doi.org/10.1007/978-1-4612-1514-1_10",
  bibdate =      "Sat Jul 23 13:05:39 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:1999:SA,
  author =       "Per {Brinch Hansen}",
  title =        "Simple Arrays",
  crossref =     "BrinchHansen:1999:PEJ",
  pages =        "113--128",
  year =         "1999",
  DOI =          "https://doi.org/10.1007/978-1-4612-1514-1_7",
  bibdate =      "Sat Jul 23 13:05:39 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:1999:SC,
  author =       "Per {Brinch Hansen}",
  title =        "Simple Choice",
  crossref =     "BrinchHansen:1999:PEJ",
  pages =        "27--45",
  year =         "1999",
  DOI =          "https://doi.org/10.1007/978-1-4612-1514-1_2",
  bibdate =      "Sat Jul 23 13:05:39 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:1999:SP,
  author =       "Per {Brinch Hansen}",
  title =        "Simple Programs",
  crossref =     "BrinchHansen:1999:PEJ",
  pages =        "1--26",
  year =         "1999",
  DOI =          "https://doi.org/10.1007/978-1-4612-1514-1_1",
  bibdate =      "Sat Jul 23 13:05:39 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:1999:SR,
  author =       "Per {Brinch Hansen}",
  title =        "Simple Repetition",
  crossref =     "BrinchHansen:1999:PEJ",
  pages =        "65--76",
  year =         "1999",
  DOI =          "https://doi.org/10.1007/978-1-4612-1514-1_4",
  bibdate =      "Sat Jul 23 13:05:39 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@Article{BrinchHansen:1999:TCJ,
  author =       "Per {Brinch Hansen}",
  title =        "Technical Correspondence: {Java}'s Insecure
                 Parallelism",
  journal =      j-SIGPLAN,
  volume =       "34",
  number =       "4",
  pages =        "38--45",
  month =        apr,
  year =         "1999",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Tue Sep 26 17:06:07 MDT 2000",
  bibsource =    "http://ftp.informatik.rwth-aachen.de/dblp/db/journals/sigplan/sigplan34.html;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/java.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1990.bib",
  URL =          "http://brinch-hansen.net/papers/1999b.pdf;
                 http://ftp.informatik.rwth-aachen.de/dblp/db/indices/a-tree/h/Hansen:Per_Brinch.html",
  abstract =     "The author examines the synchronization features of
                 Java and finds that they are insecure variants of his
                 earliest ideas in parallel programming published in
                 1972--73. The claim that Java supports monitors is
                 shown to be false. The author concludes that Java
                 ignores the last twenty-five years of research in
                 parallel programming languages.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@InCollection{BrinchHansen:1999:TF,
  author =       "Per {Brinch Hansen}",
  title =        "Text Files",
  crossref =     "BrinchHansen:1999:PEJ",
  pages =        "91--112",
  year =         "1999",
  DOI =          "https://doi.org/10.1007/978-1-4612-1514-1_6",
  bibdate =      "Sat Jul 23 13:05:39 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:1999:UR,
  author =       "Per {Brinch Hansen}",
  title =        "Unbounded Repetition",
  crossref =     "BrinchHansen:1999:PEJ",
  pages =        "77--90",
  year =         "1999",
  DOI =          "https://doi.org/10.1007/978-1-4612-1514-1_5",
  bibdate =      "Sat Jul 23 13:05:39 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@Article{BrinchHansen:2000:LEP,
  author =       "Per {Brinch Hansen}",
  title =        "Letter to the {Editor}: {`Parallelism and recursion in
                 message passing libraries: An efficient methodology',
                 C. Rodr{\'\i}guez, F. de Sande, C. Le{\'o}n and L.
                 Garc{\'\i}a, {\em Concurrency: Practice and
                 Experience\/} 1999; 11(7):355--365}",
  journal =      j-CPE,
  volume =       "12",
  number =       "15",
  pages =        "1511--1513",
  day =          "25",
  month =        dec,
  year =         "2000",
  CODEN =        "CPEXEI",
  DOI =          "https://doi.org/10.1002/1096-9128(20001225)12:15<1511::AID-CPE566>3.0.CO;2-F",
  ISSN =         "1040-3108 (print), 1096-9128 (electronic)",
  ISSN-L =       "1040-3108",
  bibdate =      "Sat Apr 7 06:56:11 MDT 2001",
  bibsource =    "http://www.interscience.wiley.com/jpages/1040-3108;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/cpe.bib;
                 http://www3.interscience.wiley.com/journalfinder.html",
  note =         "See \cite{Rodriguez:1999:PRM,Leon:2000:ARP}.",
  URL =          "http://www3.interscience.wiley.com/cgi-bin/abstract/76505649/START;
                 http://www3.interscience.wiley.com/cgi-bin/fulltext?ID=76505649&PLACEBO=IE.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Concurrency, practice and experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/%28ISSN%291532-0634/issues",
}

@InCollection{BrinchHansen:2001:EOS,
  author =       "Per {Brinch Hansen}",
  title =        "The Evolution of Operating Systems",
  crossref =     "BrinchHansen:2001:COS",
  pages =        "1--34",
  year =         "2001",
  DOI =          "https://doi.org/10.1007/978-1-4757-3510-9_1",
  bibdate =      "Thu Jul 21 15:48:14 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "http://brinch-hansen.net/papers/2001b.pdf",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:2001:RSM,
  author =       "Per {Brinch Hansen}",
  title =        "{RC 4000} Software: Multiprogramming System",
  crossref =     "BrinchHansen:2001:COS",
  pages =        "237--281",
  year =         "2001",
  DOI =          "https://doi.org/10.1007/978-1-4757-3510-9_13",
  bibdate =      "Thu Jul 21 15:48:14 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:2001:SOSa,
  author =       "Per {Brinch Hansen}",
  title =        "The {Solo} Operating System: A {Concurrent Pascal}
                 Program",
  crossref =     "BrinchHansen:2001:COS",
  pages =        "324--336",
  year =         "2001",
  DOI =          "https://doi.org/10.1007/978-1-4757-3510-9_16",
  bibdate =      "Thu Jul 21 15:48:14 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/w/wirth-niklaus.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:2001:SOSb,
  author =       "Per {Brinch Hansen}",
  title =        "The {Solo} Operating System: Processes, Monitors and
                 Classes",
  crossref =     "BrinchHansen:2001:COS",
  pages =        "337--384",
  year =         "2001",
  DOI =          "https://doi.org/10.1007/978-1-4757-3510-9_17",
  bibdate =      "Thu Jul 21 15:48:14 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:2002:DP,
  author =       "Per {Brinch Hansen}",
  title =        "Design Principles",
  crossref =     "BrinchHansen:2002:OCP",
  pages =        "382--393",
  year =         "2002",
  DOI =          "https://doi.org/10.1007/978-1-4757-3472-0_14",
  bibdate =      "Sat Jul 23 07:01:09 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:2002:DPC,
  author =       "Per {Brinch Hansen}",
  title =        "Distributed Processes: a Concurrent Programming
                 Concept",
  crossref =     "BrinchHansen:2002:OCP",
  pages =        "444--463",
  year =         "2002",
  DOI =          "https://doi.org/10.1007/978-1-4757-3472-0_17",
  bibdate =      "Sat Jul 23 07:01:09 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:2002:EPR,
  author =       "Per {Brinch Hansen}",
  title =        "Efficient Parallel Recursion",
  crossref =     "BrinchHansen:2002:OCP",
  pages =        "525--534",
  year =         "2002",
  DOI =          "https://doi.org/10.1007/978-1-4757-3472-0_20",
  bibdate =      "Sat Jul 23 07:01:09 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:2002:ICP,
  author =       "Per {Brinch Hansen}",
  title =        "The Invention of Concurrent Programming",
  crossref =     "BrinchHansen:2002:OCP",
  pages =        "3--61",
  year =         "2002",
  DOI =          "https://doi.org/10.1007/978-1-4757-3472-0_1",
  bibdate =      "Thu Jul 21 16:12:58 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "http://brinch-hansen.net/papers/2002b.pdf",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:2002:JPL,
  author =       "Per {Brinch Hansen}",
  title =        "{Joyce} --- a Programming Language for Distributed
                 Systems",
  crossref =     "BrinchHansen:2002:OCP",
  pages =        "464--492",
  year =         "2002",
  DOI =          "https://doi.org/10.1007/978-1-4757-3472-0_18",
  bibdate =      "Sat Jul 23 07:01:09 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:2002:OCO,
  author =       "Per {Brinch Hansen}",
  title =        "An Outline of a Course on Operating System
                 Principles",
  crossref =     "BrinchHansen:2002:OCP",
  pages =        "245--254",
  year =         "2002",
  DOI =          "https://doi.org/10.1007/978-1-4757-3472-0_7",
  bibdate =      "Sat Jul 23 07:01:09 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:2002:PLC,
  author =       "Per {Brinch Hansen}",
  title =        "The Programming Language {Concurrent Pascal}",
  crossref =     "BrinchHansen:2002:OCP",
  pages =        "297--318",
  year =         "2002",
  DOI =          "https://doi.org/10.1007/978-1-4757-3472-0_11",
  bibdate =      "Sat Jul 23 07:01:09 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/w/wirth-niklaus.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:2002:RSM,
  author =       "Per {Brinch Hansen}",
  title =        "{RC 4000} Software: Multiprogramming System",
  crossref =     "BrinchHansen:2002:OCP",
  pages =        "153--197",
  year =         "2002",
  DOI =          "https://doi.org/10.1007/978-1-4757-3472-0_4",
  bibdate =      "Sat Jul 23 07:01:09 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:2002:SC,
  author =       "Per {Brinch Hansen}",
  title =        "Shared Classes",
  crossref =     "BrinchHansen:2002:OCP",
  pages =        "265--271",
  year =         "2002",
  DOI =          "https://doi.org/10.1007/978-1-4757-3472-0_9",
  bibdate =      "Sat Jul 23 07:01:09 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:2002:SM,
  author =       "Per {Brinch Hansen}",
  title =        "Structured Multiprogramming",
  crossref =     "BrinchHansen:2002:OCP",
  pages =        "255--264",
  year =         "2002",
  DOI =          "https://doi.org/10.1007/978-1-4757-3472-0_8",
  bibdate =      "Sat Jul 23 07:01:09 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:2002:SOSa,
  author =       "Per {Brinch Hansen}",
  title =        "The {Solo} Operating System: a {Concurrent Pascal}
                 Program",
  crossref =     "BrinchHansen:2002:OCP",
  pages =        "321--333",
  year =         "2002",
  DOI =          "https://doi.org/10.1007/978-1-4757-3472-0_12",
  bibdate =      "Sat Jul 23 07:01:09 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/w/wirth-niklaus.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:2002:SOSb,
  author =       "Per {Brinch Hansen}",
  title =        "The {Solo} Operating System: Processes, Monitors and
                 Classes",
  crossref =     "BrinchHansen:2002:OCP",
  pages =        "334--381",
  year =         "2002",
  DOI =          "https://doi.org/10.1007/978-1-4757-3472-0_13",
  bibdate =      "Sat Jul 23 07:01:09 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{BrinchHansen:2002:SPL,
  author =       "Per {Brinch Hansen}",
  title =        "{SuperPascal}: a Publication Language for Parallel
                 Scientific Computing",
  crossref =     "BrinchHansen:2002:OCP",
  pages =        "495--524",
  year =         "2002",
  DOI =          "https://doi.org/10.1007/978-1-4757-3472-0_19",
  bibdate =      "Sat Jul 23 07:01:09 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@Misc{BrinchHansen:2004:PS,
  author =       "Per {Brinch Hansen}",
  title =        "A Programmer's Story",
  howpublished = "Web site.",
  pages =        "197",
  year =         "2004",
  bibdate =      "Thu Jul 21 16:35:35 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  URL =          "http://brinch-hansen.net/",
  acknowledgement = ack-nhfb,
  tableofcontents = "Front matter / i \\
                 1: Learning to Read and Write 1938--57 / 1 \\
                 2: Choosing a Career 1957--63 / 17 \\
                 3: Learning from the Masters 1963--66 / 35 \\
                 4: Young Man in a Hurry 1966--70 / 59 \\
                 5: Shaping a New Field 1970--72 / 81 \\
                 6: Inventing the Future 1972--76 / 103 \\
                 7: The End of an Era 1976--84 / 131 \\
                 8: Danish Interlude 1984--87 / 153 \\
                 9: Back in America 1987--2004 / 163 \\
                 Sources / 181 \\
                 Index / 189",
}

%%% ====================================================================
%%%           Part 2: Publications about Per Brinch Hansen
%%%
%%% NB: This section also includes entries for chapters in books edited
%%% by Per Brinch Hansen, even if they are not directly about his works.
%%%
%%% Bibliography entries, sorted in approximate publication order with
%%% ``bibsort --byyear'':
@Article{Courtois:1972:CCT,
  author =       "P. J. Courtois and F. Heymans and David Lorge Parnas",
  title =        "Comments on {{\em A Comparison of Two Synchronizing
                 Concepts}} by {Per Brinch Hansen}",
  journal =      j-ACTA-INFO,
  volume =       "1",
  number =       "??",
  pages =        "375--376",
  month =        "????",
  year =         "1972",
  CODEN =        "AINFA2",
  ISSN =         "0001-5903 (print), 1432-0525 (electronic)",
  ISSN-L =       "0001-5903",
  bibsource =    "ftp://ftp.ira.uka.de/pub/bibliography/Misc/HBP/ACTAI.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/actainfo.bib",
  note =         "See
                 \cite{BrinchHansen:1972:CTS,BrinchHansen:1973:RCC}.",
  fjournal =     "Acta Informatica",
  journal-URL =  "http://link.springer.com/journal/236",
}

@Article{Naur:1975:NBJ,
  author =       "P. Naur",
  title =        "New Books and Journals",
  journal =      j-BIT,
  volume =       "15",
  number =       "4",
  pages =        "455--457",
  month =        dec,
  year =         "1975",
  CODEN =        "BITTEL, NBITAB",
  DOI =          "https://doi.org/10.1007/BF01931685",
  ISSN =         "0006-3835 (print), 1572-9125 (electronic)",
  ISSN-L =       "0006-3835",
  bibdate =      "Wed Jan 4 18:52:14 MST 2006",
  bibsource =    "http://springerlink.metapress.com/openurl.asp?genre=issue&issn=0006-3835&volume=15&issue=4;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/bit.bib",
  note =         "Includes review of {\em Operating Systems Principles},
                 by Per Brinch Hansen.",
  URL =          "http://www.springerlink.com/openurl.asp?genre=article&issn=0006-3835&volume=15&issue=4&spage=455",
  acknowledgement = ack-nhfb,
  fjournal =     "BIT (Nordisk tidskrift for informationsbehandling)",
  journal-URL =  "http://link.springer.com/journal/10543",
}

@Article{Whiteside:1978:BRR,
  author =       "A. E. Whiteside",
  title =        "Book reviews: Review of {{\em The Architecture of
                 Concurrent Programs\/}} by {Per Brinch Hansen,
                 Prentice-Hall 1977}",
  journal =      j-COMP-ARCH-NEWS,
  volume =       "6",
  number =       "6",
  pages =        "32--32",
  month =        feb,
  year =         "1978",
  CODEN =        "CANED2",
  DOI =          "https://doi.org/10.1145/641815.641821",
  ISSN =         "0163-5964 (ACM), 0884-7495 (IEEE)",
  ISSN-L =       "0163-5964",
  bibdate =      "Fri May 12 09:41:28 MDT 2006",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigarch.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGARCH Computer Architecture News",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J89",
}

@Article{Regener:1984:MID,
  author =       "Eric Regener",
  title =        "Multiprecision Integer Division Examples Using
                 Arbitrary Radix",
  journal =      j-TOMS,
  volume =       "10",
  number =       "3",
  pages =        "325--328",
  month =        sep,
  year =         "1984",
  CODEN =        "ACMSCU",
  DOI =          "https://doi.org/10.1145/1271.2738",
  ISSN =         "0098-3500 (print), 1557-7295 (electronic)",
  ISSN-L =       "0098-3500",
  MRclass =      "65V05",
  MRnumber =     "86g:65241",
  bibdate =      "Sun Sep 04 20:18:56 1994",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/fparith.bib;
                 https://www.math.utah.edu/pub/tex/bib/toms.bib",
  note =         "See also \cite{BrinchHansen:1994:MLD}.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM Transactions on Mathematical Software (TOMS)",
  journal-URL =  "http://dl.acm.org/pub.cfm?id=J782",
}

@Article{Dijkstra:1989:LSR,
  author =       "Edsger W. Dijkstra and W. H. J. Feijen",
  title =        "The Linear Search Revisited",
  journal =      j-STRUCT-PROGRAM,
  volume =       "10",
  number =       "1",
  pages =        "5--9",
  year =         "1989",
  CODEN =        "STPGEM",
  ISSN =         "0935-1183",
  bibdate =      "Mon Mar 16 08:14:00 2015",
  bibsource =    "DBLP;
                 http://dblp.uni-trier.de/db/journals/stp/stp10.html#DijkstraF89;
                 https://www.math.utah.edu/pub/bibnet/authors/d/dijkstra-edsger-w.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/mirrors/ftp.ira.uka.de/bibliography/Compiler/Collberg.bib;
                 https://www.math.utah.edu/pub/mirrors/ftp.ira.uka.de/bibliography/Misc/DBLP/1989.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "Structured Programming",
  keywords =     "ALGORITHM, LINEAR SEARCH, SPECIFICATION,
                 VERIFICATION",
  oldlabel =     "EWD:EWD1029pub",
}

@Article{VandeVelde:1995:BNR,
  author =       "Erik F. {Van de Velde}",
  title =        "Book News \& Reviews: {Studies in Computational
                 Science: Parallel Programming Paradigms} by {Per Brinch
                 Hansen}",
  journal =      j-IEEE-COMPUT-SCI-ENG,
  volume =       "2",
  number =       "4",
  pages =        "85--87",
  month =        "Winter",
  year =         "1995",
  CODEN =        "ISCEE4",
  DOI =          "https://doi.org/10.1109/MCSE.1995.476373",
  ISSN =         "1070-9924 (print), 1558-190X (electronic)",
  ISSN-L =       "1070-9924",
  bibdate =      "Sat Jan 9 08:57:23 MST 1999",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/ieeecomputscieng.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Computational Science \& Engineering",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=99",
}

@Article{Kruijer:1997:BNS,
  author =       "H. S. M. Kruijer",
  title =        "Book Nook: {The Search for Simplicity Essays in
                 Parallel Programming by Per Brinch Hansen}",
  journal =      j-SIGPLAN,
  volume =       "32",
  number =       "11",
  pages =        "31--32",
  month =        nov,
  year =         "1997",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/270941.607947",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:17:41 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1990.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{Berman:1998:ARP,
  author =       "A. Michael Berman",
  title =        "Amendment to Review of {Per Brinch Hansen, {\em The
                 Search for Simplicity --- Essays in Parallel
                 Programming}}",
  journal =      j-SIGPLAN,
  volume =       "33",
  number =       "3",
  pages =        "36--36",
  month =        mar,
  year =         "1998",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Thu Apr 30 08:30:23 MDT 1998",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1990.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{Offner:1998:PBH,
  author =       "Carl D. Offner",
  title =        "{Per Brinch Hansen}'s Concerns about {High Performance
                 Fortran}",
  journal =      j-SIGPLAN,
  volume =       "33",
  number =       "8",
  pages =        "34--39",
  month =        aug,
  year =         "1998",
  CODEN =        "SINODQ",
  DOI =          "https://doi.org/10.1145/286385.286389",
  ISSN =         "0362-1340 (print), 1523-2867 (print), 1558-1160
                 (electronic)",
  ISSN-L =       "0362-1340",
  bibdate =      "Sun Dec 14 09:17:50 MST 2003",
  bibsource =    "http://portal.acm.org/;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/fortran3.bib;
                 https://www.math.utah.edu/pub/tex/bib/hpfortran.bib;
                 https://www.math.utah.edu/pub/tex/bib/sigplan1990.bib",
  note =         "See \cite{BrinchHansen:1998:EHP}.",
  abstract =     "Per Brinch Hansen's criticisms of High Performance
                 Fortran in the March issue of this journal are examined
                 and shown to be without foundation.",
  acknowledgement = ack-nhfb,
  fjournal =     "ACM SIGPLAN Notices",
  journal-URL =  "http://portal.acm.org/browse_dl.cfm?idx=J706",
}

@Article{Rodriguez:1999:PRM,
  author =       "C. Rodr{\'\i}guez and F. {De Sande} and C. Le{\'o}n
                 and L. Garc{\'\i}a",
  title =        "Parallelism and recursion in message passing
                 libraries: an efficient methodology",
  journal =      j-CPE,
  volume =       "11",
  number =       "7",
  pages =        "355--365",
  month =        jun,
  year =         "1999",
  CODEN =        "CPEXEI",
  ISSN =         "1040-3108 (print), 1096-9128 (electronic)",
  ISSN-L =       "1040-3108",
  bibdate =      "Tue Sep 7 06:06:49 MDT 1999",
  bibsource =    "http://www.interscience.wiley.com/jpages/1040-3108/;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/cpe.bib;
                 http://www3.interscience.wiley.com/journalfinder.html",
  note =         "See correspondence
                 \cite{BrinchHansen:2000:LEP,Leon:2000:ARP}.",
  URL =          "http://www3.interscience.wiley.com/cgi-bin/abstract?ID=62500298;
                 http://www3.interscience.wiley.com/cgi-bin/fulltext?ID=62500298&PLACEBO=IE.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Concurrency, practice and experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/%28ISSN%291532-0634/issues",
}

@Article{Leon:2000:ARP,
  author =       "Casiano Rodr{\'\i}guez Le{\'o}n",
  title =        "Authors' Response: {`Parallelism and recursion in
                 message passing libraries: An efficient methodology',
                 C. Rodr{\'\i}guez, F. de Sande, C. Le{\'o}n and L.
                 Garc{\'\i}a, {\em Concurrency: Practice and
                 Experience\/} 1999; 11(7):355--365}",
  journal =      j-CPE,
  volume =       "12",
  number =       "15",
  pages =        "1515--1516",
  day =          "25",
  month =        dec,
  year =         "2000",
  CODEN =        "CPEXEI",
  DOI =          "https://doi.org/10.1002/1096-9128(20001225)12:15<1515::AID-CPE567>3.0.CO;2-0",
  ISSN =         "1040-3108 (print), 1096-9128 (electronic)",
  ISSN-L =       "1040-3108",
  bibdate =      "Sat Apr 7 06:56:11 MDT 2001",
  bibsource =    "http://www.interscience.wiley.com/jpages/1040-3108;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/cpe.bib;
                 http://www3.interscience.wiley.com/journalfinder.html",
  note =         "See \cite{Rodriguez:1999:PRM,BrinchHansen:2000:LEP}.",
  URL =          "http://www3.interscience.wiley.com/cgi-bin/abstract/76505647/START;
                 http://www3.interscience.wiley.com/cgi-bin/fulltext?ID=76505647&PLACEBO=IE.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Concurrency, practice and experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/%28ISSN%291532-0634/issues",
}

@InCollection{Brownbridge:2001:NCU,
  author =       "David R. Brownbridge and Lindsay F. Marshall and Brian
                 Randell",
  title =        "The {Newcastle Connection} or {Unixes} of the World
                 Unite",
  crossref =     "BrinchHansen:2001:COS",
  pages =        "528--549",
  year =         "2001",
  DOI =          "https://doi.org/10.1007/978-1-4757-3510-9_24",
  bibdate =      "Thu Jul 21 15:48:14 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{Burns:2001:ESK,
  author =       "David Burns and E. Neville Hawkins and D. Robin Judd
                 and John L. Venn",
  title =        "The {Egdon} System for the {KDF9}",
  crossref =     "BrinchHansen:2001:COS",
  pages =        "102--114",
  year =         "2001",
  DOI =          "https://doi.org/10.1007/978-1-4757-3510-9_7",
  bibdate =      "Thu Jul 21 15:48:14 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{Corbato:2001:ETS,
  author =       "Fernando J. Corbat{\'o} and Marjorie Merwin-Daggett
                 and Robert C. Daley",
  title =        "An Experimental Time-Sharing System",
  crossref =     "BrinchHansen:2001:COS",
  pages =        "117--137",
  year =         "2001",
  DOI =          "https://doi.org/10.1007/978-1-4757-3510-9_8",
  bibdate =      "Thu Jul 21 15:48:14 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{Daley:2001:GPF,
  author =       "Robert C. Daley and Peter G. Neumann",
  title =        "A General-Purpose File System for Secondary Storage",
  crossref =     "BrinchHansen:2001:COS",
  pages =        "138--166",
  year =         "2001",
  DOI =          "https://doi.org/10.1007/978-1-4757-3510-9_9",
  bibdate =      "Thu Jul 21 15:48:14 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{Dijkstra:2001:SMS,
  author =       "Edsger W. Dijkstra",
  title =        "The Structure of the {``THE''} Multiprogramming
                 System",
  crossref =     "BrinchHansen:2001:COS",
  pages =        "223--236",
  year =         "2001",
  DOI =          "https://doi.org/10.1007/978-1-4757-3510-9_12",
  bibdate =      "Thu Jul 21 15:48:14 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{Fraser:2001:FID,
  author =       "A. G. Fraser",
  title =        "File Integrity in a Disc-Based Multi-Access System",
  crossref =     "BrinchHansen:2001:COS",
  pages =        "167--194",
  year =         "2001",
  DOI =          "https://doi.org/10.1007/978-1-4757-3510-9_10",
  bibdate =      "Thu Jul 21 15:48:14 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{Kilburn:2001:AS,
  author =       "Tom Kilburn and R. Bruce Payne and David J. Howarth",
  title =        "The {Atlas} Supervisor",
  crossref =     "BrinchHansen:2001:COS",
  pages =        "49--77",
  year =         "2001",
  DOI =          "https://doi.org/10.1007/978-1-4757-3510-9_4",
  bibdate =      "Thu Jul 21 15:48:14 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{Lampson:2001:OOS,
  author =       "Butler W. Lampson and Robert F. Sproull",
  title =        "An Open Operating System for a Single-User Machine",
  crossref =     "BrinchHansen:2001:COS",
  pages =        "414--432",
  year =         "2001",
  DOI =          "https://doi.org/10.1007/978-1-4757-3510-9_19",
  bibdate =      "Thu Jul 21 15:48:14 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{Lauesen:2001:LSB,
  author =       "S{\o}ren Lauesen",
  title =        "A Large Semaphore Based Operating System",
  crossref =     "BrinchHansen:2001:COS",
  pages =        "295--323",
  year =         "2001",
  DOI =          "https://doi.org/10.1007/978-1-4757-3510-9_15",
  bibdate =      "Thu Jul 21 15:48:14 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{Liskov:2001:DVO,
  author =       "Barbara H. Liskov",
  title =        "The Design of the {Venus} Operating System",
  crossref =     "BrinchHansen:2001:COS",
  pages =        "282--294",
  year =         "2001",
  DOI =          "https://doi.org/10.1007/978-1-4757-3510-9_14",
  bibdate =      "Thu Jul 21 15:48:14 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{Lynch:2001:DHC,
  author =       "William C. Lynch",
  title =        "Description of a High Capacity, Fast Turnaround
                 University Computing Center",
  crossref =     "BrinchHansen:2001:COS",
  pages =        "88--101",
  year =         "2001",
  DOI =          "https://doi.org/10.1007/978-1-4757-3510-9_6",
  bibdate =      "Thu Jul 21 15:48:14 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{Oliphint:2001:OSB,
  author =       "Clark Oliphint",
  title =        "Operating System for the {B 5000}",
  crossref =     "BrinchHansen:2001:COS",
  pages =        "78--87",
  year =         "2001",
  DOI =          "https://doi.org/10.1007/978-1-4757-3510-9_5",
  bibdate =      "Thu Jul 21 15:48:14 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{Redell:2001:POS,
  author =       "David D. Redell and Yogen K. Dalal and Thomas R.
                 Horsley and Hugh C. Lauer and William C. Lynch and Paul
                 R. McJones and Hal G. Murray and Stephen C. Purcell",
  title =        "{Pilot}: an Operating System for a Personal Computer",
  crossref =     "BrinchHansen:2001:COS",
  pages =        "433--459",
  year =         "2001",
  DOI =          "https://doi.org/10.1007/978-1-4757-3510-9_20",
  bibdate =      "Thu Jul 21 15:48:14 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{Ritchie:2001:UTS,
  author =       "Dennis M. Ritchie and Ken Thompson",
  title =        "The {Unix} Time-Sharing System",
  crossref =     "BrinchHansen:2001:COS",
  pages =        "195--220",
  year =         "2001",
  DOI =          "https://doi.org/10.1007/978-1-4757-3510-9_11",
  bibdate =      "Thu Jul 21 15:48:14 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{Ryckman:2001:ICG,
  author =       "George F. Ryckman",
  title =        "The {IBM 701} Computer at the {General Motors Research
                 Laboratories}",
  crossref =     "BrinchHansen:2001:COS",
  pages =        "37--40",
  year =         "2001",
  DOI =          "https://doi.org/10.1007/978-1-4757-3510-9_2",
  bibdate =      "Thu Jul 21 15:48:14 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{Shrivastava:2001:DRR,
  author =       "Santosh Shrivastava and Fabio Panzieri",
  title =        "The Design of a Reliable Remote Procedure Call
                 Mechanism",
  crossref =     "BrinchHansen:2001:COS",
  pages =        "511--527",
  year =         "2001",
  DOI =          "https://doi.org/10.1007/978-1-4757-3510-9_23",
  bibdate =      "Thu Jul 21 15:48:14 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{Smith:2001:BSP,
  author =       "Richard B. Smith",
  title =        "The {BKS} System for the {Philco-2000}",
  crossref =     "BrinchHansen:2001:COS",
  pages =        "43--45",
  year =         "2001",
  DOI =          "https://doi.org/10.1007/978-1-4757-3510-9_3",
  bibdate =      "Thu Jul 21 15:48:14 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{Smith:2001:SUI,
  author =       "David C. Smith and Charles Irby and Ralph Kimball and
                 Eric Harslem",
  title =        "The {Star} User Interface: an Overview",
  crossref =     "BrinchHansen:2001:COS",
  pages =        "460--490",
  year =         "2001",
  DOI =          "https://doi.org/10.1007/978-1-4757-3510-9_21",
  bibdate =      "Thu Jul 21 15:48:14 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{Stoy:2001:EOS,
  author =       "Joe E. Stoy and Christopher Strachey",
  title =        "{OS 6} --- an Experimental Operating System for a
                 Small Computer: Input\slash Output and Filing System",
  crossref =     "BrinchHansen:2001:COS",
  pages =        "387--413",
  year =         "2001",
  DOI =          "https://doi.org/10.1007/978-1-4757-3510-9_18",
  bibdate =      "Thu Jul 21 15:48:14 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{Swinehart:2001:WSS,
  author =       "Daniel Swinehart and Gene McDaniel and David Boggs",
  title =        "{WFS}: a Simple Shared File System for a Distributed
                 Environment",
  crossref =     "BrinchHansen:2001:COS",
  pages =        "493--510",
  year =         "2001",
  DOI =          "https://doi.org/10.1007/978-1-4757-3510-9_22",
  bibdate =      "Thu Jul 21 15:48:14 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{Tanenbaum:2001:EAD,
  author =       "Andrew S. Tanenbaum and Robbert Van Renesse and Hans
                 Van Staveren and Gregory J. Sharp and Sape J. Mullender
                 and Jack Jansen and Guido {Van Rossum}",
  title =        "Experiences with the {Amoeba} Distributed Operating
                 System",
  crossref =     "BrinchHansen:2001:COS",
  pages =        "550--586",
  year =         "2001",
  DOI =          "https://doi.org/10.1007/978-1-4757-3510-9_25",
  bibdate =      "Thu Jul 21 15:48:14 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{Dijkstra:2002:CSP,
  author =       "Edsger W. Dijkstra",
  title =        "Cooperating Sequential Processes",
  crossref =     "BrinchHansen:2002:OCP",
  pages =        "65--138",
  year =         "2002",
  DOI =          "https://doi.org/10.1007/978-1-4757-3472-0_2",
  bibdate =      "Sat Jul 23 07:01:09 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/d/dijkstra-edsger-w.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{Dijkstra:2002:HOS,
  author =       "Edsger W. Dijkstra",
  title =        "Hierarchical Ordering of Sequential Processes",
  crossref =     "BrinchHansen:2002:OCP",
  pages =        "198--227",
  year =         "2002",
  DOI =          "https://doi.org/10.1007/978-1-4757-3472-0_5",
  bibdate =      "Sat Jul 23 07:01:09 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/d/dijkstra-edsger-w.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{Dijkstra:2002:SE,
  author =       "Edsger W. Dijkstra",
  title =        "A Synthesis Emerging?",
  crossref =     "BrinchHansen:2002:OCP",
  pages =        "397--412",
  year =         "2002",
  DOI =          "https://doi.org/10.1007/978-1-4757-3472-0_15",
  bibdate =      "Sat Jul 23 07:01:09 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/d/dijkstra-edsger-w.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{Dijkstra:2002:SMS,
  author =       "Edsger W. Dijkstra",
  title =        "The Structure of the {``THE''} Multiprogramming
                 System",
  crossref =     "BrinchHansen:2002:OCP",
  pages =        "139--152",
  year =         "2002",
  DOI =          "https://doi.org/10.1007/978-1-4757-3472-0_3",
  bibdate =      "Sat Jul 23 07:01:09 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/d/dijkstra-edsger-w.bib;https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{Hoare:2002:CSP,
  author =       "C. A. R. Hoare",
  title =        "Communicating Sequential Processes",
  crossref =     "BrinchHansen:2002:OCP",
  pages =        "413--443",
  year =         "2002",
  DOI =          "https://doi.org/10.1007/978-1-4757-3472-0_16",
  bibdate =      "Sat Jul 23 07:01:09 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{Hoare:2002:MOS,
  author =       "C. A. R. Hoare",
  title =        "Monitors: An Operating System Structuring Concept",
  crossref =     "BrinchHansen:2002:OCP",
  pages =        "272--294",
  year =         "2002",
  DOI =          "https://doi.org/10.1007/978-1-4757-3472-0_10",
  bibdate =      "Sat Jul 23 07:01:09 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@InCollection{Hoare:2002:TTP,
  author =       "C. A. R. Hoare",
  title =        "Towards a Theory of Parallel Programming",
  crossref =     "BrinchHansen:2002:OCP",
  pages =        "231--244",
  year =         "2002",
  DOI =          "https://doi.org/10.1007/978-1-4757-3472-0_6",
  bibdate =      "Sat Jul 23 07:01:09 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@Article{Piner:2002:CSCf,
  author =       "Mary-Louise G. Piner",
  title =        "{Computer Society} Connection: {IEEE Computer Society}
                 Recognizes Achievements of Leading Computer Engineers:
                 {Per Brinch Hansen} Recognized for Pioneering Works;
                 {Stanford President Hennessy} Receives Architecture
                 Award; {Ian F. Akyildiz} Named {Goode} Winner;
                 {Society} Digital Library Collection is Expanded;
                 {Mills Award} Honors Software Engineering
                 Achievements",
  journal =      j-COMPUTER,
  volume =       "35",
  number =       "6",
  pages =        "74--76",
  month =        jun,
  year =         "2002",
  CODEN =        "CPTRB4",
  ISSN =         "0018-9162 (print), 1558-0814 (electronic)",
  ISSN-L =       "0018-9162",
  bibdate =      "Fri Dec 12 19:53:30 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/computer2000.bib",
  URL =          "http://csdl.computer.org/dl/mags/co/2002/06/r6074.htm;
                 http://csdl.computer.org/dl/mags/co/2002/06/r6074.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "Computer",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=2",
}

@Article{Varma:2002:BSB,
  author =       "Tathagat Varma and Fernando Berzal and Nicol{\'a}s
                 Mar{\'\i}n and Tope Omitola and Matt Edgar",
  title =        "Bookshelf: Strategies for Building Better People; No
                 Bulletproof Vest for Your System; Learning from the
                 Past; a Treasure for Software Designers",
  journal =      j-IEEE-SOFTWARE,
  volume =       "19",
  number =       "6",
  pages =        "101--104",
  month =        nov # "\slash " # dec,
  year =         "2002",
  CODEN =        "IESOEG",
  ISSN =         "0740-7459 (print), 0740-7459 (electronic)",
  ISSN-L =       "0740-7459",
  bibdate =      "Fri Oct 24 16:31:57 MDT 2003",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/ieeesoft.bib",
  note =         "Review of {\em The Peopleware Papers: Notes on the
                 Human Side of Software\/} by Larry L. Constantine, {\em
                 Fundamentals of Network Security\/} by John E. Canavan,
                 {\em Classic Operating Systems\/} by Per Brinch Hansen,
                 and {\em Software Fundamentals: Collected Papers by
                 David L. Parnas\/} by David M. Weiss and Daniel M.
                 Hoffman, eds.",
  URL =          "http://dlib.computer.org/so/books/so2002/pdf/s6101.pdf",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Software",
  journal-URL =  "https://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=52",
  journalabr =   "IEEE Software",
}

@Article{Lee:2003:BPB,
  author =       "J. A. N. Lee and Thomas Haigh",
  title =        "Biographies: {Per Brinch Hansen}",
  journal =      j-IEEE-ANN-HIST-COMPUT,
  volume =       "25",
  number =       "1",
  pages =        "80--83",
  month =        jan # "\slash " # mar,
  year =         "2003",
  CODEN =        "IAHCEX",
  DOI =          "https://doi.org/10.1109/MAHC.2003.1179888",
  ISSN =         "1058-6180 (print), 1934-1547 (electronic)",
  ISSN-L =       "1058-6180",
  bibdate =      "Sat Nov 29 16:19:46 MST 2003",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/ieeeannhistcomput.bib",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Annals of the History of Computing",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=85",
}

@Article{Horspool:2007:OPB,
  author =       "Nigel Horspool",
  title =        "Obituary: {Per Brinch Hansen} (1938--2007)",
  journal =      j-SPE,
  volume =       "37",
  number =       "12",
  pages =        "1243--1243",
  month =        oct,
  year =         "2007",
  CODEN =        "SPEXBL",
  DOI =          "https://doi.org/10.1002/spe.852",
  ISSN =         "0038-0644 (print), 1097-024X (electronic)",
  ISSN-L =       "0038-0644",
  bibdate =      "Wed Oct 17 18:33:16 MDT 2007",
  bibsource =    "http://www.interscience.wiley.com/jpages/0038-0644;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/spe.bib;
                 http://www3.interscience.wiley.com/journalfinder.html",
  acknowledgement = ack-nhfb,
  ajournal =     "Softw. Pract. Exp.",
  fjournal =     "Software --- Practice and Experience",
  journal-URL =  "http://onlinelibrary.wiley.com/journal/10.1002/(ISSN)1097-024X",
  onlinedate =   "19 Sep 2007",
}

%%% ====================================================================
%%% Conference proceedings and cross referenced publications must come
%%% last.   They are sorted by year and then by citation label with
%%% ``bibsort --byyear'':
@Proceedings{Freiman:1971:IPP,
  editor =       "Charles V. Freiman and John E. Griffith and Jack L.
                 Rosenfeld",
  booktitle =    "Information Processing, Proceedings of {IFIP Congress
                 1971, Volume 1 --- Foundations and Systems, Ljubljana,
                 Yugoslavia, August 23--28, 1971}",
  title =        "Information Processing, Proceedings of {IFIP Congress
                 1971, Volume 1 --- Foundations and Systems, Ljubljana,
                 Yugoslavia, August 23--28, 1971}",
  publisher =    pub-NORTH-HOLLAND,
  address =      pub-NORTH-HOLLAND:adr,
  pages =        "xviii + 1621",
  year =         "1971",
  ISBN =         "0-7204-2063-6 (two volumes)",
  ISBN-13 =      "978-0-7204-2063-0 (two volumes)",
  LCCN =         "QA75.5 .I532 1971, TK7885.A1 I61 1971",
  bibdate =      "Tue Jul 26 11:20:13 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
}

@Proceedings{Bauer:1976:LHI,
  editor =       "Friedrich Ludwig Bauer and Klaus Samelson",
  booktitle =    "{Language hierarchies and interfaces: international
                 summer school [held July 23 to August 2, 1975 in
                 Marktoberdorf]}",
  title =        "{Language hierarchies and interfaces: international
                 summer school [held July 23 to August 2, 1975 in
                 Marktoberdorf]}",
  volume =       "46",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "x + 428",
  year =         "1976",
  DOI =          "https://doi.org/10.1007/3-540-07994-7",
  ISBN =         "0-387-07994-7 (New York), 3-540-07994-7 (Berlin),
                 3-540-37972-X (e-book)",
  ISBN-13 =      "978-0-387-07994-3 (New York), 978-3-540-07994-1
                 (Berlin), 978-3-540-37972-0 (e-book)",
  ISSN =         "0302-9743 (print), 1611-3349 (electronic)",
  ISSN-L =       "0302-9743",
  LCCN =         "QA76.6 .L335",
  bibdate =      "Fri Aug 21 09:24:18 MDT 2020",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/bibnet/authors/b/bauer-friedrich-ludwig.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/d/dijkstra-edsger-w.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hoare-c-a-r.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/w/wirth-niklaus.bib;
                 https://www.math.utah.edu/pub/tex/bib/lncs.bib",
  series =       ser-LNCS,
  URL =          "http://link.springer-ny.com/link/service/series/0558/tocs/t0046.htm;
                 http://www.springerlink.com/content/978-0-387-07994-3;
                 http://www.springerlink.com/openurl.asp?genre=book&isbn=978-3-540-07994-1;
                 http://www.springerlink.com/openurl.asp?genre=issue&issn=0302-9743&volume=46",
  ZMID =         "03518718",
  ZMnumber =     "0332.00007",
  abstract =     "Papers prepared by experts for an International Summer
                 School, held in July 1976. Focuses on program
                 development, concurrency, operating systems structures,
                 and programming systems structures.",
  acknowledgement = ack-nhfb,
  editor-dates = "Friedrich (``Fritz'') Ludwig Bauer (10 June 1924--26
                 March 2015)",
  remark =       "The International Summer School took place from July
                 23 to August 2,1975, in Marktoberdorf. This Summer
                 School was organised under the auspices of the
                 Technical University Munich, and was sponsored by the
                 NATO Scientific Affairs Division under the 1975
                 Advanced Study Institutes programme.",
  subject =      "Computer programming; Congresses; Programming
                 languages (Electronic computers); Computer
                 programming.; Programming languages (Electronic
                 computers)",
  tableofcontents = "Introduction \\
                 On the teaching of programming, i.e., on the teaching
                 of thinking / E. W. Dijkstra / 1--10 \\
                 Chapter 1: Concurrency \\
                 Parallel programming: An axiomatic approach / C. A. R.
                 Hoare / 11--42 \\
                 On-the-fly garbage collection: an exercise in
                 cooperation / E. W. Dijkstra / 43--56 \\
                 An exercise in proving parallel programs correct / D.
                 Gries / 57--81 \\
                 The programming language Concurrent Pascal / P. Brinch
                 Hansen / 82--110 \\
                 Chapter 2: Program Development \\
                 Guarded commands, non-determinacy and a calculus for
                 the derivation of programs / E. W. Dijkstra / 111--124
                 \\
                 Program production by successive transformation / M.
                 Griffiths / 125--152 \\
                 Programming as an evolutionary process / F. L. Bauer /
                 153--182 \\
                 Proof of correctness of data representations / C. A. R.
                 Hoare / 183--193 \\
                 Appendix: A philosophy of programming / F. L. Bauer /
                 194--241 \\
                 Chapter 3: Operating System Structure \\
                 The structure of an operating system / C. A. R. Hoare /
                 242--265 \\
                 Language aspects in operating systems / G.
                 Seegm{\"u}ller / 266--292 \\
                 Structured programming in the basic layers of an
                 operating system / W. A. Wulf / 293--344 \\
                 A time-wise hierarchy imposed upon the use of a
                 two-level store / E. W. Dijkstra / 345--357 \\
                 Chapter 4: Programming Systems Structure \\
                 Problems in many-language systems / A. P. Ershov /
                 358--428",
}

@Book{BrinchHansen:1977:ACP,
  author =       "Per {Brinch Hansen}",
  booktitle =    "The Architecture of Concurrent Programs",
  title =        "The Architecture of Concurrent Programs",
  publisher =    pub-PH,
  address =      pub-PH:adr,
  pages =        "xvii + 317",
  year =         "1977",
  ISBN =         "0-13-044628-9",
  ISBN-13 =      "978-0-13-044628-2",
  LCCN =         "QA76.73.C65B73",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  shorttableofcontents = "Design principles \\
                 Programming concepts \\
                 Sequential Pascal \\
                 Concurrent Pascal \\
                 The solo operating system \\
                 The job stream system \\
                 A real-time scheduler \\
                 Concurrent Pascal report \\
                 Concurrent Pascal machine",
  subject =      "Programmering; Programspr{\'y}ak; Operativsystem;
                 PASCAL; Pascal (Computer program language); Concurrent
                 Pascal (Lenguaje de programaci{\'y}on);
                 Programaci{\'y}on (Ordenadores electr{\'y}onicos);
                 Sistemas operativos; PASCAL (Langage de programmation);
                 Proceso paralelo (Inform{\'y}atica); Programaci{\'y}on
                 en paralelo; Pascal (Computer program language)",
  tableofcontents = "Programming Tools / 1 \\
                 1. Design Principles / 3 \\
                 1.1. Program quality / 3 \\
                 1.2. Simplicity / 4 \\
                 1.3. Reliability / 6 \\
                 1.4. Adaptability / 8 \\
                 1.5. Portability / 9 \\
                 1.6. Efficiency / 9 \\
                 1.7. Generality / 10 \\
                 1.8. Conclusion / 11 \\
                 1.9. Literature / 11 \\
                 2. Programming Concepts / 15 \\
                 2.1. Concurrent processes / 16 \\
                 2.2. Private data / 17 \\
                 2.3. Peripherals / 19 \\
                 2.4. Shared data / 19 \\
                 2.5. Access rights / 21 \\
                 2.6. Abstract data types / 23 \\
                 2.7. Hierarchical structure / 25 \\
                 3. Sequential Pascal / 29 \\
                 3.1. Program structure / 30 \\
                 3.2. Constants and variables / 31 \\
                 3.3. Simple data types / 33 \\
                 3.4. Structured data types / 36 \\
                 3.5. Routines / 40 \\
                 3.6. Scope rules / 41 \\
                 3.7. Type checking / 42 \\
                 3.8. Literature / 45 \\
                 4. Concurrent Pascal / 47 \\
                 4.1. Input/output / 47 \\
                 4.2. Processes / 49 \\
                 4.3. Monitors / 52 \\
                 4.4. Queues / 54 \\
                 4.5. Classes / 54 \\
                 4.6. A complete program / 57 \\
                 4.7. Execution times / 62 \\
                 4.8. Conclusion / 63 \\
                 4.9. Literature / 65 \\
                 Concurrent Programs / 67 \\
                 5. The Solo Operating System / 69 \\
                 5.1. Overview / 69 \\
                 5.2. Job interface / 80 \\
                 5.3. Processes, monitors, and classes / 98 \\
                 5.4. Disk scheduling / 142 \\
                 5.5 List of Solo components / 147 \\
                 6. The Job Stream System / 148 \\
                 6.1. Function and performance / 148 \\
                 6.2. Sequential programs and files / 153 \\
                 6.3. Concurrent program / 166 \\
                 6.4. Final remarks / 186 \\
                 6.5. List of Job stream components / 187 \\
                 7. A Real-time Scheduler / 189 \\
                 7.1. Purpose and design / 189 \\
                 7.2. Programming / 197 \\
                 7.3. Testing / 214 \\
                 7.4. Final remarks / 226 \\
                 7.5. List of Real-time components / 227 \\
                 Language Details / 229 \\
                 8. Concurrent Pascal Report / 231 \\
                 8.1. Introduction / 231 \\
                 8.2. Syntax graphs / 232 \\
                 8.3. Character set / 232 \\
                 8.4. Basic symbols / 233 \\
                 8.5. Blocks / 235 \\
                 8.6. Constants / 235 \\
                 8.7. Types / 236 \\
                 8.8. Variables / 246 \\
                 8.9. Expressions / 249 \\
                 8.10. Statements / 250 \\
                 8.11. Routines / 251 \\
                 8.12. Queues / 255 \\
                 8.13. Scope rules / 256 \\
                 8.14. Concurrent programs / 257 \\
                 8.15. PDP 11/45 system / 257 \\
                 8.16. ASCII character set / 267 \\
                 8.17. Index of report / 268 \\
                 9. Concurrent Pascal Machine / 271 \\
                 9.1. Store allocation / 271 \\
                 9.2. Code interpretation \\
                 9.3 Kernel / 283 \\
                 9.4. Compiler / 293 \\
                 The Next Step / 298 \\
                 References / 301 \\
                 List of Program Components / 304 \\
                 Danish Summary / 307 \\
                 Index / 311",
}

@Book{Linger:1979:SPT,
  author =       "R. C. Linger and H. D. Mills and B. I. Witt",
  booktitle =    "Structured Programming: Theory and Practice",
  title =        "Structured Programming: Theory and Practice",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  pages =        "xi + 402",
  year =         "1979",
  ISBN =         "0-201-14461-1",
  ISBN-13 =      "978-0-201-14461-1",
  LCCN =         "QA76.6 .L55",
  bibdate =      "Tue Jul 26 11:13:15 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
  remark =       "No tableofcontents data found, and no online source
                 yet located.",
}

@Book{Brauer:1981:PLA,
  editor =       "Wilfried Brauer and Per {Brinch Hansen} and David
                 Gries and C. Moler and Gerhard Seegm{\"u}ller and Josef
                 Stoer and Niklaus Wirth",
  booktitle =    "The Programming Language {Ada Reference Manual,
                 Proposed Standard Document, United States Department of
                 Defense}",
  title =        "The Programming Language {Ada Reference Manual,
                 Proposed Standard Document, United States Department of
                 Defense}",
  volume =       "106",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  year =         "1981",
  DOI =          "https://doi.org/10.1007/3-540-10693-6",
  ISBN =         "3-540-10693-6",
  ISBN-13 =      "978-3-540-10693-7",
  bibdate =      "Tue Jul 26 11:03:12 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://dblp.org",
  series =       ser-LNCS,
  acknowledgement = ack-nhfb,
  biburl =       "https://dblp.org/rec/books/sp/Ada81.bib",
  tableofcontents = "Front Matter / i--x \\
                 Introduction / 1--6 \\
                 Lexical Elements / 7--13 \\
                 Declarations and Types / 15--45 \\
                 Names and Expressions / 47--71 \\
                 Statements / 73--82 \\
                 Subprograms / 83--92 \\
                 Packages / 93--103 \\
                 Visibility Rules / 105--114 \\
                 Tasks / 115--130 \\
                 Program Structure and Compilation Issues / 131--141 \\
                 Exceptions / 143--153 \\
                 Generic Program Units / 155--167 \\
                 Representation Specifications and Implementation
                 Dependent Features / 169--181 \\
                 Input--Output / 183--206 \\
                 Back Matter / 207--243",
}

@Book{BrinchHansen:1982:PPC,
  author =       "Per {Brinch Hansen}",
  booktitle =    "Programming a Personal Computer",
  title =        "Programming a Personal Computer",
  publisher =    pub-PH,
  address =      pub-PH:adr,
  pages =        "xi + 388",
  year =         "1982",
  ISBN =         "0-13-730283-5 (hardcover), 0-13-730283-5 (paperback)",
  ISBN-13 =      "978-0-13-730283-3 (hardcover), 978-0-13-730283-3
                 (paperback)",
  LCCN =         "QA76.73.E34 B74 1982",
  bibdate =      "Sat Jul 23 17:21:56 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
  tableofcontents = "",
}

@Book{BrinchHansen:1985:BHP,
  author =       "Per {Brinch Hansen}",
  booktitle =    "{Brinch Hansen} on {Pascal} Compilers",
  title =        "{Brinch Hansen} on {Pascal} Compilers",
  publisher =    pub-PH,
  address =      pub-PH:adr,
  pages =        "x + 310",
  year =         "1985",
  ISBN =         "0-13-083098-4, 0-13-083122-0 (paperback)",
  ISBN-13 =      "978-0-13-083098-2, 978-0-13-083122-4 (paperback)",
  LCCN =         "QA76.73.P2 B75 1985",
  bibdate =      "Tue Dec 14 22:42:51 1993",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/master.bib",
  price =        "US\$25.00",
  acknowledgement = ack-nhfb,
  subject =      "Pascal (Computer program language); Compilers
                 (Computer programs); PASCAL (Langage de programmation);
                 Compilateurs (Logiciels); Compilers (Computer
                 programs); Pascal (Computer program language)",
  tableofcontents = "Algorithms / vii \\
                 Preface / ix \\
                 1 What a Compiler Does / 1 \\
                 2 A Pascal Subset / 6 \\
                 2.1 Pascal Minus / 6 \\
                 2.2 Vocabulary / 10 \\
                 2.3 Syntactic Rules / 12 \\
                 2.4 Grammar / 15 \\
                 3 Compiler Organization / / 17 \\
                 3.1 A Personal Computer / 17 \\
                 3.2 Single-Pass Compilation / 18 \\
                 3.3 Multipass Compilation / 19 \\
                 3.4 The Pascal Minus Compiler / 22 \\
                 3.5 Errors and Failures / 24 \\
                 4 Lexical Analysis / 28 \\
                 4.1 Source Text / 28 \\
                 4.2 Intermediate Code / 29 \\
                 4.3 Scanning / 31 \\
                 4.4 Searching / 36 \\
                 4.5 Symbol Table / 45 \\
                 4.6 Testing / 51 \\
                 5 Syntax Analysis / / 59 \\
                 5.1 Symbol Input / 59 \\
                 5.2 Parser Construction / / 61 \\
                 5.3 First Symbols / 67 \\
                 5.4 Follow Symbols / 70 \\
                 5.5 Grammar Restrictions / 73 \\
                 5.6 Recursion / 78 \\
                 5.7 Testing / 81 \\
                 5.8 Error Recovery / 83 \\
                 6 Scope Analysis / / 96 \\
                 6.1 Blocks / 95 \\
                 6.2 Scope Rules / 97 \\
                 6.3 Compilation Method / 100 \\
                 6.4 Data Structures / 102 \\
                 6.5 Algorithms / 103 \\
                 6.6 Testing / 108 \\
                 7 Type Analysis / / 110 \\
                 7.1 Kinds of Objects / 110 \\
                 7.2 Standard Types / 112 \\
                 7.3 Constants / 113 \\
                 7.4 Variables / 116 \\
                 7.5 Arrays / 122 \\
                 7.6 Records / 125 \\
                 7.7 Expressions / 130 \\
                 7.8 Statements / 133 \\
                 7.9 Procedures / 134 \\
                 7.10 Object Records / 140 \\
                 7.11 Testing / 141 \\
                 8 A Pascal Computer / 144 \\
                 8.1 An Ideal Computer / 144 \\
                 8.2 The Stack / 146 \\
                 8.3 Variable Access / 151 \\
                 8.4 Expression Evaluation / 160 \\
                 8.5 Statement Execution / 169 \\
                 8.6 Procedure Activation / 173 \\
                 8.7 Program Execution / 177 \\
                 8.8 Code Syntax / 178 \\
                 8.9 Testing / 179 \\
                 8.10 A Traditional Computer / 179 \\
                 9 Code Generation / 183 \\
                 9.1 Operation Parts / 183 \\
                 9.2 Variable Addressing / 184 \\
                 9.3 Expression Code / 189 \\
                 9.4 Statement Code / 193 \\
                 9.5 Procedure Code / 200 \\
                 9.6 Code Optimization / 204 \\
                 9.7 Testing / 210 \\
                 10 Performance / 211 \\
                 10.1 Compiler Size / 211 \\
                 10.2 Compilation Speed / 214 \\
                 Appendix A: A Complete Compiler / 217 \\
                 A.1 Administration / 218 \\
                 A.2 Scanner / 221 \\
                 A.3 Parser / 228 \\
                 A.4 Assembler / 255 \\
                 A.5 Interpreter / 260 \\
                 A.6 Test Programs / 271 \\
                 Appendix B: A Compiler Project / 281 \\
                 B.1 The PL Language / 282 \\
                 B.2 Project Phases / 288 \\
                 B.3 The PL Interpreter / 290 \\
                 References / 297 \\
                 Software Distribution / 301 \\
                 Index / 303",
}

@Book{BrinchHansen:1985:PHI,
  author =       "Per {Brinch Hansen}",
  booktitle =    "The {Pascal} Handbook for {IBM} Personal Computers",
  title =        "The {Pascal} Handbook for {IBM} Personal Computers",
  publisher =    "????",
  address =      "????",
  pages =        "????",
  year =         "1985",
  ISBN =         "????",
  ISBN-13 =      "????",
  bibdate =      "Sat Jul 23 17:21:56 2022",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib",
  acknowledgement = ack-nhfb,
  remark =       "Not yet found in library catalogs or online book
                 archives.",
}

@Book{Bergin:1996:HPL,
  editor =       "T. J. {Bergin, Jr.} and R. G. {Gibson, Jr.}",
  booktitle =    "History of programming languages: {II}",
  title =        "History of programming languages: {II}",
  publisher =    pub-ACM,
  address =      pub-ACM:adr,
  pages =        "xvi + 864",
  year =         "1996",
  DOI =          "https://doi.org/10.1145/234286",
  ISBN =         "0-201-89502-1",
  ISBN-13 =      "978-0-201-89502-5",
  LCCN =         "QA76.7 .H57 1996",
  bibdate =      "Tue Jul 26 09:43:56 MDT 2022",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/w/wirth-niklaus.bib",
  abstract =     "This specially prepared work compromises a living
                 archive of important programming languages, described
                 by the people most instrumental in their creation and
                 development. Drawn from the ACM/SIGPLAN Second History
                 of Programming Languages Conference, this volume, like
                 the earlier book from the first such conference (HOPL),
                 conveys the motivations of the language designers and
                 the reasons why they rejected existing languages and
                 created new ones. The book relates the processes by
                 which different languages evolved, in the words of the
                 individuals active in the languages' development. Most
                 important, participants share insights about influences
                 and decisions, both on choices made and on the many
                 roads not taken. In the book's conclusion,
                 distinguished historians of computing share views about
                 preserving programming language history.''--BOOK
                 JACKET. ``Fourteen chapters cover a broad range of
                 languages in wide use today, as well as lesser known
                 languages that made significant contributions to
                 programming language evolution: C, C++, Smalltalk,
                 Pascal, Ada, Prolog, Lisp, ALGOL 68, FORMAC, CLU, Icon,
                 Forth, Monitors and Concurrent Pascal, and Discrete
                 Simulation Languages. Prominent contributors to the
                 book are Frederick Brooks, Alain Colmerauer, Richard
                 Gabriel, Ralph Griswold, Per Brinch Hansen, Alan Kay,
                 C.H. Lindsey, Barbara Liskov, Richard Nance, Elizabeth
                 Rather, Dennis Ritchie, Jean Sammet, Guy Steele, Bjarne
                 Stroustrup, William Whitaker, and Niklaus Wirth.
                 Together, the conference contributors and the book's
                 editors have put together a volume of interest to
                 researchers, teachers, students, and computing
                 professionals everywhere who are involved in the use or
                 the development of programming languages today.",
  acknowledgement = ack-nhfb,
  tableofcontents = "Development of the HOPL-II Program \\
                 Conference Chairman's Opening Remarks / John A. N. Lee
                 \\
                 Language Design as Design / Frederick P. Brooks, Jr.
                 \\
                 From HOPL to HOPL-II (1978--1993): 15 Years of
                 Programming Language Development / Jean E. Sammet \\
                 Making History / Michael S. Mahoney \\
                 History of ALGOL 68 / C. H. Lindsey \\
                 Recollections about the Development of Pascal / N.
                 Wirth \\
                 Monitors and Concurrent Pascal: a Personal History /
                 Per Brinch Hansen \\
                 ADA \\
                 The Project: The DoD High Order Language Working Group
                 / William A. Whitaker \\
                 Evolution of Lisp / Guy L. Steele, Jr. and Richard P.
                 Gabriel \\
                 Birth of Prolog / Alain Colmerauer and Philippe Roussel
                 \\
                 History of Discrete Event Simulation Programming
                 Languages / Richard E. Nance \\
                 Beginning and Development of Formac (FORmula
                 MAnipulation Compiler) / Jean E. Sammet \\
                 History of CLU / Barbara Liskov \\
                 Early History of Smalltalk / Alan C. Kay \\
                 History of the Icon Programming Language / Ralph E.
                 Griswold and Madge T. Griswold \\
                 Evolution of Forth / Donald R. Colburn, Charles H.
                 Moore and Elizabeth D. Rather \\
                 Development of the C Programming Language / Dennis M.
                 Ritchie \\
                 History of C++: 1979--1991 / Bjarne Stroustrup \\
                 Issues in the History of Computing / Michael S. Mahoney
                 \\
                 Archives Specializing in the History of Computing /
                 Bruce H. Bruemmer \\
                 Role of Museums in Collecting Computers / Gwen Bell /
                 Edited by Robert F. Rosin \\
                 Annals of the History of Computing and Other Journals /
                 Bernard A. Galler \\
                 Effective History Conference / Jean E. Sammet \\
                 University Courses / Martin Campbell-Kelly \\
                 Documenting Projects with History in Mind / Michael
                 Marcotty \\
                 Issues in the Writing of Contemporary History / J. A.
                 N. Lee \\
                 Forum Closing Panel \\
                 Appendix A: What Makes History? / Michael S. Mahoney
                 \\
                 Appendix B: Call for Papers \\
                 Appendix C: List of Attendees \\
                 Appendix D: Final Conference Program",
}

@Book{BrinchHansen:1996:SSE,
  author =       "Per {Brinch Hansen}",
  booktitle =    "The Search for Simplicity: Essays in Parallel
                 Programming",
  title =        "The Search for Simplicity: Essays in Parallel
                 Programming",
  publisher =    pub-IEEE,
  address =      pub-IEEE:adr,
  pages =        "xiv + 528",
  year =         "1996",
  ISBN =         "0-8186-7566-7",
  ISBN-13 =      "978-0-8186-7566-9",
  LCCN =         "QA76.642 .B756 1996",
  bibdate =      "Mon Jul 25 09:58:33 MDT 2022",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/w/wirth-niklaus.bib",
  abstract =     "This is the first collection of classic papers by
                 renowned computer scientist and author Per Brinch
                 Hansen. The book is intended for computer scientists
                 and programmers who are interested in the programming
                 principles of operating systems, parallel languages,
                 and computational science. These writings demonstrate
                 the author's ability to recognize the essence of
                 complex software problems and design simple working
                 systems of nontrivial size.",
  acknowledgement = ack-nhfb,
  subject =      "Parallel programming (Computer science); Programmation
                 parall{\'y}ele (Informatique); Parallel programming
                 (Computer science)",
  tableofcontents = "1: RC 4000 Real-time Control System at Pulawy \\
                 2: Nucleus of a Multiprogramming System \\
                 3: Outline of a Course on Operating System Principles
                 \\
                 4: Structured Multiprogramming \\
                 5: Testing a Multiprogramming System \\
                 6: Shared Classes \\
                 7: Programming Language Concurrent Pascal \\
                 8: Solo Operating System: a Concurrent Pascal Program
                 \\
                 9: Solo Operating System: Processes, Monitors, and
                 Classes \\
                 10: Programmer as a Young Dog \\
                 11: Experience with Modular Concurrent Programming \\
                 12: Design Principles \\
                 13: Network: a Multiprocessor Program \\
                 14: Distributed Processes: a Concurrent Programming
                 Concept \\
                 15: Reproducible Testing of Monitors \\
                 16: Keynote Address on Concurrent Programming \\
                 17: Design of Edison \\
                 18: Joyce; A Programming Language for Distributed
                 Systems \\
                 19: Multiprocessor Implementation of Joyce \\
                 20: Nature of Parallel Programming \\
                 21: Monitors and Concurrent Pascal: a Personal History
                 \\
                 22: Model Programs for Computational Science: a
                 Programming Methodology for Multicomputers \\
                 23: Parallel Cellular Automata: a Model Program for
                 Computational Science \\
                 24: SuperPascal: a Publication Language for Parallel
                 Scientific Computing \\
                 25: Efficient Parallel Recursion",
}

@Book{BrinchHansen:1999:PEJ,
  author =       "Per {Brinch Hansen}",
  booktitle =    "Programming for Everyone in {Java}",
  title =        "Programming for Everyone in {Java}",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "xviii + 238",
  year =         "1999",
  DOI =          "https://doi.org/10.1007/978-1-4612-1514-1",
  ISBN =         "0-387-98683-9 (softcover), 1-4612-1514-5 (e-book)",
  ISBN-13 =      "978-0-387-98683-8 (softcover), 978-1-4612-1514-1
                 (e-book)",
  LCCN =         "QA76.73.J38 B74 1999",
  bibdate =      "Wed Mar 14 08:27:06 2001",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/tex/bib/java.bib",
  price =        "US\$34.95",
  abstract =     "This is a book about computer programming for
                 everyone: artist, poet, student, doctor, accountant, or
                 engineer. It assumes you know very little or nothing
                 about how computers work. This book will show you how
                 to write understandable computer programs in Java, a
                 programming language widely used on the Internet. Why
                 should we be interested in learning computer
                 programming? Even though most readers will not wish to
                 become professional programmers, programming is fun and
                 useful. You will enjoy learning a new skill and
                 becoming good at it. And, in today's world it is
                 important for professionals in any field to appreciate
                 what computers can (and cannot) do well. To reach this
                 level of understanding, you must go beyond the routine
                 skills of a computer user and learn the art of
                 programming in some depth. While emphasizing general
                 principles of programming this book: * Uses examples
                 from the humanities only, requiring no math or
                 engineering knowledge * Explains all programming
                 concepts by means of complete programs * Concentrates
                 on exercises solved by writing complete programs *
                 Takes the reader from text input/output to
                 object-oriented programming in the equivalent of a one
                 semester class. * Gives the reader a solid background
                 for follow-on courses on the graphics and networking
                 facilities of Java. This book is a sound and complete
                 introduction to programming and not just another Java
                 reference book for those who already know how to
                 program. Although the book uses Java, the same methods
                 can be used for systematic programming in other
                 languages, such as C, Fortran, and Pascal. The book
                 makes a splendid text for a one semester course on
                 beginning programming and for such a course there are
                 teaching aids available at the author's website.
                 Professor Per Brinch Hansen, is one of the leading
                 pioneers in computer programming, and his insight and
                 experience make learning proper computer programming in
                 Java fun and easy for everyone.",
  acknowledgement = ack-nhfb,
  tableofcontents = "1. Simple Programs \\
                 2. Simple Choice \\
                 3. Multiple Choice \\
                 4. Simple Repetition \\
                 5. Unbounded Repetition \\
                 6. Text Files \\
                 7. Simple Arrays \\
                 8. Matrices \\
                 9. Methods \\
                 10. Recursion \\
                 11. Classes \\
                 App. A. Java Text Program \\
                 App. B. Sample Class Schedule",
}

@Book{BrinchHansen:2001:COS,
  author =       "Per {Brinch Hansen}",
  booktitle =    "Classic Operating Systems: from Batch Processing to
                 Distributed Systems",
  title =        "Classic Operating Systems: from Batch Processing to
                 Distributed Systems",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "x + 597",
  year =         "2001",
  DOI =          "https://doi.org/10.1007/978-1-4757-3510-9",
  ISBN =         "0-387-95113-X",
  ISBN-13 =      "978-0-387-95113-3",
  LCCN =         "QA76.76.O63 B7425 2001",
  bibdate =      "Thu Jun 7 17:23:26 MDT 2018",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/d/dijkstra-edsger-w.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/w/wirth-niklaus.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib;
                 z3950.loc.gov:7090/Voyager",
  URL =          "http://www.loc.gov/catdir/enhancements/fy0816/00045036-d.html;
                 http://www.loc.gov/catdir/enhancements/fy0816/00045036-t.html;
                 https://link.springer.com/book/10.1007/978-1-4757-3510-9",
  abstract =     "This remarkable anthology allows the pioneers who
                 orchestrated the major breakthroughs in operating
                 system technology to describe their work in their own
                 words. From the batch processing systems of the 1950s
                 to the distributed systems of the 1990s, Tom Kilburn,
                 David Howarth, Bill Lynch, Fernando Corbat{\'o}, Robert
                 Daley, Sandy Fraser, Dennis Ritchie, Ken Thompson,
                 Edsger Dijkstra, Per {Brinch Hansen}, Soren Lauesen,
                 Barbara Liskov, Joe Stoy, Christopher Strachey, Butler
                 Lampson, David Redell, Brian Randell, Andrew Tanenbaum,
                 and others describe the systems they designed. The
                 volume details such classic operating systems as the
                 Atlas, B5000, Exec II, Egdon, CTSS, Multics, Titan,
                 Unix, THE, RC 4000, Venus, Boss 2, Solo, OS 6, Alto,
                 Pilot, Star, WFS, Unix United, and Amoeba systems. An
                 introductory essay on the evolution of operating
                 systems summarizes the papers and helps puts them into
                 a larger perspective. This provocative journey captures
                 the historic contributions of operating systems to
                 software design, concurrent programming, graphic user
                 interfaces, file systems, personal computing, and
                 distributed systems. It also fully portrays how
                 operating systems designers think. It's ideal for
                 everybody in the field, from students to professionals,
                 academics to enthusiasts.",
  acknowledgement = ack-nhfb,
  subject =      "Operating systems (Computers)",
  tableofcontents = "Front Matter / i--x \\
                 The Evolution of Operating Systems \\
                 The Evolution of Operating Systems / Per {Brinch
                 Hansen} (2000) / 1--34 \\
                 Part I: Open Shop \\
                 Front Matter / 35--35 \\
                 1: The IBM 701 Computer at the General Motors Research
                 Laboratories / George F. Ryckman (1983) / 37--40 \\
                 Part II: Batch Processing \\
                 Front Matter / 41--41 \\
                 2: The BKS System for the Philco-2000 (1961) / Richard
                 B. Smith / 43--45 \\
                 Part III: Multiprogramming \\
                 Front Matter / 47--47 \\
                 3: The Atlas Supervisor / Tom Kilburn, R. Bruce Payne
                 and David J. Howarth (1961) / 49--77 \\
                 4: Operating System for the B5000 / Clark Oliphint
                 (1964) / 78--87 \\
                 5: Description of a High Capacity, Fast Turnaround
                 University Computing Center / William C. Lynch (1966) /
                 88--101 \\
                 6: The Egdon System for the KDF9 / David Burns, E.
                 Neville Hawkins, D. Robin Judd, and John L. Venn (1966)
                 / 102--114 \\
                 Part IV: Timesharing \\
                 Front Matter / 115--115 \\
                 7: An Experimental Time-Sharing System / Fernando
                 Corbat{\'o}, Marjorie Merwin-Daggett and Robert C.
                 Daley (1962) / 117--137 \\
                 8: A General-Purpose File System for Secondary Storage
                 / Robert C. Daley and Peter G. Neumann (1965) /
                 138--166 \\
                 9: File Integrity in a Disc-Based Multi-Access System /
                 A. G. Fraser (1972) / 167--194 \\
                 10: The Unix Time-Sharing System / Dennis M. Ritchie,
                 Ken Thompson (1974) / 195--220 \\
                 Part V: Concurrent Programming \\
                 Front Matter / 221--221 \\
                 11: The Structure of the ``THE'' Multiprogramming
                 System / Edsger W. Dijkstra (1968) / 223--236 \\
                 12: RC 4000 Software: Multiprogramming System / Per
                 Brinch Hansen (1969) / 237--281 \\
                 13: The Design of the Venus Operating System / Barbara
                 H. Liskov (1972) / 282--294 \\
                 14: A Large Semaphore Based Operating System / S{\o}ren
                 Lauesen (1975) / 295--323 \\
                 15: The Solo Operating System: A Concurrent Pascal
                 Program / Per {Brinch Hansen} (1976) / 324--336 \\
                 16: The Solo Operating System: Processes, Monitors and
                 Classes (1976) / Per {Brinch Hansen} / 337--384 \\
                 Part VI: Personal Computing \\
                 Front Matter / 385--385 \\
                 17: OS6 --- An Experimental Operating System for a
                 Small Computer: Input/Output and Filing System / Joe E.
                 Stoy, Christopher Strachey (1972) / 387--413 \\
                 18: An Open Operating System for a Single-User Machine
                 / Butler W. Lampson, Robert F. Sproull (1979) /
                 414--432 \\
                 19: Pilot: An Operating System for a Personal Computer
                 / David D. Redell, Yogen K. Dalal, Thomas R. Horsley,
                 Hugh C. Lauer, William C. Lynch, Paul R. McJones, Hal
                 G. Murray, and Stephen C. Purcell (1980) / 433--459 \\
                 20: The Star User Interface: An Overview / David C.
                 Smith, Charles Irby, Ralph Kimball, Eric Harslem (1982)
                 / 460--490 \\
                 Part VII: Distributed Systems \\
                 Front Matter / 491--491 \\
                 21: WFS: A Simple Shared File System for a Distributed
                 Environment / Daniel Swinehart, Gene McDaniel, David
                 Boggs (1979) / 493--510 \\
                 22: The Design of a Reliable Remote Procedure Call
                 Mechanism / Santosh Shrivastava, Fabio Panzieri (1982)
                 / 511--527 \\
                 23: The Newcastle Connection or Unixes of the World
                 Unite / David R. Brownbridge, Lindsay F. Marshall,
                 Brian Randell (1982) / 528--549 \\
                 24: Experiences with the Amoeba Distributed Operating
                 System / Andrew S. Tanenbaum, Robbert Van Renesse, Hans
                 Van Staveren, Gregory J. Sharp, Sape J. Mullender, Jack
                 Jansen, and Guido Van Rossum (1990) / 550--586 \\
                 Back Matter (Bibliography) / 587--597",
}

@Book{BrinchHansen:2002:OCP,
  editor =       "Per {Brinch Hansen}",
  booktitle =    "The Origin of Concurrent Programming: From Semaphores
                 to Remote Procedure Calls",
  title =        "The Origin of Concurrent Programming: From Semaphores
                 to Remote Procedure Calls",
  publisher =    pub-SV,
  address =      pub-SV:adr,
  pages =        "x + 534",
  year =         "2002",
  DOI =          "https://doi.org/10.1007/978-1-4757-3472-0",
  ISBN =         "0-387-95401-5, 1-4419-2986-X, 1-4757-3472-7,
                 1-4757-3472-7",
  ISBN-13 =      "978-0-387-95401-1, 978-1-4419-2986-0,
                 978-1-4757-3472-0, 978-1-4757-3473-7",
  LCCN =         "QA76.642 .O75 2002",
  bibdate =      "Thu Jul 21 15:50:51 MDT 2022",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/bibnet/authors/d/dijkstra-edsger-w.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hansen-per-brinch.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/h/hoare-c-a-r.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/w/wirth-niklaus.bib",
  URL =          "http://link.springer.com/10.1007/978-1-4757-3472-0",
  abstract =     "One cannot build or understand a modern operating
                 system unless one knows the principles of concurrent
                 programming. This volume is a collection of 19 original
                 papers on the invention and origins of concurrent
                 programming, illustrating the major breakthroughs in
                 the field from the mid 1960s to the late 1970s. All of
                 them are written by the pioneers in concurrent
                 programming, including Brinch Hansen himself, and have
                 introductions added that summarize the papers and put
                 them in perspective. This anthology is an essential
                 reference for professional programmers, researchers,
                 and students of electrical engineering and computer
                 science. A familiarity with operating system principles
                 is assumed.",
  acknowledgement = ack-nhfb,
  subject =      "Programming Techniques",
  tableofcontents = "The invention of concurrent programming / Per
                 Brinch Hansen \\
                 Cooperating sequential processes \\
                 The structure of the ``THE'' multiprogramming system /
                 Edsger W. Dijkstra \\
                 RC 4000 software: multiprogramming system / Per Brinch
                 Hansen \\
                 Hierarchical ordering of sequential processes / Edsger
                 W. Dijkstra \\
                 Towards a theory of parallel programming / C. A. R.
                 Hoare \\
                 An outline of a course on operating system principles
                 \\
                 Structured multiprogramming \\
                 Shared classes / Per Brinch Hansen \\
                 Monitors: an operating system structuring concept / C.
                 A. R. Hoare \\
                 The programming language concurrent Pascal \\
                 The Solo operating system: a concurrent Pacal program
                 \\
                 The Solo operating system: processes, monitors and
                 classes \\
                 Design principles / Per Brinch Hansen \\
                 A synthesis emerging? / Edsger W. Dijkstra \\
                 Communicating sequential processes / C. A. R. Hoare \\
                 Distributed processes: a concurrent programming concept
                 \\
                 Joyce: a programming language for distributed systems
                 \\
                 SuperPascal: a publication language for parallel
                 scientific computing \\
                 Efficient parallel recursion / Per Brinch Hansen",
}