Programming Language Selec0on. Jonathan Bell November 16, 2010

Size: px
Start display at page:

Download "Programming Language Selec0on. Jonathan Bell November 16, 2010"

Transcription

1 Programming Language Selec0on Jonathan Bell November 16, 2010

2 Misconcep0ons C is the most efficient programming language Some0mes more inherent to implementa0on Terse code is efficient code Any compiler worth its salt will op0mize down to the terse version Ease of coding is more important than ease of reading Maintenance accounts for 70-90% of cost SoPware development is like heroin: the first hit is free, but then they get you hooked

3 Misconcep0ons SoPware should compile fast Not if it comes at the cost of detec0ng errors Java is the best because it s portable Other languages allow for VM s, in fact, other languages can compile into java byte code

4

5 Misconcep0ons SoPware should compile fast Not if it comes at the cost of detec0ng errors Java is the best because it s portable Other languages allow for VM s, in fact, other languages can compile into java byte code Languages should let programmers do what they want Programmers can be dumb and we need to add limits (pointers?)

6 Why focus on language selec0on? Despite what some may argue, there is no universal language Can have long term implica0ons for a product Pick the right tool for the job Correctness? Highly polarized "It is prac0cally impossible to teach good programming to students that have had a prior exposure to BASIC; as poten0al programmers they are mentally mu0lated beyond hope of regenera0on." (Dijkstra)

7 Programming Languages and Correctness Ada on the C130J code had 1/10 th error rate of code wrifen in other languages for the plane*

8 Programming Languages and Correctness Ramp- up 0me Error detec0on Understandability Maintainability Can this all lead to improved sopware?

9 Ramp up 0me Should be able to fully understand the nuance of a language Powerful features are great. Unless you can t use them properly. Languages should seem natural in their construc0on Who knows what this does and hasn t kernel hacked before? #define magic(foo, bar, z) ({ \ const magic( ((bar*)0)->z) * mptr = (foo); \ (bar*)( (char *) mptr - offsetof(bar,z) );})

10 Error Detec0on Loose Typing More flexible C Strong Typing Catch more errors at compile & run 0me Java I/O, system call safety C will not force you to check for error values Java will throw an excep0on Run 0me asser0ons and excep0on handling

11 Understandability Focusing on readability over writeability Dis0nct structural words If(x=y) If(x==y) Read inten0ons as well as instruc0ons

12 Maintainability Standards acceptance Ongoing availability of opera0ons personnel, hardware

13 Programming Languages and Correctness Do these factors contribute to correctness? Get the right tool for the job AND know how to use it Language selec0on can only do so much Perl: print $x unless $x = 0; open(testfile, file ) or die Can t open file: $! ; $_="krjhruaesrltre c a cnp,ohet";$_.=$1,print$2while s/(..)(.)//;

14 Other dimensions for deciding Features/Capabili0es Produc0vity Costs Support structure

15 Other Capabili0es Memory usage Performance Garbage collec0on Integra0on Concurrency Structure

16 Produc0vity LOC per hour? Compila0on overheads IDE availability Refactoring abili0es

17 Costs Compiler IDE Run0me Libraries Hardware Opera0ons staffing

18 Language Features Paradigm Typing Failsafe calls Standardiz ed Garbage Collec0on C C++ Java PHP Lisp Ruby Impera0ve, Procedural Weak/ unsafe Impera0ve, Procedural, OO, generic Strong/ unsafe Impera0ve, OO, reflec0ve, generic Strong/ safe Impera0ve, Procedural, OO, reflec0ve, generic Impera0ve, func0onal, OO, reflec0ve, generic Impera0ve, OO, aspect- oriented, reflec0ve, func0onal Weak/unsafe Strong/Safe Strong/safe No No Yes Yes Yes Yes Yes Yes Yes No Yes (Clisp) No No No Yes Yes Yes Yes

19 Selec0ng a Programming Language What will the system be used for? What plaqorms must it run on? What is your team comfortable with? Create a matrix between candidate languages The values of the matrix may be different for different people!

20

21 Selec0ng a Programming Language Don t be stuck in the box Just because you can doesn t mean you should Right tool for the job!

22

What is a programming language?

What is a programming language? Overview Introduction Motivation Why study programming languages? Some key concepts What is a programming language? Artificial language" Computers" Programs" Syntax" Semantics" What is a programming language?...there

