Excel on the Java VM. Generating Fast Code from Spreadsheet Models. Peter Arrenbrecht codewise.ch / Abacus Research AG Submission ID: 30
|
|
- Sibyl Gregory
- 6 years ago
- Views:
Transcription
1 Excel on the Java VM Generating Fast Code from Spreadsheet Models Peter Arrenbrecht codewise.ch / Abacus Research AG Submission ID: 30
2 AGENDA > Problem: Customization Is Hard > Idea: Let Users Use Spreadsheets > Implementation: Abacus Formula Compiler 2
3 It's All About Customization > Calculation of key values varies From user to user Over time > Examples Prices and conditions Shipping rates Salary components Asset valuations Insurance premiums Risk estimates... Variations in employment terms Variations in local regulations 3
4 Traditional Customization Approaches > Custom development (options targeted at needs of specific customers) Hard to maintain due to code and data bloat Reduced quality in UI, documentation and testing ( it's only for a single customer ) Costly and slow for customer when he needs a change > Parametrization (options trying to capture reusable aspects of specific needs) Often hard to discover and configure; complex interplay Testing nightmare due to endless configuration combinations Hard to maintain due to code and data bloat Still costly and slow when customer needs unanticipated feature > Expression builder (generic expressions with access to relevant input values) Very costly to implement with sufficient flexibility, usability and quality Many implementations basically just support defining one-liners Can still lead to testing nightmare Can be slow when used heavily > Hard on both you and your customers 4
5 A Typical Expression Builder > Abacus Payroll: Definition of salary components (Lohn 411) > Fairly generic expression builder > Nice for simple cases > Hard for complex cases Basic set of operators, structured multi-line expressions Can reference input values and results of other calculations Can define simple one-liners quickly Grouping? If-then-else? Debugging? Documenting? Change control? Table lookup 5
6 Trying To Support Complex Cases > Abacus Payroll: Definition of lookup tables (Lohn 421) > Shortcomings Criteria can reference inputs or defined expressions So can values Separate UI To and fro with expressions Again no visual feedback etc. 6
7 Fixing the Expression Builder: For Users > Modelling power > Debugging / Verification > Documentation > Versioning Complex composition of basic functions (advanced functions are rarely needed) Named intermediate values to structure and to reuse code Multiple distinct cases with complex decision logic Lookup tables (price/rebate by category/threshold) with computed entries See effects of different sample input values to gain confidence in correctness Trace effects through intermediate values Trace and debug computations on actual data sets Allow to record test set of input/output values to be verified after system updates Annotate intermediate steps with to-the-point explanatory text Just a plain-text field requires too much duplication Can keep textual log of changes, but preferably keep log of old versions around
8 Solution: Spreadsheets (Excel, OpenOffice Calc) > Familiar to most users (at least those who would do customization) > Very good modelling power > Very interactive > Can be documented > Can be tracked Handling multiple distinct cases can be a little non-visual, but manageable Immediate feedback Dependency tracing What-if Goal finding Annotate individual cells Use colors and fonts Keep versions of files around at will (file system, blobs, version control) Compare versions of files Integrate changelog
9 But we need to add > A way to specify input and output values Ideas Especially a way to discover available inputs and expected outputs Excel-/OpenOffice-Plugin Decoupled: Users name input/output cells arbitrarily, then they can define bindings for these names in a separate step in your app > Access to actual input values for debugging > Running tests with sets of input and expected output values
10 Salary Component Revisited > Abacus supports same calculcation in a spreadsheet Immediate feedback Everything at a glance Keep notes Keep versions
11 Example > Abacus Service and Contract Management > Calculate the price of an Abacus ERP module Lots of compositions of simple functions Lots of decisions (IF) Lots of lookup tables Integrated documentation Changelog Notes on individual cells Use of colors and fonts
12 Fixing the Expression Builder: For Developers > Integrating the expression builder Access to input values and provided output values is an external API Needs all the care that should always go into an external API Decoupling, stability, discoverability, documentation > Testing the expression evaluation engine Usage patterns not predictable Need very high code coverage > Testing its use in the application > Performance Users can access input values in any order Keep input value accessors side-effect free Then testing input value accessors in isolation should do Usually not critical at first, when used in interactive applications But can quickly become so for batch updates
13 Solution: Abacus Formula Compiler (AFC) > Compiles formulaic content of spreadsheets to plain Java classes Supports Excel and OpenOffice formats (.xls,.xlsx,.ods) Supports a number of numeric data types (double, BigDecimal, scaled long) > Compiler and compiled classes run on a plain JRE > Performs well Does not require Excel or OpenOffice to compile or run engines Generates bytecode directly, so does not need a full JDK (tools.jar) But integrates a decompiler so you can look at generated code Compiled classes are JITted like any other Java class Tuned for heavy use of a bunch of computations Not for thousands of different computations each used rarely Cheap instantiation supports thread isolation via per-computation instances Choice of stateless mode or stateful mode that caches intermediate cell values
14 AFC continued (1) > Integrates well with application code > Handles repeating data Pulls input values from specified application-specific Java interfaces Supplies output values as implementations of application-specific Java interfaces So can provide custom computation strategy implementations in addition to classically coded default ones Binding of cells to input and output values can be fully controlled Optional simple by-name binding of input and output cells Designated spreadsheet areas are treated as repeating sections Iterates over iterables and arrays
15 Example > Compiling the Abacus ERP module price calculation Simple setup Uses and implements our own interfaces Can switch to BigDecimal Decompile to see generated Java code
16 AFC continued (2) > Modular design Compact runtime for loading and running precompiled engines Support for different spreadsheet formats Build spreadsheet models inmemory to replace homegrown expression engines > Extensively tested and documented > Available under GPL and commercially
17 AFC Internals > Compile-time constant folding using interpreter > Template methods Used by interpreter to compute subexpressions Decompiled at build-time to generate methods emitting equivalent byte-code > High-level functional language To implement complex operations Define SUM in terms of iteration and + Interpreted by interpreter Compiled to low-level constructs by compiler > Yes, we have developer documentation!
18 Summary > Users need to customize calculations > Use spreadsheets as their UI Well known, interactive, traceable Needs good application integration > Abacus Formula Compiler was built for this Integrates efficiently with your interfaces Compiles to fast code Can use BigDecimal for financial applications No Excel, OpenOffice, nor even a JDK needed In production use at Abacus Research AG Extensive tests Comprehensive documentation GPL and commercial version available > Still requires discipline to remain testable! > Spreadsheets are free of side-effects your APIs should be too
19 Peter Arrenbrecht codewise.ch Abacus Formula Compiler Abacus Research AG
TOPLink for WebLogic. Whitepaper. The Challenge: The Solution:
Whitepaper The Challenge: Enterprise JavaBeans (EJB) represents a new standard in enterprise computing: a component-based architecture for developing and deploying distributed object-oriented applications
More informationMATLAB 에서작업한응용프로그램의공유 : App 에서부터웹서비스까지
MATLAB 에서작업한응용프로그램의공유 : App 에서부터웹서비스까지 Application Engineer 엄준상 2013 The MathWorks, Inc. 1 Application Deployment with MATLAB Suppliers MATLAB Author Clients Organization Group Members Collaborators 2
More informationMatrex Table of Contents
Matrex Table of Contents Matrex...1 What is the equivalent of a spreadsheet in Matrex?...2 Why I should use Matrex instead of a spreadsheet application?...3 Concepts...4 System architecture in the future
More informationSeminar report Java Submitted in partial fulfillment of the requirement for the award of degree Of CSE
A Seminar report On Java Submitted in partial fulfillment of the requirement for the award of degree Of CSE SUBMITTED TO: www.studymafia.org SUBMITTED BY: www.studymafia.org 1 Acknowledgement I would like
More informationDomain Specific Languages for Financial Payoffs. Matthew Leslie Bank of America Merrill Lynch
Domain Specific Languages for Financial Payoffs Matthew Leslie Bank of America Merrill Lynch Outline Introduction What, How, and Why do we use DSLs in Finance? Implementation Interpreting, Compiling Performance
More informationDESIGN PATTERN - INTERVIEW QUESTIONS
DESIGN PATTERN - INTERVIEW QUESTIONS http://www.tutorialspoint.com/design_pattern/design_pattern_interview_questions.htm Copyright tutorialspoint.com Dear readers, these Design Pattern Interview Questions
More informationEvolution of Virtual Machine Technologies for Portability and Application Capture. Bob Vandette Java Hotspot VM Engineering Sept 2004
Evolution of Virtual Machine Technologies for Portability and Application Capture Bob Vandette Java Hotspot VM Engineering Sept 2004 Topics Virtual Machine Evolution Timeline & Products Trends forcing
More informationIntroduction to Visual Basic and Visual C++ Introduction to Java. JDK Editions. Overview. Lesson 13. Overview
Introduction to Visual Basic and Visual C++ Introduction to Java Lesson 13 Overview I154-1-A A @ Peter Lo 2010 1 I154-1-A A @ Peter Lo 2010 2 Overview JDK Editions Before you can write and run the simple
More informationPowered by. These slides are powered by Open Source softwares : Debian GNU Linux Beamer LaTeX mode LaTeX Emacs. Context. Last night OSGi saved my life
Powered by Context These slides are powered by Open Source softwares : Debian GNU Linux Beamer LaTeX mode LaTeX Emacs Course menu... Context 1 Context 2 3 4 5 Summary I Context the application Original
More informationLast class: OS and Architecture. OS and Computer Architecture
Last class: OS and Architecture OS and Computer Architecture OS Service Protection Interrupts System Calls IO Scheduling Synchronization Virtual Memory Hardware Support Kernel/User Mode Protected Instructions
More informationLast class: OS and Architecture. Chapter 3: Operating-System Structures. OS and Computer Architecture. Common System Components
Last class: OS and Architecture Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation
More informationHistory Introduction to Java Characteristics of Java Data types
Course Name: Advanced Java Lecture 1 Topics to be covered History Introduction to Java Characteristics of Java Data types What is Java? An Object-Oriented Programming Language developed at Sun Microsystems
More informationExcel 2007 Workbook Calculation Manual Default
Excel 2007 Workbook Calculation Manual Default Discusses how Excel determines the calculation mode. of the first worksheet to manual also changes the mode of calculation to manual in the other two sheets.
More informationDomain Specific Languages. Product Line Engineering
Using Domain Specific Languages in the context of Product Line Engineering Markus Voelter Independent/itemis voelter@acm.org Using Domain Specific Languages in the context of Product Line Engineering DSLs
More informationJava On Steroids: Sun s High-Performance Java Implementation. History
Java On Steroids: Sun s High-Performance Java Implementation Urs Hölzle Lars Bak Steffen Grarup Robert Griesemer Srdjan Mitrovic Sun Microsystems History First Java implementations: interpreters compact
More informationNumerical Methods in Scientific Computation
Numerical Methods in Scientific Computation Programming and Software Introduction to error analysis 1 Packages vs. Programming Packages MATLAB Excel Mathematica Maple Packages do the work for you Most
More informationSSQA Seminar Series. Server Side Testing Frameworks. Sachin Bansal Sr. Quality Engineering Manager Adobe Systems Inc. February 13 th, 2007
SSQA Seminar Series Server Side Testing Frameworks Sachin Bansal Sr. Quality Engineering Manager Adobe Systems Inc. February 13 th, 2007 1 Agenda Introduction Drivers for Server Side Testing Challenges
More informationA little History Domain Specific Languages Examples Tools Benefits A more theoretical View Programming and Modeling The LWES Project Bonus: Best
Domain Specific Languages Markus Voelter Independent/itemis voelter@acm.org A little History Domain Specific Languages Examples Tools Benefits A more theoretical View Programming and Modeling The LWES
More informationIntegrating MATLAB Analytics into Business-Critical Applications Marta Wilczkowiak Senior Applications Engineer MathWorks
Integrating MATLAB Analytics into Business-Critical Applications Marta Wilczkowiak Senior Applications Engineer MathWorks 2015 The MathWorks, Inc. 1 Problem statement Democratization: Is it possible to
More informationChapter 3: Operating-System Structures
Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation System Generation 3.1
More informationIntroduction to Sencha Ext JS
Introduction to Sencha Ext JS Olga Petrova olga@sencha.com Sales Engineer EMEA Agenda Use Case How It Works Advantages Demo Use case Ext JS a Javascript framework for building enterprise data-intensive
More informationObject-Oriented Design
Object-Oriented Design Lecture 14: Design Workflow Department of Computer Engineering Sharif University of Technology 1 UP iterations and workflow Workflows Requirements Analysis Phases Inception Elaboration
More informationModel Driven Testing Overview
Software and Verification Technologies Model Driven ing Overview July 2003 www.agedis.de w3.haifa.il.ibm.com\softwaretesting\gtcb IBM Internal Use Only IBM Labs in Haifa Outline Motivation Process Technology
More information1: Introduction to Object (1)
1: Introduction to Object (1) 김동원 2003.01.20 Overview (1) The progress of abstraction Smalltalk Class & Object Interface The hidden implementation Reusing the implementation Inheritance: Reusing the interface
More informationJAVA PERFORMANCE. PR SW2 S18 Dr. Prähofer DI Leopoldseder
JAVA PERFORMANCE PR SW2 S18 Dr. Prähofer DI Leopoldseder OUTLINE 1. What is performance? 1. Benchmarking 2. What is Java performance? 1. Interpreter vs JIT 3. Tools to measure performance 4. Memory Performance
More informationAutomated Test Data Design
Automating the Automation Automated Test Data Design How organizations can add Precision and Speed up their testing tasks A CONFORMIQ WHITEPAPER By Kimmo Nupponen 1 Abstract: Experimental evidence and
More informationBasic Programming Language Syntax
Java Created in 1990 by Sun Microsystems. Free compiler from Sun, commercial from many vendors. We use free (Sun) Java on UNIX. Compiling and Interpreting...are processes of translating a high-level programming
More informationDesign & Implementation Overview
P Fall 2017 Outline P 1 2 3 4 5 6 7 P P Ontological commitments P Imperative l Architecture: Memory cells variables Data movement (memory memory, CPU memory) assignment Sequential machine instruction execution
More informationOptimising large dynamic code bases.
Optimising large dynamic code bases. Who am I? Duncan MacGregor Lead Software Engineer on the Magik on Java project at General Electric in Cambridge Aardvark179 on twitter 2 What is Magik? Dynamic, weakly
More informationThe Emergence of Application Logic Compilers Stefan Dipper, SAP BW Development Sept, Public
The Emergence of Application Logic Compilers Stefan Dipper, SAP BW Development Sept, 2013 Public Agenda What is an application logic compiler? Why stored procedures History Domain specific language - Why
More informationFAQ: Advanced Functions
Question 1: What are formulas and functions? Answer 1: Formulas are a type of data that can be entered into a cell in Excel. Formulas begin with an equal sign and use mathematical operators to calculate
More informationEmulating Code In Radare2. pancake Lacon 2015
Emulating Code In Radare2 pancake Lacon 2015 Overview Emulation allows us to simulate the execution of code of the same or different CPU in order to understand what a specific snippet of code is doing
More informationQuantLib User Meeting 30 November Deriscope. by Ioannis Rigopoulos, owner of deriscope.com
QuantLib User Meeting 30 November 2017 Deriscope by Ioannis Rigopoulos, owner of deriscope.com Part 1 Architecture 1 The grand idea Map the compile-time C++ classes and respective run-time objects to User
More informationNotes of the course - Advanced Programming. Barbara Russo
Notes of the course - Advanced Programming Barbara Russo a.y. 2014-2015 Contents 1 Lecture 2 Lecture 2 - Compilation, Interpreting, and debugging........ 2 1.1 Compiling and interpreting...................
More informationDomain Specific Languages. Requirements (Engineering)
Domain Specific Languages and Requirements (Engineering) Andreas Graf Andreas.graf@itemis.de Markus Voelter www.voelter.de voelter@acm.org What are Requirements? a requirement is a singular documented
More informationServlet Performance and Apache JServ
Servlet Performance and Apache JServ ApacheCon 1998 By Stefano Mazzocchi and Pierpaolo Fumagalli Index 1 Performance Definition... 2 1.1 Absolute performance...2 1.2 Perceived performance...2 2 Dynamic
More informationEclipse technology in IFMS Interface Management System
Eclipse Finance Day 2013 Eclipse technology in IFMS Interface Management System Marc Schlienger A story today about Eclipse and IFMS SOA at Credit Suisse The construction of a System MDD in the large Leveraging
More informationCMPUT 695 Fall 2004 Assignment 2 Xelopes
CMPUT 695 Fall 2004 Assignment 2 Xelopes Paul Nalos, Ben Chu November 5, 2004 1 Introduction We evaluated Xelopes, a data mining library produced by prudsys 1. Xelopes is available for Java, C++, and CORBA
More informationProfiling & Optimization
Lecture 18 Sources of Game Performance Issues? 2 Avoid Premature Optimization Novice developers rely on ad hoc optimization Make private data public Force function inlining Decrease code modularity removes
More informationTopics in Object-Oriented Design Patterns
Software design Topics in Object-Oriented Design Patterns Material mainly from the book Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides; slides originally by Spiros Mancoridis;
More informationSage Intelligence Financial Reporting for Sage ERP X3 Release Notes. Gina Dowling
Sage Intelligence Financial Reporting for Sage ERP X3 Release Notes Gina Dowling 01.01.2014 Table of Contents 1.0 Release Notes 3 Introduction 3 2.0 New Features 4 New Report Designer 4 2.1.1 Task Pane
More informationArchitectural Styles I
Architectural Styles I Software Architecture VO/KU (707023/707024) Roman Kern KTI, TU Graz 2015-01-07 Roman Kern (KTI, TU Graz) Architectural Styles I 2015-01-07 1 / 86 Outline 1 Non-Functional Concepts
More informationLecture 1 Introduction to Android. App Development for Mobile Devices. App Development for Mobile Devices. Announcement.
CSCE 315: Android Lectures (1/2) Dr. Jaerock Kwon App Development for Mobile Devices Jaerock Kwon, Ph.D. Assistant Professor in Computer Engineering App Development for Mobile Devices Jaerock Kwon, Ph.D.
More informationAutomating Administration with Windows PowerShell 2.0
Automating Administration with Windows PowerShell 2.0 Course No. 10325 5 Days Instructor-led, Hands-on Introduction This course provides students with the knowledge and skills to utilize Windows PowerShell
More informationWebAssembly what? why? whither? Ben L. Titzer Andreas Rossberg Google Germany
WebAssembly what? why? whither? Ben L. Titzer Andreas Rossberg Google Germany What is WebAssembly? A portable, compact, binary code format Low-level execution model with native unboxed types Suitable as
More informationOS and Computer Architecture. Chapter 3: Operating-System Structures. Common System Components. Process Management
Last class: OS and Architecture OS and Computer Architecture OS Service Protection Interrupts System Calls IO Scheduling Synchronization Virtual Memory Hardware Support Kernel/User Mode Protected Instructions
More informationSista: 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 informationJust-In-Time Compilers & Runtime Optimizers
COMP 412 FALL 2017 Just-In-Time Compilers & Runtime Optimizers Comp 412 source code IR Front End Optimizer Back End IR target code Copyright 2017, Keith D. Cooper & Linda Torczon, all rights reserved.
More informationMethod-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 informationDevOps and Maven. Eamonn de Leastar Dr. Siobhán Drohan Produced by:
DevOps and Maven Produced by: Eamonn de Leastar (edeleastar@wit.ie) Dr. Siobhán Drohan (sdrohan@wit.ie) Department of Computing and Mathematics http://www.wit.ie/ Dev team created a solution for production.
More informationTapestry. Code less, deliver more. Rayland Jeans
Tapestry Code less, deliver more. Rayland Jeans What is Apache Tapestry? Apache Tapestry is an open-source framework designed to create scalable web applications in Java. Tapestry allows developers to
More informationAnalyzing SQL Statements with Complex Event Processing (CEP)
Analyzing SQL Statements with Complex Event Processing (CEP) Henrik Dittmar Senior Consultant henrik.dittmar@trivadis.com Stuttgart, 19.05.2011 Agenda Data is always part of the game. Introduction The
More informationAdvanced Software Development with MATLAB
Advanced Software Development with MATLAB From research and prototype to production 2017 The MathWorks, Inc. 1 What Are Your Software Development Concerns? Accuracy Compatibility Cost Developer Expertise
More informationACA Cloud Compliance Solution
ACA Cloud Compliance Solution Year End Quick Reference Guide Last Update 1/16/2018 125 N. Kickapoo Lincoln, Illinois 62656 integrity-data.com 888.786.6162 **Updated Documentation** visit our website to
More informationMap Reduce. Yerevan.
Map Reduce Erasmus+ @ Yerevan dacosta@irit.fr Divide and conquer at PaaS 100 % // Typical problem Iterate over a large number of records Extract something of interest from each Shuffle and sort intermediate
More informationObject-oriented Compiler Construction
1 Object-oriented Compiler Construction Extended Abstract Axel-Tobias Schreiner, Bernd Kühl University of Osnabrück, Germany {axel,bekuehl}@uos.de, http://www.inf.uos.de/talks/hc2 A compiler takes a program
More informationSeminar report Software reuse
A Seminar report On Software reuse Submitted in partial fulfillment of the requirement for the award of degree of Bachelor of Technology in Computer Science SUBMITTED TO: www.studymafia.com SUBMITTED BY:
More informationChapter 3: Operating-System Structures
Chapter 3: Operating-System Structures System Components Operating System Services System Calls POSIX System Programs System Structure Virtual Machines System Design and Implementation System Generation
More informationLECTURE 3 ADMINISTRATION SECTION -A
LECTURE 3 SYSTEM PROGRAMMING & SYSTEM ADMINISTRATION SECTION -A INTRODUCTION Interpreters Compilers Text editors Debug monitors Programming environment INTERPRETERS An interpreter may be a program that
More informationChapter 3: Operating-System Structures
1 Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation System Generation 3.1
More informationBeyond the Basics with nvision and Query for PeopleSoft 9.2
Beyond the Basics with nvision and Query for PeopleSoft 9.2 Session ID: 101180 Prepared by: Millie Babicz Managing Director SpearMC Consulting @SpearMC Welcome and Please: Silence Audible Devices Note
More informationPrinciples of Computer Game Design and Implementation. Lecture 3
Principles of Computer Game Design and Implementation Lecture 3 We already knew Introduction to this module History of video High-level information for a game (such as Game platform, player motivation,
More informationFusion Registry 9 SDMX Data and Metadata Management System
Registry 9 Data and Management System Registry 9 is a complete and fully integrated statistical data and metadata management system using. Whether you require a metadata repository supporting a highperformance
More informationProgramming in Scala Second Edition
Programming in Scala Second Edition Martin Odersky, Lex Spoon, Bill Venners artima ARTIMA PRESS WALNUT CREEK, CALIFORNIA Contents Contents List of Figures List of Tables List of Listings Foreword Foreword
More informationAdvanced Financial Modeling Macros. EduPristine
Advanced Financial Modeling Macros EduPristine www.edupristine.com/ca Agenda Introduction to Macros & Advanced Application Building in Excel Introduction and context Key Concepts in Macros Macros as recorded
More informationLecture 1: Introduction to Java
Lecture 1: Introduction to Java 1 Programs Computer programs, known as software, are instructions to the computer. You tell a computer what to do through programs. Without programs, a computer is an empty
More informationThe 60-Minute Guide to Development Tools for IBM Lotus Domino, IBM WebSphere Portal, and IBM Workplace Applications
The 60-Minute Guide to Development Tools for IBM Lotus Domino, IBM WebSphere Portal, and IBM Workplace Stuart Duguid Portal & Workplace Specialist TechWorks, IBM Asia-Pacific Overview / Scope The aim of
More informationProfiling & Optimization
Lecture 11 Sources of Game Performance Issues? 2 Avoid Premature Optimization Novice developers rely on ad hoc optimization Make private data public Force function inlining Decrease code modularity removes
More informationAgenda. CSE P 501 Compilers. Java Implementation Overview. JVM Architecture. JVM Runtime Data Areas (1) JVM Data Types. CSE P 501 Su04 T-1
Agenda CSE P 501 Compilers Java Implementation JVMs, JITs &c Hal Perkins Summer 2004 Java virtual machine architecture.class files Class loading Execution engines Interpreters & JITs various strategies
More informationWorking with Metal Overview
Graphics and Games #WWDC14 Working with Metal Overview Session 603 Jeremy Sandmel GPU Software 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission
More informationBy Simplicity Software Technologies Inc.
Now Available in both SQL Server Express and Microsoft Access Editions By Simplicity Software Technologies Inc. Microsoft, Access and SQL Server Express are trademarks and or products of the Microsoft
More informationJust-In-Time Compilation
Just-In-Time Compilation Thiemo Bucciarelli Institute for Software Engineering and Programming Languages 18. Januar 2016 T. Bucciarelli 18. Januar 2016 1/25 Agenda Definitions Just-In-Time Compilation
More informationRunning class Timing on Java HotSpot VM, 1
Compiler construction 2009 Lecture 3. A first look at optimization: Peephole optimization. A simple example A Java class public class A { public static int f (int x) { int r = 3; int s = r + 5; return
More informationModel-View-Controller Patterns and Frameworks. MVC Context
Model-View-Controller Patterns and Frameworks MVC Context The purpose of many computer systems is to retrieve data from a data store and display it for the user. The user may then modify the data in keeping
More informationMoving from a Paper to Paperless validation effort and how to get the most efficient mix of Manual vs. Automated testing.
Moving from a Paper to Paperless validation effort and how to get the most efficient mix of Manual vs. Automated testing. Overview The desire to use tools to increase validation productivity with the consequent
More informationWho am I? Wireless Online Game Development for Mobile Device. What games can you make after this course? Are you take the right course?
Who am I? Wireless Online Game Development for Mobile Device Lo Chi Wing, Peter Lesson 1 Email: Peter@Peter-Lo.com I123-1-A@Peter Lo 2007 1 I123-1-A@Peter Lo 2007 2 Are you take the right course? This
More informationRESTful API Design APIs your consumers will love
RESTful API Design APIs your consumers will love Matthias Biehl RESTful API Design Copyright 2016 by Matthias Biehl All rights reserved, including the right to reproduce this book or portions thereof in
More informationCreating a World Class Build System
Creating a World Class Build System Scott Estes Release Management and Ops Citrix Systems, Inc. 10 June 2011 AGENDA Getting Started Planning and Design Implementation and Execution Optimizing the System
More informationScaling up: How we made millions of domains happier. Tom Arnfeld, DNS Engineer Pavel Odintsov, DNS Engineer
Scaling up: How we made millions of domains happier Tom Arnfeld, DNS Engineer Pavel Odintsov, DNS Engineer Cloudflare DNS Services Authoritative DNS IPv4 and IPv6 support Low latency propagation DNSSEC
More informationJava and i. A Salesforce Recipe: Integrating Java and RPGLE
Java and i A Salesforce Recipe: Integrating Java and RPGLE Dr. Paul Coleman Systems Integration Consultant paul.coleman@averyinstitute.com April 13, 2011 Introduction Problem: Legacy RPGLE CRM to Salesforce.com
More informationMODULE 1 JAVA PLATFORMS. Identifying Java Technology Product Groups
MODULE 1 JAVA PLATFORMS Identifying Java Technology Product Groups Java SE Platform Versions Year Developer Version (JDK) Platform 1996 1.0 1 1997 1.1 1 1998 1.2 2 2000 1.3 2 2002 1.4 2 2004 1.5 5 2006
More informationLecture 1: Preliminaries
Lecture 1: Preliminaries Edgardo Molina Department of Computer Science City College of New York August 30, 2011 Edgardo Molina (CS@CCNY) Lecture 1 August 30, 2011 1 / 44 Info and Schedule Course Info and
More informationOur Hall of Fame or Shame candidate for today is the command ribbon, which was introduced in Microsoft Office The ribbon is a radically
1 Our Hall of Fame or Shame candidate for today is the command ribbon, which was introduced in Microsoft Office 2007. The ribbon is a radically different user interface for Office, merging the menubar
More informationCSc 453 Interpreters & Interpretation
CSc 453 Interpreters & Interpretation Saumya Debray The University of Arizona Tucson Interpreters An interpreter is a program that executes another program. An interpreter implements a virtual machine,
More informationChapter 1 INTRODUCTION SYS-ED/ COMPUTER EDUCATION TECHNIQUES, INC.
hapter 1 INTRODUTION SYS-ED/ OMPUTER EDUATION TEHNIQUES, IN. Objectives You will learn: Java features. Java and its associated components. Features of a Java application and applet. Java data types. Java
More informationTrusted Components. Reuse, Contracts and Patterns. Prof. Dr. Bertrand Meyer Dr. Karine Arnout
1 Last update: 2 November 2004 Trusted Components Reuse, Contracts and Patterns Prof. Dr. Bertrand Meyer Dr. Karine Arnout 2 Lecture 5: Design patterns Agenda for today 3 Overview Benefits of patterns
More informationTHE USE OF APL IN SIMCORP DIMENSION
THE USE OF APL IN SIMCORP DIMENSION NIELS HALLENBERG RELEASE TRAIN ENGINEER, DIRECTOR DYALOG 16, GLASGOW OUTLINE DYALOG 16 2016-10-12 SimCorp at a Glance People in Development Current Technology Stack
More informationSystems Design and Implementation I.4 Naming in a Multiserver OS
Systems Design and Implementation I.4 Naming in a Multiserver OS System, SS 2009 University of Karlsruhe 06.5.2009 Jan Stoess University of Karlsruhe The Issue 2 The Issue In system construction we combine
More informationVariability differences among products in PL. Variability in PLE. Language Workbenches. Language Workbenches. Product Line Engineering
PPL 2009 Keynote Markus Voelter Indepenent/itemis voelter@acm.org http://www.voelter.de Language Workbenches in Product Line Engineering Variability in PLE Language Workbenches in Domain Specific Languages
More informationBeyond 1001 Dedicated Data Service Instances
Beyond 1001 Dedicated Data Service Instances Introduction The Challenge Given: Application platform based on Cloud Foundry to serve thousands of apps Application Runtime Many platform users - who don
More informationPaaS Cloud mit Java. Eberhard Wolff, Principal Technologist, SpringSource A division of VMware VMware Inc. All rights reserved
PaaS Cloud mit Java Eberhard Wolff, Principal Technologist, SpringSource A division of VMware 2009 VMware Inc. All rights reserved Agenda! A Few Words About Cloud! PaaS Platform as a Service! Google App
More informationSoftware 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 informationCSE 501: Compiler Construction. Course outline. Goals for language implementation. Why study compilers? Models of compilation
CSE 501: Compiler Construction Course outline Main focus: program analysis and transformation how to represent programs? how to analyze programs? what to analyze? how to transform programs? what transformations
More informationReview Software Engineering October, 7, Adrian Iftene
Review Software Engineering October, 7, 2013 Adrian Iftene adiftene@info.uaic.ro Software engineering Basics Definition Development models Development activities Requirement analysis Modeling (UML Diagrams)
More informationWeb UI Dos and Don ts
Web UI Dos and Don ts 1. A One Column Layout instead of multi-columns a. A one column layout gives you more control over your narrative. It guides your readers in a more predictable way from top to bottom.
More informationINTRODUCTION BACKGROUND DISCOVERER. Dan Vlamis, Vlamis Software Solutions, Inc. DISCOVERER PORTLET
FRONT-END TOOLS TO VIEW OLAP DATA Dan Vlamis, Vlamis Software Solutions, Inc. dvlamis@vlamis.com INTRODUCTION Discoverer release 10g uses BI Beans to present Oracle OLAP data. It gets its power from BI
More informationSOLUTION BRIEF CA TEST DATA MANAGER FOR HPE ALM. CA Test Data Manager for HPE ALM
SOLUTION BRIEF CA TEST DATA MANAGER FOR HPE ALM CA Test Data Manager for HPE ALM Generate all the data needed to deliver fully tested software, and export it directly into Hewlett Packard Enterprise Application
More informationChapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on
Chapter 2: Operating-System Structures Operating System Concepts 9 th Edit9on Silberschatz, Galvin and Gagne 2013 Chapter 2: Operating-System Structures 1. Operating System Services 2. User Operating System
More informationMEAP Edition Manning Early Access Program WebAssembly in Action Version 1
MEAP Edition Manning Early Access Program WebAssembly in Action Version 1 Copyright 2018 Manning Publications For more information on this and other Manning titles go to www.manning.com welcome Thank you
More informationAutomated testing of embedded systems in medical device development
Automated testing of embedded systems in medical device development MedConf 2011 Munich 06 Oct 2011 Mechatronic AG Thomas Jetter & Sven Rippel MedConf 2011 - Munich, 06 Oct 2011 1 Mechatronic AG Founded
More information