Getting Started with QAC / QAC++

Size: px
Start display at page:

Download "Getting Started with QAC / QAC++"

Transcription

1 Getting Started with QAC / QAC++ Table of Contents 1 Introduction Product Versions License Server Creating a Project Visual Studio Makefile Environment Eclipse/Wind River Workbench Tornado Borland C++ Builder Code Warrior Manually From Directory Structure Identifying the Source Files Creating a Project Directory Auto-Creating the Project Setting up Personalities Propagating changes to other folders Editing Personalities Configuring the Message Personality Configuring the Analyser Personality Configuring the Compiler Personality Saving the Project Analysis Reducing the number of displayed warnings Creating a Compiler Personality Introduction Compiler Personality Generator Introduction Starting The Utility Product and Output location Compiler Execution Information Search Directories Compiler Defines and Switches Resolving Syntax Errors Introduction Which syntax errors must I resolve? Using the Pre-processed Output Missing Include Files Handling Language Extension Keywords Handling #pragma blocks in QAC Handling bool and wchar_t in QAC Re-coding to eliminate syntax errors Copyright 2007 Programming Research 1

2 1 Introduction This document provides step by step tuition on how to perform project configuration for QAC and QAC++ on Microsoft Windows. Detailed descriptions are provided for some common configuration problems and the various ways in which they can be resolved. Details of how to set up a project in QAC or QAC++ for use with a compliance module such as the MISRA Compliance Module (MCM) are also provided. 2 Product Versions The document refers throughout to the Windows versions of QAC version 7.0 and QAC++ version Screenshots shown are taken from those products. Many of the steps identified in creating a project apply to earlier product versions and will continue to apply in future releases. UNIX users may also use this document as a guide for configuring QAC and QAC++. 3 License Server Before continuing with this document, please ensure that you have a FLEXlm license server configured for use with your QAC/QAC++ license. The software and details of how to configure FLEXlm can be found under the following areas: or alternatively Copyright 2007 Programming Research 2

3 4 Creating a Project 4.1 Visual Studio For the various Visual Studio environments, there are direct integration packages available from the following areas which will automate the configuration and produce analysis results inside the VS IDE. If you use Visual Studio project or solution files and/or the IDE please download the appropriate integration and refer to the help documentation. Visual Studio 6 Visual Studio.Net Visual Studio Makefile Environment If you use GCC the following script will automatically generate a gcc or g++ compiler personality for you. Please download and install the GCC integration and refer to the help documentation for use. Note this replaces the need to complete Section 5 Creating a Compiler Personality below. or alternatively The makefile integration allows you to wrap the compiler s invocation so that QAC/QAC++ analysis can be done without altering your current make environment or any manual configuration. Viewing the results of the analysis can be done through generated annotated source, or by invoking the message browser on a filelist created by the makefile integration. Please download and install the Makefile integration and refer to the help documentation for use (e.g. you will need to specify the location of the above generated gcc compiler personality in the wrapper configuration file) Eclipse/Wind River Workbench For Eclipse based users, there is a direct integration package available for the various products under the C/C++ CDT s. This integration will provide the viewing of analysis results and the help system integrated into the IDE and can be downloaded along with associated documentation from the following area: To invoke the analysis engine from the Eclipse plug-in, the Eclipse makefile needs to be edited to include a target for the analysis. This is best done utilising the wrapper program QAW which can be found along with associated documentation downloaded from the following area: or alternatively Note you will still need to create a Compiler Personality for your compiler, see Section 4.2 Makefile Environment above, or alternatively in Section 5 Creating a Compiler Personality. Copyright 2007 Programming Research 3

4 4.4 Tornado For Tornado 2.x and QAC users, there is a direct integration package available. This integration will provide the viewing of analysis results and the help system integrated into the IDE and can be downloaded along with associated documentation from the following area: Borland C++ Builder There is currently no direct integration with the Borland IDE; however a compiler personality and accompanying substitute header files can be downloaded from the following area: The installer of this integration requires the presence of Borland Builder 5 or 6 on the machine and will unpack the substitute headers and personality to the PRQA installation path. Note this replaces the need to complete Section 5 Creating a Compiler Personality below. You will still need to create a QAC/QAC++ project based on the Borland project file as described in section 4.7 below. 4.6 Code Warrior There is currently no direct integration with the Code Warrior IDE, however a project converter which builds a QAC/QAC++ project (including analyser personalities) out of an exported.mcp.xml file is available. Please contact support@programmingresearch.com for details of the converter. Note you will still need to create a Compiler Personality for the CW compiler which is described in Section 5 Creating a Compiler Personality. 4.7 Manually From Directory Structure Identifying the Source Files In Windows Explorer, locate the source files that you wish to analyse. Let us suppose that our source files live in C:\Work and have sub-folders A, B and C as shown below Creating a Project Directory Create a project directory to store the results of the analysis, the configuration files needed and the project file. For example C:\My Project Create two directories within your project directory called output and personalities. The output directory will be used to contain the output results produced by QAC or QAC++. The personalities directory will be used to contain the required configuration files. Copyright 2007 Programming Research 4

5 4.7.3 Auto-Creating the Project Now we are ready to create the QAC or QAC++ project. Select File/Auto-Create Project from the menu. Set the Starting Directory to be the location of the source directory identified (for example C:\Work\ ). Set the Root Folder Name to be the same as the project or the root directory name (e.g. My Source Code). Set the Output File Path to be the output directory created (for example C:\My Project\output). Select the extensions of the files that you wish to analyse. Note it is seldom appropriate to analyse header files directly and they should not usually be added explicitly to your project. Header files will be analysed as part of a translation unit when the source files that include them are analysed. Also make sure that the Replicate source tree structure in output paths checkbox is checked. Then press OK. Copyright 2007 Programming Research 5

6 You should now see that QAC or QAC++ has produced a project with a project folder structure matching the folders of your source file tree. The project folders will only include files with the specified file extension. For example: Copyright 2007 Programming Research 6

7 4.7.4 Setting up Personalities Three personalities are required in order to configure a project: a message personality, an analyser personality and a compiler personality. The message personality is designed to reflect your coding standard. The analyser personality represents project specific configuration about how your source code is compiled. The compiler personality represents the characteristics of your compiler. QAC and QAC++ need a compiler personality so that they can emulate the compilation that your compiler does. In circumstances where the tool has already been used within your organisation, it may be possible to acquire personalities that are already available. In the absence of such resources, personality files may be acquired from: Tool Supplied Personalities: A number of standard personalities are provided with the tools. These are located in the personalities directory of the QAC/QAC++ installation. Compliance Module Personalities: When using a compliance module, you should use the Message and Analyser Personalities provided with the compliance module as a starting point. When you install a compliance module you will find a sub-directory off the main installation directory of the tool (QAC or QAC++) with the name of the compliance module. This directory contains a subdirectory called personalities which contains a message personality and an analyser personality. So for example in MCM, you will find mcm.p_s and mcm.p_a. Note that this directory also contains a Compiler Personality (mcm.p_c). However, you should create a new one specific to your compiler by following Sections or 5. New personalities: New personalities can be created in the following way: Select Configuration from the menu bar. Select Message Personalities, Analyser Personalities or Compiler Personalities as required Copyright 2007 Programming Research 7

