Norman D. Thomson Raymond P. Polivka. APL2 in Depth. Springer-Verlag. New York Berlin Heidelberg London Paris Tokyo Hong Kong Barcelona Budapest

Size: px
Start display at page:

Download "Norman D. Thomson Raymond P. Polivka. APL2 in Depth. Springer-Verlag. New York Berlin Heidelberg London Paris Tokyo Hong Kong Barcelona Budapest"

Transcription

1 APL2 in Depth

2 Norman D. Thomson Raymond P. Polivka APL2 in Depth Springer-Verlag New York Berlin Heidelberg London Paris Tokyo Hong Kong Barcelona Budapest

3 Nonnan D. Thomson Finnock House Cliff Terrace Road Wemyss Bay Scotland PA18 6AP Raymond P. Polivka 60 Timberline Drive Poughkeepsie, NY USA Library of Congress Cataloging-in-Publication Data Thomson. Nonnan (Nonnan D.) APL2 in depth / Nonnan Thomson, Ray Polivka. p. cm. Includes bibliographical references and index. ISBN-13: e-isbn-13: DOl: / l. APL2 (Computer program language) I. Polivka. Raymond P. (Raymond Peter), II. Title. QA76.73.A655T '3-dc20 Printed on acid-free paper Springer-Verlag New York, Inc. All rights reserved. This work may not be translated or copied in whole or in part without the written pennission of the publisher (Springer-Verlag New York. Inc., 175 Fifth Avenue, New York, NY 10010, USA). except for brief excerpts in connection with reviews or scholarly analysis. Use in connection with any fonn of infonnation storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed is forbidden. The use of general descriptive names, trade names, trademarks, etc.. in this publication, even if the fonner are not especially identified, is not to be taken as a sign that such names, as understood by the Trade Marks and Merchandise Marks Act, may accordingly be used freely by anyone. Production managed by Laura Carlson; manufacturing supervised by Jeffrey Taub. Camera-ready copy prepared by the authors

4 Preface This book is designed for people with a working knowledge of APL who would like to increase their fluency in the wide range of extra facilities offered by second-generation APL products. Although the primary product in view is IBM's APL2 as implemented on mainframe, PC and RS/6000, the language features covered share considerable common ground with APL *PLUS II and Oyalog APL. This is a book about skills rather than knowledge, and an acquaintance with some variety of APL on the reader's part is assumed from the start. It is designed to be read as a continuous text, interspersed with exercises designed to give progressively deeper insight into what the authors conceive as the features which have the greatest impact on programming techniques. It would also be suitable as a text-book for a second course in APL2, although experience suggests that most programming language learning is now by selfstudy, so that this volume is more likely to provide follow-up reading to more elementary texts such as "APL2 at a Glance" by Brown, Pakin and Polivka. Material is discussed more informally than in a language manual - in this book textual bulk is in proportion to difficulty and importance rather than to the extent of technical details. Indeed, some APL2 extensions are not covered at all where the technicalities pose no great problems in understanding and can be readily assimilated from the language manuals. Second-generation APL is dominated by two ideas - nested arrays and operator extension. Nested arrays are in principle so simple a concept that only a few minutes are needed for an experienced APL user to read and absorb their technical specifications, and also those of the closely associated functions enclose, disclose and depth, and the operator each. Nevertheless the increase in expressiveness and potential complexity which these few simple ideas add is truly astonishing. The first chapter discusses APL2 arrays and functions, grouping the latter into broad areas such as structuring, selection and inquiry. Chapter 2 considers operators, both primitive and user-defined. Chapter 3 contains demonstrations to show how nested arrays deal with simple data structures in a way which makes their behavior comprehensible and useful to people with very limited pro-

5 vi Preface gramming background and experience. Chapters 4-6 then retrace and develop the ideas of chapters 1-3. Chapter 4 develops the ideas of chapter 1, but focusing more on the way in which functions interact. Chapter 5 develops the Chapter 2 discussion of operators in a similar way, and Chapter 6 gives more sophisticated examples which use all the powerful features of APL2 which have been developed in the previous five chapters. Applications Using APL2 to its full capability is a skill whose acquisition takes time and patience which are an order of magnitude greater than the skills needed for a mastery of first-generation APLs. The reward, on the other hand, is the stimulus of a language whose exploration is a source of constant delight through its seemingly endless capacity for expressing ideas of indefinite complexity in unambiguous and succinct terms. Of the existing APL texts and primers, some were originally first-generation APL works upgraded to APL2 by the addition of new sections and appendices. Others assume that APL2 is the first language which the user encounters. This book is addressed to the thousands of people, some programmers and some not, who have achieved both enhancement to their professional skills and personal satisfaction in learning and using APL, and who would like to build on this foundation by acquiring a matching fluency in the skills associated with APL2. Extra weight is therefore given in the text to those APL2 language features which extend user versatility in describing data structures and communicating algorithms in ways which mirror current thinking in computing science and software engineering. The exercises are designed to give the reader practice in these processes. Frequently, subtler points of difference are best illustrated by exercises with long sequences of similar expressions to be evaluated. With many exercises, a few keystrokes on a terminal will deliver the answer, and whilst the reader is encouraged to use a computer as a check, the fullest value of most exercises is obtained by predicting the result before having the computer deliver it. All solutions are

6 APL2 IN DEPl'H vii given in an appendix so that it is possible to use the book as a study guide even without the availability of an APL2 system. The functions, operators, and much of the data in the text are available on a 3.5" disk. Either of the authors can supply particulars. APL2 has its roots in Ken Iverson's original concepts of a symbolic notation for use with computers. Through the efforts over the years of Jim Brown and his team at IBM's Santa Teresa Laboratory these have matured into a language which can be consistently used through the whole range of software development, that is specification, design, coding, and testing. We have attempted to penetrate beyond the mere description of the syntax and semantics of the language and provide a study in greater depth of the interaction between nested arrays and the various functions and operators. We hope that the present work, "APL2 in Depth" will encourage greater use of APL2. We should like to acknowledge the thorough and thoughtful review by Curtis Jones, without which this text would have been greatly poorer, and also helpful comments and suggestions from Garth Foster, Helmut Engelke, Bert Rosencrantz, Phil Benkard, and Ron Wilks. We are also greatly indebted to Jon McGrew for his invaluable help in the typographical preparation of the text. Ray Polivka 60 Timberline Drive Poughkeepsie, New York USA Norman Thomson Finnock House Cliff Terrace Rd. Wemyss Bay Scotland PA18 6AP

