Empirical Analysis of Programming Language Adoption
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Differential Fuzzing the Webassembly
Master’s Programme in Security and Cloud Computing Differential Fuzzing the WebAssembly Master’s Thesis Gilang Mentari Hamidy MASTER’S THESIS Aalto University - EURECOM MASTER’STHESIS 2020 Differential Fuzzing the WebAssembly Fuzzing Différentiel le WebAssembly Gilang Mentari Hamidy This thesis is a public document and does not contain any confidential information. Cette thèse est un document public et ne contient aucun information confidentielle. Thesis submitted in partial fulfillment of the requirements for the degree of Master of Science in Technology. Antibes, 27 July 2020 Supervisor: Prof. Davide Balzarotti, EURECOM Co-Supervisor: Prof. Jan-Erik Ekberg, Aalto University Copyright © 2020 Gilang Mentari Hamidy Aalto University - School of Science EURECOM Master’s Programme in Security and Cloud Computing Abstract Author Gilang Mentari Hamidy Title Differential Fuzzing the WebAssembly School School of Science Degree programme Master of Science Major Security and Cloud Computing (SECCLO) Code SCI3084 Supervisor Prof. Davide Balzarotti, EURECOM Prof. Jan-Erik Ekberg, Aalto University Level Master’s thesis Date 27 July 2020 Pages 133 Language English Abstract WebAssembly, colloquially known as Wasm, is a specification for an intermediate representation that is suitable for the web environment, particularly in the client-side. It provides a machine abstraction and hardware-agnostic instruction sets, where a high-level programming language can target the compilation to the Wasm instead of specific hardware architecture. The JavaScript engine implements the Wasm specification and recompiles the Wasm instruction to the target machine instruction where the program is executed. Technically, Wasm is similar to a popular virtual machine bytecode, such as Java Virtual Machine (JVM) or Microsoft Intermediate Language (MSIL). -
Emery Berger Curriculum Vitae
College of Information and Computer Sciences Emery Berger University of Massachusetts Amherst [email protected] Amherst, MA 01003 http://www.emeryberger.com RESEARCH INTERESTS Design and implementation of programming languages, with a focus on automatically improving reliability, security, and performance. EDUCATION Ph.D., Computer Science, UNIVERSITY OF TEXAS AT AUSTIN, August 2002 Thesis: Memory Management for High-Performance Applications Advisor: Kathryn S. McKinley M.S., Computer Science, UNIVERSITY OF TEXAS AT AUSTIN, December 1991 B.S., Computer Science, UNIVERSITY OF MIAMI, May 1988 ACADEMIC EXPERIENCE Professor, UNIVERSITY OF MASSACHUSETTS AMHERST, 2014–present Visiting Researcher, UNIVERSITY OF WASHINGTON, 2018–9 Visiting Researcher, MICROSOFT RESEARCH, 2005, 2006, 2011, 2013, 2015, 2016, 2018–9 Associate Professor, UNIVERSITY OF MASSACHUSETTS AMHERST, 2008–2014 Associate Researcher, BARCELONA SUPERCOMPUTING CENTER, 2010–2013 Visiting Professor, UNIVERSITAT POLITÈCNICA DE CATALUNYA, 2008–2009 Assistant Professor, UNIVERSITY OF MASSACHUSETTS AMHERST, 2002–2008 Research Intern, MICROSOFT RESEARCH, Summer 2000 & 2001 Graduate Research Assistant, UNIVERSITY OF TEXAS AT AUSTIN, 1997–2002 PROFESSIONAL EXPERIENCE Systems Analyst, UNIVERSITY OF TEXAS AT AUSTIN, 1995–2000 Teacher, BENJAMIN FRANKLIN INTERNATIONAL SCHOOL, Barcelona, Spain, 1992–1994 Systems Analyst, APPLIED RESEARCH LABORATORIES: UT-AUSTIN, 1990–1992 Instructor, THE PRINCETON REVIEW, Austin, Texas, 1989–1990 Teaching Assistant, UNIVERSITY OF TEXAS AT AUSTIN, 1989–1990 -
Andrew W. Appel, Curriculum Vitae
Case 1:17-cv-02989-AT Document 855-3 *SEALED* Filed 09/01/20 Page 1 of 56 IN THE UNITED STATES DISTRICT COURT FOR THE NORTHERN DISTRICT OF GEORGIA ATLANTA DIVISION DONNA CURLING, ET AL., Plaintiffs, v. Civil Action No. 1:17-CV-2989-AT BRAD RAFFENSPERGER, ET AL., Defendants. DECLARATION OF ANDREW W. APPEL IN SUPPORT OF MOTION FOR PRELIMINARY INJUNCTION ANDREW W. APPEL, declares, under penalty of perjury, pursuant to 28 U.S.C. § 1746, that the following is true and correct: 1. My name is Andrew W. Appel. 2. I am the Eugene Higgins Professor of Computer Science at Princeton University, where I have been on the faculty since 1986 and served as Department Chair from 2009-2015. I have also served as Director of Undergraduate Studies, Director of Graduate Studies, and Associate Chair in that department. I have served as Editor in Chief of ACM Transactions on Programming Languages and Systems, the leading journal in my field. In 1998 I was elected a Fellow of the 1 ny-1984930 v3 Case 1:17-cv-02989-AT Document 855-3 *SEALED* Filed 09/01/20 Page 2 of 56 Association for Computing Machinery, the leading scientific and professional society in Computer Science. 3. I previously provided a Declaration in support of the Curling Plaintiffs’ Reply in Support of their Motion for Preliminary Injunction on December 13, 2019 (Dkt. No. 681-3). My 2019 Declaration is attached as Exhibit A. I have reviewed my 2019 Declaration and my previous findings and analyses remain the same; accordingly, I incorporate by reference my prior Declaration in its entirety, subject to the additional opinions I offer here. -
Beyond AOP: Toward Naturalistic Programming
Beyond AOP: Toward Naturalistic Programming Cristina Videira Lopes, Paul Dourish, David H. Lorenz and Karl Lieberherr lopes, jpd @ ics.uci.edu lorenz, lieber @ ccs.neu.edu This paper has been accepted for publication in the proceedings of the OOPSLA Onward! track, 2003, and will be subjected to copyright. This document is still not in its final version, and should not be referenced or cited until its official publication. It has been made available to you in response to a personal request. Additional distribution requests should be made directly to the authors. PLEASE DO NOT DISTRIBUTE. Beyond AOP: Toward Naturalistic Programming Cristina Videira Lopes1, Paul Dourish1, David H. Lorenz2, Karl Lieberherr2 1University of California, Irvine 2Northeastern University School of Information and Computer Science College of Computer & Information Science Irvine, CA 92697 Boston, MA 02115 {lopes,jpd}@ics.uci.edu {lorenz,lieber}@ccs.neu.edu Abstract Software understanding (for documentation, maintenance or evolution) is one of the longest-standing problems in Computer Science. The use of “high-level” programming paradigms and object-oriented languages helps, but fundamentally remains far from solving the problem. Most programming languages and systems have fallen prey to the assumption that they are supposed to capture idealized models of computation inspired by deceptively simple metaphors such as objects and mathematical functions. Aspect-oriented programming languages have made a significant break through by noticing that, in many situations, humans think and describe in crosscutting terms. In this paper we suggest that the next break through would require looking even closer to the way humans have been thinking and describing complex systems for thousand of years using natural languages. -
WHO Guidance on Management of Snakebites
GUIDELINES FOR THE MANAGEMENT OF SNAKEBITES 2nd Edition GUIDELINES FOR THE MANAGEMENT OF SNAKEBITES 2nd Edition 1. 2. 3. 4. ISBN 978-92-9022- © World Health Organization 2016 2nd Edition All rights reserved. Requests for publications, or for permission to reproduce or translate WHO publications, whether for sale or for noncommercial distribution, can be obtained from Publishing and Sales, World Health Organization, Regional Office for South-East Asia, Indraprastha Estate, Mahatma Gandhi Marg, New Delhi-110 002, India (fax: +91-11-23370197; e-mail: publications@ searo.who.int). The designations employed and the presentation of the material in this publication do not imply the expression of any opinion whatsoever on the part of the World Health Organization concerning the legal status of any country, territory, city or area or of its authorities, or concerning the delimitation of its frontiers or boundaries. Dotted lines on maps represent approximate border lines for which there may not yet be full agreement. The mention of specific companies or of certain manufacturers’ products does not imply that they are endorsed or recommended by the World Health Organization in preference to others of a similar nature that are not mentioned. Errors and omissions excepted, the names of proprietary products are distinguished by initial capital letters. All reasonable precautions have been taken by the World Health Organization to verify the information contained in this publication. However, the published material is being distributed without warranty of any kind, either expressed or implied. The responsibility for the interpretation and use of the material lies with the reader. In no event shall the World Health Organization be liable for damages arising from its use. -
Anomaly-Free Component Adaptation with Class Overriding Atanas Radenski Chapman University, [email protected]
Chapman University Chapman University Digital Commons Mathematics, Physics, and Computer Science Science and Technology Faculty Articles and Faculty Articles and Research Research 2004 Anomaly-Free Component Adaptation with Class Overriding Atanas Radenski Chapman University, [email protected] Follow this and additional works at: http://digitalcommons.chapman.edu/scs_articles Part of the Programming Languages and Compilers Commons Recommended Citation Radenski, A. Anomaly-Free Component Adaptation with Class Overriding. Journal of Systems and Software, Elsevier Science, Vol. 71, Issues 1-2, 2004, 37-48. doi: 10.1016/S0164-1212(02)00137-1 This Article is brought to you for free and open access by the Science and Technology Faculty Articles and Research at Chapman University Digital Commons. It has been accepted for inclusion in Mathematics, Physics, and Computer Science Faculty Articles and Research by an authorized administrator of Chapman University Digital Commons. For more information, please contact [email protected]. Anomaly-Free Component Adaptation with Class Overriding Comments This is a pre-copy-editing, author-produced PDF of an article accepted for publication in Journal of Systems and Software, volume 71, issues 1-2, 2004 following peer review. The definitive publisher-authenticated version is available online at DOI:10.1016/S0164-1212(02)00137-1 The rC eative Commons license below applies only to this version of the article. Creative Commons License This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 4.0 License. Copyright Elsevier This article is available at Chapman University Digital Commons: http://digitalcommons.chapman.edu/scs_articles/211 Page 1: Atanas Radenski: Anomaly-Free Component Adaptation with Class Overriding Anomaly-Free Component Adaptation with Class Overriding Atanas Radenski Chapman University Department of Computer Science, Mathematics, and Physics One University Drive Orange, CA 92866, U.S.A. -
Php Tutorial
PHP About the Tutorial The PHP Hypertext Preprocessor (PHP) is a programming language that allows web developers to create dynamic content that interacts with databases. PHP is basically used for developing web-based software applications. This tutorial will help you understand the basics of PHP and how to put it in practice. Audience This tutorial has been designed to meet the requirements of all those readers who are keen to learn the basics of PHP. Prerequisites Before proceeding with this tutorial, you should have a basic understanding of computer programming, Internet, Database, and MySQL. Copyright & Disclaimer © Copyright 2016 by Tutorials Point (I) Pvt. Ltd. All the content and graphics published in this e-book are the property of Tutorials Point (I) Pvt. Ltd. The user of this e-book is prohibited to reuse, retain, copy, distribute or republish any contents or a part of contents of this e-book in any manner without written consent of the publisher. We strive to update the contents of our website and tutorials as timely and as precisely as possible, however, the contents may contain inaccuracies or errors. Tutorials Point (I) Pvt. Ltd. provides no guarantee regarding the accuracy, timeliness or completeness of our website or its contents including this tutorial. If you discover any errors on our website or in this tutorial, please notify us at [email protected] i PHP Table of Contents About the Tutorial ........................................................................................................................................... -
Application and Interpretation
Programming Languages: Application and Interpretation Shriram Krishnamurthi Brown University Copyright c 2003, Shriram Krishnamurthi This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 United States License. If you create a derivative work, please include the version information below in your attribution. This book is available free-of-cost from the author’s Web site. This version was generated on 2007-04-26. ii Preface The book is the textbook for the programming languages course at Brown University, which is taken pri- marily by third and fourth year undergraduates and beginning graduate (both MS and PhD) students. It seems very accessible to smart second year students too, and indeed those are some of my most successful students. The book has been used at over a dozen other universities as a primary or secondary text. The book’s material is worth one undergraduate course worth of credit. This book is the fruit of a vision for teaching programming languages by integrating the “two cultures” that have evolved in its pedagogy. One culture is based on interpreters, while the other emphasizes a survey of languages. Each approach has significant advantages but also huge drawbacks. The interpreter method writes programs to learn concepts, and has its heart the fundamental belief that by teaching the computer to execute a concept we more thoroughly learn it ourselves. While this reasoning is internally consistent, it fails to recognize that understanding definitions does not imply we understand consequences of those definitions. For instance, the difference between strict and lazy evaluation, or between static and dynamic scope, is only a few lines of interpreter code, but the consequences of these choices is enormous. -
Eclipse (Software) 1 Eclipse (Software)
Eclipse (software) 1 Eclipse (software) Eclipse Screenshot of Eclipse 3.6 Developer(s) Free and open source software community Stable release 3.6.2 Helios / 25 February 2011 Preview release 3.7M6 / 10 March 2011 Development status Active Written in Java Operating system Cross-platform: Linux, Mac OS X, Solaris, Windows Platform Java SE, Standard Widget Toolkit Available in Multilingual Type Software development License Eclipse Public License Website [1] Eclipse is a multi-language software development environment comprising an integrated development environment (IDE) and an extensible plug-in system. It is written mostly in Java and can be used to develop applications in Java and, by means of various plug-ins, other programming languages including Ada, C, C++, COBOL, Perl, PHP, Python, Ruby (including Ruby on Rails framework), Scala, Clojure, and Scheme. The IDE is often called Eclipse ADT for Ada, Eclipse CDT for C/C++, Eclipse JDT for Java, and Eclipse PDT for PHP. The initial codebase originated from VisualAge.[2] In its default form it is meant for Java developers, consisting of the Java Development Tools (JDT). Users can extend its abilities by installing plug-ins written for the Eclipse software framework, such as development toolkits for other programming languages, and can write and contribute their own plug-in modules. Released under the terms of the Eclipse Public License, Eclipse is free and open source software. It was one of the first IDEs to run under GNU Classpath and it runs without issues under IcedTea. Eclipse (software) 2 Architecture Eclipse employs plug-ins in order to provide all of its functionality on top of (and including) the runtime system, in contrast to some other applications where functionality is typically hard coded. -
G S Getting Started with Opensees
GSGetting Started with OpenSees Vesna Terzic UC Berkeley September 2011 Agenda • ItIntrod ucti on t o O penS ees • Introduction to Tcl programming language • Demonstration of how to download OpenSees interpreter and install Tcl/Tk • Discuss ion of Open Sees Resources (comman d manual, getting started manual, examples manual, message board) • Example of how to create and run a small structure • Q&A with web participants What is OpenSees? • A software framework (written primarelly in C++) for simulation applications in earthquake engineering using finite element methods . • It is open-source software framework • AitihifhidA communication mechanism for exchanging and building upon research accomplishments • OpenSees is fast , stable , efficient in solving large nonlinear models with multiple runs • To make FEM in OpenSees you need to know basics of Tcl programing language OpenSees Framework How Do People Use the OpenSees Framework? • Provide their own main() function in C++ and link to framework. • Use OpenSees interpreters (OpenSees.exe, OSSPOSMP)ThOpenSeesSP.exe, OpenSeesMP.exe). These are extensions of the Tcl interpreters (tclsh, wish) which have been extended to commands for finite element analysis: 1. Modeling – create nodes, elements, loads and constraints 2. Analysis – specify the analysis procedure. 3. Output specification – specify what it is you want to monitor during the analysis. Being interpreters means that the files you create and submit to the OpenSees interpreters are not input files. You are creating and submitting PROGRAMS. What is Tcl? • Tcl is a dynamic programming language. • It is a string based command language . • Variables and variable substitution • Expression evaluation • Basic control structures (if , while , for , foreach) • Procedures • File manipulation • Sourcing other files . -
Formalizing the Expertise of the Assembly Language Programmer
MASSACHUSETTS INSTITUTE OF TECHNOLOGY ARTIFICIAL INTELLIGENCE LABORATORY Working Paper 203 September 1980 Formalizing tte Expertise of the Assembly Language Programmer Roger DuWayne Duffey II Abstract: A novel compiler strategy for generating high quality code is described. The quality of the code results from reimplementing the program in the target language using knowledge of the program's behavior. The research is a first step towards formalizing the expertise of the assembly language programmer. The ultimate goal is to formalize code generation and implementation techniques it, the same way that parsing and code generation techniques have been formalized. An experimental code generator based on the reimplementation strategy will be constructed. The code generator will provide a framework for analyzing the costs, applicability, and effectiveness of various implementation techniques. Several common code generation problems will be studied. Code written by experienced programmers and code generated by a conventional optimizing compiler will provide standards of comparison. A.I. Laboratory Working Papers are produced for internal circulation, and may contain information that is, for 4.xample, too preliminary or too detailed for formal publication. It is not intended that they should be considered papers to which reference can be made in the literature. 0 MASSACHUSETTS INSTITUTE OF TECHNOLOGY 1980 I. Introduction This research proposes a novel compiler strategy for generating high quality code. The strategy evolved .from studying the differences between the code produced by experienced programmers and the code produced by conventional optimization techniques. The strategy divides compilation into four serial stages: analyzing the source implementation, undoing source implementation decisions, reimplementing the program in the target language, and assembling the object modules. -
Programming Language Use in US Academia and Industry
Informatics in Education, 2015, Vol. 14, No. 2, 143–160 143 © 2015 Vilnius University DOI: 10.15388/infedu.2015.09 Programming Language Use in US Academia and Industry Latifa BEN ARFA RABAI1, Barry COHEN2, Ali MILI2 1 Institut Superieur de Gestion, Bardo, 2000, Tunisia 2 CCS, NJIT, Newark NJ 07102-1982 USA e-mail: [email protected], [email protected], [email protected] Received: July 2014 Abstract. In the same way that natural languages influence and shape the way we think, program- ming languages have a profound impact on the way a programmer analyzes a problem and formu- lates its solution in the form of a program. To the extent that a first programming course is likely to determine the student’s approach to program design, program analysis, and programming meth- odology, the choice of the programming language used in the first programming course is likely to be very important. In this paper, we report on a recent survey we conducted on programming language use in US academic institutions, and discuss the significance of our data by comparison with programming language use in industry. Keywords: programming language use, academic institution, academic trends, programming lan- guage evolution, programming language adoption. 1. Introduction: Programming Language Adoption The process by which organizations and individuals adopt technology trends is complex, as it involves many diverse factors; it is also paradoxical and counter-intuitive, hence difficult to model (Clements, 2006; Warren, 2006; John C, 2006; Leo and Rabkin, 2013; Geoffrey, 2002; Geoffrey, 2002a; Yi, Li and Mili, 2007; Stephen, 2006). This general observation applies to programming languages in particular, where many carefully de- signed languages that have superior technical attributes fail to be widely adopted, while languages that start with modest ambitions and limited scope go on to be widely used in industry and in academia.