8 Click on the Add button Save the personality with a suitable name in the personalities directory created earlier (for example C:\My Project\personalities\configure.p_s). A new personality will consist of default settings for all the various QAC/QAC++ configuration options. A new message personality will have all messages enabled a configuration which is likely to be unhelpful without some modification. Integrations: The various integrations referred to previously, contain pre-configured compiler personalities, however a utility for creating compiler personalities is available and discussed in Section 5. Having located 3 suitable personality files, copy them into the personalities directory in your project directory. Now select the root folder of your QAC/QAC++ project and double click it to bring up the Folder Parameters dialog. Using the Browse buttons, locate the personalities you copied into your project directory Propagating changes to other folders It is possible for each folder in a QAC/QAC++ project to refer to a different message, analyser and compiler personality; however it is more usual for all the folders in a project to refer to refer to the same set of personality files. The best way to make all folders refer to the same personality file is to right click the root folder and select Propagate Changes to Sub- Folders Editing Personalities A common mistake made by new users is to use the Configuration menu to access their personalities. The Configuration menu is useful when creating a new personality or copying a personality based on the ones supplied with the tool. If you wish to edit the personalities associated with your project, select the Edit Menu and then Folder Parameters; alternatively double click on the folder itself. The Edit buttons for the three personalities are shown circled below. Copyright 2007 Programming Research 8

9 4.7.7 Configuring the Message Personality Bring up the message personality associated with the root folder using the instructions provided in section Select the Display tab and ensure that the Display Header Warnings checkbox is checked. Click OK to commit your change to the message personality. Copyright 2007 Programming Research 9

10 4.7.8 Configuring the Analyser Personality Bring up the analyser personality associated with your project using the instructions in section The analyser personality consists of various tabs, but the two most important for project configuration are the Project Headers and Project Macros tabs. These reflect the command line parameters that must be passed to your compiler in order to compile the source code that you are trying to analyse. For example, suppose you use the following command line to build your software. cc DHAVE_CONFIG_H DVERSION=12 IC:\Work\A IC:\Work\C a.c The I options are the Project Headers and must be inserted as shown below. Note that the order in which the include paths appear in this list should be the same as the order in which they appear on the command line. In the above screenshot the folder C:\Work\A has the Suppress Output flag set. This means that warnings for header files found in this directory will not be displayed. Typically you will want to see all warnings for your own header files so that problems can be fixed. However, when using a third party library to compile your code (for example Boost), you may wish to ignore warnings that are not serious because it will not be practical to modify the header files. Copyright 2007 Programming Research 10

11 The D options in this example are the Project Macros and would be inserted as shown below. It is possible that you will need to set up more than one analyser personality if all the files in your project do not share the same command line parameters. Note that for many projects, the D and I options are included in a makefile. If a makefile is included with the source, look at the makefile for the D and I options, or use the makefile integration as discussed in Section 4.2. Click OK to commit your change to the analyser personality Configuring the Compiler Personality See Section 5 for information about creating and configuring a Compiler Personality Saving the Project Before beginning the analysis of files it is recommended that you save the project by selecting File/Save Project As... from the menu. Save the project file with an appropriate name in the project directory (for example C:\My Project\My Project.prj). Copyright 2007 Programming Research 11

12 4.8 Analysis You are now in a position to analyse your code. There may be some further configuration problems that arise during analysis, so it is advisable to analyse only one file at a time to start with. Problems will often occur in header files, so by analysing one file at a time, you can ensure that configuration problems are eliminated quickly. Select the first file that you wish to analyse and press the button. This will analyse the file. Don t be concerned if the analysis status says Analysis Warning. After the analysis, close the analysis status window. You should now see that a tick has appeared to the left of the file that you have analysed as shown below. To see the results of the analysis in the Message Browser double click the analysed file. If you get a dialog that indicates you have syntax errors upon starting the message browser, you have analysis problems that must be fixed in order to ensure a complete analysis of your code. The syntax error dialog looks like this. Copyright 2007 Programming Research 12

13 When the message browser opens, you will see four tabs in the top left pane called Message Groups, Files, CMA Results and Syntax Errors. Initially we want to focus on Syntax Errors which are serious errors preventing analysis of your code. If you have syntax errors, upon opening the message browser you shall be taken directly to the Syntax Errors tab, whereas if you don t have syntax errors you shall be taken to the Message Groups tab. All syntax errors are shown in red and must be resolved. To see how to resolve the syntax error warnings see section 6. Once you have resolved the syntax errors for a file you can move onto the next file. Eventually once you are confident that you have resolved the issues you will be in a position to analyse the whole project. Copyright 2007 Programming Research 13

14 4.9 Reducing the number of displayed warnings Once you have analysed the project successfully, there is no need for re-analysis unless you change your source code. You may find that you have a lot of warnings initially and want to focus on a particular class of warnings such as Major warnings (in QAC). This can be done by editing the message personality associated with the root folder of the project. In the installation directory of QAC/QAC++, there is a critical message personality which focuses on messages of the most severe nature. QAC++ also has other personalities such as Effective C++ and Industrial Strength C++. Levels can be suppressed in the Message personality by selecting a level and pressing space. Once suppressed a red cross will appear in front of the level name as shown below. Individual messages can also be suppressed in the same manner. Closing and re-opening the message browser will pick up the changes you have made to the message personality. Copyright 2007 Programming Research 14

15 5 Creating a Compiler Personality 5.1 Introduction A compiler personality must be created for each compiler that you use. It represents the characteristics of your compiler such as Where the compiler keeps its system headers (stdio.h, iostream etc) What macros the compiler sets implicitly (_WIN32, STDC etc) What additional keywords the compiler supports (interrupt, far, near, ) What architecture the compiler is for (32 bit, 16 bit.. etc) What is the behaviour of the compiler with respect to certain aspects of the ISO C(C++) language. The C language has evolved over many years into the language we call ISO C today. ISO C is an international standard that defines the language C. Most compilers these days will be compliant to ISO C meaning that they support the ISO C language. However, there are two issues with compilers that must be addressed. Firstly compilers support ISO C, but some also support additional constructs and keywords. For example the Keil C compiler will support an interrupt keyword. Secondly when implementing a compiler for ISO C, there are certain areas of the language that must be specified by the compiler writer. These include the sizes and alignments of types as well as the resolution of particular behaviours. The same is true for the C++ language and the ISO C++ standard. 5.2 Compiler Personality Generator Introduction In order to automate the configuration of you compiler, the AutoCmpPersonGen utility can be run to extract the necessary configuration options from your environment and create a compiler personality. This particular utility requires some user input, such as the compiler executable command, the location of the compiler include directories and so forth which can be entered via the GUI as explained below. As explained in section 4 above, this utility should be used to generate compiler configurations for project environments other than: Microsoft Visual Studio GNU/GCC Borland C++Builder Starting The Utility Simply run the AutoCmpPersonGen.exe program from the installed location and you will be presented with an interface to provide the utility with the following information Product and Output location Specify QAC or QAC++ and the directory you wish the generated personality to be saved in. Note the name of the generated personality is AutoCmpPerson.p_c. Copyright 2007 Programming Research 15