More information

Discovering Computers Fundamentals, 2010 Edition. Living in a Digital World

Discovering Computers Fundamentals, 2010 Edition. Living in a Digital World Discovering Computers Fundamentals, 2010 Edition Living in a Digital World Objec&ves Overview Discuss the importance of project management, feasibility assessment, documenta8on, and data and informa8on

More information

General Introduction

General Introduction Managed Runtime Technology: General Introduction Xiao-Feng Li (xiaofeng.li@gmail.com) 2012-10-10 Agenda Virtual machines Managed runtime systems EE and MM (JIT and GC) Summary 10/10/2012 Managed Runtime

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

Project Por)olio Management

Project Por)olio Management Project Por)olio Management Important markers for IT intensive businesses Rest assured with Infolob s project management methodologies What is Project Por)olio Management? Project Por)olio Management (PPM)

More information

CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages. Nicki Dell Spring 2014

CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages. Nicki Dell Spring 2014 CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages Nicki Dell Spring 2014 What is a Programming Language? A set of symbols and associated tools that translate (if necessary) collections

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

Virtual Machine Learning: Thinking Like a Computer Architect

Virtual Machine Learning: Thinking Like a Computer Architect Virtual Machine Learning: Thinking Like a Computer Architect Michael Hind IBM T.J. Watson Research Center March 21, 2005 CGO 05 Keynote 2005 IBM Corporation What is this talk about? Virtual Machines? 2

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

Understanding and Detec.ng Real- World Performance Bugs

Understanding and Detec.ng Real- World Performance Bugs Understanding and Detec.ng Real- World Performance Bugs Gouliang Jin, Linhai Song, Xiaoming Shi, Joel Scherpelz, and Shan Lu Presented by Cindy Rubio- González Feb 10 th, 2015 Mo.va.on Performance bugs

More information

Evolution of the Major Programming Languages

Evolution of the Major Programming Languages 142 Evolution of the Major Programming Languages Object Oriented Programming: Smalltalk Object-Oriented: It s fundamental characteristics are: Data abstraction, Inheritance and Dynamic Binding. The essence

More information

Phone Systems Buyer s Guide

