Remote Debugging and Reflection in Resource Constrained Devices. Nikolaos Papoulias - December 2013

Size: px
Start display at page:

Download "Remote Debugging and Reflection in Resource Constrained Devices. Nikolaos Papoulias - December 2013"

Transcription

1 Remote Debugging and Reflection in Resource Constrained Devices Nikolaos Papoulias - December 2013! 1

2 Outline Introduction Related Work Contributions Implementation Validation Conclusion & Future Work 2

3 Context - Constrained Devices Cannot locally support an IDE & Dev-Tools Have different HW/SW Configurations from Dev-Machines 3

4 Context - Debugging Constrained Devices Emulators Post-Mortem Analysis Developer's end 5 1 Coding / Compilation Deployment 4 2 Target Devices Execution 3 Post-mortem analysis Log Collection Logging 4

5 Context - Debugging Constrained Devices Developer's end Target Devices Coding / Compilation 2 Deployment Emulators 1 4 Inspection 3 Post-Mortem Analysis Execution 5 Action / Modification Remote Debugging 5

6 Remote Debugging Is a solution that is distributed in a nature: Impact on productivity due to re-deployments [ZeroTurnAround 2011] Lacks facilities otherwise available in a local setting (e.g O-Centric Debugging [Ressia 2012b]) 6

7 Research Questions What are the properties of an ideal remote debugging solution? Given these properties which model for remote debugging can exhibit them? What are the trade-offs between this ideal model and a real world implementation? 7

8 Thesis Statement - Properties An ideal remote debugging solution should support Interactiveness Instrumentation Distribution Security 8

9 Interactiveness the ability to incrementally update all parts of a remote application without losing the running context (i.e without stopping the application). Add/Rem Packages, Add/Rem Classes, Add/Rem Fields, Edit Hierarchy, Add/Rem Methods 9

10 Instrumentation the ability to alter the semantics of a running process in order to assist debugging Method/Statement Execution, Class Instantiation/Field Read/Write Object Read/Write/Send/Receive/Argument/Store/Interact 10

11 Distribution the ability of a debugging solution to adapt its framework while debugging a remote target No-Distribution / Fixed Middleware / Extensible Middleware / Adaptable Middleware 11

12 Security the availability of prerequisites for security mechanisms such as authentication and access restriction Internal / External / Target-Side / Client-Side 12

13 Outline Introduction Related Work Contributions Implementation Validation Conclusion & Future Work 13

14 Related Work - Overview JPDA.NET GDB DCE JREBEL SMALLTALK BIFROST Interactiveness (6) Instrumentation (13) Distribution (+++) Security (4)

15 Related Work - Overview JPDA.NET GDB DCE JREBEL SMALLTALK BIFROST (A) None of the 1 existing 1 1 solutions met all of our 4 4 criteria (B) But - reflective - debugging proved superior 0 to 0 other approaches in a local setting 15

16 Related Work - Overview JPDA.NET GDB DCE JREBEL SMALLTALK BIFROST (B) Since reflective 1debugging 1 1 proved superior to other 4approaches 4 5in a 4local setting (C) Investigate Remote 3 0 Reflection 0 Design Patterns 16

17 Remote Reflection System A Meta System System B Reflective System DATA DATA DISTRIBUTED-SELF-REPRESENTATION OF SYSTEM B PROGRAM PROGRAM Part of the world INTERPRETER INTERPRETER act upon represent Remote Proxy / Remote Facade / Mirrors 17

18 Mirrors - Explicit Meta-Objects Object ObjectMirror <<ObjectMirrorInterface>> getclass() anobject reflects on anobjectmirror Encapsulation Stratification Ont. Correspondance Mirror on: anobject Indirection 18

19 Design Patterns - Criteria Extensibility, Re-use Distribution Identity [Bracha 2010] Meta-recursion [Denker 2008] Mirrors can be seen as an extension to both the remote proxy and the remote facade patterns 19

20 Mirrors - Open Issues Mirrors and the Problem of State - debugging meta-information in cohesive language kernels Mirrors and Intercession - advanced instrumentation support while debugging 20

21 Outline Introduction Related Work Contributions Implementation Validation Conclusion & Future Work 21

22 Our Proposals MetaTalk Α solution to the problem of Reflective-Data [Maes 1987b] in the context of mirrors [Bracha 2004] The definition of a model for remote debugging that can exhibit the properties of: interactiveness, instrumentation distribution and security Mercury 22

23 Our Proposal MetaTalk From a language design perspective metaobjects should be both: Pluggable as mirrors are and State-Full as 3-KRS meta-objects 23

24 MetaTalk Kernel AbstractMirror Object AbstractMirror Class Mirror Object Class ObjectMirror ClassMirror Point Mirror on: apoint Mirror on: Object Mirror on: Point Mirror on: Class apoint BASE LEVEL META LEVEL 24

25 MetaTalk Implementation MetaTalk-VM is written in Pharo MetaTalk-Compiler relies on Petit-Parser Object-Model inspired by ObjVLisp 25

26 Our Proposals MetaTalk Α solution to the problem of Reflective-Data [Maes 1987b] in the context of mirrors [Bracha 2004] The definition of a model for remote debugging that can exhibit the properties of: interactiveness, instrumentation distribution and security Mercury 26

27 Overview Mercury 1 DEVELOPER'S END MODEL OF THE DEBUGGED APP DEBUGGER / IDE MIDDLEWARE TARGET DEBUGGED APPLICATION RUN-TIME DEBUGGING SUPPORT MIDDLEWARE Interactiveness - through a mirror-based remote meta-level that is causally connected to its target 27

28 Core Model Development Side Target Side Mirror * reflects on 1 Object Point ObjectMirror - rtmirror: RunTimeMirror + instvarat(anivname: String): ObjectMirror +... instance of - targetobject: Object... RunTimeMirror - runtime: RTDebuggingSupport + objectinstvarat(forobject: Object, anivname: String): ObjectMirror +... M I D D L E W A R E 1 1 RTSupport RunTimeDebuggingSupport + objectinstvarat(forobject: Object, anivname: String): Object +... instance of runtimedebuggingsupp ort mirroro napoint aruntime Mirror... apoint 28