16 Compiler Execution Information The compiler generator uses your compiler to run some tests and therefore needs to know how to invoke the compiler from the command line. Make sure you know the command string for invoking your compiler on a simple test.c file from the command line in order to enter the following information. Exe Command the command used to invoke the compiler. This may be as simple as lc or gcc, if your compiler recognises implicit include directories or interrogates the INCLUDE_PATH environment variable. In other cases the command may need to specify include paths explicitly, for example: lc i c:\lcc\include. Also it is possible that the compiler is wrapped into an IDE executable and requires a further command to invoke on the command line. For example Code Warrior piper.exe chc12.exe I C:\Program Files\Freescale\CW for HC12 V4.5\lib\hc12c\include. Ensure that you fully qualify the path to the compiler executable if it is not on your path. Cross Compiler If your compiler is a cross compiler and any executable generated on the command line cannot be run on the host machine, then check the option provided. Specify the Output, Define and Object flags for the compiler in question including the need for trailing whitespace if applicable. The output flag specifies the option required to generate a given.exe after compilation, the define flag specifies the option required to specify a particular pre-processor define from the command line, and the object flag is specifies the flag required to leave behind the object file created during compilation (note: this option can be blank if by default your compiler does not delete the object file). Specify the Order on the command line that these options need to be specified to the compiler. Note on some compilers the order needs to be exact, whereas others can accept options in any order. The resulting command string (including all options) will be displayed for your reference. Copyright 2007 Programming Research 16

17 Search Directories The Compiler Personality Generator will configure the include directories used by your compiler and needed during analysis. In order for the generator to discover these directories you need to provide starting points for where these will be located. The generator also looks at the compiler binary files and searches recursively through directory structures, so the best search directory to specify is the top level install directory for your compiler. The higher up the directory tree you specify, the better will be the resulting personality but also the longer it will take to generate; so avoid specifying C:\ or \usr. In the example above with the lcc compiler the directory structure is: And therefore the best specified search directories are: This can be a list of starting search directories as the include files can be located in multiple locations on disk Compiler Defines and Switches During the usage of your compiler, you may specify external defines and options so as to enforce a particular route through the pre-processing of system header files, or, for example, the enabling of exception handling or RTTI in C++. Because these options will affect the way your compiler behaves, the analysis engine needs to be aware of them so as to analyse the code in the same way. Specify any compiler defines or options either by comma separated values (note you do not need to repeat the d/-d for the defines that you specified earlier) or on separate lines. Click Next and you will see a summary screen of the options you supplied before clicking Finish. Copyright 2007 Programming Research 17

18 The generated personality should now be ready for use in your projects, however there may need to be some review or modification of it to handle very specific compiler based extensions. If you still encounter syntax errors when analysing your code, refer to Section 6 below Copyright 2007 Programming Research 18

19 6 Resolving Syntax Errors 6.1 Introduction Before attempting to review all the various analysis messages that QAC and QAC++ may generate, it is important to resolve syntax errors. Syntax errors are errors which indicate that the tool cannot perform basic parsing of the code. If the code can be successfully compiled, it is most likely that syntax errors generated by QAC or QAC++ can be resolved by further modification of the compiler or analyser personalities. Occasionally it may be necessary to resort to using substitute header files or modifying the source files themselves. 6.2 Which syntax errors must I resolve? Always address syntax errors in the order in which they occur within a translation unit. By resolving the first syntax error you will often correct subsequent syntax errors as well. Having resolved a syntax error you can re-analyse the file and reload it in the message browser using File/Refresh Warnings. 6.3 Using the Pre-processed Output When a compiler compiles, it goes through a pre-processing stage where macros and pre-processor directives are resolved. This results in a single unit of code referred to as a translation unit. Both QAC and QAC++ have the ability to send the pre-processed output to a file. Open up the Folder Parameters of the root folder and edit the Analyser personality by selecting the Edit button. This will bring up the analyser personality details. Select the Analysis Processing tab of the Analyser personality and then check the two boxes entitled Pre-Processed Output and Include filename and line numbers in preprocessed listing. Copyright 2007 Programming Research 19

20 Do not check the Only Perform Preprocessing Analysis check box for QAC++. Now, when you analyse, a.i file containing the pre-processed output will be produced in the output directory. This can be viewed by pressing the button from the toolbar or selecting View Preprocessed Source from the View menu. Preprocessed source code is particularly useful when reviewing warnings in header files and warnings which are generated within the expansion of macros. 6.4 Missing Include Files One of the most common syntax errors is the Cannot find include file warning. For QAC this is warning 818 1: #include "test.h" ^ ++ HARD ERROR ++: <=9=(0818) Cannot find test.h - Perhaps the appropriate search path was not given? and for QAC++ this is warning 34 #include "test.h" ^ ++ HARD ERROR ++: <=9=(0034) Cannot find include file 'test.h'. When this happens you need to ask yourself if this is a project header file or a system header file. If it is a project header file then the path needs to be added to the analyser personality; if it is a system header file, the compiler personality should be updated. 6.5 Handling Language Extension Keywords Many compilers, particularly embedded compilers extend the ISO C language with keywords such as interrupt, banked, sfr, export etc. in order to add extra functionality. There also some additional keywords in ISO-C99 which do not exist in ISO-C90 and are therefore not recognised by QAC (for example, inline _Bool). Various approaches are needed in order to enable such code to be parsed. In some cases, unrecognised keywords may be successfully parsed by simply ignoring them. This can be achieved by configuring a suitable macro which redefines the keyword to nothing. Here is an example of the inline keyword. This code will only compile under compilers that support the inline keyword and when we try to analyse it with QAC we get the following output. 1: inline int sum(int a, int b) ^ ++ HARD ERROR ++: <=9=(0926) [S] Expected: (, ; [ =. 2: { 3: return a + b; 4: } 5: The preprocessor can be used to remove the inline keyword completely which will have the affect of transforming the code into legal ISO C90 code. This is done by setting inline equal to nothing in the compiler personality. So in the system macros tab of the compiler personality we add inline= We can now analyse the code without any syntax errors. Copyright 2007 Programming Research 20

21 Some keywords are more complicated than the inline keyword to handle. Consider the interrupt and using keywords found in the Keil compiler. These are used as follows. unsigned int interruptcnt; unsigned char second; void timer0 (void) interrupt 1 using 2 { if (++interruptcnt == 4000) { /* count to 4000 */ second++; /* second counter */ interruptcnt = 0; /* clear int counter */ } } The additional keywords here are the interrupt and using keywords. What we need to do is to handle not just the keywords themselves but also the next token after interrupt (1) and the next token after using ( 2). This can be done using a magic macro definition called _ignore. By defining the following macros in the compiler personality interrupt=_ignore using=_ignore QAC will be able to parse the code without any problems since the pre-processor will remove the using and interrupt keywords but will also ignore the following tokens as well. You can find the details of other forms of _ignore in the QAC/QAC++ User Guide. The Compiler Personality Generator will identify potential keywords and handle as many of them as it can for you. However, there may be keywords it has not encountered before which may require extra configuration. If this is the case, please alert support@progrmamingresearch.com to the situation so that future versions of the Compiler Personality Generator can be extended to cover this case. Copyright 2007 Programming Research 21