Phone Systems Buyer s Guide Phone Systems Buyer s Guide Contents How Cri(cal is Communica(on to Your Business? 3 Fundamental Issues 4 Phone Systems Basic Features 6 Features for Users with Advanced Needs 10 Key Ques(ons for All Buyers

More information

Lecture 22: C Programming 4 Embedded Systems

Lecture 22: C Programming 4 Embedded Systems Lecture 22: C Programming 4 Embedded Systems Today s Goals Basic C programming process Variables and constants in C Pointers to access addresses Using a High Level Language High-level languages More human

More information

OS/Run'me and Execu'on Time Produc'vity

OS/Run'me and Execu'on Time Produc'vity OS/Run'me and Execu'on Time Produc'vity Ron Brightwell, Technical Manager Scalable System SoAware Department Sandia National Laboratories is a multi-program laboratory managed and operated by Sandia Corporation,

More information

Crash Course in Java

Crash Course in Java Crash Course in Java Based on notes from D. Hollinger Based in part on notes from J.J. Johns also: Java in a Nutshell Java Network Programming and Distributed Computing Netprog 2002 Java Intro 1 What is

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

Effec%ve AX 2012 Upgrade Project Planning and Microso< Sure Step. Arbela Technologies

Effec%ve AX 2012 Upgrade Project Planning and Microso< Sure Step. Arbela Technologies Effec%ve AX 2012 Upgrade Project Planning and Microso< Sure Step Arbela Technologies Why Upgrade? What to do? How to do it? Tools and templates Agenda Sure Step 2012 Ax2012 Upgrade specific steps Checklist

More information

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? 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

More information

CSE 130 Programming Language Principles & Paradigms

CSE 130 Programming Language Principles & Paradigms CSE 130 Programming Language Principles & Paradigms Thomas A. Powell tpowell@pint.com Housekeeping Syllabus review Direct class page link http://www.pint.com/classes/cse130 Updated syllabus, notes, homework

More information

Multi-core Programming System Overview

Multi-core Programming System Overview Multi-core Programming System Overview Based on slides from Intel Software College and Multi-Core Programming increasing performance through software multi-threading by Shameem Akhter and Jason Roberts,

More information

1/20/2016 INTRODUCTION

1/20/2016 INTRODUCTION INTRODUCTION 1 Programming languages have common concepts that are seen in all languages This course will discuss and illustrate these common concepts: Syntax Names Types Semantics Memory Management We

More information

Advanced Mac OS X Rootkits. Dino Dai Zovi Chief Scientist Endgame Systems

Advanced Mac OS X Rootkits. Dino Dai Zovi Chief Scientist Endgame Systems Advanced Mac OS X Rootkits Dino Dai Zovi Chief Scientist Endgame Systems Overview Mac OS X and Mach Why use Mach for rootkits? User mode Mach rootkit techniques Kernel Mach rootkit techniques 2 Why Mach

More information

SDN- based Mobile Networking for Cellular Operators. Seil Jeon, Carlos Guimaraes, Rui L. Aguiar

SDN- based Mobile Networking for Cellular Operators. Seil Jeon, Carlos Guimaraes, Rui L. Aguiar SDN- based Mobile Networking for Cellular Operators Seil Jeon, Carlos Guimaraes, Rui L. Aguiar Background The data explosion currently we re facing with has a serious impact on current cellular networks

More information

Programming models for heterogeneous computing. Manuel Ujaldón Nvidia CUDA Fellow and A/Prof. Computer Architecture Department University of Malaga

Programming models for heterogeneous computing. Manuel Ujaldón Nvidia CUDA Fellow and A/Prof. Computer Architecture Department University of Malaga Programming models for heterogeneous computing Manuel Ujaldón Nvidia CUDA Fellow and A/Prof. Computer Architecture Department University of Malaga Talk outline [30 slides] 1. Introduction [5 slides] 2.

More information

OPERATING SYSTEM SERVICES

OPERATING SYSTEM SERVICES OPERATING SYSTEM SERVICES USER INTERFACE Command line interface(cli):uses text commands and a method for entering them Batch interface(bi):commands and directives to control those commands are entered

More information

INTRODUCTION TO JAVA PROGRAMMING LANGUAGE

INTRODUCTION TO JAVA PROGRAMMING LANGUAGE INTRODUCTION TO JAVA PROGRAMMING LANGUAGE Today Java programming language is one of the most popular programming language which is used in critical applications like stock market trading system on BSE,

More information

benefit of virtualiza/on? Virtualiza/on An interpreter may not work! Requirements for Virtualiza/on 1/06/15 Which of the following is not a poten/al

benefit of virtualiza/on? Virtualiza/on An interpreter may not work! Requirements for Virtualiza/on 1/06/15 Which of the following is not a poten/al 1/06/15 Benefits of virtualiza/on Virtualiza/on Which of the following is not a poten/al benefit of virtualiza/on? A. cost effec/ve B. applica/on migra/on is easy C. improve applica/on performance D. run

More information

Ubuntu, FEAP, and Virtualiza3on. Jonathan Wong Lab Mee3ng 11/08/10

Ubuntu, FEAP, and Virtualiza3on. Jonathan Wong Lab Mee3ng 11/08/10 Ubuntu, FEAP, and Virtualiza3on Jonathan Wong Lab Mee3ng 11/08/10 Mo3va3on Compiling and opera3ng FEAP requires knowledge of Unix/ Posix systems Being comfortable using command- line Naviga3ng the file

More information

Locales Domain Maps Layouts Distribu?ons Chapel Standard Layouts and Distribu?ons User defined Domain Maps. Chapel: Domain Maps

Locales Domain Maps Layouts Distribu?ons Chapel Standard Layouts and Distribu?ons User defined Domain Maps. Chapel: Domain Maps Locales Domain Maps Layouts Distribu?ons Chapel Standard Layouts and Distribu?ons User defined Domain Maps Chapel: Domain Maps 14 Domains are first class index sets Specify the size and shape of arrays

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

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

Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming

Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming Java has become enormously popular. Java s rapid rise and wide acceptance can be traced to its design

More information

Performance Monitoring and Analysis System for MUSCLE-based Applications

Performance Monitoring and Analysis System for MUSCLE-based Applications Polish Infrastructure for Supporting Computational Science in the European Research Space Performance Monitoring and Analysis System for MUSCLE-based Applications W. Funika, M. Janczykowski, K. Jopek,

More information

Mobile Application Languages XML, Java, J2ME and JavaCard Lesson 04 Java

Mobile Application Languages XML, Java, J2ME and JavaCard Lesson 04 Java Mobile Application Languages XML, Java, J2ME and JavaCard Lesson 04 Java Oxford University Press 2007. All rights reserved. 1 C and C++ C and C++ with in-line-assembly, Visual Basic, and Visual C++ the

More information

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts

More information

Web Development Frameworks

Web Development Frameworks COMS E6125 Web-enHanced Information Management (WHIM) Web Development Frameworks Swapneel Sheth swapneel@cs.columbia.edu @swapneel Spring 2012 1 Topic 1 History and Background of Web Application Development

More information

Contents. Java - An Introduction. Java Milestones. Java and its Evolution

Contents. Java - An Introduction. Java Milestones. Java and its Evolution Contents Java and its Evolution Rajkumar Buyya Grid Computing and Distributed Systems Lab Dept. of Computer Science and Software Engineering The University of Melbourne http:// www.buyya.com Java Introduction

More information

CSE 307: Principles of Programming Languages

CSE 307: Principles of Programming Languages Course Organization Introduction CSE 307: Principles of Programming Languages Spring 2015 R. Sekar Course Organization Introduction 1 / 34 Topics 1. Course Organization Info and Support Course Description

More information

Best Prac*ces in Corporate Card Expense Management May 2012

Best Prac*ces in Corporate Card Expense Management May 2012 Proprietary & Confiden0al Not to be distributed without the express wri9en consent of BMO Financial Group Best Prac*ces in Corporate Card Expense Management May 2012 Agenda Industry Trends and Best Prac0ces

More information

Programming Languages

Programming Languages CS 345 Programming Languages Vitaly Shmatikov http://www.cs.utexas.edu/~shmat/courses/cs345/ slide 1 Course Personnel Instructor: Vitaly Shmatikov Office: CSA 1.114 Office hours: Tuesday, 3:30-4:30pm (after

More information

Open Source building blocks for the Internet of Things. Benjamin Cabé JFokus 2013

Open Source building blocks for the Internet of Things. Benjamin Cabé JFokus 2013 Open Source building blocks for the Internet of Things Benjamin Cabé JFokus 2013 Who I am Benjamin Cabé Open Source M2M Evangelist at Sierra Wireless Long-time Eclipse lover M2M? IoT? Technology that supports

More information

Variable Message Format Test Tool (VTT) Modernization October 2007

Variable Message Format Test Tool (VTT) Modernization October 2007 Variable Message Format Test Tool (VTT) Modernization October 2007 CECOM Life Cycle Management Command Software Engineering Center (SEC) Information Technology Engineering Directorate (ITED) Table of Contents

More information

Parrot in a Nutshell. Dan Sugalski dan@sidhe.org. Parrot in a nutshell 1

Parrot in a Nutshell. Dan Sugalski dan@sidhe.org. Parrot in a nutshell 1 Parrot in a Nutshell Dan Sugalski dan@sidhe.org Parrot in a nutshell 1 What is Parrot The interpreter for perl 6 A multi-language virtual machine An April Fools joke gotten out of hand Parrot in a nutshell

More information

ECS 165B: Database System Implementa6on Lecture 2

ECS 165B: Database System Implementa6on Lecture 2 ECS 165B: Database System Implementa6on Lecture 2 UC Davis, Spring 2011 Por6ons of slides based on earlier ones by Raghu Ramakrishnan, Johannes Gehrke, Jennifer Widom, Bertram Ludaescher, and Michael Gertz.

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

MEAP Edition Manning Early Access Program Nim in Action Version 1

MEAP Edition Manning Early Access Program Nim in Action Version 1 MEAP Edition Manning Early Access Program Nim in Action Version 1 Copyright 2016 Manning Publications For more information on this and other Manning titles go to www.manning.com Welcome Thank you for purchasing

More information

A GENERIC PURPOSE, CROSS-PLATFORM, HIGH EXTENSIBLE VIRTUAL MACHINE. John Vlachoyiannis darksun4@gmail.com

A GENERIC PURPOSE, CROSS-PLATFORM, HIGH EXTENSIBLE VIRTUAL MACHINE. John Vlachoyiannis darksun4@gmail.com A GENERIC PURPOSE, CROSS-PLATFORM, HIGH EXTENSIBLE VIRTUAL MACHINE John Vlachoyiannis darksun4@gmail.com Panagiotis Kenterlis, P.Kenterlis@mprolab.teipir.gr John N.Ellinas jellin@teipir.gr Department of

More information

How To Use Splunk For Android (Windows) With A Mobile App On A Microsoft Tablet (Windows 8) For Free (Windows 7) For A Limited Time (Windows 10) For $99.99) For Two Years (Windows 9

How To Use Splunk For Android (Windows) With A Mobile App On A Microsoft Tablet (Windows 8) For Free (Windows 7) For A Limited Time (Windows 10) For $99.99) For Two Years (Windows 9 Copyright 2014 Splunk Inc. Splunk for Mobile Intelligence Bill Emme< Director, Solu?ons Marke?ng Panos Papadopoulos Director, Product Management Disclaimer During the course of this presenta?on, we may

More information

Do general-purpose programming languages have a future?

Do general-purpose programming languages have a future? Do general-purpose programming languages have a future? Bjarne Stroustrup Texas A&M University (and AT&T Research) http://www.research.att.com/~bs Abstract As the computing world matures, the roles of

More information

DTCC Data Quality Survey Industry Report

DTCC Data Quality Survey Industry Report DTCC Data Quality Survey Industry Report November 2013 element 22 unlocking the power of your data Contents 1. Introduction 3 2. Approach and participants 4 3. Summary findings 5 4. Findings by topic 6

More information

Strategy and Architecture to Establish 'Smart Plants'

Strategy and Architecture to Establish 'Smart Plants' Strategy and Architecture to Establish 'Smart Plants' About Intrigo We are a solu*on provider of Business Applica:ons focused on orchestra*ng Customer Value Networks in the changing SAP Enterprise technology

More information

Chapter 3 Operating-System Structures

Chapter 3 Operating-System Structures Contents 1. Introduction 2. Computer-System Structures 3. Operating-System Structures 4. Processes 5. Threads 6. CPU Scheduling 7. Process Synchronization 8. Deadlocks 9. Memory Management 10. Virtual

More information

GRNET Cloud Compu7ng Services An Overview

GRNET Cloud Compu7ng Services An Overview GRNET Cloud Compu7ng Services An Overview Panos Louridas louridas@grnet.gr GN3 Innova7on Workshop Copenhagen, October 10 11 2011 Greek Research and Technology Network 2 Outline u okeanos IaaS u pithos

More information

Programming in Python. Basic information. Teaching. Administration Organisation Contents of the Course. Jarkko Toivonen. Overview of Python

Programming in Python. Basic information. Teaching. Administration Organisation Contents of the Course. Jarkko Toivonen. Overview of Python Programming in Python Jarkko Toivonen Department of Computer Science University of Helsinki September 18, 2009 Administration Organisation Contents of the Course Overview of Python Jarkko Toivonen (CS

More information

COMPARISON OF OBJECT-ORIENTED AND PROCEDURE-BASED COMPUTER LANGUAGES: CASE STUDY OF C++ PROGRAMMING

COMPARISON OF OBJECT-ORIENTED AND PROCEDURE-BASED COMPUTER LANGUAGES: CASE STUDY OF C++ PROGRAMMING COMPARISON OF OBJECT-ORIENTED AND PROCEDURE-BASED COMPUTER LANGUAGES: CASE STUDY OF C++ PROGRAMMING Kuan C. Chen, Ph.D. Assistant Professor Management Information Systems School of Management Purdue University

More information

BridgeWays Management Pack for VMware ESX

BridgeWays Management Pack for VMware ESX Bridgeways White Paper: Management Pack for VMware ESX BridgeWays Management Pack for VMware ESX Ensuring smooth virtual operations while maximizing your ROI. Published: July 2009 For the latest information,

More information

Put a Firewall in Your JVM Securing Java Applications!

Put a Firewall in Your JVM Securing Java Applications! Put a Firewall in Your JVM Securing Java Applications! Prateep Bandharangshi" Waratek Director of Client Security Solutions" @prateep" Hussein Badakhchani" Deutsche Bank Ag London Vice President" @husseinb"

More information

Embedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C

Embedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C Embedded Systems A Review of ANSI C and Considerations for Embedded C Programming Dr. Jeff Jackson Lecture 2-1 Review of ANSI C Topics Basic features of C C fundamentals Basic data types Expressions Selection

More information

Erlang Testing and Tools Survey

Erlang Testing and Tools Survey Erlang Training and Consulting Ltd Erlang Testing and Tools Survey Aniko Nagyné Víg and Tamás Nagy Victoria, British Columbia, Canada, 27 Sept 2008 Agenda 1 What we are doing and why Goals and tasks Market

More information

White Paper: 5GL RAD Development

White Paper: 5GL RAD Development White Paper: 5GL RAD Development After 2.5 hours of training, subjects reduced their development time by 60-90% A Study By: 326 Market Street Harrisburg, PA 17101 Luis Paris, Ph.D. Associate Professor

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

Getting Started with the Internet Communications Engine

Getting Started with the Internet Communications Engine Getting Started with the Internet Communications Engine David Vriezen April 7, 2014 Contents 1 Introduction 2 2 About Ice 2 2.1 Proxies................................. 2 3 Setting Up ICE 2 4 Slices 2

More information

File System Reliability (part 2)

File System Reliability (part 2) File System Reliability (part 2) Main Points Approaches to reliability Careful sequencing of file system opera@ons Copy- on- write (WAFL, ZFS) Journalling (NTFS, linux ext4) Log structure (flash storage)

More information

Viewpoint. Choosing the right automation tool and framework is critical to project success. - Harsh Bajaj, Technical Test Lead ECSIVS, Infosys

Viewpoint. Choosing the right automation tool and framework is critical to project success. - Harsh Bajaj, Technical Test Lead ECSIVS, Infosys Viewpoint Choosing the right automation tool and framework is critical to project success - Harsh Bajaj, Technical Test Lead ECSIVS, Infosys Introduction Organizations have become cognizant of the crucial

More information

Virtual Routing: What s The Goal? And What s Beyond? Peter Christy, NetsEdge Research Group, August 2001

Virtual Routing: What s The Goal? And What s Beyond? Peter Christy, NetsEdge Research Group, August 2001 Virtual Routing: What s The Goal? And What s Beyond? Peter Christy, NetsEdge Research Group, August 2001 Virtual routing is a software design method used to provide multiple independent routers that share

More information

Paco Hope <paco@cigital.com> Florence Mo ay <fmo ay@cigital.com> 2012 Cigital. All Rights Reserved. SecAppDev. Define third party so ware

Paco Hope <paco@cigital.com> Florence Mo ay <fmo ay@cigital.com> 2012 Cigital. All Rights Reserved. SecAppDev. Define third party so ware Paco Hope Florence Moay 2012 Cigital. All Rights Reserved. SecAppDev 1 Objectives Define third party soware What it is, why we use it Define the risks from third

More information

Programming Languages

Programming Languages Programming Languages Qing Yi Course web site: www.cs.utsa.edu/~qingyi/cs3723 cs3723 1 A little about myself Qing Yi Ph.D. Rice University, USA. Assistant Professor, Department of Computer Science Office:

More information

Performance Measurement of Dynamically Compiled Java Executions

Performance Measurement of Dynamically Compiled Java Executions Performance Measurement of Dynamically Compiled Java Executions Tia Newhall and Barton P. Miller University of Wisconsin Madison Madison, WI 53706-1685 USA +1 (608) 262-1204 {newhall,bart}@cs.wisc.edu

More information

International Engineering Journal For Research & Development

International Engineering Journal For Research & Development Evolution Of Operating System And Open Source Android Application Nilesh T.Gole 1, Amit Manikrao 2, Niraj Kanot 3,Mohan Pande 4 1,M.tech(CSE)JNTU, 2 M.tech(CSE)SGBAU, 3 M.tech(CSE),JNTU, Hyderabad 1 sheyanilu@gmail.com,

More information

Virtualiza)on and its Applica)ons

Virtualiza)on and its Applica)ons Virtualiza)on and its Applica)ons Tatsuo Nakajima 1, Kenji Kono 2, Yoichi Ishiwata 3, Kenichi Kourai 4, Shuichi Oikawa 5, Hiroshi Yamada 2, Hiromasa Shimada 1, Yuki Kinebuchi 1, Tomohiro Miyahira 6 1 Waseda

