Synthesis for Programming on Mobile Platforms
|
|
|
- Estella Neal
- 9 years ago
- Views:
Transcription
1 Synthesis for Programming on Mobile Platforms Jeff Foster University of Maryland, College Park Armando Solar-Lezama Massachusetts Institute of Technology
2 Android Popularity Android most popular smartphone platform 80% of the market in 2Q13 850K Android apps on Google Play (4/13) 40 billion apps downloaded (4/13) Apps written in Java Extensive framework that apps hook into Everything Android-specific happens in Java Native code calls back into Java to access phone features Lots of exciting app development underway Interesting apps don t need to be large 2
3 Many Opportunities for Synthesis Synthesis for tool developers Making existing analysis technologies work for Android presents a programming challenge that synthesis can help address Synthesis for expert programmers Similar challenges to other Big Code environments Synthesis for the end user Can every phone user be a developer? 3
4 Synthesis for Android Tool Developers New Collaborative Project enabled by ExCAPE Solar-Lezama Madhusudan Foster Leverages combined expertise in Analysis for mobile code Constraint based synthesis Foster Project has recently been joined by Xiaokang Qiu Former student of PI Madhusudan New collaboration brings in additional expertise in verification 4
5 Synthesis for Android Tool Developers Motivation: Program analysis and synthesis tools for Android need to understand the Android framework Example: SymDroid, symbolic execution for Dalvik bytecode Can t execute any app without modeling the framework Challenges App code is tightly tied to the Android framework Framework is big and complex Symbolic execution of the framework is infeasible Hand creation of models is brittle and expensive Can we synthesize a model of Android? Model can be used in later synthesis work as well 5
6 Android Programming Model Event driven programming model No main() Many entry points invoked in response to events from software or hardware Framework provides an abstraction around hardware Convey hardware generated events Provide API access to hardware state Application Event A Event B API Calls Android Framework Event C Hardware Goal: Automatically discover a simple model of the framework 6
7 Qualities of an Android Model Tailored for analyzability Simpler than original framework E.g., may need to model GUI callbacks, but need not worry about exact placement of widgets on screen Code need not be extensible and maintainable Need not be precise Over- or under-approximations can be acceptable Depends on the goal 7
8 The Synthesis Problem Reactive synthesis with a few twists Model is not just a state machine Although many of its components are Requirements come in the form of multiple artifacts Record of interactions between framework and application High-level structural constraints in terms of design patterns High-level properties and invariants Note: Same ideas can apply to many software frameworks 8
9 Current Approach samples (.log) templates (.java) Encoder templates (.sk) SKETCH Synthesizer platform (.java) Decoder synthesis results (.c) Logs gathered from range of executions Use bytecode instrumentation framework to record all calls/returns between app and framework Templates represent knowledge of system Type signatures from APIs Design patterns from SDK documentation, naming conventions Other insights from reading documentation Key challenge: Minimizing necessary knowledge 9
10 Creating Templates: Example What the user knows Date User Talk notifies users about change Which users? In what order? Talk observes changes to the date Users register with Talk Talk 10
11 Template Using Observer Pattern Pattern elements Class and method signatures Methods identified by function based on design pattern Main must implement an event listener loop class User { String void update(talk t, Date arg); } class Main { public static void main() {... // } } class Date { int _date; } class Talk { int _date; String void datechanged(date void addobserver(user void deleteobserver(user user); } 11
12 Annotation Translation Expand structural information from annotations Basically, implement the design patterns Add unknowns as appropriate Holes?? indicating unknown values Regular expression generators { e1 en } Translate from Java to Sketch Map class hierarchy and dynamic dispatch into appropriate Sketch primitives 12
13 Annotation Translation (cont d) class Talk void datechanged(date date); } void datechanged_talk(talk self, Date date) { // General Event handling code: } // log function entry and parameters // iterate over some of the registered users // call methods of users who pass a test // log the function exit 13
14 Annotation Translation (cont d) class Talk void datechanged(date date); } void datechanged_talk(talk self, Date date) { } // log function entry and parameters void f(user u){ if (P(u, self, date)){ update_user(o, self, date); } } { (forwarditer backwarditer)(f, self.obs) } // log the function exit 14
15 Log Translation... Date change event # event (external) > Talk.dateChanged(Talk@4885, Date@2013) # call (internal)... < Talk.dateChanged() # ret (internal)... harness void sample() { Event e0 = new Event(kind=0, date=...);... // event setting: insert events into the queue main(); // main program... log = read@log(idx++); assert log == /* Talk.dateChanged(Talk@4885, Date@2013) */... log = read@log(idx++); assert log == /* Talk.dateChanged() */... } 15
16 (Very) Preliminary Results Synthesis for observer pattern Template: 3 classes, 26 lines of code, 4 observer-related annotations Samples: 3 total, with 40, 60, and 18 calls, including 5, 5, and 2 events Intermediate outputs: 619 lines of sketch code 308 lines for encoding classes and scenarios 246 lines for encoding logs/samples Running time Translation less than 1 second Sketch synthesis time 17 seconds Final output 147 lines of Java code 16
17 Scaling Up to Android Support for more design patterns Accessors, state machines, single-/multiton, factories, builders, plus a few others Reduce knowledge encoded in templates Increase burden on synthesizer Modularity may be important here Test results against actual executions Try on several different Android platform versions (1) Synthesize model supporting additional features (2) Detect changes in platform (though not likely) 17
18 Other Synthesis Challenges Synthesis to help programmers CodeHint: Interactive synthesis for IDEs (PI Bodik) Sort of a super autocomplete feature Focus is Java in general, but works with Android Synthesis to help end users Programming by Demonstration Autolayout by dragging/resizing elements of graphs (PI Bodik) LifeJoin query by demonstration (PI Solar-Lezama) Both may be very useful for designing mobile apps 18
19 Broader Impacts A huge number of people use Android today Synthesizing model could help researchers building Android analysis and synthesis tools Which in turn will help Android users E.g., tools that analyze Android apps for security concerns Making Android programmers more productive could help apps be easier to write, maintain, and be more reliable and secure Enabling end-users to build apps they want could lead to innovative new mobile device ideas 19
20 End
21 Synthesis for Expert Programmers Motivation: Give Android programmers tools to make their job easier Build on experience with synthesis tools for frameworks Prospector, MatchMaker Key problems How to describe what you want How to cope with complexity Technical directions Combining data-driven techniques with logic-based engines 21
22 Synthesis for End Users Motivation: Lots of people have ideas for apps they want to build Can t do it if they don t know Java at a fairly high level Can we make every phone user an app developer? Focus: mashups that combine abilities of existing apps Ex: Map contacts whose addresses are nearby current location Ex: Auto-translate SMS messages from certain phone numbers Ex: Convert units from recipe app into metric Technical directions Finding valid combinations of high-level pathways through apps 22
23 Android Model as a Reactive Program Inputs External events Timers, user gestures, Include method being called + parameters Application calls Application return Outputs Calls from the framework to the application Model is not just an FSM Basic building blocks include FSMs, Stacks, internal data structures User-provided sketch helps guide the choice of building blocks Leverage known design patterns 23
24 High-level User Knowledge Sort of Knowledge Type signatures, design patterns, partial programs, etc. Source of Knowledge SDK documentations, naming conventions, insight(!) Sketch of Knowledge Java: best fit for type signatures Android platform and apps are written in Java Annotations Knowledge can be represented in a declarative manner Designed to add meta-data into Java code 24
25 Synthesis Challenges Conveying Structure Sketch is too low level Solution: use design patterns to give complex structures concisely Scalability Early experiments are encouraging Modularity will be crucial Client-Synthesis feedback loop Model should only be as complex as required by the analysis 25
26 Translation into Sketch 1. parsing high-level templates written in Java modify Java grammar to allow annotations at every level, including class, method, field, and expression keep AST to generate final results easier 2. rule-based annotation reduction introduce appropriate data structures, fields, or expressions to reflect semantics of annotations 3. Java-to-C translation virtual structure for class hierarchy class per file, due to the scope of static fields 26
27 Interpretation of Synthesis Result find what operators/methods/values are selected dump out AST after substituting holes with such chosen operators/methods/values void datechanged_talk (Talk self, Date date, ref global int[5][50] ev_s532, ref global int log_cnt_s533)/*talk.sk:6*/ {... bit sa4 = ((self._obs.elts[0])!= (null)) && 1; while( sa4) { User o; o = self._obs.elts[idx]; if((self._date) == (date._date))/*talk.sk:13*/ { update_user(o, self, date, ev_s532, log_cnt_s533); } idx = idx + 1; sa4 = ((self._obs.elts[idx])!= (null)) && (idx < 6); }... } /*Talk.sk:33*/ 27
28 Current Results templates 3 participating classes 26 lines of Java code with 4 observer-related annotations main harness methods for 3 scenarios samples 42 lines of Java code with 4 reaction annotations 40, 60, and 18 lines of call sequences including 5, 5, and 2 events to react 28
29 Current Results (cont d) intermediate outputs 614 lines of sketch code 303 lines for encoding classes and scenarios 245 lines for encoding samples translation time: within a second sketch running time: 9.5 seconds final results 144 lines of Java code 29
30 Towards Android @Put based on naming convention Uncertain tag-name ) class @Has Clipdata primaryclip; } class Activity ActivityLifecycle ) void oncreate( ActivityLifecycle ) void onresume(); } class Platform { void step_up_act (Activity act) { act.@tag( ActivityLifecycle ); act.@tag( ActivityLifecycle ); act.@tag( ActivityLifecycle ); } } 30
31 More Patterns State machine a field to maintain an expression to retrieve the an expression the state class Activity ActivityLifecycle )) int _state; boolean isfinishing() { ==??; ActivityLifecycle ) void oncreate( ); } 31
32 More Patterns (cont one and only Activity stack, a.k.a. back stack one and only instance for resource managers, associated with distinct name tags class Platform Stack<Activity> back_stack; } class Context { final static String LOCATION_SERVICE = location LocationManager, }) Map<String, Object> systemservice; } 32
33 More Patterns (cont method returns a new instance of the target class whose constructor has a private modifier Builder pattern class PowerManager WakeLock newwakelock( ); class WakeLock { } and class private @Append(Builder) private String path; // cont d Builder buildupon(); class Builder Uri build(); } 33
Synthesis for Developing Apps on Mobile Platforms
Synthesis for Developing Apps on Mobile Platforms Jeff Foster University of Maryland, College Park Armando Solar-Lezama Massachusetts Institute of Technology Schedule for session Jeff Foster and Armando
Specialized Android APP Development Program with Java (SAADPJ) Duration 2 months
Specialized Android APP Development Program with Java (SAADPJ) Duration 2 months Our program is a practical knowledge oriented program aimed at making innovative and attractive applications for mobile
Moving from CS 61A Scheme to CS 61B Java
Moving from CS 61A Scheme to CS 61B Java Introduction Java is an object-oriented language. This document describes some of the differences between object-oriented programming in Scheme (which we hope you
Table of Contents. Adding Build Targets to the SDK 8 The Android Developer Tools (ADT) Plug-in for Eclipse 9
SECOND EDITION Programming Android kjj *J} Zigurd Mednieks, Laird Dornin, G. Blake Meike, and Masumi Nakamura O'REILLY Beijing Cambridge Farnham Koln Sebastopol Tokyo Table of Contents Preface xiii Parti.
Mocean Android SDK Developer Guide
Mocean Android SDK Developer Guide For Android SDK Version 3.2 136 Baxter St, New York, NY 10013 Page 1 Table of Contents Table of Contents... 2 Overview... 3 Section 1 Setup... 3 What changed in 3.2:...
Computing Concepts with Java Essentials
2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Computing Concepts with Java Essentials 3rd Edition Cay Horstmann
Iotivity Programmer s Guide Soft Sensor Manager for Android
Iotivity Programmer s Guide Soft Sensor Manager for Android 1 CONTENTS 2 Introduction... 3 3 Terminology... 3 3.1 Physical Sensor Application... 3 3.2 Soft Sensor (= Logical Sensor, Virtual Sensor)...
WebView addjavascriptinterface Remote Code Execution 23/09/2013
MWR InfoSecurity Advisory WebView addjavascriptinterface Remote Code Execution 23/09/2013 Package Name Date Affected Versions Google Android Webkit WebView 23/09/2013 All Android applications built with
Frameworks & Android. Programmeertechnieken, Tim Cocx
Frameworks & Android Programmeertechnieken, Tim Cocx Discover thediscover world atthe Leiden world University at Leiden University Software maken is hergebruiken The majority of programming activities
Design by Contract beyond class modelling
Design by Contract beyond class modelling Introduction Design by Contract (DbC) or Programming by Contract is an approach to designing software. It says that designers should define precise and verifiable
AndroLIFT: A Tool for Android Application Life Cycles
AndroLIFT: A Tool for Android Application Life Cycles Dominik Franke, Tobias Royé, and Stefan Kowalewski Embedded Software Laboratory Ahornstraße 55, 52074 Aachen, Germany { franke, roye, kowalewski}@embedded.rwth-aachen.de
Recovering Business Rules from Legacy Source Code for System Modernization
Recovering Business Rules from Legacy Source Code for System Modernization Erik Putrycz, Ph.D. Anatol W. Kark Software Engineering Group National Research Council, Canada Introduction Legacy software 000009*
AP Computer Science Java Subset
APPENDIX A AP Computer Science Java Subset The AP Java subset is intended to outline the features of Java that may appear on the AP Computer Science A Exam. The AP Java subset is NOT intended as an overall
The BSN Hardware and Software Platform: Enabling Easy Development of Body Sensor Network Applications
The BSN Hardware and Software Platform: Enabling Easy Development of Body Sensor Network Applications Joshua Ellul [email protected] Overview Brief introduction to Body Sensor Networks BSN Hardware
HVM TP : A Time Predictable and Portable Java Virtual Machine for Hard Real-Time Embedded Systems JTRES 2014
: A Time Predictable and Portable Java Virtual Machine for Hard Real-Time Embedded Systems JTRES 2014 Kasper Søe Luckow 1 Bent Thomsen 1 Stephan Erbs Korsholm 2 1 Department of Computer Science Aalborg
Masters programmes in Computer Science and Information Systems. Object-Oriented Design and Programming. Sample module entry test xxth December 2013
Masters programmes in Computer Science and Information Systems Object-Oriented Design and Programming Sample module entry test xxth December 2013 This sample paper has more questions than the real paper
Java Application Developer Certificate Program Competencies
Java Application Developer Certificate Program Competencies After completing the following units, you will be able to: Basic Programming Logic Explain the steps involved in the program development cycle
Graduate presentation for CSCI 5448. By Janakiram Vantipalli ( [email protected] )
Graduate presentation for CSCI 5448 By Janakiram Vantipalli ( [email protected] ) Content What is Android?? Versions and statistics Android Architecture Application Components Inter Application
How to develop your own app
How to develop your own app It s important that everything on the hardware side and also on the software side of our Android-to-serial converter should be as simple as possible. We have the advantage that
Introduction to Software Testing Chapter 8.1 Building Testing Tools Instrumentation. Chapter 8 Outline
Introduction to Software Testing Chapter 8. Building Testing Tools Instrumentation Paul Ammann & Jeff Offutt www.introsoftwaretesting.com Chapter 8 Outline. Instrumentation for Graph and Logical Expression
OPC UA App development for Android
OPC UA App development for Android Ismo Leszczynski Master s Thesis presentation 13.11.2015 Contents 1. Introduction 2. Targets 3. OPC Unified Architecture 4. Android Operating System 5. App development
A model driven approach for Android applications development
A model driven approach for Android applications development Abilio G. Parada, Lisane B. de Brisolara Grupo de Arquitetura e Circuitos Integrados (GACI) Centro de Desenvolvimento Tecnológico (CDTec) Universidade
Mobile Application Development Android
Mobile Application Development Android MTAT.03.262 Satish Srirama [email protected] Goal Give you an idea of how to start developing Android applications Introduce major Android application concepts
Lecture 1 Introduction to Android
These slides are by Dr. Jaerock Kwon at. The original URL is http://kettering.jrkwon.com/sites/default/files/2011-2/ce-491/lecture/alecture-01.pdf so please use that instead of pointing to this local copy
qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq
qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq Introduction to Programming using Java wertyuiopasdfghjklzxcvbnmqwertyui
Java CPD (I) Frans Coenen Department of Computer Science
Java CPD (I) Frans Coenen Department of Computer Science Content Session 1, 12:45-14:30 (First Java Programme, Inheritance, Arithmetic) Session 2, 14:45-16:45 (Input and Programme Constructs) Materials
How to Program an Android Application to Access and Manage the Wi-Fi Capabilities of a Smartphone
ECE 480 DESIGN TEAM 2 How to Program an Android Application to Access and Manage the Wi-Fi Capabilities of a Smartphone Application Note Matt Gottshall 4/1/2011 This application note is designed to teach
C Compiler Targeting the Java Virtual Machine
C Compiler Targeting the Java Virtual Machine Jack Pien Senior Honors Thesis (Advisor: Javed A. Aslam) Dartmouth College Computer Science Technical Report PCS-TR98-334 May 30, 1998 Abstract One of the
Android Application Development Course Program
Android Application Development Course Program Part I Introduction to Programming 1. Introduction to programming. Compilers, interpreters, virtual machines. Primitive data types, variables, basic operators,
Translating to Java. Translation. Input. Many Level Translations. read, get, input, ask, request. Requirements Design Algorithm Java Machine Language
Translation Translating to Java Introduction to Computer Programming The job of a programmer is to translate a problem description into a computer language. You need to be able to convert a problem description
Introduction to Android. CSG250 Wireless Networks Fall, 2008
Introduction to Android CSG250 Wireless Networks Fall, 2008 Outline Overview of Android Programming basics Tools & Tricks An example Q&A Android Overview Advanced operating system Complete software stack
Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation
Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science updated 03/08/2012 Unit 1: JKarel 8 weeks http://www.fcps.edu/is/pos/documents/hs/compsci.htm
Glossary of Object Oriented Terms
Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction
Example of Standard API
16 Example of Standard API System Call Implementation Typically, a number associated with each system call System call interface maintains a table indexed according to these numbers The system call interface
Android Basics. Xin Yang 2016-05-06
Android Basics Xin Yang 2016-05-06 1 Outline of Lectures Lecture 1 (45mins) Android Basics Programming environment Components of an Android app Activity, lifecycle, intent Android anatomy Lecture 2 (45mins)
CS 111 Classes I 1. Software Organization View to this point:
CS 111 Classes I 1 Software Organization View to this point: Data Objects and primitive types Primitive types operators (+, /,,*, %). int, float, double, char, boolean Memory location holds the data Objects
Affdex SDK for Android. Developer Guide For SDK version 1.0
Affdex SDK for Android Developer Guide For SDK version 1.0 www.affdex.com/mobile-sdk 1 August 4, 2014 Introduction The Affdex SDK is the culmination of years of scientific research into emotion detection,
Qlik REST Connector Installation and User Guide
Qlik REST Connector Installation and User Guide Qlik REST Connector Version 1.0 Newton, Massachusetts, November 2015 Authored by QlikTech International AB Copyright QlikTech International AB 2015, All
Euler: A System for Numerical Optimization of Programs
Euler: A System for Numerical Optimization of Programs Swarat Chaudhuri 1 and Armando Solar-Lezama 2 1 Rice University 2 MIT Abstract. We give a tutorial introduction to Euler, a system for solving difficult
Android Application Development
Android Application Development Self Study Self Study Guide Content: Course Prerequisite Course Content Android SDK Lab Installation Guide Start Training Be Certified Exam sample Course Prerequisite The
Java Interview Questions and Answers
1. What is the most important feature of Java? Java is a platform independent language. 2. What do you mean by platform independence? Platform independence means that we can write and compile the java
Integrating SharePoint Sites within WebSphere Portal
Integrating SharePoint Sites within WebSphere Portal November 2007 Contents Executive Summary 2 Proliferation of SharePoint Sites 2 Silos of Information 2 Security and Compliance 3 Overview: Mainsoft SharePoint
Introduction to Android Development. Jeff Avery CS349, Mar 2013
Introduction to Android Development Jeff Avery CS349, Mar 2013 Overview What is Android? Android Architecture Overview Application Components Activity Lifecycle Android Developer Tools Installing Android
ECM (ELO-KIT-ECMG2-AND)
Software SDK USER GUIDE Elo Touch Solutions I-Series Interactive Signage ESY10i1, ESY15i1, ESY22i1 Android ECM (ELO-KIT-ECMG2-AND) SW602422 Rev A I-Series and Android ECM Software Development Kit User
Service Provider awareness Universal Apparatus
1. Invention Title. Service Provider awareness Universal Apparatus 2. Invention Summary. An apparatus for universal Service Provider awareness by host computers. 3. Invention Description. a. Describe the
A Short Introduction to Android
A Short Introduction to Android Notes taken from Google s Android SDK and Google s Android Application Fundamentals 1 Plan For Today Lecture on Core Android Three U-Tube Videos: - Architecture Overview
Creating a 2D Game Engine for Android OS. Introduction
Creating a 2D Game Engine for Android OS Introduction This tutorial will lead you through the foundations of creating a 2D animated game for the Android Operating System. The goal here is not to create
A Look through the Android Stack
A Look through the Android Stack A Look through the Android Stack Free Electrons Maxime Ripard Free Electrons Embedded Linux Developers c Copyright 2004-2012, Free Electrons. Creative Commons BY-SA 3.0
Android Studio Application Development
Android Studio Application Development Belén Cruz Zapata Chapter No. 4 "Using the Code Editor" In this package, you will find: A Biography of the author of the book A preview chapter from the book, Chapter
Creating a Simple, Multithreaded Chat System with Java
Creating a Simple, Multithreaded Chat System with Java Introduction by George Crawford III In this edition of Objective Viewpoint, you will learn how to develop a simple chat system. The program will demonstrate
Introduction to Parallel Programming and MapReduce
Introduction to Parallel Programming and MapReduce Audience and Pre-Requisites This tutorial covers the basics of parallel programming and the MapReduce programming model. The pre-requisites are significant
Chapter 13: Program Development and Programming Languages
Understanding Computers Today and Tomorrow 12 th Edition Chapter 13: Program Development and Programming Languages Learning Objectives Understand the differences between structured programming, object-oriented
Boogie: A Modular Reusable Verifier for Object-Oriented Programs
Boogie: A Modular Reusable Verifier for Object-Oriented Programs M. Barnett, B.E. Chang, R. DeLine, B. Jacobs, K.R.M. Leino Lorenzo Baesso ETH Zurich Motivation Abstract Domains Modular Architecture Automatic
Introduction to HP ArcSight ESM Web Services APIs
Introduction to HP ArcSight ESM Web Services APIs Shivdev Kalambi Software Development Manager (Correlation Team) #HPProtect Agenda Overview Some applications of APIs ESM Web Services APIs Login Service
Android Development. Marc Mc Loughlin
Android Development Marc Mc Loughlin Android Development Android Developer Website:h:p://developer.android.com/ Dev Guide Reference Resources Video / Blog SeCng up the SDK h:p://developer.android.com/sdk/
Pseudo code Tutorial and Exercises Teacher s Version
Pseudo code Tutorial and Exercises Teacher s Version Pseudo-code is an informal way to express the design of a computer program or an algorithm in 1.45. The aim is to get the idea quickly and also easy
The Recipe for Sarbanes-Oxley Compliance using Microsoft s SharePoint 2010 platform
The Recipe for Sarbanes-Oxley Compliance using Microsoft s SharePoint 2010 platform Technical Discussion David Churchill CEO DraftPoint Inc. The information contained in this document represents the current
Appium mobile test automation
Appium mobile test automation for Google Android and Apple ios Last updated: 4 January 2016 Pepgo Limited, 71-75 Shelton Street, Covent Garden, London, WC2H 9JQ, United Kingdom Contents About this document...
Lecture 9. Semantic Analysis Scoping and Symbol Table
Lecture 9. Semantic Analysis Scoping and Symbol Table Wei Le 2015.10 Outline Semantic analysis Scoping The Role of Symbol Table Implementing a Symbol Table Semantic Analysis Parser builds abstract syntax
Logistics. Software Testing. Logistics. Logistics. Plan for this week. Before we begin. Project. Final exam. Questions?
Logistics Project Part 3 (block) due Sunday, Oct 30 Feedback by Monday Logistics Project Part 4 (clock variant) due Sunday, Nov 13 th Individual submission Recommended: Submit by Nov 6 th Scoring Functionality
Software Engineering Techniques
Software Engineering Techniques Low level design issues for programming-in-the-large. Software Quality Design by contract Pre- and post conditions Class invariants Ten do Ten do nots Another type of summary
Secure Authentication and Session. State Management for Web Services
Lehman 0 Secure Authentication and Session State Management for Web Services Clay Lehman CSC 499: Honors Thesis Supervised by: Dr. R. Michael Young Lehman 1 1. Introduction Web services are a relatively
Basics of Android Development 1
Departamento de Engenharia Informática Minds-On Basics of Android Development 1 Paulo Baltarejo Sousa [email protected] 2016 1 The content of this document is based on the material presented at http://developer.android.com
Java 6 'th. Concepts INTERNATIONAL STUDENT VERSION. edition
Java 6 'th edition Concepts INTERNATIONAL STUDENT VERSION CONTENTS PREFACE vii SPECIAL FEATURES xxviii chapter i INTRODUCTION 1 1.1 What Is Programming? 2 J.2 The Anatomy of a Computer 3 1.3 Translating
Advanced compiler construction. General course information. Teacher & assistant. Course goals. Evaluation. Grading scheme. Michel Schinz 2007 03 16
Advanced compiler construction Michel Schinz 2007 03 16 General course information Teacher & assistant Course goals Teacher: Michel Schinz [email protected] Assistant: Iulian Dragos INR 321, 368 64
Fundamentals of Java Programming
Fundamentals of Java Programming This document is exclusive property of Cisco Systems, Inc. Permission is granted to print and copy this document for non-commercial distribution and exclusive use by instructors
Explorer's Guide to the Semantic Web
Explorer's Guide to the Semantic Web THOMAS B. PASSIN 11 MANNING Greenwich (74 w. long.) contents preface xiii acknowledgments xv about this booh xvii The Semantic Web 1 1.1 What is the Semantic Web? 3
09336863931 : provid.ir
provid.ir 09336863931 : NET Architecture Core CSharp o Variable o Variable Scope o Type Inference o Namespaces o Preprocessor Directives Statements and Flow of Execution o If Statement o Switch Statement
Budget Event Management Design Document
Budget Event Management Design Document Team 4 Yifan Yin(TL), Jiangnan Shangguan, Yuan Xia, Di Xu, Xuan Xu, Long Zhen 1 Purpose Summary List of Functional Requirements General Priorities Usability Accessibility
Using Extensions or Cordova Plugins in your RhoMobile Application Darryn Campbell @darryncampbell
Using Extensions or Cordova Plugins in your RhoMobile Application Darryn Campbell @darryncampbell Application Architect Agenda Creating a Rho Native Extension on Android Converting a Cordova Plugin to
How To Develop Android On Your Computer Or Tablet Or Phone
AN INTRODUCTION TO ANDROID DEVELOPMENT CS231M Alejandro Troccoli Outline Overview of the Android Operating System Development tools Deploying application packages Step-by-step application development The
Getting Started with Android Smartphones and ThingWorx
Smartphones and ThingWorx How to send and visualize data from your Android phone using ThingWorx Revision # Date ThingWorx Revision Changes Owner 1.0 18-05-15 5.1.0.433 2.0 10.05.15 Updated based on Andy
The Java Series. Java Essentials I What is Java? Basic Language Constructs. Java Essentials I. What is Java?. Basic Language Constructs Slide 1
The Java Series Java Essentials I What is Java? Basic Language Constructs Slide 1 What is Java? A general purpose Object Oriented programming language. Created by Sun Microsystems. It s a general purpose
Object Relational Database Mapping. Alex Boughton Spring 2011
+ Object Relational Database Mapping Alex Boughton Spring 2011 + Presentation Overview Overview of database management systems What is ORDM Comparison of ORDM with other DBMSs Motivation for ORDM Quick
Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53
Preface xvi Part I Introduction and System Engineering 1 Chapter 1 Introduction 2 1.1 What Is Software Engineering? 2 1.2 Why Software Engineering? 3 1.3 Software Life-Cycle Activities 4 1.3.1 Software
Software Test Plan (STP) Template
(STP) Template Items that are intended to stay in as part of your document are in bold; explanatory comments are in italic text. Plain text is used where you might insert wording about your project. This
1 Which of the following questions can be answered using the goal flow report?
1 Which of the following questions can be answered using the goal flow report? [A] Are there a lot of unexpected exits from a step in the middle of my conversion funnel? [B] Do visitors usually start my
Mobile App Design Project #1 Java Boot Camp: Design Model for Chutes and Ladders Board Game
Mobile App Design Project #1 Java Boot Camp: Design Model for Chutes and Ladders Board Game Directions: In mobile Applications the Control Model View model works to divide the work within an application.
GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS
Embedded Systems White Paper GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS September 2009 ABSTRACT Android is an open source platform built by Google that includes an operating system,
INTRODUCTION TO OBJECTIVE-C CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 12 09/29/2011
INTRODUCTION TO OBJECTIVE-C CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 12 09/29/2011 1 Goals of the Lecture Present an introduction to Objective-C 2.0 Coverage of the language will be INCOMPLETE
Messing with the Android Runtime
Northeastern University Systems Security Lab Messing with the Android Runtime Collin Mulliner, April 26th 2013, Singapore crm[at]ccs.neu.edu SyScan Singapore 2013 $ finger [email protected] 'postdoc'
Part I. Multiple Choice Questions (2 points each):
Part I. Multiple Choice Questions (2 points each): 1. Which of the following is NOT a key component of object oriented programming? (a) Inheritance (b) Encapsulation (c) Polymorphism (d) Parallelism ******
Amazon Glacier. Developer Guide API Version 2012-06-01
Amazon Glacier Developer Guide Amazon Glacier: Developer Guide Copyright 2016 Amazon Web Services, Inc. and/or its affiliates. All rights reserved. Amazon's trademarks and trade dress may not be used in
CS 40 Computing for the Web
CS 40 Computing for the Web Art Lee January 20, 2015 Announcements Course web on Sakai Homework assignments submit them on Sakai Email me the survey: See the Announcements page on the course web for instructions
Compiler I: Syntax Analysis Human Thought
Course map Compiler I: Syntax Analysis Human Thought Abstract design Chapters 9, 12 H.L. Language & Operating Sys. Compiler Chapters 10-11 Virtual Machine Software hierarchy Translator Chapters 7-8 Assembly
06 Team Project: Android Development Crash Course; Project Introduction
M. Kranz, P. Lindemann, A. Riener 340.301 UE Principles of Interaction, 2014S 06 Team Project: Android Development Crash Course; Project Introduction April 11, 2014 Priv.-Doz. Dipl.-Ing. Dr. Andreas Riener
App Development with Talkamatic Dialogue Manager
App Development with Talkamatic Dialogue Manager Dialogue Systems II September 7, 2015 Alex Berman [email protected] Staffan Larsson Outline! Introduction to TDM! Technical architecture! App development
An Overview of Java. overview-1
An Overview of Java overview-1 Contents What is Java Major Java features Java virtual machine Java programming language Java class libraries (API) GUI Support in Java Networking and Threads in Java overview-2
Specialized Programme on Web Application Development using Open Source Tools
Specialized Programme on Web Application Development using Open Source Tools A. NAME OF INSTITUTE Centre For Development of Advanced Computing B. NAME/TITLE OF THE COURSE C. COURSE DATES WITH DURATION
Compiler Construction
Compiler Construction Lecture 1 - An Overview 2003 Robert M. Siegfried All rights reserved A few basic definitions Translate - v, a.to turn into one s own language or another. b. to transform or turn from
Linked Statistical Data Analysis
Linked Statistical Data Analysis Sarven Capadisli 1, Sören Auer 2, Reinhard Riedl 3 1 Universität Leipzig, Institut für Informatik, AKSW, Leipzig, Germany, 2 University of Bonn and Fraunhofer IAIS, Bonn,
Java Memory Model: Content
Java Memory Model: Content Memory Models Double Checked Locking Problem Java Memory Model: Happens Before Relation Volatile: in depth 16 March 2012 1 Java Memory Model JMM specifies guarantees given by