29 Interactiveness (1) Structural Reflection Mirror - targetobject: Object ObjectMirror - rtmirror: RunTimeMirror + setclass(aclassmirror: ClassMirror): ClassMirror EnvironmentMirror + newpackagenamed(apackagename: String): PackageMirror + removepackagenamed(apackagename: String): PackageMirror PackageMirror + newclassnamed(aclassname: String): ClassMirror + removeclassnamed(aclassname: String): ClassMirror ClassMirror... + setsuperclass(aclassmirror: ClassMirror): ClassMirror + addinstvarname(anivname: String): ClassMirror + deleteinstvarname(anivname: String): ClassMirror + addmethod(methodname: String, source: String): MethodMirror + deletemethod(methodname: String): MethodMirror RunTimeMirror - runtime: RunTimeDebuggingSupport (2) Computational Reflection ExceptionMirror ProcessMirror ContextMirror + saveandcontinue (newsrc: String): ContextMirror MethodMirror + recompilewithsource(src: String): MethodMirror 29

30 Our Proposal - Overview DEVELOPER'S END MODEL OF THE DEBUGGED APP DEBUGGER / IDE MIDDLEWARE 2 TARGET DEBUGGED APPLICATION RUN-TIME DEBUGGING SUPPORT MIDDLEWARE Instrumentation - through reflective intercession by reifying the underlying execution environment 30

31 Instrumentation Target Side 1 RunTimeDebuggingSupport interpreter: Interpreter values: Dictionary<Object> objecthalt(): Object + objecthaltonreceive(): Object + objectonreceive(callback: LocalCallBack) + objectonreceive(callback: RemoteCallBack) 1 Interpreter basemetadict: Dictionary 1 1 MetaEnvironment 1 * ImplicitMetaObject - onreceive: Closure - onsend: Closure - onread: Closure - onwrite: Closure. * * Object * Closure LocalCallBack RemoteCallBack 31

32 Our Proposal - Overview DEVELOPER'S END MODEL OF THE DEBUGGED APP DEBUGGER / IDE MIDDLEWARE 3 TARGET DEBUGGED APPLICATION RUN-TIME DEBUGGING SUPPORT MIDDLEWARE Distribution - through an Adaptable Middleware 32

33 Distribution DistributionPolicy Marshaller Middleware Deamon Transporter 1 SecurityPolicy 1 33

34 Our Proposal - Overview DEVELOPER'S END TARGET MODEL OF THE DEBUGGED APP DEBUGGER / IDE MIDDLEWARE 4b 4a DEBUGGED APPLICATION RUN-TIME DEBUGGING SUPPORT MIDDLEWARE Security - security by decomposing and authenticating access to reflective facilities 34

35 Security Development Side SecurityPolicy 1 1 Process is invoked by uses a RemoteEnvironment Reflection + onenvironment(environmentaddress: RemoteEnvironment) : EnvironmentMirror - address: String Mirror - targetobject: Object IntrospectionMirrorForAPoint instance of EnvironmentIntrospectionMi rror EnvironmentIntercessionMir ror ObjectMirror - rtmirror: RunTimeMirror ObjectIntrospectionMirror + instvarat(anivname: String): ObjectIntrospectionMirror +... ObjectIntercessionMirror + instvaratput(anivname: String, avalue: ObjectIntercessionMirror): ObjectIntercessionMirror RunTimeMirror - runtime: RunTimeDebuggingSupport instance of IntrercessionMirrorForAPoint ProcessIntrospectionMirror ProcessIntercessionMirror 35

36 Comparison JPDA.NET GDB DCE JREBEL SMALLTALK BIFROST MERCURY Interactiveness (6) Instrumentation (13) Distribution (+++) Security (4)

37 Outline Introduction Related Work Contributions Implementation Validation Conclusion & Future Work 37

38 Implementation Overview Mercury-Core Seamless Mercury-Ui (Alexandria) MetaStackVM

39 Meta-Recursion - mstackvm Interpreter Ooops! on: MessageReceived for: anobject do: [:reifications anobject incrementmessagecounter. anobject perform: reifications selector witharguments: reifications arguments] 39

40 MetaStackVM - Reflectogram Interpreter on: MessageReceived for: anobject do: [:reifications :reflectogram reflectogram disable. anobject incrementmessagecounter. reflectogram enable. reflectogram returnvalue: reflectogram defaultaction] 40

41 MetaStackVM - Reflectogram Interpreter Reflectogram on: MessageReceived for: anobject +.. do: [:reifications + enable :reflectogram + reflectogram + removedisable. + anobject + defaultaction incrementmessagecounter. + returnvalue: reflectogram enable. + reflectogram + processmetalevel + objectmetalevel returnvalue: + reflectogram defaultaction] + obj:perform: 41

42 Implementation Trade-offs Supporting Interactiveness and Instrumentation Through Local Reflection Through Virtual-Machine support Through Byte-code manipulation 42

43 Benchmark Benchmark based on Tanter [Tanter 2003] Mercury No Instrumentation Disabled Instrumentation Enabled Instrumentation 1x 1x 35x 1x 1x 8x 43

44 Outline Introduction Related Work Contributions Implementation Validation Conclusion & Future Work 44

45 Experimental Setting Constraint Device (A) Phone WIFI: USB: PORT-FWD Galaxy Nexus - (1.2 GHz / 1GB RAM) Android 4.3 Constraint Device (B) Tablet WIFI: USB: PORT-FWD Galaxy Tab - (1.0 GHz / 1GB RAM) Android 4.0 Constraint Device (C) Remote Server ETH: HP Workstation - (2.3 GHz / 4GB RAM) Ubuntu over wifi / usb over wifi / usb over ethernet Mercury IDE Running Developer-Machine ETH: WIFI: USB: PORT-FWD Mac-Mini - (2.3 GHz / 4GB RAM) Ubuntu

46 Alexandria 46

47 Experimental Setting 47

48 Objectives Verify the applicability of Mercury for these constrained debugging targets. Illustrate how a debugging session benefits from Mercury s properties Case-Study I Remote Agile Debugging Case-Study II Remote Object Instrumentation 48

49 Remote Agile Debugging Suffix Bug Phone: /charger Tablet: /default.prop Server: /User/.profile-xmind-portable

50 Remote Agile Debugging nt Device (A) IFI: SB: PORT-FWD Galaxy Nexus - (1.2 GHz / 1GB RAM) Android 4.3 Constraint Device (B) Tablet WIFI: USB: PORT-FWD Galaxy Tab - (1.0 GHz / 1GB RAM) Android 4.0 Constraint Devic Remote Server HP W Ubunt TestCase TestCase over wifi / usb FileBrowserTest + suffixof: astring + testsuffixwithdot + testsuffixwithoutdot + testlongfilepath over wifi / usb FileBrowserTest + suffixof: astring + testsuffixwithdot + testsuffixwithoutdot + testlongfilepath TestCase FileBrowserTest + suffixof: over ethernet astring + testsuffixwithdot + testsuffixwithoutdot + testlongfilepath Mercury IDE 50