More information

10 Things Every Linux Programmer Should Know Linux Misconceptions in 30 Minutes

10 Things Every Linux Programmer Should Know Linux Misconceptions in 30 Minutes 10 Things Every Linux Programmer Should Know Linux Misconceptions in 30 Minutes Muli Ben-Yehuda mulix@mulix.org IBM Haifa Research Labs Linux Kernel Workshop, March 2004 p.1/14 TOC What this talk is about

More information

10 Steps to Preparedness

10 Steps to Preparedness 10 Steps to Preparedness Key Take- Aways Review basics of disaster recovery and con2nuity of opera2ons. Understand what you can do to prepare your pool and its members for an unplanned interrup2on. Ini2ate

More information

Building custom memory profilers. In# Gonzalez- Herrera Diverse Team Advisers: Johann Bourcier and Olivier Barais

Building custom memory profilers. In# Gonzalez- Herrera Diverse Team Advisers: Johann Bourcier and Olivier Barais Building custom memory profilers In# Gonzalez- Herrera Diverse Team Advisers: Johann Bourcier and Olivier Barais What are and why we need custom memory profilers? Developers think in terms of high- level

More information

CSE 403. Performance Profiling Marty Stepp

CSE 403. Performance Profiling Marty Stepp CSE 403 Performance Profiling Marty Stepp 1 How can we optimize it? public static String makestring() { String str = ""; for (int n = 0; n < REPS; n++) { str += "more"; } return str; } 2 How can we optimize