22 6.6 Handling #pragma blocks in QAC It is possible to configure QAC to ignore code lying between certain types of #pragma. Suppose your compiler supports the following syntax: #pragma beginasm mov eax,ebx #pragma endasm In the analyser personality you will find a tab called Pragma Blocks where you can insert beginasm,endasm. This will make QAC ignore the embedded assembler and prevent problematic syntax errors. Copyright 2007 Programming Research 22

23 6.7 Handling bool and wchar_t in QAC++ bool and wchar_t are recognised as types in the ISO C++ standard. A problem can arise with QAC++ since it always treats bool and wchar_t as keywords, whereas some compilers do not. Take for example a compiler that does not treat bool as a keyword. You may find a definition of bool as a typedef in the system headers. typedef unsigned char bool; If we try to analyse this code using QAC++ we will get a syntax error as shown. 1: typedef unsigned char bool; ^ ++ HARD ERROR ++: <=9=(0014) Syntax error before ;. QAC++ thinks that you are trying to create a typedef for a basic type. The way to resolve this issue is to use the preprocessor of QAC++ to redefine bool into something else, for example bool. Since bool is not a keyword, the typedef is now valid ISO C++. Similarly wchar_t is treated in QAC++ as a keyword by default, but this can be tailored in the Compiler Personality, Data Types tab. Copyright 2007 Programming Research 23

24 Copyright 2007 Programming Research 24

25 6.8 Re-coding to eliminate syntax errors Sometimes you will come across a language construct that QAC or QAC++ can not handle. In this case it is necessary to re-code the problematic code or encapsulate it in a macro. For example, suppose your compiler supports a syntax similar to operator but using an exclamation mark (!) instead. int x! 0x QAC will not be able to parse this code and there is no way of getting rid of the exclamation mark using the preprocessor. Trying!=_ignore will not work. In these circumstances it may be necessary to introduce some alternative coding of the form: #ifndef NO_SUPPORT_FOR_AT_SYNTAX #define VAR_AT_ADDRESS(m)! m #else #define VAR_AT_ADDRESS(m) #endif int x VAR_AT_ADDRESS(0x ); Now all we need do is to define the macro NO_SUPPORT_FOR_AT_SYNTAX in the QAC compiler personality. The problematic language extension disappear when analysing but will still be used when compiling. This method of fixing syntax errors is a last resort, but it is always wise to encapsulate compiler extensions in this way as good programming practice. Copyright 2007 Programming Research 25

Integrating QA C into IAR Embedded Workbench

Integrating QA C into IAR Embedded Workbench Integrating QA C into IAR Embedded Workbench First Edition by Eur Ing Chris Hills BSc (Hons), C. Eng., MIET, MBCS, FRGS, FRSA The Art in Embedded Systems comes through Engineering discipline. Contents

More information

Have examined process Creating program Have developed program Written in C Source code

Have examined process Creating program Have developed program Written in C Source code Preprocessing, Compiling, Assembling, and Linking Introduction In this lesson will examine Architecture of C program Introduce C preprocessor and preprocessor directives How to use preprocessor s directives

More information

A Fast Review of C Essentials Part II

A Fast Review of C Essentials Part II A Fast Review of C Essentials Part II Structural Programming by Z. Cihan TAYSI Outline Macro processing Macro substitution Removing a macro definition Macros vs. functions Built-in macros Conditional compilation

More information

Migrating from Keil µvision for 8051 to IAR Embedded Workbench for 8051

Migrating from Keil µvision for 8051 to IAR Embedded Workbench for 8051 Migration guide Migrating from Keil µvision for 8051 to for 8051 Use this guide as a guideline when converting project files from the µvision IDE and source code written for Keil toolchains for 8051 to

More information

Migrating from Keil µvision for 8051 to IAR Embedded Workbench for 8051

Migrating from Keil µvision for 8051 to IAR Embedded Workbench for 8051 Migration guide Migrating from Keil µvision for 8051 to for 8051 Use this guide as a guideline when converting project files from the µvision IDE and source code written for Keil toolchains for 8051 to

More information

COSC 2P91. Bringing it all together... Week 4b. Brock University. Brock University (Week 4b) Bringing it all together... 1 / 22

COSC 2P91. Bringing it all together... Week 4b. Brock University. Brock University (Week 4b) Bringing it all together... 1 / 22 COSC 2P91 Bringing it all together... Week 4b Brock University Brock University (Week 4b) Bringing it all together... 1 / 22 A note on practicality and program design... Writing a single, monolithic source

More information

Operator overloading

Operator overloading 1 Introduction 2 The copy constructor 3 Operator Overloading 4 Eg 1: Adding two vectors 5 The -> operator 6 The this pointer 7 Overloading = 8 Unary operators 9 Overloading for the matrix class 10 The

More information

COSC 2P91. Introduction Part Deux. Week 1b. Brock University. Brock University (Week 1b) Introduction Part Deux 1 / 14

COSC 2P91. Introduction Part Deux. Week 1b. Brock University. Brock University (Week 1b) Introduction Part Deux 1 / 14 COSC 2P91 Introduction Part Deux Week 1b Brock University Brock University (Week 1b) Introduction Part Deux 1 / 14 Source Files Like most other compiled languages, we ll be dealing with a few different

More information

GETTING STARTED WITH THE ADOBE INDESIGN CS3 PLUG-IN EDITOR

GETTING STARTED WITH THE ADOBE INDESIGN CS3 PLUG-IN EDITOR GETTING STARTED WITH THE ADOBE INDESIGN CS3 PLUG-IN EDITOR 2007 Adobe Systems Incorporated. All rights reserved. Getting Started with the Adobe InDesign CS3 Plug-in Editor Technical note #10123 Adobe,

More information

RVDS 4.0 Introductory Tutorial

RVDS 4.0 Introductory Tutorial RVDS 4.0 Introductory Tutorial 402v02 RVDS 4.0 Introductory Tutorial 1 Introduction Aim This tutorial provides you with a basic introduction to the tools provided with the RealView Development Suite version

More information

Chapter A2: BankLink Books clients

Chapter A2: BankLink Books clients Chapter A2: BankLink Books clients This chapter is aimed at BankLink Administrators This Chapter covers the options available for processing in BankLink Books. The BankLink Service Agreement permits you

More information

How do I use BatchProcess

How do I use BatchProcess home news tutorial what can bp do purchase contact us TUTORIAL Written by Luke Malpass Sunday, 04 April 2010 20:20 How do I use BatchProcess Begin by downloading the required version (either 32bit or 64bit)

More information

Writing Code and Programming Microcontrollers

Writing Code and Programming Microcontrollers Writing Code and Programming Microcontrollers This document shows how to develop and program software into microcontrollers. It uses the example of an Atmel ATmega32U2 device and free software. The ATmega32U2

More information

CE221 Programming in C++ Part 1 Introduction

CE221 Programming in C++ Part 1 Introduction CE221 Programming in C++ Part 1 Introduction 06/10/2017 CE221 Part 1 1 Module Schedule There are two lectures (Monday 13.00-13.50 and Tuesday 11.00-11.50) each week in the autumn term, and a 2-hour lab

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

