SIMD Programming Manual for Linux and Windows

Size: px
Start display at page:

Download "SIMD Programming Manual for Linux and Windows"

Transcription

1 Paul Cockshott and Kenneth Renfrew SIMD Programming Manual for Linux and Windows Springer

2 Contents List of Tables List of Figures List of Algorithms Introduction xvii xix xxiii xxv I SIMD Programming 1 Paul Cockshott 1 Computer Speed, Program Speed Clocks Width Instruction Speed Overhead Instructions Algorithm Complexity 8 2 SIMD Instruction-sets The SIMD Model The MMX Register Architecture MMX Data-types DNow! Cache Handling Cache Line Length and Prefetching Streaming SIMD Cache Optimisation The Motorola Altivec Architecture 22 3 SIMD Programming in Assembler and C Vectorising C Compilers Dead for Loop Elimination Loop Unrolling Direct Use of Assembler Code The Example Program Use of Assembler Intrinsics 27

3 vi Contents 3.4 Use of C++ Classes Use of the Nasm Assembler General Instruction Syntax Operand Forms Directives Linking and Object File Formats Summing a Vector Coordinate Transformations Using 3DNow! Coordinate Transformations Using SSE Instructions 44 4 Intel SIMD Instructions Types r shrl saturate Instructions ADDPS ADDSS ANDNPS ANDPS CMPPS CMPSS COMISS CVTPI2PS CVTPS2PI CVTTPS2PI CVTSI2SS CVTSS2SI CVTTSS2SI DIVPD DIVPS DIVSD DIVSS EMMS FXRSTOR FXSAVE MASKMOVQ MAXPD MAXPS MAXSD MAXSS MINPD MINPS MINSD MINSS MOVAPSJoad MOVAPS_store MOVDJoad 62

4 Contents vii MOVD-Store MOVDJoad_sse MOVD_store_sse MOVHLPS MOVHPSJoad MOVHPS-Store MOVLHPS MOVLPSJoad MOVLPS-Store MOVMSKPS MOVNTPS MOVNTQ MOVQJoad MOVQ-Store MOVSSJoad MOVSS_store MOVUPSJoad MOVUPS_store MULPD MULPS MULSD MULSS ORPS PACKSSDW PACKSSWB PACKUSWB PADDB PADDB_sse PADDW PADDW_sse PADDD PADDD_sse PADDQ PADDQ_sse PADDSB PADDSB_sse PADDUSB PADDUSB-Sse PAND PAND.sse PANDN PANDN_sse PAVGB PAVGB_sse PAVGW PAVGW_sse PCMPEQB PCMPEQB-Sse 77

5 viii Contents PCMPEQW PCMPEQW.sse "I* PCMPEQD PCMPEQD_sse PCMPGTB PCMPGTB_sse PCMPGTW PCMPGTW_sse PCMPGTD PCMPGTD_sse PEXTRW PEXTRW_sse PINSRW PMADDWD PMAXSW PMAXUB PMINSW PMINUB PMOVMSKB PMULHUW PMULHW PMULLW POR PREFETCHNTA PREFETCHTl PREFETCHTO PSADBW PSHUFD PSHUFW PSxxf PSUBx PSUBSx PSUBUSx PSWAPD PUNPCKHBW PUNPCKLBW PUNPCKHWD PUNPCKLWD PUNPCKHDQ PUNPCKLDQ PXOR RCPPS RCPSS RSQRTPS RSQRTSS SFENCE SQRTPS SQRTSS 95

6 Contents ix SUBPS 95 " SUBSS UNPCKHPS UNPCLPS XORPS 97 3DNOW Instructions FEMMS PF2ID PFACC PFADD PFCMPEQ PFCMPGT PFCMPGE PFMAX PFMIN PFMUL PFNACC PFPNACC PFRCP PFRCPIT PFSUB PFSUBR PI2FD PI2FW PREFETCH 105 II SIMD Programming Languages 107 Paul Cockshott Another Approach: Data Parallel Languages Operations on Whole Arrays Array Slicing Ill Conditional Operations Reduction Operations Data Reorganisation Design Goals Target Machines Backward Compatibility Expressive Power Run-time Efficiency 120 Basics of Vector Pascal Formating Rules Alphabet 121

7 Contents Reserved Words and Identifiers Character Case Spaces and Comments Semicolons Base Types Booleans Integer Numbers Real Numbers Characters and Strings Variables and Constants Declaration Order Constant Declarations Variable Declarations Assignment Predefined Types Expressions and Operators Arithmetic Operations on Boolean Values Equality Operators Ordered Comparison Matrix and Vector Operations Array Declarations Matrix and Vector Arithmetic Array Input/Output Array Slices Vector and Matrix Products Inner Product of Vectors Dot Product of Non-real Typed Vectors Matrix to Vector Product Data-flow Hazards Matrix to Matrix Multiplication Typography of Vector Pascal Programs 149 Algorithmic Features of Vector Pascal Conditional Evaluation Functions User-defined Functions Procedures Procedure ReadAndValidate Function H Function Log Branching Two-way Branches Multi-way Branches Unbounded Iteration While Repeat 160

8 Contents xi 8.5 Bounded Iteration For to For Downto Goto User-defined Types Scalar Types SUCC and PRED ORD Input/Output of Scalars Representation Sub-range Types Representation Dimensioned Numbers Arithmetic on Dimensioned Numbers Handling Different Units of Measurement Records Pointers Pointer Idioms Freeing Storage Set Types Set Literals Operations on Sets String Types Input and Output File Types Binary Files Text Files Operating System Files Output Binary File Output Text File Output Generic Array Output Input Generic Array Input Binary File Input Text File Input File Predicates Random Access to Files Seek filepos Untyped i/o Error Conditions Permutations and Polymorphism Array Reorganisation An Example 200

