Renderscript. Lecture May Android Native Development Kit. NDK Renderscript, Lecture 10 1/41
|
|
- Cathleen Ray
- 6 years ago
- Views:
Transcription
1 Renderscript Lecture 10 Android Native Development Kit 6 May 2014 NDK Renderscript, Lecture 10 1/41
2 RenderScript RenderScript Compute Scripts RenderScript Runtime Layer Reflected Layer Memory Allocation Bibliography Keywords NDK Renderscript, Lecture 10 2/41
3 Outline RenderScript RenderScript Compute Scripts RenderScript Runtime Layer Reflected Layer Memory Allocation Bibliography Keywords NDK Renderscript, Lecture 10 3/41
4 Android NDK NDK - perform fast rendering and data-processing Lack of portability Native lib that runs on ARM won t run on x86 Lack of performance Hard to identify (CPU/GPU/DSP) cores and run on them Deal with synchronization Lack of usability JNI calls may introduce bugs RenderScript developed to overcome these problems NDK Renderscript, Lecture 10 4/41
5 RenderScript Native app speed with SDK app portability No JNI needed Language based on C99 - modern dialect of C Pair of compilers and runtime Graphics engine for fast 2D/3D rendering Deprecated from Android 4.1 Developers prefer OpenGL Compute engine for fast data processing Running threads on CPU/GPU/DSP cores Compute engine only on CPU cores NDK Renderscript, Lecture 10 5/41
6 RenderScript Architecture Android apps running in the Dalvik VM Graphics/compute scripts run in the RenderScript runtime Communication between them through instances of reflected layer classes Classes are wrappers around the scripts Generated using the Android build tools Eliminate the need of JNI Memory management App allocated memory Memory bound to the RenderScript runtime - memory accessed from the script Script may have additional fields to store data NDK Renderscript, Lecture 10 6/41
7 RenderScript Architecture NDK Renderscript, Lecture 10 7/41
8 RenderScript Architecture Asynchronous call to RenderScript runtime to start script Through the reflected layer classes Low-Level Virtual Machine (LLVM) front-end compiler When building the apk Compiles code into device-independent bytecode stored in the apk The reflected layer class is created LLVM back-end compiler on the device App is launched Compiles bytecode into device-specific code Caches the code on the device Achieves portability NDK Renderscript, Lecture 10 8/41
9 Outline RenderScript RenderScript Compute Scripts RenderScript Runtime Layer Reflected Layer Memory Allocation Bibliography Keywords NDK Renderscript, Lecture 10 9/41
10 Compute Engine-based App Architecture Java code and.rs file (compute script) API in android.renderscript package Class RenderScript Defines context Static RenderScript.create() returns class instance Class Allocation Input and output allocations Sending data to, receiving data from script Reflected layer class Name: ScriptC_ + script name If script = computation.rs => class = ScriptC computation.rs script Placed in src/ Contains kernels, functions and variables NDK Renderscript, Lecture 10 10/41
11 Script Example #pragma v e r s i o n ( 1 ) #pragma r s j a v a p a c k a g e n a m e ( com. example. h e l l o c o m p u t e ) // m u l t i p l i e r s to c o n v e r t a RGB c o l o r s to b l a c k and w h i t e c o n s t s t a t i c f l o a t 3 gmonomult = { f, f, f } ; uchar4 a t t r i b u t e ( ( k e r n e l ) ) c o n v e r t ( uchar4 i n ){ // unpack a c o l o r to a f l o a t 4 f l o a t 4 f 4 = r s U n p a c k C o l o r ( i n ) ; // t a k e t h e dot p r o d u c t o f t h e c o l o r and t h e m u l t i p l i e r f l o a t 3 mono = dot ( f 4. rgb, gmonomult ) ; // r e p a c k t h e f l o a t to a c o l o r r e t u r n rspackcolorto8888 ( mono ) ; } NDK Renderscript, Lecture 10 11/41
12 Java Code Example p r i v a t e v o i d u s e S c r i p t ( ) { R e n d e r S c r i p t mrs = R e n d e r S c r i p t. c r e a t e ( t h i s ) ; A l l o c a t i o n i n p u t = A l l o c a t i o n. createfrombitmap (mrs, inputbitmap ) ; A l l o c a t i o n o u t p u t = A l l o c a t i o n. createfrombitmap (mrs, outputbitmap ) ; ScriptC mono s c r i p t = new ScriptC mono (mrs ) ; s c r i p t. f o r E a c h c o n v e r t ( i n p u t, o u t p u t ) ; o u t p u t. copyto ( outputbitmap ) ; } NDK Renderscript, Lecture 10 12/41
13 Script Contents #pragma to specify RenderScript version #pragma version(1) Version 1 is the only one available #pragma to specify Java package name #pragma rs java_package_name(com.example.app) Global variables We may set values from Java - used for parameter passing Invokable functions Single-threaded function Called from Java with arbitrary arguments For initial setup or serial computations Optional init() function Special type of invokable function Runs when the script is first instantiated NDK Renderscript, Lecture 10 13/41
14 Script Contents Static global variables and functions Cannot be set/called from Java Compute kernels Parallel functions Executed for every Element within an Allocation attribute ((kernel)) -> RenderScript kernel in -> one Element from the input Allocation Returned value put in one Element from the output Allocation Multiple input/output -> declared global with rs_allocation Default root function A special kernel function used in older versions Returns void attribute ((kernel)) not needed NDK Renderscript, Lecture 10 14/41
15 Using RenderScript from Java Code Create RenderScript context Using create() May take a long time Create at least one Allocation Provides storage for a fixed amount of data Input and output for the kernels Created with createtyped(renderscript, Type) or createfrombitmap(renderscript, Bitmap) Create script User-defined kernels Instantiate ScriptC_filename class ScriptIntrinsic - built-in kernels for common operations NDK Renderscript, Lecture 10 15/41
16 Using RenderScript from Java Code Put data in Allocations Use copy functions from Allocation class Set script globals Using set_globalname from ScriptC_filename class set_elements(int) Execute kernels Using foreach_kernelname() from ScriptC_filename class Takes one or two Allocations as arguments Executed over the input entire Allocation by default Default root function Invoked using foreach_root NDK Renderscript, Lecture 10 16/41
17 Using RenderScript from Java Code Launch invoked functions Using invoke_functionname from ScriptC_filename class Obtain data from Allocations Copy data into Java buffers using copy methods from Allocation class Synchronizes with asynchronous kernel Destroy RenderScript context Using destroy() function Or let it be garbage collected Further use causes an exception NDK Renderscript, Lecture 10 17/41
18 RenderScript Intrinsics Pre-defined scripts ScriptIntrinsicBlend Kernels for blending two buffers ScriptIntrinsicBlur Gaussian blur filter Apply blur of a specified radius to the elements of an allocation ScriptIntrinsicColorMatrix Apply color matrix to allocation Hue filter Each element is multiplied with a 4x4 color matrix ScriptIntrinsicConvolve3x3 Embossing filter Apply 3x3 convolve to allocation NDK Renderscript, Lecture 10 18/41
19 Intrinsics Example p r i v a t e v o i d u s e B l u r S c r i p t ( ) { R e n d e r S c r i p t mrs = R e n d e r S c r i p t. c r e a t e ( t h i s ) ; A l l o c a t i o n i n p u t = A l l o c a t i o n. createfrombitmap (mrs, inputbitmap ) ; A l l o c a t i o n o u t p u t = A l l o c a t i o n. createfrombitmap (mrs, outputbitmap ) ; S c r i p t I n t r i n s i c B l u r s c r i p t = S c r i p t I n t r i n s i c B l u r. c r e a t e (mrs, Element. U8 4 (mrs ) ) ; s c r i p t. s e t R a d i u s ( ( f l o a t ) ) ; s c r i p t. s e t I n p u t ( i n p u t ) ; s c r i p t. f o r E a c h ( o u t p u t ) ; o u t p u t. copyto ( outputbitmap ) ; } NDK Renderscript, Lecture 10 19/41
20 Outline RenderScript RenderScript Compute Scripts RenderScript Runtime Layer Reflected Layer Memory Allocation Bibliography Keywords NDK Renderscript, Lecture 10 20/41
21 RenderScript Runtime Layer The code is executed in a RenderScript runtime layer Runtime API - computation portable and scalable to the number of cores Code compiled into intermediate bytecode using LLVM compiler part of the Android build system Bytecode compiled just-in-time to machine code by another LLVM compiler on the device Machine code is optimized for that platform and cached NDK Renderscript, Lecture 10 21/41
22 RenderScript Runtime Libraries Manage memory allocation requests Large number of math functions Scalar and vector typed overloaded versions of common functions Adding, multiplying, dot product, cross product Atomic arithmetic and comparison functions Conversion functions for primitives, vectors, matrix, date and time Vector types for defining two-, three- and four-vectors Logging functions NDK Renderscript, Lecture 10 22/41
23 Outline RenderScript RenderScript Compute Scripts RenderScript Runtime Layer Reflected Layer Memory Allocation Bibliography Keywords NDK Renderscript, Lecture 10 23/41
24 Reflected Layer Set of classes generated by the Android build tools Allow access to RenderScript runtime from the Android framework Methods and constructors for allocating memory for the RenderScript code Reflected components: Class ScriptC_filename for each script Non-static functions Non-static global variables Get/set methods for each variable For a const the set method is not generated Global pointers Class ScriptField_structname for each structure An array of the struct Allocate memory for one or more instances of the struct NDK Renderscript, Lecture 10 24/41
25 Functions are reflected into ScriptC_filename class Asynchronous -> cannot have return values Reflected functions When function is called, the call is queued and executed when possible To send a value back to Java use rssendtoclient() For function void touch(float x, float y, float pressure, int id) it generates code: p u b l i c v o i d i n v o k e t o u c h ( f l o a t x, f l o a t y, f l o a t p r e s s u r e, i n t i d ) { F i e l d P a c k e r t o u c h f p = new F i e l d P a c k e r ( 1 6 ) ; t o u c h f p. addf32 ( x ) ; t o u c h f p. addf32 ( y ) ; t o u c h f p. addf32 ( p r e s s u r e ) ; t o u c h f p. addi32 ( i d ) ; i n v o k e ( mexportfuncidx touch, t o u c h f p ) ; } NDK Renderscript, Lecture 10 25/41
26 Variables Variables are reflected into ScriptC_filename class Set/get methods are generated For uint32_t index are generated: p r i v a t e l o n g m E x p o r t V a r i n d e x ; p u b l i c v o i d s e t i n d e x ( l o n g v ){ m E x p o r t V a r i n d e x = v ; s e t V a r ( m E x p o r t V a r I d x i n d e x, v ) ; } p u b l i c l o n g g e t i n d e x ( ) { r e t u r n m E x p o r t V a r i n d e x ; } NDK Renderscript, Lecture 10 26/41
27 Structs Structs are reflected into ScriptField_structname classes Class extends android.renderscript.script.fieldbase Class includes: A static nested class Item that includes the fields of struct An Item array Get/set methods for each field in the struct index parameter to specify exact Item in the array Setter has copynow parameter - immediately sync memory to RenderScript runtime Get/set methods for a certain Item in the array Overloaded ScriptField_structname(RenderScript rs, int count) count - number of elements in the array to allocate resize() - expand allocated memory (array dimension) copyall() - sync memory to the RenderScript runtime NDK Renderscript, Lecture 10 27/41
28 Pointers Pointers reflected into ScriptC_filename class Pointer to struct or any RenderScript type Struct cannot contain pointers or nested arrays For int32_t *index is generated: p r i v a t e A l l o c a t i o n m E x p o r t V a r i n d e x ; p u b l i c v o i d b i n d i n d e x ( A l l o c a t i o n v ) { m E x p o r t V a r i n d ex = v ; i f ( v == n u l l ) b i n d A l l o c a t i o n ( n u l l, m E x p o r t V a r I d x i n d e x ) ; e l s e b i n d A l l o c a t i o n ( v, m E x p o r t V a r I d x i n d e x ) ; } p u b l i c A l l o c a t i o n g e t i n d e x ( ) { r e t u r n m E x p o r t V a r i n d e x ; Bind function - bind allocated memory in the VM to RenderScript runtime Cannot allocate memory in the script NDK Renderscript, Lecture 10 28/41
29 Outline RenderScript RenderScript Compute Scripts RenderScript Runtime Layer Reflected Layer Memory Allocation Bibliography Keywords NDK Renderscript, Lecture 10 29/41
30 Binding Apps run in the Android VM RenderScript code runs natively and needs to access the memory allocated in the VM Binding Memory allocated in the VM is attached to the RenderScript runtime Needed for dynamically allocated memory Scripts cannot allocate memory explicitly Statically allocated memory is created at compile time NDK Renderscript, Lecture 10 30/41
31 Memory Allocation Element class One cell of memory allocation Basic element - any RenderScript data type (float, float4, etc) Complex element - list of basic elements, created from structs Type class Encapsulates the Element and a number of dimensions Layout of memory - usually an array of Elements Allocation class Performs actual allocation based on the Type Sync is needed when memory is modified NDK Renderscript, Lecture 10 31/41
32 Non-static global variables and pointers Non-static global variables Allocated statically at compile time No allocation in Java Initialized by the RenderScript layer Access them from Java using get/set methods in the reflected class Global pointers Allocate memory dynamically in Java through the reflected class Bind memory to the RenderScript runtime Access memory from Java or from script NDK Renderscript, Lecture 10 32/41
33 Allocate and Bind Dynamic Memory For pointers to structs call ScriptField_structname class constructor Call reflected bind method - bind memory to RenderScript runtime S c r i p t F i e l d P o i n t p o i n t s = new S c r i p t F i e l d P o i n t (mrs, 1 0 ) ; m S c r i p t. b i n d p o i n t s ( p o i n t s ) ; For primitive pointers - manually create Allocation A l l o c a t i o n e l e m e n t s = A l l o c a t i o n. c r e a t e S i z e d (mrs, Element. I 3 2 (mrs), 1 0 ) ; m S c r i p t. b i n d e l e m e n t s ( e l e m e n t s ) ; NDK Renderscript, Lecture 10 33/41
34 Access global variables Statically allocated memory Get/set methods in Java, access directly in script Changes in script are not propagated in Java Access in script: t y p e d e f s t r u c t P o i n t { i n t x ; i n t y ; } P o i n t t ; P o i n t t p o i n t ; [.. ] p o i n t. x = 1 ; p o i n t. y = 1 ; rsdebug ( P o i n t :, p o i n t. x, p o i n t. y ) ; NDK Renderscript, Lecture 10 34/41
35 Access global variables If you modify in Java, values are propagated to the RenderScript runtime Cannot get modifications from script Access in Java: S c r i p t C e x a m p l e m S c r i p t ; [.. ] Item p = new S c r i p t F i e l d P o i n t. Item ( ) ; p. x = 1 ; p. y = 1 ; m S c r i p t. s e t p o i n t ( p ) ; Log. i ( TAG, P o i n t : + m S c r i p t. g e t p o i n t ( ). x + + m S c r i p t. g e t p o i n t ( ). y ) ; NDK Renderscript, Lecture 10 35/41
36 Access pointers Dynamically allocated memory Allocate memory in Java and bind to the RenderScript runtime Use get/set methods to access from Java Access pointers directly from script Changes are automatically propagated to Java From script: t y p e d e f s t r u c t P o i n t { i n t x ; i n t y ; } P o i n t t ; P o i n t t p o i n t ; p o i n t [ i n d e x ]. x = 1 ; p o i n t [ i n d e x ]. y = 1 ; NDK Renderscript, Lecture 10 36/41
37 Access pointers From Java: S c r i p t F i e l d P o i n t p o i n t s = new S c r i p t F i e l d P o i n t (mrs, 1 0 ) ; Item p = new S c r i p t F i e l d P o i n t. Item ( ) ; p. x = 2 5 ; p. y = 7 0 ; p o i n t s. s e t ( p, 0, t r u e ) ; m S c r i p t. b i n d p o i n t ( p o i n t s ) ; p o i n t s. g e t x ( 0 ) ; p o i n t s. g e t y ( 0 ) ; Call bind just once No need to re-bind every time a change is made NDK Renderscript, Lecture 10 37/41
38 Outline RenderScript RenderScript Compute Scripts RenderScript Runtime Layer Reflected Layer Memory Allocation Bibliography Keywords NDK Renderscript, Lecture 10 38/41
39 Bibliography renderscript/compute.html renderscript/advanced.html Android Recipes A Problem-Solution Approach, Chapter 9 NDK Renderscript, Lecture 10 39/41
40 Outline RenderScript RenderScript Compute Scripts RenderScript Runtime Layer Reflected Layer Memory Allocation Bibliography Keywords NDK Renderscript, Lecture 10 40/41
41 RenderScript C99 LLVM Allocation Compute kernels Invokable functions Reflected layer Pointers Structs Memory binding Element Type NDK Renderscript, Lecture 10 41/41
Another difference is that the kernel includes only the suspend to memory mechanism, and not the suspend to hard disk, which is used on PCs.
9. Android is an open-source operating system for mobile devices. Nowadays, it has more than 1.4 billion monthly active users (statistic from September 2015) and the largest share on the mobile device
More informationIntroduction. Lecture 1. Operating Systems Practical. 5 October 2016
Introduction Lecture 1 Operating Systems Practical 5 October 2016 This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/.
More informationIntroduction to Programming Using Java (98-388)
Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;
More informationStream Computing using Brook+
Stream Computing using Brook+ School of Electrical Engineering and Computer Science University of Central Florida Slides courtesy of P. Bhaniramka Outline Overview of Brook+ Brook+ Software Architecture
More informationLecture 1 Introduction to Android. App Development for Mobile Devices. App Development for Mobile Devices. Announcement.
CSCE 315: Android Lectures (1/2) Dr. Jaerock Kwon App Development for Mobile Devices Jaerock Kwon, Ph.D. Assistant Professor in Computer Engineering App Development for Mobile Devices Jaerock Kwon, Ph.D.
More information15CS45 : OBJECT ORIENTED CONCEPTS
15CS45 : OBJECT ORIENTED CONCEPTS QUESTION BANK: What do you know about Java? What are the supported platforms by Java Programming Language? List any five features of Java? Why is Java Architectural Neutral?
More informationNDK Integration (JNI)
NDK Integration (JNI) Lecture 6 Operating Systems Practical 9 November 2016 This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit
More informationOperating Systems CMPSCI 377, Lec 2 Intro to C/C++ Prashant Shenoy University of Massachusetts Amherst
Operating Systems CMPSCI 377, Lec 2 Intro to C/C++ Prashant Shenoy University of Massachusetts Amherst Department of Computer Science Why C? Low-level Direct access to memory WYSIWYG (more or less) Effectively
More informationCode Generation for Embedded Heterogeneous Architectures on Android
This is the author s version of the work. The definitive work was published in Proceedings of the Conference on Design, Automation and Test in Europe (DATE), Dresden, Germany, March 24-28, 2014. Code Generation
More informationCUDA. Schedule API. Language extensions. nvcc. Function type qualifiers (1) CUDA compiler to handle the standard C extensions.
Schedule CUDA Digging further into the programming manual Application Programming Interface (API) text only part, sorry Image utilities (simple CUDA examples) Performace considerations Matrix multiplication
More informationJava for Programmers Course (equivalent to SL 275) 36 Contact Hours
Java for Programmers Course (equivalent to SL 275) 36 Contact Hours Course Overview This course teaches programmers the skills necessary to create Java programming system applications and satisfies the
More informationIndex. object lifetimes, and ownership, use after change by an alias errors, use after drop errors, BTreeMap, 309
A Arithmetic operation floating-point arithmetic, 11 12 integer numbers, 9 11 Arrays, 97 copying, 59 60 creation, 48 elements, 48 empty arrays and vectors, 57 58 executable program, 49 expressions, 48
More informationAndroid Internals and the Dalvik VM!
Android Internals and the Dalvik VM! Adam Champion, Andy Pyles, Boxuan Gu! Derived in part from presentations by Patrick Brady, Dan Bornstein, and Dan Morrill from Google (http://source.android.com/documentation)!
More informationVALLIAMMAI ENGINEERING COLLEGE
VALLIAMMAI ENGINEERING COLLEGE SRM Nagar, Kattankulathur 603 203 DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING QUESTION BANK B.E. - Electrical and Electronics Engineering IV SEMESTER CS6456 - OBJECT ORIENTED
More informationOpenCL C. Matt Sellitto Dana Schaa Northeastern University NUCAR
OpenCL C Matt Sellitto Dana Schaa Northeastern University NUCAR OpenCL C Is used to write kernels when working with OpenCL Used to code the part that runs on the device Based on C99 with some extensions
More informationFaust Android API. Using This Package
Faust Android API This API allows to interact with a natively compiled Faust object and its associated audio engine at a very high level from the JAVA layer of an Android app. The idea is that all the
More informationWeiss Chapter 1 terminology (parenthesized numbers are page numbers)
Weiss Chapter 1 terminology (parenthesized numbers are page numbers) assignment operators In Java, used to alter the value of a variable. These operators include =, +=, -=, *=, and /=. (9) autoincrement
More informationChapter 1 INTRODUCTION SYS-ED/ COMPUTER EDUCATION TECHNIQUES, INC.
hapter 1 INTRODUTION SYS-ED/ OMPUTER EDUATION TEHNIQUES, IN. Objectives You will learn: Java features. Java and its associated components. Features of a Java application and applet. Java data types. Java
More informationCore JAVA Training Syllabus FEE: RS. 8000/-
About JAVA Java is a high-level programming language, developed by James Gosling at Sun Microsystems as a core component of the Java platform. Java follows the "write once, run anywhere" concept, as it
More informationCS313D: ADVANCED PROGRAMMING LANGUAGE
CS313D: ADVANCED PROGRAMMING LANGUAGE Computer Science department Lecture 4 (a): Classes & Objects Lecture Contents 2 What is a class? Class definition: Data Methods Constructors objects Static members
More informationOpenACC Course. Office Hour #2 Q&A
OpenACC Course Office Hour #2 Q&A Q1: How many threads does each GPU core have? A: GPU cores execute arithmetic instructions. Each core can execute one single precision floating point instruction per cycle
More informationRenderscript Accelerated Advanced Image and Video Processing on ARM Mali T-600 GPUs. Lihua Zhang, Ph.D. MulticoreWare Inc.
Renderscript Accelerated Advanced Image and Video Processing on ARM Mali T-600 GPUs Lihua Zhang, Ph.D. MulticoreWare Inc. lihua@multicorewareinc.com Overview More & more mobile apps are beginning to require
More informationChapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on
Chapter 2: Operating-System Structures Operating System Concepts 9 th Edit9on Silberschatz, Galvin and Gagne 2013 Chapter 2: Operating-System Structures 1. Operating System Services 2. User Operating System
More informationPorting Fabric Engine to NVIDIA Unified Memory: A Case Study. Peter Zion Chief Architect Fabric Engine Inc.
Porting Fabric Engine to NVIDIA Unified Memory: A Case Study Peter Zion Chief Architect Fabric Engine Inc. What is Fabric Engine? A high-performance platform for building 3D content creation applications,
More informationCS313D: ADVANCED PROGRAMMING LANGUAGE
CS313D: ADVANCED PROGRAMMING LANGUAGE Computer Science department Lecture 4 : Classes & Objects Lecture Contents What is a class? Class definition: Data Methods Constructors Properties (set/get) objects
More informationTake GPU Processing Power Beyond Graphics with Mali GPU Computing
Take GPU Processing Power Beyond Graphics with Mali GPU Computing Roberto Mijat Visual Computing Marketing Manager August 2012 Introduction Modern processor and SoC architectures endorse parallelism as
More informationCompositional C++ Page 1 of 17
Compositional C++ Page 1 of 17 Compositional C++ is a small set of extensions to C++ for parallel programming. OVERVIEW OF C++ With a few exceptions, C++ is a pure extension of ANSI C. Its features: Strong
More informationCUDA Programming Model
CUDA Xing Zeng, Dongyue Mou Introduction Example Pro & Contra Trend Introduction Example Pro & Contra Trend Introduction What is CUDA? - Compute Unified Device Architecture. - A powerful parallel programming
More informationCourse Description. Learn To: : Intro to JAVA SE7 and Programming using JAVA SE7. Course Outline ::
Module Title Duration : Intro to JAVA SE7 and Programming using JAVA SE7 : 9 days Course Description The Java SE 7 Fundamentals course was designed to enable students with little or no programming experience
More informationCSE P 501 Compilers. Java Implementation JVMs, JITs &c Hal Perkins Winter /11/ Hal Perkins & UW CSE V-1
CSE P 501 Compilers Java Implementation JVMs, JITs &c Hal Perkins Winter 2008 3/11/2008 2002-08 Hal Perkins & UW CSE V-1 Agenda Java virtual machine architecture.class files Class loading Execution engines
More informationIntroduction to Mobile Development
Introduction to Mobile Development Building mobile applications can be as easy as opening up the IDE, throwing something together, doing a quick bit of testing, and submitting to an App Store all done
More informationGraphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub
Lebanese University Faculty of Science Computer Science BS Degree Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub 2 Crash Course in JAVA Classes A Java
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 informationCross-compiling C++ to JavaScript. Challenges in porting the join.me common library to HTML5
Cross-compiling C++ to JavaScript Challenges in porting the join.me common library to HTML5 JUNE 24, 2015 LEVENTE HUNYADI join.me at a glance 2 join.me at a glance 3 join.me characteristics Application
More informationMATLAB to iphone Made Easy
MATLAB to iphone Made Easy Generating readable and portable C code from your MATLAB algorithms for your iphone or ipad app Bill Chou 2014 The MathWorks, Inc. 1 2 4 Quick Demo MATLAB Coder >> Demo 5 Agenda
More informationField Analysis. Last time Exploit encapsulation to improve memory system performance
Field Analysis Last time Exploit encapsulation to improve memory system performance This time Exploit encapsulation to simplify analysis Two uses of field analysis Escape analysis Object inlining April
More informationLecture Contents CS313D: ADVANCED PROGRAMMING LANGUAGE
CS313D: ADVANCED PROGRAMMING LANGUAGE Computer Science department Lecture 4 : Classes & Objects Lecture Contents What is a class? Class definition: Data Methods Constructors Properties (set/get) objects
More informationNDK OVERVIEW OF THE ANDROID NATIVE DEVELOPMENT KIT
ANDROID NDK OVERVIEW OF THE ANDROID NATIVE DEVELOPMENT KIT Peter R. Egli INDIGOO.COM 1/16 Contents 1. What you can do with NDK 2. When to use native code 3. Stable APIs to use / available libraries 4.
More informationJava: framework overview and in-the-small features
Chair of Software Engineering Carlo A. Furia, Marco Piccioni, Bertrand Meyer Java: framework overview and in-the-small features Chair of Software Engineering Carlo A. Furia, Marco Piccioni, Bertrand Meyer
More informationSyllabus- Java + Android. Java Fundamentals
Introducing the Java Technology Syllabus- Java + Android Java Fundamentals Key features of the technology and the advantages of using Java Using an Integrated Development Environment (IDE) Introducing
More informationCS313D: ADVANCED PROGRAMMING LANGUAGE
CS313D: ADVANCED PROGRAMMING LANGUAGE Computer Science department Lecture 4 : Classes & Objects Lecture Contents What is a class? Class definition: Data Methods Constructors Properties (set/get) objects
More informationAndroid System Development Day-4. Team Emertxe
Android System Development Day-4 Team Emertxe Android System Service Table of Content Introduction to service Inter Process Communication (IPC) Adding Custom Service Writing Custom HAL Compiling SDK Testing
More informationPace University. Fundamental Concepts of CS121 1
Pace University Fundamental Concepts of CS121 1 Dr. Lixin Tao http://csis.pace.edu/~lixin Computer Science Department Pace University October 12, 2005 This document complements my tutorial Introduction
More informationProcesses. Johan Montelius KTH
Processes Johan Montelius KTH 2017 1 / 47 A process What is a process?... a computation a program i.e. a sequence of operations a set of data structures a set of registers means to interact with other
More informationCS260 Intro to Java & Android 04.Android Intro
CS260 Intro to Java & Android 04.Android Intro Winter 2015 Winter 2015 CS260 - Intro to Java & Android 1 Android - Getting Started Android SDK contains: API Libraries Developer Tools Documentation Sample
More informationShort Notes of CS201
#includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system
More informationMultiple Choice Questions. Chapter 5
Multiple Choice Questions Chapter 5 Each question has four choices. Choose most appropriate choice of the answer. 1. Developing program in high level language (i) facilitates portability of nonprocessor
More informationQuestion No: 1 ( Marks: 1 ) - Please choose one One difference LISP and PROLOG is. AI Puzzle Game All f the given
MUHAMMAD FAISAL MIT 4 th Semester Al-Barq Campus (VGJW01) Gujranwala faisalgrw123@gmail.com MEGA File Solved MCQ s For Final TERM EXAMS CS508- Modern Programming Languages Question No: 1 ( Marks: 1 ) -
More informationG Programming Languages Spring 2010 Lecture 9. Robert Grimm, New York University
G22.2110-001 Programming Languages Spring 2010 Lecture 9 Robert Grimm, New York University 1 Review Last week Modules 2 Outline Classes Encapsulation and Inheritance Initialization and Finalization Dynamic
More informationA process. the stack
A process Processes Johan Montelius What is a process?... a computation KTH 2017 a program i.e. a sequence of operations a set of data structures a set of registers means to interact with other processes
More informationConstructors for classes
Constructors for Comp Sci 1570 Introduction to C++ Outline 1 2 3 4 5 6 7 C++ supports several basic ways to initialize i n t nvalue ; // d e c l a r e but not d e f i n e nvalue = 5 ; // a s s i g n i
More informationCS201 - Introduction to Programming Glossary By
CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with
More informationEMBEDDED SYSTEMS PROGRAMMING Android NDK
EMBEDDED SYSTEMS PROGRAMMING 2014-15 Android NDK WHAT IS THE NDK? The Android NDK is a set of cross-compilers, scripts and libraries that allows to embed native code into Android applications Native code
More informationA Method-Based Ahead-of-Time Compiler For Android Applications
A Method-Based Ahead-of-Time Compiler For Android Applications Fatma Deli Computer Science & Software Engineering University of Washington Bothell November, 2012 2 Introduction This paper proposes a method-based
More informationLecture 5 Vertex and Fragment Shaders-1. CITS3003 Graphics & Animation
Lecture 5 Vertex and Fragment Shaders-1 CITS3003 Graphics & Animation E. Angel and D. Shreiner: Interactive Computer Graphics 6E Addison-Wesley 2012 Objectives The rendering pipeline and the shaders Data
More informationData Types. (with Examples In Haskell) COMP 524: Programming Languages Srinivas Krishnan March 22, 2011
Data Types (with Examples In Haskell) COMP 524: Programming Languages Srinivas Krishnan March 22, 2011 Based in part on slides and notes by Bjoern 1 Brandenburg, S. Olivier and A. Block. 1 Data Types Hardware-level:
More information엄현상 (Eom, Hyeonsang) School of Computer Science and Engineering Seoul National University COPYRIGHTS 2017 EOM, HYEONSANG ALL RIGHTS RESERVED
엄현상 (Eom, Hyeonsang) School of Computer Science and Engineering Seoul National University COPYRIGHTS 2017 EOM, HYEONSANG ALL RIGHTS RESERVED Outline - Questionnaire Results - Java Overview - Java Examples
More informationIntroduction to Java
Introduction to Java Module 1: Getting started, Java Basics 22/01/2010 Prepared by Chris Panayiotou for EPL 233 1 Lab Objectives o Objective: Learn how to write, compile and execute HelloWorld.java Learn
More informationLecture 5 - NDK Integration (JNI)
Lecture 5 - NDK Integration (JNI) This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/
More informationA- Core Java Audience Prerequisites Approach Objectives 1. Introduction
OGIES 6/7 A- Core Java The Core Java segment deals with the basics of Java. It is designed keeping in mind the basics of Java Programming Language that will help new students to understand the Java language,
More informationAssumptions. History
Assumptions A Brief Introduction to Java for C++ Programmers: Part 1 ENGI 5895: Software Design Faculty of Engineering & Applied Science Memorial University of Newfoundland You already know C++ You understand
More information3.Constructors and Destructors. Develop cpp program to implement constructor and destructor.
3.Constructors and Destructors Develop cpp program to implement constructor and destructor. Constructors A constructor is a special member function whose task is to initialize the objects of its class.
More informationLab5. Wooseok Kim
Lab5 Wooseok Kim wkim3@albany.edu www.cs.albany.edu/~wooseok/201 Question Answer Points 1 A or B 8 2 A 8 3 D 8 4 20 5 for class 10 for main 5 points for output 5 D or E 8 6 B 8 7 1 15 8 D 8 9 C 8 10 B
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 informationObject Oriented Programming. Solved MCQs - Part 2
Object Oriented Programming Solved MCQs - Part 2 Object Oriented Programming Solved MCQs - Part 2 It is possible to declare as a friend A member function A global function A class All of the above What
More informationMobile MOUSe JAVA2 FOR PROGRAMMERS ONLINE COURSE OUTLINE
Mobile MOUSe JAVA2 FOR PROGRAMMERS ONLINE COURSE OUTLINE COURSE TITLE JAVA2 FOR PROGRAMMERS COURSE DURATION 14 Hour(s) of Interactive Training COURSE OVERVIEW With the Java2 for Programmers course, anyone
More informationG Programming Languages - Fall 2012
G22.2110-003 Programming Languages - Fall 2012 Lecture 12 Thomas Wies New York University Review Last lecture Modules Outline Classes Encapsulation and Inheritance Initialization and Finalization Dynamic
More informationObject Class. EX: LightSwitch Class. Basic Class Concepts: Parts. CS257 Computer Science II Kevin Sahr, PhD. Lecture 5: Writing Object Classes
1 CS257 Computer Science II Kevin Sahr, PhD Lecture 5: Writing Object Classes Object Class 2 objects are the basic building blocks of programs in Object Oriented Programming (OOP) languages objects consist
More informationOperating Systems 2 nd semester 2016/2017. Chapter 4: Threads
Operating Systems 2 nd semester 2016/2017 Chapter 4: Threads Mohamed B. Abubaker Palestine Technical College Deir El-Balah Note: Adapted from the resources of textbox Operating System Concepts, 9 th edition
More informationMPI: A Message-Passing Interface Standard
MPI: A Message-Passing Interface Standard Version 2.1 Message Passing Interface Forum June 23, 2008 Contents Acknowledgments xvl1 1 Introduction to MPI 1 1.1 Overview and Goals 1 1.2 Background of MPI-1.0
More informationSpecial Topics: Programming Languages
Lecture #23 0 V22.0490.001 Special Topics: Programming Languages B. Mishra New York University. Lecture # 23 Lecture #23 1 Slide 1 Java: History Spring 1990 April 1991: Naughton, Gosling and Sheridan (
More informationPESIT Bangalore South Campus
PESIT Bangalore South Campus 15CS45 : OBJECT ORIENTED CONCEPTS Faculty : Prof. Sajeevan K, Prof. Hanumanth Pujar Course Description: No of Sessions: 56 This course introduces computer programming using
More informationAgenda. CSE P 501 Compilers. Java Implementation Overview. JVM Architecture. JVM Runtime Data Areas (1) JVM Data Types. CSE P 501 Su04 T-1
Agenda CSE P 501 Compilers Java Implementation JVMs, JITs &c Hal Perkins Summer 2004 Java virtual machine architecture.class files Class loading Execution engines Interpreters & JITs various strategies
More informationCS3157: Advanced Programming. Outline
CS3157: Advanced Programming Lecture #12 Apr 3 Shlomo Hershkop shlomo@cs.columbia.edu 1 Outline Intro CPP Boring stuff: Language basics: identifiers, data types, operators, type conversions, branching
More informationIntroduction to Java. Lecture 1 COP 3252 Summer May 16, 2017
Introduction to Java Lecture 1 COP 3252 Summer 2017 May 16, 2017 The Java Language Java is a programming language that evolved from C++ Both are object-oriented They both have much of the same syntax Began
More informationLecture 1 - Introduction to Android
Lecture 1 - Introduction to Android This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/
More informationCore Java - SCJP. Q2Technologies, Rajajinagar. Course content
Core Java - SCJP Course content NOTE: For exam objectives refer to the SCJP 1.6 objectives. 1. Declarations and Access Control Java Refresher Identifiers & JavaBeans Legal Identifiers. Sun's Java Code
More informationProgramming Kotlin. Familiarize yourself with all of Kotlin s features with this in-depth guide. Stephen Samuel Stefan Bocutiu BIRMINGHAM - MUMBAI
Programming Kotlin Familiarize yourself with all of Kotlin s features with this in-depth guide Stephen Samuel Stefan Bocutiu BIRMINGHAM - MUMBAI Programming Kotlin Copyright 2017 Packt Publishing First
More informationAnd Even More and More C++ Fundamentals of Computer Science
And Even More and More C++ Fundamentals of Computer Science Outline C++ Classes Special Members Friendship Classes are an expanded version of data structures (structs) Like structs, the hold data members
More informationCS321 Languages and Compiler Design I. Winter 2012 Lecture 2
CS321 Languages and Compiler Design I Winter 2012 Lecture 2 1 A (RE-)INTRODUCTION TO JAVA FOR C++/C PROGRAMMERS Why Java? Developed by Sun Microsystems (now Oracle) beginning in 1995. Conceived as a better,
More informationAndroid System Development Training 4-day session
Android System Development Training 4-day session Title Android System Development Training Overview Understanding the Android Internals Understanding the Android Build System Customizing Android for a
More informationJaguar: Enabling Efficient Communication and I/O in Java
Jaguar: Enabling Efficient Communication and I/O in Java Matt Welsh and David Culler UC Berkeley Presented by David Hovemeyer Outline ' Motivation ' How it works ' Code mappings ' External objects ' Pre
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 informationSELF-STUDY. Glossary
SELF-STUDY 231 Glossary HTML (Hyper Text Markup Language - the language used to code web pages) tags used to embed an applet. abstract A class or method that is incompletely defined,
More informationInfrastructure Middleware (Part 3): Android Runtime Core & Native Libraries
Infrastructure Middleware (Part 3): Android Runtime Core & Native Libraries Douglas C. Schmidt d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Institute for Software Integrated Systems Vanderbilt
More informationCS 251 Intermediate Programming Methods and Classes
CS 251 Intermediate Programming Methods and Classes Brooke Chenoweth University of New Mexico Fall 2018 Methods An operation that can be performed on an object Has return type and parameters Method with
More informationCS 251 Intermediate Programming Methods and More
CS 251 Intermediate Programming Methods and More Brooke Chenoweth University of New Mexico Spring 2018 Methods An operation that can be performed on an object Has return type and parameters Method with
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 informationAdvanced use of the C language
Advanced use of the C language Content Why to use C language Differences from Java Object oriented programming in C Usage of C preprocessor Coding standards Compiler optimizations C99 and C11 Standards
More informationWhiz-Bang Graphics and Media Performance for Java Platform, Micro Edition (JavaME)
Whiz-Bang Graphics and Media Performance for Java Platform, Micro Edition (JavaME) Pavel Petroshenko, Sun Microsystems, Inc. Ashmi Bhanushali, NVIDIA Corporation Jerry Evans, Sun Microsystems, Inc. Nandini
More informationHSA Foundation! Advanced Topics on Heterogeneous System Architectures. Politecnico di Milano! Seminar Room (Bld 20)! 15 December, 2017!
Advanced Topics on Heterogeneous System Architectures HSA Foundation! Politecnico di Milano! Seminar Room (Bld 20)! 15 December, 2017! Antonio R. Miele! Marco D. Santambrogio! Politecnico di Milano! 2
More informationStackVsHeap SPL/2010 SPL/20
StackVsHeap Objectives Memory management central shared resource in multiprocessing RTE memory models that are used in Java and C++ services for Java/C++ programmer from RTE (JVM / OS). Perspectives of
More informationBringing Vulkan to VR. Cass Everitt, Oculus
Bringing Vulkan to VR Cass Everitt, Oculus A Presentation in Two Acts The Graphics-API-Agnostic Design of the VrApi The Vulkan-Samples atw Sample Family as Proving Grounds Act One The Graphics-API-Agnostic
More informationObject Oriented Programming. Assistant Lecture Omar Al Khayat 2 nd Year
Object Oriented Programming Assistant Lecture Omar Al Khayat 2 nd Year Syllabus Overview of C++ Program Principles of object oriented programming including classes Introduction to Object-Oriented Paradigm:Structures
More informationCS162: Introduction to Computer Science II. Primitive Types. Primitive types. Operations on primitive types. Limitations
CS162: Introduction to Computer Science II Primitive Types Java Fundamentals 1 2 Primitive types The eight primitive types in Java Primitive types: byte, short, int, long, float, double, char, boolean
More informationLecture 08. Android Permissions Demystified. Adrienne Porter Felt, Erika Chin, Steve Hanna, Dawn Song, David Wagner. Operating Systems Practical
Lecture 08 Android Permissions Demystified Adrienne Porter Felt, Erika Chin, Steve Hanna, Dawn Song, David Wagner Operating Systems Practical 20 November, 2013 OSP Lecture 08, Android Permissions Demystified
More informationINTRODUCTION TO.NET. Domain of.net D.N.A. Architecture One Tier Two Tier Three Tier N-Tier THE COMMON LANGUAGE RUNTIME (C.L.R.)
INTRODUCTION TO.NET Domain of.net D.N.A. Architecture One Tier Two Tier Three Tier N-Tier THE COMMON LANGUAGE RUNTIME (C.L.R.) CLR Architecture and Services The.Net Intermediate Language (IL) Just- In-
More informationNext Generation Visual Computing
Next Generation Visual Computing (Making GPU Computing a Reality with Mali ) Taipei, 18 June 2013 Roberto Mijat ARM Addressing Computational Challenges Trends Growing display sizes and resolutions Increasing
More informationDOT NET Syllabus (6 Months)
DOT NET Syllabus (6 Months) THE COMMON LANGUAGE RUNTIME (C.L.R.) CLR Architecture and Services The.Net Intermediate Language (IL) Just- In- Time Compilation and CLS Disassembling.Net Application to IL
More informationInternet Application Developer
Internet Application Developer SUN-Java Programmer Certification Building a Web Presence with XHTML & XML 5 days or 12 evenings $2,199 CBIT 081 J A V A P R O G R A M M E R Fundamentals of Java and Object
More information