Program Analysis for JavaScript Challenges and Techniques
|
|
|
- Stella Mosley
- 9 years ago
- Views:
Transcription
1 Program Analysis for JavaScript Challenges and Techniques Anders Møller Center for Advanced Software Analysis Aarhus University Joint work with Esben Andreasen, Simon Holm Jensen, Peter A. Jonsson, Magnus Madsen, and Peter Thiemann
2 JavaScript 2
3 JavaScript needs program analysis Testing is still the only technique programmers have for finding errors in their code Program analysis can (in principle) be used for bug detection (e.g. "x.p in line 7 always yields undefined") code completion optimization 3
4 JavaScript is a dynamic language Object-based, properties created on demand Prototype-based inheritance First-class functions, closures Runtime types, coercions NO STATIC TYPE CHECKING NO STATIC CLASS HIERARCHIES 4
5 Type Analysis for JavaScript The goal: Catch type-related errors using program analysis Support the full language Aim for soundness 5
6 Statically detecting type-related errors in JavaScript programs 6
7 Likely programming errors 1. invoking a non-function value (e.g. undefined) as a function 2. reading an absent variable 3. accessing a property of null or undefined 4. reading an absent property of an object 5. writing to variables or object properties that are never read 6. calling a function object both as a function and as a constructor, or passing function parameters with varying types 7. calling a built-in function with an invalid number of parameters, or with a parameter of an unexpected type etc. 7
8 Which way to go? 8
9 The TAJS approach [Jensen, Møller, and Thiemann, SAS 09] Dataflow analysis (abstract interpretation) using the monotone framework [Kam & Ullman 77] The recipe: 1. construct a control flow graph for each function in the program to be analyzed 2. define an appropriate dataflow lattice (abstraction of data) 3. define transfer functions (abstraction of operations) 9
10 The dataflow lattice (simplified!) The analysis maintains an abstract state for each program point N and call context C: N C State Each abstract state provides an abstract value for each abstract object L and property name P: State = L P Value Each abstract value describes pointers and primitive values: Value = P(L) Bool Str Num... Details refined through trial-and-error... 10
11 Transfer functions, example A dynamic property read: x[y] 1. Coerce x to objects 2. Coerce y to strings 3. Descend the object prototype chains to find the relevant properties 4. Join the property values 11
12 A tiny example... function Person(n) { this.setname(n); Person.prototype.count++; Person.prototype.count = 0; Person.prototype.setName = function(n) { this.name = n; function Student(n,s) { this.b = Person; this.b(n); delete this.b; this.studentid = s.tostring(); Student.prototype = new Person; var t = ; var x = new Student("Joe Average", t++); var y = new Student("John Doe", t); y.setname("john Q. Doe"); does y have a setname method at this program point? 12
13 An abstract state (as produced by TAJS) 13
14 JavaScript web applications Modeling JavaScript code is not enough The environment of the JavaScript code: the ECMAScript standard library the browser API the HTML DOM the event mechanism around 250 abstract objects with 500 properties and 200 functions [Jensen, Madsen, and Møller, ESEC/FSE 11] 14
15 eval(s) Eval in JavaScript parse the string S as JavaScript code, then execute it Challenging for JavaScript static analysis the string is dynamically generated the generated code may have side-effects and JavaScript has poor encapsulation mechanisms 15
16 Eval is evil... but most uses of eval are not very complex So let s transform eval calls into other code! How can we soundly make such transformations if we cannot analyze code with eval? Which came first? Analysis or transformation 16
17 Whenever TAJS detects new dataflow to eval, the eval transformer is triggered [Jensen, Jonsson, and Møller, ISSTA 12] 17
18 An example var y = "foo" for (i = 0; i < 10; i++) { eval(y + "(" + i + ")") The dataflow analysis propagates dataflow until the fixpoint is reached iteration 1: y is "foo", i is 0 eval(y + "(" + i + ")") foo(0) (the dataflow analysis can now proceed into foo) iteration 2: y is "foo", i is AnyNumber eval(y + "(" + i + ")") foo(i) (would not work if i could be any string) 18
19 Ingredients in a static analyzer for JavaScript applications We need to model the language semantics the standard library (incl. eval) the browser API (the HTML DOM, the event system, etc.) 19
20 Mission complete? 20
21 21
22 22
23 Why use jquery (or other libraries)? Patches browser incompatibilities CSS3-based DOM navigation Event handling AJAX (client-server communication) UI widgets and animations 1000s of plugins available 23
24 An appetizer Which code fragment do you prefer? var checkedvalue; var elements = document.getelementsbytagname('input'); for (var n = 0; n < elements.length; n++) { if (elements[n].name == 'someradiogroup' && elements[n].checked) { checkedvalue = elements[n].value; var checkedvalue = $('[name="someradiogroup"]:checked').val(); 24
25 Investigating the beast lines executed when the library initializes itself after loading 25
26 [Schäfer, Sridharan, Dolby, Tip. Dynamic Determinacy Analysis, PLDI'13] Experimental results for jquery with WALA: can analyze a JavaScript program that loads jquery and does nothing else no success on jquery 1.3 and beyond The WALA approach: 1) dynamic analysis to infer determinate expressions that always have the same value in any execution (but for a specific calling context) 2) exploit this information in context-sensitive pointer analysis 26
27 Example of imprecision that explodes A dynamic property read: x[y] if x may evaluate to the global object and y may evaluate to a unknown string then x[y] may yield eval, document, Array, Math,... consequence 27
28 jquery: sweet on the outside, bitter on the inside A representative example from the library initialization code: jquery.each("ajaxstart ajaxstop... ajaxsend".split(" "), function(i, o) { jquery.fn[o] = function(f) { return this.on(o, f); ; ); which could have been written like this: jquery.fn.ajaxstart = function(f) { return this.on("ajaxstart", f); ; jquery.fn.ajaxstop = function(f) { return this.on("ajaxstop", f); ;... jquery.fn.ajaxsend = function(f) { return this.on("ajaxsend", f); ; 28
29 each: function (obj, callback, args) { var name, i = 0, length = obj.length, isobj = length === undefined jquery.isfunction(obj); if (args) {... // (some lines omitted to make the example fit on one slide) else { if (isobj) { for (name in obj) { if (callback.call(obj[name], name, obj[name]) === false) { else { break; for (; i < length ;) { if (callback.call(obj[i], i, obj[i++]) === false) { break; return obj; Lots of overloading reflection callbacks 29
30 Our recent results, by improving TAJS TAJS can now analyze (in reasonable time) the load-only program for 11 of 12 versions of jquery 27 of 71 small examples from a jquery tutorial Very good precision for type analysis and call graphs Analysis time: 1-24 seconds (average: 6.5 seconds) [Andreasen and Møller, OOPSLA 14] 30
31 TAJS analysis design Whole-program, flow-sensitive dataflow analysis Constant propagation Heap modeling using allocation site abstraction Object sensitivity (a kind of context sensitivity) Branch pruning (eliminate dataflow along infeasible branches) Parameter sensitivity Loop specialization Context-sensitive heap abstraction [Andreasen and Møller, OOPSLA 14] 31
32 each: function (obj, callback, args) { var name, i = 0, length = obj.length, isobj = length === undefined jquery.isfunction(obj); if (args) {... else { if (isobj) { for (name in obj) { if (callback.call(obj[name], name, obj[name]) === false) { else { break; for (; i < length ;) { if (callback.call(obj[i], i, obj[i++]) === false) { break; return obj; constant propagation... branch pruning logically eliminates several branches specializing on i effectively unrolls the loop with parameter sensitivity, these become constants context-sensitive heap abstraction keeps the ajaxstart, ajaxstop, etc. functions separate 32
33 The technical side... The analysis maintains an abstract state for each program point N and call context C: N C State Old TAJS: C = P(L) (object sensitivity) L = N (L: abstract memory locations) New TAJS: parameter sensitivity (A: selected parameters) C = P(L) (A Value) (B Value) L = N C context-sensitive heap abstraction loop specialization (B: selected local variables) 33
34 Conclusion JavaScript programmers need better tools! Static program analysis can detect type-related errors, find dead code, build call graphs, etc. dataflow analysis to model the ECMAScript standard model of the standard library, browser API, and HTML DOM rewrite calls to eval during analysis handle complex libraries by boosting analysis precision Progress, but far from a full solution Π CENTER FOR ADVANCED SOFTWARE ANALYSIS 34
TypeScript for C# developers. Making JavaScript manageable
TypeScript for C# developers Making JavaScript manageable Agenda What is TypeScript OO in TypeScript Closure Generics Iterators Asynchronous programming Modularisation Debugging TypeScript 2 What is TypeScript
HybriDroid: Analysis Framework for Android Hybrid Applications
HybriDroid: Analysis Framework for Android Hybrid Applications Sungho Lee, Julian Dolby, Sukyoung Ryu Programming Language Research Group KAIST June 13, 2015 Sungho Lee, Julian Dolby, Sukyoung Ryu HybriDroid:
WEB DEVELOPMENT COURSE (PHP/ MYSQL)
WEB DEVELOPMENT COURSE (PHP/ MYSQL) COURSE COVERS: HTML 5 CSS 3 JAVASCRIPT JQUERY BOOTSTRAP 3 PHP 5.5 MYSQL SYLLABUS HTML5 Introduction to HTML Introduction to Internet HTML Basics HTML Elements HTML Attributes
Semantic Analysis: Types and Type Checking
Semantic Analysis Semantic Analysis: Types and Type Checking CS 471 October 10, 2007 Source code Lexical Analysis tokens Syntactic Analysis AST Semantic Analysis AST Intermediate Code Gen lexical errors
Mobile Web Design with HTML5, CSS3, JavaScript and JQuery Mobile Training BSP-2256 Length: 5 days Price: $ 2,895.00
Course Page - Page 1 of 12 Mobile Web Design with HTML5, CSS3, JavaScript and JQuery Mobile Training BSP-2256 Length: 5 days Price: $ 2,895.00 Course Description Responsive Mobile Web Development is more
Scalable and Precise Static Analysis of JavaScript Applications via Loop-Sensitivity
Scalable and Precise Static Analysis of JavaScript Applications via Loop-Sensitivity Changhee Park and Sukyoung Ryu Department of Computer Science, KAIST, Daejeon, Republic of Korea {changhee.park,sryu.cs}@kaist.ac.kr
Art of Code Front-end Web Development Training Program
Art of Code Front-end Web Development Training Program Pre-work (5 weeks) Codecademy HTML5/CSS3 and JavaScript tracks HTML/CSS (7 hours): http://www.codecademy.com/en/tracks/web JavaScript (10 hours):
JavaScript. JavaScript: fundamentals, concepts, object model. Document Object Model. The Web Page. The window object (1/2) The document object
JavaScript: fundamentals, concepts, object model Prof. Ing. Andrea Omicini II Facoltà di Ingegneria, Cesena Alma Mater Studiorum, Università di Bologna [email protected] JavaScript A scripting language:
JavaScript Patterns. Stoyan Stefanov. O'REILLY' Beijing Cambridge Farnham Koln Sebastopol Tokyo
JavaScript Patterns Stoyan Stefanov O'REILLY' Beijing Cambridge Farnham Koln Sebastopol Tokyo Table of Contents Preface xi 1. Introduction 1 Patterns 1 JavaScript: Concepts 3 Object-Oriented 3 No Classes
Facebook Twitter YouTube Google Plus Website Email. o Zooming and Panning. Panel. 3D commands. o Working with Canvas
WEB DESIGN COURSE COURSE COVERS: Photoshop HTML 5 CSS 3 Design Principles Usability / UI Design BOOTSTRAP 3 JAVASCRIPT JQUERY CSS Animation Optimizing of Web SYLLABUS FEATURES 2 Hours of Daily Classroom
Static Analysis. Find the Bug! 15-654: Analysis of Software Artifacts. Jonathan Aldrich. disable interrupts. ERROR: returning with interrupts disabled
Static Analysis 15-654: Analysis of Software Artifacts Jonathan Aldrich 1 Find the Bug! Source: Engler et al., Checking System Rules Using System-Specific, Programmer-Written Compiler Extensions, OSDI
Generating Test Cases With High Branch Coverage for Web Applications
Generating Test Cases With High Branch Coverage for Web Applications Andrey Zakonov and Anatoly Shalyto National Research University of Information Technologies, Mechanics and Optics, Saint-Petersburg,
Object-Oriented Design Lecture 4 CSU 370 Fall 2007 (Pucella) Tuesday, Sep 18, 2007
Object-Oriented Design Lecture 4 CSU 370 Fall 2007 (Pucella) Tuesday, Sep 18, 2007 The Java Type System By now, you have seen a fair amount of Java. Time to study in more depth the foundations of the language,
JavaScript Basics & HTML DOM. Sang Shin Java Technology Architect Sun Microsystems, Inc. [email protected] www.javapassion.com
JavaScript Basics & HTML DOM Sang Shin Java Technology Architect Sun Microsystems, Inc. [email protected] www.javapassion.com 2 Disclaimer & Acknowledgments Even though Sang Shin is a full-time employee
Classes and Objects in Java Constructors. In creating objects of the type Fraction, we have used statements similar to the following:
In creating objects of the type, we have used statements similar to the following: f = new (); The parentheses in the expression () makes it look like a method, yet we never created such a method in our
Write Barrier Removal by Static Analysis
Write Barrier Removal by Static Analysis Karen Zee and Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology Cambridge, MA 02139 {kkz, [email protected] ABSTRACT We present
Tachyon: a Meta-circular Optimizing JavaScript Virtual Machine
Tachyon: a Meta-circular Optimizing JavaScript Virtual Machine Maxime Chevalier-Boisvert Erick Lavoie Marc Feeley Bruno Dufour {chevalma, lavoeric, feeley, dufour}@iro.umontreal.ca DIRO - Université de
Static Analysis of Event-Driven Node.js JavaScript Applications
Static Analysis of Event-Driven Node.js JavaScript Applications Magnus Madsen University of Waterloo [email protected] Frank Tip Samsung Research America [email protected] Ondřej Lhoták University of
Overview. In the beginning. Issues with Client Side Scripting What is JavaScript? Syntax and the Document Object Model Moving forward with JavaScript
Overview In the beginning Static vs. Dynamic Content Issues with Client Side Scripting What is JavaScript? Syntax and the Document Object Model Moving forward with JavaScript AJAX Libraries and Frameworks
C++ INTERVIEW QUESTIONS
C++ INTERVIEW QUESTIONS http://www.tutorialspoint.com/cplusplus/cpp_interview_questions.htm Copyright tutorialspoint.com Dear readers, these C++ Interview Questions have been designed specially to get
Example. Represent this as XML
Example INF 221 program class INF 133 quiz Assignment Represent this as XML JSON There is not an absolutely correct answer to how to interpret this tree in the respective languages. There are multiple
Semantics and Security Issues in JavaScript
Semantics and Security Issues in JavaScript Sémantique et problèmes de sécurité en JavaScript Deliverable Resilience FUI 12: 7.3.2.1 Failles de sécurité en JavaScript / JavaScript security issues Stéphane
JavaScript Testing. Beginner's Guide. Liang Yuxian Eugene. Test and debug JavaScript the easy way PUBLISHING MUMBAI BIRMINGHAM. k I I.
JavaScript Testing Beginner's Guide Test and debug JavaScript the easy way Liang Yuxian Eugene [ rwtmm k I I PUBLISHING I BIRMINGHAM MUMBAI loading loading runtime Preface 1 Chapter 1: What is JavaScript
GUI and Web Programming
GUI and Web Programming CSE 403 (based on a lecture by James Fogarty) Event-based programming Sequential Programs Interacting with the user 1. Program takes control 2. Program does something 3. Program
Performance Issues and Optimizations in JavaScript: An Empirical Study
Performance Issues and Optimizations in JavaScript: An Empirical Study Marija Selakovic and Michael Pradel Technical Report TUD-CS-15-1249 TU Darmstadt, Department of Computer Science October, 15 Performance
ECMAScript 3 rd Edition Compact Profile
Standard ECMA-327 June 2001 Standardizing Information and Communication Systems ECMAScript 3 rd Edition Compact Profile Phone: +41 22 849.60.00 - Fax: +41 22 849.60.01 - URL: http://www.ecma.ch - Internet:
Curriculum Map. Discipline: Computer Science Course: C++
Curriculum Map Discipline: Computer Science Course: C++ August/September: How can computer programs make problem solving easier and more efficient? In what order does a computer execute the lines of code
Advantage of Jquery: T his file is downloaded from
What is JQuery JQuery is lightweight, client side JavaScript library file that supports all browsers. JQuery is a fast and concise JavaScript Library that simplifies HTML document traversing, event handling,
JavaScript static security analysis made easy with JSPrime
JavaScript static security analysis made easy with JSPrime Nishant Das Patnaik & Sarathi Sabyasachi Sahoo [email protected] & [email protected] JavaScript is the lingua-franca of Web 2.0 and, recently,
Free Java textbook available online. Introduction to the Java programming language. Compilation. A simple java program
Free Java textbook available online "Thinking in Java" by Bruce Eckel, 4th edition, 2006, ISBN 0131872486, Pearson Education Introduction to the Java programming language CS 4354 Summer II 2015 The third
A Static Analyzer for Large Safety-Critical Software. Considered Programs and Semantics. Automatic Program Verification by Abstract Interpretation
PLDI 03 A Static Analyzer for Large Safety-Critical Software B. Blanchet, P. Cousot, R. Cousot, J. Feret L. Mauborgne, A. Miné, D. Monniaux,. Rival CNRS École normale supérieure École polytechnique Paris
C++FA 5.1 PRACTICE MID-TERM EXAM
C++FA 5.1 PRACTICE MID-TERM EXAM This practicemid-term exam covers sections C++FA 1.1 through C++FA 1.4 of C++ with Financial Applications by Ben Van Vliet, available at www.benvanvliet.net. 1.) A pointer
Progressive Enhancement With GQuery and GWT. Ray Cromwell [email protected]
Progressive Enhancement With GQuery and GWT Ray Cromwell [email protected] Web Application Models Web 1.0, 1 Interaction = 1 Page Refresh Pure JS, No Navigation Away from Page Mixed Model, Page Reloads
Visualizing Software Projects in JavaScript
Visualizing Software Projects in JavaScript Tim Disney Abstract Visualization techniques have been used to help programmers deepen their understanding of large software projects. However the existing visualization
Correlation Tracking for Points-To Analysis of JavaScript
Correlation Tracking for Points-To Analysis of JavaScript Manu Sridharan, Julian Dolby, Satish Chandra, Max Schäfer, and Frank Tip IBM T.J. Watson Research Center, Yorktown Heights, NY, USA {msridhar,dolby,satishchandra,mschaefer,ftip}@us.ibm.com
Dart a modern web language
Dart a modern web language or why web programmers need more structure Kasper Lund & Lars Bak Software engineers, Google Inc. Object-oriented language experience: 26 + 12 years The Web Is Fantastic The
MASTERTAG DEVELOPER GUIDE
MASTERTAG DEVELOPER GUIDE TABLE OF CONTENTS 1 Introduction... 4 1.1 What is the zanox MasterTag?... 4 1.2 What is the zanox page type?... 4 2 Create a MasterTag application in the zanox Application Store...
How to Write a Checker in 24 Hours
How to Write a Checker in 24 Hours Clang Static Analyzer Anna Zaks and Jordan Rose Apple Inc. What is this talk about? The Clang Static Analyzer is a bug finding tool It can be extended with custom checkers
Programming in HTML5 with JavaScript and CSS3
Course 20480B: Programming in HTML5 with JavaScript and CSS3 Course Details Course Outline Module 1: Overview of HTML and CSS This module provides an overview of HTML and CSS, and describes how to use
Free Java textbook available online. Introduction to the Java programming language. Compilation. A simple java program
Free Java textbook available online "Thinking in Java" by Bruce Eckel, 4th edition, 2006, ISBN 0131872486, Pearson Education Introduction to the Java programming language CS 4354 Summer II 2014 Jill Seaman
Ajax Development with ASP.NET 2.0
Ajax Development with ASP.NET 2.0 Course No. ISI-1071 3 Days Instructor-led, Hands-on Introduction This three-day intensive course introduces a fast-track path to understanding the ASP.NET implementation
Tutorial on C Language Programming
Tutorial on C Language Programming Teodor Rus [email protected] The University of Iowa, Department of Computer Science Introduction to System Software p.1/64 Tutorial on C programming C program structure:
Towards practical reactive security audit using extended static checkers 1
Towards practical reactive security audit using extended static checkers 1 Julien Vanegue 1 Shuvendu K. Lahiri 2 1 Bloomberg LP, New York 2 Microsoft Research, Redmond May 20, 2013 1 The work was conducted
The V8 JavaScript Engine
The V8 JavaScript Engine Design, Implementation, Testing and Benchmarking Mads Ager, Software Engineer Agenda Part 1: What is JavaScript? Part 2: V8 internals Part 3: V8 testing and benchmarking What is
Object-Oriented JavaScript
In this chapter, you'll learn about OOP (Object-Oriented Programming) and how it relates to JavaScript. As an ASP.NET developer, you probably have some experience working with objects, and you may even
Adaptive Context-sensitive Analysis for JavaScript
Adaptive Context-sensitive Analysis for JavaScript Shiyi Wei and Barbara G. Ryder Department of Computer Science Virginia Tech Blacksburg, VA, USA {wei, ryder}@cs.vt.edu Abstract Context sensitivity is
Compiling Object Oriented Languages. What is an Object-Oriented Programming Language? Implementation: Dynamic Binding
Compiling Object Oriented Languages What is an Object-Oriented Programming Language? Last time Dynamic compilation Today Introduction to compiling object oriented languages What are the issues? Objects
Development Techniques for Native/Hybrid Tizen Apps. Presented by Kirill Kruchinkin
Development Techniques for Native/Hybrid Tizen Apps Presented by Kirill Kruchinkin Agenda Introduction and Definitions Practices Case Studies 2 Introduction & Definitions 2 App Types Browser Apps Installable
A Practical Blended Analysis for Dynamic Features in JavaScript
A Practical Blended Analysis for Dynamic Features in JavaScript Shiyi Wei Barbara G. Ryder Department of Computer Science Virginia Tech wei, [email protected] ABSTRACT The JavaScript Blended Analysis Framework
Client-side Web Engineering From HTML to AJAX
Client-side Web Engineering From HTML to AJAX SWE 642, Spring 2008 Nick Duan 1 What is Client-side Engineering? The concepts, tools and techniques for creating standard web browser and browser extensions
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
CSC 551: Web Programming. Fall 2001
CSC 551: Web Programming Fall 2001 Java Overview! Design goals & features "platform independence, portable, secure, simple, object-oriented,! Language overview " program structure, public vs. private "instance
Web Development Recipes
Extracted from: Web Development Recipes This PDF file contains pages extracted from Web Development Recipes, published by the Pragmatic Bookshelf. For more information or to purchase a paperback or PDF
MXwendler Javascript Interface Description Version 2.3
MXwendler Javascript Interface Description Version 2.3 This document describes the MXWendler (MXW) Javascript Command Interface. You will learn how to control MXwendler through the Javascript interface.
Chapter 5 Names, Bindings, Type Checking, and Scopes
Chapter 5 Names, Bindings, Type Checking, and Scopes Chapter 5 Topics Introduction Names Variables The Concept of Binding Type Checking Strong Typing Scope Scope and Lifetime Referencing Environments Named
TypeScript. Language Specification. Version 1.4
TypeScript Language Specification Version 1.4 October, 2014 Microsoft is making this Specification available under the Open Web Foundation Final Specification Agreement Version 1.0 ("OWF 1.0") as of October
TreatJS: Higher-Order Contracts for JavaScript
TreatJS: Higher-Order Contracts for JavaScript Matthias Keil and Peter Thiemann Institute for Computer Science University of Freiburg Freiburg, Germany {keilr,thiemann}@informatik.uni-freiburg.de Abstract
Address Taken FIAlias, which is equivalent to Steensgaard. CS553 Lecture Alias Analysis II 2
Alias Analysis Last time Alias analysis I (pointer analysis) Address Taken FIAlias, which is equivalent to Steensgaard Today Alias analysis II (pointer analysis) Anderson Emami Next time Midterm review
AjaxScope: Remotely Monitoring Client-side Web-App Behavior
AjaxScope: Remotely Monitoring Client-side Web-App Behavior Emre Kıcıman [email protected] Ben Livshits [email protected] Internet Services Research Center Microsoft Research Runtime Analysis &
Javascript in Ten Minutes
Javascript in Ten Minutes Spencer Tipping March 20, 2013 Contents 1 Introduction 3 2 Types 3 3 Functions 4 3.1 Variadic behavior (a cool thing)................... 4 3.2 Lazy scoping (a cool thing)......................
Performance Testing for Ajax Applications
Radview Software How to Performance Testing for Ajax Applications Rich internet applications are growing rapidly and AJAX technologies serve as the building blocks for such applications. These new technologies
Java Basics: Data Types, Variables, and Loops
Java Basics: Data Types, Variables, and Loops If debugging is the process of removing software bugs, then programming must be the process of putting them in. - Edsger Dijkstra Plan for the Day Variables
Integration of an open source rule engine to enhance the IHTSDO Workbench testing
Integration of an open source rule engine to enhance the IHTSDO Workbench testing Dr. Guillermo Reynoso Dr. Alejandro Lopez Osornio termmed IT Buenos Aires, Argentina 2009 termmed SA Terminology maintenance
Operator Overloading. Lecture 8. Operator Overloading. Running Example: Complex Numbers. Syntax. What can be overloaded. Syntax -- First Example
Operator Overloading Lecture 8 Operator Overloading C++ feature that allows implementer-defined classes to specify class-specific function for operators Benefits allows classes to provide natural semantics
Not agree with bug 3, precision actually was. 8,5 not set in the code. Not agree with bug 3, precision actually was
Task 1 Task 2 Task 3 Feedback Presence SUM Matrikkel Rühm [5] [1] [2] [1] [1] [10] Feedback to students A64129 1. rühm 0 0 No submission found A72068 1. rühm 5 1 2 1 1 For Bug 3. Actually the variable
Lecture 9 Chrome Extensions
Lecture 9 Chrome Extensions 1 / 22 Agenda 1. Chrome Extensions 1. Manifest files 2. Content Scripts 3. Background Pages 4. Page Actions 5. Browser Actions 2 / 22 Chrome Extensions 3 / 22 What are browser
風 水. Heap Feng Shui in JavaScript. Alexander Sotirov. [email protected]
風 水 Heap Feng Shui in JavaScript Alexander Sotirov [email protected] Black Hat Europe 2007 Introduction What is Heap Feng Shui? the ancient art of arranging heap blocks in order to redirect the program
CS193D Handout 06 Winter 2004 January 26, 2004 Copy Constructor and operator=
CS193D Handout 06 Winter 2004 January 26, 2004 Copy Constructor and operator= We already know that the compiler will supply a default (zero-argument) constructor if the programmer does not specify one.
KS3 Computing Group 1 Programme of Study 2015 2016 2 hours per week
1 07/09/15 2 14/09/15 3 21/09/15 4 28/09/15 Communication and Networks esafety Obtains content from the World Wide Web using a web browser. Understands the importance of communicating safely and respectfully
CORBA Programming with TAOX11. The C++11 CORBA Implementation
CORBA Programming with TAOX11 The C++11 CORBA Implementation TAOX11: the CORBA Implementation by Remedy IT TAOX11 simplifies development of CORBA based applications IDL to C++11 language mapping is easy
Comp 411 Principles of Programming Languages Lecture 34 Semantics of OO Languages. Corky Cartwright Swarat Chaudhuri November 30, 20111
Comp 411 Principles of Programming Languages Lecture 34 Semantics of OO Languages Corky Cartwright Swarat Chaudhuri November 30, 20111 Overview I In OO languages, data values (except for designated non-oo
JavaScript: Client-Side Scripting. Chapter 6
JavaScript: Client-Side Scripting Chapter 6 Textbook to be published by Pearson Ed 2015 in early Pearson 2014 Fundamentals of Web http://www.funwebdev.com Development Section 1 of 8 WHAT IS JAVASCRIPT
Facebook Twitter YouTube Google Plus Website Email
PHP MySQL COURSE WITH OOP COURSE COVERS: PHP MySQL OBJECT ORIENTED PROGRAMMING WITH PHP SYLLABUS PHP 1. Writing PHP scripts- Writing PHP scripts, learn about PHP code structure, how to write and execute
XML Programming with PHP and Ajax
http://www.db2mag.com/story/showarticle.jhtml;jsessionid=bgwvbccenyvw2qsndlpskh0cjunn2jvn?articleid=191600027 XML Programming with PHP and Ajax By Hardeep Singh Your knowledge of popular programming languages
Tutorial: Building a Dojo Application using IBM Rational Application Developer Loan Payment Calculator
Tutorial: Building a Dojo Application using IBM Rational Application Developer Loan Payment Calculator Written by: Chris Jaun ([email protected]) Sudha Piddaparti ([email protected]) Objective In this
Modern Web Development with Dart. Alan Knight Google
Modern Web Development with Dart Alan Knight Google Smalltalk Industry Conference 2013 The Web As an application platform We want... Large, extensible widget set Simple, clean APIs Model/View separation
Static Taint-Analysis on Binary Executables
Static Taint-Analysis on Binary Executables Sanjay Rawat, Laurent Mounier, Marie-Laure Potet VERIMAG University of Grenoble October 2011 Static Taint-Analysis on Binary Executables 1/29 Outline 1 Introduction
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
Statically Checking API Protocol Conformance with Mined Multi-Object Specifications Companion Report
Statically Checking API Protocol Conformance with Mined Multi-Object Specifications Companion Report Michael Pradel 1, Ciera Jaspan 2, Jonathan Aldrich 2, and Thomas R. Gross 1 1 Department of Computer
Modern Web Development:
: HTML5, JavaScript, LESS and jquery Shawn Wildermuth One of the Minds, Wilder Minds LLC Microsoft MVP @shawnwildermuth http://wilderminds.com What it was like
Portals and Hosted Files
12 Portals and Hosted Files This chapter introduces Progress Rollbase Portals, portal pages, portal visitors setup and management, portal access control and login/authentication and recommended guidelines
How to create/avoid memory leak in Java and.net? Venkat Subramaniam [email protected] http://www.durasoftcorp.com
How to create/avoid memory leak in Java and.net? Venkat Subramaniam [email protected] http://www.durasoftcorp.com Abstract Java and.net provide run time environment for managed code, and Automatic
Introducing Apache Pivot. Greg Brown, Todd Volkert 6/10/2010
Introducing Apache Pivot Greg Brown, Todd Volkert 6/10/2010 Speaker Bios Greg Brown Senior Software Architect 15 years experience developing client and server applications in both services and R&D Apache
More on Objects and Classes
Software and Programming I More on Objects and Classes Roman Kontchakov Birkbeck, University of London Outline Object References Class Variables and Methods Packages Testing a Class Discovering Classes
OBJECT-ORIENTED JAVASCRIPT OBJECT-ORIENTED
THE PRINCIPLES OF OBJECT-ORIENTED OBJECT-ORIENTED JAVASCRIPT NICHOLAS C. ZAKAS www.allitebooks.com www.allitebooks.com The Principles of Object-Oriented JavaScript www.allitebooks.com The Principles of
Web Development using PHP (WD_PHP) Duration 1.5 months
Duration 1.5 months Our program is a practical knowledge oriented program aimed at learning the techniques of web development using PHP, HTML, CSS & JavaScript. It has some unique features which are as
Introduction: Abstract Data Types and Java Review
Introduction: Abstract Data Types and Java Review Computer Science E-119 Harvard Extension School Fall 2012 David G. Sullivan, Ph.D. Welcome to Computer Science E-119! We will study fundamental data structures.
CS 141: Introduction to (Java) Programming: Exam 1 Jenny Orr Willamette University Fall 2013
Oct 4, 2013, p 1 Name: CS 141: Introduction to (Java) Programming: Exam 1 Jenny Orr Willamette University Fall 2013 1. (max 18) 4. (max 16) 2. (max 12) 5. (max 12) 3. (max 24) 6. (max 18) Total: (max 100)
CIS 467/602-01: Data Visualization
CIS 467/602-01: Data Visualization HTML, CSS, SVG, (& JavaScript) Dr. David Koop Assignment 1 Posted on the course web site Due Friday, Feb. 13 Get started soon! Submission information will be posted Useful
Developing a Web Server Platform with SAPI Support for AJAX RPC using JSON
Revista Informatica Economică, nr. 4 (44)/2007 45 Developing a Web Server Platform with SAPI Support for AJAX RPC using JSON Iulian ILIE-NEMEDI, Bucharest, Romania, [email protected] Writing a custom web
Static Analysis for Independent App Developers
* Evaluated * OOPSLA * Artifact * AEC Consistent * Complete * Well Documented * Easy to Reuse * Static Analysis for Independent App Developers Lucas Brutschy Department of Computer Science ETH Zurich [email protected]
Advanced Java Client API
2012 coreservlets.com and Dima May Advanced Java Client API Advanced Topics Originals of slides and source code for examples: http://www.coreservlets.com/hadoop-tutorial/ Also see the customized Hadoop
µz An Efficient Engine for Fixed points with Constraints
µz An Efficient Engine for Fixed points with Constraints Kryštof Hoder, Nikolaj Bjørner, and Leonardo de Moura Manchester University and Microsoft Research Abstract. The µz tool is a scalable, efficient
Specialized Programme on Web Application Development using Open Source Tools
Specialized Programme on Web Application Development using Open Source Tools Objective: At the end of the course, Students will be able to: Understand various open source tools(programming tools and databases)