More information

1. Overview of the Java Language

1. Overview of the Java Language 1. Overview of the Java Language What Is the Java Technology? Java technology is: A programming language A development environment An application environment A deployment environment It is similar in syntax

More information

Efficiency Considerations of PERL and Python in Distributed Processing

Efficiency Considerations of PERL and Python in Distributed Processing Efficiency Considerations of PERL and Python in Distributed Processing Roger Eggen (presenter) Computer and Information Sciences University of North Florida Jacksonville, FL 32224 ree@unf.edu 904.620.1326

More information

Introduction to programming

Introduction to programming Unit 1 Introduction to programming Summary Architecture of a computer Programming languages Program = objects + operations First Java program Writing, compiling, and executing a program Program errors

More information

RESTful or RESTless Current State of Today's Top Web APIs

RESTful or RESTless Current State of Today's Top Web APIs RESTful or RESTless Current State of Today's Top Web APIs Frederik Buelthoff, Maria Maleshkova AIFB, Karlsruhe Ins-tute of Technology (KIT), Germany [1] Growing Number of Web APIs Challenges Scalability

More information

Monitoring Java enviroment / applications

Monitoring Java enviroment / applications Monitoring Java enviroment / applications Uroš Majcen uros@quest-slo.com Java is Everywhere You Can Expect More. Java in Mars Rover With the help of Java Technology, and the Jet Propulsion Laboratory (JPL),