Bash command shell language interpreter

Bash command shell language interpreter Principles of Programming Languages Bash command shell language interpreter Advanced seminar topic Louis Sugy & Baptiste Thémine Presentation on December 8th, 2017 Table of contents I. General information

More information

Function. Description

Function. Description Function Check In Get / Checkout Description Checking in a file uploads the file from the user s hard drive into the vault and creates a new file version with any changes to the file that have been saved.

More information

COMP322 - Introduction to C++ Lecture 02 - Basics of C++

COMP322 - Introduction to C++ Lecture 02 - Basics of C++ COMP322 - Introduction to C++ Lecture 02 - Basics of C++ School of Computer Science 16 January 2012 C++ basics - Arithmetic operators Where possible, C++ will automatically convert among the basic types.

More information

C Compilation Model. Comp-206 : Introduction to Software Systems Lecture 9. Alexandre Denault Computer Science McGill University Fall 2006

C Compilation Model. Comp-206 : Introduction to Software Systems Lecture 9. Alexandre Denault Computer Science McGill University Fall 2006 C Compilation Model Comp-206 : Introduction to Software Systems Lecture 9 Alexandre Denault Computer Science McGill University Fall 2006 Midterm Date: Thursday, October 19th, 2006 Time: from 16h00 to 17h30

More information

Lecture 10: building large projects, beginning C++, C++ and structs

