Using EDA Databases: Milkyway & OpenAccess

Size: px
Start display at page:

Download "Using EDA Databases: Milkyway & OpenAccess"

Transcription

1 Using EDA Databases: Milkyway & OpenAccess Enabling and Using Scripting Languages with Milkyway and OpenAccess Don Amundson Khosro Khakzadi 2006 LSI Logic Corporation 1

2 Outline History Choice Of Scripting Language When To Use Scripting Language When Not To Use Scripting Language Python For OpenAccess & Milkyway Summary Something Completely Different Backup Slides 2

3 History Internal CAD Commercial CAD 2006 LSI Logic Corporation 3

4 History Flexstream LSI Internal CAD LSI Proprietary CAD system Data base API written in C Data base functions return error code that must be checked after each function call Global variables, Memory management LSI Internal Common API Written in C++ Use C++ exception rather that check return code Abstraction layer to hide the data base Main objective was to substantially reduce porting cost of internal tools when data base changes Python wrappers written for the common API To provide rapid prototyping capability Ease of use for Engineers LSI Proprietary CAD system flavor of this API developed Python wrappers are basically free Implementation is a number of #include s 4

5 History Third party CAD Synopsys (Avant!) Same characteristics as LSI Proprietary CAD system Data base API (Milkyway) written in C Data base functions return error code Applications must manage memory allocated by API At the time certain operations not available in C (scheme only) Milkyway Flavor of LSI Common API Same motivation as LSI Internal Common API - Written in C++ - Object oriented - Use C++ exception rather that check return code - Abstraction layer to hide the data base - Substantially reduce porting cost of internal tools Python wrappers are basically free - Implementation is a number of #include s Other Flavors Of LSI Common API Minor porting cost This allowed existing programs written for LSI Proprietary CAD system to port by simply including new header files and recompiling. Minor changes to the program startup and run time environment specific code. 5

6 History Third party CAD API Based Applications API Layer (App side) API Layer (DB side) GUI Forms API API OpenAccess V1 3 rd Party Database LSI Database Utilities Tcl/Tk 6

7 History Third party CAD API Based Applications OpenAccess 2.0 GUI Forms Decided to Natively Adopt OA 2.x As Common API Utilities Tcl/Tk 7

8 Choice of Scripting Language PYTHON TCL JAVA 2006 LSI Logic Corporation 8

9 PYTHON 9

10 Choice of Scripting Language PYTHON Python Reasons LSI chose Python More proficient in python than Tcl. Python is an object oriented language, this results in a easy and clean mapping to class based languages such as C++ Easy to learn thus ideal to use by engineers who may not be interested in hard core programming Python provides you with a good environment for quickly developing an initial prototype

11 Choice of Scripting Language TCL TCL Reasons LSI chose Python Like Python, Tcl is usable as an application extension language, as well as a stand-alone programming language. However, Tcl, which traditionally stores all data as strings, is weak on data structures Better suited for pure script programming and good choice for command interpreters. Tcl scripts can be useful and efficient if they grow to no larger than a few pages, and if they manage a relatively small amount of data. 11

12 Choice of Scripting Language JAVA Java Reasons LSI chose Python Java was in its infancy. (Circa 1996) Java will be the choice for LSI in the future. Java's design is friendlier to glue languages than C. Both Java's type safety and the existence of a reflection API make it reasonably easy to automatically generate wrappers that allow Python programmers to access Java packages. With availability of open source development tools such as Eclipse we believe JAVA will become the scripting language of choice at LSI. Eclipse - Eclipse is an open source community whose projects are focused on providing an extensible development platform and application frameworks for building software. 12

13 When To Use Scripting Language Data Base Conversion Data Base Browser Prototype Software Small Tasks 2006 LSI Logic Corporation 13

14 When To Use Scripting Language Milkyway To OpenAccess MW to OA Python App 5:50 min OA to MW Python App 16 sec In Memory Interpretive Translators Python Interface Milkyway Python Interface OpenAccess File Based Compiled Translators DEF Interface DEF Interface DEF DEF Interface DEF Interface File 5:15 min 75k gates + 3 rams DEF DEF File File 3:02 min + HAND edits 14

15 Milkyway CHIP CELL OpenAccess 15

16 When to use scripting language Browse Milkyway 16

17 17

18 When to use scripting language Browse OpenAccess 18

19 When Not To Use Scripting Language Complex Data Structures Complex Algorithm Maintenance 2006 LSI Logic Corporation 19

20 When not to use scripting language Cycle intensive programs such as DRC, Placement or Routing. These may be prototyped in a language like python but will not be useful in production Example Flexstream to Milkyway Not the same problem as Milkyway to OA Different connectivity model requires converting edge connected shapes to center line connected shapes DRC algorithm FlexStream 1.0 Avant! 20

21 When not to use scripting language Flexstream to Milkyway Insert WIRE 21

22 Python For OpenAccess & Milkyway 2006 LSI Logic Corporation 22