More information

Towards Reconstruc/ng Architectural Models of So8ware Tools by Run/me Analysis

Towards Reconstruc/ng Architectural Models of So8ware Tools by Run/me Analysis Towards Reconstruc/ng Architectural Models of So8ware Tools by Run/me Analysis Ian Peake, Jan Olaf Blech, Lasith Fernando RMIT University Melbourne, Australia Our Approach Tradi/onal Requirements Model

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

STUDY AND ANALYSIS OF AUTOMATION TESTING TECHNIQUES

STUDY AND ANALYSIS OF AUTOMATION TESTING TECHNIQUES Volume 3, No. 12, December 2012 Journal of Global Research in Computer Science RESEARCH PAPER Available Online at www.jgrcs.info STUDY AND ANALYSIS OF AUTOMATION TESTING TECHNIQUES Vishawjyoti * and Sachin

More information

Cloud Computing. Up until now

Cloud Computing. Up until now Cloud Computing Lecture 11 Virtualization 2011-2012 Up until now Introduction. Definition of Cloud Computing Grid Computing Content Distribution Networks Map Reduce Cycle-Sharing 1 Process Virtual Machines

More information

PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions. Outline. Performance oriented design

PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions. Outline. Performance oriented design PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions Slide 1 Outline Principles for performance oriented design Performance testing Performance tuning General

