Renderscript. Lecture May Android Native Development Kit. NDK Renderscript, Lecture 10 1/41

Size: px
Start display at page:

Download "Renderscript. Lecture May Android Native Development Kit. NDK Renderscript, Lecture 10 1/41"

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.

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 information

Introduction. Lecture 1. Operating Systems Practical. 5 October 2016

Introduction. 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 information

Introduction to Programming Using Java (98-388)

Introduction 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 information

Stream Computing using Brook+

Stream 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 information

Lecture 1 Introduction to Android. App Development for Mobile Devices. App Development for Mobile Devices. Announcement.

Lecture 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 information

15CS45 : OBJECT ORIENTED CONCEPTS

15CS45 : 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 information

NDK Integration (JNI)

NDK 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 information

Operating 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 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 information

Code Generation for Embedded Heterogeneous Architectures on Android

Code 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 information

CUDA. Schedule API. Language extensions. nvcc. Function type qualifiers (1) CUDA compiler to handle the standard C extensions.

CUDA. 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 information

Java for Programmers Course (equivalent to SL 275) 36 Contact Hours

Java 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 information

Index. object lifetimes, and ownership, use after change by an alias errors, use after drop errors, BTreeMap, 309

Index. 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 information

Android Internals and the Dalvik VM!

Android 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 information

VALLIAMMAI ENGINEERING COLLEGE

VALLIAMMAI 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 information

OpenCL C. Matt Sellitto Dana Schaa Northeastern University NUCAR

OpenCL 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 information

Faust Android API. Using This Package

Faust 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 information

Weiss Chapter 1 terminology (parenthesized numbers are page numbers)

Weiss 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 information

Chapter 1 INTRODUCTION SYS-ED/ COMPUTER EDUCATION TECHNIQUES, INC.

Chapter 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 information

Core JAVA Training Syllabus FEE: RS. 8000/-

Core 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 information

CS313D: ADVANCED PROGRAMMING LANGUAGE

CS313D: 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 information

OpenACC Course. Office Hour #2 Q&A

OpenACC 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 information

Renderscript 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. 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 information

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on

Chapter 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 information

Porting 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. 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 information

CS313D: ADVANCED PROGRAMMING LANGUAGE

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 information

Take GPU Processing Power Beyond Graphics with Mali GPU Computing

Take 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 information

Compositional C++ Page 1 of 17

Compositional 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 information

CUDA Programming Model

CUDA 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 information

Course Description. Learn To: : Intro to JAVA SE7 and Programming using JAVA SE7. Course Outline ::

Course 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 information

CSE 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 /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 information

Introduction to Mobile Development

Introduction 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 information

Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub

Graphical 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 information

Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.

Chapter 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 information

Cross-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 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 information

MATLAB to iphone Made Easy

MATLAB 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 information

Field Analysis. Last time Exploit encapsulation to improve memory system performance

Field 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 information

Lecture Contents CS313D: ADVANCED PROGRAMMING LANGUAGE

Lecture 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 information

NDK OVERVIEW OF THE ANDROID NATIVE DEVELOPMENT KIT

NDK 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 information

Java: framework overview and in-the-small features

Java: 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 information

Syllabus- Java + Android. Java Fundamentals

Syllabus- 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 information

CS313D: ADVANCED PROGRAMMING LANGUAGE

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 information

Android System Development Day-4. Team Emertxe

Android 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 information

Pace University. Fundamental Concepts of CS121 1

Pace 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 information

Processes. Johan Montelius KTH

Processes. 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 information

CS260 Intro to Java & Android 04.Android Intro

CS260 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 information

Short Notes of CS201

Short 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 information

Multiple Choice Questions. Chapter 5

Multiple 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 information

Question No: 1 ( Marks: 1 ) - Please choose one One difference LISP and PROLOG is. AI Puzzle Game All f the given

Question 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 information

G Programming Languages Spring 2010 Lecture 9. Robert Grimm, New York University

G 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 information

A process. the stack

A 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 information

Constructors for classes

Constructors 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 information

CS201 - Introduction to Programming Glossary By

CS201 - 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 information

EMBEDDED SYSTEMS PROGRAMMING Android NDK

EMBEDDED 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 information

A Method-Based Ahead-of-Time Compiler For Android Applications

A 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 information

Lecture 5 Vertex and Fragment Shaders-1. CITS3003 Graphics & Animation

Lecture 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 information

Data 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 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 엄현상 (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 information

Introduction to Java

Introduction 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 information

Lecture 5 - NDK Integration (JNI)

Lecture 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 information

A- Core Java Audience Prerequisites Approach Objectives 1. Introduction

A- 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 information

Assumptions. History

Assumptions. 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 information

3.Constructors and Destructors. Develop cpp program to implement constructor and destructor.

3.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 information

Lab5. Wooseok Kim

Lab5. 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 information

CS558 Programming Languages

CS558 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 information

Object Oriented Programming. Solved MCQs - Part 2

Object 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 information

Mobile MOUSe JAVA2 FOR PROGRAMMERS ONLINE COURSE OUTLINE

Mobile 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 information

G Programming Languages - Fall 2012

G 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 information

Object Class. EX: LightSwitch Class. Basic Class Concepts: Parts. CS257 Computer Science II Kevin Sahr, PhD. Lecture 5: Writing Object Classes

Object 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 information

Operating Systems 2 nd semester 2016/2017. Chapter 4: Threads

Operating 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 information

MPI: A Message-Passing Interface Standard

MPI: 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 information

Special Topics: Programming Languages

Special 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 information

PESIT Bangalore South Campus

PESIT 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 information

Agenda. 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 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 information

CS3157: Advanced Programming. Outline

CS3157: 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 information

Introduction to Java. Lecture 1 COP 3252 Summer May 16, 2017

Introduction 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 information

Lecture 1 - Introduction to Android

Lecture 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 information

Core Java - SCJP. Q2Technologies, Rajajinagar. Course content

Core 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 information

Programming 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 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 information

And Even More and More C++ Fundamentals of Computer Science

And 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 information

CS321 Languages and Compiler Design I. Winter 2012 Lecture 2

CS321 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 information

Android System Development Training 4-day session

Android 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 information

Jaguar: Enabling Efficient Communication and I/O in Java

Jaguar: 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 information

Sample Copy. Not for Distribution.

Sample 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 information

SELF-STUDY. Glossary

SELF-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 information

Infrastructure Middleware (Part 3): Android Runtime Core & Native Libraries

Infrastructure 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 information

CS 251 Intermediate Programming Methods and Classes

CS 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 information

CS 251 Intermediate Programming Methods and More

CS 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 information

High-Level Language VMs

High-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 information

Advanced use of the C language

Advanced 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 information

Whiz-Bang Graphics and Media Performance for Java Platform, Micro Edition (JavaME)

Whiz-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 information

HSA Foundation! Advanced Topics on Heterogeneous System Architectures. Politecnico di Milano! Seminar Room (Bld 20)! 15 December, 2017!

HSA 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 information

StackVsHeap SPL/2010 SPL/20

StackVsHeap 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 information

Bringing Vulkan to VR. Cass Everitt, Oculus

Bringing 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 information

Object Oriented Programming. Assistant Lecture Omar Al Khayat 2 nd Year

Object 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 information

CS162: Introduction to Computer Science II. Primitive Types. Primitive types. Operations on primitive types. Limitations

CS162: 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 information

Lecture 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 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 information

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.)

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.) 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 information

Next Generation Visual Computing

Next 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 information

DOT NET Syllabus (6 Months)

DOT 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 information

Internet Application Developer

Internet 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