23 Python For Milkyway Milkyway Flavor of LSI Internal Common AP Difficult to write Python wrappers for Milkyway API Common API makes writing python wrappers relatively easy string AvantNet :: Name() const { if (!ObjectId() ) return string(); // Return empty String char * name = NULL; // Milkyway MWXDb_Get_name() will allocate memory // for the net name, so this method is responsible for the memory int32 rc = MWXDb_Get_Net_name ( CellId(), ObjectId(), &name ); if (!AvantApiMWXError(rc,"Find Net Name") ) // throw exception or issue error message return string(); // if in message mode string result = name; free(name); // Further, certain names (i.e. layer names) may not be freed. return result ; } Python wrappers ( for the Common API ) Usable for any data base static PyObject* PySdbNet_get_name(PySdbNetObject *ob,pyobject* args) { if (!PySdbLibraryObjectValidate(ob->v.Container().Library())) return NULL; return PyString_FromCString(ob->v.Name()); } 23

24 Python For Milkyway Python Wrapper (Milkyway Flavor of API) #define PDPY_AVANTI_API #include "so_sdb_avant.h #include "pdpy_net_c.h (#define SdbNet AvantNet) 24

25 Python for OpenAccess Code is auto-generated directly from header files We considered SWIG and BOOST PYTHON Reduce maintenance with code updates Each OA type maps to a real Python type Python API matches C++ API as much as possible API Header Files Code Generator Hint Information Extension Code 25

26 SUMMARY 2006 LSI Logic Corporation 26

27 SUMMARY PYTHON & TCL Are used extensively at LSI Both provide an interpreted high-level programming environment. Widely available and well supported. Free Python has been historically used as the primary scripting language for programs performing complex operations on large data bases Familiarity. Easy to manage large programs. Rapid prototyping Component gluing Flexibility, Interactivity, Debugging, Testing, etc. TCL has been historically used as embedded command processor for applications. Works well when program is small, the amount of data being managed is small & the data structures map well to strings. Not particularly easy to code programs that need to perform complex operations on large data bases, using complex data structures. 27

28 SUMMARY JAVA LSI Common API was developed when JAVA was in its infancy JAVA is very well supported and its feature set is growing at a much faster rate than Tcl or Python. Productivity gains achieved through Eclipse are such that we may not have a choice but to move to JAVA. LSI is considering developing JAVA wrappers for OpenAccess 2.2.x. 28

29 THANK YOU 2006 LSI Logic Corporation 29

30 And Now For Something Completely Different Can you guess the following language? Hint :! English class HELLO_WORLD create make feature make is do io.put_string ("Hello, world!%n") end end 30

The GoldenGate Working Group

The GoldenGate Working Group The GoldenGate Working Group Facing the Challenges of CAD System Integration Synthesis Place&Route DB1 DB2 Parasitic Extraction 2004 - Synopsys Interoperability Forum Jim Wilmore April 1, 2004 The GoldenGate

More information

Rapid Software Development with OpenAccess. Dean Marvin Exec Director, Product Development

Rapid Software Development with OpenAccess. Dean Marvin Exec Director, Product Development Rapid Software Development with OpenAccess Dean Marvin Exec Director, Product Development Presentation Overview Conditions for rapid OA development Discussion of development styles C++ object oriented

More information

Interoperability Developer s Forum. Milkyway Developer s Track April 1, 2003

Interoperability Developer s Forum. Milkyway Developer s Track April 1, 2003 Interoperability Developer s Forum Milkyway Developer s Track April 1, 2003 Interoperability Developer s Forum Milkyway Technical Track Agenda 1:45PM 2:30PM 2:45PM 3:30PM A User s Perspective John McGehee,

More information

USE OF PYTHON AS A SATELLITE OPERATIONS AND TESTING AUTOMATION LANGUAGE

USE OF PYTHON AS A SATELLITE OPERATIONS AND TESTING AUTOMATION LANGUAGE USE OF PYTHON AS A SATELLITE OPERATIONS AND TESTING AUTOMATION LANGUAGE Gonzalo Garcia VP of Operations, USA Property of GMV All rights reserved INTRODUCTION Property of GMV All rights reserved INTRODUCTION

More information

Python, C++ and SWIG

Python, C++ and SWIG Robin Dunn Software Craftsman O Reilly Open Source Convention July 21 25, 2008 Slides available at http://wxpython.org/oscon2008/ Python & C++ Comparisons Each is a general purpose programming language,

More information

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,

More information

Java CPD (I) Frans Coenen Department of Computer Science

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

More information

02 B The Java Virtual Machine

02 B The Java Virtual Machine 02 B The Java Virtual Machine CS1102S: Data Structures and Algorithms Martin Henz January 22, 2010 Generated on Friday 22 nd January, 2010, 09:46 CS1102S: Data Structures and Algorithms 02 B The Java Virtual

More information

First Java Programs. V. Paúl Pauca. CSC 111D Fall, 2015. Department of Computer Science Wake Forest University. Introduction to Computer Science

First Java Programs. V. Paúl Pauca. CSC 111D Fall, 2015. Department of Computer Science Wake Forest University. Introduction to Computer Science First Java Programs V. Paúl Pauca Department of Computer Science Wake Forest University CSC 111D Fall, 2015 Hello World revisited / 8/23/15 The f i r s t o b l i g a t o r y Java program @author Paul Pauca

More information

Lesson 06: Basics of Software Development (W02D2

Lesson 06: Basics of Software Development (W02D2 Lesson 06: Basics of Software Development (W02D2) Balboa High School Michael Ferraro Lesson 06: Basics of Software Development (W02D2 Do Now 1. What is the main reason why flash

More information

CS 106 Introduction to Computer Science I

CS 106 Introduction to Computer Science I CS 106 Introduction to Computer Science I 01 / 21 / 2014 Instructor: Michael Eckmann Today s Topics Introduction Homework assignment Review the syllabus Review the policies on academic dishonesty and improper

More information

Introduction Our choice Example Problem Final slide :-) Python + FEM. Introduction to SFE. Robert Cimrman

Introduction Our choice Example Problem Final slide :-) Python + FEM. Introduction to SFE. Robert Cimrman Python + FEM Introduction to SFE Robert Cimrman Department of Mechanics & New Technologies Research Centre University of West Bohemia Plzeň, Czech Republic April 3, 2007, Plzeň 1/22 Outline 1 Introduction

More information

Chapter 1 Java Program Design and Development

Chapter 1 Java Program Design and Development presentation slides for JAVA, JAVA, JAVA Object-Oriented Problem Solving Third Edition Ralph Morelli Ralph Walde Trinity College Hartford, CT published by Prentice Hall Java, Java, Java Object Oriented

More information

Visualisation in the Google Cloud

Visualisation in the Google Cloud Visualisation in the Google Cloud by Kieran Barker, 1 School of Computing, Faculty of Engineering ABSTRACT Providing software as a service is an emerging trend in the computing world. This paper explores

More information

Written by the Red Hat Eclipse Engineering Team Revision 3. October 2003

Written by the Red Hat Eclipse Engineering Team Revision 3. October 2003 ! " $#&%'() Abstract This white paper provides information on Red Hat Developer Suite, a member of the Red Hat Applications product family. It describes the goals of Red Hat Developer Suite, the Eclipse

More information

The Decaffeinated Robot

The Decaffeinated Robot Developing on without Java Texas Linux Fest 2 April 2011 Overview for Why? architecture Decaffeinating for Why? architecture Decaffeinating for Why choose? Why? architecture Decaffeinating for Why choose?

More information

AQA GCSE in Computer Science Computer Science Microsoft IT Academy Mapping

AQA GCSE in Computer Science Computer Science Microsoft IT Academy Mapping AQA GCSE in Computer Science Computer Science Microsoft IT Academy Mapping 3.1.1 Constants, variables and data types Understand what is mean by terms data and information Be able to describe the difference

More information

Generating Automated Test Scripts for AltioLive using QF Test

Generating Automated Test Scripts for AltioLive using QF Test Generating Automated Test Scripts for AltioLive using QF Test Author: Maryam Umar Contents 1. Introduction 2 2. Setting up QF Test 2 3. Starting an Altio application 3 4. Recording components 5 5. Performing

More information

Design Compiler Graphical Create a Better Starting Point for Faster Physical Implementation

Design Compiler Graphical Create a Better Starting Point for Faster Physical Implementation Datasheet Create a Better Starting Point for Faster Physical Implementation Overview Continuing the trend of delivering innovative synthesis technology, Design Compiler Graphical delivers superior quality

More information

How To Design A Chip Layout

How To Design A Chip Layout Spezielle Anwendungen des VLSI Entwurfs Applied VLSI design (IEF170) Course and contest Intermediate meeting 3 Prof. Dirk Timmermann, Claas Cornelius, Hagen Sämrow, Andreas Tockhorn, Philipp Gorski, Martin

More information

IRF2000 IWL3000 SRC1000 Application Note - Develop your own Apps with OSGi - getting started

IRF2000 IWL3000 SRC1000 Application Note - Develop your own Apps with OSGi - getting started Version 2.0 Original-Application Note ads-tec GmbH IRF2000 IWL3000 SRC1000 Application Note - Develop your own Apps with OSGi - getting started Stand: 28.10.2014 ads-tec GmbH 2014 IRF2000 IWL3000 SRC1000

More information

www.virtualians.pk CS506 Web Design and Development Solved Online Quiz No. 01 www.virtualians.pk

www.virtualians.pk CS506 Web Design and Development Solved Online Quiz No. 01 www.virtualians.pk CS506 Web Design and Development Solved Online Quiz No. 01 Which of the following is a general purpose container? JFrame Dialog JPanel JApplet Which of the following package needs to be import while handling

More information

Example of Standard API

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

More information

System Structures. Services Interface Structure

System Structures. Services Interface Structure System Structures Services Interface Structure Operating system services (1) Operating system services (2) Functions that are helpful to the user User interface Command line interpreter Batch interface

More information

Engineering Change Order (ECO) Support in Programmable Logic Design

Engineering Change Order (ECO) Support in Programmable Logic Design White Paper Engineering Change Order (ECO) Support in Programmable Logic Design A major benefit of programmable logic is that it accommodates changes to the system specification late in the design cycle.

More information

Embedded Software development Process and Tools: Lesson-3 Host and Target Machines

Embedded Software development Process and Tools: Lesson-3 Host and Target Machines Embedded Software development Process and Tools: Lesson-3 Host and Target Machines 1 1. Host-Target Based Development Approach 2 Host-Target System Development Approach During development process, a host

More information

Andreas Burghart 6 October 2014 v1.0

Andreas Burghart 6 October 2014 v1.0 Yocto Qt Application Development Andreas Burghart 6 October 2014 Contents 1.0 Introduction... 3 1.1 Qt for Embedded Linux... 3 1.2 Outline... 4 1.3 Assumptions... 5 1.4 Corrections... 5 1.5 Version...

More information

Chapter 13: Program Development and Programming Languages

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

More information

Chapter 3.2 C++, Java, and Scripting Languages. The major programming languages used in game development.

Chapter 3.2 C++, Java, and Scripting Languages. The major programming languages used in game development. Chapter 3.2 C++, Java, and Scripting Languages The major programming languages used in game development. C++ C used to be the most popular language for games Today, C++ is the language of choice for game

More information

CSC230 Getting Starting in C. Tyler Bletsch

CSC230 Getting Starting in C. Tyler Bletsch CSC230 Getting Starting in C Tyler Bletsch What is C? The language of UNIX Procedural language (no classes) Low-level access to memory Easy to map to machine language Not much run-time stuff needed Surprisingly

More information

CS 253: Intro to Systems Programming

CS 253: Intro to Systems Programming CS 253: Intro to Systems Programming Spring 2014 Amit Jain, Shane Panter, Marissa Schmidt Department of Computer Science College of Engineering Boise State University Logistics Instructor: Amit Jain http://cs.boisestate.edu/~amit

More information

Language Evaluation Criteria. Evaluation Criteria: Readability. Evaluation Criteria: Writability. ICOM 4036 Programming Languages

Language Evaluation Criteria. Evaluation Criteria: Readability. Evaluation Criteria: Writability. ICOM 4036 Programming Languages ICOM 4036 Programming Languages Preliminaries Dr. Amirhossein Chinaei Dept. of Electrical & Computer Engineering UPRM Spring 2010 Language Evaluation Criteria Readability: the ease with which programs

More information

CHAPTER 1 ENGINEERING PROBLEM SOLVING. Copyright 2013 Pearson Education, Inc.

CHAPTER 1 ENGINEERING PROBLEM SOLVING. Copyright 2013 Pearson Education, Inc. CHAPTER 1 ENGINEERING PROBLEM SOLVING Computing Systems: Hardware and Software The processor : controls all the parts such as memory devices and inputs/outputs. The Arithmetic Logic Unit (ALU) : performs

More information

Introduction (Apps and the Android platform)

Introduction (Apps and the Android platform) Introduction (Apps and the Android platform) CE881: Mobile and Social Application Programming Simon Lucas & Spyros Samothrakis January 13, 2015 1 / 38 1 2 3 4 2 / 38 Course Structure 10 weeks Each week:

More information

A Sample OFBiz application implementing remote access via RMI and SOAP Table of contents

A Sample OFBiz application implementing remote access via RMI and SOAP Table of contents A Sample OFBiz application implementing remote access via RMI and SOAP Table of contents 1 About this document... 2 2 Introduction... 2 3 Defining the data model... 2 4 Populating the database tables with

More information

Chapter 12 Programming Concepts and Languages

Chapter 12 Programming Concepts and Languages Chapter 12 Programming Concepts and Languages Chapter 12 Programming Concepts and Languages Paradigm Publishing, Inc. 12-1 Presentation Overview Programming Concepts Problem-Solving Techniques The Evolution

More information

Freescale Semiconductor, I

Freescale Semiconductor, I nc. Application Note 6/2002 8-Bit Software Development Kit By Jiri Ryba Introduction 8-Bit SDK Overview This application note describes the features and advantages of the 8-bit SDK (software development

More information

In Memory Accelerator for MongoDB

In Memory Accelerator for MongoDB In Memory Accelerator for MongoDB Yakov Zhdanov, Director R&D GridGain Systems GridGain: In Memory Computing Leader 5 years in production 100s of customers & users Starts every 10 secs worldwide Over 15,000,000

More information

Raima Database Manager Version 14.0 In-memory Database Engine

Raima Database Manager Version 14.0 In-memory Database Engine + Raima Database Manager Version 14.0 In-memory Database Engine By Jeffrey R. Parsons, Senior Engineer January 2016 Abstract Raima Database Manager (RDM) v14.0 contains an all new data storage engine optimized

More information

Test Driven Development of Embedded Systems Using Existing Software Test Infrastructure

Test Driven Development of Embedded Systems Using Existing Software Test Infrastructure Test Driven Development of Embedded Systems Using Existing Software Test Infrastructure Micah Dowty University of Colorado at Boulder micah@navi.cx March 26, 2004 Abstract Traditional software development

More information

Web Applications Testing

Web Applications Testing Web Applications Testing Automated testing and verification JP Galeotti, Alessandra Gorla Why are Web applications different Web 1.0: Static content Client and Server side execution Different components

More information

COS 333: Advanced Programming Techniques

COS 333: Advanced Programming Techniques COS 333: Advanced Programming Techniques How to find me bwk@cs, www.cs.princeton.edu/~bwk 311 CS Building 609-258-2089 (but email is always better) TA's: Stephen Beard, Chris Monsanto, Srinivas Narayana,

More information

An Incomplete C++ Primer. University of Wyoming MA 5310

An Incomplete C++ Primer. University of Wyoming MA 5310 An Incomplete C++ Primer University of Wyoming MA 5310 Professor Craig C. Douglas http://www.mgnet.org/~douglas/classes/na-sc/notes/c++primer.pdf C++ is a legacy programming language, as is other languages

More information

Introducing PgOpenCL A New PostgreSQL Procedural Language Unlocking the Power of the GPU! By Tim Child

Introducing PgOpenCL A New PostgreSQL Procedural Language Unlocking the Power of the GPU! By Tim Child Introducing A New PostgreSQL Procedural Language Unlocking the Power of the GPU! By Tim Child Bio Tim Child 35 years experience of software development Formerly VP Oracle Corporation VP BEA Systems Inc.

More information

To Java SE 8, and Beyond (Plan B)

To Java SE 8, and Beyond (Plan B) 11-12-13 To Java SE 8, and Beyond (Plan B) Francisco Morero Peyrona EMEA Java Community Leader 8 9...2012 2020? Priorities for the Java Platforms Grow Developer Base Grow Adoption

More information

Software: Systems and. Application Software. Software and Hardware. Types of Software. Software can represent 75% or more of the total cost of an IS.

Software: Systems and. Application Software. Software and Hardware. Types of Software. Software can represent 75% or more of the total cost of an IS. C H A P T E R 4 Software: Systems and Application Software Software and Hardware Software can represent 75% or more of the total cost of an IS. Less costly hdwr. More complex sftwr. Expensive developers

More information

9/11/15. What is Programming? CSCI 209: Software Development. Discussion: What Is Good Software? Characteristics of Good Software?

9/11/15. What is Programming? CSCI 209: Software Development. Discussion: What Is Good Software? Characteristics of Good Software? What is Programming? CSCI 209: Software Development Sara Sprenkle sprenkles@wlu.edu "If you don't think carefully, you might think that programming is just typing statements in a programming language."

More information

Linux. Reverse Debugging. Target Communication Framework. Nexus. Intel Trace Hub GDB. PIL Simulation CONTENTS

Linux. Reverse Debugging. Target Communication Framework. Nexus. Intel Trace Hub GDB. PIL Simulation CONTENTS Android NEWS 2016 AUTOSAR Linux Windows 10 Reverse ging Target Communication Framework ARM CoreSight Requirements Analysis Nexus Timing Tools Intel Trace Hub GDB Unit Testing PIL Simulation Infineon MCDS

More information

How to Design and Create Your Own Custom Ext Rep

How to Design and Create Your Own Custom Ext Rep Combinatorial Block Designs 2009-04-15 Outline Project Intro External Representation Design Database System Deployment System Overview Conclusions 1. Since the project is a specific application in Combinatorial

More information

BarTender Integration Methods. Integrating BarTender s Printing and Design Functionality with Your Custom Application WHITE PAPER

BarTender Integration Methods. Integrating BarTender s Printing and Design Functionality with Your Custom Application WHITE PAPER BarTender Integration Methods Integrating BarTender s Printing and Design Functionality with Your Custom Application WHITE PAPER Contents Introduction 3 Integrating with External Data 4 Importing Data

More information

Lecture 1 Introduction to Android

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

More information

1. Overview of Nios II Embedded Development

1. Overview of Nios II Embedded Development May 2011 NII52001-11.0.0 1. Overview o Nios II Embedded Development NII52001-11.0.0 The Nios II Sotware Developer s Handbook provides the basic inormation needed to develop embedded sotware or the Altera

More information

Introduction to Native Android Development with NDK

Introduction to Native Android Development with NDK Introduction to Native Android Development with NDK Outline Motivation: case study of a real project Android Architecture Simplified Tool chain Diagram Adding 3 rd party modules Adding pdf and encrypted

More information

Pro/INTRALINK 10.1. Curriculum Guide

Pro/INTRALINK 10.1. Curriculum Guide Pro/INTRALINK 10.1 Curriculum Guide Live Classroom Curriculum Guide Introduction to Pro/INTRALINK 10.1 Business Administration of Windchill Pro/INTRALINK 10.1 System Administration of Windchill 10.1 Customization

More information

Apache Thrift and Ruby

Apache Thrift and Ruby Apache Thrift and Ruby By Randy Abernethy In this article, excerpted from The Programmer s Guide to Apache Thrift, we will install Apache Thrift support for Ruby and build a simple Ruby RPC client and

More information

How To Develop Android On Your Computer Or Tablet Or Phone

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

More information

Comparative Analysis of Open Source Automated Software Testing Tools: Selenium, Sikuli and Watir

Comparative Analysis of Open Source Automated Software Testing Tools: Selenium, Sikuli and Watir International Journal of Information & Computation Technology. ISSN 0974-2239 Volume 4, Number 15 (2014), pp. 1507-1518 International Research Publications House http://www. irphouse.com Comparative Analysis

More information

Memory Systems. Static Random Access Memory (SRAM) Cell

Memory Systems. Static Random Access Memory (SRAM) Cell Memory Systems This chapter begins the discussion of memory systems from the implementation of a single bit. The architecture of memory chips is then constructed using arrays of bit implementations coupled

More information

Using IRDB in a Dot Net Project

Using IRDB in a Dot Net Project Note: In this document we will be using the term IRDB as a short alias for InMemory.Net. Using IRDB in a Dot Net Project ODBC Driver A 32-bit odbc driver is installed as part of the server installation.

More information

Choosing the First Educational Programming Language

Choosing the First Educational Programming Language Choosing the First Educational Programming Language Vladyslav Kruglyk 1 and Michael Lvov 1 1 Kherson State University, 40 Rokiv Zhovtnya, 27 73000, Kherson, Ukraine kruglik@ksu.ks.ua, lvov@ksu.ks.ua Abstract.

More information

A Generic Network Interface Architecture for a Networked Processor Array (NePA)

A Generic Network Interface Architecture for a Networked Processor Array (NePA) A Generic Network Interface Architecture for a Networked Processor Array (NePA) Seung Eun Lee, Jun Ho Bahn, Yoon Seok Yang, and Nader Bagherzadeh EECS @ University of California, Irvine Outline Introduction

More information

Towards a Framework for Generating Tests to Satisfy Complex Code Coverage in Java Pathfinder

Towards a Framework for Generating Tests to Satisfy Complex Code Coverage in Java Pathfinder Towards a Framework for Generating Tests to Satisfy Complex Code Coverage in Java Pathfinder Matt Department of Computer Science and Engineering University of Minnesota staats@cs.umn.edu Abstract We present

More information

Fundamentals of Programming and Software Development Lesson Objectives

Fundamentals of Programming and Software Development Lesson Objectives Lesson Unit 1: INTRODUCTION TO COMPUTERS Computer History Create a timeline illustrating the most significant contributions to computing technology Describe the history and evolution of the computer Identify

More information

KITES TECHNOLOGY COURSE MODULE (C, C++, DS)

KITES TECHNOLOGY COURSE MODULE (C, C++, DS) KITES TECHNOLOGY 360 Degree Solution www.kitestechnology.com/academy.php info@kitestechnology.com technologykites@gmail.com Contact: - 8961334776 9433759247 9830639522.NET JAVA WEB DESIGN PHP SQL, PL/SQL

More information

Chapter 1. Dr. Chris Irwin Davis Email: cid021000@utdallas.edu Phone: (972) 883-3574 Office: ECSS 4.705. CS-4337 Organization of Programming Languages

Chapter 1. Dr. Chris Irwin Davis Email: cid021000@utdallas.edu Phone: (972) 883-3574 Office: ECSS 4.705. CS-4337 Organization of Programming Languages Chapter 1 CS-4337 Organization of Programming Languages Dr. Chris Irwin Davis Email: cid021000@utdallas.edu Phone: (972) 883-3574 Office: ECSS 4.705 Chapter 1 Topics Reasons for Studying Concepts of Programming

More information

aaps algacom Account Provisioning System

aaps algacom Account Provisioning System aaps algacom Account Provisioning System Simple web interface, data integrity checks and customizable policies allow account administration without specific skills Account provisioning against Active Directory

More information

Python for Series 60 Platform

Python for Series 60 Platform F O R U M N O K I A Getting Started with Python for Series 60 Platform Version 1.2; September 28, 2005 Python for Series 60 Platform Copyright 2005 Nokia Corporation. All rights reserved. Nokia and Nokia

More information

What is ODBC? Database Connectivity ODBC, JDBC and SQLJ. ODBC Architecture. More on ODBC. JDBC vs ODBC. What is JDBC?

What is ODBC? Database Connectivity ODBC, JDBC and SQLJ. ODBC Architecture. More on ODBC. JDBC vs ODBC. What is JDBC? What is ODBC? Database Connectivity ODBC, JDBC and SQLJ CS2312 ODBC is (Open Database Connectivity): A standard or open application programming interface (API) for accessing a database. SQL Access Group,

More information

Introduction to the. Barracuda Embedded Web-Server

Introduction to the. Barracuda Embedded Web-Server Introduction to the Barracuda Embedded Web-Server This paper covers fundamental concepts of HTTP and how the Barracuda Embedded Web Server can be used in an embedded device. Introduction to HTTP Using

More information

Jonathan Worthington Scarborough Linux User Group

Jonathan Worthington Scarborough Linux User Group Jonathan Worthington Scarborough Linux User Group Introduction What does a Virtual Machine do? Hides away the details of the hardware platform and operating system. Defines a common set of instructions.

More information

Overview 1. Document Objectives 1. Document Organization 1. Preparation before VIP-280/VIP-320 administration 1

Overview 1. Document Objectives 1. Document Organization 1. Preparation before VIP-280/VIP-320 administration 1 Table of Contents Overview 1 Document Objectives 1 Document Organization 1 Preparation before VIP-280/VIP-320 administration 1 Physical Installation 1 Keypad and button definition on DCT-100 3 Installing

More information

CSCI E 98: Managed Environments for the Execution of Programs

CSCI E 98: Managed Environments for the Execution of Programs CSCI E 98: Managed Environments for the Execution of Programs Draft Syllabus Instructor Phil McGachey, PhD Class Time: Mondays beginning Sept. 8, 5:30-7:30 pm Location: 1 Story Street, Room 304. Office

More information

Easing embedded Linux software development for SBCs

Easing embedded Linux software development for SBCs Page 1 of 5 Printed from: http://www.embedded-computing.com/departments/eclipse/2006/11/ Easing embedded Linux software development for SBCs By Nathan Gustavson and Eric Rossi Most programmers today leaving

More information

CS 294-73 Software Engineering for Scientific Computing. http://www.cs.berkeley.edu/~colella/cs294. Lecture 25:Mixed Language Programming.

CS 294-73 Software Engineering for Scientific Computing. http://www.cs.berkeley.edu/~colella/cs294. Lecture 25:Mixed Language Programming. CS 294-73 Software Engineering for Scientific Computing http://www.cs.berkeley.edu/~colella/cs294 Lecture 25:Mixed Language Programming. Different languages Technical, historical, cultural differences

More information

Design with Reuse. Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1

Design with Reuse. Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1 Design with Reuse Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1 Objectives To explain the benefits of software reuse and some reuse

More information

1 File Processing Systems

1 File Processing Systems COMP 378 Database Systems Notes for Chapter 1 of Database System Concepts Introduction A database management system (DBMS) is a collection of data and an integrated set of programs that access that data.

More information

ARM Cortex-A9 MPCore Multicore Processor Hierarchical Implementation with IC Compiler

ARM Cortex-A9 MPCore Multicore Processor Hierarchical Implementation with IC Compiler ARM Cortex-A9 MPCore Multicore Processor Hierarchical Implementation with IC Compiler DAC 2008 Philip Watson Philip Watson Implementation Environment Program Manager ARM Ltd Background - Who Are We? Processor

More information

How To Port A Program To Dynamic C (C) (C-Based) (Program) (For A Non Portable Program) (Un Portable) (Permanent) (Non Portable) C-Based (Programs) (Powerpoint)

How To Port A Program To Dynamic C (C) (C-Based) (Program) (For A Non Portable Program) (Un Portable) (Permanent) (Non Portable) C-Based (Programs) (Powerpoint) TN203 Porting a Program to Dynamic C Introduction Dynamic C has a number of improvements and differences compared to many other C compiler systems. This application note gives instructions and suggestions

More information

Instructor: Betty O Neil

Instructor: Betty O Neil Introduction to Web Application Development, for CS437/637 Instructor: Betty O Neil 1 Introduction: Internet vs. World Wide Web Internet is an interconnected network of thousands of networks and millions

More information

What Perl Programmers Should Know About Java

What Perl Programmers Should Know About Java Beth Linker, blinker@panix.com Abstract The Java platform is by no means a replacement for Perl, but it can be a useful complement. Even if you do not need to or want to use Java, you should know a bit

More information

Problem Solving. Software Engineering. Behavior. OCD in a Nutshell. Behavior. Objects Operations Algorithm. Object-Centered Design

Problem Solving. Software Engineering. Behavior. OCD in a Nutshell. Behavior. Objects Operations Algorithm. Object-Centered Design Software Engineering (Chap. 1) Object-Centered Design Problem Solving Let s solve this temperature-conversion problem: Write a program that, given a temperature in Celsius, displays that temperature in

More information

STM32JAVA. Embedded Java Solutions for STM32

STM32JAVA. Embedded Java Solutions for STM32 STM32JAVA Embedded Java Solutions for STM32 What is STM32Java? Solution to develop and to deploy software applications on STM32F0 to STM32F7 microcontrollers using Java Help to reduce the total cost of

More information

Gizmo, a lightweight open source web proxy Rachel Engel : June, 2009

Gizmo, a lightweight open source web proxy Rachel Engel : June, 2009 isec Partners, Inc. Gizmo, a lightweight open source web proxy Rachel Engel : June, 2009 The world needs a small, fast, cross-platform graphical web proxy. People spend a lot of time debugging web applications,

More information

University of Texas at Dallas. Department of Electrical Engineering. EEDG 6306 - Application Specific Integrated Circuit Design

University of Texas at Dallas. Department of Electrical Engineering. EEDG 6306 - Application Specific Integrated Circuit Design University of Texas at Dallas Department of Electrical Engineering EEDG 6306 - Application Specific Integrated Circuit Design Synopsys Tools Tutorial By Zhaori Bi Minghua Li Fall 2014 Table of Contents

More information

Agent Languages. Overview. Requirements. Java. Tcl/Tk. Telescript. Evaluation. Artificial Intelligence Intelligent Agents

Agent Languages. Overview. Requirements. Java. Tcl/Tk. Telescript. Evaluation. Artificial Intelligence Intelligent Agents Agent Languages Requirements Overview Java Tcl/Tk Telescript Evaluation Franz J. Kurfess, Cal Poly SLO 211 Requirements for agent Languages distributed programming large-scale (tens of thousands of computers)

More information

Designing a Schematic and Layout in PCB Artist

Designing a Schematic and Layout in PCB Artist Designing a Schematic and Layout in PCB Artist Application Note Max Cooper March 28 th, 2014 ECE 480 Abstract PCB Artist is a free software package that allows users to design and layout a printed circuit

More information

Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C

Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C 1 An essential part of any embedded system design Programming 2 Programming in Assembly or HLL Processor and memory-sensitive

More information

CSC 551: Web Programming. Spring 2004

CSC 551: Web Programming. Spring 2004 CSC 551: Web Programming Spring 2004 Java Overview Design goals & features platform independence, portable, secure, simple, object-oriented, Programming models applications vs. applets vs. servlets intro

More information

The Clean programming language. Group 25, Jingui Li, Daren Tuzi

The Clean programming language. Group 25, Jingui Li, Daren Tuzi The Clean programming language Group 25, Jingui Li, Daren Tuzi The Clean programming language Overview The Clean programming language first appeared in 1987 and is still being further developed. It was

More information

TATJA: A Test Automation Tool for Java Applets

TATJA: A Test Automation Tool for Java Applets TATJA: A Test Automation Tool for Java Applets Matthew Xuereb 19, Sanctuary Street, San Ġwann mxue0001@um.edu.mt Abstract Although there are some very good tools to test Web Applications, such tools neglect

More information

Modern Web Application Framework Python, SQL Alchemy, Jinja2 & Flask

Modern Web Application Framework Python, SQL Alchemy, Jinja2 & Flask Modern Web Application Framework Python, SQL Alchemy, Jinja2 & Flask Devert Alexandre December 29, 2012 Slide 1/62 Table of Contents 1 Model-View-Controller 2 Flask 3 First steps 4 Routing 5 Templates

More information

Pre-tested System-on-Chip Design. Accelerates PLD Development

Pre-tested System-on-Chip Design. Accelerates PLD Development Pre-tested System-on-Chip Design Accelerates PLD Development March 2010 Lattice Semiconductor 5555 Northeast Moore Ct. Hillsboro, Oregon 97124 USA Telephone: (503) 268-8000 www.latticesemi.com 1 Pre-tested

More information

ECE 122. Engineering Problem Solving with Java

ECE 122. Engineering Problem Solving with Java ECE 122 Engineering Problem Solving with Java Introduction to Electrical and Computer Engineering II Lecture 1 Course Overview Welcome! What is this class about? Java programming somewhat software somewhat

More information

Quartus II Software Design Series : Foundation. Digitale Signalverarbeitung mit FPGA. Digitale Signalverarbeitung mit FPGA (DSF) Quartus II 1

Quartus II Software Design Series : Foundation. Digitale Signalverarbeitung mit FPGA. Digitale Signalverarbeitung mit FPGA (DSF) Quartus II 1 (DSF) Quartus II Stand: Mai 2007 Jens Onno Krah Cologne University of Applied Sciences www.fh-koeln.de jens_onno.krah@fh-koeln.de Quartus II 1 Quartus II Software Design Series : Foundation 2007 Altera

More information

Java Application Developer Certificate Program Competencies

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

More information

Conference Paper. Distributed Performance Systems using HTML5 and Rails. Dr. Jesse Allison 1. jtallison@lsu.edu jesse@electrotap.

Conference Paper. Distributed Performance Systems using HTML5 and Rails. Dr. Jesse Allison 1. jtallison@lsu.edu jesse@electrotap. Conference Paper Presented at the 26 th Annual Conference of the Society for Electro-Acoustic Music in the United States January 20 22, 2011 University of Miami Frost School of Music Miami, Florida Papers

More information

PIE. Internal Structure

PIE. Internal Structure PIE Internal Structure PIE Composition PIE (Processware Integration Environment) is a set of programs for integration of heterogeneous applications. The final set depends on the purposes of a solution

More information

High-Level Synthesis for FPGA Designs

High-Level Synthesis for FPGA Designs High-Level Synthesis for FPGA Designs BRINGING BRINGING YOU YOU THE THE NEXT NEXT LEVEL LEVEL IN IN EMBEDDED EMBEDDED DEVELOPMENT DEVELOPMENT Frank de Bont Trainer consultant Cereslaan 10b 5384 VT Heesch

More information

Designing with Exceptions. CSE219, Computer Science III Stony Brook University http://www.cs.stonybrook.edu/~cse219

Designing with Exceptions. CSE219, Computer Science III Stony Brook University http://www.cs.stonybrook.edu/~cse219 Designing with Exceptions CSE219, Computer Science III Stony Brook University http://www.cs.stonybrook.edu/~cse219 Testing vs. Debugging Testing Coding Does the code work properly YES NO 2 Debugging Testing

More information