Application-Level Virtual Memory for Object-Oriented Systems Mariano Martinez Peck

Total Page:16

File Type:pdf, Size:1020Kb

Application-Level Virtual Memory for Object-Oriented Systems Mariano Martinez Peck Application-Level Virtual Memory for Object-Oriented Systems Mariano Martinez Peck To cite this version: Mariano Martinez Peck. Application-Level Virtual Memory for Object-Oriented Systems. Program- ming Languages [cs.PL]. Université des Sciences et Technologie de Lille - Lille I, 2012. English. tel-00764991 HAL Id: tel-00764991 https://tel.archives-ouvertes.fr/tel-00764991 Submitted on 26 Dec 2012 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. N° d’ordre : 40886 THESE présentée en vue d’obtenir le grade de DOCTEUR en Spécialité : informatique par Mariano MARTINEZ PECK DOCTORAT DELIVRE CONJOINTEMENT PAR MINES DOUAI ET L’UNIVERSITE DE LILLE 1 Titre de la thèse : Application-Level Virtual Memory for Object-Oriented Systems Soutenue le 29/10/2012 à 10h devant le jury d’examen : Président Jean-Bernard STEFANI (Directeur de recherche – INRIA Grenoble- Rhône-Alpes) Directeur de thèse Stéphane DUCASSE (Directeur de recherche – INRIA Lille) Rapporteur Robert HIRSCHFELD (Professeur – Hasso-Plattner-Institut, Universität Potsdam, Allemagne) Rapporteur Christophe DONY (Professeur – Université Montpellier 2) Examinateur Roel WUYTS (Professeur – IMEC & Katholieke Universiteit Leuven, Belgique) co-Encadrant Noury BOURAQADI (Maître-Assistant – Mines de Douai) co-Encadrant Marcus DENKER (Chargé de recherche – INRIA Lille) co-Encadrant Luc FABRESSE (Maître-Assistant – Mines de Douai) Laboratoire(s) d’accueil : Dépt. IA, Mines Douai + RMoD INRIA Lille Nord de France Ecole Doctorale SPI 072 (Lille I, Lille III, Artois, ULCO, UVHC, Centrale Lille) Contents Acknowledgments ix Abstract xiii Résumé xv 1 Introduction1 1.1 Context: The Memory Used by Running Object-oriented Programs.....2 1.2 The Problem of Using Unnecessary Memory................2 1.3 Shortcomings of Existing Approaches....................3 1.4 Our Solution in a Nutshell..........................5 1.5 Contributions.................................6 1.6 Structure of the Dissertation.........................7 2 Unused Memory in OO Programs: The Problem9 2.1 Introduction.................................. 10 2.2 Glossary.................................... 10 2.3 Analyzing Memory Usage.......................... 11 2.3.1 Detecting Used and Unused Objects................. 11 2.3.2 Applications for Analysis...................... 12 2.3.3 Unused Objects: Experiments.................... 13 2.4 Requirements for Application-Level Virtual Memory Manager....... 14 2.5 Summary................................... 15 3 Approaches to Unused and Application-Level Virtual Memory 17 3.1 Introduction.................................. 18 3.2 Virtual Memory and Garbage Collected Languages............. 18 3.2.1 Operating System Virtual Memory.................. 18 3.2.2 Application-Specific Operating System Virtual Memory...... 19 3.2.3 LOOM: Large Object-Oriented Memory............... 21 3.2.4 Solving the OS Thrashing Problem................. 22 3.3 Reducing the Memory Occupied by Code.................. 23 3.3.1 Reduced and Specialized Runtimes................. 23 3.3.2 Custom and Specific Runtimes.................... 24 3.4 Object Faulting, Orthogonal Persistence and Object Databases....... 25 3.4.1 Object Faulting............................ 25 3.4.2 Orthogonal Persistence and Object Databases............ 26 3.5 Melt: Tolerating Memory Leaks....................... 27 3.6 General-Purpose Object Graph Swappers.................. 28 3.6.1 ImageSegment Object Swapping Principles............. 28 iv Contents 3.6.2 Swapping Out and In......................... 29 3.6.3 Evaluation of ImageSegment..................... 29 3.7 Summary................................... 31 4 Marea, A Model for Application-Level Virtual Memory 33 4.1 Introduction.................................. 34 4.2 Marea Overview............................... 34 4.2.1 Marea Subsystems.......................... 35 4.2.2 Evaluating Requirements on Marea................. 36 4.3 The Main Challenge: Dealing Efficiently with Shared Objects....... 37 4.3.1 The Case of Shared Objects..................... 37 4.3.2 Handling Shared Objects....................... 39 4.4 Marea’s Object Swapper Algorithms..................... 39 4.4.1 Swapping Out............................. 39 4.4.2 Swapping In............................. 42 4.5 Handling Graph Swapping Intersection.................... 45 4.5.1 Problem of Shared Proxies...................... 45 4.5.2 Solution part 1: Swapping Out with Shared Proxies......... 45 4.5.3 Solution part 2: Swapping In with Shared Proxies.......... 46 4.5.4 Cleaning SharedProxiesTable.................... 47 4.6 Summary................................... 47 5 Marea’s Validation 49 5.1 Introduction.................................. 50 5.2 How to Use Marea?.............................. 50 5.3 Experimental Setup.............................. 51 5.4 Benchmarks and Case Studies........................ 52 5.4.1 Swapping Out Code......................... 52 5.4.2 Swapping Out Data.......................... 54 5.5 Measuring Unused Objects and Speed.................... 55 5.5.1 Measuring Unused Objects...................... 55 5.5.2 Speed Analysis............................ 56 5.6 Conclusion.................................. 57 6 Fuel: A Fast and Universal Serializer 59 6.1 Introduction.................................. 60 6.1.1 Motivation and Desired Properties.................. 60 6.1.2 Overview of Fuel........................... 61 6.2 Serializer Required Concerns and Challenges................ 62 6.2.1 Serializer concerns.......................... 63 6.2.2 Serializer challenges......................... 64 6.3 Fuel’s Foundation............................... 66 6.3.1 Pickle Format............................. 66 6.3.2 Grouping objects in clusters..................... 67 Contents v 6.3.3 Analysis phase............................ 69 6.3.4 Two phases for writing instances and references........... 69 6.3.5 Iterative graph recreation....................... 70 6.3.6 Breadth-first traversal......................... 70 6.4 Fuel’s Features................................ 71 6.4.1 Fuel serializer concerns........................ 71 6.4.2 Addressing Challenges with Fuel.................. 73 6.4.3 Discussion.............................. 74 6.5 Fuel Design and Packages.......................... 75 6.5.1 Fuel Design.............................. 75 6.5.2 Fuel Packages and Libraries..................... 76 6.6 Benchmarks.................................. 78 6.6.1 Benchmarks constraints and characteristics............. 78 6.6.2 Benchmarks serializing primitive and large objects......... 80 6.6.3 ImageSegment results explained................... 82 6.6.4 Different graph sizes......................... 83 6.6.5 Differences while using CogVM................... 83 6.6.6 General benchmarks conclusions................... 84 6.7 Real Cases Using Fuel............................ 85 6.8 Related Work................................. 87 6.9 Conclusion.................................. 88 7 Ghost: Uniform and Flexible Proxies 89 7.1 Introduction.................................. 90 7.2 Proxy Evaluation Criteria........................... 91 7.2.1 Vocabulary and Roles......................... 91 7.2.2 Proxies Implementation Criteria................... 92 7.3 Common Proxy Implementation....................... 94 7.3.1 Typical Proxy Implementation.................... 94 7.3.2 Evaluation.............................. 96 7.4 Pharo Support for Proxies........................... 97 7.4.1 Pharo Reflective Model and VM Overview............. 97 7.4.2 Hooks and Features Provided by Pharo............... 98 7.5 Ghost’s Design and Implementation..................... 99 7.5.1 Overview Through an Example................... 99 7.5.2 Proxies for Regular Objects..................... 101 7.5.3 Extending and Adapting Proxies and Handlers........... 102 7.5.4 Intercepting Everything or Not?................... 103 7.5.5 Messages to be Answered by the Handler.............. 103 7.6 Proxies for Classes and Methods....................... 105 7.6.1 Proxies for Methods......................... 105 7.6.2 Proxies for Classes.......................... 106 7.7 Special Messages and Operations....................... 109 7.7.1 Inlined Methods........................... 110 vi Contents 7.7.2 Special Associated Bytecodes and VM optimization........ 111 7.8 Evaluation................................... 112 7.9 Discussing VM Support for Proxies..................... 114 7.10 Case Studies.................................. 115 7.10.1 Marea................................. 115 7.10.2 Method Wrappers........................... 116 7.11 Related Work................................. 117 7.11.1 Proxies in dynamic languages.................... 117 7.11.2 Proxies in static languages...................... 119 7.11.3 Comparison.............................. 120 7.12 Conclusion.................................. 121 8 Marea’s Implementation Details 123 8.1 Introduction.................................. 124 8.2 Marea Implementation............................ 124 8.2.1 Marea Design............................. 124 8.2.2 Requirements
Recommended publications
  • Visualage for Smalltalk Handbook Volume 2: Features
    SG24-2219-00 VisualAge for Smalltalk Handbook Volume 2: Features September 1997 SG24-2219-00 International Technical Support Organization VisualAge for Smalltalk Handbook Volume 2: Features September 1997 IBM Take Note! Before using this information and the product it supports, be sure to read the general information in Appendix A, “Special Notices.” First Edition (September 1997) This edition applies to VisualAge for Smalltalk, Versions 2, 3, and 4, for use with OS/2, AIX, and Microsoft Windows 95/NT. Comments may be addressed to: IBM Corporation, International Technical Support Organization Dept. QXXE Building 80-E2 650 Harry Road San Jose, California 95120-6099 When you send information to IBM, you grant IBM a non-exclusive right to use or distribute the information in any way it believes appropriate without incurring any obligation to you. Copyright International Business Machines Corporation 1997. All rights reserved. Note to U.S. Government Users — Documentation related to restricted rights — Use, duplication or disclosure is subject to restrictions set forth in GSA ADP Schedule Contract with IBM Corp. Contents Preface . xiii How This Redbook Is Organized ....................... xiv ITSO on the Internet ................................ xv VisualAge Support on CompuServe ..................... xvii About the Authors ................................ xvii Acknowledgments . xviii Comments Welcome . xix Chapter 1. AS/400 Connection . 1 Multiple Programs with a Single Remote Procedure Call ......... 1 RPC Part Sets Commit Boundary ........................ 1 Connection Problem with V3R1 ......................... 2 AS/400 Communication Error .......................... 2 Strange Characters on Log-on Window .................... 3 Quick Form from AS/400 Record Classes ................... 3 Communication . 4 Read Next/Previous . 4 SQL Statements . 5 Data Queues and Records ............................ 6 ODBC Requirements .
    [Show full text]
  • Gemstone/S Programming Guide
    GemStone® GemStone/S Programming Guide December 2001 GemStone/S Version 6.0 GemStone Programming Guide IMPORTANT NOTICE This manual and the information contained in it are furnished for informational use only and are subject to change without notice. GemStone Systems, Inc. assumes no responsibility or liability for any errors or inaccuracies that may appear in this manual or in the information contained in it. The manual, or any part of it, may not be reproduced, displayed, photocopied, transmitted or otherwise copied in any form or by any means now known or later developed, such as electronic, optical or mechanical means, without written authorization from GemStone Systems, Inc. Any unauthorized copying may be a violation of law. The software installed in accordance with this manual is copyrighted and licensed by GemStone Systems, Inc. under separate license agreement. This software may only be used pursuant to the terms and conditions of such license agreement. Any other use may be a violation of law. Limitations The software described in this manual is a customer-supported product. Due to the customer’s ability to change any part of a Smalltalk image, GemStone Systems, Inc. cannot guarantee that the GemStone programming environment will function with all Smalltalk images. 1988–2001 by GemStone Systems, Inc. All rights reserved. Use, duplication, or disclosure by the Government is subject to restrictions set forth in subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS 252.227-7013. Trademarks GemStone, GemBuilder, GemConnect, GemEnterprise, andGemORB are registered trademark of GemStone Systems, Inc. The GemStone logo is a registered trademark of GemStone Systems, Inc.
    [Show full text]
  • AIDA/Scribo a Powerful CMS at Your Fingertips!
    AIDA/Scribo a powerful CMS at your fingertips! Nicolas Petton Contents Why another CMS? Architecture History Scribo at work Future Demo Contents Why another CMS? Architecture History Scribo at work Future Demo What is a CMS? Content Management System Web application (Web CMS or WCMS) Used for creating and managing HTML content : HTML pages Associated documents (images, attached files, etc) Why another CMS? Leveraging Smalltalk strengths Leveraging Aida/Web strengths CMS framework for different CMS apps For developers and end users Leveraging AIDA/Web strengths RESTFull and nice looking URLs User, group, role support Security (Access control) Components Ajax integration Contents Why another CMS? Architecture History Scribo at work Future Demo Architecture Architecture Document Attachments Versioning Access rights Lifecycle Locking Workflow Multilingual Subdocuments support References Persistence Other Document Versioning Many versions Url always points to the released version Access to all versions (http://www.site.org/article.html? version=4) Document Lifecycle States during document's life : #pending, #released, #obsolete, ... Can be extended and tailored Document Workflow Managing flow of work through document lifecycle From editing, multiperson approvals, to releasing Who when what needs to do some task Email requesting for some task Email notifications of task done Document Subdocument Vertical hierarchy of documents Folder is a subclass of Document Folder can contain documents or other folders Document can have Chapters (again subclass
    [Show full text]
  • Using Gemstone
    Chapter 17: Using GemStone Let’s get started using GemStone. 1. First we will quickly create a ‘Hello World’ application in GemStone. a. Start GemStone and the Seaside gems using the instructions from Chapter 16 (if it is not running) and launch GemTools. b. In the GemTools launcher, select Seaside, and click the ‘Login’ button. Enter your name if requested. c. Once logged in, click the ‘Tools…’ button and select 'System Browser'. d. This will open an OB System Browser showing GemStone code. Click in the first column to get a class creation template and enter the following in the text area: WAComponent subclass: 'HelloWorld' instVarNames: #() classVars: #() classInstVars: #() poolDictionaries: #[] inDictionary: '' category: 'GLASS' 14-Feb-11 Copyright © 2011 by VMware, Inc. 1 Chapter 17: Using GemStone e. This should update your System Browser to show the new class. f. Click in the third column to change the text area from a class definition to a method template. Enter and save the render method. renderContentOn: html html heading: 'Hello World!'. 14-Feb-11 Copyright © 2011 by VMware, Inc. 2 Chapter 17: Using GemStone g. Register the component as an application. Select the GemTools Launcher, click in the text area below the buttons and enter the expression to register the application. Press <Ctrl>+<D> (for ‘do-it’) to evaluate the expression. WAAdmin register: HelloWorld asApplicationAt: 'hello'. h. Open a web browser on http://glass/browse and note that ‘hello’ is listed. i. Click on the ‘hello’ link to get the application. 14-Feb-11 Copyright © 2011 by VMware, Inc. 3 Chapter 17: Using GemStone 2.
    [Show full text]
  • Debian Edu / Skolelinux Wheezy 7.1+Edu0 Manual
    Debian Edu / Skolelinux Wheezy 7.1+edu0 Manual May 28, 2016 i CONTENTS CONTENTS Contents 1 Manual for Debian Edu 7.1+edu0 Codename Wheezy1 2 About Debian Edu and Skolelinux1 2.1 Some history and why two names . .1 3 Architecture 2 3.1 Network . .2 3.1.1 The default network setup . .3 3.1.2 Main server (tjener) . .3 3.1.3 Services running on the main server . .3 3.1.4 LTSP server(s) (Thin client server(s)) . .5 3.1.5 Thin clients . .5 3.1.6 Diskless workstations . .5 3.1.7 Networked clients . .5 3.2 Administration . .5 3.2.1 Installation . .5 3.2.2 File system access configuration . .6 4 Requirements 6 4.1 Hardware requirements . .6 4.2 Hardware known to work . .7 5 Requirements for network setup7 5.1 Default Setup . .7 5.2 Internet router . .7 6 Installation and download options8 6.1 Where to find additional information . .8 6.2 Download the installation media for Debian Edu 7.1+edu0 Codename "Wheezy" . .8 6.2.1 netinstall CD image for i386, amd64 . .8 6.2.2 USB flash drive / Blue-ray disc ISO image for i386 and amd64 . .8 6.2.3 Source image . .8 6.3 Request a CD / DVD by mail . .8 6.4 Installing Debian Edu . .9 6.4.1 Select type of installation . .9 6.4.1.1 Additional boot parameters for installations . 12 6.4.2 The installation process . 12 6.4.3 Notes on some characteristics . 14 6.4.3.1 A note on notebooks .
    [Show full text]
  • CONFERENCE COMPANION ESUG 2008 - 16Th International Smalltalk Conference
    ESUG-2008 CONFERENCE COMPANION ESUG 2008 - 16th International Smalltalk Conference CONTENTS Platinum Sponsors.......................................................................................................... 3 Gold Sponsors................................................................................................................ 4 Conference Location....................................................................................................... 5 Program Overview........................................................................................................... 8 Saturday, August 23...................................................................................................... 10 Sunday, August 24......................................................................................................... 10 Monday, August 25....................................................................................................... 11 Tuesday, August 26....................................................................................................... 16 Wednesday, August 27.................................................................................................. 20 Thursday, August 28...................................................................................................... 23 Friday, August 29........................................................................................................... 27 Program Overview........................................................................................................
    [Show full text]
  • Gemstone Programming Guide
    GemStone GemStone Programming Guide July 1996 GemStone Version 5.0 GemStone Programming Guide IMPORTANT NOTICE This manual and the information contained in it are furnished for informational use only and are subject to change without notice. GemStone Systems, Inc. assumes no responsibility or liability for any errors or inaccuracies that may appear in this manual or in the information contained in it. The manual, or any part of it, may not be reproduced, displayed, photocopied, transmitted or otherwise copied in any form or by any means now known or later developed, such as electronic, optical or mechanical means, without written authorization from GemStone Systems, Inc. Any unauthorized copying may be a violation of law. The software installed in accordance with this manual is copyrighted and licensed by GemStone Systems, Inc. under separate license agreement. This software may only be used pursuant to the terms and conditions of such license agreement. Any other use may be a violation of law. Limitations The software described in this manual is a customer-supported product. Due to the customer’s ability to change any part of a Smalltalk image, GemStone Systems, Inc. cannot guarantee that the GemStone programming environment will function with all Smalltalk images. Copyright by GemStone Systems, Inc. 1988–1995. All rights reserved. Use, duplication, or disclosure by the Government is subject to restrictions set forth in subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS 252.227-7013. Trademarks GemStone is a registered trademark of GemStone Systems, Inc. Objectworks and Smalltalk-80 are trademarks of ParcPlace Systems, Inc.
    [Show full text]
  • Smalltalk Solutions 2006 Report
    Smalltalk Solutions 2006, Toronto, 24 - 26 May 2006 1 Smalltalk Solutions 2006, Toronto, 24 - 26 May 2006 I spent the days before and after the conference with a friend at Oakville, 20 miles west along the lake from Toronto. Unfortunately, I forgot to move the bottle of fine merlot I was bringing her from my hold baggage to my hand-baggage before check-in so my clothes drank it instead of my host. I advise cold-soaking before washing for removing red wine stains. (As my friend remarked while cleaning a wool jacket, when the wool is on the sheep, it can be hot or it can be wet but in the UK it is rarely both at once.) This year’s Smalltalk Solutions was combined with Linux World and Network World, and so was on a larger scale than usual, though not so large a scale as the Toronto Metro Convention Centre, whose space syntax was quite something to encounter first thing Monday morning if, like me, you arrived at the south building (where numerous coaches disgorged their contents outside the entrance), eventually worked out that you needed to cross the skywalk (over what seemed like most of downtown Toronto) to the north building, and there found numerous trucks parked inside the building, disgorging their contents into the remainder of a space so vast there did not at first seem anywhere else for the convention to be. Style In the text below, ‘I’ or ‘my’ refers to Niall Ross; speakers are referred to by name or in the third person.
    [Show full text]
  • Nested Class Modularity in Squeak/Smalltalk
    Springer, Nested Class Modularity in Squeak/Smalltalk Nested Class Modularity in Squeak/Smalltalk Modularität mit geschachtelten Klassen in Squeak/Smalltalk by Matthias Springer A thesis submitted to the Hasso Plattner Institute at the University of Potsdam, Germany in partial fulfillment of the requirements for the degree of Master of Science in ITSystems Engineering Supervisor Prof. Dr. Robert Hirschfeld Software Architecture Group Hasso Plattner Institute University of Potsdam, Germany August 17, 2015 Abstract We present the concept, the implementation, and an evaluation of Matriona, a module system for and written in Squeak/Smalltalk. Matriona is inspired by Newspeak and based on class nesting: classes are members of other classes, similarly to class instance variables. Top-level classes (modules) are globals and nested classes can be accessed using message sends to the corresponding enclosing class. Class nesting effec- tively establishes a global and hierarchical namespace, and allows for modular decomposition, resulting in better understandability, if applied properly. Classes can be parameterized, allowing for external configuration of classes, a form of dependency management. Furthermore, parameterized classes go hand in hand with mixin modularity. Mixins are a form of inter-class code reuse and based on single inheritance. We show how Matriona can be used to solve the problem of duplicate classes in different modules, to provide a versioning and dependency management mech- anism, and to improve understandability through hierarchical decomposition. v Zusammenfassung Diese Arbeit beschreibt das Konzept, die Implementierung und die Evaluierung von Matriona, einem Modulsystem für und entwickelt in Squeak/Smalltalk. Ma- triona ist an Newspeak angelehnt und basiert auf geschachtelten Klassen: Klassen, die, wie zum Beispiel auch klassenseitige Instanzvariablen, zu anderen Klassen gehören.
    [Show full text]
  • Indicators for Missing Maintainership in Collaborative Open Source Projects
    TECHNISCHE UNIVERSITÄT CAROLO-WILHELMINA ZU BRAUNSCHWEIG Studienarbeit Indicators for Missing Maintainership in Collaborative Open Source Projects Andre Klapper February 04, 2013 Institute of Software Engineering and Automotive Informatics Prof. Dr.-Ing. Ina Schaefer Supervisor: Michael Dukaczewski Affidavit Hereby I, Andre Klapper, declare that I wrote the present thesis without any assis- tance from third parties and without any sources than those indicated in the thesis itself. Braunschweig / Prague, February 04, 2013 Abstract The thesis provides an attempt to use freely accessible metadata in order to identify missing maintainership in free and open source software projects by querying various data sources and rating the gathered information. GNOME and Apache are used as case studies. License This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) license. Keywords Maintenance, Activity, Open Source, Free Software, Metrics, Metadata, DOAP Contents List of Tablesx 1 Introduction1 1.1 Problem and Motivation.........................1 1.2 Objective.................................2 1.3 Outline...................................3 2 Theoretical Background4 2.1 Reasons for Inactivity..........................4 2.2 Problems Caused by Inactivity......................4 2.3 Ways to Pass Maintainership.......................5 3 Data Sources in Projects7 3.1 Identification and Accessibility......................7 3.2 Potential Sources and their Exploitability................7 3.2.1 Code Repositories.........................8 3.2.2 Mailing Lists...........................9 3.2.3 IRC Chat.............................9 3.2.4 Wikis............................... 10 3.2.5 Issue Tracking Systems...................... 11 3.2.6 Forums............................... 12 3.2.7 Releases.............................. 12 3.2.8 Patch Review........................... 13 3.2.9 Social Media............................ 13 3.2.10 Other Sources..........................
    [Show full text]
  • Cormac Flanagan Fritz Henglein Nate Nystrom Gavin Bierman Jan Vitek Gilad Bracha Philip Wadler Jeff Foster Tobias Wrigstad Peter Thiemann Sam Tobin-Hochstadt
    PC: Amal Ahmed SC: Matthias Felleisen Robby Findler (chair) Cormac Flanagan Fritz Henglein Nate Nystrom Gavin Bierman Jan Vitek Gilad Bracha Philip Wadler Jeff Foster Tobias Wrigstad Peter Thiemann Sam Tobin-Hochstadt Organizers: Tobias Wrigstad and Jan Vitek Schedule Schedule . 3 8:30 am – 10:30 am: Invited Talk: Scripting in a Concurrent World . 5 Language with a Pluggable Type System and Optional Runtime Monitoring of Type Errors . 7 Position Paper: Dynamically Inferred Types for Dynamic Languages . 19 10:30 am – 11:00 am: Coffee break 11:00 am – 12:30 pm: Gradual Information Flow Typing . 21 Type Inference with Run-time Logs . 33 The Ciao Approach to the Dynamic vs. Static Language Dilemma . 47 12:30 am – 2:00 pm: Lunch Invited Talk: Scripting in a Concurrent World John Field IBM Research As scripting languages are used to build increasingly complex systems, they must even- tually confront concurrency. Concurrency typically arises from two distinct needs: han- dling “naturally” concurrent external (human- or software-generated) events, and en- hancing application performance. Concurrent applications are difficult to program in general; these difficulties are multiplied in a distributed setting, where partial failures are common and where resources cannot be centrally managed. The distributed sys- tems community has made enormous progress over the past few decades designing specialized systems that scale to handle millions of users and petabytes of data. How- ever, combining individual systems into composite applications that are scalable—not to mention reliable, secure, and easy to develop maintain—remains an enormous chal- lenge. This is where programming languages should be able to help: good languages are designed to facilitate composing large applications from smaller components and for reasoning about the behavior of applications modularly.
    [Show full text]
  • Pipenightdreams Osgcal-Doc Mumudvb Mpg123-Alsa Tbb
    pipenightdreams osgcal-doc mumudvb mpg123-alsa tbb-examples libgammu4-dbg gcc-4.1-doc snort-rules-default davical cutmp3 libevolution5.0-cil aspell-am python-gobject-doc openoffice.org-l10n-mn libc6-xen xserver-xorg trophy-data t38modem pioneers-console libnb-platform10-java libgtkglext1-ruby libboost-wave1.39-dev drgenius bfbtester libchromexvmcpro1 isdnutils-xtools ubuntuone-client openoffice.org2-math openoffice.org-l10n-lt lsb-cxx-ia32 kdeartwork-emoticons-kde4 wmpuzzle trafshow python-plplot lx-gdb link-monitor-applet libscm-dev liblog-agent-logger-perl libccrtp-doc libclass-throwable-perl kde-i18n-csb jack-jconv hamradio-menus coinor-libvol-doc msx-emulator bitbake nabi language-pack-gnome-zh libpaperg popularity-contest xracer-tools xfont-nexus opendrim-lmp-baseserver libvorbisfile-ruby liblinebreak-doc libgfcui-2.0-0c2a-dbg libblacs-mpi-dev dict-freedict-spa-eng blender-ogrexml aspell-da x11-apps openoffice.org-l10n-lv openoffice.org-l10n-nl pnmtopng libodbcinstq1 libhsqldb-java-doc libmono-addins-gui0.2-cil sg3-utils linux-backports-modules-alsa-2.6.31-19-generic yorick-yeti-gsl python-pymssql plasma-widget-cpuload mcpp gpsim-lcd cl-csv libhtml-clean-perl asterisk-dbg apt-dater-dbg libgnome-mag1-dev language-pack-gnome-yo python-crypto svn-autoreleasedeb sugar-terminal-activity mii-diag maria-doc libplexus-component-api-java-doc libhugs-hgl-bundled libchipcard-libgwenhywfar47-plugins libghc6-random-dev freefem3d ezmlm cakephp-scripts aspell-ar ara-byte not+sparc openoffice.org-l10n-nn linux-backports-modules-karmic-generic-pae
    [Show full text]