Type-Based Alias Analysis Amer Diwan Stanford University

Total Page:16

File Type:pdf, Size:1020Kb

Type-Based Alias Analysis Amer Diwan Stanford University University of Massachusetts Amherst ScholarWorks@UMass Amherst Computer Science Department Faculty Publication Computer Science Series 1998 Type-Based Alias Analysis Amer Diwan Stanford University Kathryn S. McKinley University of Massachusetts - Amherst J. Eliot B. Moss University of Massachusetts - Amherst Follow this and additional works at: https://scholarworks.umass.edu/cs_faculty_pubs Part of the Computer Sciences Commons Recommended Citation Diwan, Amer; McKinley, Kathryn S.; and Moss, J. Eliot B., "Type-Based Alias Analysis" (1998). Computer Science Department Faculty Publication Series. 18. Retrieved from https://scholarworks.umass.edu/cs_faculty_pubs/18 This Article is brought to you for free and open access by the Computer Science at ScholarWorks@UMass Amherst. It has been accepted for inclusion in Computer Science Department Faculty Publication Series by an authorized administrator of ScholarWorks@UMass Amherst. For more information, please contact [email protected]. Type-Based Alias Analysis Amer Diwan Kathryn S. McKinley J. Eliot B. Moss Department of Computer Science Department of Computer Science Stanford University, Stanford, CA 94305 University of Massachusetts, Amherst, MA 01003-4610 (650) 723-4013 Abstract piler to reorder statements that do pointer accesses. This paper evaluates three alias analyses based on program- Despite its importance, few commercial or research com- ming language types. The first analysis uses type compati- pilers implement non-trivial alias analysis. Three reasons bility to determine aliases. The second extends the first by alias analysis is not implemented are: (1) Many alias anal- using additional high-level information such as field names. yses are prohibitively slow and thus impractical for produc- The third extends the second with a flow-insensitive analy- tion use. (2) The alias analyses in the literature require the sis. Although other researchers suggests using types to dis- entire program (or some representation of it), which inhibits ambiguate memory references, none evaluates its effective- separate compilation and compiling libraries. (3) Most alias ness. We perform both static and dynamic evaluations of analyses have been evaluated only statically, and thus we do type-based alias analyses for Modula-3, a statically-typed not know the effectiveness of these algorithms with respect to type-safe language. The static analysis reveals that type com- the optimizations that use them. To address these concerns, patibility alone yields a very imprecise alias analysis, but the this paper explores using fast alias analyses that rely on pro- other two analyses significantly improve alias precision. We gramming language types. While prior work [1, 6] mentions using type compatibility for alias analysis, none evaluates the use redundant load elimination (RLE) to demonstrate the ef- fectiveness of the three alias algorithms in terms of the oppor- idea or presents the details of an algorithm. tunities for optimization, the impact on simulated execution This paper describes and evaluates three fast alias analy- times, and to compute an upper bound on what a perfect alias ses based on programming language types. The first analy- analysis would yield. We show modest dynamic improve- sis (TypeDecl) uses type compatibility to determine aliases. ments for (RLE), and more surprisingly, that on average our The second (FieldTypeDecl) uses other high-level properties, alias analysis is within 2.5% of a perfect alias analysis with such as field names to improve on the first. The third (SM- respect to RLE on 8 Modula-3 programs. These results il- FieldTypeRefs) improves the second by incorporating a flow- lustrate that to explore thoroughly the effectiveness of alias insensitive pass to include the effects of variable assignments analyses, researchers need static, dynamic, and upper-bound and references. This pass is similar to Steensgaard’s algo- analysis. In addition, we show that for type-safe languages rithm [32]. like Modula-3 and Java, a fast and simple alias analysis may We statically evaluate our alias algorithms using the num- be sufficient for many applications. ber of alias pairs (the traditional method). We also evaluate TBAA based on its static and dynamic effects on an optimiza- 1 Introduction tion. In addition, we evaluate TBAA with respect to an upper bound on the same optimization. Each of the evaluation met- To exploit memory systems, multiple functional units, and rics reveals different strengths and weaknesses in our alias the multi-issue capabilities of modern uniprocessors, compil- algorithms, and we believe this range of metrics, and espe- ers must reorder instructions. For programs that use pointers, cially upper-bound analysis, is necessary to understand the the compiler’s alias analysis dramatically affects its ability to effectiveness of any alias analysis. reorder instructions, and ultimately performance. Alias anal- Our static evaluation reveals that the simplest type-based ysis disambiguates memory references, enabling the com- alias analysis is very imprecise, but that for our Modula-3 The authors can be reached electronically via Internet addresses di- benchmarks, the other two alias analyses significantly reduce g [email protected], fmckinley,moss @cs.umass.edu. This work the number of intraprocedural aliases of a reference to on av- was supported by the National Science Foundation under grants CCR- erage 3.4 references (ranging from .3 to 20.8). We find that 9211272 and CCR-9525767 and by gifts from Sun Microsystems Labora- TBAA is much less effective for interprocedural aliases. tories, Inc., Hewlett-Packard, and Digital Equipment. Kathryn S. McKinley is supported by an NSF CAREER Award CCR-9624209. Amer Diwan was We also evaluate TBAA by measuring the static and sim- also supported by the Air Force Materiel Command and ARPA award num- ulated run-time impact on an intraprocedural optimization ber: F30602-95-C-0098. that depends on alias analysis: redundant load elimination (RLE). RLE combines loop invariant code motion and com- mon subexpression elimination of memory references. TBAA In the ACM SIGPLAN Conference on Programming Language Design and RLE combine to improve simulated program performance and Implementation, June 1998, Montreal, Quebec, Canada, pp. 106– modestly, by an average of 4%, and up to 8% on a DEC Alpha 117. 3000-500 [12] for 8 Modula-3 benchmarks. We also compare TBAA to an upper bound that represents TYPE T = OBJECT f, g: T; END; the best any alias analysis algorithm could hope to do for RLE. S1 = T OBJECT ... END; This comparison shows that a perfect alias analysis could at S2 = T OBJECT ... END; most eliminate an average of 2.5% more heap loads. In addi- S3 = T OBJECT ... END; tion, we modify TBAA for incomplete programs and demon- VAR strate, using RLE, that it performs as well as it does on com- t: T; s: S1; TBAA plete programs. These results and ’s fast time complex- u: S2; ity suggest that TBAA is a practical and promising analysis for scalar optimization of type-safe programs. Figure 1: Type Hierarchy Example The remainder of this paper is organized as follows. Sec- tion 2 describes our type-based alias analysis algorithms. Section 3 presents our evaluation methodology, and uses it 2.2 TBAA Using Type Declarations to evaluate TBAA. Section 4 extends and evaluates TBAA for incomplete programs. Section 5 discusses related work in To use type declarations to disambiguate memory references, alias analysis. Section 6 concludes. we simply examine the declared type of an access path AP , and then assume the AP may reference any object with the 2 Type-Based Alias Analysis same declared type or subtype. We call this version of TBAA, TypeDecl. More formally, given two AP s p and q, Type- This section describes type-based alias analyses (TBAA) in Decl(p, q) determines they may be aliases if and only if: which the compiler has access to the entire program except = for the standard libraries. TBAA assumes a type-safe pro- Subtypes (Type (p)) Subtypes (Type (q)) . gramming language such as Modula-3 [25] or Java [33] that Consider the example in Figure 1. Since S1 is a subtype of does not support arbitrary pointer type casting (this feature is T, objects of type T can reference objects of type S1. Thus, supported in C and C++). We begin with our terminology, = and then discuss using type declarations, object field and ar- Subtypes (Type (t)) Subtypes (Type (s)) = ray access semantics, and modifications to the set of possible Subtypes (Type (t)) Subtypes (Type (u)) = types via variable assignments to disambiguate memory ac- Subtypes (Type (s)) Subtypes (Type (u)) cesses. In other words, t and s may reference the same location, 2.1 Memory Reference Basics and t and u may reference the same location, but s and u may not reference the same location since they have different Table 1 lists the three kinds of memory references in Modula- types. Note that TypeDecl is not transitive. 3 programs, their names, and a short description. 1 AP Table 2: FieldTypeDecl (AP 1, 2) Algorithm Table 1: Kinds of Memory References AP AP AP Case AP 1 2 FieldTypeDecl ( 1, 2) Notation Name Description 1 p p true p.f Qualify Access field f of object p 2 p.f q.g (f = g) FieldTypeDecl (p, q) pˆ Dereference Dereference pointer p 3 p.f qˆ AddressTaken (p.f) p[i] Subscript Array p with subscript i TypeDecl (p.f, qˆ) 4 pˆ q[i] AddressTaken(q[i]) TypeDecl (pˆ, q[i]) We call a non-empty string of memory references, for exam- 5 p.f q[i] false ple aˆ.b[i].c, an access path (AP ) [22]. Without loss of 6 p[i] q[j] FieldTypeDecl (p, q) generality, we assume that distinct object fields have different 7 p q TypeDecl (p, q) names. We also define: 2.3 Using Field Access Types Type (p): Thestatictypeof AP p. We next improve the precision of TypeDecl using the type Subtypes (T): The set of subtypes of type T, declarations of fields and other high level information in the which includes T.
Recommended publications
  • The Power of Abstraction
    The Power of Abstraction Barbara Liskov March 2013 MIT CSAIL Software is Complex Systems are big and they do complicated things and they may be distributed and/or concurrent Addressing Complexity Algorithms, data structures, protocols Addressing Complexity Algorithms, data structures, protocols Programming methodology Programming languages This Talk Programming methodology as it developed Programming languages Programming languages today The Situation in 1970 The software crisis! Programming Methodology How should programs be designed? How should programs be structured? The Landscape E. W. Dijkstra. Go To Statement Considered Harmful. Cacm, Mar. 1968 The Landscape N. Wirth. Program Development by Stepwise Refinement. Cacm, April 1971 The Landscape D. L. Parnas. Information Distribution Aspects of Design Methodology. IFIP Congress, 1971 “The connections between modules are the assumptions which the modules make about each other.” Modularity A program is a collection of modules Modularity A program is a collection of modules Each module has an interface, described by a specification Modularity A program is a collection of modules Each has an interface, described by a specification A module’s implementation is correct if it meets the specification A using module depends only on the specification Modularity A program is a collection of modules Each has an interface, described by a specification A module’s implementation is correct if it meets the specification A using module depends only on the specification E.g. a sort routine sort(a) Benefits of Modularity Local reasoning Modifiability Independent development The Situation in 1970 Procedures were the only type of module Not powerful enough, e.g., a file system Not used very much Complicated connections Partitions B.
    [Show full text]
  • MIT Turing Laureates Propose Creation of School of Computing an Open Letter to President Rafael Reif
    9/26/2017 The Tech OPINION LETTER TO THE EDITOR MIT Turing laureates propose creation of School of Computing An open letter to President Rafael Reif By MIT Turing Laureates | Sep. 20, 2017 Facebook Dear Rafael, Twitter There comes a time, in the course of scientic evolution, when a discipline is ready to emerge from the womb of its parent disciplines and take its own place in the world. For Reddit computer science, or more accurately, for the eld of computing, this moment is now. Print Born from a combination of mathematics and electrical engineering, with the original intent of speeding up calculations, computer science has grown to encompass all information processing and most communications and now to provide an alternative evolutionary path to intelligence. Computer science is rapidly becoming an essential part of most academic disciplines, and students are voting with their feet. One third of MIT undergraduates are majoring in computer science. This trend is unlikely to slow down anytime soon. We, the 7 active MIT Turing Award winners, therefore write this open letter to recommend that you consider the bold step of establishing a School of Computing at MIT. The new school, a brother to the Schools of Engineering and Science, will allow the eld of computing, with its many https://thetech.com/2017/09/20/turing-laureates-open-letter-to-reif 1/4 9/26/2017 The Tech facets and sub-elds, to grow and interact naturally with the Institute’s scientic and engineering environment. The Tech Submit Campus Life Stories Today the study of computation is housed primarily in the EECS department within the School of Engineering, but departments are limited in their ability to hire and grow.
    [Show full text]
  • Arxiv:1909.05204V3 [Cs.DC] 6 Feb 2020
    Cogsworth: Byzantine View Synchronization Oded Naor, Technion and Calibra Mathieu Baudet, Calibra Dahlia Malkhi, Calibra Alexander Spiegelman, VMware Research Most methods for Byzantine fault tolerance (BFT) in the partial synchrony setting divide the local state of the nodes into views, and the transition from one view to the next dictates a leader change. In order to provide liveness, all honest nodes need to stay in the same view for a sufficiently long time. This requires view synchronization, a requisite of BFT that we extract and formally define here. Existing approaches for Byzantine view synchronization incur quadratic communication (in n, the number of parties). A cascade of O(n) view changes may thus result in O(n3) communication complexity. This paper presents a new Byzantine view synchronization algorithm named Cogsworth, that has optimistically linear communication complexity and constant latency. Faced with benign failures, Cogsworth has expected linear communication and constant latency. The result here serves as an important step towards reaching solutions that have overall quadratic communication, the known lower bound on Byzantine fault tolerant consensus. Cogsworth is particularly useful for a family of BFT protocols that already exhibit linear communication under various circumstances, but suffer quadratic overhead due to view synchro- nization. 1. INTRODUCTION Logical synchronization is a requisite for progress to be made in asynchronous state machine repli- cation (SMR). Previous Byzantine fault tolerant (BFT) synchronization mechanisms incur quadratic message complexities, frequently dominating over the linear cost of the consensus cores of BFT so- lutions. In this work, we define the view synchronization problem and provide the first solution in the Byzantine setting, whose latency is bounded and communication cost is linear, under a broad set of scenarios.
    [Show full text]
  • Safe and Efficient Sharing of Persistent Objects in Thor
    This paper appears in Proceedings of the 1996 ACM SIGMOD Int. Conf. on Management of Data, Montreal, Canada, June 1996. Note: the pages are numbered 318±329, as in the proceedings. Safe and Ef®cient Sharing of Persistent Objects in Thor B.Liskov, A.Adya, M.Castro, M.Day , S.Ghemawat , R.Gruber , U.Maheshwari, A.C.Myers, L.Shrira Laboratory for Computer Science, Massachusetts Institute of Technology, 545 Technology Square, Cambridge, MA 02139 liskov,adya,castro, , , ,umesh,andru,liuba @lcs.mit.edu Abstract Thor is an object-oriented database system designed for use in a are likely to be accessible despite failures. Thor supports heterogeneous distributed environment. It provides highly-reliable heterogeneity at the levels of the machine, network, operating and highly-available persistent storage for objects, and supports system, and especially the programming language. Programs safe sharing of these objects by applications written in different written in different programming languages can easily share programming languages. objects between different applications, or components of Safe heterogeneous sharing of long-lived objects requires the same application. Furthermore, even when client code encapsulation: the system must guarantee that applications interact is written in unsafe languages (such as C or C++), Thor with objects only by invoking methods. Although safety concerns are important, most object-oriented databases forgo safety to avoid guarantees the integrity of the persistent store. paying the associated performance costs. This paper describes the interface and implementation of This paper gives an overview of Thor's design and implementa- Thor and focuses on a novel aspect of Thor in each area.
    [Show full text]
  • Arxiv:2106.11534V1 [Cs.DL] 22 Jun 2021 2 Nanjing University of Science and Technology, Nanjing, China 3 University of Southampton, Southampton, U.K
    Noname manuscript No. (will be inserted by the editor) Turing Award elites revisited: patterns of productivity, collaboration, authorship and impact Yinyu Jin1 · Sha Yuan1∗ · Zhou Shao2, 4 · Wendy Hall3 · Jie Tang4 Received: date / Accepted: date Abstract The Turing Award is recognized as the most influential and presti- gious award in the field of computer science(CS). With the rise of the science of science (SciSci), a large amount of bibliographic data has been analyzed in an attempt to understand the hidden mechanism of scientific evolution. These include the analysis of the Nobel Prize, including physics, chemistry, medicine, etc. In this article, we extract and analyze the data of 72 Turing Award lau- reates from the complete bibliographic data, fill the gap in the lack of Turing Award analysis, and discover the development characteristics of computer sci- ence as an independent discipline. First, we show most Turing Award laureates have long-term and high-quality educational backgrounds, and more than 61% of them have a degree in mathematics, which indicates that mathematics has played a significant role in the development of computer science. Secondly, the data shows that not all scholars have high productivity and high h-index; that is, the number of publications and h-index is not the leading indicator for evaluating the Turing Award. Third, the average age of awardees has increased from 40 to around 70 in recent years. This may be because new breakthroughs take longer, and some new technologies need time to prove their influence. Besides, we have also found that in the past ten years, international collabo- ration has experienced explosive growth, showing a new paradigm in the form of collaboration.
    [Show full text]
  • Introduction to the Literature on Programming Language Design Gary T
    Computer Science Technical Reports Computer Science 7-1999 Introduction to the Literature On Programming Language Design Gary T. Leavens Iowa State University Follow this and additional works at: http://lib.dr.iastate.edu/cs_techreports Part of the Programming Languages and Compilers Commons Recommended Citation Leavens, Gary T., "Introduction to the Literature On Programming Language Design" (1999). Computer Science Technical Reports. 59. http://lib.dr.iastate.edu/cs_techreports/59 This Article is brought to you for free and open access by the Computer Science at Iowa State University Digital Repository. It has been accepted for inclusion in Computer Science Technical Reports by an authorized administrator of Iowa State University Digital Repository. For more information, please contact [email protected]. Introduction to the Literature On Programming Language Design Abstract This is an introduction to the literature on programming language design and related topics. It is intended to cite the most important work, and to provide a place for students to start a literature search. Keywords programming languages, semantics, type systems, polymorphism, type theory, data abstraction, functional programming, object-oriented programming, logic programming, declarative programming, parallel and distributed programming languages Disciplines Programming Languages and Compilers This article is available at Iowa State University Digital Repository: http://lib.dr.iastate.edu/cs_techreports/59 Intro duction to the Literature On Programming Language Design Gary T. Leavens TR 93-01c Jan. 1993, revised Jan. 1994, Feb. 1996, and July 1999 Keywords: programming languages, semantics, typ e systems, p olymorphism, typ e theory, data abstrac- tion, functional programming, ob ject-oriented programming, logic programming, declarative programming, parallel and distributed programming languages.
    [Show full text]
  • Distributed Computing Column 36 Distributed Computing: 2009 Edition
    Distributed Computing Column 36 Distributed Computing: 2009 Edition Idit Keidar Dept. of Electrical Engineering, Technion Haifa, 32000, Israel [email protected] It’s now the season for colorful reviews of 2009. While you can read elsewhere about the year in sports, top-40 pop hit charts, people of the year, and so on, I throw my share into the mix with a (biased) review of this year’s major distributed computing events. Awards First, let’s look at awards. This year we learned that two women were recognized with ACM and IEEE prestigious awards for their achievements in, (among other things), distributed computing. Barbara Liskov won the 2008 ACM Turing Award for a range of contributions to practical and theoretical foundations of programming language and system design, some of which are in distributed computing. The award citation mentions her impact on distributed programming, decentralized information flow, replicated storage, and modular upgrading of distributed systems. I include below a short reflection, by Rodrigo Rodrigues, on Barbara Liskov’s Turing Award and legacy. Looking ahead to 2010, it was recently announced that Nancy Lynch is the recipient of the prestigious 2010 IEEE Emanuel R. Piore Award1 for her contributions to foundations of distributed and concurrent computing. The award is given for outstanding contributions in the field of information processing in relation to computer science. Leslie Lamport has won the same award in 2004 for his seminal contributions to the theory and practice of concurrent programming and fault-tolerant computing. The 2009 Edsger W. Dijkstra Prize in Distributed Computing was awarded to Joseph Halpern and Yoram Moses for “Knowledge and Common Knowledge in a Distributed Environment”.
    [Show full text]
  • Interview with Barbara Liskov ACM Turing Award Recipient 2008 Done at MIT April 20, 2016 Interviewer Was Tom Van Vleck
    B. Liskov Interview 1 Interview with Barbara Liskov ACM Turing Award Recipient 2008 Done at MIT April 20, 2016 Interviewer was Tom Van Vleck Interviewer is noted as “TVV” Dr. Liskov is noted as “BL” ?? = inaudible (with timestamp) or [ ] for phonetic [some slight changes have been made in this transcript to improve the readability, but no material changes were made to the content] TVV: Hello, I’m Tom Van Vleck, and I have the honor today to interview Professor Barbara Liskov, the 2008 ACM Turing Award winner. Today is April 20th, 2016. TVV: To start with, why don’t you tell us a little bit about your upbringing, where you lived, and how you got into the business? BL: I grew up in San Francisco. I was actually born in Los Angeles, so I’m a native Californian. When I was growing up, it was definitely not considered the thing to do for a young girl to be interested in math and science. In fact, in those days, the message that you got was that you were supposed to get married and have children and not have a job. Nevertheless, I was always encouraged by my parents to take academics seriously. My mother was a college grad as well as my father, so it was expected that I would go to college, which in those times was not that common. Maybe 20% of the high school class would go on to college and the rest would not. I was always very interested in math and science, so I took all the courses that were offered at my high school, which wasn’t a tremendous number compared to what is available today.
    [Show full text]
  • Alan Mathison Turing and the Turing Award Winners
    Alan Turing and the Turing Award Winners A Short Journey Through the History of Computer TítuloScience do capítulo Luis Lamb, 22 June 2012 Slides by Luis C. Lamb Alan Mathison Turing A.M. Turing, 1951 Turing by Stephen Kettle, 2007 by Slides by Luis C. Lamb Assumptions • I assume knowlege of Computing as a Science. • I shall not talk about computing before Turing: Leibniz, Babbage, Boole, Gödel... • I shall not detail theorems or algorithms. • I shall apologize for omissions at the end of this presentation. • Comprehensive information about Turing can be found at http://www.mathcomp.leeds.ac.uk/turing2012/ • The full version of this talk is available upon request. Slides by Luis C. Lamb Alan Mathison Turing § Born 23 June 1912: 2 Warrington Crescent, Maida Vale, London W9 Google maps Slides by Luis C. Lamb Alan Mathison Turing: short biography • 1922: Attends Hazlehurst Preparatory School • ’26: Sherborne School Dorset • ’31: King’s College Cambridge, Maths (graduates in ‘34). • ’35: Elected to Fellowship of King’s College Cambridge • ’36: Publishes “On Computable Numbers, with an Application to the Entscheindungsproblem”, Journal of the London Math. Soc. • ’38: PhD Princeton (viva on 21 June) : “Systems of Logic Based on Ordinals”, supervised by Alonzo Church. • Letter to Philipp Hall: “I hope Hitler will not have invaded England before I come back.” • ’39 Joins Bletchley Park: designs the “Bombe”. • ’40: First Bombes are fully operational • ’41: Breaks the German Naval Enigma. • ’42-44: Several contibutions to war effort on codebreaking; secure speech devices; computing. • ’45: Automatic Computing Engine (ACE) Computer. Slides by Luis C.
    [Show full text]
  • The Power of Abstraction
    The Power of Abstraction Barbara Liskov October 2009 Outline Inventing abstract data types CLU Type hierarchy What next Data Abstraction Prehistory The Venus machine The Interdata 3 Data Abstraction Prehistory The Venus machine The Venus operating system Data Abstraction Prehistory The Venus machine The Venus operating system Programming methodology Programming Methodology The software crisis! Machines were getting cheaper And bigger/faster E. W. Dijkstra. The Humble Programmer. Cacm, Oct. 1972 Programming Methodology How should programs be designed? How should programs be structured? The Landscape E. W. Dijkstra. Go To Statement Considered Harmful. Cacm, Mar. 1968 The Landscape N. Wirth. Program Development by Stepwise Refinement. Cacm, April 1971 The Landscape D. L. Parnas. Information Distribution Asppgects of Design Methodology . IFIP Congress, 1971 “The connections between modules are the assumptions which the modules make about each other.” The Landscape D. L. Parnas, On the Criteria to be used in Decomposing Systems into Modules. Cacm, Dec. 1972 Partitions B. Liskov. A Design Methodology for Reliable Software Systems. FJCC, Dec. 1972 Partitions op1231 op2 op3 Partition state From Partitions to ADTs How can these ideas be applied to building programs? Idea Connect partitions to data types Meeting in Savanah ACM Sigplan-Sigops interface meeting. April 1973. (Sigplan Notices, Sept. 1973) Started to work with Steve Zilles The Landscape Extensible Languages S. Schuman and P . Jourrand . Definition Mechanisms in Extensible Programming Languages. AFIPS. 1967 R. Balzer. Dataless Programming. FJCC 1967 The Landscape O-J. Dahl and C.A.R. Hoare. Hierarchical Program Structures. Structured Programming, Academic Press, 1972 The Landscape J. H. Morris. Protection in Programming Languages.
    [Show full text]
  • Operating Systems and Middleware: Supporting Controlled Interaction
    Operating Systems and Middleware: Supporting Controlled Interaction Max Hailperin Gustavus Adolphus College Revised Edition 1.1 July 27, 2011 Copyright c 2011 by Max Hailperin. This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. Bibliography [1] Atul Adya, Barbara Liskov, and Patrick E. O’Neil. Generalized iso- lation level definitions. In Proceedings of the 16th International Con- ference on Data Engineering, pages 67–78. IEEE Computer Society, 2000. [2] Alfred V. Aho, Peter J. Denning, and Jeffrey D. Ullman. Principles of optimal page replacement. Journal of the ACM, 18(1):80–93, 1971. [3] AMD. AMD64 Architecture Programmer’s Manual Volume 2: System Programming, 3.09 edition, September 2003. Publication 24593. [4] Dave Anderson. You don’t know jack about disks. Queue, 1(4):20–30, 2003. [5] Dave Anderson, Jim Dykes, and Erik Riedel. More than an interface— SCSI vs. ATA. In Proceedings of the 2nd Annual Conference on File and Storage Technology (FAST). USENIX, March 2003. [6] Ross Anderson. Security Engineering: A Guide to Building Depend- able Distributed Systems. Wiley, 2nd edition, 2008. [7] Apple Computer, Inc. Kernel Programming, 2003. Inside Mac OS X. [8] Apple Computer, Inc. HFS Plus volume format. Technical Note TN1150, Apple Computer, Inc., March 2004. [9] Ozalp Babaoglu and William Joy. Converting a swap-based system to do paging in an architecture lacking page-referenced bits.
    [Show full text]
  • Barbara Liskov
    MIT 150 | Barbara Liskov INTERVIEWER: So, this is the 150th interview with Dr. Barbara Liskov. And the first question I'm going to ask you is can you tell me a little bit about growing up in California and your family? LISKOV: I grew up in San Francisco. My mother was a homemaker, my father was an attorney. I'm the oldest of four children, and my brother is nine years younger, so for a long time I was the oldest girl who, you know, is sort of like the surrogate for the son. I went to public school. I was always interested in math and science, which, you know, was not really the thing that girls were supposed to do in those days and I just seemed to do it anyway. I don't recall any particular teacher that sought me out or did anything special. I sort of just kept a low profile and did what I was interested in, but I didn't talk about it very much. My father advised me to take a typing course, because in the -- if I should happen to not get married or something would happen to my husband, then I could support myself as a secretary or maybe I could be a teacher. Those were sort of the professionals that were considered to be open to women. Typing turned out to be very useful for me, like it has been for many other people. I remember taking a test in high school to see what career I should -- everybody was taking these tests, and I guess that the experience was often quite universally that they gave you very bad advice.
    [Show full text]