9 xii Contents Array Shifts Element Permutation Efficiency Considerations Dynamic Arrays Schematic Arrays Polymorphic Functions Multiple Uses of Parametric Units Function dategt 206 t III Programming Examples 209 Paul Cockshott 12 Advanced Set Programming Use of Sets to Find Prime Numbers Set Implementation Ordered Sets openfiles loadset Sets of Records Retrieval Operations Use of Sets in Text Indexing Constructing an Indexing Program dirlist: A Program for Traversing a Directory Tree intodir bloomfilter hashword setfilter testfilter The Main Program to Index Files processfile A Retrieval Program Parallel Image Processing Declaring an Image Data Type Brightness and Contrast Adjustment Efficiency in Image Code Image Filtering Blurring Sharpening Comparing Implementations genconv dup prev pm doedges freestore 242

10 L_ Contents xiii 13.5 Digital Half-toning Parallel Half-tone errordifuse Image Resizing Horizontal Resize Horizontal Interpolation Interpolate Vertically Displaying Images demoimg - An Example Image Display Program The Unit BMP Procedure initbmpheader Procedure storebmpfile Function loadbmpfile * Procedure adjustcontrast Procedure pconv Procedure convp Pattern Recognition and Image Compression Principles of Image Compression Data Compression in General Image Compression Vector Quantisation of Images Data Structures encode The K Means Algorithm Vector Quantisation of Colour Images D Graphics Mesh Representation linedemo: An Illustration of 3D Projection demo3d: Main Procedure of linedemo Viewing Matrices SDL Initialisation Create a Rotation Matrix Calculate x mod D Projection Entry Point to Line Drawing Bresenham Line Drawing Procedure Performance 292 IV VIPER 293 Ken Renfrew 16 Introduction to VIPER Rationale The Literate Programming Tool The Mathematical Syntax Converter 296

11 xiv Contents 16.2 A System Overview Which VIPER to Download? System Dependencies Installing Files Setting Up the Compiler Setting Up the System Setting System Dependencies Personal Set-up Dynamic Compiler Options VIPER Option Buttons Moving VIPER Programming with VIPER Single Files 303 f' Projects 304,, j ; '" Embedding MpjX in Vector Pascal 306 s # * Compiling Files in VIPER Compiling Single Files Compiling Projects Running Programs in VIPER Making VPT$t VPTftX Options VPMath ETEX in VIPER HTML in VIPER Writing Code to Generate Good VPTEX Use of Special Comments Use of Margin Comments Use of Ordinary Pascal Comments Levels of Detail Within Documentation Mathematical Translation: Motivation and Guidelines I4TEX Packages 313 Appendix A Compiler Porting Tools 315 A.1 Dependencies 315 A.2 Compiler Structure 316 A.2.1 Vectorisation 317 A.2.2 Porting Strategy 320 A.3 ILCG 321 A.4 Supported Types 321 A.4.1 Data Formats 321 A.4.2 Typed Formats 322 A.4.3 ref Types 322 A.5 Supported Operations 322 A.5.1 Type Casts 322 A.5.2 Arithmetic 322 A.5.3 Memory 322

12 Contents xv A.5.4 Assignment 323 A.5.5 Dereferencing 323 A.6 Machine Description 323 A.6.1 Registers 323 A.6.2 Register Sets 324 A.6.3 Register Arrays 324 A.6.4 Register Stacks 324 A.6.5 Instruction Formats 325 A.7 Grammar of ILCG 325 A.8 ILCG Grammar 326 A.8.1 Helpers 326 A.8.2 Tokens 327 A.8.3 Non-terminal Symbols 329 Appendix B Software Download 335 Appendix C Using the Command Line Compiler 337 C.I Invoking the Compiler 337 C.I.I Environment Variable 337 C.1.2 Compiler Options 337 C.1.3 Dependencies 338 C.2 Calling Conventions 338 C.3 Array Representation 341 C.3.1 Range Checking 341 References 343 Index 345

IA-32 Intel Architecture Software Developer s Manual

IA-32 Intel Architecture Software Developer s Manual IA-32 Intel Architecture Software Developer s Manual Volume 1: Basic Architecture NOTE: The IA-32 Intel Architecture Software Developer s Manual consists of three volumes: Basic Architecture, Order Number

More information

Intel Architecture Software Developer s Manual

Intel Architecture Software Developer s Manual Intel Architecture Software Developer s Manual Volume 1: Basic Architecture NOTE: The Intel Architecture Software Developer s Manual consists of three volumes: Basic Architecture, Order Number 243190;

More information

Java 6 'th. Concepts INTERNATIONAL STUDENT VERSION. edition

Java 6 'th. Concepts INTERNATIONAL STUDENT VERSION. edition Java 6 'th edition Concepts INTERNATIONAL STUDENT VERSION CONTENTS PREFACE vii SPECIAL FEATURES xxviii chapter i INTRODUCTION 1 1.1 What Is Programming? 2 J.2 The Anatomy of a Computer 3 1.3 Translating

More information

WESTMORELAND COUNTY PUBLIC SCHOOLS 2011 2012 Integrated Instructional Pacing Guide and Checklist Computer Math

WESTMORELAND COUNTY PUBLIC SCHOOLS 2011 2012 Integrated Instructional Pacing Guide and Checklist Computer Math Textbook Correlation WESTMORELAND COUNTY PUBLIC SCHOOLS 2011 2012 Integrated Instructional Pacing Guide and Checklist Computer Math Following Directions Unit FIRST QUARTER AND SECOND QUARTER Logic Unit