7 Conventions Used for Arrays, Functions, Operators and Indentities Names of Arrays A general principle is that "small" arrays, that is those which require fewer than 15 non-blank characters to construct them by direct keyboard entry, are given either meaningful names, or one-character names, usually s for scalar, V for vector, M for matrix, A for array. Larger objects are given either descriptive names or a name such as V23 which denotes the third vector defined in Chapter 2. Objects so named are stored on the disk which is available to accompany the book. Functions and Operators When a word like "pick" is used in its specific role as an APL function or operator, it is printed in a heavy font thus: pick. The following conventions are used in writing defined functions and operators: F a function z result of a function or derived function L, R left and right arguments of a function P, Q left and right operands of an operator T, U, V local variables Operations which behave identically, or nearly so, but contain different code are distinguished by using different combinations of upper and lower case letters in their names. A subsidiary operation is indicated by the prefix 6.

8 x APL2 IN DEPTH Labels and Comments Labels are named L 1. L2. L3.... and so on. The general format for a line in an operation (i.e. a function or operator) is: [line-number] Lnl expression FI comment There are several distinguishable uses for comments, in particular they may describe (a) constraints on arguments and operands prior to execution; (b) description of a result following execution; (c) effects on global variables in the workspace; (d) clarification in words of a single APL line; (e) description of current execution status of data and/or a program. Comments are permitted on the header line in many APL2 implementations. Where type (a) comments can be expressed sufficiently briefly this usage is adopted, otherwise they are given in separate lines at the head of the function. Most of the functions in this book are very short, and the emphasis is on transforming ideas into APL2 program fragments rather than on the development of programming systems where type (e) comments are more likely to be found. Where these occur in production APL2 code they frequently indicate the possibility of breaking down a function into subfunctions. Labels may be floating, that is a function line may consist of a label and its colon only, possibly with a comment. Judicious use of the floating label and comment combination can add considerably to legibility, adaptability and maintenance of functions. Floating labels used in this way are another frequent indication of suitable points for subdividing a function into subfunctions. Identities The symbol ++ is used to denote "is identically equal to."

9 Contents Preface Conventions used for Arrays, Functions, Operators and Identities Names of Arrays Functions and Operators Labels and Comments Identities.V.ix.ix.ix x x 1 Functions and Arrays in APL2 1.1 Nested Arrays and Depth Complex Numbers 1.2 Construction of Arrays Vector Notation Exercises 1 a Enlist Ravel with Axis Default Display of Arrays Enclose and Disclose Exercises 1 b Partial Enclose and Disclose Relationship between Partial Enclosure and Axis Qualifiers Exercises 1 c Partition 1.3 Selection Pick and Path First Indexing Scatter Indexing Indexing with Axes Index of Exercises 1 d Without 1.4 Replacement Vector Assignment Selective Assignment 1.5 Restructuring Formatting Default rules for mixed data type Sorting 1.6 Comparison and Inquiry

10 xli APL2 IN DEPTH Depth Match Find. Exercises 1 e Summary of Functions used in Chapter Operators The Each Operator Pervasiveness Scalar Extension. Exercises 2a Each with non-pervasive Functions Exercises 2b Index with Each Extensions to the Slash Operator Replicate Dyadic Reduction.... Exercises 2c..... Summary of Functions used in Chapter Elementary Data Structuring 3.1 Example 1. Product Stocks Exercises 3a Example 2. Optimizing Rental Charges. Exercises 3b..... Summary of Functions used in Chapter Using Functions and Arrays. 4.1 Cross-sections, Picking and Indexing Each and Scalar Functions Some lliustrations using Nested Arrays Exercises 4a Further lliustrations using Nested Arrays Exercises 4b Distinctions between Similar Primitives First and Take/Drop First and Pick Type and Prototype Pick and Disclose First and Disclose Summary of Relationship between above Functions Exercises 4c Empty Arrays and Fill Functions Identity Items and Identity Functions Identity Items III

11 Contents xiii Identity and Inverse Functions Exercises 4d. Summary of Functions used in Chapter Using Operators 5.1 The Role of Operators in APL User-defined Operators 5.2 Binding Exercises Sa 5.3 Matching Function Arguments Function Composition Ambi-valency 5.4 Recursion with Functions and Operators Exercises 5b 5.5 Extensions to First-generation APL Operators Reduction Reduction with Rank Greater than one Scan Reversing scans Expand Outer Product Inner Product Exercises 5c Further Topics on Inner and Outer Products Inner Product and Scan Decode/Encode and Inner/Outer Products Exercises 5d 5.6 Applications of User-Defmed Operators Control Structures ONLY UNLESS UPTO UNTIL Conditional and Alternative Function Execution Exercises 5e LEVEL LEVEL with Monadic P LEVEL with Dyadic P : Exercises Sf Summary of Functions used in Chapter 5 Summary of U ser-defmed Operators in Chapter Advanced Modelling and Data Structures 6.1 Trees Without Keys 6.2 Trees with Keys Finding Ancestors Subtrees Eliminating and Swapping Subtrees...,

12 xlv APL2 IN DEPTH 6.3 Binary Trees Trees with non-simple Scalar Nodes Searching Binary Trees Selective Enlist with Binary Trees Data-equivalent Binary Trees Alternative Comparisons.... Exercises 6a Networks The Vector of Paths through a network Parallel computation along paths Assignment of Flows Minimum Spanning Tree Precedence and Reachability Exercises 6b.... Summary of Operations used in Chapter Appendix A. Solutions to Exercises.... Solutions la.... Solutions lb.... Solutions 1 c Solutions ld Solutions Ie Solutions 2a.... Solutions 2b.... Solutions 2c Solutions 3a.... Solutions 3b.... Solutions and Notes 4a.... Solutions 4b.... Solutions 4c Solutions 4d Solutions Sa.... Solutions Sb.... Solutions and Notes Sc.... Solutions 5d.... Solutions 5e.... Solutions Sf.... Solutions 6a.... Solutions 6b Appendix B. Some Key Rules and Identities Appendix C. Ust of Dlustrations Index