More information

Zend Platform TM. White Paper: Zend Download Server. By Zend Technologies, Inc. May 2007. 2007 Zend Technologies, Inc. All rights reserved.

Zend Platform TM. White Paper: Zend Download Server. By Zend Technologies, Inc. May 2007. 2007 Zend Technologies, Inc. All rights reserved. White Paper: Zend Download Server By Zend Technologies, Inc. May 2007 2007 Zend Technologies, Inc. All rights reserved. Introduction You are running a successful web site. You have probably found yourself

More information

Strategies for Managing Fleet Safety and Efficiency! Summary Results!June 2014!

Strategies for Managing Fleet Safety and Efficiency! Summary Results!June 2014! Strategies for Managing Fleet Safety and Efficiency! Program Overview! Ø In early 2014, Gatepoint Research invited selected execu;ves to par;cipate in a survey themed Strategies for Managing Fleet Safety

More information

Big Data. The Big Picture. Our flexible and efficient Big Data solu9ons open the door to new opportuni9es and new business areas

Big Data. The Big Picture. Our flexible and efficient Big Data solu9ons open the door to new opportuni9es and new business areas Big Data The Big Picture Our flexible and efficient Big Data solu9ons open the door to new opportuni9es and new business areas What is Big Data? Big Data gets its name because that s what it is data that

