Wir schaffen Wissen heute für morgen
|
|
- Bartholomew Glenn
- 6 years ago
- Views:
Transcription
1 Wir schaffen Wissen heute für morgen The MEXperience, Getting to Grips with MATLAB Executable Files Jan Chrin Paul Scherrer Institut
2 Contents Motivation Context of SwissFEL Injector Test Facility ( ) also SLS C++ Channel Access Interface Feeding the MEX-file Summary: Main Points and Next Steps
3 SLS MATLAB Application Count at the Swiss Light Source (SLS) Year No. MATLAB Applications (nil!) but increasing (TIARA Project) 2000 applications at the SLS dominated by Tcl/Tk 2012 Test Infrastructure and Accelerator Research Area (TIARA) (distributed European Accelerator R&D facility)
4 SwissFEL Injector Test Facility MATLAB Application Count at the Swiss Light Source (SLS) Year No. MATLAB Applications (nil!) (TIARA Project) MATLAB Application Count at the SwissFEL Injector Test Facility Phase I: August 2010, Phase IV: February 2013, End: September 2014 Year No. MATLAB Applications 2010 (Phase I) Lots! 2012 (Phase III) >50 (1 C++/Qt and 1 Java are the exception)
5 Use of MATLAB has surged! Motivation Large dependency -> reappraisal of ca requirements for MATLAB -> more extensive interface to the presently used mca Support data types other than double and string, e.g. unsigned short (mxuint16_class) in analysis/storage of camera data used in beam profile measurements: more efficient use of memory CA-aware classes for specific operations, e.g. acquisition of machine snapshots, orbit data, (using ca synchronous groups) Compilation on a 64-bit Linux machine, comparison of injector data with OPAL, a computationally intensive 3D space-charge simulation model Stability, Robustness: improved reconnection management
6 Channel Access Interface Library C++ Channel access interface library, CAFE synchronous, asynchronous interaction (blocking, non-blocking determined by setting policies) for individual, collections/groups of channels Data passed through CA in native data type data may be presented to client in any meaningful type (true also of enumerated types) Extensive use of templates get/set operations, underlying CA classes, data conversions Connection/reconnection (memory) management Connectivity remains in a well-defined state in every eventuality! All details of a PV and its state held in a hash table (Boost Container)
7 mocha: The Channel Access MEX File The Missing Link! MATLAB Mocha MATLAB objects for channel access MEX-file CAFE Library
8 The MEX-file Ingredients MEX-file: MATLAB Executable File (compiled) Functions implemented as MEX-files can be called directly from MATLAB MEX-files can be created from C/C++ by using the mex command Source code written using the MEX API which provide functions to read/write input/output arguments from/to MATLAB, or to access global variables Mex-files include: (1) mexfunction gateway (2) #include mex.h (mx* and mex* routines) (3) mxarray (4) API (mx* and mex*) functions
9 A Basic MEX-file #include mex.h (mx* and mex* ) mx* functions used to access data inside mxarrays mex* functions perform operations back in MATLAB mexfunction Gateway: interfaces with MATLAB The mexfunction is the entry point to underlying C/C++ code and declares the four variables that interface our code to MATLAB void mexfunction (int nlhs, mxarray * plhs[], int nrhs, const mxarray * prhs[] ) { } nlhs = Number Left Hand Side, i.e. the number of outputs (expected mxarrays) plhs = Array of pointers to mxarrays for output (must be explicitly created) nrhs = Number Right Hand Side, i.e. the number of inputs prhs = Array of pointers to mxarrays for input data (should not be altered)
10 mxarray mxarray is a special structure that encapsulates MATLAB data It is the C representation of a MATLAB array All MATLAB variables, scalars, vectors, matrices, strings, cell arrays, and structures are stored as mxarrays
11 MEX-file API API functions (Two Types) mx* functions used to create and access data inside arrays Array Creation: mxcreatenumericarray, mccreatedoublematrix, mxcreatecellarray Array Access: mxgetpr, mxgetdata, mxgetcell Memory Management: mxmalloc, mxfree mex* functions mexevalstring mexcallmatlab mexprintf perform operations back in MATLAB (Execute MATLAB command in caller s workspace) (Call MATLAB function) mxis* functions to determine various states of an array; used to check input to MEX-file and ensure they are of correct type
12 The MEX Cycle Data Flow within Gateway Routine MATLAB Call to MEX-file mocha: [status]=mocha( set, handle, value) Passes variables set, handle and value to the mocha MEX-file. status is unassigned const mxarray * value; value = prhs[2] const mxarray * handle; handle= prhs[1] const mxarray * message; message= (mxarray *) prhs[0] mocha.cpp void mexfunction( int nlhs, mxarray *plhs[], int nrhs, const mxarray *prhs[]) (1) Validate input argument prhs[0]; extract data from prhs[0] using the mxget* function (2) Find matching index in The Big Switch MATLAB On return from MEX-file mocha: [status]=mocha( set, handle, value) plhs[0] is assigned to status (3) Use mxget* functions to extract remaining input arguments, prhs[1](handle), prhs[2](value) (4) Validate data, e.g. mxgetnoelements(prhs[2]) (5) Use mxcreate* functions to create the MATLAB array for the output argument, plhs[0] (status) (6) Call cafe->set function passing the data input and output data pointers as function parameters mxarray * status; status = prls[0]
13 mexfunction( ) within the Gateway routine try { cafe->set(handle, value); } catch (CAFEException &catchaspill) { } Exceptions not caught!
14 What happened to my Exception? try { cafe->set(handle, value); } catch (CAFEException &catchaspill) { } Exceptions not caught! Behaviour caused by version linker script mexfunction.map Solutions: Link against a static version of the library Don t use exceptions, rather status return codes Create a wrapper library which does not conform to mexfunction.map /* Source of MEX-file which calls the wrapper shared library. Previous content of the mexfunction moved to the wrapper library; now call the function in the wrapper library instead. */ #include "macchinetta.h" extern void _main(); void mexfunction(int nlhs,mxarray *plhs[],int nrhs, const mxarray *prhs[]) { macchinettafunction(nlhs,plhs,nrhs,prhs); }
15 mocha syntax Feed Mex-file with further ca functionality, by follow the same pattern: First checks to make sure that the function was called correctly: correct number of inputs, verify that the input is the right format, e.g. scalar, Create the mxarrays to assign to output parameters handle = mocha ( open, pvname ); [val, status] = mocha( get, handle); datastruct = mocha( getstruct, handle); [val, status, isstatusok] = mocha( getgroup, grouphandle); ctrlstruct = mocha( getctrlstruct, handle); status = mocha( set, handle, data); status = mocha( monitor, handle, action ); status = mocha( close, handle); mocha( close);
16 Synchronous Groups and MATLAB Classes classdef cafeorbit < handle properties (SetAccess = private) groupname=''; ghandle=0; s=0; bpmnames=''; nbpm=0; x=0; y=0; I=0; xyvalid=0; IValid=0; xstatus=1; ystatus=1; IStatus=1; xyvalidstatus=1; IValidStatus =1; isvalidok=true; isstatusok=true; end %define en event called cafeerrorreport events cafeerrorreport end SLSOrbit=cafeOrbit() methods function mcorbit = cafeorbit(); mcorbit.groupname='gdbpm'; mcorbit.ghandle = mocha('opengroup','gdbpm'); [mcorbit.bpmnames, mcorbit.s] = mocha('getstaticdata','cdbpm','master.xml'); [mcorbit.x, mcorbit.y, mcorbit.i, mcorbit.xyvalid, mcorbit.ivalid,... mcorbit.xstatus, mcorbit.ystatus, mcorbit.istatus, mcorbit.xyvalidstatus,... mcorbit.ivalidstatus, mcorbit.isvalidok, mcorbit.isstatusok] = mocha('getorbit',mcorbit.ghandle); mcorbit.nbpm = length(mcorbit.x); %[mcorbit.data, mcorbit.statuscode, mcorbit.isstatusok] = mocha('getgroup',mcorbit.handle); cafeerrormanager.addcafe(mcorbit); end return function get(mcorbit) = mocha('getorbit',mcorbit.ghandle); end end % methods end % classdef [mcorbit.x, mcorbit.y, mcorbit.i, mcorbit.xyvalid, mcorbit.ivalid,... mcorbit.xstatus, mcorbit.ystatus, mcorbit.istatus,mcorbit.xyvalidstatus,... mcorbit.ivalidstatus, mcorbit.isvalidok, mcorbit.isstatusok] return
17 Monitors Mocha monitors: mocha( monitor, handle, action ) Cache updated values, optionally execute a script to update widget mocha MEX-File CAFE well separated! i.e. CAFE has no knowledge of the MEX API. mocha( monitor, handle, action ) cafe->confighandle_add_monitoraction(handle, action ); timer('timerfcn','mocha(''monitorflushevent'')','period',0.1,'executionmode','fixedspacing'); vector<string> al; status=cafe->getmonitoraction(al); [No Queue Class!]
18 Mocha Index to switch index get with selected type No of methods can be greatly reduced! e.g. one set sufficient mocha mca-compatible MATLAB scripts provided to facilitate transition from mca to mocha
19 Main Points Mocha MEX-file interfaces channel access (thru CAFE) methods to MATLAB Mocha (as mca) is single MEX-file cf labca interfaces EZCA to MATLAB multiple MEX-files Sizeof (mocha code) << Sizeof (mca code) Binding procedure follows a recognizable pattern: Extract, validate input arguments, invoke CAFE method, convert CAFE output arguments into MATLAB data type, prepare data format (array, struct..) for return to caller mocha mca-compatible MATLAB scripts provided to facilitate transition from mca to mocha Immediate tangible benefits: Access to all MATLAB primitive data types MATLAB oo: mocha-aware classes (orbit data, machine snapshot). Classes, on initialization, extract static data, i.e. node names, positions from the accelerator XML (á la XAL) Compilation on a 64-bit Linux Server (machine data / 3D simulations) Mocha monitors: Cache updated values, optionally execute a script to update widget (but MATLAB s Event and Listener model would be another approach).
20 Summary Getting To Grips with MEX API has allowed us to create: uncomplicated, robust, extendable, MEX-file for channel access In use at the SwissFEL Injector Test Facility and SLS Next: Consolidate (and expose remaining CAFE) methods to provide a general-purpose MATLAB-ca interface Acknowledgements Groundwork for channel access connectivity laid by mca
21 Epics-Language Index source:
Face Recognition. Programming Project. Haofu Liao, BSEE. Department of Electrical and Computer Engineering. Northeastern University.
Face Recognition Programming Project Haofu Liao, BSEE June 23, 2013 Department of Electrical and Computer Engineering Northeastern University 1. How to build the PCA Mex Funtion 1.1 Basic Information The
More informationHow to get Real Time Data into Matlab
How to get Real Time Data into Matlab First make sure you have Visual Studio 6.0 installed. You re going to have to build a mex file in visual studio. A mex file is just C code that has been compiled to
More informationIntroduction to Matlab/Octave
Introduction to Matlab/Octave February 28, 2014 This document is designed as a quick introduction for those of you who have never used the Matlab/Octave language, as well as those of you who have used
More informationMichael Böge, Jan Chrin
PAUL SCHERRER INSTITUT SLS-TME-TA-1999-0015 September, 1999 A CORBA Based Client- Model for Beam Dynamics Applications at the SLS Michael Böge, Jan Chrin Paul Scherrer Institut CH-5232 Villigen PSI Switzerland
More informationImplementation of Parma Polyhedron Library -functions in MATLAB
Implementation of Parma Polyhedron Library -functions in MATLAB Leonhard Asselborn Electrical and Computer Engineering Carnegie Mellon University Group meeting Oct. 21 st 2010 Overview Introduction Motivation
More informationUSING LAPACK SOLVERS FOR STRUCTURED MATRICES WITHIN MATLAB
USING LAPACK SOLVERS FOR STRUCTURED MATRICES WITHIN MATLAB Radek Frízel*, Martin Hromčík**, Zdeněk Hurák***, Michael Šebek*** *Department of Control Engineering, Faculty of Electrical Engineering, Czech
More informationUSING THE SYSTEM-C LIBRARY FOR BIT TRUE SIMULATIONS IN MATLAB
USING THE SYSTEM-C LIBRARY FOR BIT TRUE SIMULATIONS IN MATLAB Jan Schier Institute of Information Theory and Automation Academy of Sciences of the Czech Republic Abstract In the paper, the possibilities
More informationA System for Interfacing MATLAB with External Software Geared Toward Automatic Differentiation
A System for Interfacing MATLAB with External Software Geared Toward Automatic Differentiation 02. Sept. 2006 - ICMS 2006 - Castro-Urdiales H. Martin Bücker, RWTH Aachen University, Institute for Scientific
More informationUSB-IO MATLAB. Gerox(c) 5/30/2003 USB-IO HID USB-IO HID USB IO. usbg.dll STEP.1 DOS. main STEP.2. STEP.3 main.
USB-IO for MATLAB HID USB-IO MATLAB USB-IO HID USB IO usbg.dll MATLAB MEX STEP.1 DOS C main STEP.2 STEP.3 main mexfunction USB-IO USB VisualC++ 6.0 Win2000DDK setupapi.lib,hid.lib PATH C: Program Files
More informationPurpose: How to train an MLP neural network in MATLAB environment!
Purpose: How to train an MLP neural network in MATLAB environment! that is For good computations, we need good formulae for good algorithms; and good visualization for good illustration and proper testing
More information3D Visualization for Matlab
3D Visualization for Matlab Erich Birngruber, René Donner, Georg Langs Computational Image Analysis and Radiology Lab Medical University of Vienna, Austria http://www.cir.meduniwien.ac.at/ CSAIL, Massachusetts
More informationD. Bindel. March 4, 2009
User Guide D. Bindel March 4, 2009 1 Introduction MWrap is an interface generation system in the spirit of SWIG or matwrap. From a set of augmented MATLAB script files, MWrap will generate a MEX gateway
More information02 Features of C#, Part 1. Jerry Nixon Microsoft Developer Evangelist Daren May President & Co-founder, Crank211
02 Features of C#, Part 1 Jerry Nixon Microsoft Developer Evangelist Daren May President & Co-founder, Crank211 Module Overview Constructing Complex Types Object Interfaces and Inheritance Generics Constructing
More informationMaster Thesis Accelerating Image Registration on GPUs
Master Thesis Accelerating Image Registration on GPUs A proof of concept migration of FAIR to CUDA Sunil Ramgopal Tatavarty Prof. Dr. Ulrich Rüde Dr.-Ing.Harald Köstler Lehrstuhl für Systemsimulation Universität
More informationRenderscript. Lecture May Android Native Development Kit. NDK Renderscript, Lecture 10 1/41
Renderscript Lecture 10 Android Native Development Kit 6 May 2014 NDK Renderscript, Lecture 10 1/41 RenderScript RenderScript Compute Scripts RenderScript Runtime Layer Reflected Layer Memory Allocation
More informationMAKING A STATEMENT WITH CORBA
Michael Böge, Jan Chrin Paul Scherrer Institute "SELECT * FROM DRINKS WHERE COFFEE= CAPPUCCINO " Outline Introduction Beam Dynamics Applications @ SLS CORBA Fundamentals scalability of the CORBA database
More informationVALLIAMMAI ENGINEERING COLLEGE
VALLIAMMAI ENGINEERING COLLEGE SRM Nagar, Kattankulathur 603 203 DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING QUESTION BANK B.E. - Electrical and Electronics Engineering IV SEMESTER CS6456 - OBJECT ORIENTED
More informationC++\CLI. Jim Fawcett CSE687-OnLine Object Oriented Design Summer 2017
C++\CLI Jim Fawcett CSE687-OnLine Object Oriented Design Summer 2017 Comparison of Object Models Standard C++ Object Model All objects share a rich memory model: Static, stack, and heap Rich object life-time
More informationChapter 4 Defining Classes I
Chapter 4 Defining Classes I This chapter introduces the idea that students can create their own classes and therefore their own objects. Introduced is the idea of methods and instance variables as the
More informationNetBeans IDE Field Guide
NetBeans IDE Field Guide Copyright 2005 Sun Microsystems, Inc. All rights reserved. Table of Contents Extending Web Applications with Business Logic: Introducing EJB Components...1 EJB Project type Wizards...2
More informationWhat are the characteristics of Object Oriented programming language?
What are the various elements of OOP? Following are the various elements of OOP:- Class:- A class is a collection of data and the various operations that can be performed on that data. Object- This is
More informationDistributed Objects and Remote Invocation. Programming Models for Distributed Applications
Distributed Objects and Remote Invocation Programming Models for Distributed Applications Extending Conventional Techniques The remote procedure call model is an extension of the conventional procedure
More informationC++ Important Questions with Answers
1. Name the operators that cannot be overloaded. sizeof,.,.*,.->, ::,? 2. What is inheritance? Inheritance is property such that a parent (or super) class passes the characteristics of itself to children
More informationTHE FLORIDA STATE UNIVERSITY COLLEGE OF ARTS AND SCIENCES INTERNET COMPUTING WITH MATLAB ARTHI GOKARN
THE FLORIDA STATE UNIVERSITY COLLEGE OF ARTS AND SCIENCES INTERNET COMPUTING WITH MATLAB By ARTHI GOKARN A Thesis submitted to the Department of Computer Science in partial fulfillment of the requirements
More informationcaqtdm: PSI s display manager
WIR SCHAFFEN WISSEN HEUTE FÜR MORGEN Helge Brands, Anton Mezger :: Paul Scherrer Institut, Switzerland caqtdm: PSI s display manager caqtdm presentation, APS, Argonne, USA, June 2018 Outline of the presentation
More informationMotivation was to facilitate development of systems software, especially OS development.
A History Lesson C Basics 1 Development of language by Dennis Ritchie at Bell Labs culminated in the C language in 1972. Motivation was to facilitate development of systems software, especially OS development.
More informationAP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS
AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS PAUL L. BAILEY Abstract. This documents amalgamates various descriptions found on the internet, mostly from Oracle or Wikipedia. Very little of this
More informationplfgi MatLAB Interface for PixeLINK FireWire Cameras User Manual & Technical Guide
plfgi MatLAB Interface for PixeLINK FireWire Cameras User Manual & Technical Guide Last updated: September, 2002 plfgi User Manual & Technical Guide September 2002 MatLAB Interface for PixeLINK FireWire
More informationIntroduction to Programming Using Java (98-388)
Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;
More informationPROFESSOR: DR.JALILI BY: MAHDI ESHAGHI
PROFESSOR: DR.JALILI BY: MAHDI ESHAGHI 1 2 Overview Distributed OZ Java RMI CORBA IDL IDL VS C++ CORBA VS RMI 3 Distributed OZ Oz Language Multi paradigm language, strong support for compositionality and
More informationDistributed Control Systems at SSRL Constraints for Software Development Strategies. Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory
Distributed Control Systems at SSRL Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory Overview Computing Environment at our Beam Lines Need
More informationChapter 5: Procedural abstraction. Function procedures. Function procedures. Proper procedures and function procedures
Chapter 5: Procedural abstraction Proper procedures and function procedures Abstraction in programming enables distinction: What a program unit does How a program unit works This enables separation of
More informationMotivation was to facilitate development of systems software, especially OS development.
A History Lesson C Basics 1 Development of language by Dennis Ritchie at Bell Labs culminated in the C language in 1972. Motivation was to facilitate development of systems software, especially OS development.
More informationni.com Integrating EPICS and LabVIEW
Integrating EPICS and LabVIEW Agenda Overview Channel Access (CA) Support LabVIEW EPICS CA Server LabVIEW EPICS CA Client EPICS IOC Support CompactRIO PXI 3 rd Party Options Questions and Answers 3 Overview
More informationlabca An EPICS Channel Access Interface for scilab and matlab
labca An EPICS Channel Access Interface for scilab and matlab Till Straumann , 2003 May 23, 2007 Id: manual.tex,v 1.38 2007/06/05 05:00:12 guest Exp 1 Introduction The labca
More information416 Distributed Systems. RPC Day 2 Jan 12, 2018
416 Distributed Systems RPC Day 2 Jan 12, 2018 1 Last class Finish networks review Fate sharing End-to-end principle UDP versus TCP; blocking sockets IP thin waist, smart end-hosts, dumb (stateless) network
More informationC++ (Non for C Programmer) (BT307) 40 Hours
C++ (Non for C Programmer) (BT307) 40 Hours Overview C++ is undoubtedly one of the most widely used programming language for implementing object-oriented systems. The C++ language is based on the popular
More informationAn Overview of the BLITZ System
An Overview of the BLITZ System Harry H. Porter III Department of Computer Science Portland State University Introduction The BLITZ System is a collection of software designed to support a university-level
More informationIntroduction to Mobile Development
Introduction to Mobile Development Building mobile applications can be as easy as opening up the IDE, throwing something together, doing a quick bit of testing, and submitting to an App Store all done
More informationMATRIX INVERSION SPEED UP WITH CUDA JORGE SORIANO PINEDO ELECTRICAL AND COMPUTER ENGINEERING
MATRIX INVERSION SPEED UP WITH CUDA BY JORGE SORIANO PINEDO ELECTRICAL AND COMPUTER ENGINEERING Submitted in partial fulfillment of the requirements for the degree of Electrical engineering in ECE in the
More informationNAMESPACES IN C++ You can refer the Programming with ANSI C++ by Bhushan Trivedi for Understanding Namespaces Better(Chapter 14)
NAMESPACES IN C++ You can refer the Programming with ANSI C++ by Bhushan Trivedi for Understanding Namespaces Better(Chapter 14) Some Material for your reference: Consider following C++ program. // A program
More informationControl Abstraction. Hwansoo Han
Control Abstraction Hwansoo Han Review of Static Allocation Static allocation strategies Code Global variables Own variables (live within an encapsulation - static in C) Explicit constants (including strings,
More informationDistributed Systems 8. Remote Procedure Calls
Distributed Systems 8. Remote Procedure Calls Paul Krzyzanowski pxk@cs.rutgers.edu 10/1/2012 1 Problems with the sockets API The sockets interface forces a read/write mechanism Programming is often easier
More information416 Distributed Systems. RPC Day 2 Jan 11, 2017
416 Distributed Systems RPC Day 2 Jan 11, 2017 1 Last class Finish networks review Fate sharing End-to-end principle UDP versus TCP; blocking sockets IP thin waist, smart end-hosts, dumb (stateless) network
More informationEECS168 Exam 3 Review
EECS168 Exam 3 Review Exam 3 Time: 2pm-2:50pm Monday Nov 5 Closed book, closed notes. Calculators or other electronic devices are not permitted or required. If you are unable to attend an exam for any
More informationWir schaffen Wissen heute für morgen REUSABLE PATIENT SAFETY SYSTEM FRAMEWORK FOR THE PROTON THERAPY CENTRE AT PSI
Wir schaffen Wissen heute für morgen REUSABLE PATIENT SAFETY SYSTEM FRAMEWORK FOR THE PROTON THERAPY CENTRE AT PSI P. Fernandez Carmona, M. Eichin, M. Grossmann, E. Johansen, A. Mayor, H.A. Regele ICALEPCS15,
More informationKakadu and Java. David Taubman, UNSW June 3, 2003
Kakadu and Java David Taubman, UNSW June 3, 2003 1 Brief Summary The Kakadu software framework is implemented in C++ using a fairly rigorous object oriented design strategy. All classes which are intended
More informationDistributed Systems. How do regular procedure calls work in programming languages? Problems with sockets RPC. Regular procedure calls
Problems with sockets Distributed Systems Sockets interface is straightforward [connect] read/write [disconnect] Remote Procedure Calls BUT it forces read/write mechanism We usually use a procedure call
More informationConcurrent Programming
Concurrency Concurrent Programming A sequential program has a single thread of control. Its execution is called a process. A concurrent program has multiple threads of control. They may be executed as
More informationZhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson
Zhifu Pei CSCI5448 Spring 2011 Prof. Kenneth M. Anderson Introduction History, Characteristics of Java language Java Language Basics Data types, Variables, Operators and Expressions Anatomy of a Java Program
More informationTerm Project report for EE5302
Term Project report for EE5302 Submitted by: Vidhya N.S Murthy Student ID: 100060564 Project statement To study the statistical properties of a video signal and remove spatial redundancy using different
More informationThe Proxy Pattern. Design Patterns In Java Bob Tarr
The Proxy Pattern Intent Provide a surrogate or placeholder for another object to control access to it Also Known As Surrogate Motivation A proxy is a person authorized to act for another person an agent
More informationShort Notes of CS201
#includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system
More informationC++ PROGRAMMING LANGUAGE: CLASSES. CAAM 519, CHAPTER 13
C++ PROGRAMMING LANGUAGE: CLASSES. CAAM 519, CHAPTER 13 This chapter focuses on introducing the notion of classes in the C++ programming language. We describe how to create class and use an object of a
More informationOn the Use of CORBA in High Level Software Applications at the SLS
PAUL SCHERRER INSTITUT SLS TME TA 2001 0183 November, 2001 On the Use of CORBA in High Level Software Applications at the SLS Michael Böge, Jan Chrin Paul Scherrer Institut CH 5232 Villigen PSI Switzerland
More informationWhat the CPU Sees Basic Flow Control Conditional Flow Control Structured Flow Control Functions and Scope. C Flow Control.
C Flow Control David Chisnall February 1, 2011 Outline What the CPU Sees Basic Flow Control Conditional Flow Control Structured Flow Control Functions and Scope Disclaimer! These slides contain a lot of
More informationTokens, Expressions and Control Structures
3 Tokens, Expressions and Control Structures Tokens Keywords Identifiers Data types User-defined types Derived types Symbolic constants Declaration of variables Initialization Reference variables Type
More informationCS201 - Introduction to Programming Glossary By
CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with
More informationdyn dynamic object management
1 dyn dynamic object management Thomas Grill, Vienna http://grrrr.org September 2004 Abstract dyn 1 is a sketch of a uniform, well-documented programming interface to Pure Data s native object management
More informationProgramming. Syntax and Semantics
Programming For the next ten weeks you will learn basic programming principles There is much more to programming than knowing a programming language When programming you need to use a tool, in this case
More informationL3.4. Data Management Techniques. Frederic Desprez Benjamin Isnard Johan Montagnat
Grid Workflow Efficient Enactment for Data Intensive Applications L3.4 Data Management Techniques Authors : Eddy Caron Frederic Desprez Benjamin Isnard Johan Montagnat Summary : This document presents
More informationCSE 333 SECTION 9. Threads
CSE 333 SECTION 9 Threads HW4 How s HW4 going? Any Questions? Threads Sequential execution of a program. Contained within a process. Multiple threads can exist within the same process. Every process starts
More informationAdvanced Systems Programming
Advanced Systems Programming Introduction to C++ Martin Küttler September 19, 2017 1 / 18 About this presentation This presentation is not about learning programming or every C++ feature. It is a short
More informationRemote Procedure Calls (RPC)
Distributed Computing Remote Procedure Calls (RPC) Dr. Yingwu Zhu Problems with Sockets Sockets interface is straightforward [connect] read/write [disconnect] BUT it forces read/write mechanism We usually
More informationException Namespaces C Interoperability Templates. More C++ David Chisnall. March 17, 2011
More C++ David Chisnall March 17, 2011 Exceptions A more fashionable goto Provides a second way of sending an error condition up the stack until it can be handled Lets intervening stack frames ignore errors
More informationCCReflect has a few interesting features that are quite desirable for DigiPen game projects:
CCReflect v1.0 User Manual Contents Introduction... 2 Features... 2 Dependencies... 2 Compiler Dependencies... 2 Glossary... 2 Type Registration... 3 POD Registration... 3 Non-Pod Registration... 3 External
More informationProgramming in C# with Microsoft Visual Studio 2010
Programming in C# with Microsoft Visual Studio 2010 Course 10266; 5 Days, Instructor-led Course Description: The course focuses on C# program structure, language syntax, and implementation details with.net
More informationClasses and Objects. Class scope: - private members are only accessible by the class methods.
Class Declaration Classes and Objects class class-tag //data members & function members ; Information hiding in C++: Private Used to hide class member data and methods (implementation details). Public
More informationC#: framework overview and in-the-small features
Chair of Software Engineering Carlo A. Furia, Marco Piccioni, Bertrand Meyer C#: framework overview and in-the-small features Chair of Software Engineering Carlo A. Furia, Marco Piccioni, Bertrand Meyer
More informationObjects Managing a Resource
Objects Managing a Resource 1 What is a Resource Respects Release/Acquire protocol files (open/close) memory allocation (allocate/free) locks (acquire/release). 2 What is a Resource Objects when constructed,
More informationRAJIV GANDHI COLLEGE OF ENGINEERING AND TECHNOLOGY DEPARTMENT OF INFORMATION TECHNOLOGY OBJECT ORIENTED PROGRAMMING QUESTION BANK UNIT I 2 MARKS
RAJIV GANDHI COLLEGE OF ENGINEERING AND TECHNOLOGY DEPARTMENT OF INFORMATION TECHNOLOGY OBJECT ORIENTED PROGRAMMING YEAR/SEM:II & III UNIT I 1) Give the evolution diagram of OOPS concept. 2) Give some
More informationFunction Binding. Special thanks to: John Edwards. Randy Gaul
Function Binding Special thanks to: John Edwards Randy Gaul Introspection Generic Variable Function Binding Simple Case Uses Demo Overview Function Binding Introspection Run-time knows little about types
More informationProgramming in Visual Basic with Microsoft Visual Studio 2010
Programming in Visual Basic with Microsoft Visual Studio 2010 Course 10550; 5 Days, Instructor-led Course Description This course teaches you Visual Basic language syntax, program structure, and implementation
More informationMaanavaN.Com CS1203 OBJECT ORIENTED PROGRAMMING DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING SUB CODE / SUBJECT: CS1203 / Object oriented programming YEAR / SEM: II / III QUESTION BANK UNIT I FUNDAMENTALS PART-A (2 MARKS) 1. What is Object Oriented
More informationEL2310 Scientific Programming
Florian Pokorny Yasemin Bekiroglu Overview Overview Matlab project Presentations Arrays Wrap Up Functions and return values Other tasks and useful stuff Strings Matlab project Matlab Project Coin detection.
More informationC# and Java. C# and Java are both modern object-oriented languages
C# and Java C# and Java are both modern object-oriented languages C# came after Java and so it is more advanced in some ways C# has more functional characteristics (e.g., anonymous functions, closure,
More informationCS Programming In C
CS 24000 - Programming In C Week Two: Basic C Program Organization and Data Types Zhiyuan Li Department of Computer Science Purdue University, USA 2 int main() { } return 0; The Simplest C Program C programs
More informationCPSC 213. Introduction to Computer Systems. Instance Variables and Dynamic Allocation. Unit 1c
CPSC 213 Introduction to Computer Systems Unit 1c Instance Variables and Dynamic Allocation 1 Reading For Next 3 Lectures Companion 2.4.4-2.4.5 Textbook Structures, Dynamic Memory Allocation, Understanding
More informationCore Java - SCJP. Q2Technologies, Rajajinagar. Course content
Core Java - SCJP Course content NOTE: For exam objectives refer to the SCJP 1.6 objectives. 1. Declarations and Access Control Java Refresher Identifiers & JavaBeans Legal Identifiers. Sun's Java Code
More information(800) Toll Free (804) Fax Introduction to Java and Enterprise Java using Eclipse IDE Duration: 5 days
Course Description This course introduces the Java programming language and how to develop Java applications using Eclipse 3.0. Students learn the syntax of the Java programming language, object-oriented
More informationBruce Merry. IOI Training Dec 2013
IOI Training Dec 2013 Outline 1 2 3 Outline 1 2 3 You can check that something is true using assert: #include int main() { assert(1 == 2); } Output: test_assert: test_assert.cpp:4: int main():
More informationPROGRAMMING IN VISUAL BASIC WITH MICROSOFT VISUAL STUDIO Course: 10550A; Duration: 5 Days; Instructor-led
CENTER OF KNOWLEDGE, PATH TO SUCCESS Website: PROGRAMMING IN VISUAL BASIC WITH MICROSOFT VISUAL STUDIO 2010 Course: 10550A; Duration: 5 Days; Instructor-led WHAT YOU WILL LEARN This course teaches you
More information개발과정에서의 MATLAB 과 C 의연동 ( 영상처리분야 )
개발과정에서의 MATLAB 과 C 의연동 ( 영상처리분야 ) Application Engineer Caleb Kim 2016 The MathWorks, Inc. 1 Algorithm Development with MATLAB for C/C++ Programmers Objectives Use MATLAB throughout algorithm development
More informationFrom Java to C++ From Java to C++ CSE250 Lecture Notes Weeks 1 2, part of 3. Kenneth W. Regan University at Buffalo (SUNY) September 10, 2009
From Java to C++ CSE250 Lecture Notes Weeks 1 2, part of 3 Kenneth W. Regan University at Buffalo (SUNY) September 10, 2009 C++ Values, References, and Pointers 1 C++ Values, References, and Pointers 2
More informationSimulink 를이용한 효율적인레거시코드 검증방안
Simulink 를이용한 효율적인레거시코드 검증방안 류성연 2015 The MathWorks, Inc. 1 Agenda Overview to V&V in Model-Based Design Legacy code integration using Simulink Workflow for legacy code verification 2 Model-Based Design
More informationEUROPEAN MIDDLEWARE INITIATIVE
EUROPEAN MIDDLEWARE INITIATIVE COMMON AUTHENTICATION LIBRARY DEVELOPER S GUIDE Document version: 2.1.1 EMI Component Version: 2.x 1/14 This work is co-funded by the European Commission as part of the EMI
More informationSpecial Topics: Programming Languages
Lecture #23 0 V22.0490.001 Special Topics: Programming Languages B. Mishra New York University. Lecture # 23 Lecture #23 1 Slide 1 Java: History Spring 1990 April 1991: Naughton, Gosling and Sheridan (
More informationFast Introduction to Object Oriented Programming and C++
Fast Introduction to Object Oriented Programming and C++ Daniel G. Aliaga Note: a compilation of slides from Jacques de Wet, Ohio State University, Chad Willwerth, and Daniel Aliaga. Outline Programming
More informationCSE 358 Spring 2006 Selected Notes Set 8
CSE 358 Spring 2006 Selected Notes Set 8 Alexander A. Shvartsman Computer Science and Engineering University of Connecticut February 2, 2006 358-07-1 - Models Centralized (e.g, single node) system C-S
More informationArrays and Pointers in C & C++
Arrays and Pointers in C & C++ Professor Hugh C. Lauer CS-2303, System Programming Concepts (Slides include materials from The C Programming Language, 2 nd edition, by Kernighan and Ritchie, Absolute C++,
More informationOutline. S: past, present and future Some thoughts. The 80s. Interfaces - 60s & 70s. Duncan Temple Lang Department of Statistics UC Davis
S: past, present and future Some thoughts Duncan Temple Lang Department of Statistics UC Davis Outline Good idea that was either taken up or missed. Interfaces Thoughts on how S evolved and what implications
More informationMACHINE-LEVEL PROGRAMMING IV: Computer Organization and Architecture
MACHINE-LEVEL PROGRAMMING IV: DATA CS 045 Computer Organization and Architecture Prof. Donald J. Patterson Adapted from Bryant and O Hallaron, Computer Systems: A Programmer s Perspective, Third Edition
More informationIntroduction to C++ Professor Hugh C. Lauer CS-2303, System Programming Concepts
Introduction to C++ Professor Hugh C. Lauer CS-2303, System Programming Concepts (Slides include materials from The C Programming Language, 2 nd edition, by Kernighan and Ritchie, Absolute C++, by Walter
More informationCPSC 427: Object-Oriented Programming
CPSC 427: Object-Oriented Programming Michael J. Fischer Lecture 11 October 3, 2018 CPSC 427, Lecture 11, October 3, 2018 1/24 Copying and Assignment Custody of Objects Move Semantics CPSC 427, Lecture
More informationFMI Kit for Simulink version by Dassault Systèmes
FMI Kit for Simulink version 2.4.0 by Dassault Systèmes April 2017 The information in this document is subject to change without notice. Copyright 1992-2017 by Dassault Systèmes AB. All rights reserved.
More informationHierarchical inheritance: Contains one base class and multiple derived classes of the same base class.
1. What is C#? C# (pronounced "C sharp") is a simple, modern, object oriented, and type safe programming language. It will immediately be familiar to C and C++ programmers. C# combines the high productivity
More informationImplementing Interfaces. Marwan Burelle. July 20, 2012
Implementing marwan.burelle@lse.epita.fr http://www.lse.epita.fr/ July 20, 2012 Outline 1 2 3 4 Quick Overview of System oriented programming language Variant of C with a rationnalized syntax. Syntactic
More informationClasses. Logical method to organise data and functions in a same structure. Also known as abstract data type (ADT).
UNITII Classes Logical method to organise data and functions in a same structure. Also known as abstract data type (ADT). It s a User Defined Data-type. The Data declared in a Class are called Data- Members
More informationint result; int waitstat; int stat = PmcaAsyncGetGain(&result); // stat receives request id
PMCA COM API Programmer's Guide PMCA COM is an Application Programming Interface Library for the Amptek Pocket Multichannel Analyzers MCA8000 and MCA8000A. PMCA COM runs on personal computers under any
More informationCONTENTS. PART 1 Structured Programming 1. 1 Getting started 3. 2 Basic programming elements 17
List of Programs xxv List of Figures xxix List of Tables xxxiii Preface to second version xxxv PART 1 Structured Programming 1 1 Getting started 3 1.1 Programming 3 1.2 Editing source code 5 Source code
More information