Programming with Turing and Object Oriented Turing

Programming with Turing and Object Oriented Turing Programming with Turing and Object Oriented Turing Peter Grogono Programming with Turing and Object Oriented Turing Springer-Verlag New York Berlin Heidelberg London Paris Tokyo Hong Kong Barcelona Budapest

More information

Using MSC/NASTRAN: Statics and Dynamics

Using MSC/NASTRAN: Statics and Dynamics Using MSC/NASTRAN: Statics and Dynamics A.D. Cifuentes Using MSC/NASTRAN Statics and Dynamics With 94 Illustrations Springer-Verlag New York Berlin Heidelberg London Paris Tokyo Hong Kong Arturo O. Cifuentes

More information

The MATLAB 5 Handbook

The MATLAB 5 Handbook The MATLAB 5 Handbook Springer New York Berlin Heidelberg Barcelona Budapest Hong Kong London Milan Paris Singapore Tokyo Darren Redfern Colin Campbell The MATLAB 5 Handbook Springer Darren Redfern Practical

More information

ITSM: An Interactive Time Series Modelling Package for the pe

ITSM: An Interactive Time Series Modelling Package for the pe ITSM: An Interactive Time Series Modelling Package for the pe Peter J. Brockwell Richard A. Davis ITSM: An Interactive Time Series Modelling Package for the pe With 53 Illustrations and 3 Diskettes Written

More information

Visualization in Supercomputing

Visualization in Supercomputing Visualization in Supercomputing Raul H. Mendez Editor Visualization in Supercomputing With 166 Illustrations, 25 in Color Springer-Verlag New York Berlin Heidelberg London Paris Tokyo Hong Kong Raul H.

More information

Graphics Programming in c++

Graphics Programming in c++ Graphics Programming in c++ Springer London Berlin Heidelberg New York Barcelona Budapest Hong Kong Milan Paris Santa Clara Singapore Tokyo Mark Walmsley Graphics Programming in c++ Writing Graphics Applications

More information

Guide to RISC Processors

Guide to RISC Processors Guide to RISC Processors Sivarama P. Dandamudi Guide to RISC Processors for Programmers and Engineers Sivarama P. Dandamudi School of Computer Science Carleton University Ottawa, ON K1S 5B6 Canada sivarama@scs.carleton.ca

More information

Computer Science Workbench. Editor: Tosiyasu L. Kunii

Computer Science Workbench. Editor: Tosiyasu L. Kunii Computer Science Workbench Editor: Tosiyasu L. Kunii H. Kitagawa T.L. Kunii The U nnortnalized Relational Data Model F or Office Form Processor Design With 78 Figures Springer-Verlag Tokyo Berlin Heidelberg

More information

Yves Nievergelt. Wavelets Made Easy. Springer Science+Business Media, LLC

Yves Nievergelt. Wavelets Made Easy. Springer Science+Business Media, LLC Wavelets Made Easy Yves Nievergelt Wavelets Made Easy Springer Science+Business Media, LLC Yves Nievergelt Department of Mathematics Eastem Washington University Cheney, WA 99004-2431 USA Library of Congress

More information

9. Elementary Algebraic and Transcendental Scalar Functions

9. Elementary Algebraic and Transcendental Scalar Functions Scalar Functions Summary. Introduction 2. Constants 2a. Numeric Constants 2b. Character Constants 2c. Symbol Constants 2d. Nested Constants 3. Scalar Functions 4. Arithmetic Scalar Functions 5. Operators

More information

Open Geometry: OpenGL + Advanced Geometry

Open Geometry: OpenGL + Advanced Geometry Open Geometry: OpenGL + Advanced Geometry Springer-Science+Business Media, LLC Open Geometry: OpenGL + Advanced Geometry Georg Glaeser Hellmuth Stachel Springer Georg G laeser University of Applied Arts,

More information

Research Directions in Database Security

Research Directions in Database Security Research Directions in Database Security Teresa F. Lunt Editor Research Directions in Database Security With 16 Illustrations Springer-Verlag New York Berlin Heidelberg London Paris Tokyo Hong Kong Barcelona

More information

Interactive 3D Graphics in Windows

Interactive 3D Graphics in Windows Interactive 3D Graphics in Windows Springer New York Berlin Heidelberg Barcelona Budapest Hong Kong London Milan Paris Tokyo Roy Hall Danielle Forsyth Springer Additional material to this book can be downloaded

More information

Graph Data Model. and Its Data Language. Hideko S. Kunii. Foreword by Gio Wiederhold

Graph Data Model. and Its Data Language. Hideko S. Kunii. Foreword by Gio Wiederhold Hideko S. Kunii Graph Data Model and Its Data Language Foreword by Gio Wiederhold With 35 Figures Springer-Verlag Tokyo Berlin Heidelberg New York London Paris Hong Kong HIDEKO S. KUNII General Manager

More information

Inside Relational Databases with Examples in Access

Inside Relational Databases with Examples in Access Inside Relational Databases with Examples in Access Inside Relational Databases with Examples in Access Mark Whitehorn and Bill Marklyn 123 Mark Whitehorn Applied Computing Division, University of Dundee,

More information

Database Performance Tuning and Optimization. Using Oracle

Database Performance Tuning and Optimization. Using Oracle Database Performance Tuning and Optimization Using Oracle Springer New York Berlin Heidelberg Hong Kong London Milan Paris Tokyo Sitansu S. Mittra Database Performance Tuning and Optimization Using Oracle

More information

Modeling and Simulation in Scilab/Scicos with ScicosLab 4.4

Modeling and Simulation in Scilab/Scicos with ScicosLab 4.4 Modeling and Simulation in Scilab/Scicos with ScicosLab 4.4 Stephen L. Campbell, Jean-Philippe Chancelier and Ramine Nikoukhah Modeling and Simulation in Scilab/Scicos with ScicosLab 4.4 Second Edition

More information

Functional Programming Using F#

