University of California, Irvine Dissertation Doctor

Total Page:16

File Type:pdf, Size:1020Kb

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 A Notional COAST Infrastructure 66 Capability URLs in Detail 69 Computations and Identity 74 iii Summary 77 CHAPTER 4: Obligations of the COAST Style 80 Obligations of the COAST Services Rule 80 Obligations of the COAST Execution Rule 84 Obligations of the COAST Messaging Rule 90 Obligations of the COAST Interpretation Rule 92 What the COAST Style Leaves Unsaid 94 Summary 96 CHAPTER 5: Motile: Reflecting the Style 99 Frameworks 99 Domain-Specific Languages (DSLs) 100 Architectural Style-Specific Languages 101 Lessons Learned 102 Motile Binding Semantics 103 Islets and Message Passing 106 Decentralized Promises 110 Spawning 113 Example: A Client Computation for Palindromes 119 Remote Evaluation 120 Summary 123 CHAPTER 6: How Mobile is Motile and Why? 127 Weakness is a Greater Good 127 Intra- versus Inter-island Messaging 132 Intra-Island Messaging 136 Is Intra-Island Messaging COAST-Compliant? 139 Summary 140 CHAPTER 7: Motile: The Details 142 Expressions 142 Derived Expressions 143 Macros 144 Standard Procedures 144 Persistent Functional Data Structures 149 Syntax 160 CHAPTER 8: Evaluation: Live Update 165 Evaluation Criteria 166 Exploiting Binding Environments for Live Update 171 CURL-based Live Update 174 More General Forms of Live Update 175 Live Update for COAST 176 Related Work 187 Summary 188 CHAPTER 9: Evaluation: Web API Design 191 Web Service Design from a COAST Perspective 191 iv The Delicious API 193 Delicious as a COAST-Based Service 194 A Motile API for Delicious 196 Client-defined Extensions of the Motile API for Delicious 200 Performance 217 Summary 218 CHAPTER 10: Evaluation: Security 223 COAST is Authority-Safe 225 Motile/Island is Capability-Safe Hence Authority-Safe 226 Related Work 233 Summary 234 CHAPTER 11: Evaluation: Architectural Accountability 236 Approach: Capability is in Plain Sight 237 Early Experimental Evidence 239 Related Work 239 Summary 241 CHAPTER 12: Summary 243 CHAPTER 13: Future Work 247 Types for Live Computations 247 Extending Execution Engines 248 Service Discovery as a COAST Service 248 Pervasive Live Update 249 Fractalware 249 Integration with Existing Legacy Systems 249 Simplifying Motile/Island 250 References 251 v LIST OF FIGURES Page Figure 1.1 Growth in public web APIs by protocol 22 Figure 1.2 Growth in number of public web APIs 23 Figure 3.1 A generic transport with multiple ingress and egress points 55 Figure 3.2 A dedicated transport between computations x and y 56 Figure 3.3 Notional sketch of a COAST infrastructure 67 Figure 5.1 A Motile predicate to test for palindromes 106 Figure 5.2 A design pattern for variants of a spawning service 115 Figure 5.3 The client implementation of spawning 116 Figure 5.4 Spawning an islet to remotely compute palindromes at a dictionary service 119 Figure 5.5 Using curl/remote* to compute palindromes at a dictionary service 121 Figure 5.6 Using curl/remote to compute palindromes at a dictionary service 122 Figure 5.7 Using curl/remote/block to compute palindromes at a dictionary service 122 Figure 5.8 Implementations of curl/remote and curl/remote/block 124 Figure 6.1 Capture bindings from an execution site binding environment 135 Figure 8.1 Repair a defective implementation of a function in a binding environment 171 Figure 8.2 Notional nanoservice loop 177 Figure 8.3 The closures spawned on island I to create nanoservice f + 181 Figure 8.4 A simple higher-order generator 185 Figure 8.5 Spawn skeleton/f+ to undertake the live update of nanoservice f 186 Figure 9.1 Sample bookmark tags 196 Figure 9.2 A few utility functions for inspecting and querying tags 196 Figure 9.3 A client-defined routine for discovering the latest bookmark 200 Figure 9.4 iterate/fold 201 Figure 9.5 iterate/filter 201 Figure 9.6 iterate/map 202 Figure 9.7 iterate/pipe 202 Figure 9.8 Determine the number of bookmarks introduced per day 203 Figure 9.9 For each day generate a list of the bookmarks introduced on that day 205 Figure 9.10 For each day generate a list of the ids of the bookmarks introduced on that day 206 Figure 9.11 For each tag namespace α determine the bookmarks that mention α 207 Figure 9.12 Find all bookmarks that reference a photo of a roller-coaster 208 Figure 9.13 Function list/find finds the first item in a list that satisfies a predicate p. 209 Figure 9.14 Client-defined helper predicates for searching and querying bookmark tags 209 vi Figure 9.15 Search for all bookmarks that refer to a location. 210 Figure 9.16 Search for all bookmarks that refer to a location in France or Germany 211 Figure 9.17 Search the bookmarks for a photo of a roller coaster in either France or Germany 212 Figure 9.18 iterate/append 213 Figure 9.19 iterate/append is the source of bookmarks for iterate/pipe 214 Figure 9.20 iterate/compose/right extends combinators that accept a pair of generators 219 Figure 9.21 iterate/append* accepts m > 2 generators 219 Figure 9.22 Using iterate/pipe to form generators for iterate/append 219 Figure 9.23 The outputs of multiple generators can be interleaved in useful ways 220 Figure 9.24 iterate/temporal* 220 Figure 9.25 iterate/merge 221 Figure 9.26 iterate/temporal merges two streams in temporal order 221 Figure 9.27 iterate/limit enforces a limit-stop for generators 221 Figure 9.28 Remote evaluation of a search through interleaved bookmarks 222 Figure 11.1 A model financial trading system 240 Figure 11.2 A verification model for financial trading 242 vii LIST OF TABLES Page Table 3.1 The four levels of the Unifying Policy Hierarchy 52 Table 9.1 The Delicious HTTP interface for searching and manipulating bookmarks 193 Table 9.2 The Delicious HTTP interface for searching and manipulating tags 194 Table 9.3 The fields of a bookmark 196 viii ACKNOWLEDGMENTS If it takes a village to raise a child it takes a small mob to usher a doctoral student through advancement to candidacy and from there to final defense. In the spring of 2004 I approached my colleague and friend Dick Taylor with an unusual request: would he consider, given that our professional relationship stretched back to 1976 when we were both graduate students at the University of British Columbia, taking me on as a doctoral student? I will forever treasure his expression of shock and surprise when I popped that question. He bravely and recklessly assented; following the customary tedium of exams, forms and fees, I officially enrolled in the doctoral program at the University of California, Irvine on October 1, 2004 at the tender age of 53. I am deeply indebted to Dick for his willingness to take a flyer on me when any other rational man of letters would have dismissed me as an old fool. It has been a challenging slog from that first day to my thesis defense more than 11 years later. There was a running joke in the department as to which would come first, my doctorate or a Social Security check. I’m pleased to report that those of you in the betting pool who put your money on the Social Security check lost. Along the way I benefited greatly from the kindness and support of friends, many of them my fellow doctoral students. My first office mate was Eric Dashofy, who made the mistake of seriously entertaining my speculations on software architecture and then responding with articulate, well-informed arguments and observations. I repaid his kindness, upon his defense and graduation, by recommending him for a position at The Aerospace Corporation, my employer then, and now. His first office at Aerospace was next door to mine. Eric has risen quickly through the Aerospace ranks; I’m not sure that he will ever forgive me for entrapping him. My second office mate was Justin Erenkrantz, former president of the Apache Foundation and a re- spected figure of the open-source community. Justin became both a friend and colleague and I enjoyed our time together immensely. We quickly discovered our common interest in internet-scale architectures and began, almost immediately, vigorously debating the architectural future of the web.
Recommended publications
  • (11) Application No. AU 2017249661 B2 AUSTRALIAN PATENT OFFICE
    (12) STANDARD PATENT (11) Application No. AU 2017249661 B2 (19) AUSTRALIAN PATENT OFFICE (54) Title Bifidobacteria for reducing food, energy and/or fat intake (51) International Patent Classification(s) A61K 35/745 (2015.01) A61P7/00 (2006.01) A23L 33/135 (2016.01) (21) Application No: 2017249661 (22) Date of Filing: 2017.04.06 (87) WIPO No: WO17/178316 (30) Priority Data (31) Number (32) Date (33) Country 16165379.5 2016.04.14 EP (43) Publication Date: 2017.10.19 (44) Accepted Journal Date: 2020.03.19 (71) Applicant(s) Dupont Nutrition Biosciences ApS (72) Inventor(s) Stenman, Lotta;Lahtinen, Sampo (74) Agent / Attorney Houlihan2 Pty Ltd, Level 1, 70 Doncaster Road, BALWYN NORTH, VIC, 3104, AU (56) Related Art WO 2015007941 A1 WO 2007043933 A1 WO 2010146568 A2 A. IBARRA ET AL, "Effects of polydextrose on different levels of energy intake. A systematic review and meta-analysis", APPETITE, (2015-04-01), vol. 87, pages 30-37 WO 2016020495 A1 L.K. STENMAN et al., "Potential probiotic Bifidobacterium animalis ssp. lactis 420 prevents weight gain and glucose intolerance in diet-induced obese mice", BENEFICIAL MICROBES, (2014-12-01), vol. 5, no. 4, pages 437 - 445 WO 2016020488 A1 (12) INTERNATIONAL APPLICATION PUBLISHED UNDER THE PATENT COOPERATION TREATY (PCT) (19) World Intellectual Property Organization lllllllllllllllllllllllllllllllllllllllllll^ International Bureau (10) International Publication Number (43) International Publication Date WO 2017/178316 Al 19 October 2017 (19.10.2017) WIPO I PCT (51) International Patent Classification: MD, ME, MG, MK, MN, MW, MX, MY, MZ, NA, NG, A61K35/745 (2015.01) A61P 7/00 (2006.01) NI, NO, NZ, OM, PA, PE, PG, PH, PL, PT, QA, RO, RS, A23L 33/135 (2016.01) RU, RW, SA, SC, SD, SE, SG, SK, SL, SM, ST, SV, SY, TH, TJ, TM, TN, TR, TT, TZ, UA, UG, US, UZ, VC, VN, (21) International Application Number: ZA, ZM, ZW.
    [Show full text]
  • Towards a Portable and Mobile Scheme Interpreter
    Towards a Portable and Mobile Scheme Interpreter Adrien Pi´erard Marc Feeley Universit´eParis 6 Universit´ede Montr´eal [email protected] [email protected] Abstract guage. Because Mobit implements R4RS Scheme [6], we must also The transfer of program data between the nodes of a distributed address the serialization of continuations. Our main contribution is system is a fundamental operation. It usually requires some form the demonstration of how this can be done while preserving the in- of data serialization. For a functional language such as Scheme it is terpreter’s maintainability and with local changes to the original in- clearly desirable to also allow the unrestricted transfer of functions terpreter’s structure, mainly through the use of unhygienic macros. between nodes. With the goal of developing a portable implemen- We start by giving an overview of the pertinent features of the tation of the Termite system we have designed the Mobit Scheme Termite dialect of Scheme. In Section 3 we explain the structure interpreter which supports unrestricted serialization of Scheme ob- of the interpreter on which Mobit is based. Object serialization is jects, including procedures and continuations. Mobit is derived discussed in Section 4. Section 5 compares Mobit’s performance from an existing Scheme in Scheme fast interpreter. We demon- with other interpreters. We conclude with related and future work. strate how macros were valuable in transforming the interpreter while preserving its structure and maintainability. Our performance 2. Termite evaluation shows that the run time speed of Mobit is comparable to Termite is a Scheme adaptation of the Erlang concurrency model.
    [Show full text]
  • “Scrap Your Boilerplate” Reloaded
    “Scrap Your Boilerplate” Reloaded Ralf Hinze1, Andres L¨oh1, and Bruno C. d. S. Oliveira2 1 Institut f¨urInformatik III, Universit¨atBonn R¨omerstraße164, 53117 Bonn, Germany {ralf,loeh}@informatik.uni-bonn.de 2 Oxford University Computing Laboratory Wolfson Building, Parks Road, Oxford OX1 3QD, UK [email protected] Abstract. The paper “Scrap your boilerplate” (SYB) introduces a com- binator library for generic programming that offers generic traversals and queries. Classically, support for generic programming consists of two es- sential ingredients: a way to write (type-)overloaded functions, and in- dependently, a way to access the structure of data types. SYB seems to lack the second. As a consequence, it is difficult to compare with other approaches such as PolyP or Generic Haskell. In this paper we reveal the structural view that SYB builds upon. This allows us to define the combinators as generic functions in the classical sense. We explain the SYB approach in this changed setting from ground up, and use the un- derstanding gained to relate it to other generic programming approaches. Furthermore, we show that the SYB view is applicable to a very large class of data types, including generalized algebraic data types. 1 Introduction The paper “Scrap your boilerplate” (SYB) [1] introduces a combinator library for generic programming that offers generic traversals and queries. Classically, support for generic programming consists of two essential ingredients: a way to write (type-)overloaded functions, and independently, a way to access the structure of data types. SYB seems to lacks the second, because it is entirely based on combinators.
    [Show full text]
  • Manydsl One Host for All Language Needs
    ManyDSL One Host for All Language Needs Piotr Danilewski March 2017 A dissertation submitted towards the degree (Dr.-Ing.) of the Faculty of Mathematics and Computer Science of Saarland University. Saarbrücken Dean Prof. Dr. Frank-Olaf Schreyer Date of Colloquium June 6, 2017 Examination Board: Chairman Prof. Dr. Sebastian Hack Reviewers Prof. Dr.-Ing. Philipp Slusallek Prof. Dr. Wilhelm Reinhard Scientific Asistant Dr. Tim Dahmen Piotr Danilewski, [email protected] Saarbrücken, June 6, 2017 Statement I hereby declare that this dissertation is my own original work except where otherwise indicated. All data or concepts drawn directly or indirectly from other sources have been correctly acknowledged. This dissertation has not been submitted in its present or similar form to any other academic institution either in Germany or abroad for the award of any degree. Saarbrücken, June 6, 2017 (Piotr Danilewski) Declaration of Consent Herewith I agree that my thesis will be made available through the library of the Computer Science Department. Saarbrücken, June 6, 2017 (Piotr Danilewski) Zusammenfassung Die Sprachen prägen die Denkweise. Das ist die Tatsache für die gesprochenen Sprachen aber auch für die Programmiersprachen. Da die Computer immer wichtiger in jedem Aspekt des menschlichen Lebens sind, steigt der Bedarf um entsprechend neue Konzepte in den Programmiersprachen auszudrücken. Jedoch, damit unsere Denkweise sich weiterentwicklen könnte, müssen sich auch die Programmiersprachen weiterentwickeln. Aber welche Hilfsmittel gibt es um die Programmiersprachen zu schaffen und aufzurüsten? Wie kann man Entwickler ermutigen damit sie eigene Sprachen definieren, die dem Bereich in dem sie arbeiten am besten passen? Heutzutage gibt es zwei Methoden.
    [Show full text]
  • On Specifying and Visualising Long-Running Empirical Studies
    On Specifying and Visualising Long-Running Empirical Studies Peter Y. H. Wong and Jeremy Gibbons Computing Laboratory, University of Oxford, United Kingdom fpeter.wong,[email protected] Abstract. We describe a graphical approach to formally specifying tem- porally ordered activity routines designed for calendar scheduling. We introduce a workflow model OWorkflow, for constructing specifications of long running empirical studies such as clinical trials in which obser- vations for gathering data are performed at strict specific times. These observations, either manually performed or automated, are often inter- leaved with scientific procedures, and their descriptions are recorded in a calendar for scheduling and monitoring to ensure each observation is carried out correctly at a specific time. We also describe a bidirectional transformation between OWorkflow and a subset of Business Process Modelling Notation (BPMN), by which graphical specification, simula- tion, automation and formalisation are made possible. 1 Introduction A typical long-running empirical study consists of a series of scientific proce- dures interleaved with a set of observations performed over a period of time; these observations may be manually performed or automated, and are usually recorded in a calendar schedule. An example of a long-running empirical study is a clinical trial, where observations, specifically case report form submissions, are performed at specific points in the trial. In such examples, observations are interleaved with clinical interventions on patients; precise descriptions of these observations are then recorded in a patient study calendar similar to the one shown in Figure 1(a). Currently study planners such as trial designers supply information about observations either textually or by inputting textual infor- mation and selecting options on XML-based data entry forms [2], similar to the one shown in Figure 1(b).
    [Show full text]
  • (12) United States Patent (10) Patent No.: US 8,257,695 B2 Rautonen Et Al
    US008257695B2 (12) United States Patent (10) Patent No.: US 8,257,695 B2 Rautonen et al. (45) Date of Patent: Sep. 4, 2012 (54) METHOD FORMODULATING SATIETY Backhed, Fredrik, et al., “Host-bacterial mutualism in the human SIGNALING WITH SPECIFIC STRANS OF intestine.” Science (2005) vol. 307 pp. 1915-1920. Backhed, Fredrik, et al., “The gut microbiota as an environmental LACTOBACILLUS ACIDOPHILUS AND factor that regulates fat storage.” PNAS (2004) vol. 101:44 pp. 15710 BACILLUS 15723 Bleau, C., et al., “New Lactobacillus acidophilus isolates reduce the (75) Inventors: Nina Rautonen, Espoo (FI); Heli release of leptin by murine adipocytes leading to lower interferon gamma production.” Clinical and Experimental Immunology (2005) Putaala, Upinniemi (FI); Arthur vol. 140:3 pp. 427-435. Ouwehand, Inkoo (FI); Kirsti Tiihonen, Fosset, Spohie, et al., “Pharmacokinetics and feeding responses to Helsinki (FI); Marta Korczynska, muramyldipeptide in rats.” Physiolgoy & Behavior (2003) vol. 79 pp. Wageningen (NL); Wouter Herman 173-182. Gee, Jennifer M., et al., “Dietary lactitol fermentation increases Noordman, Ede (NL) circulating peptide YY and glucagon-like peptide-1 in rats and humans.” Nutrition (2005) vol. 21:10 pp. 1036-1043. (73) Assignee: DuPont Nutrition Biosciences ApS, Korbonits, M., et al., “Ghrelin and cannabinoid interactions on food Copenhagen (DK) intake.” Endocrine (2005) (Abstract Only). Le Roux, C.W., et al., "Attenuated peptide YY release in obese (*) Notice: Subject to any disclaimer, the term of this subjects is associated with reduced satiety.” Endocrinology (2005) patent is extended or adjusted under 35 pp. 1-22. Lee, Hui-Young, et al., “Human originated bacteria, Lactobacillus U.S.C.
    [Show full text]
  • Lecture Notes in Computer Science 6120 Commenced Publication in 1973 Founding and Former Series Editors: Gerhard Goos, Juris Hartmanis, and Jan Van Leeuwen
    Lecture Notes in Computer Science 6120 Commenced Publication in 1973 Founding and Former Series Editors: Gerhard Goos, Juris Hartmanis, and Jan van Leeuwen Editorial Board David Hutchison Lancaster University, UK Takeo Kanade Carnegie Mellon University, Pittsburgh, PA, USA Josef Kittler University of Surrey, Guildford, UK Jon M. Kleinberg Cornell University, Ithaca, NY, USA Alfred Kobsa University of California, Irvine, CA, USA Friedemann Mattern ETH Zurich, Switzerland John C. Mitchell Stanford University, CA, USA Moni Naor Weizmann Institute of Science, Rehovot, Israel Oscar Nierstrasz University of Bern, Switzerland C. Pandu Rangan Indian Institute of Technology, Madras, India Bernhard Steffen TU Dortmund University, Germany Madhu Sudan Microsoft Research, Cambridge, MA, USA Demetri Terzopoulos University of California, Los Angeles, CA, USA Doug Tygar University of California, Berkeley, CA, USA Gerhard Weikum Max-Planck Institute of Computer Science, Saarbruecken, Germany Claude Bolduc Jules Desharnais Béchir Ktari (Eds.) Mathematics of Program Construction 10th International Conference, MPC 2010 Québec City, Canada, June 21-23, 2010 Proceedings 13 Volume Editors Claude Bolduc Jules Desharnais Béchir Ktari Université Laval, Département d’informatique et de génie logiciel Pavillon Adrien-Pouliot, 1065 Avenue de la Médecine Québec, QC, G1V 0A6, Canada E-mail: {Claude.Bolduc, Jules.Desharnais, Bechir.Ktari}@ift.ulaval.ca Library of Congress Control Number: 2010927075 CR Subject Classification (1998): F.3, D.2, F.4.1, D.3, D.2.4, D.1 LNCS Sublibrary: SL 1 – Theoretical Computer Science and General Issues ISSN 0302-9743 ISBN-10 3-642-13320-7 Springer Berlin Heidelberg New York ISBN-13 978-3-642-13320-6 Springer Berlin Heidelberg New York This work is subject to copyright.
    [Show full text]
  • Optimizing Subroutines in Assembly Language an Optimization Guide for X86 Platforms
    2. Optimizing subroutines in assembly language An optimization guide for x86 platforms By Agner Fog. Copenhagen University College of Engineering. Copyright © 1996 - 2012. Last updated 2012-02-29. Contents 1 Introduction ....................................................................................................................... 4 1.1 Reasons for using assembly code .............................................................................. 5 1.2 Reasons for not using assembly code ........................................................................ 5 1.3 Microprocessors covered by this manual .................................................................... 6 1.4 Operating systems covered by this manual................................................................. 7 2 Before you start................................................................................................................. 7 2.1 Things to decide before you start programming .......................................................... 7 2.2 Make a test strategy.................................................................................................... 9 2.3 Common coding pitfalls............................................................................................. 10 3 The basics of assembly coding........................................................................................ 12 3.1 Assemblers available ................................................................................................ 12 3.2 Register set
    [Show full text]
  • Towards a Portable and Mobile Scheme Interpreter
    Towards a Portable and Mobile Scheme Interpreter Adrien Pi´erard Marc Feeley Universit´eParis 6 Universit´ede Montr´eal [email protected] [email protected] Abstract guage. Because Mobit implements R4RS Scheme [6], we must also The transfer of program data between the nodes of a distributed address the serialization of continuations. Our main contribution is system is a fundamental operation. It usually requires some form the demonstration of how this can be done while preserving thein- of data serialization. For a functional language such as Scheme it is terpreter’s maintainability and with local changes to the original in- clearly desirable to also allow the unrestricted transfer offunctions terpreter’s structure, mainly through the use of unhygienicmacros. between nodes. With the goal of developing a portable implemen- We start by giving an overview of the pertinent features of the tation of the Termite system we have designed the Mobit Scheme Termite dialect of Scheme. In Section 3 we explain the structure interpreter which supports unrestricted serialization of Scheme ob- of the interpreter on which Mobit is based. Object serialization is jects, including procedures and continuations. Mobit is derived discussed in Section 4. Section 5 compares Mobit’s performance from an existing Scheme in Scheme fast interpreter. We demon- with other interpreters. We conclude with related and futurework. strate how macros were valuable in transforming the interpreter while preserving its structure and maintainability. Our performance 2. Termite evaluation shows that the run time speed of Mobit is comparable to Termite is a Scheme adaptation of the Erlang concurrency model.
    [Show full text]
  • Using Online Design Manual
    USING ONLINE DESIGN MANUAL 1 walsworthyearbooks.com INTRODUCTION Using Online Design The process for creating that one book that tells the story of your school’s year and captures all the precious memories is constantly evolving. Today, many yearbook staffs build their book entirely online using the power and convenience of the Internet. Walsworth’s Online Design harnesses that power and provides the advanced tools and capabilities you need to build the yearbook you want. This manual will give you an overview of Online Design, cover all the basics and get you well on your way to creating your masterpiece. But it’s just the beginning. Throughout the year, continue to reference the Online Design section at yearbookhelp.com for answers to your questions. 2 walsworthyearbooks.com Contents Using Online Design Section 1 – Getting Started • System requirements 3 • Logging in to Online Design 5 • Creating user accounts and setting permissions 5 • Online Design’s home page 7 • Online Design’s spread color coding 8 • Using the Message Center 8 • Using To-Do’s 10 Section 2 – Getting Organized with Plan Book • Choosing fonts 13 • Setting up color styles 14 • Enter spread details 15 • Assign staff to spreads 17 Section 3 – Working with Photos • Create photo albums 18 • Uploading images 18 • Tagging images 20 • Recommending images 21 • Using the Photo Tray 22 • Searching for photos 22 • ClikArt and Backgrounds 24 Section 4 – Getting to Know Page Editor • Launching a Page Editor session 25 • Page Editor tools and menus 26 • Page Editor palettes 27 •
    [Show full text]
  • Fully-Parameterized, First-Class Modules with Hygienic Macros
    Fully-parameterized, First-class Modules with Hygienic Macros Dissertation der Fakult¨at fur¨ Informations- und Kognitionswissenschaften der Eberhard-Karls-Universit¨at Tubingen¨ zur Erlangung des Grades eines Doktors der Naturwissenschaften (Dr. rer. nat.) vorgelegt von Dipl.-Inform. Josef Martin Gasbichler aus Biberach/Riß Tubingen¨ 2006 Tag der mundlichen¨ Qualifikation: 15. 02. 2006 Dekan: Prof. Dr. Michael Diehl 1. Berichterstatter: Prof. Dr. Herbert Klaeren 2. Berichterstatter: Prof. Dr. Peter Thiemann (Universit¨at Freiburg) Abstract It is possible to define a formal semantics for configuration, elaboration, linking, and evaluation of fully-parameterized first-class modules with hygienic macros, independent compilation, and code sharing. This dissertation defines such a semantics making use of explicit substitution to formalize hygienic expansion and linking. In the module system, interfaces define the static semantics of modules and include the definitions of exported macros. This enables full parameterization and independent compilation of modules even in the presence of macros. Thus modules are truly exchangeable components of the program. The basis for the module system is an operational semantics for hygienic macro expansion—computational macros as well as rewriting-based macros. The macro semantics provides deep insight into the nature of hygienic macro expansion through the use of explicit substitutions instead of conventional renaming techniques. The semantics also includes the formal description of Macro Scheme, the meta-language used for evaluating computational macros. Zusammenfassung Es ist m¨oglich, eine formale Semantik anzugeben, welche die Phasen Konfiguration, syntak- tische Analyse mit Makroexpansion, Linken und Auswertung fur¨ ein vollparametrisiertes Mo- dulsystem mit Modulen als Werten erster Klasse, unabh¨angiger Ubersetzung¨ und Code-Sharing beschreibt.
    [Show full text]
  • Local Housing Strategy 2015-20 for the Vale of Glamorgan
    Vale of Glamorgan Council │Local Housing Strategy І Page 1 FOREWORD I am proud to present to you the new Local Housing Strategy 2015-20 for the Vale of Glamorgan. In the last few years’ changes to the welfare system, the lack of growth in wages, unemployment and the rising cost of living has made life harder for some people in the Vale. We have seen an increasing demand for housing, housing advice and support services as people seek help to find suitable homes, manage their finances and maintain their independence. Against a backdrop of a recession and cuts to public funding, our ability to deliver much needed new homes and keep up with the demand for services has presented many challenges. I am pleased to say the Vale of Glamorgan has embraced these challenges. Since the previous Strategy capital investment in housing has exceeded £117 million, the number of people becoming homeless has reduced and over 3000 homes have been brought up to the Welsh Housing Quality Standard. The Council and partners have developed strong, effective partnerships and worked together with stakeholders and residents to plan and develop solutions specifically for the Vale. Achieving the aims of the strategy won’t be an easy task. Continued strong strategic leadership and stakeholder engagement is vital to future success. Councillor Bronwen Brooks, Cabinet Member for Housing, Building Maintenance and Community Safety Vale of Glamorgan Council │Local Housing Strategy 2015-20 І Page 2 The Local Housing Strategy sets out the long term strategic vision for housing in the Vale. That; All residents in the Vale of Glamorgan have access to good quality, suitable housing and are able to live happily and independently in vibrant, sustainable communities.
    [Show full text]