More information

Automatic vs. Manual Code Analysis

Automatic vs. Manual Code Analysis Automatic vs. Manual Code Analysis 2009-11-17 Ari Kesäniemi Senior Security Architect Nixu Oy ari.kesaniemi@nixu.com Copyright The Foundation Permission is granted to copy, distribute and/or modify this

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

Mobile Test Automation Framework

Mobile Test Automation Framework Mobile Test Automation Framework Shankar Garg Senior Consultant - Testing Problem Statement Features of Test Automation Framework Tech stack and why Demo Did we still miss something Page Objects Why Mobile

More information

Language Based Virtual Machines... or why speed matters. by Lars Bak, Google Inc

Language Based Virtual Machines... or why speed matters. by Lars Bak, Google Inc Language Based Virtual Machines... or why speed matters by Lars Bak, Google Inc Agenda Motivation for virtual machines HotSpot V8 Dart What I ve learned Background 25+ years optimizing implementations

More information

Android Architecture. Alexandra Harrison & Jake Saxton

Android Architecture. Alexandra Harrison & Jake Saxton Android Architecture Alexandra Harrison & Jake Saxton Overview History of Android Architecture Five Layers Linux Kernel Android Runtime Libraries Application Framework Applications Summary History 2003

More information

Use Cases for Docker in Enterprise Linux Environment CloudOpen North America, 2014 Linda Wang Sr. Software Engineering Manager Red Hat, Inc.

Use Cases for Docker in Enterprise Linux Environment CloudOpen North America, 2014 Linda Wang Sr. Software Engineering Manager Red Hat, Inc. Use Cases for Docker in Enterprise Linux Environment CloudOpen North America, 2014 Linda Wang Sr. Software Engineering Manager Red Hat, Inc. 1 2 Containerize! 3 Use Cases for Docker in the Enterprise Linux

More information

Buffer Overflows. Security 2011

Buffer Overflows. Security 2011 Buffer Overflows Security 2011 Memory Organiza;on Topics Kernel organizes memory in pages Typically 4k bytes Processes operate in a Virtual Memory Space Mapped to real 4k pages Could live in RAM or be

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

Frameworks & Android. Programmeertechnieken, Tim Cocx

Frameworks & Android. Programmeertechnieken, Tim Cocx Frameworks & Android Programmeertechnieken, Tim Cocx Discover thediscover world atthe Leiden world University at Leiden University Software maken is hergebruiken The majority of programming activities

More information

COS 301 Programming Languages

COS 301 Programming Languages Preliminaries COS 301 Programming Languages Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories

More information

Guideline for stresstest Page 1 of 6. Stress test

Guideline for stresstest Page 1 of 6. Stress test Guideline for stresstest Page 1 of 6 Stress test Objective: Show unacceptable problems with high parallel load. Crash, wrong processing, slow processing. Test Procedure: Run test cases with maximum number

More information

Enterprise Systems Tech. solutions, strategic persp. and org. considerations. TDEI13, 2014-09- 17 Özgün Imre

Enterprise Systems Tech. solutions, strategic persp. and org. considerations. TDEI13, 2014-09- 17 Özgün Imre Enterprise Systems Tech. solutions, strategic persp. and org. considerations TDEI13, 2014-09- 17 Özgün Imre Agenda Report presenta=ons With candy as reward Literature Discussion Lee, Jinyoul; Keng Siau

More information