Functional Programming Using F# Functional Programming Using F# This introduction to the principles of functional programming using F# shows how to apply theoretical concepts to produce succinct and elegant programs. The book shows how

More information

An Introduction to Programming with IDL

An Introduction to Programming with IDL An Introduction to Programming with IDL Interactive Data Language Kenneth P. Bowman Department of Atmospheric Sciences Texas A&M University AMSTERDAM BOSTON HEIDELBERG LONDON NEW YORK OXFORD PARIS SAN

More information

Quick-Sort fi fi fi 7 9. Quick-Sort Goodrich, Tamassia

Quick-Sort fi fi fi 7 9. Quick-Sort Goodrich, Tamassia Quick-Sort 7 4 9 6 2 fi 2 4 6 7 9 4 2 fi 2 4 7 9 fi 7 9 2 fi 2 9 fi 9 Quick-Sort 1 Quick-Sort ( 10.2 text book) Quick-sort is a randomized sorting algorithm based on the divide-and-conquer paradigm: x

More information

This document contains a series of 5 articles written for Vector magazine, and published in Vols

This document contains a series of 5 articles written for Vector magazine,  and published in Vols This document contains a series of 5 articles written for Vector magazine, www.vector.org.uk and published in Vols 13-14. The documents were originally Word files, and have been merged together into a

More information

My Favorite Idiom. October, Dr. James A. Brown. IBM Santa Teresa Lab J88/E Bailey Ave. San Jose. Calif USA

My Favorite Idiom. October, Dr. James A. Brown. IBM Santa Teresa Lab J88/E Bailey Ave. San Jose. Calif USA My Favorite Idiom October, 1988 Dr. James A. Brown IBM Santa Teresa Lab J88/E42 555 Bailey Ave. San Jose. Calif. 95141 USA ii My Favorite Idiom ) Introduction to Idioms nus paper discussesapl idioms: what

More information

STUDENT OUTLINE. Lesson 8: Structured Programming, Control Structures, if-else Statements, Pseudocode

STUDENT OUTLINE. Lesson 8: Structured Programming, Control Structures, if-else Statements, Pseudocode STUDENT OUTLINE Lesson 8: Structured Programming, Control Structures, if- Statements, Pseudocode INTRODUCTION: This lesson is the first of four covering the standard control structures of a high-level

More information

EXTERNAL INQUIRIES. Objective of Section: Definition: Rating:

EXTERNAL INQUIRIES. Objective of Section: Definition: Rating: EXTERNAL INQUIRIES 7 Objective of Section: Describe and define the concepts necessary to identify and rate External Inquiries. The exercises at the end of the section help the student demonstrate that

More information

Computer-Aided Design in Magnetics

Computer-Aided Design in Magnetics Computer-Aided Design in Magnetics D. A. Lowther P. P. Silvester Computer-Aided Design in Magnetics With 84 illustrations Springer-Verlag Berlin Heidelberg New York Tokyo D. A. Lowther Associate Professor

More information

A Structured Programming Approach to Data

A Structured Programming Approach to Data A Structured Programming Approach to Data Derek Coleman A Structured Programming Approach to Data Springer-Verlag New York Derek Coleman Department of Computation Institute of Science Technology University

More information

George Grätzer. Practical L A TEX

George Grätzer. Practical L A TEX Practical L A TEX George Grätzer Practical L A TEX 123 George Grätzer Toronto, ON, Canada Additional material to this book can be downloaded from http://extras.springer.com ISBN 978-3-319-06424-6 ISBN

More information

Workbook for C++ THIRD EDITION. Yedidyah Langsam, Ph.D. Brooklyn College of the City University of New York. Custom Publishing

Workbook for C++ THIRD EDITION. Yedidyah Langsam, Ph.D. Brooklyn College of the City University of New York. Custom Publishing 9200134_CH00_FM_pi-viii.qxd 6/23/09 3:08 AM Page i Workbook for C++ THIRD EDITION Yedidyah Langsam, Ph.D. Brooklyn College of the City University of New York Custom Publishing New York Boston San Francisco

More information

Using the Deutsch-Jozsa algorithm to determine parts of an array and apply a specified function to each independent part

Using the Deutsch-Jozsa algorithm to determine parts of an array and apply a specified function to each independent part Using the Deutsch-Jozsa algorithm to determine parts of an array and apply a specified function to each independent part Samir Lipovaca slipovaca@nyse.com Keywords: Deutsch-Jozsa, algorithm, quantum computer,

More information

Scheduling in Distributed Computing Systems Analysis, Design & Models

Scheduling in Distributed Computing Systems Analysis, Design & Models Scheduling in Distributed Computing Systems Analysis, Design & Models (A Research Monograph) Scheduling in Distributed Computing Systems Analysis, Design & Models (A Research Monograph) by Deo Prakash

More information

Event Management Programming Guide and Reference

Event Management Programming Guide and Reference RS/6000 Cluster Technology Event Management Programming Guide and Reference SA22-7354-01 RS/6000 Cluster Technology Event Management Programming Guide and Reference SA22-7354-01 Note! Before using this

More information

Excel for Chemists. Second Edition

Excel for Chemists. Second Edition Excel for Chemists Second Edition This page intentionally left blank ExceL for Chemists A Comprehensive Guide Second Edition E. Joseph Billo Department of Chemistry Boston College Chestnut Hill, Massachusetts

More information

Interfacing with C++

Interfacing with C++ Interfacing with C++ Jayantha Katupitiya Kim Bentley Interfacing with C++ Programming Real-World Applications ABC Dr. Jayantha Katupitiya Senior Lecturer School of Mechanical and Manufacturing Engineering

More information

RAQUEL s Relational Operators

RAQUEL s Relational Operators Contents RAQUEL s Relational Operators Introduction 2 General Principles 2 Operator Parameters 3 Ordinary & High-Level Operators 3 Operator Valency 4 Default Tuples 5 The Relational Algebra Operators in

More information

LOGICAL DATA MODELING

LOGICAL DATA MODELING LOGICAL DATA MODELING INTEGRATED SERIES IN INFORMATION SYSTEMS Professor Ramesh Sharda Oklahoma State University Series Editors Prof. Dr. Stefan VoB Universitat Hamburg Expository and Research Monographs