51 Remote Agile Debugging 51

52 Objectives Verify the applicability of Mercury for these constrained debugging targets. Illustrate how a debugging session benefits from Mercury s properties Case-Study I Remote Agile Debugging Case-Study II Remote Object Instrumentation 52

53 Remote Object Instrumentation Suffix Bug Phone: /charger Tablet: /default.prop Server: /User/.profile-xmind-portable FileDirectory dot 53

54 Remote Object Instrumentation 54

55 Remote Object Instrumentation 55

56 Results 56

57 Outline Introduction Related Work Contributions Implementation Validation Conclusion & Future Work 57

58 Summary - Contributions Identification of four desirable properties for remote debugging: interactiveness, instrumentation, distribution and security. The definition of a model for remote debugging (Mercury) that exhibits these desirable properties. A solution to the problem of Reflective-Data [Maes 1987b] in the context of mirrors [Bracha 2004] (MetaTalk) 58

59 Contributions The reification of a previously illustrative notion (that of the reflectogram [Tanter 2003]) Prototype implementation of our model for remote debugging in the context of reflective languages. Implementation of an adaptable middleware [David 2002] for supporting distribution (Seamless). Implementation of a dedicated VM for Pharo (MetaStackVM) for advanced intercession facilities. 59

60 Diffusion of Results Submitted/Published: Nikolaos Papoulias, Noury Bouraqadi, Marcus Denker, Stéphane Ducasse and Luc Fabresse. Towards Structural Decomposition of Reflection with Mirrors}. In Proceedings of International Workshop on Smalltalk Technologies (IWST 11), Edingburgh, United Kingdom, Conference Talk: Nikolaos Papoulias. Seamless -- Let a thousand systems bloom. 20th International Smalltalk Conference, Ghent, Belgium, To Be Submitted: Nikolaos Papoulias, Noury Bouraqadi, Luc Fabresse, Marcus Denker and Stéphane Ducasse. Mercury: Live Remote Debugging in Reflective Languages. To be submitted in The Journal of Object Technology. To Be Submitted: Nikolaos Papoulias, Stéphane Ducasse, Marcus Denker, Guillermo Pollito, Noury Bouraqadi and Luc Fabresse. MetaTalk: Designing a Language with a Pluggable Meta-Level. To be submitted in The Journal for Universal Computer Science. Invited Chapter: Nikolaos Papoulias. Seamless: an Adaptable Middleware Solution. Invited Chapter to be submitted for the forthcoming book Pharo in the Enterprise, by Square Bracket Associates. 60

61 Future Work Language and Virtual-Machine Debugging in the Same Model Integration of Automated Debugging Techniques (e.g delta-debugging) in Developer-Driven Debugging 61

62 Mercury Thank you! MetaTalk! Mercury-Core Mercury-Ui Seamless MetaStackVM (Alexandria) Nick Papoulias

63 Some time left? Groovy!! 63

64 Collaborations Seamless as a library for the Continuous integration services of Pharo. The MetaTalk model as a case-study for bootstraping OO - languages. Mercury integration with the PhaROS robotic middleware (on-going effort). 64

65 Design Patterns - Mirrors Explicit meta-object Abstract class / Interface Factory Facade and Bridge 65

66 Conditional Meta-Action [:reifications :reflectogram ] reifications trigger halt. reflectogram override: true; returnvalue: reflectogram defaultaction. 66

