The Design and Implementation of the SELF Compiler, an Optimizing Compiler for Object-Oriented Programming Languages
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Adaptive Optimization for Self: Reconciling High Performance with Exploratory Programming
ADAPTIVE OPTIMIZATION FOR SELF: RECONCILING HIGH PERFORMANCE WITH EXPLORATORY PROGRAMMING A DISSERTATION SUBMITTED TO THE DEPARTMENT OF COMPUTER SCIENCE AND THE COMMITTEE ON GRADUATE STUDIES IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF DOCTOR OF PHILOSOPHY Urs Hölzle August 1994 © Copyright by Urs Hölzle 1994 All rights reserved I certify that I have read this dissertation and that in my opinion it is fully adequate, in scope and quality, as a dissertation for the degree of Doctor of Philosophy. _______________________________________ David M. Ungar (Principal Advisor) I certify that I have read this dissertation and that in my opinion it is fully adequate, in scope and quality, as a dissertation for the degree of Doctor of Philosophy. _______________________________________ John L. Hennessy (Co-Advisor) I certify that I have read this dissertation and that in my opinion it is fully adequate, in scope and quality, as a dissertation for the degree of Doctor of Philosophy. _______________________________________ L. Peter Deutsch I certify that I have read this dissertation and that in my opinion it is fully adequate, in scope and quality, as a dissertation for the degree of Doctor of Philosophy. _______________________________________ John C. Mitchell Approved for the University Committee on Graduate Studies: _______________________________________ iii iv Abstract Object-oriented programming languages confer many benefits, including abstraction, which lets the programmer hide the details of an object’s implementation from the object’s clients. Unfortunately, crossing abstraction boundaries often incurs a substantial run-time overhead in the form of frequent procedure calls. Thus, pervasive use of abstrac- tion, while desirable from a design standpoint, may be impractical when it leads to inefficient programs. -
University of California, Irvine Dissertation Doctor
UNIVERSITY OF CALIFORNIA, IRVINE Computational State Transfer: An Architectural Style for Decentralized Systems DISSERTATION submitted in partial satisfaction of the requirements for the degree of DOCTOR OF PHILOSOPHY in Information and Computer Science by Michael Martin Gorlick Dissertation Committee: Professor Richard N. Taylor, Chair Associate Professor James A. Jones Professor Crista V. Lopes 2016 Copyright © 2016 Michael Martin Gorlick DEDICATION To the memory of my mother Doreen Viola Gorlick (née Rose) December 1927 – February 2015 and my brother Patrick David Gorlick February 1953 – December 2008 ii TABLE OF CONTENTS Page LIST OF FIGURES vi LIST OF TABLES viii ACKNOWLEDGMENTS ix CURRICULUM VITAE xi ABSTRACT OF THE DISSERTATION xv INTRODUCTION 1 CHAPTER 1: Computation Exchange — From Idiom to Style 14 Thesis and Claims 15 Architecture Can Induce Security 17 Architecture Can Induce Adaptation 18 Capability Confines Risk 27 Computation Exchange: A Historical Perspective 28 Security for Computation Exchange 32 Summary 34 CHAPTER 2: COAST Roots — A Brief History of Mobile Code 35 Early History of Mobile Code (1960–1985) 35 Remote Function Evaluation (1987) 37 Remote Evaluation (1986) 38 Mobile Objects 38 Functional Mobile Code Languages (1995–2007) 41 Mobile Agents 45 Mobility Semantics (1996) 47 COAST Dictates Language Semantics and Infrastructure 49 CHAPTER 3: Computational State Transfer: The Style 50 The Threat Model of Computation Exchange 51 The Communication Model of COAST 54 The COAST Architectural Style 60 COAST Scenarios 64 -
Generation Scavenging: a Non-Disruptlve High Perfornm.Nce Storage Reclamation Algorithm
Generation Scavenging: A Non-disruptlve High Perfornm.nce Storage Reclamation Algorithm David Ungar Computer Science Division Department of Electrical Engineering and Computer Sciences University of California Berkeley, California 94720 1. Introduction ABSTRACT Researchers have designed several interactive pro- gramming environments to expedite software construe- Many interactive computing environmencs tion [She83] Central to such environments are high level provide automatic storage reclamation and vir- languages like Lisp, Cedar Mesa, and Smalltalk-80 TM tual memory to ease the burden of managing iGoR83], that provide virtual memory and automatic storage. Unfortunately, many storage reclams~- storage reclamation. Traditionally, the cost of a storage tion algorithms impede interaction with dis- management strategy has been measured by its use of tracting pauses. Generation Scavenging is a rec- CPU time, primary memory, and backing store opera- lamation algorithm that has no noticeable tions averaged over a session. Interactive systems pauses, eliminates page faults for transient demand good short-term performance as well. Large, objects, compacts objects without resorting to unexpected pauses caused by thrashing or storage recla- indirection, and reclaims circular structures, in mation are distracting and reduce productivity. We have one third the time of traditional approaches. designed~ implemented, and measured Generation We have incorporated Generation Scaveng. Scavenging, a new garbage collector that int. in Berkeley Smalltalk (BS), our Smalltalk- • limits pause times to a fraction of a second, 80* implementation, and instrumented it to obtain performance data. We are also designing • requires no hardware support, a microprocessor with hardware support for • meshes well with virtual memory, Generation Scavenging. • reclaims circular structures, and Keywords: garbage collection, generation, per- • uses less than 2% of the CPU time in one Smalltalk sonal computer, real time, scavenge, Smalltalk, system. -
Gilad Bracha Curriculum Vitae
Gilad Bracha Curriculum Vitae April 8, 2021 Executive Summary • Specializing in design of programming languages, core platform facilities and development tools • Currently at F5 Networks. • Co-designer of the Dart programming language at Google. • VP, Cloud Programming Model, SAP Labs. • Designer of the Newspeak programming language and platform. • Distinguished Engineer at Cadence Design Systems. • Distinguished Engineer at Sun Microsystems. • Java Language architect and maintainer and co-author of the Java Lan- guage Specification. • Co-maintainer and co-author of the Java Virtual Machine Specification. • Member of the Animorphic Smalltalk team. • Recognized authority on object-oriented language research and develop- ment. Awarded the senior Dahl-Nygaard prize in 2017. • Track record of bringing leading edge research results into practical indus- trial application. 1 Education • Ph.D. Computer Science, 1991, University of Utah. Gary Lindstrom, ad- visor. Research area: Object Oriented Programming Languages. Disser- tation title: The Programming Language Jigsaw: Modularity, Mixins and Multiple Inheritance. • B.Sc. Mathematics and Computer Science, Ben-Gurion University, Israel, 1983. Employment • February 2020 - present Architect, Shape Security division of F5 Net- works. • July 2019 - January 2020. Distinguished Engineer, Shape Security. • July 2017 - April 2019. Tensyr. { Responsibility: Co-designed dataflow model for defining autonomous vehicle behavior. Used Lua, Python and OCaml to implement DSL serving as front end to on-vehicle dataflow engine. • July 2011 - July 2017. Google. { Responsibility: Co-designer of the Dart programming language, responsible for the written language specification and design of re- flective libraries. • June 2010 - July 2011. Vice President, Cloud Programming Model, Office of CTO, SAP Labs. • January 2009 - May 2010. Independent consultant. -
Exploratory and Live, Programming and Coding: a Literature Study
Exploratory and Live, Programming and Coding A Literature Study Comparing Perspectives on Liveness Patrick Reina, Stefan Ramsona, Jens Linckea, Robert Hirschfelda, and Tobias Papea a Hasso Plattner Institute, University of Potsdam, Germany Abstract Various programming tools, languages, and environments give programmers the impression of changing a program while it is running. This experience of liveness has been discussed for over two decades and a broad spectrum of research on this topic exists. Amongst others, this work has been carried out in the communities around three major ideas which incorporate liveness as an important aspect: live programming, exploratory programming, and live coding. While there have been publications on the focus of each particular community, the overall spectrum of liveness across these three communities has not been investigated yet. Thus, we want to delineate the variety of research on liveness. At the same time, we want to investigate overlaps and differences in the values and contributions between the three communities. Therefore, we conducted a literature study with a sample of 212 publications on the terms retrieved from three major indexing services. On this sample, we conducted a thematic analysis regarding the following aspects: motivation for liveness, application domains, intended outcomes of running a system, and types of contributions. We also gathered bibliographic information such as related keywords and prominent publica- tions. Besides other characteristics the results show that the field of exploratory programming is mostly about technical designs and empirical studies on tools for general-purpose programming. In contrast, publications on live coding have the most variety in their motivations and methodologies with a majority being empirical studies with users. -
11 European Lisp Symposium
Proceedings of the 11th European Lisp Symposium Centro Cultural Cortijo de Miraflores, Marbella, Spain April 16 – 17, 2018 In-cooperation with ACM Dave Cooper (ed.) ISBN-13: 978-2-9557474-2-1 ISSN: 2677-3465 Contents ELS 2018 iii Preface Message from the Program Chair Welcome to the 11thth edition of the European Lisp Symposium! This year’s ELS demonstrates that Lisp continues at the forefront of experimental, academic, and practical “real world” computing. Both the implementations themselves as well as their far-ranging applications remain fresh and exciting in ways that defy other programming lan- guages which rise and fall with the fashion of the day. We have submissions spanning from the ongoing refinement and performance improvement of Lisp implementation internals, to prac- tical and potentially lucrative real-world applications, to the forefront of the brave new world of Quantum Computing. Virtually all the submissions this year could have been published, and it was a challenge to narrow them down enough to fit the program. This year’s Program also leaves some dedicated time for community-oriented discussions, with the purpose of breathing new life and activity into them. On Day One, the Association of Lisp Users (ALU) seeks new leadership. The ALU is a venerable but sometimes dormant pan-Lisp organization with a mission to foster cross-pollenization among Lisp dialects. On Day Two, the Common Lisp Foundation (CLF) will solicit feedback on its efforts so far and will brainstorm for its future focus. On a personal note, this year I was fortunate to have a “working retreat” in the week prior to ELS, hosted by Nick & Lauren Levine in their villa nestled in the hills above Marbella.