Technologies for Main Memory Data Analysis

Total Page:16

File Type:pdf, Size:1020Kb

Technologies for Main Memory Data Analysis TECHNOLOGIES FOR MAIN MEMORY DATA ANALYSIS DISSERTATION FOR THE AWARD OF THE DOCTORAL DIPLOMA ATHENS UNIVERSITY OF ECONOMICS AND BUSINESS 2020 Marios D. Fragkoulis Department of Management Science and Technology Athens University of Economics and Business ii Department of Management Science and Technology Athens University of Economics and Business Email: [email protected] Copyright 2017 Marios Fragkoulis This work is licensed under a Creave Commons Aribuon-ShareAlike 4.0 Internaonal License. iii Supervised by Professor Diomidis Spinellis iv To my parents Contents 1 Introducon 1 1.1 Context ......................................... 1 1.2 Problem statement ................................... 2 1.3 Proposed soluon and contribuons .......................... 2 1.4 Research methodology ................................. 3 1.5 Thesis outline ...................................... 3 2 Related Work 6 2.1 Orthogonal persistence ................................. 7 2.1.1 Background ................................... 7 2.1.2 Scope ...................................... 8 2.1.3 Surveys on orthogonal persistence ....................... 9 2.1.4 Dimensions of persistent systems ....................... 11 2.1.4.1 Persistence implementaon ..................... 12 2.1.4.2 Data denion and manipulaon language ............. 12 2.1.4.3 Stability and resilience ........................ 12 2.1.4.4 Protecon .............................. 12 2.1.5 Persistent systems performing transacons .................. 15 2.1.5.1 Persistent operang systems .................... 15 2.1.5.2 Persistent programming systems .................. 16 2.1.5.3 Persistent stores ........................... 17 2.1.6 Persistent systems performing distributed processing ............. 18 2.1.6.1 Persistent operang systems .................... 19 2.1.6.2 Persistent programming systems .................. 19 2.1.6.3 Persistent stores ........................... 20 2.1.7 Performance Opmisaons .......................... 22 2.2 Programming language query support ......................... 23 2.2.1 Query languages and interacve interfaces for object-oriented data ..... 24 2.2.1.1 Database query languages for object-oriented data ........ 24 2.2.1.2 Query comprehensions to programming language collecons ... 25 2.2.1.3 Ad-hoc queries to main memory D(B)MSs ............. 25 2.2.1.4 Ad-hoc queries to object collecons ................ 26 2.2.2 Relaonal representaons for objects ..................... 26 2.2.2.1 Object-relaonal mapping ...................... 26 2.2.2.2 Relaonships and associaons as rst class programming language constructs .............................. 27 2.2.2.3 Relaonal interface to programming language data structures ... 27 2.2.3 N1NF relaonal data model .......................... 28 2.3 Diagnosc tools ..................................... 29 v vi 2.3.1 Operang system relaonal interfaces ..................... 29 2.3.2 Kernel diagnosc tools that use built-in performance counters ........ 30 2.3.3 Kernel diagnosc tools that use program instrumentaon techniques .... 30 2.3.4 Applicaon diagnosc tools .......................... 31 3 Query interface design 33 3.1 Relaonal representaon of objects .......................... 33 3.1.1 Mapping has-a associaons .......................... 34 3.1.2 Mapping many-to-many associaons ..................... 35 3.1.3 Mapping is-a associaons ........................... 36 3.2 A domain specic language for dening relaonal representaons of data structures 37 3.2.1 Struct view denion .............................. 37 3.2.2 Virtual table denion ............................. 41 3.3 Mapping a relaonal query evaluaon to the underlying object-oriented environment 42 3.4 Relaonal algebra extension for virtual table instanaons .............. 45 3.5 Soware architecture .................................. 45 4 Query interface implementaon 49 4.1 Generave programming ................................ 49 4.2 Virtual table implementaon .............................. 50 4.3 SQL support ....................................... 50 4.4 Query opmizaons ................................... 51 4.5 Query interface ..................................... 51 4.6 Embedding i in applicaons ........................... 52 4.7 Loadable module implementaon for the Linux kernel ................ 53 4.7.1 Query interfaces ................................ 54 4.7.2 Security ..................................... 54 4.7.3 Synchronized access to kernel data structures ................. 55 4.7.3.1 Denion of consistency ...................... 55 4.7.3.2 Synchronizaon in i ...................... 55 4.7.3.3 Limitaons .............................. 55 4.7.4 Reliability .................................... 56 4.7.5 Deployment and maintenance ......................... 56 4.7.6 Portability .................................... 57 4.8 Implementaon for the Valgrind framework ...................... 57 5 Empirical Validaon 58 5.1 Data analysis of C++ applicaons ............................ 58 5.1.1 Method ..................................... 58 5.1.2 Use cases .................................... 59 5.1.3 Presentaon of measurements ......................... 62 5.1.3.1 LOC measurements ......................... 63 5.1.3.2 CPU execuon me measurements ................. 63 5.1.3.3 Query memory use measurements ................. 63 5.1.4 Results ..................................... 64 5.2 Diagnoscs in the Linux kernel ............................. 65 5.2.1 Method ..................................... 65 5.2.2 Use cases .................................... 65 5.2.2.1 Operaon integrity ......................... 65 5.2.2.2 Security audits ............................ 68 vii 5.2.2.3 Performance ............................. 70 5.2.3 Presentaon of measurements ......................... 70 5.2.3.1 Query execuon eciency ..................... 71 5.2.3.2 Impact on system performance ................... 71 5.2.4 Results ..................................... 72 5.2.4.1 Query execuon eciency ..................... 72 5.2.4.2 Impact on system performance ................... 73 5.3 Analysis of memory proles in the Valgrind instrumentaon framework ....... 75 5.3.1 Method ..................................... 75 5.3.2 Use cases .................................... 75 5.3.2.1 Memcheck .............................. 76 5.3.2.2 Cachegrind .............................. 80 5.3.2.3 Callgrind ............................... 81 5.3.3 Presentaon of measurements ......................... 82 5.3.4 Results ..................................... 83 5.4 User study ........................................ 86 5.4.1 Soware typology ............................... 87 5.4.2 Movaon and quesons ........................... 87 5.4.3 Experimental design .............................. 89 5.4.3.1 Users ................................. 89 5.4.3.2 Seng ................................ 89 5.4.3.3 Tasks ................................. 89 5.4.4 Experimental evaluaon ............................ 90 5.4.5 Experimental results .............................. 91 5.4.6 User interface preferences ........................... 91 5.4.7 Threats to validity ................................ 93 5.4.8 Limitaons ................................... 93 6 Conclusions and Future Work 94 6.1 Summary of results ................................... 94 6.2 Overall contribuon ................................... 95 6.3 Future work ....................................... 96 6.4 Conclusions ....................................... 96 A Appendix 98 A.1 C++ and SQL code for the queries used in the evaluated applicaons ......... 98 A.1.1 Stellarium .................................... 98 A.1.2 QLandKarte ................................... 101 A.1.3 CScout ..................................... 106 A.2 Idenfy possible privilege escalaon aacks with AWK ................ 107 A.3 Dynamic diagnosc tasks via Systemtap scripts .................... 108 A.4 Diagnosc tasks with i , Systemtap, and DTrace ................. 110 Bibliography 112 List of Figures 1.1 The research methodology followed .......................... 4 2.1 Map of research work related to this thesis ...................... 6 3.1 has-a associaon .................................... 34 3.2 Has-one and has-many associaons between data structures are normalized or de- normalized in the virtual relaonal schema. ...................... 34 3.3 Many-to-many associaon ............................... 36 3.4 Inheritance and subtype polymorphism support .................... 37 3.5 Full support of polymorphic containers ......................... 37 3.6 syntax in notaon ................................ 38 3.7 The C++ i under the library’s namespace .................. 47 3.8 Soware architecture .................................. 48 4.1 Web-based query interface ............................... 52 4.2 Steps for plugging i in an applicaon. ...................... 53 5.1 Class diagram and virtual table schema for the Stellarium, QLandkarte, and CScout applicaons ....................................... 60 5.2 Linux kernel models ................................... 65 5.3 Fixed query cost depending on number of s. .................... 73 5.4 Impact on system performance ............................. 74 5.5 Workow for embedding i to Valgrind ...................... 75 5.6 Memcheck’s data structure model and relaonal representaon ........... 77 5.7 Cachegrind’s data structure model and relaonal representaon ........... 84 5.8 Callgrind’s data structure model and relaonal representaon ............ 85 5.9 i ’s scalability ..................................
Recommended publications
  • Katalog Elektronskih Knjiga
    KATALOG ELEKTRONSKIH KNJIGA Br Autor Naziv Godina ISBN Str. Porijeklo izdavanja 1 Peter Kent Pay Per Click Search 2006 0-471-74594-3 130 Kupovina Engine Marketing for Dummies 2 Terry Large Access 1 2007 Internet Freeware 3 Kevin Smith Excel Lassons & Tutorials 2004 Internet Freeware 4 Terry Michael Photografy Tutorials 2006 Internet Freeware Janine Peterson Phil Pivnick 5 Jake Ludington Converting Vinyl LPs 2003 Internet Freeware to CD 6 Allen Wyatt Cleaning Windows XP 2004 0-7645-7311-X Poklon for Dummies 7 Peter Kent Sarch Engine Optimization 2006 0-4717-5441-2 Kupovina for Dummies 8 Terry Large Access 2 2007 Internet Freeware 9 Dirk Dupon How to write, create, 2005 Internet Freeware promote and sell E-books on the Internet 10 Chayden Bates eBook Marketing 2000 Internet Freeware Explained 11 Kevin Sinclair How To Choose A 1999 Internet Freeware Homebased Bussines 12 Bob McElwain 101 Newbie-Frendly Tips 2001 Internet Freeware 13 Windows Basics 2004 Poklon 14 Michael Abrash Zen of Graphic 2005 Poklon Programming, 2. izdanje 15 13 Hot Internet 2000 Internet Freeware Moneymaking Methods 16 K. Williams The Complete HTML 1998 Poklon Teacher 17 C. Darwin On the Origin of Species Internet Freeware 2/175 Br Autor Naziv Godina ISBN Str. Porijeklo izdavanja 18 C. Darwin The Variation of Animals Internet Freeware 19 Bruce Eckel Thinking in C++, Vol 1 2000 Internet Freeware 20 Bruce Eckel Thinking in C++, Vol 2 2000 Internet Freeware 21 James Parton Captains of Industry 1890 399 Internet Freeware 22 Bruno R. Preiss Data Structures and 1998 Internet
    [Show full text]
  • The Effect of Compression and Expansion on Stochastic Reaction Networks
    IMT School for Advanced Studies, Lucca Lucca, Italy The Effect of Compression and Expansion on Stochastic Reaction Networks PhD Program in Institutions, Markets and Technologies Curriculum in Computer Science and Systems Engineering (CSSE) XXXI Cycle By Tabea Waizmann 2021 The dissertation of Tabea Waizmann is approved. Program Coordinator: Prof. Rocco De Nicola, IMT Lucca Supervisor: Prof. Mirco Tribastone, IMT Lucca The dissertation of Tabea Waizmann has been reviewed by: Dr. Catia Trubiani, Gran Sasso Science Institute Prof. Michele Loreti, University of Camerino IMT School for Advanced Studies, Lucca 2021 To everyone who believed in me. Contents List of Figures ix List of Tables xi Acknowledgements xiii Vita and Publications xv Abstract xviii 1 Introduction 1 2 Background 6 2.1 Multisets . .6 2.2 Reaction Networks . .7 2.3 Ordinary Lumpability . 11 2.4 Layered Queuing Networks . 12 2.5 PEPA . 16 3 Coarse graining mass-action stochastic reaction networks by species equivalence 19 3.1 Species Equivalence . 20 3.1.1 Species equivalence as a generalization of Markov chain ordinary lumpability . 27 3.1.2 Characterization of SE for mass-action networks . 27 3.1.3 Computation of the maximal SE and reduced net- work . 28 vii 3.2 Applications . 31 3.2.1 Computational systems biology . 31 3.2.2 Epidemic processes in networks . 33 3.3 Discussion . 36 4 DiffLQN: Differential Equation Analysis of Layered Queuing Networks 37 4.1 DiffLQN .............................. 38 4.1.1 Architecture . 38 4.1.2 Capabilities . 38 4.1.3 Syntax . 39 4.2 Case Study: Client-Server dynamics . 41 4.3 Discussion .
    [Show full text]
  • Printed Program
    rd International Conference 43 on Software Engineering goes Virtual PROGRAM May 25th –28th 2021 Co-located events: May 17th –May 24th Workshops: May 24th , May 29th –June 4th https://conf.researchr.org/home/icse-2021 @ICSEconf Table of Contents Conference overviews ............................................................... 3 Sponsors and Supporters ......................................................... 11 Welcome letter ........................................................................ 13 Keynotes ................................................................................. 18 Technical Briefings ................................................................. 28 Co-located events .................................................................... 35 Workshops .............................................................................. 36 New Faculty Symposium ........................................................ 37 Doctoral Symposium .............................................................. 39 Detailed Program - Tuesday, May 25th .................................................... 42 - Wednesday, May 26th ............................................... 53 - Thursday, May 27th .................................................. 66 - Friday, May 28th ....................................................... 80 Awards .................................................................................... 91 Social and Networking events ................................................. 94 Organizing Committee ........................................................
    [Show full text]
  • Type Checking Physical Frames of Reference for Robotic Systems
    PhysFrame: Type Checking Physical Frames of Reference for Robotic Systems Sayali Kate Michael Chinn Hongjun Choi Purdue University University of Virginia Purdue University USA USA USA [email protected] [email protected] [email protected] Xiangyu Zhang Sebastian Elbaum Purdue University University of Virginia USA USA [email protected] [email protected] ABSTRACT Engineering (ESEC/FSE ’21), August 23–27, 2021, Athens, Greece. ACM, New A robotic system continuously measures its own motions and the ex- York, NY, USA, 16 pages. https://doi.org/10.1145/3468264.3468608 ternal world during operation. Such measurements are with respect to some frame of reference, i.e., a coordinate system. A nontrivial 1 INTRODUCTION robotic system has a large number of different frames and data Robotic systems have rapidly growing applications in our daily life, have to be translated back-and-forth from a frame to another. The enabled by the advances in many areas such as AI. Engineering onus is on the developers to get such translation right. However, such systems becomes increasingly important. Due to the unique this is very challenging and error-prone, evidenced by the large characteristics of such systems, e.g., the need of modeling the phys- number of questions and issues related to frame uses on developers’ ical world and satisfying the real time and resource constraints, forum. Since any state variable can be associated with some frame, robotic system engineering poses new challenges to developers. reference frames can be naturally modeled as variable types. We One of the prominent challenges is to properly use physical frames hence develop a novel type system that can automatically infer of reference.
    [Show full text]
  • Dynamic Extension of Typed Functional Languages
    Dynamic Extension of Typed Functional Languages Don Stewart PhD Dissertation School of Computer Science and Engineering University of New South Wales 2010 Supervisor: Assoc. Prof. Manuel M. T. Chakravarty Co-supervisor: Dr. Gabriele Keller Abstract We present a solution to the problem of dynamic extension in statically typed functional languages with type erasure. The presented solution re- tains the benefits of static checking, including type safety, aggressive op- timizations, and native code compilation of components, while allowing extensibility of programs at runtime. Our approach is based on a framework for dynamic extension in a stat- ically typed setting, combining dynamic linking, runtime type checking, first class modules and code hot swapping. We show that this framework is sufficient to allow a broad class of dynamic extension capabilities in any statically typed functional language with type erasure semantics. Uniquely, we employ the full compile-time type system to perform run- time type checking of dynamic components, and emphasize the use of na- tive code extension to ensure that the performance benefits of static typing are retained in a dynamic environment. We also develop the concept of fully dynamic software architectures, where the static core is minimal and all code is hot swappable. Benefits of the approach include hot swappable code and sophisticated application extension via embedded domain specific languages. We instantiate the concepts of the framework via a full implementation in the Haskell programming language: providing rich mechanisms for dy- namic linking, loading, hot swapping, and runtime type checking in Haskell for the first time. We demonstrate the feasibility of this architecture through a number of novel applications: an extensible text editor; a plugin-based network chat bot; a simulator for polymer chemistry; and xmonad, an ex- tensible window manager.
    [Show full text]
  • A Dataset of Open-Source Safety-Critical Software⋆
    A Dataset of Open-Source Safety-Critical Software? Rafaila Galanopoulou[0000−0002−5318−9017] and Diomidis Spinellis[0000−0003−4231−1897] Department of Management Science and Technology Athens University of Economics and Business Patission 76, Athens, 10434, Greece ft8160018,[email protected] https://www.aueb.gr Abstract. We describe the method used to create a dataset of open- source safety-critical software, such as that used for autonomous cars, healthcare, and autonomous aviation, through a systematic and rigorous selection process. The dataset can be used for empirical studies regard- ing the quality assessment of safety-critical software, its dependencies, and its development process, as well as comparative studies considering software from other domains. Keywords: open-source · safety-critical · dataset 1 Introduction Safety-critical systems (SCS) are those whose failure could result in loss of life, significant property damage, or damage to the environment [5]. Over the past decades ever more software is developed and released as open-source software (OSS) | with licenses that allow its free use, study, change, and distribution [1]. The increasing adoption of open-source software in safety-critical systems [10], such as those used in the medical, aerospace, and automotive industries, poses an interesting challenge. On the one hand, it shortens time to delivery and lowers development costs [6]. On the other hand, it introduces questions regarding the system's quality. For a piece of software to be part of a safety-critical application it requires quality assurance, because quality is a crucial factor of an SCS's software [3]. This assurance demands that evidence regarding OSS quality is supplied, and an analysis is needed to assess if the certification cost is worthwhile.
    [Show full text]
  • Curriculum Vitae
    CURRICULUM VITAE Diomidis Spinellis Professor of Software Engineering Department of Management Science and Technology Athens University of Economics and Business September 17, 2021 CV — Diomidis Spinellis CONTENTS Contents 1 Personal and Contact Details 5 2 Education 5 3 Research Interests 5 4 Honours and Awards 5 5 Teaching Experience 7 6 Scientific, Professional, and Technical Activities 7 6.1 Memberships of Professional and Learned Societies .................... 7 6.2 Journal and Magazine Editorial Board Member ...................... 7 6.3 Service in Conference Committees ............................. 7 6.4 Other Professional Society Service ............................. 11 6.5 Selected Open Source Software Development ....................... 12 7 Publications 12 7.1 Books: Monographs and Edited Volumes .......................... 12 7.2 Theses ............................................ 13 7.3 Peer‐reviewed Journal Articles ............................... 13 7.4 Editor‐in‐Chief and Guest Editor Introductions ....................... 17 7.5 Magazine Columns ..................................... 18 7.6 Book Chapters ........................................ 20 7.7 Conference Publications .................................. 20 7.8 Letters Published in Scholarly Journals and Newspapers .................. 29 7.9 Technical Reports and Working Papers ........................... 29 7.10 Book Reviews ........................................ 30 7.11 Articles in the Technical Press and SIG Publications .................... 32 7.12 Invited Talks
    [Show full text]
  • Design Principles and Patterns for Computer Systems That Are
    Bibliography [AB04] Tom Anderson and David Brady. Principle of least astonishment. Ore- gon Pattern Repository, November 15 2004. http://c2.com/cgi/wiki? PrincipleOfLeastAstonishment. [Acc05] Access Data. Forensic toolkit—overview, 2005. http://www.accessdata. com/Product04_Overview.htm?ProductNum=04. [Adv87] Display ad 57, February 8 1987. [Age05] US Environmental Protection Agency. Wastes: The hazardous waste mani- fest system, 2005. http://www.epa.gov/epaoswer/hazwaste/gener/ manifest/. [AHR05a] Ben Adida, Susan Hohenberger, and Ronald L. Rivest. Fighting Phishing Attacks: A Lightweight Trust Architecture for Detecting Spoofed Emails (to appear), 2005. Available at http://theory.lcs.mit.edu/⇠rivest/ publications.html. [AHR05b] Ben Adida, Susan Hohenberger, and Ronald L. Rivest. Separable Identity- Based Ring Signatures: Theoretical Foundations For Fighting Phishing Attacks (to appear), 2005. Available at http://theory.lcs.mit.edu/⇠rivest/ publications.html. [AIS77] Christopher Alexander, Sara Ishikawa, and Murray Silverstein. A Pattern Lan- guage: towns, buildings, construction. Oxford University Press, 1977. (with Max Jacobson, Ingrid Fiksdahl-King and Shlomo Angel). [AKM+93] H. Alvestrand, S. Kille, R. Miles, M. Rose, and S. Thompson. RFC 1495: Map- ping between X.400 and RFC-822 message bodies, August 1993. Obsoleted by RFC2156 [Kil98]. Obsoletes RFC987, RFC1026, RFC1138, RFC1148, RFC1327 [Kil86, Kil87, Kil89, Kil90, HK92]. Status: PROPOSED STANDARD. [Ale79] Christopher Alexander. The Timeless Way of Building. Oxford University Press, 1979. 429 430 BIBLIOGRAPHY [Ale96] Christopher Alexander. Patterns in architecture [videorecording], October 8 1996. Recorded at OOPSLA 1996, San Jose, California. [Alt00] Steven Alter. Same words, different meanings: are basic IS/IT concepts our self-imposed Tower of Babel? Commun. AIS, 3(3es):2, 2000.
    [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]
  • Incremental Type Inference for Software Engineering
    Incremental Type Inference for Software Engineering Jonathan Aldrich University of Washington [email protected] Abstract The desire to use high-level language constructs while Software engineering focused type inference can enhance preserving a static type-safe guarantee drives programmer productivity in statically typed object- programmers to ask for ever-more powerful type systems. oriented languages. Type inference is a system of However, specifying a type that may be almost as long automatically inferring the argument and return types of and complicated as the function it describes can be a function. It provides considerable programming impractical. convenience, because the programmer can realize the benefits of a statically typed language without manually 1.2. Type Inference in ML entering the type annotations. We study the problem of type inference in object-oriented languages and propose In ML, it is possible for the compiler to analyze the an incremental, programmer-aided approach. Code is body of a function and infer the type of that function. For added one method at a time and missing types are example, a function that squares each of its arguments and inferred if possible. We present a specification and returns the sum of the squares clearly takes several algorithm for inferring simple object-oriented types in arguments of type int and yields an int in return (see this kind of incremental development environment. figure 1). - fun sumsqrs (x, y) = x*x + y*y; 1. Introduction val sumsqrs = fn : int * int -> int Type inference was popularized by the ML language [Milner et al., 1990]. ML is made up of functions and Figure 1.
    [Show full text]
  • Luca Cardelli • Curriculum Vitae • 2014
    Luca Cardelli • Curriculum Vitae • 2014 Short Bio Luca Cardelli was born near Montecatini Terme, Italy, studied at the University of Pisa (until 1978-07- 12), and has a Ph.D. in computer science from the University of Edinburgh(1982-04-01). He worked at Bell Labs, Murray Hill, from 1982-04-05 to 1985-09-20, and at Digital Equipment Corporation, Systems Research Center in Palo Alto, from 1985-09-30 to 1997-10-31, before assuming a position on 1997-11-03 at Microsoft Research, in Cambridge UK, where he was head of the Programming Principles and Tools andSecurity groups until 2012, and is currently a Principal Researcher. His main interests are in type theory and operational semantics (for applications to language design, semantics, and implementation), and in concurrency theory (for applications to computer networks and to modeling biological systems). He implemented the first compiler for ML (one of the most popular typed functional language, whose recent incarnations are Caml and F#) and one of the earliest direct-manipulation user-interface editors. He was a member of the Modula-3 design committee, and has designed a few experimental languages, including Obliq: a distributed higher- order scripting language (voted most influential POPL'95 paper 10 years later), and Polyphonic C#, a distributed extension of C#. His more protracted research activity has been in establishing the semantic and type-theoretic foundations of object-oriented languages, resulting in the 1996 book "A Theory of Objects" with Martin Abadi. More recently he has focused on modeling global and mobile computation, via the Ambient Calculus andSpatial Logics, which indirectly led to a current interest in Systems Biology , Molecular Programming, and Stochastic Systems.
    [Show full text]
  • Digium Analog Gateway EULA
    END-USER LICENSE AGREEMENT FOR ANALOG DIGIUM GATEWAY AND GATEWAY SOFTWARE November 2017 IMPORTANT – PLEASE READ CAREFULLY 1.1 Definitions “Affiliate” means an entity which is (a) directly or indirectly controlling Digium; or (b) which is directly or indirectly owned or controlled by Digium. “Digium” means both Digium, Inc. and Digium's Affiliates. "Analog Digium Gateways" means Digium manufactured and branded gateways which are hardware devices (inclusive of the Analog Digium Gateway Software). “Digium Analog Gateway Software” collectively means both the Original Analog Digium Gateway Software and any Analog Digium Gateway Software Updates. “Digium Analog Gateway Software Updates” means updates or replacements provided by Digium for the Original Analog Digium Gateway Software in the form of feature enhancements, software updates, bug fixes, upgrades, otherwise modified versions of the Original Analog Digium Gateway Software, or system restore software provided by Digium, whether in read only memory or on any other media or in any other form. “Original Digium Analog Gateway Software” means the software, sounds (for example, ringtones), interfaces, content, fonts, documentation, and any data that are delivered with Analog Digium Gateways. "You", "you" or "your" means collectively the licensee, purchaser, and end user. 1.2 This End-User License Agreement (the "Agreement" or "EULA") is a legal agreement between Digium and You regarding the license terms of the Original Analog Digium Gateway Software, the Digium Analog Gateway Software Updates and the terms of use for Analog Digium Gateways. By using a Digium Analog Gateway or downloading a Analog Digium Gateway Software Update, as applicable, you are agreeing to be bound by the terms of this Agreement.
    [Show full text]