Lecture 10: building large projects, beginning C++, C++ and structs CIS 330: / / / / (_) / / / / _/_/ / / / / / \/ / /_/ / `/ \/ / / / _/_// / / / / /_ / /_/ / / / / /> < / /_/ / / / / /_/ / / / /_/ / / / / / \ /_/ /_/_/_/ _ \,_/_/ /_/\,_/ \ /_/ \ //_/ /_/ Lecture 10:

More information

fpp: Fortran preprocessor March 9, 2009

fpp: Fortran preprocessor March 9, 2009 fpp: Fortran preprocessor March 9, 2009 1 Name fpp the Fortran language preprocessor for the NAG Fortran compiler. 2 Usage fpp [option]... [input-file [output-file]] 3 Description fpp is the preprocessor

More information

Type Checking and Type Equality

Type Checking and Type Equality Type Checking and Type Equality Type systems are the biggest point of variation across programming languages. Even languages that look similar are often greatly different when it comes to their type systems.

More information

Lab 2.2. Out: 9 February 2005

Lab 2.2. Out: 9 February 2005 CS034 Intro to Systems Programming Doeppner & Van Hentenryck Lab 2.2 Out: 9 February 2005 What you ll learn. In this lab, you will practice much of what you did in Lab 2.1, but for a slightly more challenging

More information

CST8152 Compilers Creating a C Language Console Project with Microsoft Visual Studio.Net 2010

CST8152 Compilers Creating a C Language Console Project with Microsoft Visual Studio.Net 2010 CST8152 Compilers Creating a C Language Console Project with Microsoft Visual Studio.Net 2010 The process of creating a project with Microsoft Visual Studio 2010.Net is similar to the process in Visual

More information

Practical C Issues:! Preprocessor Directives, Multi-file Development, Makefiles. CS449 Fall 2017

Practical C Issues:! Preprocessor Directives, Multi-file Development, Makefiles. CS449 Fall 2017 Practical C Issues:! Preprocessor Directives, Multi-file Development, Makefiles CS449 Fall 2017 Multi-file Development Multi-file Development Why break code into multiple source files? Parallel development

More information

Rule 1-3: Use white space to break a function into paragraphs. Rule 1-5: Avoid very long statements. Use multiple shorter statements instead.

Rule 1-3: Use white space to break a function into paragraphs. Rule 1-5: Avoid very long statements. Use multiple shorter statements instead. Chapter 9: Rules Chapter 1:Style and Program Organization Rule 1-1: Organize programs for readability, just as you would expect an author to organize a book. Rule 1-2: Divide each module up into a public

More information

Annotation Annotation or block comments Provide high-level description and documentation of section of code More detail than simple comments

Annotation Annotation or block comments Provide high-level description and documentation of section of code More detail than simple comments Variables, Data Types, and More Introduction In this lesson will introduce and study C annotation and comments C variables Identifiers C data types First thoughts on good coding style Declarations vs.

More information

Appendix. Grammar. A.1 Introduction. A.2 Keywords. There is no worse danger for a teacher than to teach words instead of things.

Appendix. Grammar. A.1 Introduction. A.2 Keywords. There is no worse danger for a teacher than to teach words instead of things. A Appendix Grammar There is no worse danger for a teacher than to teach words instead of things. Marc Block Introduction keywords lexical conventions programs expressions statements declarations declarators

More information

HOW TO USE CODE::BLOCKS IDE FOR COMPUTER PROGRAMMING LABORATORY SESSIONS

HOW TO USE CODE::BLOCKS IDE FOR COMPUTER PROGRAMMING LABORATORY SESSIONS HOW TO USE CODE::BLOCKS IDE FOR COMPUTER PROGRAMMING LABORATORY SESSIONS INTRODUCTION A program written in a computer language, such as C/C++, is turned into executable using special translator software.

More information

COMP322 - Introduction to C++

COMP322 - Introduction to C++ COMP322 - Introduction to C++ Winter 2011 Lecture 2 - Language Basics Milena Scaccia School of Computer Science McGill University January 11, 2011 Course Web Tools Announcements, Lecture Notes, Assignments

More information

Dreamweaver is a full-featured Web application

Dreamweaver is a full-featured Web application Create a Dreamweaver Site Dreamweaver is a full-featured Web application development tool. Dreamweaver s features not only assist you with creating and editing Web pages, but also with managing and maintaining

More information

Chapter 1 Getting Started

Chapter 1 Getting Started Chapter 1 Getting Started The C# class Just like all object oriented programming languages, C# supports the concept of a class. A class is a little like a data structure in that it aggregates different

More information

Opening Microsoft Visual Studio. On Microsoft Windows Vista and XP to open the visual studio do the following:

Opening Microsoft Visual Studio. On Microsoft Windows Vista and XP to open the visual studio do the following: If you are a beginner on Microsoft Visual Studio 2008 then you will at first find that this powerful program is not that easy to use for a beginner this is the aim of this tutorial. I hope that it helps

More information

Exercise Session 2 Systems Programming and Computer Architecture

Exercise Session 2 Systems Programming and Computer Architecture Systems Group Department of Computer Science ETH Zürich Exercise Session 2 Systems Programming and Computer Architecture Herbstsemester 216 Agenda Linux vs. Windows Working with SVN Exercise 1: bitcount()

More information

CSE 374 Programming Concepts & Tools

CSE 374 Programming Concepts & Tools CSE 374 Programming Concepts & Tools Hal Perkins Fall 2017 Lecture 8 C: Miscellanea Control, Declarations, Preprocessor, printf/scanf 1 The story so far The low-level execution model of a process (one

More information

Chapter 10. Programming in C

Chapter 10. Programming in C Chapter 10 Programming in C Lesson 05 Functions in C C program Consists of three parts preprocessor directives macros main function functions 3 Function Each has a name (for identity ID) May have the arguments

More information

INTERMEDIATE SOFTWARE DESIGN SPRING 2011 ACCESS SPECIFIER: SOURCE FILE

INTERMEDIATE SOFTWARE DESIGN SPRING 2011 ACCESS SPECIFIER: SOURCE FILE HEADER FILE A header (.h,.hpp,...) file contains Class definitions ( class X {... }; ) Inline function definitions ( inline int get_x() {... } ) Function declarations ( void help(); ) Object declarations

More information

µtasker Document CodeWarrior 10

µtasker Document CodeWarrior 10 Embedding it better... µtasker Document CodeWarrior 10 utasker_codewarrior10.doc/0.0 Copyright 2012 M.J.Butcher Consulting Table of Contents 1. Introduction...3 2. Importing the Project into a Workspace...4

More information

Contents Lecture 3. C Preprocessor, Chapter 11 Declarations, Chapter 8. Jonas Skeppstedt Lecture / 44

Contents Lecture 3. C Preprocessor, Chapter 11 Declarations, Chapter 8. Jonas Skeppstedt Lecture / 44 Contents Lecture 3 C Preprocessor, Chapter 11 Declarations, Chapter 8 Jonas Skeppstedt (js@cs.lth.se) Lecture 3 2014 1 / 44 C Preprocessor Predefined macros Macro replacement Conditional inclusion Source

More information

The C Programming Language Guide for the Robot Course work Module

The C Programming Language Guide for the Robot Course work Module The C Programming Language Guide for the Robot Course work Module Eric Peasley 2018 v6.4 1 2 Table of Contents Variables...5 Assignments...6 Entering Numbers...6 Operators...7 Arithmetic Operators...7

More information

CST8152 Compilers Creating a C Language Console Project with Microsoft Visual Studio.Net 2005

CST8152 Compilers Creating a C Language Console Project with Microsoft Visual Studio.Net 2005 CST8152 Compilers Creating a C Language Console Project with Microsoft Visual Studio.Net 2005 The process of creating a project with Microsoft Visual Studio 2005.Net is similar to the process in Visual

More information

IBM Rational Rhapsody Properties

IBM Rational Rhapsody Properties IBM Rational Rhapsody Properties Every model element in Rational Rhapsody has a set of properties associated with it which can be accessed through the features window of Rational Rhapsody. These properties

More information

Familiarity with data types, data structures, as well as standard program design, development, and debugging techniques.

Familiarity with data types, data structures, as well as standard program design, development, and debugging techniques. EE 472 Lab 1 (Individual) Introduction to C and the Lab Environment University of Washington - Department of Electrical Engineering Introduction: This lab has two main purposes. The first is to introduce

More information

Short Notes of CS201

Short 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 information

IAR C-SPY Hardware Debugger Systems User Guide

IAR C-SPY Hardware Debugger Systems User Guide IAR C-SPY Hardware Debugger Systems User Guide for the Renesas SH Microcomputer Family CSSHHW-1 COPYRIGHT NOTICE Copyright 2010 IAR Systems AB. No part of this document may be reproduced without the prior

More information

5/3/2006. Today! HelloWorld in BlueJ. HelloWorld in BlueJ, Cont. HelloWorld in BlueJ, Cont. HelloWorld in BlueJ, Cont. HelloWorld in BlueJ, Cont.

5/3/2006. Today! HelloWorld in BlueJ. HelloWorld in BlueJ, Cont. HelloWorld in BlueJ, Cont. HelloWorld in BlueJ, Cont. HelloWorld in BlueJ, Cont. Today! Build HelloWorld yourself in BlueJ and Eclipse. Look at all the Java keywords. Primitive Types. HelloWorld in BlueJ 1. Find BlueJ in the start menu, but start the Select VM program instead (you

More information

Tutorial No. 2 - Solution (Overview of C)

Tutorial No. 2 - Solution (Overview of C) Tutorial No. 2 - Solution (Overview of C) Computer Programming and Utilization (2110003) 1. Explain the C program development life cycle using flowchart in detail. OR Explain the process of compiling and

More information

This document contains information about the ElectricAccelerator Solution Support Add-in. Topics include: Overview 2. New Features and Improvements 2

This document contains information about the ElectricAccelerator Solution Support Add-in. Topics include: Overview 2. New Features and Improvements 2 Electric Cloud ElectricAccelerator version 7.0 Technical Notes MS Visual Studio Solution Support Add-in version 3.2.3 May 2013 This document contains information about the ElectricAccelerator Solution

More information

CS Programming In C

CS 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 information

CS201 - Introduction to Programming Glossary By

CS201 - 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 information

TPF Users Group Spring 2006

TPF Users Group Spring 2006 z/tpf EE V1.1 z/tpfdf V1.1 TPF Toolkit for WebSphere Studio V3 TPF Operations Server V1.2 IBM Software Group TPF Users Group Spring 2006 Best Practices for Migrating Your TPF4.1 Applications C/C++ Migration

More information

ME 4447/ME Microprocessor Control of Manufacturing Systems/ Introduction to Mechatronics. Instructor: Professor Charles Ume

ME 4447/ME Microprocessor Control of Manufacturing Systems/ Introduction to Mechatronics. Instructor: Professor Charles Ume ME 4447/ME 6405 Microprocessor Control of Manufacturing Systems/ Introduction to Mechatronics Instructor: Professor Charles Ume Lecture on Codewarrior Integrated Development Environment Contents Overview

More information

Appendix A. The Preprocessor

Appendix A. The Preprocessor Appendix A The Preprocessor The preprocessor is that part of the compiler that performs various text manipulations on your program prior to the actual translation of your source code into object code.

More information

Dreamweaver is a full-featured Web application

Dreamweaver is a full-featured Web application Create a Dreamweaver Site Dreamweaver is a full-featured Web application development tool. Dreamweaver s features not only assist you with creating and editing Web pages, but also with managing and maintaining

More information

CS 426 Fall Machine Problem 1. Machine Problem 1. CS 426 Compiler Construction Fall Semester 2017

CS 426 Fall Machine Problem 1. Machine Problem 1. CS 426 Compiler Construction Fall Semester 2017 CS 426 Fall 2017 1 Machine Problem 1 Machine Problem 1 CS 426 Compiler Construction Fall Semester 2017 Handed Out: September 6, 2017. Due: September 21, 2017, 5:00 p.m. The machine problems for this semester

More information

PROGRAMMAZIONE I A.A. 2017/2018

PROGRAMMAZIONE I A.A. 2017/2018 PROGRAMMAZIONE I A.A. 2017/2018 STEPS OF GCC STEPS file.c Preprocessor Compiler file1.o file2.o Assembler Linker executable file PREPROCESSOR PREPROCESSOR The C preprocessor is a macro processor that is

More information

MPLAB XC8 C Compiler Version 2.00 Release Notes for AVR MCU

MPLAB XC8 C Compiler Version 2.00 Release Notes for AVR MCU MPLAB XC8 C Compiler Version 2.00 Release Notes for AVR MCU THIS DOCUMENT CONTAINS IMPORTANT INFORMATION RELATING TO THE MPLAB XC8 C COM- PILER WHEN TARGETING MICROCHIP AVR DEVICES. PLEASE READ IT BEFORE

More information

Modules:Context-Sensitive Keyword

Modules:Context-Sensitive Keyword Document Number: P0924r1 Date: 2018-11-21 To: SC22/WG21 EWG Reply to: Nathan Sidwell nathan@acm.org / nathans@fb.com Re: Merging Modules, p1103r2 Modules:Context-Sensitive Keyword Nathan Sidwell The new

More information

IDEA. Integrated Development Environment for COSMIC Software C Compilers and ZAP Debuggers. Quick Start Guide. PC/Windows 95/98/NT

IDEA. Integrated Development Environment for COSMIC Software C Compilers and ZAP Debuggers. Quick Start Guide. PC/Windows 95/98/NT IDEA Integrated Development Environment for COSMIC Software C Compilers and ZAP Debuggers 1 Quick Start Guide PC/Windows 95/98/NT Document Version V1.2 July 1999 Copyright COSMIC Software Inc. 1999 All

More information

G52CPP C++ Programming Lecture 9

G52CPP C++ Programming Lecture 9 G52CPP C++ Programming Lecture 9 Dr Jason Atkin http://www.cs.nott.ac.uk/~jaa/cpp/ g52cpp.html 1 Last lecture const Constants, including pointers The C pre-processor And macros Compiling and linking And

More information

QUIZ. Source:

QUIZ. Source: QUIZ Source: http://stackoverflow.com/questions/17349387/scope-of-macros-in-c Ch. 4: Data Abstraction The only way to get massive increases in productivity is to leverage off other people s code. That

More information

ADOBE DRIVE 4.2 USER GUIDE

ADOBE DRIVE 4.2 USER GUIDE ADOBE DRIVE 4.2 USER GUIDE 2 2013 Adobe Systems Incorporated. All rights reserved. Adobe Drive 4.2 User Guide Adobe, the Adobe logo, Creative Suite, Illustrator, InCopy, InDesign, and Photoshop are either

More information

Project Compiler. CS031 TA Help Session November 28, 2011

Project Compiler. CS031 TA Help Session November 28, 2011 Project Compiler CS031 TA Help Session November 28, 2011 Motivation Generally, it s easier to program in higher-level languages than in assembly. Our goal is to automate the conversion from a higher-level

More information

System Tools Manual. 10th November 2015

System Tools Manual. 10th November 2015 vcomp Pty Ltd (ABN 39 103 040 311) PO Box 7356 Cloisters Square Perth WA 6850 Australia Manual 10th November 2015 Overview is collection of visual editors that allow the everyday Surpac user to leverage

More information

JBoss Overlord CDL 1.0-M2 Getting Started Guide

JBoss Overlord CDL 1.0-M2 Getting Started Guide JBoss Overlord CDL 1.0-M2 Getting Started Guide by Gary Brown and Jeff Yu 1. Installation... 1 1.1. Overview... 1 1.2. Prerequisites... 1 1.3. Installation Instructions... 1 1.4. Importing Samples into

More information

Language Translation. Compilation vs. interpretation. Compilation diagram. Step 1: compile. Step 2: run. compiler. Compiled program. program.

Language Translation. Compilation vs. interpretation. Compilation diagram. Step 1: compile. Step 2: run. compiler. Compiled program. program. Language Translation Compilation vs. interpretation Compilation diagram Step 1: compile program compiler Compiled program Step 2: run input Compiled program output Language Translation compilation is translation

More information

QUIZ. What is wrong with this code that uses default arguments?

QUIZ. What is wrong with this code that uses default arguments? QUIZ What is wrong with this code that uses default arguments? Solution The value of the default argument should be placed in either declaration or definition, not both! QUIZ What is wrong with this code

More information

Recitation: Cache Lab & C

Recitation: Cache Lab & C 15-213 Recitation: Cache Lab & C Jack Biggs 16 Feb 2015 Agenda Buffer Lab! C Exercises! C Conventions! C Debugging! Version Control! Compilation! Buffer Lab... Is due soon. So maybe do it soon Agenda Buffer

More information

WPS Workbench. user guide. "To help guide you through using the WPS user interface (Workbench) to create, edit and run programs"

WPS Workbench. user guide. To help guide you through using the WPS user interface (Workbench) to create, edit and run programs WPS Workbench user guide "To help guide you through using the WPS user interface (Workbench) to create, edit and run programs" Version: 3.1.7 Copyright 2002-2018 World Programming Limited www.worldprogramming.com

More information

How to build Simbody 2.2 from source on Windows

How to build Simbody 2.2 from source on Windows How to build Simbody 2.2 from source on Windows Michael Sherman, 30 Mar 2011 (minor revision 27 July 2011) Simbody 2.2 was re-engineered to be much easier to build from source than previous releases. One

More information

OBJECT ORIENTED PROGRAMMING USING C++

OBJECT ORIENTED PROGRAMMING USING C++ OBJECT ORIENTED PROGRAMMING USING C++ Chapter 17 - The Preprocessor Outline 17.1 Introduction 17.2 The #include Preprocessor Directive 17.3 The #define Preprocessor Directive: Symbolic Constants 17.4 The

More information

Lecture Notes on Generic Data Structures

Lecture Notes on Generic Data Structures Lecture Notes on Generic Data Structures 15-122: Principles of Imperative Computation Frank Pfenning Lecture 22 November 15, 2012 1 Introduction Using void* to represent pointers to values of arbitrary

More information

CSCI 171 Chapter Outlines

CSCI 171 Chapter Outlines Contents CSCI 171 Chapter 1 Overview... 2 CSCI 171 Chapter 2 Programming Components... 3 CSCI 171 Chapter 3 (Sections 1 4) Selection Structures... 5 CSCI 171 Chapter 3 (Sections 5 & 6) Iteration Structures

More information

Tutorial : creating a Max/MSP external project for Windows using Visual Studio

Tutorial : creating a Max/MSP external project for Windows using Visual Studio Tutorial : creating a Max/MSP external project for Windows using Visual Studio Version 1.0 (17 th July 2011) by Benoit Bouchez Reviewed on 5 th November 2013 for Max 6 SDK before publishing on Cycling'74

More information

In addition to name. Each variable in C program is characterized by its Type Scope Storage Class. Type Have already discussed

In addition to name. Each variable in C program is characterized by its Type Scope Storage Class. Type Have already discussed Variables, Storage Class, Scope, Multiple File Multiple Module Projects Overview Will examine how variables characterized Will introduce and study variable s storage class Will examine a variable s visibility

More information

QUIZ. What are 3 differences between C and C++ const variables?

QUIZ. What are 3 differences between C and C++ const variables? QUIZ What are 3 differences between C and C++ const variables? Solution QUIZ Source: http://stackoverflow.com/questions/17349387/scope-of-macros-in-c Solution The C/C++ preprocessor substitutes mechanically,

More information

System Programming And C Language

System Programming And C Language System Programming And C Language Prof. Jin-soo Kim. (jinsookim@skku.edu) Pintos TA Jin-yeong, Bak. (dongdm@gmail.com) Kyung-min, Go. (gkm2164@gmail.com) 2010.09.28 1 Contents Important thing in system

More information

Viewing Reports in Vista. Version: 7.3

Viewing Reports in Vista. Version: 7.3 Viewing Reports in Vista Version: 7.3 Copyright 2015 Intellicus Technologies This document and its content is copyrighted material of Intellicus Technologies. The content may not be copied or derived from,

More information

1.1 The hand written header file

1.1 The hand written header file Page 1 of 8 Incorporating hand code data with generated code from 1 Overview models This paper illustrates how to integrate hand-code with the code generated from models. In particular, it will illustrate

More information

6.096 Introduction to C++ January (IAP) 2009

6.096 Introduction to C++ January (IAP) 2009 MIT OpenCourseWare http://ocw.mit.edu 6.096 Introduction to C++ January (IAP) 2009 For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms. Welcome to 6.096 Lecture

More information

Applied Informatics POCO PRO C++ Frameworks

Applied Informatics POCO PRO C++ Frameworks Applied Informatics POCO PRO C++ Frameworks Getting Started Guide Version 1.10 Purpose of This Document This document guides developers interested in the POCO PRO C++ Frameworks by Applied Informatics

More information

Report Commander 2 User Guide

Report Commander 2 User Guide Report Commander 2 User Guide Report Commander 2.5 Generated 6/26/2017 Copyright 2017 Arcana Development, LLC Note: This document is generated based on the online help. Some content may not display fully

More information

Some (semi-)advanced tips for LibreOffice

Some (semi-)advanced tips for LibreOffice Some (semi-)advanced tips for LibreOffice by Andy Pepperdine Introduction We cover several tips on special things in Writer and Calc and anything else that turns up. Although I use LibreOffice, these should

More information

P89V51RD2 Development Board May 2010

P89V51RD2 Development Board May 2010 P89V51RD2 Development Board May 2010 NEX Robotics Pvt. Ltd. 1 P89V51RD2 Development Board Introduction: P89V51RD2 Development Board P89V51RD2 Development Board is a low cost development board which have

More information

Chapter 2. Procedural Programming

Chapter 2. Procedural Programming Chapter 2 Procedural Programming 2: Preview Basic concepts that are similar in both Java and C++, including: standard data types control structures I/O functions Dynamic memory management, and some basic

More information

Starting to Program in C++ (Basics & I/O)

Starting to Program in C++ (Basics & I/O) Copyright by Bruce A. Draper. 2017, All Rights Reserved. Starting to Program in C++ (Basics & I/O) On Tuesday of this week, we started learning C++ by example. We gave you both the Complex class code and

More information

IBM TRIRIGA Application Platform Version 3 Release 4.2. Object Migration User Guide

IBM TRIRIGA Application Platform Version 3 Release 4.2. Object Migration User Guide IBM TRIRIGA Application Platform Version 3 Release 4.2 Object Migration User Guide Note Before using this information and the product it supports, read the information in Notices on page 41. This edition

More information

CCH Document Management Release Notes

CCH Document Management Release Notes CCH Document Management 2015.1 Release Notes Legal Notice Disclaimer Copyright CCH Software 145 London Road, Kingston upon Thames, Surrey KT2 6SR UNITED KINGDOM Trademark Rights CCH Software has made every

More information

Escher C/C++ Verifier 7.0. Reference Manual

Escher C/C++ Verifier 7.0. Reference Manual Escher C/C++ Verifier 7.0 Reference Manual 2017 Escher Technologies Ltd. All rights reserved. Page 1 of 62 Escher C Verifier (ecv) Reference Manual Version 7.0, February 2017 Disclaimer The information

More information

Maemo Diablo GNU Make and makefiles Training Material

Maemo Diablo GNU Make and makefiles Training Material Maemo Diablo GNU Make and makefiles Training Material February 9, 2009 Contents 1 GNU Make and makefiles 2 1.1 What is GNU Make?......................... 2 1.2 How does make work?........................

More information

These are notes for the third lecture; if statements and loops.

These are notes for the third lecture; if statements and loops. These are notes for the third lecture; if statements and loops. 1 Yeah, this is going to be the second slide in a lot of lectures. 2 - Dominant language for desktop application development - Most modern

More information

APPLICATION COMMON OPERATING ENVIRONMENT (APPCOE)

APPLICATION COMMON OPERATING ENVIRONMENT (APPCOE) APPLICATION COMMON OPERATING ENVIRONMENT (APPCOE) TRAINING GUIDE Version 1.0 March 12, 2013 Copyright (c) 2013 MapuSoft Technologies 1301 Azalea Road Mobile, AL 36693 www.mapusoft.com Copyright The information

More information

Python RPM Porting Guide Release 0.1

Python RPM Porting Guide Release 0.1 Python RPM Porting Guide Release 0.1 Red Hat, Inc. Apr 27, 2017 Contents 1 Porting the specfile to Python 3 2 2 Modifications 3 2.1 BuildRequires and Requires....................................... 3 2.2

More information

Keep Track of Your Passwords Easily

Keep Track of Your Passwords Easily Keep Track of Your Passwords Easily K 100 / 1 The Useful Free Program that Means You ll Never Forget a Password Again These days, everything you do seems to involve a username, a password or a reference

More information

AccuBridge for IntelliJ IDEA. User s Guide. Version March 2011

AccuBridge for IntelliJ IDEA. User s Guide. Version March 2011 AccuBridge for IntelliJ IDEA User s Guide Version 2011.1 March 2011 Revised 25-March-2011 Copyright AccuRev, Inc. 1995 2011 ALL RIGHTS RESERVED This product incorporates technology that may be covered

More information

Confluence User Training Guide

Confluence User Training Guide Confluence User Training Guide Below is a short overview of wikis and Confluence and a basic user training guide for completing common tasks in Confluence. This document outlines the basic features that

More information

Installation... 3 Starting the installation... 3 The installation instructions... 3 Welcome... 3 Software License Agreement... 3 Choose Destination

Installation... 3 Starting the installation... 3 The installation instructions... 3 Welcome... 3 Software License Agreement... 3 Choose Destination Installation... 3 Starting the installation... 3 The installation instructions... 3 Welcome... 3 Software License Agreement... 3 Choose Destination Location... 4 Select Program Folder... 4 Copying Files...

More information

Installing and Configuring Worldox/Web Mobile

Installing and Configuring Worldox/Web Mobile Installing and Configuring Worldox/Web Mobile SETUP GUIDE v 1.1 Revised 6/16/2009 REVISION HISTORY Version Date Author Description 1.0 10/20/2008 Michael Devito Revised and expanded original draft document.

More information

Compiler, Assembler, and Linker

Compiler, Assembler, and Linker Compiler, Assembler, and Linker Minsoo Ryu Department of Computer Science and Engineering Hanyang University msryu@hanyang.ac.kr What is a Compilation? Preprocessor Compiler Assembler Linker Loader Contents

More information

Telerik Corp. Test Studio Standalone & Visual Studio Plug-In Quick-Start Guide

Telerik Corp. Test Studio Standalone & Visual Studio Plug-In Quick-Start Guide Test Studio Standalone & Visual Studio Plug-In Quick-Start Guide Contents Create your First Test... 3 Standalone Web Test... 3 Standalone WPF Test... 6 Standalone Silverlight Test... 8 Visual Studio Plug-In

More information