R FUTURE DIRECTIONS. Speaker. FastR (speedup 8.5x GNURast) What have we done so far. BRIXEN June Jan Vitek. Professor of Computer Science
|
|
- Hugo Page
- 5 years ago
- Views:
Transcription
1 R FUTURE DIRECTIONS Jan Vitek Speaker Professor of Computer Science Purdue University, USA PHD: University of Geneva, CH BRIXEN June 2014 Speciality: Programming languages, Compilers What have we done so far FastR (speedup 8.5x GNURast) TracR a trace analysis / profiler for GNU-R CoreR a formal semantics for a fragment of R TestR a testing framework for the R language FastR a new R virtual machine written in Java Morandat, Hill, Osvald, Vitek. Evaluating the Design of the R Language. ECOOP 12 Relative Execution Time (GNUR AST = 1) FastR GNUR BC Kalibera, Maj, Morandat, Vitek. A Fast abstract syntax tree interpreter for R. VEE bt1 bt2 bt3 pr1 pr2 fa1 fa2 fa3 fa4 fa5 fr1 fr2 kn1 kn2 kn3 kn4 ma1 ma2 ma3 ma4 nb1 nb2 nb3 nb4 nb5 pd1 rd1 rc1 rc2 rc3 sn1 sn2 sn3 sn4 sn5 sn6 sn7 Figure 13. Shootout Relative Execution Times
2 Evaluating the Design of R R S-1 S-2 S-3 S-4 S-5 S-6 S-7 S-8 S-9 S- S-11 S Python 15 Name Binary trees Fankuch redux Fasta Fasta redux K-nucleotide Mandelbrot N-body Pidigits Regex-dna Rev. complement Spectral norm Spectral norm alt Input 16 50K 4K K 2.5K 5M K Avg S 12 S 11 S 9 S S 8 S 7 S 6 S 5 S 4 S 3 S 2 S PERFORMANCE Fig. 6. Slowdown of Python and R, normalized to C for the Shootout benchmarks. Evaluating the Design of R Python R To understand where the Name Input time is spent, we turn to more S-1 Fig. Binary 16 representative R programs. 7 trees shows the breakdowns-2 of execufankuch redux tion times in the Bioconductor S-3 Fasta mm dataset obtained withs-4 ProfileR. Fasta redux alloc.cons Each bar represents S-5 a BioconK-nucleotide 50K alloc.list alloc.vector ductor vignette. The S-6 key obsermandelbrot 4K duplicate vation is that memory managelookup S-7 N-body K match ment accounts for an S-8 average of Pidigits external 29% of execution time. Memory builtin S-9 Regex-dna 2.5K arith management time was special S-further Rev. complement 5M broken down into time spent in S-11 Spectral norm 640 garbage collection (18.7%), als-12 Spectral norm alt 11K locating cons-pairs (3.6%), vectors (2.6%), and duplications Performance relative to C (4%) for call-by-value semanslowdown of Python and R, normalized to C for the Shootout benchmarks. tics. The time spent in builtshootout Time breakdown in functions represents the true Fig. 7. Time breakdown of Bioconductor vignettes. computational work performed by R, this is on average 38% of execution time. There are some interesting outliers Avg S 12 S 11 S S 9 S 8 S 7 S 6 S 5 S 4 S 3 S 2 S Fig
3 SPECIFICATION C R User data R internal S 1 S 2 S 3 S 4 S 5 S 6 S 7 S 8 Heap Memory Shootout S 9 S S 11 S 12 45% of assignments are definitions cpy(h, ) =H 0, 0 = 0 H( ) =F [A F 0 = F [x/ 0 ] H 00 = H 0 [ /F 0 ] 0 0 x < ; H ; H 00 only 2 out of 217 million assignments are definitions in a parent frame 99.9% of side effects are local
4 c <- 42 c <- 42 d <- c c(1,2,3) d(1,2,3) [1] Error: could not find function "d" less than 0.05% context sensitive function name lookups only symbols that rely on it are c and file OBJECTS Bioc Misc CRAN Base Total # classes # methods S3 Avg. redef Method calls 13M 58M M Super calls 697K 1.2M - - 2M # classes # singleton # leaves Hier. depth S4 Direct supers # methods Avg. redef Redef. depth # new 668K K Method calls 15M M Super calls 94K K
5 x <- y x : like D[20,20] <- y TYPES x : D[20,20] <- y x : D[ dim(y) ] <- y 1:00000 DATA LAYOUT x[[ ]]
6 x <<- 1 x <<- 3 CONCURRENCY Effort Implem. Project language start/end KLOC Man/ month Percent Complete Missing parts Challenges Time sinks GNUR C (Fortran) +? 99.9??? RIPOSTE C Lang Libs Std libs, pkgs, search paths, locked envs, FFIs Too large internal surface, src/main too big, messy headers, Fortran RENJIN Java 20 -? 8 78 primitives S4 exports, R compatibility, native code JIT, data layout, C->R internals IMPLEMENTATIONS TERR C ORBIT C (Fortran) R compatibility, Graphics Some bugs Clean-room imp Native code Complexity of runtime S3,S4, data.frame, model.frame, native interface Manual specializations FastR.168 Java / graphics, internals, R compatibility, native interface, Internals, manual specialization, Truffle, benchmarks FastR Java Lang 49 Libs R compatibility, Graphics, promises, frames/envs R compatibility, vector ops, frames/envs.
7 the road ahead
A Fast Abstract Syntax Tree Interpreter for R
A Fast Abstract Syntax Tree Interpreter for R Java cup Petr Maj Jan Vitek Tomas Kalibera Floréal Morandat Thesis Runtime information can be leveraged to create simple, fast, easy to maintain interpreters
More informationRunning R Faster. Tomas Kalibera
Running R Faster Tomas Kalibera My background: computer scientist, R user. My FastR experience: Implementing a new R VM in Java. New algorithms, optimizations help Frame representation, variable lookup
More informationOptimizing R VM: Interpreter-level Specialization and Vectorization
DSC2014 Optimizing R VM: Interpreter-level Specialization and Vectorization Haichuan Wang 1, Peng Wu 2, David Padua 1 1 University of Illinois at Urbana-Champaign 2 Huawei America Lab Our Taxonomy - Different
More informationIntroduction to Renjin The R interpreter in the JVM. Maarten-Jan Kallen
Introduction to Renjin The R interpreter in the JVM Maarten-Jan Kallen mj@bedatadriven.com 1 Presentation outline What is Renjin? Renjin's design goals Other R engines Example Java application Example
More informationChapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.
Chapter 1 GETTING STARTED SYS-ED/ Computer Education Techniques, Inc. Objectives You will learn: Java platform. Applets and applications. Java programming language: facilities and foundation. Memory management
More informationSome Improvements of the Byte-code Compiler Problems in Existing R/C Code
Some Improvements of the Byte-code Compiler Problems in Existing R/C Code Tomas Kalibera With Luke Tierney, Jan Vitek Fighting PROTECT bugs PROTECT(sb = coercevector(cadr(args), CPLXSXP)); nb = XLENGTH(sb);
More informationJava vs JavaScript. For Enterprise Web Applications. Chris Bailey IBM Runtime Technologies IBM Corporation
Java vs JavaScript For Enterprise Web Applications Chris Bailey IBM Runtime Technologies 1 What Languages do you use? 120 Percentage of Audience 100 80 60 40 20 0 Java 2 JavaScript Both What Runtimes do
More informationJust-In-Time GPU Compilation for Interpreted Languages with Partial Evaluation
Just-In-Time GPU Compilation for Interpreted Languages with Partial Evaluation Juan Fumero Michel Steuwer Lukas Stadler Christophe Dubach The University of Edinburgh, Oracle Labs, AT juan.fumero@ed.ac.uk
More informationAn Implementation of Python for Racket. Pedro Palma Ramos António Menezes Leitão
An Implementation of Python for Racket Pedro Palma Ramos António Menezes Leitão Contents Motivation Goals Related Work Solution Performance Benchmarks Future Work 2 Racket + DrRacket 3 Racket + DrRacket
More informationIntroduction. CS 2210 Compiler Design Wonsun Ahn
Introduction CS 2210 Compiler Design Wonsun Ahn What is a Compiler? Compiler: A program that translates source code written in one language to a target code written in another language Source code: Input
More informationR as a in a Polyglot World
R as a Ci@zen in a Polyglot World The promise of the Truffle framework Lukas Stadler, VM Research Group, Oracle Labs user! 2015 2 Safe Harbor Statement The following is intended to provide some insight
More informationPractical Automatic Loop Specialization
Practical Automatic Loop Specialization Taewook Oh Hanjun Kim Nick P. Johnson Jae W. Lee David I. August Princeton University, Princeton, NJ Sungkyunkwan University, Suwon, Korea {twoh, hanjunk, npjohnso,
More informationA Status Update of BEAMJIT, the Just-in-Time Compiling Abstract Machine. Frej Drejhammar and Lars Rasmusson
A Status Update of BEAMJIT, the Just-in-Time Compiling Abstract Machine Frej Drejhammar and Lars Rasmusson 140609 Who am I? Senior researcher at the Swedish Institute of Computer Science
More informationJava with Node.js Powering the Next Generation of Web Applications
Java with Node.js Powering the Next Generation of Web Applications Oracle Code One, Oct 23rd 2018 Chris Bailey Chief Architect, Cloud Native Runtimes @IBM baileyc@uk.ibm.com @Chris Bailey CloudNativeJS.io
More informationHierarchical Real-time Garbage Collection
Hierarchical Real-time Garbage Collection Filip Pizlo Antony L. Hosking Jan Vitek Presenter: Petur Olsen October 4, 2007 The general idea Introduction The Article The Authors 2/28 Pizlo, Hosking, Vitek
More informationIntroduction to Renjin The R interpreter in the JVM
Introduction to Renjin The R interpreter in the JVM Maarten-Jan Kallen mj@bedatadriven.com September 12, 2014 Presented at KölnR 1 Presentation outline What is Renjin? Renjin's design goals Other R engines
More informationModern Stored Procedures Using GraalVM
Modern Stored Procedures Using raalvm Oracle Labs Matthias Brantner Safe Harbor Statement The following is intended to outline our general product direction. t is intended
More informationApache Spark 2.0. Matei
Apache Spark 2.0 Matei Zaharia @matei_zaharia What is Apache Spark? Open source data processing engine for clusters Generalizes MapReduce model Rich set of APIs and libraries In Scala, Java, Python and
More informationThe Environment Model. Nate Foster Spring 2018
The Environment Model Nate Foster Spring 2018 Review Previously in 3110: Interpreters: ASTs, evaluation, parsing Formal syntax: BNF Formal semantics: dynamic: small-step substitution model static semantics
More informationComputers in Engineering COMP 208. Computer Structure. Computer Architecture. Computer Structure Michael A. Hawker
Computers in Engineering COMP 208 Computer Structure Michael A. Hawker Computer Structure We will briefly look at the structure of a modern computer That will help us understand some of the concepts that
More informationHistory of Compilers The term
History of Compilers The term compiler was coined in the early 1950s by Grace Murray Hopper. Translation was viewed as the compilation of a sequence of machine-language subprograms selected from a library.
More informationThe HipHop Virtual Machine (hhvm)
The HipHop Virtual Machine (hhvm) PHP Execution at the Speed of JIT Jason Evans Software Engineer July 18, 2012 Agenda 1 Background 2 Virtual machine highlights 3 Just in time tracelet translation 4 Benchmarks
More informationRESEARCH ARTICLE. Runtime and Memory Consumption Analyses for Machine Learning R Programs [SPECIAL ISSUE: StatConf13] [PREPRINT]
1 Journal of Statistical Computation and Simulation Vol. 00, No. 00, Month 201X, 1 16 RESEARCH ARTICLE Runtime and Memory Consumption Analyses for Machine Learning R Programs [SPECIAL ISSUE: StatConf13]
More informationJust-in-time Length Specialization of Dynamic Vector Code
Just-in-time Length Specialization of Dynamic Vector Code Justin Talbot Tableau Software jtalbot@tableausoftware.com Zachary DeVito Stanford University zdevito@stanford.edu Pat Hanrahan Stanford University
More informationThe Environment Model
The Environment Model Prof. Clarkson Fall 2017 Today s music: Selections from Doctor Who soundtracks by Murray Gold Review Previously in 3110: Interpreters: ASTs, evaluation, parsing Formal syntax: BNF
More informationEDAN65: Compilers, Lecture 13 Run;me systems for object- oriented languages. Görel Hedin Revised:
EDAN65: Compilers, Lecture 13 Run;me systems for object- oriented languages Görel Hedin Revised: 2014-10- 13 This lecture Regular expressions Context- free grammar ATribute grammar Lexical analyzer (scanner)
More informationTracing vs. Partial Evaluation
Tracing vs. Partial Evaluation Comparing Meta-Compilation Approaches for Self-Optimizing nterpreters Abstract Tracing and partial evaluation have been proposed as metacompilation techniques for interpreters.
More informationDynamic Languages Strike Back. Steve Yegge Stanford EE Dept Computer Systems Colloquium May 7, 2008
Dynamic Languages Strike Back Steve Yegge Stanford EE Dept Computer Systems Colloquium May 7, 2008 What is this talk about? Popular opinion of dynamic languages: Unfixably slow Not possible to create IDE-quality
More informationUnifying Big Data Workloads in Apache Spark
Unifying Big Data Workloads in Apache Spark Hossein Falaki @mhfalaki Outline What s Apache Spark Why Unification Evolution of Unification Apache Spark + Databricks Q & A What s Apache Spark What is Apache
More informationAdaptive Optimization using Hardware Performance Monitors. Master Thesis by Mathias Payer
Adaptive Optimization using Hardware Performance Monitors Master Thesis by Mathias Payer Supervising Professor: Thomas Gross Supervising Assistant: Florian Schneider Adaptive Optimization using HPM 1/21
More informationHigh-Level Language VMs
High-Level Language VMs Outline Motivation What is the need for HLL VMs? How are these different from System or Process VMs? Approach to HLL VMs Evolutionary history Pascal P-code Object oriented HLL VMs
More informationModules, Structs, Hashes, and Operational Semantics
CS 152: Programming Language Paradigms Modules, Structs, Hashes, and Operational Semantics Prof. Tom Austin San José State University Lab Review (in-class) Modules Review Modules from HW 1 (in-class) How
More informationPegarus & Poison. Rubinius VM as a Multilanguage Platform
Pegarus & Poison Rubinius VM as a Multilanguage Platform Thursday, July 29, 2010 Brian Ford brixen on {twitter IRC gmail} Thursday, July 29, 2010 discussion rant tutorial Q&A interaction Thursday, July
More informationBuilding Petri nets tools around Neco compiler
Building Petri nets tools around Neco compiler Lukasz Fronc and Franck Pommereau {fronc,pommereau}@ibisc.univ-evry.fr IBISC, Université d Évry/Paris-Saclay IBGBI, 23 boulevard de France 91037 Évry Cedex,
More informationTest I Solutions MASSACHUSETTS INSTITUTE OF TECHNOLOGY Spring Department of Electrical Engineering and Computer Science
Department of Electrical Engineering and Computer Science MASSACHUSETTS INSTITUTE OF TECHNOLOGY 6.035 Spring 2013 Test I Solutions Mean 83 Median 87 Std. dev 13.8203 14 12 10 8 6 4 2 0 0 10 20 30 40 50
More informationDynamic Page Sharing Optimization for the R Language
Dynamic Page Sharing Optimization for the R Language Helena Kotthaus Ingo Korb Michael Engel 2 Peter Marwedel Department of Computer Science 2, TU Dortmund University, Germany 2 School of Computing, Creative
More informationCopyright 2012, Oracle and/or its affiliates. All rights reserved.
1 Truffle: A Self-Optimizing Runtime System Christian Wimmer, Thomas Würthinger Oracle Labs Write Your Own Language Current situation How it should be Prototype a new language Parser and language work
More informationMoarVM. A metamodel-focused runtime for NQP and Rakudo. Jonathan Worthington
MoarVM A metamodel-focused runtime for NQP and Rakudo Jonathan Worthington What does a VM typically do? Execute instructions (possibly by interpreting, possibly by JIT compilation, often a combination)
More informationAccelerating Ruby with LLVM
Accelerating Ruby with LLVM Evan Phoenix Oct 2, 2009 RUBY RUBY Strongly, dynamically typed RUBY Unified Model RUBY Everything is an object RUBY 3.class # => Fixnum RUBY Every code context is equal RUBY
More informationTracing Comes To Racket!
Tracing Comes To Racket! Spenser Bauman 1 Carl Friedrich Bolz 2 Robert Hirschfeld 3 Vasily Kirilichev 3 Tobias Pape 3 Jeremy G. Siek 1 Sam Tobin-Hochstadt 1 1 Indiana University Bloomington, USA 2 King
More informationChris Bailey Bailey. Emerging Web Application Architectures With Java and Node.js
Chris Bailey IBM Emerging Web Application Architectures With Java and Node.js STSM, IBM Runtime Development 2 @seabaylea 2015 IBM Corporation 1 The Annual Death of Java Developer trend No. 2: Java s decline
More informationAn Efficient Memory Management Technique That Improves Localities
An Efficient Memory Management Technique That Improves Localities Krishna Kavi Mehran Rezaei Dept. of Electrical and Computer Engineering University of Alabama in Huntsville Ron K. Cytron Department of
More informationCSCI 334: Principles of Programming Languages. Lecture 2: Lisp Wrapup & Fundamentals. Higher-Order Functions. Activity
Garbage Collection CSCI 334: Principles of ming Languages Lecture 2: Lisp Wrapup & Fundamentals ~] java -verbose:gc Garbage [GC 17024K->3633K(83008K), 0.0067267 secs] [GC 20657K->6988K(83008K), 0.0073014
More informationWhat do Compilers Produce?
What do Compilers Produce? Pure Machine Code Compilers may generate code for a particular machine, not assuming any operating system or library routines. This is pure code because it includes nothing beyond
More informationExecuting Legacy Applications on a Java Operating System
Executing Legacy Applications on a Java Operating System Andreas Gal, Michael Yang, Christian Probst, and Michael Franz University of California, Irvine {gal,mlyang,probst,franz}@uci.edu May 30, 2004 Abstract
More informationetags - CentOS Linux Users Guide etags etags
- CentOS 5.2 - Linux Users Guide SYNOPSIS [-acdgimrvh] [-i ] [-l ] [-o tag] [-r ] [--append] [--no-defines] [--no-globals] [--include= ] [--ignore-indentation] [--= ] [--members] [--output= tag ] [--regex=
More informationAdministration CS 412/413. Why build a compiler? Compilers. Architectural independence. Source-to-source translator
CS 412/413 Introduction to Compilers and Translators Andrew Myers Cornell University Administration Design reports due Friday Current demo schedule on web page send mail with preferred times if you haven
More informationBinding and Storage. COMP 524: Programming Language Concepts Björn B. Brandenburg. The University of North Carolina at Chapel Hill
Binding and Storage Björn B. Brandenburg The University of North Carolina at Chapel Hill Based in part on slides and notes by S. Olivier, A. Block, N. Fisher, F. Hernandez-Campos, and D. Stotts. What s
More informationCompiling Techniques
Lecture 2: The view from 35000 feet 19 September 2017 Table of contents 1 2 Passes Representations 3 Instruction Selection Register Allocation Instruction Scheduling 4 of a compiler Source Compiler Machine
More informationCSE 413 Languages & Implementation. Hal Perkins Winter 2019 Structs, Implementing Languages (credits: Dan Grossman, CSE 341)
CSE 413 Languages & Implementation Hal Perkins Winter 2019 Structs, Implementing Languages (credits: Dan Grossman, CSE 341) 1 Goals Representing programs as data Racket structs as a better way to represent
More informationWhat is a compiler? Xiaokang Qiu Purdue University. August 21, 2017 ECE 573
What is a compiler? Xiaokang Qiu Purdue University ECE 573 August 21, 2017 What is a compiler? What is a compiler? Traditionally: Program that analyzes and translates from a high level language (e.g.,
More informationIntroduction to Programming (Java) 2/12
Introduction to Programming (Java) 2/12 Michal Krátký Department of Computer Science Technical University of Ostrava Introduction to Programming (Java) 2008/2009 c 2006 2008 Michal Krátký Introduction
More informationName: CIS 341 Final Examination 10 December 2008
Name: CIS 341 Final Examination 10 December 2008 1 /8 2 /12 3 /18 4 /18 5 /14 Total /70 Do not begin the exam until you are told to do so. You have 120 minutes to complete the exam. There are 11 pages
More informationCS558 Programming Languages
CS558 Programming Languages Winter 2017 Lecture 4a Andrew Tolmach Portland State University 1994-2017 Semantics and Erroneous Programs Important part of language specification is distinguishing valid from
More informationJust-In-Time Compilation
Just-In-Time Compilation Thiemo Bucciarelli Institute for Software Engineering and Programming Languages 18. Januar 2016 T. Bucciarelli 18. Januar 2016 1/25 Agenda Definitions Just-In-Time Compilation
More informationgctags - Linux Command
g - CentOS 5.2 - Linux Users Guide g g - Linux Command SYNOPSIS [-acdgimrvh] [-i ] [-l langua ge ] [-o t ag ] [-r ] [--append] [--no-defines] [--no-globals] [--include= ] [--ignore-indentation] [--= ]
More informationBEAMJIT, a Maze of Twisty Little Traces
BEAMJIT, a Maze of Twisty Little Traces A walk-through of the prototype just-in-time (JIT) compiler for Erlang. Frej Drejhammar 130613 Who am I? Senior researcher at the Swedish Institute
More informationChapter 9. Introduction to High-Level Language Programming. INVITATION TO Computer Science
Chapter 9 Introduction to High-Level Language Programming INVITATION TO Computer Science 1 Objectives After studying this chapter, students will be able to: Explain the advantages of high-level programming
More information1 Copyright 2012, Oracle and/or its affiliates. All rights reserved.
1 Copyright 2012, Oracle and/or its affiliates. All rights reserved. Truffle: A Self-Optimizing Runtime System Thomas Wuerthinger Oracle Labs JVM Language Summit, July 31, 2012 2 Copyright 2012, Oracle
More informationCSE 12 Abstract Syntax Trees
CSE 12 Abstract Syntax Trees Compilers and Interpreters Parse Trees and Abstract Syntax Trees (AST's) Creating and Evaluating AST's The Table ADT and Symbol Tables 16 Using Algorithms and Data Structures
More informationRubyConf 2005 Oct. 14 SASADA Koichi Tokyo University of Agriculture and Technology Nihon Ruby no Kai
YARV Progress Report RubyConf 2005 Oct. 14 SASADA Koichi Tokyo University of Agriculture and Technology Nihon Ruby no Kai Ko1@atdot.net 1 Agenda Self Introduction and Japanese Activities Overview of YARV
More informationJava without the Coffee Breaks: A Nonintrusive Multiprocessor Garbage Collector
Java without the Coffee Breaks: A Nonintrusive Multiprocessor Garbage Collector David F. Bacon IBM T.J. Watson Research Center Joint work with C.R. Attanasio, Han Lee, V.T. Rajan, and Steve Smith ACM Conference
More informationIntermediate Representations
Intermediate Representations Intermediate Representations (EaC Chaper 5) Source Code Front End IR Middle End IR Back End Target Code Front end - produces an intermediate representation (IR) Middle end
More informationFuture of JRockit & Tools
Future of JRockit & Tools Or finding the right layer to attack Joakim Dahlstedt 15 September 2004 A Short Background on JRockit Server-centric JVM Java compatible (most of the Java libraries are Suns)
More informationComputer Organization & Assembly Language Programming
Computer Organization & Assembly Language Programming CSE 2312 Lecture 11 Introduction of Assembly Language 1 Assembly Language Translation The Assembly Language layer is implemented by translation rather
More informationCS558 Programming Languages
CS558 Programming Languages Fall 2016 Lecture 3a Andrew Tolmach Portland State University 1994-2016 Formal Semantics Goal: rigorous and unambiguous definition in terms of a wellunderstood formalism (e.g.
More informationBugloo: A Source Level Debugger for Scheme Programs Compiled into JVM Bytecode
Bugloo: A Source Level Debugger for Scheme Programs Compiled into JVM Bytecode Damien Ciabrini Manuel Serrano firstname.lastname@sophia.inria.fr INRIA Sophia Antipolis 2004 route des Lucioles - BP 93 F-06902
More informationComputer Components. Software{ User Programs. Operating System. Hardware
Computer Components Software{ User Programs Operating System Hardware What are Programs? Programs provide instructions for computers Similar to giving directions to a person who is trying to get from point
More informationWhere We Are. Lexical Analysis. Syntax Analysis. IR Generation. IR Optimization. Code Generation. Machine Code. Optimization.
Where We Are Source Code Lexical Analysis Syntax Analysis Semantic Analysis IR Generation IR Optimization Code Generation Optimization Machine Code Where We Are Source Code Lexical Analysis Syntax Analysis
More informationJamaicaVM Java for Embedded Realtime Systems
JamaicaVM Java for Embedded Realtime Systems... bringing modern software development methods to safety critical applications Fridtjof Siebert, 25. Oktober 2001 1 Deeply embedded applications Examples:
More informationUsing the Parallel Virtual Machine for Everyday Analysis
Using the Parallel Virtual Machine for Everyday Analysis Michael S. Noble, John C. Houck, John E. Davis, Andrew Young, Michael Nowak Kavli Institute for Astrophysics and Space Research Massachusetts Institute
More informationCOMPUTING SCIENCE 3Z: PROGRAMMING LANGUAGES 3
Tuesday, 28 May 2009 2.00 pm 3.30 pm (Duration: 1 hour 30 minutes) DEGREES OF MSci, MEng, BEng, BSc, MA and MA (Social Sciences) COMPUTING SCIENCE 3Z: PROGRAMMING LANGUAGES 3 Answer all 4 questions. This
More informationAnnouncements. My office hours are today in Gates 160 from 1PM-3PM. Programming Project 3 checkpoint due tomorrow night at 11:59PM.
IR Generation Announcements My office hours are today in Gates 160 from 1PM-3PM. Programming Project 3 checkpoint due tomorrow night at 11:59PM. This is a hard deadline and no late submissions will be
More informationFastR: Status and Outlook
FastR: Status and Outlook Michael Haupt Tech Lead, FastR Project Virtual Machine Research Group, Oracle Labs June 2014 Copyright 2014 Oracle and/or its affiliates. All rights reserved. CMYK 0/100/100/20
More informationJúlius Flimmel. Pascal with Truffle
BACHELOR THESIS Július Flimmel Pascal with Truffle Department of Distributed and Dependable Systems Supervisor of the bachelor thesis: Study programme: Study branch: Mgr. Vojtěch Horký Informatics Programming
More informationCOMPOSABILITY, PROVABILITY, REUSABILITY (CPR) FOR SURVIVABILITY
AFRL-IF-RS-TR-2002-61 Final Technical Report April 2002 COMPOSABILITY, PROVABILITY, REUSABILITY (CPR) FOR SURVIVABILITY Kestrel Institute Sponsored by Defense Advanced Research Projects Agency DARPA Order
More informationCS Programming In C
CS 24000 - Programming In C Week 16: Review Zhiyuan Li Department of Computer Science Purdue University, USA This has been quite a journey Congratulation to all students who have worked hard in honest
More informationLanguage Translation. Compilation vs. interpretation. Compilation diagram. Step 1: compile. Step 2: run. compiler. Compiled program. program.
Language Translation Compilation vs. interpretation Compilation diagram Step 1: compile program compiler Compiled program Step 2: run input Compiled program output Language Translation compilation is translation
More informationModule 27 Switch-case statements and Run-time storage management
Module 27 Switch-case statements and Run-time storage management In this module we will discuss the pending constructs in generating three-address code namely switch-case statements. We will also discuss
More informationCPSC 3740 Programming Languages University of Lethbridge. Data Types
Data Types A data type defines a collection of data values and a set of predefined operations on those values Some languages allow user to define additional types Useful for error detection through type
More informationpar serge-sans-paille Ingénieur R&D en compil' à Quarkslab Chercheur associé à (feu) Télécom Bretagne Core dev Pythran
Python & Pro ling par serge-sans-paille Ingénieur R&D en compil' à Quarkslab Chercheur associé à (feu) Télécom Bretagne Core dev Pythran Premature optimization is the root... We should forget about small
More informationAn Introduction to Python (TEJ3M & TEJ4M)
An Introduction to Python (TEJ3M & TEJ4M) What is a Programming Language? A high-level language is a programming language that enables a programmer to write programs that are more or less independent of
More information6. Pointers, Structs, and Arrays. 1. Juli 2011
1. Juli 2011 Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 1 of 50 Outline Recapitulation Pointers Dynamic Memory Allocation Structs Arrays Bubble Sort Strings Einführung
More informationA Tour to Spur for Non-VM Experts. Guille Polito, Christophe Demarey ESUG 2016, 22/08, Praha
A Tour to Spur for Non-VM Experts Guille Polito, Christophe Demarey ESUG 2016, 22/08, Praha From a user point of view We are working on the new Pharo Kernel Bootstrap: create an image from scratch - Classes
More information1. true / false By a compiler we mean a program that translates to code that will run natively on some machine.
1. true / false By a compiler we mean a program that translates to code that will run natively on some machine. 2. true / false ML can be compiled. 3. true / false FORTRAN can reasonably be considered
More informationBackground. From my PhD (2009): Verified Lisp interpreter in ARM, x86 and PowerPC machine code
Certification of high-level and low-level programs, IHP, Paris, 2014 CakeML A verified implementation of ML Ramana Kumar Magnus Myreen Michael Norrish Scott Owens Background From my PhD (2009): Verified
More informationCS 480 Fall Runtime Environments. Mike Lam, Professor. (a.k.a. procedure calls and heap management)
CS 480 Fall 2015 Mike Lam, Professor Runtime Environments (a.k.a. procedure calls and heap management) Subprograms General characteristics Single entry point Caller is suspended while subprogram is executing
More informationSample Copy. Not for Distribution.
A Practical Approach to Learn JAVA i EDUCREATION PUBLISHING RZ 94, Sector - 6, Dwarka, New Delhi - 110075 Shubham Vihar, Mangla, Bilaspur, Chhattisgarh - 495001 Website: www.educreation.in Copyright, 2018,
More informationSymbol Tables Symbol Table: In computer science, a symbol table is a data structure used by a language translator such as a compiler or interpreter, where each identifier in a program's source code is
More informationBuilding a Runnable Program and Code Improvement. Dario Marasco, Greg Klepic, Tess DiStefano
Building a Runnable Program and Code Improvement Dario Marasco, Greg Klepic, Tess DiStefano Building a Runnable Program Review Front end code Source code analysis Syntax tree Back end code Target code
More informationCIS 3260 Intro. to Programming with C#
Introduction to Programming and Visual C# 2008 McGraw-Hill 2010 The McGraw-Hill Companies, Inc. All rights reserved. Describe the process of visual program design and development Explain the term object-oriented
More informationProfiling & Optimization
Lecture 18 Sources of Game Performance Issues? 2 Avoid Premature Optimization Novice developers rely on ad hoc optimization Make private data public Force function inlining Decrease code modularity removes
More informationAutomatic Memory Management
Automatic Memory Management Why Automatic Memory Management? Storage management is still a hard problem in modern programming Why Automatic Memory Management? Storage management is still a hard problem
More informationCross-Layer Workload Characterization of Meta-Tracing JIT VMs
Cross-Layer Workload Characterization of Meta-Tracing JIT VMs Berkin Ilbeyi 1, Carl Friedrich Bolz-Tereick 2, and Christopher Batten 1 1 School of Electrical and Computer Engineering, Cornell University,
More informationFunctioning Hardware from Functional Specifications
Functioning Hardware from Functional Specifications Stephen A. Edwards Martha A. Kim Richard Townsend Kuangya Zhai Lianne Lairmore Columbia University IBM PL Day, November 18, 2014 Where s my 10 GHz processor?
More informationBEAMJIT: An LLVM based just-in-time compiler for Erlang. Frej Drejhammar
BEAMJIT: An LLVM based just-in-time compiler for Erlang Frej Drejhammar 140407 Who am I? Senior researcher at the Swedish Institute of Computer Science (SICS) working on programming languages,
More informationWorkload Characterization and Optimization of TPC-H Queries on Apache Spark
Workload Characterization and Optimization of TPC-H Queries on Apache Spark Tatsuhiro Chiba and Tamiya Onodera IBM Research - Tokyo April. 17-19, 216 IEEE ISPASS 216 @ Uppsala, Sweden Overview IBM Research
More informationGUI in C++ PV264 Advanced Programming in C++ Nikola Beneš Jan Mrázek Vladimír Štill. Faculty of Informatics, Masaryk University.
GUI in C++ PV264 Advanced Programming in C++ Nikola Beneš Jan Mrázek Vladimír Štill Faculty of Informatics, Masaryk University Spring 2017 PV264: GUI in C++ Spring 2017 1 / 23 Organisation Lectures this
More information-- anonymous reviewer
the prevalent theme is programming languages, while this kind of work can sometimes lead somewhere, projects mostly fail while promising grandiose general results -- anonymous reviewer JavaScript Programmers
More information