More information

Chapter 2 Basic Elements of C++

Chapter 2 Basic Elements of C++ C++ Programming: From Problem Analysis to Program Design, Fifth Edition 2-1 Chapter 2 Basic Elements of C++ At a Glance Instructor s Manual Table of Contents Overview Objectives s Quick Quizzes Class Discussion

More information

The Art of Lisp Programming

The Art of Lisp Programming The Art of Lisp Programming Robin Jones Clive Maynard Ian Stewart The Art of Lisp Programming With 12 Illustrations Springer-Verlag London Berlin Heidelberg N ew York Paris Tokyo Hong Kong Robin Jones

More information

C++ Style Guide. 1.0 General. 2.0 Visual Layout. 3.0 Indentation and Whitespace

C++ Style Guide. 1.0 General. 2.0 Visual Layout. 3.0 Indentation and Whitespace C++ Style Guide 1.0 General The purpose of the style guide is not to restrict your programming, but rather to establish a consistent format for your programs. This will help you debug and maintain your

More information

Springer Books on Professional Computing. Edited by Henry Ledgard

Springer Books on Professional Computing. Edited by Henry Ledgard Springer Books on Professional Computing Edited by Henry Ledgard Springer Books on Professional Computing Computer Confidence: A Human Approach to Computers Bruce D. Sanders. viii, 90 pages. 23 figures.

More information

Draw a diagram of an empty circular queue and describe it to the reader.

Draw a diagram of an empty circular queue and describe it to the reader. 1020_1030_testquestions.text Wed Sep 10 10:40:46 2014 1 1983/84 COSC1020/30 Tests >>> The following was given to students. >>> Students can have a good idea of test questions by examining and trying the

More information

Fundamentals of the J Programming Language

Fundamentals of the J Programming Language 2 Fundamentals of the J Programming Language In this chapter, we present the basic concepts of J. We introduce some of J s built-in functions and show how they can be applied to data objects. The pricinpals

More information

PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS

PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS Objective PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS Explain what is meant by compiler. Explain how the compiler works. Describe various analysis of the source program. Describe the

More information

PTC Mathcad Prime 3.0

PTC Mathcad Prime 3.0 Essential PTC Mathcad Prime 3.0 A Guide for New and Current Users Brent Maxfield, P.E. AMSTERDAM BOSTON HEIDELBERG LONDON NEW YORK OXFORD PARIS SAN DIEGO SAN FRANCISCO SINGAPORE SYDNEY TOKYO @ Academic

More information

Quick-Sort. Quick-Sort 1

Quick-Sort. Quick-Sort 1 Quick-Sort 7 4 9 6 2 2 4 6 7 9 4 2 2 4 7 9 7 9 2 2 9 9 Quick-Sort 1 Outline and Reading Quick-sort ( 4.3) Algorithm Partition step Quick-sort tree Execution example Analysis of quick-sort (4.3.1) In-place

More information

Foundations of 3D Graphics Programming

Foundations of 3D Graphics Programming Foundations of 3D Graphics Programming Jim X. Chen Edward J. Wegman Foundations of 3D Graphics Programming Using JOGL and Java3D With 139 Figures Jim X. Chen, PhD Computer Science Department George Mason

More information

Advanced Multidimensional Reporting