67 Seamless Initialization SeamlessDeamon class>>newdefaultwithglobalaccess ^ self new buildwithtransporterclass: SeamlessSocketStreamTransporter transcoderclass: SeamlessFuelTranscoder proxyclass: SeamlessFastDNUProxy garbagecollectorclass: SeamlessDefaultGarbageCollector andauthenticationmanager: ((SeamlessAuthenticationManager new) addgroup: [...] withpolicy: (SeamlessDistributionPolicy newwithentrypoint: [...] classestopassbyvalue: [...] classestopassbyshallowcopy: [...] andsecuritypolicy: (SeamlessSecurityPolicy newwithclassestopassbyreference: [..] classesnottoreference: [..] includingmessages: [...] excludingmessages: [...]); adduser: [...] withpassword: [...] ingroup: [...]). 67

68 Seamless UserGroup Seamless User Seamless DistributionPolicy Seamless SecurityPolicy Seamless Seamless AuthenticationManager SeamlessSession Seamless DistributionStrategy SeamlessDeamon Seamless ObjectTransporter Seamless Protocol Seamless ProcessManager Seamless DistributionTable SeamlessTransporter SeamlessTranscoder SeamlessConnection 68

69 JMercury - Our model on top of Java JPDA + DCE VM (Interactiveness) Reflex / ASM / JavaAssist (Instrumentation) Cajo Project (Distribution) Decomposed Hierarchy of Mirrors / Closer integration with SecurityManager (Security) 69

70 Emulators - Field Experience IPhone/Android emulators (different models - versions of OSes - gyroscopes - touch gestures...) Car-Team experience -- RoboShop 2013 Demo (unanticipated changes - people walking by - glass walls...) 70

End-User Abstractions for Meta-Control: Reifying the Reflectogram

End-User Abstractions for Meta-Control: Reifying the Reflectogram End-User Abstractions for Meta-Control: Reifying the Reflectogram Nick Papoulias, Marcus Denker, Stéphane Ducasse, Luc Fabresse To cite this version: Nick Papoulias, Marcus Denker, Stéphane Ducasse, Luc

More information

Linguistic Reflection Via Mirrors

Linguistic Reflection Via Mirrors Linguistic Reflection Via Mirrors Gilad Bracha Joint work with David Ungar 1 Reflection: Overview Reflection is the ability of a program to manipulate itself More than just metaprogramming Earliest Reflective

More information

Sista: Improving Cog s JIT performance. Clément Béra

Sista: Improving Cog s JIT performance. Clément Béra Sista: Improving Cog s JIT performance Clément Béra Main people involved in Sista Eliot Miranda Over 30 years experience in Smalltalk VM Clément Béra 2 years engineer in the Pharo team Phd student starting

More information

Run-Time Evolution through Explicit Meta-Objects

Run-Time Evolution through Explicit Meta-Objects Run-Time Evolution through Explicit Meta-Objects Jorge Ressia, Lukas Renggli, Tudor Gîrba and Oscar Nierstrasz Software Composition Group University of Bern Switzerland http://scg.unibe.ch Abstract. Software

More information

THESE. présentée en vue d obtenir le grade de DOCTEUR. Spécialité : informatique. par. Nikolaos Papoulias

THESE. présentée en vue d obtenir le grade de DOCTEUR. Spécialité : informatique. par. Nikolaos Papoulias N d ordre : 41342 THESE présentée en vue d obtenir le grade de DOCTEUR en Spécialité : informatique par Nikolaos Papoulias DOCTORAT DELIVRE CONJOINTEMENT PAR MINES DOUAI ET L UNIVERSITE DE LILLE 1 Titre

More information

Efficient Proxies in Smalltalk

Efficient Proxies in Smalltalk Efficient Proxies in Smalltalk Mariano Martinez Peck 12 Noury Bouraqadi 2 Marcus Denker 1 Stéphane Ducasse 1 Luc Fabresse 2 1 RMoD Project-Team, Inria Lille Nord Europe / Université de Lille 1 2 Université

More information

CAP - Advanced Programming Concepts

CAP - Advanced Programming Concepts Coordinating unit: 270 - FIB - Barcelona School of Informatics Teaching unit: 723 - CS - Department of Computer Science Academic year: Degree: 2017 BACHELOR'S DEGREE IN INFORMATICS ENGINEERING (Syllabus

More information

CAP - Advanced Programming Concepts

CAP - Advanced Programming Concepts Coordinating unit: 270 - FIB - Barcelona School of Informatics Teaching unit: 723 - CS - Department of Computer Science Academic year: Degree: 2018 BACHELOR'S DEGREE IN INFORMATICS ENGINEERING (Syllabus

More information

Object Spaces for Safe Image Surgery

Object Spaces for Safe Image Surgery Object Spaces for Safe Image Surgery Gwenaël Casaccio 1 Damien Pollet 1 Marcus Denker 2 Stéphane Ducasse 1 1 RMoD, INRIA Lille Nord Europe USTL LIFL CNRS UMR 8022 Lille, France 2 PLEIAD Laboratory, DCC

More information

The Art of Metaprogramming in Java. Falguni Vyas Dec 08, 2012

The Art of Metaprogramming in Java. Falguni Vyas Dec 08, 2012 The Art of Metaprogramming in Java Falguni Vyas Dec 08, 2012 Metadata What is Metadata? Data that describes other data Defined as data providing information about one or more aspects of the data, such

More information

Access Control to Reflection with Object Ownership

Access Control to Reflection with Object Ownership Access Control to Reflection with Object Ownership Camille Teruel, Stéphane Ducasse, Damien Cassou, Marcus Denker To cite this version: Camille Teruel, Stéphane Ducasse, Damien Cassou, Marcus Denker. Access

More information

PINOCCHIO: Bringing Reflection to Life with First-Class Interpreters

PINOCCHIO: Bringing Reflection to Life with First-Class Interpreters PINOCCHIO: Bringing Reflection to Life with First-Class Interpreters Toon Verwaest Camillo Bruni David Gurtner Adrian Lienhard Oscar Nierstrasz Software Composition Group, University of Bern, Switzerland

More information

TOWARD A METHODOLOGY TO TURN SMALLTALK CODE INTO FPGA

TOWARD A METHODOLOGY TO TURN SMALLTALK CODE INTO FPGA TOWARD A METHODOLOGY TO TURN SMALLTALK CODE INTO FPGA LE Xuan Sang 1,2 Loïc LAGADEC 1, Luc FABRESSE 2, Jannik LAVAL 2 and Noury BOURAQADI 2 1 Lab-STICC, ENSTA Bretagne 2 Institut Mines-Telecom, Mines Douai

More information

A simple reflective object kernel

A simple reflective object kernel A simple reflective object kernel S. Ducasse The Pharo Booklet Collection edited by S. Ducasse November 20, 2017 master @ d4e4b4f* Copyright 2017 by S. Ducasse. The contents of this book are protected

More information

Dynamic Object-Oriented Programming with Smalltalk 1. Introduction

Dynamic Object-Oriented Programming with Smalltalk 1. Introduction Dynamic Object-Oriented Programming with Smalltalk 1. Introduction Prof. O. Nierstrasz Autumn Semester 2009 LECTURE TITLE What is surprising about Smalltalk > Everything is an object > Everything happens

More information

Seamless: A Reflective Middleware for Pharo

Seamless: A Reflective Middleware for Pharo Seamless: A Reflective Middleware for Pharo Chapter 1 Seamless: A Reflective Middleware for Pharo Seamless 1 is a reflective communication middleware for Pharo that aims to facilitate the prototyping of

More information

Metamodeling and Metaprogramming Seminar

Metamodeling and Metaprogramming Seminar Metamodeling and Metaprogramming Seminar 1. Introduction Prof. O. Nierstrasz Spring Semester 2008 Metamodeling and Metaprogramming Seminar Lecturer: Assistant: WWW: Oscar Nierstrasz www.iam.unibe.ch/~oscar

More information

Object-Centric Reflection

Object-Centric Reflection Object-Centric Reflection Unifying Reflection and Bringing It Back to Objects Inauguraldissertation der Philosophisch-naturwissenschaftlichen Fakultät der Universität Bern vorgelegt von Jorge Ressia von

More information

FlexiNet. A flexible component oriented middleware system. Introduction. Architecting for Components. Richard Hayton, Andrew Herbert. APM Ltd.

FlexiNet. A flexible component oriented middleware system. Introduction. Architecting for Components. Richard Hayton, Andrew Herbert. APM Ltd. FlexiNet flexible component oriented middleware system Richard Hayton, ndrew Herbert. P Ltd. Introduction Generally, research middleware platforms have provided application programmers with facilities

More information

Separating Access Control Policy, Enforcement, and Functionality in Extensible Systems. Robert Grimm University of Washington

Separating Access Control Policy, Enforcement, and Functionality in Extensible Systems. Robert Grimm University of Washington Separating Access Control Policy, Enforcement, and Functionality in Extensible Systems Robert Grimm University of Washington Extensions Added to running system Interact through low-latency interfaces Form

More information

DEVELOPING APPS FOR. Note: This ebook relies on and uses information from the Google Glass Developers site.

DEVELOPING APPS FOR. Note: This ebook relies on and uses information from the Google Glass Developers site. DEVELOPING APPS FOR Note: This ebook relies on and uses information from the Google Glass Developers site. Table of Contents GLASS What is Google Glass? 3 Technology Basics.... 3 Design for Google Glass

More information

Detailed Design. Java Problem Repository & Education Platform JPREP

Detailed Design. Java Problem Repository & Education Platform JPREP Team Members: Luke Greiner Denis Kalic Abigail McCarthy Robert Tateo Nguyen Truong Patrick White Detailed Design Java Problem Repository & Education Platform JPREP Revision: 1.1 Date: 3/07/14 1 D e l t

More information

RCCola: Remote Controlled Cola

RCCola: Remote Controlled Cola RCCola: Remote Controlled Cola Takashi Yamamiya This material is based upon work supported in part by the National Science Foundation under Grant No. 0639876. Any opinions, findings, and conclusions or

More information

Virtualization Support for Dynamic Core Library Update

Virtualization Support for Dynamic Core Library Update Virtualization Support for Dynamic Core Library Update Guillermo Polito RMoD Project-Team, Inria Lille Nord Europe, France CAR Team, Institut Mines-Telecom, Mines Douai, France Stéphane Ducasse RMoD Project-Team,

More information

Object-Oriented Software Engineering Conquering Complex and Changing Systems. Chapter 6, System Design Lecture 1

Object-Oriented Software Engineering Conquering Complex and Changing Systems. Chapter 6, System Design Lecture 1 Object-Oriented Software Engineering Conquering Complex and Changing Systems Chapter 6, System Design Lecture 1 Design There are two ways of constructing a software design: One way is to make it so simple

More information

Cog VM Evolution. Clément Béra. Thursday, August 25, 16

Cog VM Evolution. Clément Béra. Thursday, August 25, 16 Cog VM Evolution Clément Béra Cog VM? Smalltalk virtual machine Default VM for Pharo Squeak Newspeak Cuis Cog Philosophy Open source (MIT) Simple Is the optimization / feature worth the added complexity?

More information

Chapter 9. Introduction to High-Level Language Programming. INVITATION TO Computer Science

Chapter 9. Introduction to High-Level Language Programming. INVITATION TO Computer Science Chapter 9 Introduction to High-Level Language Programming INVITATION TO Computer Science 1 Objectives After studying this chapter, students will be able to: Explain the advantages of high-level programming

More information

Distribution and Integration Technologies

Distribution and Integration Technologies Distribution and Integration Technologies Distributed Architectures Patterns and Styles 1 Distributed applications infrastructure ISP intranet wireless backbone desktop computer: server: laptops: tablets:

More information

Ghost: A Uniform and General-Purpose Proxy Implementation

Ghost: A Uniform and General-Purpose Proxy Implementation Ghost: A Uniform and General-Purpose Proxy Implementation Mariano Martinez Peck 1,2,, Noury Bouraqadi 2,, Luc Fabresse 2,, Marcus Denker 1,, Camille Teruel 1, Abstract A proxy object is a surrogate or

More information

Bootstrapping Reflective Systems: The Case of Pharo

Bootstrapping Reflective Systems: The Case of Pharo Bootstrapping Reflective Systems: The Case of Pharo Guillermo Polito, Stéphane Ducasse, Luc Fabresse, Noury Bouraqadi, Benjamin Van Ryseghem To cite this version: Guillermo Polito, Stéphane Ducasse, Luc

More information

Frustrated by all the hype?

Frustrated by all the hype? Fundamentals of Software Architecture Looking beyond the hype Markus Völter (voelter@acm.org) Introduction Frustrated by all the hype? If so this presentation is for you. Otherwise you should leave People

More information

OO design. Classes, Responsibilities, Collaborations (CRC) 13/9/1999 COSC

OO design. Classes, Responsibilities, Collaborations (CRC) 13/9/1999 COSC OO design Classes, Responsibilities, Collaborations (CRC) 1 bank accounts the system to be modelled: bank accounts with differing fee structures purpose: evaluate different account types with respect to

More information

Software Architecture

Software Architecture Software Architecture Does software architecture global design?, architect designer? Overview What is it, why bother? Architecture Design Viewpoints and view models Architectural styles Architecture asssessment

More information

Agilent GeneSpring Software

Agilent GeneSpring Software Agilent GeneSpring Software Installation Guide Quick Start Installation of Agilent GeneSpring 3 Detailed Instructions for Installing Agilent GeneSpring 5 Managing Licenses 19 Upgrading Agilent GeneSpring

More information

Dynamic Adaptability of Services in Enterprise JavaBeans Architecture

Dynamic Adaptability of Services in Enterprise JavaBeans Architecture 1. Introduction Dynamic Adaptability of Services in Enterprise JavaBeans Architecture Zahi Jarir *, Pierre-Charles David **, Thomas Ledoux ** zahijarir@ucam.ac.ma, {pcdavid, ledoux}@emn.fr (*) Faculté

More information

The Road to UML Virtual Machines

The Road to UML Virtual Machines The Road to UML Virtual Machines Dirk Riehle SKYVA International www.skyva.com dirk@riehle.org, www.riehle.org UML for Enterprises Workshop. Burlingame, CA: Dec 2001. Last updated. Copyright 2001 by Dirk

More information

Sub-method Structural and Behavioral Reflection

Sub-method Structural and Behavioral Reflection Sub-method Structural and Behavioral Reflection Inauguraldissertation der Philosophisch-naturwissenschaftlichen Fakultät der Universität Bern vorgelegt von Marcus Denker von Deutschland Leiter der Arbeit:

More information

Virtualization Support for Dynamic Core Library Update

Virtualization Support for Dynamic Core Library Update Virtualization Support for Dynamic Core Library Update Guillermo Polito, Stéphane Ducasse, Noury Bouraqadi, Luc Fabresse, Max Mattone To cite this version: Guillermo Polito, Stéphane Ducasse, Noury Bouraqadi,

More information

Prototyping Languages Related Constructs and Tools with Squeak

Prototyping Languages Related Constructs and Tools with Squeak Prototyping Languages Related Constructs and Tools with Squeak Alexandre Bergel Distributed Systems Group Dept. of Computer Science Trinity College Dublin 2, Ireland www.cs.tcd.ie/alexandre.bergel Marcus

More information

CHAPTER 2: SYSTEM STRUCTURES. By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

CHAPTER 2: SYSTEM STRUCTURES. By I-Chen Lin Textbook: Operating System Concepts 9th Ed. CHAPTER 2: SYSTEM STRUCTURES By I-Chen Lin Textbook: Operating System Concepts 9th Ed. Chapter 2: System Structures Operating System Services User Operating System Interface System Calls Types of System

More information

Xcode and Swift CS 4720 Mobile Application Development

Xcode and Swift CS 4720 Mobile Application Development Xcode and Swift Mobile Application Development Why Java for Android? Let s first recap: why do you think Android uses Java? 2 Why Java for Android? Some good reasons: You can t find a CS major that doesn

More information

Reflective Programming and Open Implementations. Dr. Stéphane Ducasse

Reflective Programming and Open Implementations. Dr. Stéphane Ducasse Reflective Programming and Open Implementations Dr. Stéphane Ducasse ducasse@iam.unibe.ch http://www.iam.unibe.ch/~ducasse/ University of Bern 2000/2001 1. Reflective Programming and Open Implementations

More information

NSIGHT ECLIPSE EDITION

NSIGHT ECLIPSE EDITION NSIGHT ECLIPSE EDITION DG-06450-001 _v5.0 October 2012 Getting Started Guide TABLE OF CONTENTS Chapter 1. Introduction...1 1.1 About...1 Chapter 2. Using... 2 2.1 Installing... 2 2.1.1 Installing CUDA

More information

Architectural Design. Architectural Design. Software Architecture. Architectural Models

Architectural Design. Architectural Design. Software Architecture. Architectural Models Architectural Design Architectural Design Chapter 6 Architectural Design: -the design the desig process for identifying: - the subsystems making up a system and - the relationships between the subsystems

More information

Mobile Internet Devices and the Cloud

Mobile Internet Devices and the Cloud Mobile Internet Devices and the Cloud What Is a Smartphone? Mobile Operating Systems for Smartphones 1. iphone 2. Google (Android) 3. Blackberry 4. Windows Mobile 5. Ubuntu Mobile Internet Device (MID)

More information

Investigating F# as a development tool for distributed multi-agent systems

Investigating F# as a development tool for distributed multi-agent systems PROCEEDINGS OF THE WORKSHOP ON APPLICATIONS OF SOFTWARE AGENTS ISBN 978-86-7031-188-6, pp. 32-36, 2011 Investigating F# as a development tool for distributed multi-agent systems Extended abstract Alex

More information

Use vs. Inheritance. Learning Object-Oriented Programming and Design with TDD. Stéphane Ducasse.

Use vs. Inheritance. Learning Object-Oriented Programming and Design with TDD. Stéphane Ducasse. Learning Object-Oriented Programming and Design with TDD Use vs. Inheritance Stéphane Ducasse http://stephane.ducasse.free.fr http://www.pharo.org W6S06 W6S06 2 / 20 Outline An exercise Some criteria Solutions

More information

Speeding Up Robot Control Software Through Seamless Integration With FPGA

Speeding Up Robot Control Software Through Seamless Integration With FPGA Speeding Up Robot Control Software Through Seamless Integration With Xuan Sang LE 1,2, Luc Fabresse 1, Jannik Laval 3, Jean-Christophe Le Lann 2, Loic Lagadec 2 and Noury Bouraqadi 1 1 Mines Douai-DIA,

More information

Ryan Sciampacone Senior Software Developer August 1 st Multitenant JVM. JVM Languages Summit IBM Corporation

Ryan Sciampacone Senior Software Developer August 1 st Multitenant JVM. JVM Languages Summit IBM Corporation Ryan Sciampacone Senior Software Developer August 1 st 2012 Multitenant JVM JVM Languages Summit 2012 Important Disclaimers THE INFORMATION CONTAINED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL

More information

Wireless Collaboration.

Wireless Collaboration. Wireless Collaboration. Connect. Work. Share. www.novoconnect.eu Transform your conference room into a true collaborative space. NovoConnect Solution Features Summary: Simple & Easy to Connect Discussion

More information

What are some common categories of system calls? What are common ways of structuring an OS? What are the principles behind OS design and

What are some common categories of system calls? What are common ways of structuring an OS? What are the principles behind OS design and What are the services provided by an OS? What are system calls? What are some common categories of system calls? What are the principles behind OS design and implementation? What are common ways of structuring

More information

CORBA (Common Object Request Broker Architecture)

CORBA (Common Object Request Broker Architecture) CORBA (Common Object Request Broker Architecture) René de Vries (rgv@cs.ru.nl) Based on slides by M.L. Liu 1 Overview Introduction / context Genealogical of CORBA CORBA architecture Implementations Corba

More information

Getting Started with the ArcGIS Mobile APIs. Kris Bezdecny, David Martinez Andy Gup, David Cardella

Getting Started with the ArcGIS Mobile APIs. Kris Bezdecny, David Martinez Andy Gup, David Cardella Getting Started with the ArcGIS Mobile APIs Kris Bezdecny, David Martinez Andy Gup, David Cardella Agenda Overview ArcGIS for - ios - Windows Phone - Android Wrap up - Q and A What is mobile GIS? Extends

More information

Enabling Cross-Platform File Replication with Data Integrity

Enabling Cross-Platform File Replication with Data Integrity Enabling Cross-Platform File Replication with Data Integrity Cross Platform Support Computers on your Local Area Network are discovered automatically, thereby streamlining your installation process. Network

More information

RAMSES: a Reflective Middleware for Software Evolution

RAMSES: a Reflective Middleware for Software Evolution RAMSES: a Reflective Middleware for Software Evolution Walter Cazzola 1, Ahmed Ghoneim 2, and Gunter Saake 2 1 Department of Informatics and Communication, Università degli Studi di Milano, Italy cazzola@dico.unimi.it

More information

CSCE 314 TAMU Fall CSCE 314: Programming Languages Dr. Flemming Andersen. Java Reflection

CSCE 314 TAMU Fall CSCE 314: Programming Languages Dr. Flemming Andersen. Java Reflection CSCE 314 TAMU Fall 2017 1 CSCE 314: Programming Languages Dr. Flemming Andersen Java Reflection CSCE 314 TAMU Fall 2017 Reflection and Metaprogramming Metaprogramming: Writing (meta)programs that represent

More information

Report Exec Dispatch System Specifications

Report Exec Dispatch System Specifications Report Exec Dispatch System Specifications Contents Overview... 2 Technical Support... 2 At a Glance... 2 Report Exec Systems Diagram... 3 Server Specifications... 4 Server OS... 4 Microsoft SQL Server...

More information

Agilent GeneSpring Software

Agilent GeneSpring Software Agilent GeneSpring Software Installation Guide Quick Start Installation of Agilent GeneSpring 3 Detailed Instructions for Installing Agilent GeneSpring 5 Managing Licenses 16 Upgrading Agilent GeneSpring

More information

Scripting Browsers. Philipp Bunge, Tudor Gîrba, Lukas Renggli, Jorge Ressia, David Röthlisberger

Scripting Browsers. Philipp Bunge, Tudor Gîrba, Lukas Renggli, Jorge Ressia, David Röthlisberger Scripting Browsers Philipp Bunge, Tudor Gîrba, Lukas Renggli, Jorge Ressia, David Röthlisberger Software Composition Group, University of Bern, Switzerland 1 Glamour in a Nutshell Browsers are crucial

More information

Combined Object-Lambda Architectures

Combined Object-Lambda Architectures www.jquigley.com jquigley#jquigley.com Chicago Lisp April 2008 Research Goals System Goals Conventional Systems Unconventional Systems Research Goals Question: How to make with Pepsi and Coke? The Goal:

More information

SEEDAndroid User Manual

SEEDAndroid User Manual SEEDAndroid User Manual Copyright 2016 Wenliang Du, Syracuse University. All rights reserved. ATTENTION: Before using the Android VM, please at least read Section 3.1 about how to release the mouse pointer.

More information

5/9/2014. Recall the design process. Lecture 1. Establishing the overall structureof a software system. Topics covered

5/9/2014. Recall the design process. Lecture 1. Establishing the overall structureof a software system. Topics covered Topics covered Chapter 6 Architectural Design Architectural design decisions Architectural views Architectural patterns Application architectures Lecture 1 1 2 Software architecture The design process

More information

Chapter 2: Operating-System Structures

Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs Operating System

More information

Hermion - Exploiting the Dynamics of Software

Hermion - Exploiting the Dynamics of Software Hermion - Exploiting the Dynamics of Software Authors: David Röthlisberger, Orla Greevy, and Oscar Nierstrasz Affiliation: Software Composition Group, University of Bern, Switzerland Homepage: http://scg.iam.unibe.ch/research/hermion

More information

Dart. Gilad Bracha for the Dart Team

Dart. Gilad Bracha for the Dart Team Dart Gilad Bracha for the Dart Team Part I: Overview Why Dart? We want to improve the state of the art of Web Programming Web Programming Web Programming has huge Advantages: 1. Zero-install 2. Automatic

More information

UP Requirements. Software Design - Dr Eitan Hadar (c) Activities of greater emphasis in this book. UP Workflows. Business Modeling.

UP Requirements. Software Design - Dr Eitan Hadar (c) Activities of greater emphasis in this book. UP Workflows. Business Modeling. UP Requirements UP Workflows Business Modeling Requirements Analysis and Design Implementation Test Deployment Configuration & Change Management Project Management Environment Iterations Activities of

More information

CSCE 314 Programming Languages

CSCE 314 Programming Languages CSCE 314 Programming Languages! Reflection Dr. Hyunyoung Lee! 1 Reflection and Metaprogramming Metaprogramming: Writing (meta)programs that represent and manipulate other programs Reflection: Writing (meta)programs

More information

The Road to Object Orientation Operating Systems Object Planes. Object Planes. David Chisnall. March 25, 2010

The Road to Object Orientation Operating Systems Object Planes. Object Planes. David Chisnall. March 25, 2010 March 25, 2010 The Road to Object Orientation Evolving Abstractions for Decomposition Introducing Object Orientation The Problem with Object Orientation The R[Pleaseinsertintopreamble]le of Operating System

More information

An Eclipse-based Integrated Environment for Developing Executable Structural Operational Semantics Specifications

An Eclipse-based Integrated Environment for Developing Executable Structural Operational Semantics Specifications SOS 2006 Preliminary Version An Eclipse-based Integrated Environment for Developing Executable Structural Operational Semantics Specifications Adrian Pop 1,2 Peter Fritzson 3 Programming Environments Laboratory

More information

BEAMJIT, a Maze of Twisty Little Traces

BEAMJIT, a Maze of Twisty Little Traces BEAMJIT, a Maze of Twisty Little Traces A walk-through of the prototype just-in-time (JIT) compiler for Erlang. Frej Drejhammar 130613 Who am I? Senior researcher at the Swedish Institute

More information

g-eclipse A Framework for Accessing Grid Infrastructures Nicholas Loulloudes Trainer, University of Cyprus (loulloudes.n_at_cs.ucy.ac.

g-eclipse A Framework for Accessing Grid Infrastructures Nicholas Loulloudes Trainer, University of Cyprus (loulloudes.n_at_cs.ucy.ac. g-eclipse A Framework for Accessing Grid Infrastructures Trainer, University of Cyprus (loulloudes.n_at_cs.ucy.ac.cy) EGEE Training the Trainers May 6 th, 2009 Outline Grid Reality The Problem g-eclipse

More information

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

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edition Chapter 2: Operating-System Structures Silberschatz, Galvin and Gagne 2013 Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System

More information

TDDI04, K. Arvidsson, IDA, Linköpings universitet Operating System Structures. Operating System Structures Overview. Operating System Services

TDDI04, K. Arvidsson, IDA, Linköpings universitet Operating System Structures. Operating System Structures Overview. Operating System Services TDDI04 Concurrent Programming, Operating Systems, and Real-time Operating Systems Operating System Structures [SGG7] Chapter 2 Copyright Notice: The lecture notes are mainly based on Silberschatz s, Galvin

More information

Chapter 2: Operating-System Structures

Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs Operating System

More information

Chapter 2. Operating-System Structures

Chapter 2. Operating-System Structures Chapter 2 Operating-System Structures 2.1 Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs Operating System

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

Creating and Running Mobile Agents with XJ DOME

Creating and Running Mobile Agents with XJ DOME Creating and Running Mobile Agents with XJ DOME Kirill Bolshakov, Andrei Borshchev, Alex Filippoff, Yuri Karpov, and Victor Roudakov Distributed Computing & Networking Dept. St.Petersburg Technical University

More information

CMSC 628: Introduction to Mobile Computing

CMSC 628: Introduction to Mobile Computing CMSC 628: Introduction to Mobile Computing Nilanjan Banerjee University of Maryland Baltimore County nilanb@umbc.edu http://www.csee.umbc.edu/~nilanb/teaching/628/ Introduction to Mobile Computing 1 Why

More information

CS 575: Software Design

CS 575: Software Design CS 575: Software Design Introduction 1 Software Design A software design is a precise description of a system, using a variety of different perspectives Structural Behavioral Packaging Requirements, Test/Validation

More information

Method-Level Phase Behavior in Java Workloads

Method-Level Phase Behavior in Java Workloads Method-Level Phase Behavior in Java Workloads Andy Georges, Dries Buytaert, Lieven Eeckhout and Koen De Bosschere Ghent University Presented by Bruno Dufour dufour@cs.rutgers.edu Rutgers University DCS

More information

Final Exam. Final Exam Review. Ch 1: Introduction: Object-oriented analysis, design, implementation. Exam Format

Final Exam. Final Exam Review. Ch 1: Introduction: Object-oriented analysis, design, implementation. Exam Format Final Exam Final Exam Review CS 4354 Fall 2012 Jill Seaman Friday, December 14, 11AM Closed book, closed notes, clean desk Content: Textbook: Chapters 1, 2, 4-10 Java Lectures, GRASP + JUnit 35% of your

More information

AccessVia Publishing Platform

AccessVia Publishing Platform AccessVia Publishing Platform Technical Specifications Publishing Platform Manager Version: 8.6.x Written by: Product Documentation, R&D Date: May 2014 2014 Perceptive Software. All rights reserved Perceptive

More information

WHY APPLICATIONS ARE STILL DRAINING OUR BATTERIES and how we can help. Aaron Schulman & Sachin Katti

WHY APPLICATIONS ARE STILL DRAINING OUR BATTERIES and how we can help. Aaron Schulman & Sachin Katti WHY APPLICATIONS ARE STILL DRAINING OUR BATTERIES and how we can help. Aaron Schulman & Sachin Katti We cannot rely on improvements in battery technology In past 30 years: only 4x improvement in energy

More information

Bugloo: A Source Level Debugger for Scheme Programs Compiled into JVM Bytecode

Bugloo: A Source Level Debugger for Scheme Programs Compiled into JVM Bytecode Bugloo: A Source Level Debugger for Scheme Programs Compiled into JVM Bytecode Damien Ciabrini Manuel Serrano firstname.lastname@sophia.inria.fr INRIA Sophia Antipolis 2004 route des Lucioles - BP 93 F-06902

More information

Introduction to Embedded Systems

Introduction to Embedded Systems Introduction to Embedded Systems Minsoo Ryu Hanyang University Outline 1. Definition of embedded systems 2. History and applications 3. Characteristics of embedded systems Purposes and constraints User

More information

Real Time: Understanding the Trade-offs Between Determinism and Throughput

Real Time: Understanding the Trade-offs Between Determinism and Throughput Real Time: Understanding the Trade-offs Between Determinism and Throughput Roland Westrelin, Java Real-Time Engineering, Brian Doherty, Java Performance Engineering, Sun Microsystems, Inc TS-5609 Learn

More information

9 th CA 2E/CA Plex Worldwide Developer Conference 1

9 th CA 2E/CA Plex Worldwide Developer Conference 1 1 Introduction/Welcome Message Organizations that are making major changes to or replatforming an application need to dedicate considerable resources ot the QA effort. In this session we will show best

More information

Porting of Real-Time Publish-Subscribe Middleware to Android

Porting of Real-Time Publish-Subscribe Middleware to Android M.Vajnar, M. Sojka, P. Píša Czech Technical University in Prague Porting of Real-Time Publish-Subscribe Middleware to Android RTLWS15, Lugano-Manno Distributed applications problems 2/23 Distributed applications

More information

EMC CAPTIVA. Capture-enable Your Mobile Applications with Ease

EMC CAPTIVA. Capture-enable Your Mobile Applications with Ease EMC CAPTIVA Capture-enable Your Mobile Applications with Ease Raul Gabriel Senior Product Marketing Manager Nathan Verrilli Senior Systems Engineer June 17, 2014 1 Agenda 1 Mobile Capture Challenges 2

More information

Implementing a Web Service p. 110 Implementing a Web Service Client p. 114 Summary p. 117 Introduction to Entity Beans p. 119 Persistence Concepts p.

Implementing a Web Service p. 110 Implementing a Web Service Client p. 114 Summary p. 117 Introduction to Entity Beans p. 119 Persistence Concepts p. Acknowledgments p. xvi Introduction p. xvii Overview p. 1 Overview p. 3 The Motivation for Enterprise JavaBeans p. 4 Component Architectures p. 7 Divide and Conquer to the Extreme with Reusable Services

More information

Android App Development

Android App Development Android App Development Outline Introduction Android Fundamentals Android Studio Tutorials Introduction What is Android? A software platform and operating system for mobile devices Based on the Linux kernel

More information

PMS 138 C Moto Black spine width spine width 100% 100%

PMS 138 C Moto Black spine width spine width 100% 100% Series MOTOROLA and the Stylized M Logo are registered in the US Patent & Trademark Office. All other product or service names are the property of their respective owners. 2009 Motorola, Inc. Table of

More information

Mobile App Development. ios Platform

Mobile App Development. ios Platform Mobile App Development ios Platform Overview Introduction Development Environment & Tools App Store Pros & Cons Programming Recommendations Objective-C Primer Demo What is ios? An operating system that

More information

Case Study: Dodging the Pitfalls of Enterprise Ajax Applications

Case Study: Dodging the Pitfalls of Enterprise Ajax Applications www.thinwire.com Case Study: Dodging the Pitfalls of Enterprise Ajax Applications A Quick Introduction: Joshua Gertzen Lead Architect of the ThinWire Ajax RIA Framework Core Technology Architect for CCS

More information

Pharo Syntax in a Nutshell

Pharo Syntax in a Nutshell Pharo Syntax in a Nutshell Damien Cassou, Stéphane Ducasse and Luc Fabresse W1S06, 2015 W1S06 2 / 28 Getting a Feel About Syntax In this lecture we want to give you the general feel to get started: Overview

More information

egui Eclipse User Guide

egui Eclipse User Guide Imperas Software Limited Imperas Buildings, North Weston, Thame, Oxfordshire, OX9 2HA, UK docs@imperascom Author: Imperas Software Limited Version: 211 Filename: egui_eclipse_user_guidedoc Project: Imperas

More information

Matching Logic A New Program Verification Approach

Matching Logic A New Program Verification Approach Matching Logic A New Program Verification Approach Grigore Rosu and Andrei Stefanescu University of Illinois at Urbana-Champaign (work started in 2009 with Wolfram Schulte at MSR) Usable Verification Relatively

More information

Minds-on: Android. Session 1

Minds-on: Android. Session 1 Minds-on: Android Session 1 Paulo Baltarejo Sousa Instituto Superior de Engenharia do Porto 2016 Outline Mobile devices Android OS Android architecture Android Studio Practice 1 / 33 2 / 33 Mobile devices

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

INF5750. Introduction to JavaScript and Node.js

INF5750. Introduction to JavaScript and Node.js INF5750 Introduction to JavaScript and Node.js Outline Introduction to JavaScript Language basics Introduction to Node.js Tips and tools for working with JS and Node.js What is JavaScript? Built as scripting

More information