Graceful Language Extensions and Interfaces

Total Page:16

File Type:pdf, Size:1020Kb

Graceful Language Extensions and Interfaces Graceful Language Extensions and Interfaces by Michael Homer A thesis submitted to the Victoria University of Wellington in fulfilment of the requirements for the degree of Doctor of Philosophy Victoria University of Wellington 2014 Abstract Grace is a programming language under development aimed at ed- ucation. Grace is object-oriented, imperative, and block-structured, and intended for use in first- and second-year object-oriented programming courses. We present a number of language features we have designed for Grace and implemented in our self-hosted compiler. We describe the design of a pattern-matching system with object-oriented structure and minimal extension to the language. We give a design for an object-based module system, which we use to build dialects, a means of extending and restricting the language available to the programmer, and of implementing domain-specific languages. We show a visual programming interface that melds visual editing (à la Scratch) with textual editing, and that uses our dialect system, and we give the results of a user experiment we performed to evaluate the usability of our interface. ii ii Acknowledgments The author wishes to acknowledge: • James Noble and David Pearce, his supervisors; • Andrew P. Black and Kim B. Bruce, the other designers of Grace; • Timothy Jones, a coauthor on a paper forming part of this thesis and contributor to Minigrace; • Amy Ruskin, Richard Yannow, and Jameson McCowan, coauthors on other papers; • Daniel Gibbs, Jan Larres, Scott Weston, Bart Jacobs, Charlie Paucard, and Alex Sandilands, other contributors to Minigrace; • Gilad Bracha, Matthias Felleisen, and the other (anonymous) review- ers of papers forming part of this thesis; • the participants in his user study; • David Streader, John Grundy, and Laurence Tratt, examiners of the thesis; • and Alexandra Donnison, Amy Chard, Juanri Barnard, Roma Kla- paukh, and Timothy Jones, for providing feedback on drafts of this thesis. iii Contents 1 Introduction1 2 Related Work5 2.1 Programming language education ............... 5 2.1.1 Educational psychology................. 6 2.1.2 Programming pedagogy................. 8 2.1.3 Educational languages.................. 11 2.2 Pattern matching ......................... 15 2.2.1 Scala ............................ 17 2.2.2 Newspeak......................... 19 2.2.3 Other object-oriented languages ............ 21 2.2.4 Functional languages................... 23 2.3 Modules .............................. 27 2.3.1 Classes and objects as modules............. 27 2.3.2 Packages.......................... 30 2.3.3 Foreign objects....................... 33 2.4 Dialects and domain-specific languages ............ 34 2.4.1 Racket ........................... 35 2.4.2 Scala ............................ 37 2.4.3 Ruby ............................ 38 2.4.4 Haskell........................... 40 2.4.5 Cedalion.......................... 41 2.4.6 Converge.......................... 41 2.4.7 Wyvern........................... 42 iv CONTENTS v 2.4.8 Protean operators..................... 43 2.4.9 External domain-specific languages .......... 43 2.4.10 Pluggable checkers..................... 46 2.5 Visual interfaces for novices................... 46 2.5.1 Scratch........................... 47 2.5.2 Blockly........................... 48 2.5.3 Codemancer........................ 49 2.5.4 Lego Mindstorms..................... 49 2.5.5 Calico............................ 50 2.5.6 Alice ............................ 51 2.5.7 Greenfoot ......................... 52 2.5.8 TouchDevelop....................... 52 2.5.9 Droplet........................... 54 2.5.10 Graphical overlays on programs ............ 54 3 The Grace Language 57 3.1 Goals of Grace........................... 57 3.2 Variables and literals ....................... 58 3.3 Objects in Grace are closer than they appear.......... 60 3.4 Methods .............................. 61 3.4.1 Operators ......................... 61 3.4.2 Field accesses ....................... 63 3.4.3 Multi-part method names................ 63 3.4.4 Visibility.......................... 64 3.5 Blocks................................ 65 3.6 Classes ............................... 67 3.7 Inheritance............................. 67 3.7.1 Chained inheritance ................... 68 3.8 Types................................ 69 3.8.1 Generic types ....................... 71 3.9 Pattern matching ......................... 72 v vi CONTENTS 3.10 Modules .............................. 72 3.11 Dialects............................... 72 4 Patterns as Objects 73 4.1 Introduction............................ 73 4.2 Conceptual model......................... 75 4.3 Graceful patterns ......................... 76 4.3.1 match()case()...case.................... 76 4.3.2 Matching blocks...................... 77 4.3.3 Literal patterns ...................... 78 4.3.4 Type patterns ....................... 78 4.3.5 Variable patterns ..................... 78 4.3.6 Wildcard pattern ..................... 79 4.3.7 Combinators........................ 79 4.3.8 Destructuring....................... 80 4.3.9 Predicates ......................... 81 4.3.10 Using arbitrary expressions to obtain patterns . 82 4.4 Patterns as objects......................... 83 4.4.1 Patterns as an object framework............. 83 4.4.2 Irrefutable patterns.................... 84 4.4.3 Combinators........................ 87 4.4.4 Types............................ 89 4.4.5 Autozygotic patterns................... 90 4.4.6 Destructuring patterns.................. 91 4.4.7 Destructuring types.................... 94 4.4.8 Lambda patterns and match...case ........... 96 4.5 Types and patterns ........................ 97 4.5.1 Pattern and MatchResult................. 98 4.5.2 Destructuring....................... 99 4.5.3 Combinators........................100 4.5.4 Exhaustive matching...................101 vi CONTENTS vii 4.6 Generalising patterns.......................102 4.7 Discussion and comparison with related work . 103 4.7.1 Scala ............................105 4.7.2 Newspeak.........................108 4.7.3 Racket ...........................112 4.7.4 Gradual and optional typing . 113 4.7.5 Matching as monads...................114 4.7.6 Future work........................114 4.7.7 Alternative approaches..................115 4.7.8 Application ........................121 4.8 Conclusion.............................122 5 Modules as Gradually-Typed Objects 123 5.1 Introduction............................123 5.1.1 What is a module? ....................124 5.2 Modules as objects ........................125 5.2.1 Importing modules....................126 5.2.2 Gradual typing of modules . 127 5.2.3 Recursive module imports . 130 5.3 Design rationale..........................131 5.4 Package management.......................132 5.4.1 Identifying packages...................132 5.4.2 Finding packages.....................134 5.4.3 Installing packages....................134 5.4.4 Publishing packages ...................134 5.5 Extensions and future work ...................135 5.5.1 Foreign objects.......................136 5.5.2 External data........................138 5.5.3 Resource imports.....................138 5.6 Comparison with related work . 141 5.6.1 Python...........................142 vii viii CONTENTS 5.6.2 Newspeak.........................144 5.6.3 Go..............................145 5.7 Conclusion.............................147 6 Dialects 149 6.1 What is a dialect? .........................151 6.1.1 Structure..........................151 6.1.2 Pluggable checkers....................153 6.1.3 Run-time protocol.....................154 6.2 Case studies of dialects......................155 6.2.1 Logo-like turtle graphics . 155 6.2.2 Design by contract ....................158 6.2.3 Dialect for writing dialects . 160 6.2.4 Requiring type annotations . 163 6.2.5 Literal blocks .......................166 6.2.6 Ownership types .....................167 6.2.7 Type checking.......................173 6.2.8 Relations..........................175 6.2.9 Finite state machines...................176 6.2.10 GrAPL ...........................177 6.2.11 GPGPU parallelism....................178 6.3 Discussion .............................181 6.3.1 Inheritance.........................181 6.3.2 Delegation.........................183 6.3.3 Macros...........................184 6.3.4 Local dialects .......................186 6.3.5 Default methods .....................187 6.4 Implementation..........................188 6.4.1 Lexical scoping ......................188 6.4.2 Executing checkers statically . 189 6.4.3 Side effects.........................191 viii CONTENTS ix 6.4.4 Security concerns.....................192 6.5 Comparison with related work . 192 6.5.1 Racket ...........................192 6.5.2 Scala ............................195 6.5.3 Ruby ............................195 6.5.4 Wyvern...........................196 6.5.5 Cedalion..........................196 6.5.6 Haskell...........................197 6.5.7 Xtext ............................198 6.6 Conclusion.............................201 7 Tiled Grace 203 7.1 Tiled Grace ............................204 7.1.1 Implementation......................207 7.2 Motivation.............................210 7.3 Functionality............................212 7.3.1 Handling errors......................213 7.3.2 Overlays..........................215 7.3.3 Dialects...........................216 7.3.4 Type checking.......................219 7.3.5 Hints............................221 7.4 Experiment.............................222
Recommended publications
  • Declaration of James Johnson and Exhibits
    Case 1:07-cv-00312-GBD-MHD Document 262 Filed 06/23/15 Page 1 of 51 UNITED STATES DISTRICT COURT SOUTHERN DISTRICT OF NEW YORK ––––––––––––––––––––––––––––––––––––––––––– x : Civil Action No.: 07-CV-00312-GBD : IN RE CELESTICA INC. SEC. LITIG. : (ECF CASE) : : Hon. George B. Daniels : ––––––––––––––––––––––––––––––––––––––––––– x DECLARATION OF JAMES W. JOHNSON IN SUPPORT OF CLASS REPRESENTATIVES’ MOTION FOR FINAL APPROVAL OF PROPOSED CLASS ACTION SETTLEMENT AND PLAN OF ALLOCATION AND CLASS COUNSEL’S MOTION FOR AWARD OF ATTORNEYS’ FEES AND PAYMENT OF LITIGATION EXPENSES Case 1:07-cv-00312-GBD-MHD Document 262 Filed 06/23/15 Page 2 of 51 TABLE OF CONTENTS I. PRELIMINARY STATEMENT: THE SIGNIFICANT RECOVERY ACHIEVED .........................................................................................................................2 II. FACTUAL SUMMARY OF THE CLAIMS ......................................................................4 III. RELEVANT PROCEDURAL HISTORY ..........................................................................6 A. Initial Complaints and Appointment of Lead Plaintiffs ...........................................6 B. The Complaint and Motions to Dismiss ..................................................................7 C. Appeal to the Second Circuit Court of Appeals .......................................................8 D. Extensive Fact Discovery ......................................................................................10 E. Discovery Propounded on Lead Plaintiffs .............................................................14
    [Show full text]
  • Graceful Language Extensions and Interfaces
    Graceful Language Extensions and Interfaces by Michael Homer A thesis submitted to the Victoria University of Wellington in fulfilment of the requirements for the degree of Doctor of Philosophy Victoria University of Wellington 2014 Abstract Grace is a programming language under development aimed at ed- ucation. Grace is object-oriented, imperative, and block-structured, and intended for use in first- and second-year object-oriented programming courses. We present a number of language features we have designed for Grace and implemented in our self-hosted compiler. We describe the design of a pattern-matching system with object-oriented structure and minimal extension to the language. We give a design for an object-based module system, which we use to build dialects, a means of extending and restricting the language available to the programmer, and of implementing domain-specific languages. We show a visual programming interface that melds visual editing (à la Scratch) with textual editing, and that uses our dialect system, and we give the results of a user experiment we performed to evaluate the usability of our interface. ii ii Acknowledgments The author wishes to acknowledge: • James Noble and David Pearce, his supervisors; • Andrew P. Black and Kim B. Bruce, the other designers of Grace; • Timothy Jones, a coauthor on a paper forming part of this thesis and contributor to Minigrace; • Amy Ruskin, Richard Yannow, and Jameson McCowan, coauthors on other papers; • Daniel Gibbs, Jan Larres, Scott Weston, Bart Jacobs, Charlie Paucard, and Alex Sandilands, other contributors to Minigrace; • Gilad Bracha, Matthias Felleisen, and the other (anonymous) review- ers of papers forming part of this thesis; • the participants in his user study; • and Roma Klapaukh, Juanri Barnard, Alexandra Donnison, Amy Chard, and Timothy Jones for providing feedback on drafts of this thesis.
    [Show full text]
  • Infighting Unravels Alliance Seeking Standard to Protect Internet Purchases Sandberg, Jared
    Infighting unravels alliance seeking standard to protect Internet purchases Sandberg, Jared . Wall Street Journal , Eastern edition; New York, N.Y. [New York, N.Y]28 Sep 1995: B10. ProQuest document link ABSTRACT (ABSTRACT) The consortium brought together such top players as credit-card rivals Visa International and MasterCard International Inc., software titan Microsoft Corp. and Internet upstart Netscape Communications Corp. But this week, the alliance split because of tensions between Visa and MasterCard and their respective technology partners -- Microsoft and Netscape. Microsoft and Visa this week published a detailed description of a credit-card standard -- but with MasterCard conspicuously absent. MasterCard and Netscape now argue, in essence, that the Microsoft-Visa team is withholding the technical design to keep its approach "proprietary" and charge software developers and financial institutions to use it. "We're disappointed that Microsoft and Visa have opted unilaterally to take this approach," a MasterCard spokeswoman said. She said the Microsoft-Visa details were incomplete, thwarting banks and software firms developing new applications. MasterCard said it refused to take part in the Visa announcement because it is "contrary" to the plans for a "single open standard." ABSTRACT A consortium to develop a technical standard for protecting credit-card purchases on the Internet has unraveled because of tensions between Visa International and MasterCard International Inc and their respective technology partners, Microsoft Corp and Netscape Communications Corp. After Visa and Microsoft published a detailed description of a credit-card standard, Mastercard and Netscape are arguing that the Microsoft-Visa team is withholding the technical design. FULL TEXT NEW YORK -- A major alliance to develop a technical standard for protecting credit-card purchases on the Internet has unraveled amid bickering between a handful of heavyweights.
    [Show full text]
  • Journal of Visual Languages and Sentient Systems
    Journal of Visual Languages and Sentient Systems Editor-in-Chief Shi-Kuo Chang, University of Pittsburgh, USA Co-Editors-in-Chief Gennaro Costagliola, University of Salerno, Italy Paolo Nesi, University of Florence, Italy Gem Stapleton, University of Brighton, UK Franklyn Turbak, Wellesley College, USA An Open Access Journal published by KSI Research Inc. 156 Park Square Lane, Pittsburgh, PA 15238 USA i VLSS Editorial Board Tim Arndt, Cleveland State University, USA Alan F. Blackwell, University of Cambridge, United Kingdom Paolo Bottoni, University of Rome, Italy Francesco Colace, Univeristy of Salerno, Italy Maria Francesca Costabile, University of Bari, Italy Philip T. Cox, Dalhousie University, Canada Martin Erwig, Oregon State University, USA Vittorio Fuccella, University of Salerno, Italy Angela Guercio, Kent State University, USA Erland Jungert, Swedish Defence Research Establishment, Sweden Kamen Kanev, Shizuoka University, Japan Robert Laurini, University of Lyon, France Jennifer Leopold, Missouri University of Science & Technology, USA Mark Minas, University of Munich, Germany Brad A. Myers, Carnegie Mellon University, USA Joseph J. Pfeiffer, Jr., New Mexico State University, USA Genny Tortora, University of Salerno, Italy Kang Zhang, University of Texas at Dallas, USA Copyright ⓒ 2017 by KSI Research Inc. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior
    [Show full text]
  • United States Securities and Exchange Commission Washington, D.C
    UNITED STATES SECURITIES AND EXCHANGE COMMISSION WASHINGTON, D.C. 20549 FORM 10-Q [X] QUARTERLY REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934 For the quarterly period ended June 30, 1997 OR [ ] TRANSITION REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934 For the transition period from _____ to _____ Commission File Number 0-28018 YAHOO! INC. (Exact name of registrant as specified in its charter) CALIFORNIA 77-0398689 ---------------------------------- ------------------------------------- (State or other jurisdiction of (I.R.S. Employer Identification No.) incorporation or organization) 3400 CENTRAL EXPRESSWAY, SUITE 201 SANTA CLARA, CALIFORNIA 95051 ---------------------------------------- (Address of principal executive offices) Registrant's telephone number, including area code: (408) 731-3300 ------------------ Indicate by check mark whether the Registrant (1) has filed all reports required by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that the Registrant was required to file such reports) and (2) has been subject to such filing requirements for the past 90 days: Yes[X] No[ ] Indicate the number of shares outstanding of each of the issuer's classes of common stock, as of the latest practicable date. CLASS OUTSTANDING AT JULY 31, 1997 ------------------------------ ---------------------------- Common Stock, $0.001 par value 28,597,274 YAHOO! INC. TABLE OF CONTENTS PART I. FINANCIAL INFORMATION PAGE NO. Item 1. Consolidated Financial Statements (unaudited) Condensed Consolidated Balance Sheets at June 30, 1997 and December 31, 1996 3 Condensed Consolidated Statements of Operations for the three months ended June 30, 1997 and 1996; and the six months ended June 30, 1997 and 1996 4 Condensed Consolidated Statements of Cash Flows for the six months ended June 30, 1997 and 1996 5 Notes to Condensed Consolidated Financial Statements 6 Item 2.
    [Show full text]
  • Palm, Inc. (Exact Name of Registrant As Specified in Its Charter)
    UNITED STATES SECURITIES AND EXCHANGE COMMISSION Washington, D.C. 20549 ________________ FORM 10-K 5 ANNUAL REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934 For the Fiscal Year Ended June 3, 2005 or TRANSITION REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934 For the transition period from to Commission File No. 000-29597 Palm, Inc. (Exact name of registrant as specified in its charter) Delaware 94-3150688 (State or other jurisdiction of (I.R.S. Employer incorporation or organization) Identification No.) 950 West Maude Sunnyvale, California 94085 (Address of principal executive offices and zip code) Registrant’s telephone number, including area code: (408) 617-7000 Securities registered pursuant to Section 12(b) of the Act: NONE Securities registered pursuant to Section 12(g) of the Act: Common Stock, $.001 par value Preferred Share Purchase Rights, $.001 par value Indicate by check mark whether the registrant (1) has filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such short er period that the registrant was required to file such reports), and (2) has been subject to such filing requirements for the past 90 days. Yes 5 No Indicate by check mark if disclosure of delinquent filers pursuant to Item 405 of Regulation S-K (§229.405 of this chapter) is not contained herein, and will not be contained, to the best of registrant’s knowledge, in definitive proxy or information statements incorporat ed by reference in Part III of this Form 10-K or any amendment to this Form 10-K.
    [Show full text]
  • James Noble Curriculum Vitae
    James Noble Curriculum Vitae Full Name Robert James Noble. Qualifications B.Sc.(Hons) Ph.D. VUW Nationality New Zealand Citizen, British Citizen. Date and place of birth 17 August 1967, London, England. Address for correspondence James Noble, Computer Science, Victoria University of Wellington, P O Box 600 Wellington, New Zealand. Telephone: +64 4 463 6736 Facsimile: +64 4 463 5045 Internet Mail: [email protected] WWW: http://www.mcs.vuw.ac.nz/~kjx Present Position I am currently engaged as Professor of Computer Science (Software Engineering) within the School of Engineering and Computer Science at Victoria University of Wellington, New Zealand. Professional Memberships Fellow, Information Technology Professionals, New Zealand Fellow of the British Computer Society Senior Member of the Association for Computing Machinery Member of the Institute of Electrical and Electronics Engineers Member of the Association Internationale pour les Technologies Objets Certified Information Technology Professional, New Zealand Research Areas I conduct research in the following areas of Software Engineering and Computer Science: Software Design especially Object-Oriented and Aspect-Oriented approaches to design. Programming Languages especially Ownership Types and Pluggable Type systems. Design Patterns including Small Memory Systems; User Interaction; Agile Development. Human Computer Interaction including Interface Design, Interaction Design, Usability. Software Visualisation and Visual Languages including language design and analysis . Development Methodologies
    [Show full text]
  • Lipics-ECOOP-2019-0.Pdf (0.5
    33rd European Conference on Object-Oriented Programming ECOOP 2019, July 15–19, 2019, London, United Kingdom Edited by Alastair F. Donaldson L I P I c s – Vo l . 134 – ECOOP 2019 w w w . d a g s t u h l . d e / l i p i c s Editors Alastair F. Donaldson Department of Computing, Imperial College London, UK [email protected] ACM Classification 2012 Software and its engineering ISBN 978-3-95977-111-5 Published online and open access by Schloss Dagstuhl – Leibniz-Zentrum für Informatik GmbH, Dagstuhl Publishing, Saarbrücken/Wadern, Germany. Online available at https://www.dagstuhl.de/dagpub/978-3-95977-111-5. Publication date July, 2019 Bibliographic information published by the Deutsche Nationalbibliothek The Deutsche Nationalbibliothek lists this publication in the Deutsche Nationalbibliografie; detailed bibliographic data are available in the Internet at https://portal.dnb.de. License This work is licensed under a Creative Commons Attribution 3.0 Unported license (CC-BY 3.0): https://creativecommons.org/licenses/by/3.0/legalcode. In brief, this license authorizes each and everybody to share (to copy, distribute and transmit) the work under the following conditions, without impairing or restricting the authors’ moral rights: Attribution: The work must be attributed to its authors. The copyright is retained by the corresponding authors. Digital Object Identifier: 10.4230/LIPIcs.ECOOP.2019.0 ISBN 978-3-95977-111-5 ISSN 1868-8969 https://www.dagstuhl.de/lipics 0:iii LIPIcs – Leibniz International Proceedings in Informatics LIPIcs is a series of high-quality conference proceedings across all fields in informatics.
    [Show full text]
  • Luca-Cardelli-Fest-MSR-TR-2014
    CARDELLIFEST Martín Abadi Philippa Gardner Andrew D. Gordon Radu Mardare (Eds.) Essays for the Luca Cardelli Fest September 8-9, 2014 Microsoft Research Cambridge Technical Report MSR-TR-2014-104 Preface Luca Cardelli has made exceptional contributions to the field of programming languages and beyond. Throughout his career, he has re-invented himself every decade or so, while continuing to make true innovations. His achievements span many areas: software; language design, including experimental languages; pro- gramming language foundations; and the interaction of programming languages and biology. These achievements form the basis of his lasting scientific leadership and his wide impact. Luca was born in Montecatini Terme, Italy, studied at the University of Pisa until 1978, and received a Ph.D. in computer science from the University of Edinburgh, supervised by Gordon Plotkin. He held research positions at Bell Labs, Murray Hill (1982{1985), and at Digital's Systems Research Center, Palo Alto (1985{1997). He joined Microsoft Research in Cambridge in 1997, where for many years he managed the Programming Principles and Tools group. Since 2013, he holds a Royal Society Research Professorship at the University of Oxford, alongside his position as Principal Researcher at Microsoft Research. Luca Cardelli is a Fellow of the Royal Society, an ACM Fellow, an Elected Member of the Academia Europaea, an Elected Member of AITO (International Association for Object Technologies), and a member of EATCS (European As- sociation for Theoretical Computer Science) and ISCB (International Society for Computational Biology). A scientific event in honour of Luca Cardelli has been organized in Cambridge (UK) on September 8{9, 2014.
    [Show full text]
  • U.S. V. Microsoft-An Economic Analysis
    The Antitrust Bulletin/Spring 2001 U.S. v. Microsoft-an economic analysis BY FRANKLIN M. FISHER* and DANIEL L. RUBINFELD** I. Background In May 1998, the U.S. Department of Justice filed suit against the Microsoft Corporation claiming a number of violations of sections 1 and 2 of the Sherman Act.' The case was tried from October 19, 1998 through June 24, 1999. Judge Thomas Penfield Jackson ruled as to the findings of fact on November 5, 1999 and conclu- sions of law on April 3, 2000. At the time this article was drafted, the remedy phase of the trial was about to begin. If the case does not settle, the appeals process will follow. * Jane Berkowitz Carlton & Dennis William Carlton Professor of Economics, M.I.T. ** Robert L. Bridges Professor of Law and Professor of Economics, University of California, Berkeley. AUTHORS' NOTE: This is an updated version of a paper with the same title that was published as an essay of the same title in a monograph Did Microsoft Harm Consumers: Two Opposing Views (AEI/Brookings Joint Center for Regulatory Studies, 2000). We are grateful to Jeffrey Blattner, David Boies, Timothy Bresnahan, Wayne Dunham, Joen Greenwood, Karma Giullianelli, A. Douglas Melamed, Diane Owen, Mark Popovsky, Mary Beth Savio and others for assistance and comments. None of the views expressed herein necessarily reflect their opinions or those of the Department of Justice. I U.S. v. Microsoft, Civil Action No. 98-1232 (May 1998). © 2001 by Federal Legal Publications. Inc. HeinOnline -- 46 Antitrust Bull. 1 2001 2 : The antitrust bulletin This article presents perspective and commentary on the eco- nomic issues from the viewpoint of two economists who were active in the case.2 Fisher was one of the U.S.
    [Show full text]
  • Tech Transfer and Research
    © Service des relations industrielles© (SRI) EPFL Equity in start-ups Historical data Hervé Lebret September 2012 List of company equity tables © Service des relations industrielles© (SRI) EPFL Company Slide Slide Slide Company Slide Company Slide Company Slide 3Com 8 Centillium 28 Groupon * 48 Microsoft 68 Skype ** 88 A123 9 Checkpoint 29 Homeaway 49 MIPS 69 Snaketech ** 89 AcelRX 10 Chiron 30 Ilog 50 mysql ** 70 Soitec 90 Actelion 11 Cisco 31 Infovista 51 Netsuite 71 Solazyme 91 Active Network 12 Compaq 32 Intel 52 Numerical Tech 72 Sun Microsystems 92 Adobe 13 CSR 33 Intuitive 53 ONI 73 Swissquote 93 Alibaba 14 Cypress Semicon. 34 Invensense * 54 OpenTable 74 Synopsys 94 Amazon 15 DoubleClick 35 Ironwood 55 Oracle 75 Tandem 95 AMD 16 eBay 36 Isilon 56 Pandora 76 Tesla 96 Amgen 17 Electronic Arts 37 iVillage 57 Paypal 77 Tessera 97 Apache Design * 18 Envivio 38 Juniper Networks 58 Rambus 78 Tivo 98 Apple Computer 19 Equinix 39 Kayak 58 Red Hat 79 Transmode 99 Arm Holding 20 Excite 40 Linkedin 60 Rediff 80 Twitter * 100 Atheros 21 Facebook * 41 Logitech 61 Responsys 81 Virata 101 Baidu 22 Foundry Networks 42 Lotus 62 Riverbed 82 VistaPrint 102 Blue Arc 23 Fusion-io 43 Lycos 63 RPX 83 Wavecom 103 Broadcom 24 Gemplus 44 Magma 64 Salesforce.com 84 Yahoo 104 Broadvision 25 Genentech 45 Marimba 65 Selectica 85 Zillow 105 Business Objects 26 Genzyme 46 Maxlinear 66 Sequans 86 Zipcar 106 Carbonite * 27 Google 47 Mentor Graphics 67 Siebel Software 87 Zynga * 107 List of new company equity tables Company Slide Slide Slide Company Slide Company Slide© Service Company des relations industriellesSlide© (SRI) EPFL MobiTV 109 Enphase Energy 129 Renren 149 Mascoma 169 Fluidigm 110 Instagram 130 Parrot 150 Jive Software 111 Palo Alto Networks 131 Accuray 151 Infoblox 112 Splunk 132 Genomatica 152 Millennial Media 113 Rib-X Pharma 133 Peregrine 153 AVG technologies 114 Merrimack 134 Hansen Medical 154 Audience 115 Cempra 135 Adnexus 155 Guidewire 116 Versatem 136 Infinera 156 ChemoCentryx 117 Horizon Pharma 137 Starent Networks 157 Intelepeer 118 Hyperion 138 Regulus Therap.
    [Show full text]