Advanced Multidimensional Reporting Guideline Advanced Multidimensional Reporting Product(s): IBM Cognos 8 Report Studio Area of Interest: Report Design Advanced Multidimensional Reporting 2 Copyright Copyright 2008 Cognos ULC (formerly

More information

THE VERILOG? HARDWARE DESCRIPTION LANGUAGE

THE VERILOG? HARDWARE DESCRIPTION LANGUAGE THE VERILOG? HARDWARE DESCRIPTION LANGUAGE THE VERILOGf HARDWARE DESCRIPTION LANGUAGE by Donald E. Thomas Carnegie Mellon University and Philip R. Moorby Cadence Design Systems, Inc. SPRINGER SCIENCE+BUSINESS

More information

CMSC th Lecture: Graph Theory: Trees.

CMSC th Lecture: Graph Theory: Trees. CMSC 27100 26th Lecture: Graph Theory: Trees. Lecturer: Janos Simon December 2, 2018 1 Trees Definition 1. A tree is an acyclic connected graph. Trees have many nice properties. Theorem 2. The following

More information

12 Abstract Data Types

12 Abstract Data Types 12 Abstract Data Types 12.1 Foundations of Computer Science Cengage Learning Objectives After studying this chapter, the student should be able to: Define the concept of an abstract data type (ADT). Define

More information

The Architectural Logic of Database Systems

The Architectural Logic of Database Systems The Architectural Logic of Database Systems E. J. Yannakoudakis The Architectural Logic of Database Systems With 69 Figures Springer-Verlag london Berlin Heidelberg New York Paris Tokyo E. 1. Yannakoudakis,

More information

Overview : Table Of Content :

Overview : Table Of Content : Book Title:-A Workbook on C++ Author :-Sumit Mittu ISBN :-9788131520666 Price :-INR 499 Pages :-396 Edition :-2 Imprint :-Cengage Learning India Year :-2013 'A Workbook on C++ covers the topics required

More information

A Simple Syntax-Directed Translator

A Simple Syntax-Directed Translator Chapter 2 A Simple Syntax-Directed Translator 1-1 Introduction The analysis phase of a compiler breaks up a source program into constituent pieces and produces an internal representation for it, called

More information

Algorithms for Discrete Fourier Transform and Convolution

Algorithms for Discrete Fourier Transform and Convolution Algorithms for Discrete Fourier Transform and Convolution Second Edition Springer Science+Business Media, LLC Signal Processing and Digital Filtering Synthetic Aperture Radar J.P. Fitch Multiplicative

More information

CSE 100 Advanced Data Structures

CSE 100 Advanced Data Structures CSE 100 Advanced Data Structures Overview of course requirements Outline of CSE 100 topics Review of trees Helpful hints for team programming Information about computer accounts Page 1 of 25 CSE 100 web

More information

GUI 1.5 Release Notes

GUI 1.5 Release Notes GUI 1.5 Release Notes Released: June 2003 The information contained within this document is subject to change without notice. Copyright 2003 All rights reserved. No part of this documentation may be reproduced,

More information

Presentation for use with the textbook, Algorithm Design and Applications, by M. T. Goodrich and R. Tamassia, Wiley, 2015

Presentation for use with the textbook, Algorithm Design and Applications, by M. T. Goodrich and R. Tamassia, Wiley, 2015 Presentation for use with the textbook, Algorithm Design and Applications, by M. T. Goodrich and R. Tamassia, Wiley, 2015 Quick-Sort 7 4 9 6 2 2 4 6 7 9 4 2 2 4 7 9 7 9 2 2 9 9 2015 Goodrich and Tamassia

More information

COMPUTATIONAL DYNAMICS

COMPUTATIONAL DYNAMICS COMPUTATIONAL DYNAMICS THIRD EDITION AHMED A. SHABANA Richard and Loan Hill Professor of Engineering University of Illinois at Chicago A John Wiley and Sons, Ltd., Publication COMPUTATIONAL DYNAMICS COMPUTATIONAL

More information

Java Quick Syntax Reference. Second Edition. Mikael Olsson

Java Quick Syntax Reference. Second Edition. Mikael Olsson Java Quick Syntax Reference Second Edition Mikael Olsson Java Quick Syntax Reference Second Edition Mikael Olsson Java Quick Syntax Reference Mikael Olsson Hammarland, Länsi-Suomi, Finland ISBN-13 (pbk):

More information

Sorting Goodrich, Tamassia Sorting 1

Sorting Goodrich, Tamassia Sorting 1 Sorting Put array A of n numbers in increasing order. A core algorithm with many applications. Simple algorithms are O(n 2 ). Optimal algorithms are O(n log n). We will see O(n) for restricted input in

More information

Preface... (vii) CHAPTER 1 INTRODUCTION TO COMPUTERS

Preface... (vii) CHAPTER 1 INTRODUCTION TO COMPUTERS Contents Preface... (vii) CHAPTER 1 INTRODUCTION TO COMPUTERS 1.1. INTRODUCTION TO COMPUTERS... 1 1.2. HISTORY OF C & C++... 3 1.3. DESIGN, DEVELOPMENT AND EXECUTION OF A PROGRAM... 3 1.4 TESTING OF PROGRAMS...

More information

About the Tutorial. Audience. Prerequisites. Disclaimer & Copyright DAX

About the Tutorial. Audience. Prerequisites. Disclaimer & Copyright DAX About the Tutorial DAX (Data Analysis Expressions) is a formula language that helps you create new information from the data that already exists in your Data Model. DAX formulas enable you to perform data

More information

Introduction. chapter Functions

Introduction. chapter Functions chapter 1 Introduction In this chapter we set the stage for the rest of the book. We start by reviewing the notion of a function, then introduce the concept of functional programming, summarise the main

More information

THE BCS PROFESSIONAL EXAMINATION BCS Level 6 Professional Graduate Diploma in IT September 2017 EXAMINERS REPORT. Software Engineering 2

THE BCS PROFESSIONAL EXAMINATION BCS Level 6 Professional Graduate Diploma in IT September 2017 EXAMINERS REPORT. Software Engineering 2 General Comments THE BCS PROFESSIONAL EXAMINATION BCS Level 6 Professional Graduate Diploma in IT September 2017 EXAMINERS REPORT Software Engineering 2 The pass rate was 40% representing the lowest mark

More information

Microsoft Computer Vision APIs Distilled

Microsoft Computer Vision APIs Distilled Microsoft Computer Vision APIs Distilled Getting Started with Cognitive Services Alessandro Del Sole Microsoft Computer Vision APIs Distilled Alessandro Del Sole Cremona, Italy ISBN-13 (pbk): 978-1-4842-3341-2

More information

CPS122 Lecture: From Python to Java last revised January 4, Objectives:

CPS122 Lecture: From Python to Java last revised January 4, Objectives: Objectives: CPS122 Lecture: From Python to Java last revised January 4, 2017 1. To introduce the notion of a compiled language 2. To introduce the notions of data type and a statically typed language 3.

More information

A Structured Programming Approach to Data

A Structured Programming Approach to Data A Structured Programming Approach to Data Macmillan Computer Science Series Consulting Editor: Professor F. H. Sumner, University of Manchester J. K. Buckle, The ICL 2900 Series Andrew J. T. Colin, Programming

More information

High-Performance Parallel Database Processing and Grid Databases

High-Performance Parallel Database Processing and Grid Databases High-Performance Parallel Database Processing and Grid Databases David Taniar Monash University, Australia Clement H.C. Leung Hong Kong Baptist University and Victoria University, Australia Wenny Rahayu

More information

Preface. This Book and Simulation Software Bundle Project

Preface. This Book and Simulation Software Bundle Project Preface This Book and Simulation Software Bundle Project Dear Reader, this book project brings to you a unique study tool for ESD protection solutions used in analog-integrated circuit (IC) design. Quick-start

More information

LEGITIMATE APPLICATIONS OF PEER-TO-PEER NETWORKS DINESH C. VERMA IBM T. J. Watson Research Center A JOHN WILEY & SONS, INC., PUBLICATION

LEGITIMATE APPLICATIONS OF PEER-TO-PEER NETWORKS DINESH C. VERMA IBM T. J. Watson Research Center A JOHN WILEY & SONS, INC., PUBLICATION LEGITIMATE APPLICATIONS OF PEER-TO-PEER NETWORKS DINESH C. VERMA IBM T. J. Watson Research Center A JOHN WILEY & SONS, INC., PUBLICATION LEGITIMATE APPLICATIONS OF PEER-TO-PEER NETWORKS LEGITIMATE APPLICATIONS

More information

Cambridge University Press The Elements of UML 2.0 Style Scott W. Ambler Frontmatter More information. The Elements. UML TM2.

Cambridge University Press The Elements of UML 2.0 Style Scott W. Ambler Frontmatter More information. The Elements. UML TM2. The Elements of UML TM2.0 Style For Beverley The Elements of UML TM2.0 Style CAMBRIDGE UNIVERSITY PRESS Cambridge,NewYork,Melbourne,Madrid,CapeTown,Singapore,SãoPaulo Cambridge University Press 40 West

More information

Insert Cover Graphic Here NOTE: Graphic may fill entire first page, but not cover shield or printed text {RELEASING HEADQUARTERS}

Insert Cover Graphic Here NOTE: Graphic may fill entire first page, but not cover shield or printed text {RELEASING HEADQUARTERS} CAPP X-X DD MMMMM YYYY Entries in {brackets} describe the language OPRs are to enter for the respective publication {Publication Title} {Publication Subtitle} Insert Cover Graphic Here NOTE: Graphic may

More information

Managing Application Configuration Data with CIM

Managing Application Configuration Data with CIM Managing Application Configuration Data with CIM Viktor Mihajlovski IBM Linux Technology Center, Systems Management Introduction The configuration of software, regardless whether

More information

Evaluating XPath Queries

Evaluating XPath Queries Chapter 8 Evaluating XPath Queries Peter Wood (BBK) XML Data Management 201 / 353 Introduction When XML documents are small and can fit in memory, evaluating XPath expressions can be done efficiently But

More information

Statistics Case Study 2000 M. J. Clancy and M. C. Linn

Statistics Case Study 2000 M. J. Clancy and M. C. Linn Statistics Case Study 2000 M. J. Clancy and M. C. Linn Problem Write and test functions to compute the following statistics for a nonempty list of numeric values: The mean, or average value, is computed

More information

Part I Logic programming paradigm

Part I Logic programming paradigm Part I Logic programming paradigm 1 Logic programming and pure Prolog 1.1 Introduction 3 1.2 Syntax 4 1.3 The meaning of a program 7 1.4 Computing with equations 9 1.5 Prolog: the first steps 15 1.6 Two

More information

Chunjie Duan Brock J. LaMeres Sunil P. Khatri. On and Off-Chip Crosstalk Avoidance in VLSI Design

Chunjie Duan Brock J. LaMeres Sunil P. Khatri. On and Off-Chip Crosstalk Avoidance in VLSI Design Chunjie Duan Brock J. LaMeres Sunil P. Khatri On and Off-Chip Crosstalk Avoidance in VLSI Design 123 On and Off-Chip Crosstalk Avoidance in VLSI Design Chunjie Duan Brock J. LaMeres Sunil P. Khatri On

More information

c-xsc R. Klatte U. Kulisch A. Wiethoff C. Lawo M. Rauch A C++ Class Library for Extended Scientific Computing Springer-Verlag Berlin Heidelberg GmbH

c-xsc R. Klatte U. Kulisch A. Wiethoff C. Lawo M. Rauch A C++ Class Library for Extended Scientific Computing Springer-Verlag Berlin Heidelberg GmbH R. Klatte U. Kulisch A. Wiethoff C. Lawo M. Rauch c-xsc A C++ Class Library for Extended Scientific Computing Translated by G. F. Corliss C. Lawo R. Klatte A. Wiethoff C. Wolff Springer-Verlag Berlin Heidelberg

More information

Quick-Sort. Quick-sort is a randomized sorting algorithm based on the divide-and-conquer paradigm:

Quick-Sort. Quick-sort is a randomized sorting algorithm based on the divide-and-conquer paradigm: Presentation for use with the textbook Data Structures and Algorithms in Java, 6 th edition, by M. T. Goodrich, R. Tamassia, and M. H. Goldwasser, Wiley, 2014 Quick-Sort 7 4 9 6 2 2 4 6 7 9 4 2 2 4 7 9

More information

PROFESSIONAL PYTHON BY LUKE SNEERINGER DOWNLOAD EBOOK : PROFESSIONAL PYTHON BY LUKE SNEERINGER PDF

PROFESSIONAL PYTHON BY LUKE SNEERINGER DOWNLOAD EBOOK : PROFESSIONAL PYTHON BY LUKE SNEERINGER PDF Read Online and Download Ebook PROFESSIONAL PYTHON BY LUKE SNEERINGER DOWNLOAD EBOOK : PROFESSIONAL PYTHON BY LUKE SNEERINGER PDF Click link bellow and free register to download ebook: PROFESSIONAL PYTHON

More information

2.2 Syntax Definition

2.2 Syntax Definition 42 CHAPTER 2. A SIMPLE SYNTAX-DIRECTED TRANSLATOR sequence of "three-address" instructions; a more complete example appears in Fig. 2.2. This form of intermediate code takes its name from instructions

More information

Research on Industrial Security Theory

Research on Industrial Security Theory Research on Industrial Security Theory Menggang Li Research on Industrial Security Theory Menggang Li China Centre for Industrial Security Research Beijing, People s Republic of China ISBN 978-3-642-36951-3

More information

TEXTS IN COMPUTER SCIENCE

TEXTS IN COMPUTER SCIENCE TEXTS IN COMPUTER SCIENCE Editors David Gries Fred B. Schneider Springer New York Berlin Heidelberg Barcelona Hong Kong London Milan Paris Singapore Tokyo Peter Z. Revesz INTRODUCTION TO CONSTRAINT DATABASES

More information

LEGITIMATE APPLICATIONS OF PEER-TO-PEER NETWORKS

LEGITIMATE APPLICATIONS OF PEER-TO-PEER NETWORKS LEGITIMATE APPLICATIONS OF PEER-TO-PEER NETWORKS DINESH C. VERMA IBM T. J. Watson Research Center A JOHN WILEY & SONS, INC., PUBLICATION LEGITIMATE APPLICATIONS OF PEER-TO-PEER NETWORKS LEGITIMATE APPLICATIONS

More information

Part XII. Mapping XML to Databases. Torsten Grust (WSI) Database-Supported XML Processors Winter 2008/09 321

Part XII. Mapping XML to Databases. Torsten Grust (WSI) Database-Supported XML Processors Winter 2008/09 321 Part XII Mapping XML to Databases Torsten Grust (WSI) Database-Supported XML Processors Winter 2008/09 321 Outline of this part 1 Mapping XML to Databases Introduction 2 Relational Tree Encoding Dead Ends

More information

Implementing a Statically Adaptive Software RAID System

Implementing a Statically Adaptive Software RAID System Implementing a Statically Adaptive Software RAID System Matt McCormick mattmcc@cs.wisc.edu Master s Project Report Computer Sciences Department University of Wisconsin Madison Abstract Current RAID systems

More information

Essential Angular for ASP.NET Core MVC

Essential Angular for ASP.NET Core MVC Essential Angular for ASP.NET Core MVC Adam Freeman Essential Angular for ASP.NET Core MVC Adam Freeman London, UK ISBN-13 (pbk): 978-1-4842-2915-6 ISBN-13 (electronic): 978-1-4842-2916-3 DOI 10.1007/978-1-4842-2916-3

More information

PDA Trainer Certification Process V 1.0

PDA Trainer Certification Process V 1.0 PDA Trainer Certification Process V 1.0 ~ 1 ~ Index Introduction to the Certification Process... 3 Certification Process Steps... 4 Description of the Certification Process Steps... 5 A - PDA Trainer Profile...

More information

STEPHEN WOLFRAM MATHEMATICADO. Fourth Edition WOLFRAM MEDIA CAMBRIDGE UNIVERSITY PRESS

STEPHEN WOLFRAM MATHEMATICADO. Fourth Edition WOLFRAM MEDIA CAMBRIDGE UNIVERSITY PRESS STEPHEN WOLFRAM MATHEMATICADO OO Fourth Edition WOLFRAM MEDIA CAMBRIDGE UNIVERSITY PRESS Table of Contents XXI a section new for Version 3 a section new for Version 4 a section substantially modified for

More information

G Programming Languages - Fall 2012

G Programming Languages - Fall 2012 G22.2110-003 Programming Languages - Fall 2012 Lecture 3 Thomas Wies New York University Review Last week Names and Bindings Lifetimes and Allocation Garbage Collection Scope Outline Control Flow Sequencing

More information

Horizon Launcher Configuration Guide

Horizon Launcher Configuration Guide Horizon Launcher Configuration Guide Windows NT and Windows 2000 are registered trademarks of Microsoft Corporation. All other product or company names are trademarks or registered trademarks of their

More information

Objectives Pre-Test Questions Introduction Collaboration Diagrams Flow of Events and Special Requirements...

Objectives Pre-Test Questions Introduction Collaboration Diagrams Flow of Events and Special Requirements... 10 Analysis Modeling M MAJOR A J O R T TOPICSO P I C S Objectives... 144 Pre-Test Questions...144 Introduction... 145 Collaboration Diagrams... 145 Flow of Events and Special Requirements... 151 Class-Responsibility-Collaboration

More information

Read & Download (PDF Kindle) Writing Compilers And Interpreters

Read & Download (PDF Kindle) Writing Compilers And Interpreters Read & Download (PDF Kindle) Writing Compilers And Interpreters Quickly master all the skills you need to build your own compilers and interpreters in C++ Whether you are a professional programmer who

More information

Dyalog. Experimental Functionality Compiler. Version Dyalog Limited. Minchens Court, Minchens Lane Bramley, Hampshire RG26 5BH United Kingdom

Dyalog. Experimental Functionality Compiler. Version Dyalog Limited. Minchens Court, Minchens Lane Bramley, Hampshire RG26 5BH United Kingdom The tool of thought for expert programming Dyalog Experimental Functionality Compiler Version 14.1 Dyalog Limited Minchens Court, Minchens Lane Bramley, Hampshire RG26 5BH United Kingdom tel: +44(0)1256

More information

ARM. System Memory Management Unit Architecture Specification. 64KB Translation Granule Supplement

ARM. System Memory Management Unit Architecture Specification. 64KB Translation Granule Supplement ARM System Memory Management Unit Architecture Specification 64KB Translation Granule Supplement Copyright 2013 ARM. All rights reserved. ARM IHI 0067A.b () ARM System Memory Management Unit Architecture

More information

Geometric Algebra for Computer Graphics

Geometric Algebra for Computer Graphics John Vince Geometric Algebra for Computer Graphics 4u Springer Contents Preface vii 1 Introduction 1 1.1 Aims and objectives of this book 1 1.2 Mathematics for CGI software 1 1.3 The book's structure 2

More information

SYSTEM 2000 Essentials

SYSTEM 2000 Essentials 7 CHAPTER 2 SYSTEM 2000 Essentials Introduction 7 SYSTEM 2000 Software 8 SYSTEM 2000 Databases 8 Database Name 9 Labeling Data 9 Grouping Data 10 Establishing Relationships between Schema Records 10 Logical

More information

Introduction to Syntax Analysis. Compiler Design Syntax Analysis s.l. dr. ing. Ciprian-Bogdan Chirila

Introduction to Syntax Analysis. Compiler Design Syntax Analysis s.l. dr. ing. Ciprian-Bogdan Chirila Introduction to Syntax Analysis Compiler Design Syntax Analysis s.l. dr. ing. Ciprian-Bogdan Chirila chirila@cs.upt.ro http://www.cs.upt.ro/~chirila Outline Syntax Analysis Syntax Rules The Role of the

More information

PROBLEM SOLVING WITH FORTRAN 90

PROBLEM SOLVING WITH FORTRAN 90 David R. Brooks PROBLEM SOLVING WITH FORTRAN 90 FOR SCIENTISTS AND ENGINEERS Springer Contents Preface v 1.1 Overview for Instructors v 1.1.1 The Case for Fortran 90 vi 1.1.2 Structure of the Text vii

More information

COMPONENT-ORIENTED PROGRAMMING

COMPONENT-ORIENTED PROGRAMMING COMPONENT-ORIENTED PROGRAMMING COMPONENT-ORIENTED PROGRAMMING ANDY JU AN WANG KAI QIAN Southern Polytechnic State University Marietta, Georgia A JOHN WILEY & SONS, INC., PUBLICATION Copyright 2005 by John

More information

Full file at

Full file at Java Programming: From Problem Analysis to Program Design, 3 rd Edition 2-1 Chapter 2 Basic Elements of Java At a Glance Instructor s Manual Table of Contents Overview Objectives s Quick Quizzes Class

More information