More information

IA-32 Intel Architecture Software Developer s Manual

IA-32 Intel Architecture Software Developer s Manual IA-32 Intel Architecture Software Developer s Manual Volume 2B: Instruction Set Reference, N-Z NOTE: The IA-32 Intel Architecture Software Developer s Manual consists of four volumes: Basic Architecture,

More information

Computing Concepts with Java Essentials

Computing Concepts with Java Essentials 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Computing Concepts with Java Essentials 3rd Edition Cay Horstmann

More information

Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation

Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science updated 03/08/2012 Unit 1: JKarel 8 weeks http://www.fcps.edu/is/pos/documents/hs/compsci.htm

More information

Java 7 Recipes. Freddy Guime. vk» (,\['«** g!p#« Carl Dea. Josh Juneau. John O'Conner

Java 7 Recipes. Freddy Guime. vk» (,\['«** g!p#« Carl Dea. Josh Juneau. John O'Conner 1 vk» Java 7 Recipes (,\['«** - < g!p#«josh Juneau Carl Dea Freddy Guime John O'Conner Contents J Contents at a Glance About the Authors About the Technical Reviewers Acknowledgments Introduction iv xvi

More information

5.14. EXCEPTION AND INTERRUPT REFERENCE

5.14. EXCEPTION AND INTERRUPT REFERENCE 5.14. EXCEPTION AND INTERRUPT REFERENCE The following sections describe conditions which generate exceptions and interrupts. They are arranged in the order of vector numbers. The information contained

More information

IA-32 Intel Architecture Software Developer s Manual

IA-32 Intel Architecture Software Developer s Manual IA-32 Intel Architecture Software Developer s Manual Volume 1: Basic Architecture NOTE: The IA-32 Intel Architecture Software Developer s Manual consists of three volumes: Basic Architecture, Order Number

More information

Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries

Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries First Semester Development 1A On completion of this subject students will be able to apply basic programming and problem solving skills in a 3 rd generation object-oriented programming language (such as

More information

Glossary of Object Oriented Terms

Glossary of Object Oriented Terms Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction

More information

core. Volume I - Fundamentals Seventh Edition Sun Microsystems Press A Prentice Hall Title ULB Darmstadt

core. Volume I - Fundamentals Seventh Edition Sun Microsystems Press A Prentice Hall Title ULB Darmstadt core. 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Volume I - Fundamentals Seventh Edition CAY S. HORSTMANN GARY

More information

ML for the Working Programmer

ML for the Working Programmer ML for the Working Programmer 2nd edition Lawrence C. Paulson University of Cambridge CAMBRIDGE UNIVERSITY PRESS CONTENTS Preface to the Second Edition Preface xiii xv 1 Standard ML 1 Functional Programming

More information

CS 141: Introduction to (Java) Programming: Exam 1 Jenny Orr Willamette University Fall 2013

CS 141: Introduction to (Java) Programming: Exam 1 Jenny Orr Willamette University Fall 2013 Oct 4, 2013, p 1 Name: CS 141: Introduction to (Java) Programming: Exam 1 Jenny Orr Willamette University Fall 2013 1. (max 18) 4. (max 16) 2. (max 12) 5. (max 12) 3. (max 24) 6. (max 18) Total: (max 100)

More information

High-speed image processing algorithms using MMX hardware

High-speed image processing algorithms using MMX hardware High-speed image processing algorithms using MMX hardware J. W. V. Miller and J. Wood The University of Michigan-Dearborn ABSTRACT Low-cost PC-based machine vision systems have become more common due to

More information

The Designer's Guide to VHDL

The Designer's Guide to VHDL The Designer's Guide to VHDL Third Edition Peter J. Ashenden EDA CONSULTANT, ASHENDEN DESIGNS PTY. LTD. ADJUNCT ASSOCIATE PROFESSOR, ADELAIDE UNIVERSITY AMSTERDAM BOSTON HEIDELBERG LONDON m^^ yj 1 ' NEW

More information

C# Cookbook. Stephen Teilhet andjay Hilyard. O'REILLY 8 Beijing Cambridge Farnham Köln Paris Sebastopol Taipei Tokyo '"J""'

C# Cookbook. Stephen Teilhet andjay Hilyard. O'REILLY 8 Beijing Cambridge Farnham Köln Paris Sebastopol Taipei Tokyo 'J' C# Cookbook '"J""' Stephen Teilhet andjay Hilyard O'REILLY 8 Beijing Cambridge Farnham Köln Paris Sebastopol Taipei Tokyo Tableof Contents Preface xv 1. Numbers 1 1.1 Determining Approximate Equality Between

More information

Intel 64 and IA-32 Architectures Software Developer s Manual

Intel 64 and IA-32 Architectures Software Developer s Manual Intel 64 and IA-32 Architectures Software Developer s Manual Documentation Changes September 2013 Notice: The Intel 64 and IA-32 architectures may contain design defects or errors known as errata that

More information

The System Designer's Guide to VHDL-AMS

The System Designer's Guide to VHDL-AMS The System Designer's Guide to VHDL-AMS Analog, Mixed-Signal, and Mixed-Technology Modeling Peter J. Ashenden EDA CONSULTANT, ASHENDEN DESIGNS PTY. LTD. VISITING RESEARCH FELLOW, ADELAIDE UNIVERSITY Gregory

More information

Domains and Competencies

Domains and Competencies Domains and Competencies DOMAIN I TECHNOLOGY APPLICATIONS CORE Standards Assessed: Computer Science 8 12 I VII Competency 001: The computer science teacher knows technology terminology and concepts; the

More information

TECHNOLOGY Computer Programming II Grade: 9-12 Standard 2: Technology and Society Interaction

TECHNOLOGY Computer Programming II Grade: 9-12 Standard 2: Technology and Society Interaction Standard 2: Technology and Society Interaction Technology and Ethics Analyze legal technology issues and formulate solutions and strategies that foster responsible technology usage. 1. Practice responsible

More information

Fundamentals of Java Programming

Fundamentals of Java Programming Fundamentals of Java Programming This document is exclusive property of Cisco Systems, Inc. Permission is granted to print and copy this document for non-commercial distribution and exclusive use by instructors

More information

THE OPEN UNIVERSITY OF TANZANIA

THE OPEN UNIVERSITY OF TANZANIA THE OPEN UNIVERSITY OF TANZANIA FACULTY OF SCIENCE, TECHNOLOGY AND ENVIRONMENTAL STUDIES ODM 103: INTRODUCTION TO COMPUTER PROGRAMMING LANGUAGES Said Ally i ODM 103 INTRODUCTION TO COMPUTER PROGRAMMING

More information

How To Write A Hexadecimal Program

How To Write A Hexadecimal Program The mathematics of RAID-6 H. Peter Anvin First version 20 January 2004 Last updated 20 December 2011 RAID-6 supports losing any two drives. syndromes, generally referred P and Q. The way

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

Pexip Speeds Videoconferencing with Intel Parallel Studio XE

Pexip Speeds Videoconferencing with Intel Parallel Studio XE 1 Pexip Speeds Videoconferencing with Intel Parallel Studio XE by Stephen Blair-Chappell, Technical Consulting Engineer, Intel Over the last 18 months, Pexip s software engineers have been optimizing Pexip

More information

William E. Hart Carl Laird Jean-Paul Watson David L. Woodruff. Pyomo Optimization. Modeling in Python. ^ Springer

William E. Hart Carl Laird Jean-Paul Watson David L. Woodruff. Pyomo Optimization. Modeling in Python. ^ Springer William E Hart Carl Laird Jean-Paul Watson David L Woodruff Pyomo Optimization Modeling in Python ^ Springer Contents 1 Introduction 1 11 Mathematical Modeling 1 12 Modeling Languages for Optimization

More information

Chapter 07: Instruction Level Parallelism VLIW, Vector, Array and Multithreaded Processors. Lesson 05: Array Processors

Chapter 07: Instruction Level Parallelism VLIW, Vector, Array and Multithreaded Processors. Lesson 05: Array Processors Chapter 07: Instruction Level Parallelism VLIW, Vector, Array and Multithreaded Processors Lesson 05: Array Processors Objective To learn how the array processes in multiple pipelines 2 Array Processor

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

Intel 64 and IA-32 Architectures Software Developer s Manual

Intel 64 and IA-32 Architectures Software Developer s Manual Intel 64 and IA-32 Architectures Software Developer s Manual Volume 1: Basic Architecture NOTE: The Intel 64 and IA-32 Architectures Software Developer's Manual consists of seven volumes: Basic Architecture,

More information

ARIZONA CTE CAREER PREPARATION STANDARDS & MEASUREMENT CRITERIA SOFTWARE DEVELOPMENT, 15.1200.40

ARIZONA CTE CAREER PREPARATION STANDARDS & MEASUREMENT CRITERIA SOFTWARE DEVELOPMENT, 15.1200.40 SOFTWARE DEVELOPMENT, 15.1200.40 STANDARD 1.0 APPLY PROBLEM-SOLVING AND CRITICAL THINKING SKILLS TO INFORMATION 1.1 Describe methods of establishing priorities 1.2 Prepare a plan of work and schedule information

More information

Beginning C# 5.0. Databases. Vidya Vrat Agarwal. Second Edition

Beginning C# 5.0. Databases. Vidya Vrat Agarwal. Second Edition Beginning C# 5.0 Databases Second Edition Vidya Vrat Agarwal Contents J About the Author About the Technical Reviewer Acknowledgments Introduction xviii xix xx xxi Part I: Understanding Tools and Fundamentals

More information

Elemental functions: Writing data-parallel code in C/C++ using Intel Cilk Plus

Elemental functions: Writing data-parallel code in C/C++ using Intel Cilk Plus Elemental functions: Writing data-parallel code in C/C++ using Intel Cilk Plus A simple C/C++ language extension construct for data parallel operations Robert Geva [email protected] Introduction Intel

More information

ALLIED PAPER : DISCRETE MATHEMATICS (for B.Sc. Computer Technology & B.Sc. Multimedia and Web Technology)

ALLIED PAPER : DISCRETE MATHEMATICS (for B.Sc. Computer Technology & B.Sc. Multimedia and Web Technology) ALLIED PAPER : DISCRETE MATHEMATICS (for B.Sc. Computer Technology & B.Sc. Multimedia and Web Technology) Subject Description: This subject deals with discrete structures like set theory, mathematical

More information

LIST OF CONTENTS CHAPTER CONTENT PAGE DECLARATION DEDICATION ACKNOWLEDGEMENTS ABSTRACT ABSTRAK

LIST OF CONTENTS CHAPTER CONTENT PAGE DECLARATION DEDICATION ACKNOWLEDGEMENTS ABSTRACT ABSTRAK vii LIST OF CONTENTS CHAPTER CONTENT PAGE DECLARATION DEDICATION ACKNOWLEDGEMENTS ABSTRACT ABSTRAK LIST OF CONTENTS LIST OF TABLES LIST OF FIGURES LIST OF NOTATIONS LIST OF ABBREVIATIONS LIST OF APPENDICES

More information

OKLAHOMA SUBJECT AREA TESTS (OSAT )

OKLAHOMA SUBJECT AREA TESTS (OSAT ) CERTIFICATION EXAMINATIONS FOR OKLAHOMA EDUCATORS (CEOE ) OKLAHOMA SUBJECT AREA TESTS (OSAT ) FIELD 081: COMPUTER SCIENCE September 2008 Subarea Range of Competencies I. Computer Use in Educational Environments

More information

ARIS Design Platform Getting Started with BPM

ARIS Design Platform Getting Started with BPM Rob Davis and Eric Brabander ARIS Design Platform Getting Started with BPM 4y Springer Contents Acknowledgements Foreword xvii xix Chapter 1 An Introduction to BPM 1 1.1 Brief History of Business Process

More information

I PUC - Computer Science. Practical s Syllabus. Contents

I PUC - Computer Science. Practical s Syllabus. Contents I PUC - Computer Science Practical s Syllabus Contents Topics 1 Overview Of a Computer 1.1 Introduction 1.2 Functional Components of a computer (Working of each unit) 1.3 Evolution Of Computers 1.4 Generations

More information

Compiler Construction

Compiler Construction Compiler Construction Lecture 1 - An Overview 2003 Robert M. Siegfried All rights reserved A few basic definitions Translate - v, a.to turn into one s own language or another. b. to transform or turn from

More information

Using MMX Instructions to Convert RGB To YUV Color Conversion

Using MMX Instructions to Convert RGB To YUV Color Conversion Using MMX Instructions to Convert RGB To YUV Color Conversion Information for Developers and ISVs From Intel Developer Services www.intel.com/ids Information in this document is provided in connection

More information

Visual Basic. murach's TRAINING & REFERENCE

Visual Basic. murach's TRAINING & REFERENCE TRAINING & REFERENCE murach's Visual Basic 2008 Anne Boehm lbm Mike Murach & Associates, Inc. H 1-800-221-5528 (559) 440-9071 Fax: (559) 440-0963 [email protected] www.murach.com Contents Introduction

More information

PROBLEM SOLVING SEVENTH EDITION WALTER SAVITCH UNIVERSITY OF CALIFORNIA, SAN DIEGO CONTRIBUTOR KENRICK MOCK UNIVERSITY OF ALASKA, ANCHORAGE PEARSON

PROBLEM SOLVING SEVENTH EDITION WALTER SAVITCH UNIVERSITY OF CALIFORNIA, SAN DIEGO CONTRIBUTOR KENRICK MOCK UNIVERSITY OF ALASKA, ANCHORAGE PEARSON PROBLEM SOLVING WITH SEVENTH EDITION WALTER SAVITCH UNIVERSITY OF CALIFORNIA, SAN DIEGO CONTRIBUTOR KENRICK MOCK UNIVERSITY OF ALASKA, ANCHORAGE PEARSON Addison Wesley Boston San Francisco New York London

More information

Programming Language Pragmatics

Programming Language Pragmatics Programming Language Pragmatics THIRD EDITION Michael L. Scott Department of Computer Science University of Rochester ^ШШШШШ AMSTERDAM BOSTON HEIDELBERG LONDON, '-*i» ЩЛ< ^ ' m H NEW YORK «OXFORD «PARIS»SAN

More information

Windows PowerShell Cookbook

Windows PowerShell Cookbook Windows PowerShell Cookbook Lee Holmes O'REILLY' Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo Table of Contents Foreword Preface xvii xxi Part I. Tour A Guided Tour of Windows PowerShell

More information

Chapter 2: Elements of Java

Chapter 2: Elements of Java Chapter 2: Elements of Java Basic components of a Java program Primitive data types Arithmetic expressions Type casting. The String type (introduction) Basic I/O statements Importing packages. 1 Introduction

More information

FHE DEFINITIVE GUIDE. ^phihri^^lv JEFFREY GARBUS. Joe Celko. Alvin Chang. PLAMEN ratchev JONES & BARTLETT LEARN IN G. y ti rvrrtuttnrr i t i r

FHE DEFINITIVE GUIDE. ^phihri^^lv JEFFREY GARBUS. Joe Celko. Alvin Chang. PLAMEN ratchev JONES & BARTLETT LEARN IN G. y ti rvrrtuttnrr i t i r : 1. FHE DEFINITIVE GUIDE fir y ti rvrrtuttnrr i t i r ^phihri^^lv ;\}'\^X$:^u^'! :: ^ : ',!.4 '. JEFFREY GARBUS PLAMEN ratchev Alvin Chang Joe Celko g JONES & BARTLETT LEARN IN G Contents About the Authors

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 [email protected] [email protected] Contact: - 8961334776 9433759247 9830639522.NET JAVA WEB DESIGN PHP SQL, PL/SQL

More information

The mathematics of RAID-6

The mathematics of RAID-6 The mathematics of RAID-6 H. Peter Anvin 1 December 2004 RAID-6 supports losing any two drives. The way this is done is by computing two syndromes, generally referred P and Q. 1 A quick

More information

The programming language C. sws1 1

The programming language C. sws1 1 The programming language C sws1 1 The programming language C invented by Dennis Ritchie in early 1970s who used it to write the first Hello World program C was used to write UNIX Standardised as K&C (Kernighan

More information

The C Programming Language course syllabus associate level

The C Programming Language course syllabus associate level TECHNOLOGIES The C Programming Language course syllabus associate level Course description The course fully covers the basics of programming in the C programming language and demonstrates fundamental programming

More information

#820 Computer Programming 1A

#820 Computer Programming 1A Computer Programming I Levels: 10-12 Units of Credit: 1.0 CIP Code: 11.0201 Core Code: 35-02-00-00-030 Prerequisites: Secondary Math I, Keyboarding Proficiency, Computer Literacy requirement Semester 1

More information

Heterogeneous Replication Guide. Replication Server 15.5

Heterogeneous Replication Guide. Replication Server 15.5 Heterogeneous Replication Guide Replication Server 15.5 DOCUMENT ID: DC36924-01-1550-01 LAST REVISED: March 2010 Copyright 2010 by Sybase, Inc. All rights reserved. This publication pertains to Sybase

More information

2010-2011 Assessment for Master s Degree Program Fall 2010 - Spring 2011 Computer Science Dept. Texas A&M University - Commerce

2010-2011 Assessment for Master s Degree Program Fall 2010 - Spring 2011 Computer Science Dept. Texas A&M University - Commerce 2010-2011 Assessment for Master s Degree Program Fall 2010 - Spring 2011 Computer Science Dept. Texas A&M University - Commerce Program Objective #1 (PO1):Students will be able to demonstrate a broad knowledge

More information

Obfuscation: know your enemy

Obfuscation: know your enemy Obfuscation: know your enemy Ninon EYROLLES [email protected] Serge GUELTON [email protected] Prelude Prelude Plan 1 Introduction What is obfuscation? 2 Control flow obfuscation 3 Data flow

More information

SQL Server Array Library 2010-11 László Dobos, Alexander S. Szalay

SQL Server Array Library 2010-11 László Dobos, Alexander S. Szalay SQL Server Array Library 2010-11 László Dobos, Alexander S. Szalay The Johns Hopkins University, Department of Physics and Astronomy Eötvös University, Department of Physics of Complex Systems http://voservices.net/sqlarray,

More information

Java the UML Way: Integrating Object-Oriented Design and Programming

Java the UML Way: Integrating Object-Oriented Design and Programming Java the UML Way: Integrating Object-Oriented Design and Programming by Else Lervik and Vegard B. Havdal ISBN 0-470-84386-1 John Wiley & Sons, Ltd. Table of Contents Preface xi 1 Introduction 1 1.1 Preliminaries

More information

Module: Software Instruction Scheduling Part I

Module: Software Instruction Scheduling Part I Module: Software Instruction Scheduling Part I Sudhakar Yalamanchili, Georgia Institute of Technology Reading for this Module Loop Unrolling and Instruction Scheduling Section 2.2 Dependence Analysis Section

More information

^/ CS> KRIS. JAMSA, PhD, MBA. y» A- JONES & BARTLETT LEARNING

^/ CS> KRIS. JAMSA, PhD, MBA. y» A- JONES & BARTLETT LEARNING %\ ^/ CS> v% Sr KRIS JAMSA, PhD, MBA y» A- JONES & BARTLETT LEARNING Brief Contents Acknowledgments Preface Getting Started with HTML Integrating Images Using Hyperlinks to Connect Content Presenting Lists

More information

Course Structure of Three Year Degree B.A Programme in Computer Application under Semester System of Dibrugarh University (General Programme)

Course Structure of Three Year Degree B.A Programme in Computer Application under Semester System of Dibrugarh University (General Programme) Course Structure of Three Year Degree B.A Programme in Computer Application under Semester System of Dibrugarh University (General Programme) COURSE LECTURE DURATION(LD) /paper SEMESTER-I 1. Course Code:CAN101

More information

Table of Contents. I. Banner Design Studio Overview... 4. II. Banner Creation Methods... 6. III. User Interface... 8

Table of Contents. I. Banner Design Studio Overview... 4. II. Banner Creation Methods... 6. III. User Interface... 8 User s Manual Table of Contents I. Banner Design Studio Overview... 4 II. Banner Creation Methods... 6 a) Create Banners from scratch in 3 easy steps... 6 b) Create Banners from template in 3 Easy Steps...

More information

Business Architecture

Business Architecture Business Architecture A Practical Guide JONATHAN WHELAN and GRAHAM MEADEN GOWER Contents List of Figures List of Tables About the Authors Foreword Preface Acknowledgemen ts Abbreviations IX xi xiii xv

More information

Bindel, Spring 2010 Applications of Parallel Computers (CS 5220) Week 1: Wednesday, Jan 27

Bindel, Spring 2010 Applications of Parallel Computers (CS 5220) Week 1: Wednesday, Jan 27 Logistics Week 1: Wednesday, Jan 27 Because of overcrowding, we will be changing to a new room on Monday (Snee 1120). Accounts on the class cluster (crocus.csuglab.cornell.edu) will be available next week.

More information

Oracle PL/SQL Programming

Oracle PL/SQL Programming FOURTH EDITION Oracle PL/SQL Programming Steven Feuerstein with Bill Pribvl O'REILLY' Beijing Cambridge Farnham Köln Paris Sebastopol Taipei Tokyo Table of Contents Preface xiii Part 1. Programming in

More information

Why? A central concept in Computer Science. Algorithms are ubiquitous.

Why? A central concept in Computer Science. Algorithms are ubiquitous. Analysis of Algorithms: A Brief Introduction Why? A central concept in Computer Science. Algorithms are ubiquitous. Using the Internet (sending email, transferring files, use of search engines, online

More information

PL/SQL Programming Workbook

PL/SQL Programming Workbook ORACLG Oracle Press Oracle Database 11 g PL/SQL Programming Workbook TIB/UB Hannover 89 ACKNOWLEDGMENTS INTRODUCTION xvii xix PARTI PL/SQL Fundamentals 1 Oracle Development Overview 3 History and Background

More information

Stage 5 Information and Software Technology

Stage 5 Information and Software Technology Stage 5 Information and Software Technology Year: Year 9 Teacher: Topic: Option 8: Software Development and Programming Time: This option involves students undertaking a range of activities that will lead

More information

Course MS10975A Introduction to Programming. Length: 5 Days

Course MS10975A Introduction to Programming. Length: 5 Days 3 Riverchase Office Plaza Hoover, Alabama 35244 Phone: 205.989.4944 Fax: 855.317.2187 E-Mail: [email protected] Web: www.discoveritt.com Course MS10975A Introduction to Programming Length: 5 Days

More information

How to make the computer understand? Lecture 15: Putting it all together. Example (Output assembly code) Example (input program) Anatomy of a Computer

How to make the computer understand? Lecture 15: Putting it all together. Example (Output assembly code) Example (input program) Anatomy of a Computer How to make the computer understand? Fall 2005 Lecture 15: Putting it all together From parsing to code generation Write a program using a programming language Microprocessors talk in assembly language

More information

CSC 272 - Software II: Principles of Programming Languages

CSC 272 - Software II: Principles of Programming Languages CSC 272 - Software II: Principles of Programming Languages Lecture 1 - An Introduction What is a Programming Language? A programming language is a notational system for describing computation in machine-readable

More information

An Introduction to Programming and Computer Science

An Introduction to Programming and Computer Science An Introduction to Programming and Computer Science Maria Litvin Phillips Academy, Andover, Massachusetts Gary Litvin Skylight Software, Inc. Skylight Publishing Andover, Massachusetts Copyright 1998 by

More information

CIS570 Modern Programming Language Implementation. Office hours: TDB 605 Levine [email protected]. [email protected].

CIS570 Modern Programming Language Implementation. Office hours: TDB 605 Levine eclewis@cis.upenn.edu. cherylh@central.cis.upenn. CIS570 Modern Programming Language Implementation Instructor: Admin. Assistant: URL: E Christopher Lewis Office hours: TDB 605 Levine [email protected] Cheryl Hickey [email protected] 502

More information

Semantic Analysis: Types and Type Checking

Semantic Analysis: Types and Type Checking Semantic Analysis Semantic Analysis: Types and Type Checking CS 471 October 10, 2007 Source code Lexical Analysis tokens Syntactic Analysis AST Semantic Analysis AST Intermediate Code Gen lexical errors

More information

JDK 1.5 Updates for Introduction to Java Programming with SUN ONE Studio 4

JDK 1.5 Updates for Introduction to Java Programming with SUN ONE Studio 4 JDK 1.5 Updates for Introduction to Java Programming with SUN ONE Studio 4 NOTE: SUN ONE Studio is almost identical with NetBeans. NetBeans is open source and can be downloaded from www.netbeans.org. I

More information

Pro Apache Hadoop. Second Edition. Sameer Wadkar. Madhu Siddalingaiah

Pro Apache Hadoop. Second Edition. Sameer Wadkar. Madhu Siddalingaiah Pro Apache Hadoop Second Edition Sameer Wadkar Madhu Siddalingaiah Contents J About the Authors About the Technical Reviewer Acknowledgments Introduction xix xxi xxiii xxv Chapter 1: Motivation for Big

More information

Perdix: A Query Language for Security Logs

Perdix: A Query Language for Security Logs Perdix: A Query Language for Security Logs Orr Bibring [email protected] Justin Prosco [email protected] Angelika Zavou [email protected] Bing Wu [email protected] September 24, 2007 Abstract This

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

1. Classification problems

1. Classification problems Neural and Evolutionary Computing. Lab 1: Classification problems Machine Learning test data repository Weka data mining platform Introduction Scilab 1. Classification problems The main aim of a classification

More information

Chapter 5 Names, Bindings, Type Checking, and Scopes

Chapter 5 Names, Bindings, Type Checking, and Scopes Chapter 5 Names, Bindings, Type Checking, and Scopes Chapter 5 Topics Introduction Names Variables The Concept of Binding Type Checking Strong Typing Scope Scope and Lifetime Referencing Environments Named

More information

A Note for Students: How to Use This Book

A Note for Students: How to Use This Book Preface This book is an introduction to computer science. It is intended for beginning CS majors or students from other fields who want a general introduction to computer science and computer programming.

More information

PL/SQL Overview. Basic Structure and Syntax of PL/SQL

PL/SQL Overview. Basic Structure and Syntax of PL/SQL PL/SQL Overview PL/SQL is Procedural Language extension to SQL. It is loosely based on Ada (a variant of Pascal developed for the US Dept of Defense). PL/SQL was first released in ١٩٩٢ as an optional extension

More information

Software Configuration Management Using Vesta

Software Configuration Management Using Vesta Allan Heydon Roy Levin Timothy Mann Yuan Yu Software Configuration Management Using Vesta Springer Contents Preface vii Part I Introducing Vesta 1 Introduction 5 1.1 Some Scenarios 6 1.2 The Connguration

More information

MPI Hands-On List of the exercises

MPI Hands-On List of the exercises MPI Hands-On List of the exercises 1 MPI Hands-On Exercise 1: MPI Environment.... 2 2 MPI Hands-On Exercise 2: Ping-pong...3 3 MPI Hands-On Exercise 3: Collective communications and reductions... 5 4 MPI

More information

Handout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner.

Handout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner. Handout 1 CS603 Object-Oriented Programming Fall 15 Page 1 of 11 Handout 1 Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner. Java

More information

A single register, called the accumulator, stores the. operand before the operation, and stores the result. Add y # add y from memory to the acc

A single register, called the accumulator, stores the. operand before the operation, and stores the result. Add y # add y from memory to the acc Other architectures Example. Accumulator-based machines A single register, called the accumulator, stores the operand before the operation, and stores the result after the operation. Load x # into acc

More information

Intelligent Database Monitoring System using ARM9 with QR Code

Intelligent Database Monitoring System using ARM9 with QR Code Intelligent Database Monitoring System using ARM9 with QR Code Jyoshi Niklesh 1, Dhruva R. Rinku 2 Department of Electronics and Communication CVR College of Engineering, JNTU Hyderabad Hyderabad, India

More information

Workflow Administration of Windchill 10.2

Workflow Administration of Windchill 10.2 Workflow Administration of Windchill 10.2 Overview Course Code Course Length TRN-4339-T 2 Days In this course, you will learn about Windchill workflow features and how to design, configure, and test workflow

More information

2) Write in detail the issues in the design of code generator.

2) Write in detail the issues in the design of code generator. COMPUTER SCIENCE AND ENGINEERING VI SEM CSE Principles of Compiler Design Unit-IV Question and answers UNIT IV CODE GENERATION 9 Issues in the design of code generator The target machine Runtime Storage

More information

Parallel Computing for Data Science

Parallel Computing for Data Science Parallel Computing for Data Science With Examples in R, C++ and CUDA Norman Matloff University of California, Davis USA (g) CRC Press Taylor & Francis Group Boca Raton London New York CRC Press is an imprint

More information

We will learn the Python programming language. Why? Because it is easy to learn and many people write programs in Python so we can share.

We will learn the Python programming language. Why? Because it is easy to learn and many people write programs in Python so we can share. LING115 Lecture Note Session #4 Python (1) 1. Introduction As we have seen in previous sessions, we can use Linux shell commands to do simple text processing. We now know, for example, how to count words.

More information

Sources: On the Web: Slides will be available on:

Sources: On the Web: Slides will be available on: C programming Introduction The basics of algorithms Structure of a C code, compilation step Constant, variable type, variable scope Expression and operators: assignment, arithmetic operators, comparison,

More information

İSTANBUL AYDIN UNIVERSITY

İSTANBUL AYDIN UNIVERSITY İSTANBUL AYDIN UNIVERSITY FACULTY OF ENGİNEERİNG SOFTWARE ENGINEERING THE PROJECT OF THE INSTRUCTION SET COMPUTER ORGANIZATION GÖZDE ARAS B1205.090015 Instructor: Prof. Dr. HASAN HÜSEYİN BALIK DECEMBER

More information

Embedded Software development Process and Tools: Lesson-4 Linking and Locating Software

Embedded Software development Process and Tools: Lesson-4 Linking and Locating Software Embedded Software development Process and Tools: Lesson-4 Linking and Locating Software 1 1. Linker 2 Linker Links the compiled codes of application software, object codes from library and OS kernel functions.

More information

Schneps, Leila; Colmez, Coralie. Math on Trial : How Numbers Get Used and Abused in the Courtroom. New York, NY, USA: Basic Books, 2013. p i.

Schneps, Leila; Colmez, Coralie. Math on Trial : How Numbers Get Used and Abused in the Courtroom. New York, NY, USA: Basic Books, 2013. p i. New York, NY, USA: Basic Books, 2013. p i. http://site.ebrary.com/lib/mcgill/doc?id=10665296&ppg=2 New York, NY, USA: Basic Books, 2013. p ii. http://site.ebrary.com/lib/mcgill/doc?id=10665296&ppg=3 New

More information

Table of Contents. Part I Welcome. Part II Introduction. Part III Getting Started. Part IV The User Interface. Part V Quick Start Tutorials

Table of Contents. Part I Welcome. Part II Introduction. Part III Getting Started. Part IV The User Interface. Part V Quick Start Tutorials Contents I Table of Contents Part I Welcome 5 Part II Introduction 5 1 Overview... 5 2 Product... Levels 5 3 Technical... Support 6 4 Copyright... 7 Part III Getting Started 7 1 Installation... 7 2 Register...

More information

Guidelines for Software Development Efficiency on the TMS320C6000 VelociTI Architecture

Guidelines for Software Development Efficiency on the TMS320C6000 VelociTI Architecture Guidelines for Software Development Efficiency on the TMS320C6000 VelociTI Architecture WHITE PAPER: SPRA434 Authors: Marie Silverthorn Leon Adams Richard Scales Digital Signal Processing Solutions April

More information

The Java Virtual Machine and Mobile Devices. John Buford, Ph.D. [email protected] Oct 2003 Presented to Gordon College CS 311

The Java Virtual Machine and Mobile Devices. John Buford, Ph.D. buford@alum.mit.edu Oct 2003 Presented to Gordon College CS 311 The Java Virtual Machine and Mobile Devices John Buford, Ph.D. [email protected] Oct 2003 Presented to Gordon College CS 311 Objectives Review virtual machine concept Introduce stack machine architecture

More information

SQL Server 2012. Integration Services. Design Patterns. Andy Leonard. Matt Masson Tim Mitchell. Jessica M. Moss. Michelle Ufford

SQL Server 2012. Integration Services. Design Patterns. Andy Leonard. Matt Masson Tim Mitchell. Jessica M. Moss. Michelle Ufford SQL Server 2012 Integration Services Design Patterns Andy Leonard Matt Masson Tim Mitchell Jessica M. Moss Michelle Ufford Contents J Foreword About the Authors About the Technical Reviewers Acknowledgments

More information