Object Code Accelerator Manual

Size: px
Start display at page:

Download "Object Code Accelerator Manual"

Transcription

1 Object Code Accelerator Manual Abstract This manual describes how to use the Object Code Accelerator (OCA) to optimize TNS object code for HP TNS/E systems. OCA processes files for the Guardian environment. Product Version N/A Supported Release Version Updates (RVUs) This publication supports G06.27 and all subsequent G-series RVUs, and H06.03 and all subsequent H-series RVUs until otherwise indicated by its replacement publication. Part Number Published September 2005

2 Document History Part Number Product Version Published NA April NA July NA September 2005

3 Object Code Accelerator Manual Glossary Index Figures Tables What s New in This Manual v Manual Information v New and Changed Information v About This Manual vi Audience vi How to Use This Manual Notation Conventions vii vi 1. Introduction How the Object Code Accelerator (OCA) Works 1-1 OCA Translation Mode 1-3 OCA Resource Requirements 1-3 Cross-Platform Acceleration Preparing Your Program for TNS/E Systems General Considerations 2-1 Results After an Overflow 2-1 Checking Segment Limits 2-2 Extended Segment Size 2-3 Variances in TNS and Accelerated Code 2-4 Trap Handlers That Use the Register Stack 2-4 Trap Handlers That Use the Program Counter 2-5 Reserved Instructions 2-6 Passing the Addresses of P-Relative Objects 2-6 Nonprivileged References to System Global Data 2-7 Segment Wrapping 2-8 Odd-Byte References 2-9 Shift Instructions With Dynamic Shift Counts 2-11 Data Alignment in TNS and Accelerated Code 2-13 Misalignment Tracing Facility 2-13 Misalignment Handling 2-15 Hewlett-Packard Company i

4 Contents 3. Preparing Programs for Acceleration 3. Preparing Programs for Acceleration General Considerations 3-1 Run-Time Libraries 3-1 User Libraries 3-1 C Function Prototypes 3-2 Binder and Inspect Symbols Regions 3-2 Variances in Accelerated Code 3-2 Trap Handlers Using the ENV Registers 3-2 Passing Parameters in Registers 3-3 Arithmetic Left-Shift Sign Bit 3-6 Non-Standard Procedure Call or Return RP Values 3-7 Relationship Between Global and Local Data Blocks 3-10 Procedure Name Conflicts Using OCA A Strategy for Using OCA 4-1 Invoking OCA 4-2 OCA Command Usage Examples 4-3 Specifying the Code Space 4-3 Accelerating Programs With Embedded SQL 4-3 Using Obey Files 4-4 Comments 4-4 Online Help 4-5 OCA Listings OCA Syntax and Option Summary OCA Syntax 5-1 OCA Options 5-2 Translating a System Library 5-3 Translating a User Library 5-3 Specifying an Output File Name 5-4 Specifying an Obey File 5-4 Determining TNS Register Usage 5-5 Correcting a Function s Return Values Size 5-5 Diagnosing and Managing Register or Condition Code Inheritance Using OCA with Other NonStop Tools OCA and Binder 6-1 CHANGE 6-1 SHOW 6-2 ii

5 Contents 7. Debugging OCA Programs STRIP 6-2 OCA and TNSVU 6-3 OCA and Accelerator 6-3 OCA and NonStop Debugging Tools 6-4 OCA and EPTRACE Debugging OCA Programs Differences Between Debugging TNS and Accelerated Programs 7-1 Register-Exact Points 7-2 Memory-Exact Points 7-2 Nonexact Points 7-2 A Strategy for Debugging Error and Warning Messages Warning Messages 8-1 Error Messages 8-4 A. Data Type Correspondence and Return Value Sizes Glossary Index Figures Tables Figure 1-1. The Acceleration Process 1-1 Figure 1-2. User Program Execution Modes on TNS/E Systems 1-2 Figure 1-3. Comparing TNS and Accelerated Object File Sizes Without a Symbols Region 1-3 Figure 1-4. Comparing TNS and Accelerated Object File Sizes Without a Symbols Region 1-4 Figure 3-1. Passing Parameters in Registers 3-6 Figure 4-1. OCA Online Help Example 4-5 Figure 6-1. Translating using the Accelerator and OCA 6-3 Figure 6-2. Translating using OCA and the Accelerator 6-4 Table 2-1. TNS Misalignment Handling Methods 2-15 Table 5-1. OCA Options 5-2 Table A-1. Integer Types, Part 1 A-2 Table A-2. Integer Types, Part 2 A-3 Table A-3. Floating, Fixed, and Complex Types A-3 iii

6 Contents Tables (continued) Tables (continued) Table A-4. Character Types A-4 Table A-5. Structured, Logical, Set, and File Types A-4 Table A-6. Pointer Types A-5 iv

7 What s New in This Manual Manual Information Abstract Object Code Accelerator Manual This manual describes how to use the Object Code Accelerator (OCA) to optimize TNS object code for HP TNS/E systems. OCA processes files for the Guardian environment. Product Version N/A Supported Release Version Updates (RVUs) This publication supports G06.27 and all subsequent G-series RVUs, and H06.03 and all subsequent H-series RVUs until otherwise indicated by its replacement publication. Part Number Published September 2005 Document History Part Number Product Version Published NA April NA July NA September 2005 New and Changed Information This edition of the manual supports the release of the Object Code Accelerator (OCA) on G-series systems. v

8 About This Manual OCA allows you to improve the performance of programs that run on TNS/E systems. OCA optimizes TNS programs to take advantage of the TNS/E architecture and processes TNS object files to produce accelerated object files. Most TNS object code that has been accelerated runs faster on TNS/E systems than TNS object code that has not been accelerated. Most programs written for TNS systems do not require changes to run on TNS/E systems, either with or without acceleration. The OCA Manual describes: How OCA works and how to determine which programs to accelerate The changes that you must make to run your TNS object on TNS/E systems; most of these changes only affect low-level TAL programs The changes that you must make to your TNS object code before processing it with OCA OCA syntax and command options How to set OCA options to eliminate certain variances Audience This manual is intended for systems and applications programmers familiar with HP systems, the HP NonStop operating system, and the source languages of the programs to be accelerated. The manual contains all the information needed to use OCA. How to Use This Manual The following table guides you to the sections you should read, depending on what tasks you want to perform: If you want to: Run a TNS program on a TNS/E system Accelerate a TNS program Debug an accelerated program Understand errors and warning messages Read the following sections: Section 2, Preparing Your Program for TNS/E Systems Section 1, Introduction Section 2, Preparing Your Program for TNS/E Systems Section 3, Preparing Programs for Acceleration Section 4, Using OCA Section 5, OCA Syntax and Option Summary Section 6, Using OCA with Other NonStop Tools Section 7, Debugging OCA Programs Section 8, Error and Warning Messages vi

9 About This Manual Notation Conventions Notation Conventions Hypertext Links Blue underline is used to indicate a hypertext link within text. By clicking a passage of text with a blue underline, you are taken to the location described. For example: This requirement is described under Backup DAM Volumes and Physical Disk Drives on page 3-2. General Syntax Notation This list summarizes the notation conventions for syntax presentation in this manual. UPPERCASE LETTERS. Uppercase letters indicate keywords and reserved words. Type these items exactly as shown. Items not enclosed in brackets are required. For example: MAXATTACH lowercase italic letters. Lowercase italic letters indicate variable items that you supply. Items not enclosed in brackets are required. For example: file-name computer type. Computer type letters within text indicate C and Open System Services (OSS) keywords and reserved words. Type these items exactly as shown. Items not enclosed in brackets are required. For example: myfile.c italic computer type. Italic computer type letters within text indicate C and Open System Services (OSS) variable items that you supply. Items not enclosed in brackets are required. For example: pathname [ ] Brackets. Brackets enclose optional syntax items. For example: TERM [\system-name.]$terminal-name INT[ERRUPTS] A group of items enclosed in brackets is a list from which you can choose one item or none. The items in the list can be arranged either vertically, with aligned brackets on each side of the list, or horizontally, enclosed in a pair of brackets and separated by vertical lines. For example: FC [ num ] [ -num ] [ text ] K [ X D ] address vii

10 About This Manual General Syntax Notation { } Braces. A group of items enclosed in braces is a list from which you are required to choose one item. The items in the list can be arranged either vertically, with aligned braces on each side of the list, or horizontally, enclosed in a pair of braces and separated by vertical lines. For example: LISTOPENS PROCESS { $appl-mgr-name } { $process-name } ALLOWSU { ON OFF } Vertical Line. A vertical line separates alternatives in a horizontal list that is enclosed in brackets or braces. For example: INSPECT { OFF ON SAVEABEND } Ellipsis. An ellipsis immediately following a pair of brackets or braces indicates that you can repeat the enclosed sequence of syntax items any number of times. For example: M address [, new-value ] [ - ] { } An ellipsis immediately following a single syntax item indicates that you can repeat that syntax item any number of times. For example: "s-char " Punctuation. Parentheses, commas, semicolons, and other symbols not previously described must be typed as shown. For example: error := NEXTFILENAME ( file-name ) ; LISTOPENS SU $process-name.#su-name Quotation marks around a symbol such as a bracket or brace indicate the symbol is a required character that you must type as shown. For example: "[" repetition-constant-list "]" Item Spacing. Spaces shown between items are required unless one of the items is a punctuation symbol such as a parenthesis or a comma. For example: CALL STEPMOM ( process-id ) ; If there is no space between two items, spaces are not permitted. In this example, no spaces are permitted between the period and any other items: $process-name.#su-name Line Spacing. If the syntax of a command is too long to fit on a single line, each continuation line is indented three spaces and is separated from the preceding line by viii

11 About This Manual Notation for Messages a blank line. This spacing distinguishes items in a continuation line from items in a vertical list of selections. For example: ALTER [ / OUT file-spec / ] LINE [, attribute-spec ]!i and!o. In procedure calls, the!i notation follows an input parameter (one that passes data to the called procedure); the!o notation follows an output parameter (one that returns data to the calling program). For example: CALL CHECKRESIZESEGMENT ( segment-id!i, error ) ;!o!i,o. In procedure calls, the!i,o notation follows an input/output parameter (one that both passes data to the called procedure and returns data to the calling program). For example: error := COMPRESSEDIT ( filenum ) ;!i,o!i:i. In procedure calls, the!i:i notation follows an input string parameter that has a corresponding parameter specifying the length of the string in bytes. For example: error := FILENAME_COMPARE_ ( filename1:length!i:i, filename2:length ) ;!i:i!o:i. In procedure calls, the!o:i notation follows an output buffer parameter that has a corresponding input parameter specifying the maximum length of the output buffer in bytes. For example: error := FILE_GETINFO_ ( filenum!i, [ filename:maxlen ] ) ;!o:i Notation for Messages This list summarizes the notation conventions for the presentation of displayed messages in this manual. Bold Text. Bold text in an example indicates user input typed at the terminal. For example: ENTER RUN CODE?123 CODE RECEIVED: The user must press the Return key after typing the input. Nonitalic text. Nonitalic letters, numbers, and punctuation indicate text that is displayed or returned exactly as shown. For example: Backup Up. ix

12 About This Manual Notation for Management Programming Interfaces lowercase italic letters. Lowercase italic letters indicate variable items whose values are displayed or returned. For example: p-register process-name [ ] Brackets. Brackets enclose items that are sometimes, but not always, displayed. For example: Event number = number [ Subject = first-subject-value ] A group of items enclosed in brackets is a list of all possible items that can be displayed, of which one or none might actually be displayed. The items in the list can be arranged either vertically, with aligned brackets on each side of the list, or horizontally, enclosed in a pair of brackets and separated by vertical lines. For example: proc-name trapped [ in SQL in SQL file system ] { } Braces. A group of items enclosed in braces is a list of all possible items that can be displayed, of which one is actually displayed. The items in the list can be arranged either vertically, with aligned braces on each side of the list, or horizontally, enclosed in a pair of braces and separated by vertical lines. For example: obj-type obj-name state changed to state, caused by { Object Operator Service } process-name State changed from old-objstate to objstate { Operator Request. } { Unknown. } Vertical Line. A vertical line separates alternatives in a horizontal list that is enclosed in brackets or braces. For example: Transfer status: { OK Failed } % Percent Sign. A percent sign precedes a number that is not in decimal notation. The % notation precedes an octal number. The %B notation precedes a binary number. The %H notation precedes a hexadecimal number. For example: % %B %H2F P=%p-register E=%e-register Notation for Management Programming Interfaces This list summarizes the notation conventions used in the boxed descriptions of programmatic commands, event messages, and error lists in this manual. x

13 About This Manual Change Bar Notation UPPERCASE LETTERS. Uppercase letters indicate names from definition files. Type these names exactly as shown. For example: ZCOM-TKN-SUBJ-SERV lowercase letters. Words in lowercase letters are words that are part of the notation, including Data Definition Language (DDL) keywords. For example: token-type!r.!o. The!r notation following a token or field name indicates that the token or field is required. For example: ZCOM-TKN-OBJNAME token-type ZSPI-TYP-STRING.!r The!o notation following a token or field name indicates that the token or field is optional. For example: ZSPI-TKN-MANAGER token-type ZSPI-TYP-FNAME32.!o Change Bar Notation Change bars are used to indicate substantive differences between this manual and its preceding version. Change bars are vertical rules placed in the right margin of changed portions of text, figures, tables, examples, and so on. Change bars highlight new or revised information. For example: The message types specified in the REPORT clause are different in the COBOL85 environment and the Common Run-Time Environment (CRE). The CRE has many new message types and some new message type codes for old message types. In the CRE, the message type SYSTEM includes all messages except LOGICAL-CLOSE and LOGICAL-OPEN. xi

14 1 Introduction OCA processes TNS object code to produce accelerated object code. On TNS/E systems, accelerated object code runs significantly faster than TNS object code. This section describes how OCA works, how to determine which programs to accelerate, and the cost in time and space to accelerate your programs. How the Object Code Accelerator (OCA) Works OCA takes as input an executable TNS object file and produces as output an accelerated object file. The accelerated object file contains both the original TNS code and the logically equivalent optimized Itanium instructions (accelerated object code). Figure 1-1, The Acceleration Process, on page 1-1 illustrates the acceleration process. Figure 1-1. The Acceleration Process Accelerated Object File TNS Object File TNS Object Code TNS Compiler TNS Object Code OCA Accelerated Object Code VST0101.vsd OCA produces for each TNS instruction its functional equivalent on the TNS/E system, in the form of either: A sequence of zero or more (usually more than one) Itanium instructions A call on a millicode routine In the first and more common case, OCA treats a TNS instruction as though it were a macro instruction, expanding it into Itanium instructions. In the second, OCA treats a TNS instruction as though it were a call on a closed subroutine, referred to as a millicode routine. Millicode routines are sets of Itanium instructions that implement various complex TNS instructions and low-level functions such as exception handling, real-time translation routines, and floating-point and quad arithmetic. Millicode is functionally equivalent to TNS microcode. OCA can produce only optimized Itanium instructions for TNS instruction sequences whose exact meaning can be determined before runtime. In cases where the exact meaning cannot be determined until run time, the program makes a transition into TNS code and executes the original TNS instructions. 1-1

15 Introduction How the Object Code Accelerator (OCA) Works Figure 1-2, User Program Execution Modes on TNS/E Systems, on page 1-2 shows two of the execution modes available to user programs on TNS/E systems: TNS mode and accelerated mode. TNS mode is the operational environment in which TNS instructions execute. On TNS/E systems, TNS instructions are implemented by millicode routines. Accelerated mode is the operational environment in which Itanium instructions generated by OCA execute. On TNS/E systems, Itanium instructions execute directly on the Itanium processor. Figure 1-2. User Program Execution Modes on TNS/E Systems TNS Object File Accelerated Object File TNS Object Code TNS Object Code Accelerated Object Code TNS Instructions TNS Instructions Itanium Instructions Millicode Itanium Instructions TNS/E Processor VST0102.vdd OCA runs on TNS/R and TNS/E systems, and produces the same output in both environments: a file containing both the original TNS/R code and its Itanium code equivalent. Accelerated object files can run on both TNS/R and TNS/E systems, although TNS/R systems ignore the Itanium code. OCA can process bound, executable object programs generated by B40 and later releases of the C, COBOL85, FORTRAN, Pascal, and TAL compilers. OCA processes executable object programs that run only in the Guardian environment. (You cannot accelerate object programs generated by the COBOL 74 compiler.) 1-2

16 Introduction OCA Translation Mode OCA Translation Mode You explicitly accelerate your TNS program as part of the build or install process.when you explicitly accelerate your program in this way, you are immediately alerted of any error conditions. If you do not want to accelerate a TNS object file, you can use the Binder CHANGE OCA ENABLE OFF command to disable inadvertent acceleration. See OCA and Binder on page 6-1 for further information about Binder commands that work with OCA and the Binder Manual. Usage Consideration If a program calls a user library and that library is not already accelerated, procedures in that library execute in TNS mode. OCA Resource Requirements OCA, like an optimizing compiler, is both CPU-intensive and memory-intensive. Try to run OCA on a lightly loaded processor with more than 16MB of physical memory. OCA uses large amounts of the extended segment heap area (about 135 KB per 1000 TNS instructions). Much of this virtual memory must remain in physical memory to avoid page faults that slow OCA. Accelerating large programs on processors with less than 16MB of physical memory can lead to unacceptable performance. Accelerated object files require more disk space and memory space than TNS object files. Figure 1-3, Comparing TNS and Accelerated Object File Sizes Without a Symbols Region, on page 1-3 shows that an accelerated object file, without a symbols region, requires about twice as much disk storage space as the corresponding TNS object file. Figure 1-3. Comparing TNS and Accelerated Object File Sizes Without a Symbols Region TNS Object Code Binder Region Accelerated Object Code VST0103.vdd 1-3

17 Introduction OCA Resource Requirements Figure 1-4, Comparing TNS and Accelerated Object File Sizes Without a Symbols Region, on page 1-4 shows that an accelerated object file, with a symbols region, requires about 25 percent more disk storage space than the corresponding TNS object file. You can strip the symbols region from the accelerated program without affecting performance. However, accelerate the TNS object file with the symbols region and then strip the symbols region. OCA produces more efficient code from source TNS object files that contain a symbols region than those without the region. Figure 1-4. Comparing TNS and Accelerated Object File Sizes Without a Symbols Region TNS Object Code Binder Region Symbols Region Accelerated Object Code VST0103.vdd The inline code expansion factor measures the worst-case increase in main memory required for accelerated code; the typical increase is less. It is the number of bytes of Itanium code divided by the number of bytes of TNS code. Itanium instructions are 32 bits and TNS instructions are 16 bits; thus, a one-to-one instruction matching produces an inline expansion factor of 2. The OCA listing reports the inline code expansion factor. The typical inline expansion factor in executable Itanium code compared to TNS code is 2 to 4 times. In one typical OLTP application, the code pages working set for the HPsupplied system code increased approximately 190 percent on a TNS/E as compared to a TNS system. 1-4

18 Introduction Cross-Platform Acceleration Cross-Platform Acceleration OCA is supported on G-series, and H-series systems, enabling you to accelerate TNS object files on the TNS/E platform for execution on the TNS/E platform. (A file with a TNS region only cannot be executed on the TNS/E platform). The TNS/R acceleration equivalent, Accelerator, is supported on G-series RVUs, enabling you to accelerate TNS object files on the TNS/R platform for execution on the TNS/R platform. Having both accelerators available on both platforms enables you to use either the TNS/R or TNS/E platform to create files that can be executed with improved performance on either platform. 1-5

19 2 Preparing Your Program for TNS/E Systems Most TNS programs written for the HP NonStop operating system run on TNS/E systems without modification. Variances between TNS and TNS/E systems, however, might require modification in some programs, particularly low-level TAL programs. This section steps you through: General Considerations on page 2-1, discusses hardware and software release issues that affect moving programs between any two different models of HP NonStop systems. Variances in TNS and Accelerated Code on page 2-4 discusses the changes you must make to programs because of variances between TNS and TNS/E systems. Data Alignment in TNS and Accelerated Code on page 2-13 discusses the data alignment requirements for TNS code and the OCA. It also describes how to use the Misalignment Tracing Facility diagnostic tool. General Considerations This section discusses hardware and software release issues that affect moving programs between any two different models of HP NonStop systems. You must consider these issues when you prepare a program to run on TNS/E systems, whether or not you plan to accelerate the program. These issues include results after an overflow, checking segment limits, segment length, and supported operating system releases. Results After an Overflow Multiplication and division results after an overflow are undefined on all HP systems. Each HP system generates different overflow results depending on the specific hardware and algorithms used for the operation. Do not depend upon overflow results being the same on TNS/E systems as they are on TNS systems. All TNS instructions for integer multiplication and division operations (except the LMPY instruction) on TNS/E systems have undefined and incompatible TNS overflow results: IDIV DDIV QDIV LDIV IMPY DMPY QMPY All TNS instructions for addition and subtraction operations and the LMPY instruction have compatible overflow results on all TNS and TNS/E systems: IADD DADD QADD LMPY ISUB DSUB QSUB INEG DNEG QNEG 2-1

20 Preparing Your Program for TNS/E Systems Checking Segment Limits Detection Guideline Examine source code that explicitly disables overflow traps to make sure it tests for arithmetic overflow with the $OVERFLOW function. Also look for user written trap handlers that return after an overflow. It is good coding practice always to test for overflow, not just after multiplication and division operations. Required Changes Programs that expect multiplication or division operations to overflow must explicitly test for overflow and establish the desired overflow answer. Programs can test for overflow by: Using the TAL $OVERFLOW function or the COBOL85 ONSIZE error clause immediately after the arithmetic statement that might overflow Examining the bits of the operands Refer to the Guardian Programmer s Guide for information on writing overflow traps handlers. Example The following TAL code explicitly tests for overflow. FIXED(0) count, time, result; CODE (RDE; ANRI %577; SETE);! Disable overflow traps result := count * time; IF $OVERFLOW THEN! Test immediately for overflow result := 0D;! Fix the overflow result Checking Segment Limits Erroneous programs which access memory beyond the logical end of a memory segment may fail differently and at different moments on TNS, TNS/R, and TNS/E systems, due to differences in memory page sizes. A segment's requested logical size, in bytes, is rounded up to a whole number of pages, where the page size depends on the host machine and NSK software release. Memory pages are 2Kbytes each on TNS CISC systems, 4K or 16Kbytes on TNS/R systems, and 16K or 64Kbytes each on TNS/E systems. Erroneous program references beyond the requested logical end of the segment, but before the actual end of that last memory page, will go undetected. As a result of these differences, addressing past the logical end of segments may fail later or not at all depending on the system. You can notice this difference when debugging addressing errors. Detection Guidelines Addressing errors are reported as "illegal address reference" traps which are generally fatal. Earlier machines are stricter than newer machines and trap out on 2-2

21 Preparing Your Program for TNS/E Systems Extended Segment Size more cases of bad addresses that are slightly too high, because of their smaller page sizes. For example, the following figure shows a TNS/E system with an extended segment of 3.5 memory pages. On TNS/E systems, a program can reference data in addresses from the end of the allocated segment until the end of the memory page (area x between %h and %h00083fff) without an exception. Page Addresses (%H) FFF FFF FFF 4 x FF FFF VST0201.vdd Required Change If your programs reference data beyond a segment s logical limit, eliminate these references. Extended Segment Size The operating system now defines the maximum size of the "selectable" extended data segment at address 0x to be MB (0x07F80000) on all systems. Operating system releases before C30 defined the limit to be 128 MB. The ALLOCATESEGMENT, SEGMENT_ALLOCATE_, and RESIZESEGMENT system procedures no longer allocate selectable segments larger than MB. These size limits do not apply to "flat" segments allocated at other addresses, a feature supported on TNS/R and TNS/E systems, but not on TNS CISC. The starting addresses dynamically assigned to flat segments may be different on TNS/R and 2-3

22 Preparing Your Program for TNS/E Systems Variances in TNS and Accelerated Code TNS/E, and the dynamic limits on flat segment sizes (due to other nearby segments) may be different on TNS/R and TNS/E. Detection Guideline If your programs allocate selectable segments larger than MB, or a combination of flat segments larger than the program's own 31-bit address space allows, ALLOCATESEGMENT and SEGMENT_ALLOCATE_ return error -2. Required Change Change your programs to use the new maximum segment size if they allocate selectable segments larger than MB. Flat segments (at addresses other than 0x x07FFFFFF) have performance and size advantages over selectable segments (which must all timeshare the memory space at 0x x07FFFFFF). For best performance, it is recommended (but not required) to convert selectable segments into flat segments with non-overlapping addresses, and eliminate the associated expensive frequent calls to USESEGMENT or SEGMENT_USE_. This is also recommended (but not required) for native-mode programs. Variances in TNS and Accelerated Code This section describes the variances between TNS and TNS/E systems that apply to TNS object code and accelerated object code. The majority of these variances affect programs with user-written trap handlers or TAL programs with CODE statements. Additionally, these variances point out program bugs that can be detected on one system type and not on another. Check your programs for variances in: Trap handlers that use the register stack Trap handlers that use the P register Reserved instructions Passing the address of P-relative objects Nonprivileged references to system global data Stack wrapping Odd-byte references Shift instructions with dynamic shift counts Trap Handlers That Use the Register Stack During program execution, the trap mechanism handles all error and exception conditions not related to input or output. User-written trap handlers differ on TNS and 2-4

23 Preparing Your Program for TNS/E Systems Trap Handlers That Use the Program Counter TNS/E systems because the register stack contents are imprecise at the moment of a trap. (The register stack consists of registers R0 through R7.) On TNS systems, trap handlers can be declared as functions (return a value to a caller) and they can modify the register stack. On TNS/E systems, trap handlers cannot be declared as functions and they can reliably examine and change only certain registers. User-written trap handlers must not alter the register stack. User-written trap handlers on TNS/E systems can: Print error messages and abend Clear overflow and resume Resume after a loop timer Put values into global variables Jump to a restart point by changing the trap variables P, L, ENV, space ID, and S Save the register stack with the usual code statement of: CODE (PUSH %777);! Save register stack contents However, the contents of the register stack are imprecise at the moment of a trap for programs executing on TNS/E systems. The contents of the register stack might not be the same as on TNS systems. Refer to the Guardian Programmer s Guide for information on writing overflow traps. Detection Guideline Find trap handlers by looking for calls to the ARMTRAP system procedure with parameters (address of label, address of data area). The ARMTRAP procedure specifies an entry point into the application program where execution is to begin if a trap occurs. You do not need to change ARMTRAP procedures with parameters of (-1,-1). These parameters cause programs to abend on traps. Trap handlers are usually small enough in both size and number to check visually. Required Change Change your programs to comply with the preceding restrictions. Trap Handlers That Use the Program Counter The reported program counter register, P, is imprecise for all code. Do not rely on the value of P to determine program flow, to inspect the TNS instruction word which triggered the trap, or to calculate the target of a jump. 2-5

24 Preparing Your Program for TNS/E Systems Reserved Instructions You can change the P trap variable to a valid restart point such as a cleanup point in the outer block, but do not perform arithmetic on P. For example, the results of the following operations are undefined: INT trap_p = 'L' - 2;! Location of the P register trap_p := trap_p '+' 1;! Undefined trap_p := trap_p '-' 1;! Undefined Refer to Trap Handlers That Use the Register Stack on page 2-4 for guidelines on writing trap handlers. Detection Guideline Find trap handlers by looking for calls to the system procedure ARMTRAP with parameters (address of label, address of data area). The ARMTRAP procedure specifies an entry point into the application program where execution is to begin if a trap occurs. You do not need to change ARMTRAP procedures with parameters of (-1,-1). These parameters cause programs to abend on traps. Trap handlers are usually small enough in both size and number to check visually. Required Change Change your programs to comply with the preceding restrictions. Reserved Instructions Two TNS instructions previously reserved for the operating system have changed from nonprivileged to privileged instructions on TNS/E systems: TOTQ - Test the Out Queue RCPU - Read Cpu Number These instructions continue to be nonprivileged instructions on existing TNS systems; HP reserves the right to change them to privileged instructions. Detection Guideline Programs that use these instructions in the nonprivileged environment fail with an Instruction Failure exception. Required Change Remove these instructions from nonprivileged programs. Passing the Addresses of P-Relative Objects Do not pass the address of a P-relative object to other routines in programs larger than one TNS code segment. Programs access the wrong object or an address fault occurs if you pass a: 16-bit address on TNS systems 2-6

25 Preparing Your Program for TNS/E Systems Nonprivileged References to System Global Data 16-bit address on TNS/E systems 32-bit extended address on TNS systems However, if you pass a 32-bit extended address on TNS/E systems, programs access the specified object and continue execution. This is a program error that TNS/E systems do not detect. Do not write programs that rely on this feature. There is one supported exception to this restriction: you can pass user code addresses into user library, system code, or system library routines. Detection Guidelines Look for statements that pass a 32-bit extended address of a P-relative object to other routines. Run your program on a TNS system. If the program runs correctly, your code is correct. Required Change Recode statements that pass a 32-bit extended address of a P-relative object to other routines. Nonprivileged References to System Global Data Only privileged programs can access system global data. When a nonprivileged program references system global data, results differ depending on the system: On TNS systems, the program accesses the user global data segment, G, instead. On TNS/E systems, the program fails with an Instruction Failure exception. Detection Guidelines Use a text editor to search for SG in programs to locate potential variances. TNS/E systems terminate nonprivileged references to SG with an Instruction Failure exception. Required Change Remove references to SG variables from nonprivileged programs. Example The following TAL procedure tries to use the system value at address SG[0], but on a TNS system, the procedure uses whatever is at address G[0] in the user data 2-7

26 Preparing Your Program for TNS/E Systems Segment Wrapping segment. For more information on how to access the system data segment, refer to the section on privileged procedures in the TAL Reference Manual. INT cpuno = 'SG' + 0; INT.EXT xcpuno;! SG equivalencing! Extended pointer PROCEDURE foo;! Nonprivileged procedure BEGIN IF cpuno = 1 THEN! TNS/E system traps BEGIN! TNS system accesses G[0]! Lots of code := $XADR(cpuno); IF xcpuno = 1 THEN! TNS/E system traps...! TNS system accesses G[0] END; Segment Wrapping If a nonprivileged program tries to allocate and operate on variables partially lying across the end of the user data segment, results might differ depending on the system: On TNS systems, the variable reference wraps back to the base of the user data segment. On TNS/E systems, the variable reference is unpredictable; it might wrap or trap. Nonprivileged programs cannot access SG. Required Change Remove from your programs any constructs that result in segment wrapping. Change addressing operations so that they stay fully within the segment. Example The following examples show addressing operations that might not wrap back on the segment on TNS/E systems as they do on TNS systems. STRUCT s(*); BEGIN INT i; INT(32) d; INT j; END; PROC exam; BEGIN INT.p (s); STRUCT := -1;! -1 = (unsigned), structure starts at! the last word of the user data segment and! goes past the end 2-8

27 Preparing Your Program for TNS/E Systems Odd-Byte References s2 ':=' p FOR $LEN(s2) BYTES;! On TNS/E systems, p.d := %h %d;! these operations p.j := 6;! might wrap or trap END; The structure defined by P starts near the end of the user data segment and goes past the end. On TNS systems, this addressing operation wraps back to G[0], as shown by the dotted line in the following figure. On TNS/E systems, this addressing operation might wrap or trap. G [0] G [65535] SG [0] User Data Segment (Relative Segment 0) p System Data Segment (Relative Segment 1) P VST0202.vdd Odd-Byte References When a language compiler applies a TNS word instruction to an operand with an oddbyte address, run-time results are unpredictable. The instruction might do any, or any combination, of: Round down the misaligned address (as the TNS CISC processors always did) Use the misaligned address without rounding it down Cause the instruction to fail The TNS instruction s misalignment behavior depends on: Operand size (16-bit, 32-bit, or 64-bit) Execution mode In TNS mode or accelerated mode, the action also depends on: TNS opcodes such as QCMP Although 64-bit integers with odd-byte addresses usually are not rounded down, they can be QCMP is one such example. 2-9

28 Preparing Your Program for TNS/E Systems Odd-Byte References Contextual optimizations How the instruction's result is used by later instructions The SCF attribute TNSMISALIGN (see Misalignment Handling on page 2-15) The varying behaviors and symptoms that misalignment errors cause can be confusing, for the following reasons: A source program can produce erroneous TNS object code that seems to execute correctly until you change the source program in an apparently innocent way. The program might behave differently in TNS mode than it does in accelerated mode. (Neither mode is better at avoiding alignment problems.) The debugger might display a different value for a variable than the program sees, because the debugger never rounds down addresses. The program might round down addresses for storage operations but not for subsequent retrieval operations of the same misaligned operand (or the reverse). TNS/E systems do not support the same odd-byte references to doublewords (4-byte units) or quadruplewords (8-byte units) as TNS systems do. Odd-byte references are made when the least significant bit (bit 31) of an extended pointer is set. TNS systems ignore bit 31 of an extended pointer and fetch or store data starting from the byte prior to the addressed one to ensure that the address is on a word boundary. This behavior is probably not what you intended. On TNS/E systems, odd-byte references to doublewords or quadruplewords are unpredictable; programs might trap or they might continue executing. Extended pointers to variables accessed as doublewords or quadruplewords must not have their least significant bit set. If your program was written following good TAL programming practices, odd-byte references are not a concern. In TAL, data types stored as doublewords or quadruplewords include INT(32), FIXED(n), REAL, REAL(64), and INT(64). In C, data types stored as doublewords or quadruplewords include long, unsigned long, long long, float, and double. You can use the Misalignment Tracing Facility to detect if your programs are using misaligned pointers.this tool detects where in the program the misaligned pointers are located so you can change the program to avoid misalignment. See Misalignment Tracing Facility on page 2-13 for more information. Odd-byte references to words (2-byte units) result in compatibility traps. Detection Guidelines Look for odd-byte references to doublewords or quadruplewords. Look for uninitialized pointers. Many odd-byte references to doublewords and quadruplewords result from uninitialized pointers (previously undetected programming errors). 2-10

29 Preparing Your Program for TNS/E Systems Shift Instructions With Dynamic Shift Counts Required Change Remove odd-byte references to doublewords and quadruplewords from your programs. Recommended Changes Use pointer conversions as recommended for the source code language so that TNS word instructions are never applied to odd-byte addresses. Set the system s SCF attribute TNSMISALIGN to either FAIL or NOROUND (see Table 2-1 on page 2-15). FAIL can be unsafe on production systems, but is recommended on test systems. Remove odd-byte references to words from your programs. Examples The results of the following program fragment are unpredictable on TNS/E systems. REAL(64).EXT RPTR; STRING.EXT SPTR = + 1d; IF SPTR = 'Z' THEN... IF RPTR = 0.0L0 THEN...! Same pointer as RPTR! OK! Results are unpredictable In the following example, an odd-byte address alignment error occurs on a TNS/E system because the program illegally references a nil pointer. The extended pointer P contains a byte address. When P is set to -1, the structure starts on an odd-byte boundary; therefore, the program might trap or it might continue executing. STRUCT s(*); BEGIN INT i; INT(32) d; INT j; END; PROC test; BEGIN INT.EXT -1d;! "nil" 4-byte pointer to structure p.d := %habcd1234%d;! Results are unpredictable END; Shift Instructions With Dynamic Shift Counts The implementation of TNS instructions for signed arithmetic and unsigned logical shifts with dynamic shift counts differs between TNS and TNS/E systems. This 2-11

30 Preparing Your Program for TNS/E Systems Shift Instructions With Dynamic Shift Counts difference applies to both single-word (16-bit) and double-word (32-bit) shift instructions. For single-word shift operations with dynamic shift counts: TNS systems accept counts within the range of 0 to 255. Shift counts of 16 to 255 are treated as 16. TNS/E systems counts within the range of 0 to 31. Shift counts of 16 to 31 are treated as 16. Shift counts greater than 31 give undefined results. For double-word shift operations with dynamic shift counts: TNS systems accept counts within the range of 0 to 255. Shift counts of 32 to 255 are treated as 32. TNS/E systems accept counts within the range of 0 to 32,767. Shift counts greater than 32 are treated as 32. Dynamic shift counts that fall outside the acceptable ranges give undefined results. The ALS, LLS, ARS, and LRS instructions implement single-word shifts and the DALS, DLLS, DARS, and DLRS instructions implement double-word shifts. The TAL compiler generates these instructions for the bit-shift operators ('<<', '>>', <<, and >>) if the operand to the right of the operators is not a constant. These instructions can also be found in TAL CODE statements. Refer to the appropriate system description manual for more information about the TNS instruction set. Refer to the TAL Reference Manual for details on TAL bit-shift operators. Detection Guidelines Use a text editor to search for ALS 0, LLS 0, ARS 0, and LRS 0 in TAL CODE statements. Make sure that the operands for these instructions do not use shift counts greater than 31. Use a text editor to search for the TAL bit-shift operators: unsigned left and right shift ('<<' and '>>') and signed left and right shift (<< and >>). Make sure that in cases where the left operand is a 16-bit unit and the shift count is dynamic, the count is never greater than 31. Required Change Recode statements that use dynamic shift counts greater than 31. Examples In this example, the value of p is arithmetically shifted to the right 35 positions. The value of p differs on TNS and TNS/E systems. INT p, nbits, q; p := -128;! INT variables 2-12

31 Preparing Your Program for TNS/E Systems Data Alignment in TNS and Accelerated Code nbits := 35; q := p >> nbits;! Shift value of 35-bits! On TNS systems,! same as p >> 16, q = -1! On TNS/E systems,! same as p >> (35-32), q = -16 Data Alignment in TNS and Accelerated Code This section describes the data alignment requirements for TNS code and the OCA. It also describes how to use the Misalignment Tracing Facility diagnostic tool. On TNS systems, a word is 16 bits. The TNS instruction set includes data access instructions that use 32-bit byte addresses that must be even-byte aligned (that is, aligned 0 modulo 2) for correct operation. This requirement remains even after the OCA translates TNS code into RISC code. In TNS mode and accelerated mode, addresses that are odd-byte aligned (that is, aligned 1 modulo 2) are called misaligned. TNS processors consistently round down misaligned addresses (that is, they ignore the low-order bit). TNS/E processors handle the misaligned addresses of TNS programs inconsistently, rounding down some but not others and behaving differently in TNS mode and accelerated mode. These problems do not occur in programs that follow all of the programming rules for TNS languages, but compilers cannot catch misaligned addresses that are computed at run time. The behavior of TNS programs with misaligned addresses on TNS/E processors is almost impossible to predict. If you are not sure that your program has only aligned addresses, you can use the tracing facility to detect whether programs are using misaligned pointers, and if so, where. You should then change the programs to avoid misalignment. In addition to the OCA, the data misalignment issue might affect the following HP compilers. If you use these compilers, see the appropriate data alignment addenda: Compiler T Number Addendum TNS C T9255 C/C++ Programmer s Guide Data Alignment Addendum TNS C++ T9541 TNS c89 T8629 TNS COBOL85 T9257 COBOL85 Manual Data Alignment Addendum TNS/R ptal T9248 ptal Reference Manual Data Alignment Addendum TNS TAL T9250 TAL Programmer s Guide Data Alignment Addendum Misalignment Tracing Facility The misalignment tracing facility is enabled or disabled on a system-wide basis (that is, for all processors in the node). By default, it is enabled (set to ON). It can be disabled (set to OFF) only by the persons who configure the system, by means of the 2-13

32 Preparing Your Program for TNS/E Systems Misalignment Tracing Facility Subsystem Control Facility (SCF) attribute MISALIGNLOG. Instructions are in the SCF Reference Manual for the Kernel Subsystem. Note. HP recommends that the MISALIGNLOG attribute be left ON (its default setting) so that any process that is subject to rounding of misaligned addresses will generate log entries, facilitating diagnosis and repair of the code. Only if the volume of misalignment events becomes burdensome should this attribute be turned OFF. When a misaligned address causes an exception that RVUs prior to G06.17 would have rounded down, the tracing facility traces the exception. Note. The tracing facility does not count and trace every misaligned address, only those that cause round-down exceptions. Other accesses that use misaligned addresses without rounding them down do not cause exceptions and are not counted or traced. Also, only a periodic sample of the counted exceptions are traced by means of their own EMS event messages. While a process runs, the tracing facility: Counts the number of misaligned-address exceptions that the process causes (the exception count) Records the program address and code-file name of the instruction that causes the first misaligned-address exception Because a process can run for a long time, the tracing facility samples the process (that is, checks its exception data) periodically (approximately once an hour). If the process recorded an exception since the previous sample, the tracing facility records an entry in the EMS log. If the process ends, and any exception has occurred since the last sample, the operating system produces a final Event Management Service (EMS) event. The EMS event includes: The process s exception count Details about one misaligned-address exception, including the program address, data address, and relevant code-file names Sampling is short and infrequent enough to avoid flooding the EMS log, even for a continuous process with many misaligned-address exceptions. One sample logs a maximum of 100 events, and at most one event is logged for any process. If misaligned-address exceptions occur in different periods of a process, the operating system produces multiple EMS events for the same process, and these EMS events might have different program addresses. For more information about EMS events or the EMS log, see the EMS Reference Manual. 2-14

33 Preparing Your Program for TNS/E Systems Misalignment Handling Misalignment Handling Misalignment handling is determined by the following SCF attributes, which are set system-wide (that is, for all processors in the node) by the persons who configure the system: MISALIGNLOG TNSMISALIGN NATIVEATOMICMISALIGN (applies only to programs running in TNS/R native mode, and therefore, does not apply to the OCA) MISALIGNLOG enables or disables the tracing facility. TNSMISALIGN applies to all programs running in TNS mode or accelerated mode, but not to programs running in native mode. Table 2-1 lists and describes the possible settings for TNSMISALIGN. Each setting represents a misalignment handling method. For more information about TNSMISALIGN, see the SCF Reference Manual for the Kernel Subsystem. Table 2-1. TNS Misalignment Handling Methods Method ROUND (default)* FAIL NOROUND Description After rounding down a misaligned address, the system proceeds to access the address Instead of rounding down a misaligned address and proceeding to access the target, the operating system considers the instruction to have failed. For a Guardian process, this failure generates an Instruction Failure trap (trap #1). By default, this trap causes the process to go into the debugger, but the program can specify other behavior (for example, process termination or calling a specified trap-handling procedure). For information about trap handling, see the Guardian Programmer s Guide. For an OSS process, this failure generates a SIGILL signal (signal #4). By default, this signal causes process termination, but the program can specify other behavior (for example, entering the debugger or calling a specified signal-handler procedure). The signal cannot be ignored. For information about signal handling, see the explanation of the sigaction() function in the Open System Services System Calls Reference Manual. The system uses the operand s given odd address (not rounded down) to complete the operation. If the operation is an atomic operation, atomicity is no longer guaranteed. * Use this method on production systems to avoid changing the semantics of old TNS programs. FAIL could cause possibly fatal Instruction Failure traps in faulty TNS programs. NOROUND might change the semantics of some faulty programs. 2-15

Object Code Accelerator for TNS/X (OCAX) Manual

Object Code Accelerator for TNS/X (OCAX) Manual Object Code Accelerator for TNS/X (OCAX) Manual HP Part Number: 746698-002 Published: April 2015 Edition: L15.02 and subsequent L-series RVUs Copyright 2015 Hewlett-Packard Development Company, L.P. Legal

More information

TNS/R Native Application Migration Guide

TNS/R Native Application Migration Guide TNS/R Native Application Migration Guide Abstract This manual introduces the HP NonStop Series/RISC (TNS/R) native development and execution environments and explains how to migrate existing HP NonStop

More information

Debug Manual Abstract Product Version Supported Release Version Updates (RVUs) Part Number Published

Debug Manual Abstract Product Version Supported Release Version Updates (RVUs) Part Number Published Debug Manual Abstract This manual describes the Guardian debug facility (Debug) on HP NonStop systems. Product Version G07 Supported Release Version Updates (RVUs) This publication supports G06.06 and

More information

Spooler Plus Programmer s Guide

Spooler Plus Programmer s Guide Spooler Plus Programmer s Guide Abstract This manual describes the Spooler Plus subsystem, its uses, and its applications. This guide is intended for application programmers who want to use the Spooler

More information

ViewSys User s Guide Abstract Product Version Supported Release Version Updates (RVUs) Part Number Published

ViewSys User s Guide Abstract Product Version Supported Release Version Updates (RVUs) Part Number Published ViewSys User s Guide Abstract ViewSys provides system managers and system operators the ability to view system resources on HP NonStop servers. This manual describes how the ViewSys program operates and

More information

HPE NonStop Remote Server Call (RSC/MP) Messages Manual

HPE NonStop Remote Server Call (RSC/MP) Messages Manual HPE NonStop Remote Server Call (RSC/MP) Messages Manual Abstract This manual provides a listing and description of RSC/MP messages that are reported on the HPE NonStop host and on RSC/MP workstations.

More information

Native Inspect Manual

Native Inspect Manual Native Inspect Manual Abstract This manual describes how to use the symbolic command-line debugger Native Inspect for debugging TNS/E native processes and snapshot files on HP NonStop Series TNS/E systems.

More information

OSI/FTAM Responder Manual

OSI/FTAM Responder Manual OSI/FTAM Responder Manual Abstract This manual describes the operation of the Compaq Open Systems Interconnection/File Transfer, Access and Management (OSI/FTAM) responder and its virtual filestore (VFS).

More information

Common Run-Time Environment (CRE) Programmer s Guide

Common Run-Time Environment (CRE) Programmer s Guide Common Run-Time Environment (CRE) Programmer s Guide Abstract This manual describes the Common Run-Time Environment (CRE), a set of run-time services that enable system and application programmers to write

More information

DSM/SCM Messages Manual

DSM/SCM Messages Manual DSM/SCM Messages Manual Abstract This manual provides cause, effect, and recovery information for messages and errors that you might encounter while using the Distributed Systems Management/Software Configuration

More information

DLL Programmer s Guide for TNS/E Systems

DLL Programmer s Guide for TNS/E Systems DLL Programmer s Guide for TNS/E Systems Abstract This guide describes how application programmers can use the DLL facilities provided on TNS/E systems and recommends good practices in using them. Product

More information

HP NonStop ASAP Server Manual

HP NonStop ASAP Server Manual HP NonStop ASAP Server Manual Abstract HP NonStop Availability Statistics and Performance (ASAP) is an availability, state, and performance statistics collection infrastructure for the HP NonStop operating

More information

ATM Configuration and Management Manual

ATM Configuration and Management Manual ATM Configuration and Management Manual Abstract This manual describes how to configure, operate, and manage the ATM subsystem on an HP NonStop S-series server. The manual includes descriptions of the

More information

HPE NonStop SQL/MX Release Guide to Stored Procedures in Java

HPE NonStop SQL/MX Release Guide to Stored Procedures in Java HPE NonStop SQL/MX Release 3.2.1 Guide to Stored Procedures in Java Part Number: 691166-003R Published: November 2015 Copyright 2013, 2015 Hewlett Packard Enterprise Development LP The information contained

More information

WAN Subsystem Configuration and Management Manual

WAN Subsystem Configuration and Management Manual WAN Subsystem Configuration and Management Manual Abstract This manual describes how to monitor, modify, and control the wide area network (WAN) subsystem and configure a ServerNet wide area network (SWAN

More information

SWAN Concentrator and WAN Subsystem Troubleshooting Guide

SWAN Concentrator and WAN Subsystem Troubleshooting Guide SWAN Concentrator and WAN Subsystem Troubleshooting Guide Abstract This guide describes how to troubleshoot the SWAN concentrator, SWAN 2 concentrator, and WAN subsystem on an HP Integrity NonStop BladeSystem,

More information

Telserv Manual Abstract Product Versions Supported Release Version Updates (RVUs) Part Number Published

Telserv Manual Abstract Product Versions Supported Release Version Updates (RVUs) Part Number Published Telserv Manual Abstract This manual describes the HP NonStop Telserv subsystem. Part I contains a product overview. Part II contains operational and configuration information for system administrators,

More information

HPE Code Coverage Tool Reference Manual for HPE Integrity NonStop NS-Series Servers

HPE Code Coverage Tool Reference Manual for HPE Integrity NonStop NS-Series Servers HPE Code Coverage Tool Reference Manual for HPE Integrity NonStop NS-Series Servers Abstract This manual describes the HPE Code Coverage Tool for HPE Integrity NonStop NS-Series Servers. It addresses application

More information

HP NonStop SQL/MX Release Guide to Stored Procedures in Java

HP NonStop SQL/MX Release Guide to Stored Procedures in Java HP NonStop SQL/MX Release 3.2.1 Guide to Stored Procedures in Java HP Part Number: 691166-003 Published: June 2013 Copyright 2013 Hewlett-Packard Development Company L.P. Confidential computer software.

More information

EMS FastStart Manual. Abstract. Product Version. Supported Releases. Part Number Published Release ID

EMS FastStart Manual. Abstract. Product Version. Supported Releases. Part Number Published Release ID EMS FastStart Manual Abstract This manual provides information about the EMS FastStart program including installation, event message design, instructions for running the program, and customizing EMS FastStart

More information

M8501 and M8502 ACL Tape Drive Installation and User s Guide

M8501 and M8502 ACL Tape Drive Installation and User s Guide M8501 and M8502 ACL Tape Drive Installation and User s Guide Abstract This guide provides information about installing, operating, and maintaining the M8501 and M8502 ACL tape drives on HP NonStop servers.

More information

Real-time Process Monitor

Real-time Process Monitor HP NonStop RPM Real-time Process Monitor User s Guide Abstract HP NonStop Real-time Process Monitor (RPM) is a high-performance, low-overhead, Cpu and Process monitoring utility specifically engineered

More information

CROSSREF Manual. Tools and Utilities Library

CROSSREF Manual. Tools and Utilities Library Tools and Utilities Library CROSSREF Manual Abstract This manual describes the CROSSREF cross-referencing utility, including how to use it with C, COBOL 74, COBOL85, EXTENDED BASIC, FORTRAN, Pascal, SCREEN

More information

HP NonStop SQL/MX 2.3.x to SQL/MX 3.0 Database and Application Migration Guide

HP NonStop SQL/MX 2.3.x to SQL/MX 3.0 Database and Application Migration Guide HP NonStop SQL/MX 2.3.x to SQL/MX 3.0 Database and Application Migration Guide Abstract This manual explains how to migrate databases and applications from HP NonStop SQL/MX 2.3.x to SQL/MX Release 3.0

More information

Virtual Hometerm Subsystem (VHS) Manual

Virtual Hometerm Subsystem (VHS) Manual Virtual Hometerm Subsystem (VHS) Manual Abstract This manual describes the Compaq NonStop Virtual Hometerm Subsystem (VHS). VHS acts as a virtual home terminal for applications by emulating a 6530 terminal.

More information

Native Inspect Manual

Native Inspect Manual Native Inspect Manual Part Number: 528122-015R Published: November 2015 Edition: H06.23 and subsequent H-series RVUs, J06.12 and subsequent J-series RVUs, and L15.02 and subsequent L-series RVUs Copyright

More information

HP NonStop TCP/IPv6 Configuration and Management Manual

HP NonStop TCP/IPv6 Configuration and Management Manual HP NonStop TCP/IPv6 Configuration and Management Manual Abstract This manual describes how to configure and manage the HP NonStop TCP/IPv6 subsystem on HP NonStop S-series servers and HP Integrity NonStop

More information

OSI /MHS SCF Reference Manual

OSI /MHS SCF Reference Manual OSI /MHS SCF Reference Manual Abstract This manual describes how to use the Subsystem Control Facility (SCF) interactive interface to configure and control a Compaq Open System Interconnection/Message

More information

HP NonStop TCP/IPv6 Migration Guide

HP NonStop TCP/IPv6 Migration Guide HP NonStop TCP/IPv6 Migration Guide Abstract Version This manual discusses the differences between HP NonStop TCP/IP and NonStop TCP/IPv6 and the differences between Parallel Library TCP/IP and NonStop

More information

NonStop Server for Java Message Service User s Manual

NonStop Server for Java Message Service User s Manual NonStop Server for Java Message Service User s Manual Abstract NonStop Server for Java Message Service (NSJMS) is an implementation of Sun Microsystems Java Message Service (JMS) API on HP NonStop S-series

More information

L-Series Application Migration Guide

L-Series Application Migration Guide L-Series Application Migration Guide Abstract This guide introduces the L-series application development and execution environments and explains how to migrate existing H- and J- series applications to

More information

A Fast Review of C Essentials Part I

A Fast Review of C Essentials Part I A Fast Review of C Essentials Part I Structural Programming by Z. Cihan TAYSI Outline Program development C Essentials Functions Variables & constants Names Formatting Comments Preprocessor Data types

More information

nld Manual Abstract Product Version Supported Release Updates (RVUs) Part Number Published

nld Manual Abstract Product Version Supported Release Updates (RVUs) Part Number Published nld Manual Abstract This publication explains how to use the TNS/R native link editor nld (T6017), which links and changes object file attributes. Product Version nld D44 Supported Release Updates (RVUs)

More information

Measure User s Guide Abstract Product Version Supported Release Version Updates (RVUs) Part Number Published

Measure User s Guide Abstract Product Version Supported Release Version Updates (RVUs) Part Number Published Measure User s Guide Abstract This manual describes how to use the Measure performance monitor to collect and examine data, through either a command interface or programmatic interface. This manual is

More information

Lexical Considerations

Lexical Considerations Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Fall 2005 Handout 6 Decaf Language Wednesday, September 7 The project for the course is to write a

More information

1 Lexical Considerations

1 Lexical Considerations Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Spring 2013 Handout Decaf Language Thursday, Feb 7 The project for the course is to write a compiler

More information

INTRODUCTION 1 AND REVIEW

INTRODUCTION 1 AND REVIEW INTRODUTION 1 AND REVIEW hapter SYS-ED/ OMPUTER EDUATION TEHNIQUES, IN. Programming: Advanced Objectives You will learn: Program structure. Program statements. Datatypes. Pointers. Arrays. Structures.

More information

Library Media Manager Installation and User s Guide

Library Media Manager Installation and User s Guide Library Media Manager Installation and User s Guide Abstract This guide describes how to install and use the Library Media Manager software. It includes information about connection with an HP Integrity

More information

Mid-Range Library Media Manager Installation and User s Guide

Mid-Range Library Media Manager Installation and User s Guide Mid-Range Library Media Manager Installation and User s Guide Abstract This guide describes how to install and use the Mid-Range Library Media Manager software. It includes information about connection

More information

OPTA2000 User Guide. TANDsoft OPTA2000 User Guide

OPTA2000 User Guide. TANDsoft OPTA2000 User Guide OPTA2000 User Guide Abstract OPTA2000 software is a Clock and Time Zone simulator providing multiple Virtual system clocks and multiple Virtual Time Zones on a single HP NonStop Server. Product Version

More information

Enform Plus Reference Manual

Enform Plus Reference Manual Enform Plus Reference Manual Abstract This manual provides detailed information about the syntax of the Enform Plus language. Product Version Enform Plus D46 Supported Releases This manual supports D46.00

More information

Guardian Procedure Errors and Messages Manual

Guardian Procedure Errors and Messages Manual Guardian Procedure Errors and Messages Manual Abstract This manual describes the Guardian messages for HP systems that use the HP NonStopTM operating system. The manual covers the following types of messages:

More information

HP NonStop MXDM User Guide for SQL/MX Release 3.2

HP NonStop MXDM User Guide for SQL/MX Release 3.2 HP NonStop MXDM User Guide for SQL/MX Release 3.2 HP Part Number: 691119-001 Published: August 2012 Edition: J06.14 and subsequent J-series RVUs; H06.25 and subsequent H-series RVUs Copyright 2012 Hewlett-Packard

More information

UNIT- 3 Introduction to C++

UNIT- 3 Introduction to C++ UNIT- 3 Introduction to C++ C++ Character Sets: Letters A-Z, a-z Digits 0-9 Special Symbols Space + - * / ^ \ ( ) [ ] =!= . $, ; : %! &? _ # = @ White Spaces Blank spaces, horizontal tab, carriage

More information

Lexical Considerations

Lexical Considerations Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.035, Spring 2010 Handout Decaf Language Tuesday, Feb 2 The project for the course is to write a compiler

More information

C Language Programming

C Language Programming Experiment 2 C Language Programming During the infancy years of microprocessor based systems, programs were developed using assemblers and fused into the EPROMs. There used to be no mechanism to find what

More information

Chapter 2 Basic Elements of C++

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

More information

HP NonStop Pathway/iTS Web Client Programming Manual

HP NonStop Pathway/iTS Web Client Programming Manual HP NonStop Pathway/iTS Web Client Programming Manual Abstract This manual describes how to convert SCREEN COBOL requesters to web clients and explains how to build and deploy those clients. It also provides

More information

CS401 - Computer Architecture and Assembly Language Programming Glossary By

CS401 - Computer Architecture and Assembly Language Programming Glossary By CS401 - Computer Architecture and Assembly Language Programming Glossary By absolute address : A virtual (not physical) address within the process address space that is computed as an absolute number.

More information

Full file at C How to Program, 6/e Multiple Choice Test Bank

Full file at   C How to Program, 6/e Multiple Choice Test Bank 2.1 Introduction 2.2 A Simple Program: Printing a Line of Text 2.1 Lines beginning with let the computer know that the rest of the line is a comment. (a) /* (b) ** (c) REM (d)

More information

On a 64-bit CPU. Size/Range vary by CPU model and Word size.

On a 64-bit CPU. Size/Range vary by CPU model and Word size. On a 64-bit CPU. Size/Range vary by CPU model and Word size. unsigned short x; //range 0 to 65553 signed short x; //range ± 32767 short x; //assumed signed There are (usually) no unsigned floats or doubles.

More information

IBM. Enterprise Systems Architecture/ Extended Configuration Principles of Operation. z/vm. Version 6 Release 4 SC

IBM. Enterprise Systems Architecture/ Extended Configuration Principles of Operation. z/vm. Version 6 Release 4 SC z/vm IBM Enterprise Systems Architecture/ Extended Configuration Principles of Operation Version 6 Release 4 SC24-6192-01 Note: Before you use this information and the product it supports, read the information

More information

Full file at

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

More information

IT 374 C# and Applications/ IT695 C# Data Structures

IT 374 C# and Applications/ IT695 C# Data Structures IT 374 C# and Applications/ IT695 C# Data Structures Module 2.1: Introduction to C# App Programming Xianrong (Shawn) Zheng Spring 2017 1 Outline Introduction Creating a Simple App String Interpolation

More information

NonStop Servlets for JavaServer Pages (NSJSP) 6.1 System Administrator s Guide

NonStop Servlets for JavaServer Pages (NSJSP) 6.1 System Administrator s Guide NonStop Servlets for JavaServer Pages (NSJSP) 6.1 System Administrator s Guide Abstract NonStop Servlets for JavaServer Pages (NSJSP) is a container that runs Java servlets and JavaServer Pages (JSPs)

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

EDIABAS BEST/2 LANGUAGE DESCRIPTION. VERSION 6b. Electronic Diagnostic Basic System EDIABAS - BEST/2 LANGUAGE DESCRIPTION

EDIABAS BEST/2 LANGUAGE DESCRIPTION. VERSION 6b. Electronic Diagnostic Basic System EDIABAS - BEST/2 LANGUAGE DESCRIPTION EDIABAS Electronic Diagnostic Basic System BEST/2 LANGUAGE DESCRIPTION VERSION 6b Copyright BMW AG, created by Softing AG BEST2SPC.DOC CONTENTS CONTENTS...2 1. INTRODUCTION TO BEST/2...5 2. TEXT CONVENTIONS...6

More information

DataLoader/MX Reference Manual

DataLoader/MX Reference Manual DataLoader/MX Reference Manual Abstract This manual describes the features and functionality of the DataLoader/MX product, a tool to load HP NonStop SQL/MX, SQL/MP, and Enscribe databases. Product Version

More information

The PCAT Programming Language Reference Manual

The PCAT Programming Language Reference Manual The PCAT Programming Language Reference Manual Andrew Tolmach and Jingke Li Dept. of Computer Science Portland State University September 27, 1995 (revised October 15, 2002) 1 Introduction The PCAT language

More information

Migrating from Inspect to Native Inspect

Migrating from Inspect to Native Inspect Revised for H06.08 Seth Hawthorne NonStop Enterprise Division Hewlett-Packard Company Introduction Native Inspect is the standard command-line debugger for debugging natively compiled programs on HP Integrity

More information

CSE 1001 Fundamentals of Software Development 1. Identifiers, Variables, and Data Types Dr. H. Crawford Fall 2018

CSE 1001 Fundamentals of Software Development 1. Identifiers, Variables, and Data Types Dr. H. Crawford Fall 2018 CSE 1001 Fundamentals of Software Development 1 Identifiers, Variables, and Data Types Dr. H. Crawford Fall 2018 Identifiers, Variables and Data Types Reserved Words Identifiers in C Variables and Values

More information

BLM2031 Structured Programming. Zeyneb KURT

BLM2031 Structured Programming. Zeyneb KURT BLM2031 Structured Programming Zeyneb KURT 1 Contact Contact info office : D-219 e-mail zeynebkurt@gmail.com, zeyneb@ce.yildiz.edu.tr When to contact e-mail first, take an appointment What to expect help

More information

The C++ Language. Arizona State University 1

The C++ Language. Arizona State University 1 The C++ Language CSE100 Principles of Programming with C++ (based off Chapter 2 slides by Pearson) Ryan Dougherty Arizona State University http://www.public.asu.edu/~redoughe/ Arizona State University

More information

x. The optional Cross-compiler word set x.1 Introduction x.2 Additional terms and notation x.2.1 Definitions of terms

x. The optional Cross-compiler word set x.1 Introduction x.2 Additional terms and notation x.2.1 Definitions of terms x. The optional Cross-compiler word set x.1 Introduction The purpose of this optional wordset is to facilitate writing programs that may be compiled to run on s other than the system performing the compilation.

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

LESSON 1. A C program is constructed as a sequence of characters. Among the characters that can be used in a program are:

LESSON 1. A C program is constructed as a sequence of characters. Among the characters that can be used in a program are: LESSON 1 FUNDAMENTALS OF C The purpose of this lesson is to explain the fundamental elements of the C programming language. C like other languages has all alphabet and rules for putting together words

More information

Objectives. Chapter 2: Basic Elements of C++ Introduction. Objectives (cont d.) A C++ Program (cont d.) A C++ Program

Objectives. Chapter 2: Basic Elements of C++ Introduction. Objectives (cont d.) A C++ Program (cont d.) A C++ Program Objectives Chapter 2: Basic Elements of C++ In this chapter, you will: Become familiar with functions, special symbols, and identifiers in C++ Explore simple data types Discover how a program evaluates

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

Chapter 2: Basic Elements of C++

Chapter 2: Basic Elements of C++ Chapter 2: Basic Elements of C++ Objectives In this chapter, you will: Become familiar with functions, special symbols, and identifiers in C++ Explore simple data types Discover how a program evaluates

More information

Chapter 2: Basic Elements of C++ Objectives. Objectives (cont d.) A C++ Program. Introduction

Chapter 2: Basic Elements of C++ Objectives. Objectives (cont d.) A C++ Program. Introduction Chapter 2: Basic Elements of C++ C++ Programming: From Problem Analysis to Program Design, Fifth Edition 1 Objectives In this chapter, you will: Become familiar with functions, special symbols, and identifiers

More information

HP NonStop Server Guide for BEA WebLogic Server 8.1

HP NonStop Server Guide for BEA WebLogic Server 8.1 HP NonStop Server Guide for BEA WebLogic Server 8.1 Abstract This manual describes the installation, configuration, and management of the BEA WebLogic Server on HP Integrity NonStop NS-series servers.

More information

Language Basics. /* The NUMBER GAME - User tries to guess a number between 1 and 10 */ /* Generate a random number between 1 and 10 */

Language Basics. /* The NUMBER GAME - User tries to guess a number between 1 and 10 */ /* Generate a random number between 1 and 10 */ Overview Language Basics This chapter describes the basic elements of Rexx. It discusses the simple components that make up the language. These include script structure, elements of the language, operators,

More information

c) Comments do not cause any machine language object code to be generated. d) Lengthy comments can cause poor execution-time performance.

c) Comments do not cause any machine language object code to be generated. d) Lengthy comments can cause poor execution-time performance. 2.1 Introduction (No questions.) 2.2 A Simple Program: Printing a Line of Text 2.1 Which of the following must every C program have? (a) main (b) #include (c) /* (d) 2.2 Every statement in C

More information

UNIT-II. Part-2: CENTRAL PROCESSING UNIT

UNIT-II. Part-2: CENTRAL PROCESSING UNIT Page1 UNIT-II Part-2: CENTRAL PROCESSING UNIT Stack Organization Instruction Formats Addressing Modes Data Transfer And Manipulation Program Control Reduced Instruction Set Computer (RISC) Introduction:

More information

SOME ASSEMBLY REQUIRED

SOME ASSEMBLY REQUIRED SOME ASSEMBLY REQUIRED Assembly Language Programming with the AVR Microcontroller TIMOTHY S. MARGUSH CRC Press Taylor & Francis Group CRC Press is an imprint of the Taylor & Francis Croup an Informa business

More information

Our Strategy for Learning Fortran 90

Our Strategy for Learning Fortran 90 Our Strategy for Learning Fortran 90 We want to consider some computational problems which build in complexity. evaluating an integral solving nonlinear equations vector/matrix operations fitting data

More information

XC Specification. 1 Lexical Conventions. 1.1 Tokens. The specification given in this document describes version 1.0 of XC.

XC Specification. 1 Lexical Conventions. 1.1 Tokens. The specification given in this document describes version 1.0 of XC. XC Specification IN THIS DOCUMENT Lexical Conventions Syntax Notation Meaning of Identifiers Objects and Lvalues Conversions Expressions Declarations Statements External Declarations Scope and Linkage

More information

UNIT- 5. Chapter 12 Processor Structure and Function

UNIT- 5. Chapter 12 Processor Structure and Function UNIT- 5 Chapter 12 Processor Structure and Function CPU Structure CPU must: Fetch instructions Interpret instructions Fetch data Process data Write data CPU With Systems Bus CPU Internal Structure Registers

More information

EnableBasic. The Enable Basic language. Modified by Admin on Sep 13, Parent page: Scripting Languages

EnableBasic. The Enable Basic language. Modified by Admin on Sep 13, Parent page: Scripting Languages EnableBasic Old Content - visit altium.com/documentation Modified by Admin on Sep 13, 2017 Parent page: Scripting Languages This Enable Basic Reference provides an overview of the structure of scripts

More information

IBM Tivoli Decision Support for z/os Version Messages and Problem Determination IBM SH

IBM Tivoli Decision Support for z/os Version Messages and Problem Determination IBM SH IBM Tivoli Decision Support for z/os Version 1.8.2 Messages and Problem Determination IBM SH19-6902-15 IBM Tivoli Decision Support for z/os Version 1.8.2 Messages and Problem Determination IBM SH19-6902-15

More information

HP NonStop Remote Server Call (RSC/MP) Installation and Configuration Guide

HP NonStop Remote Server Call (RSC/MP) Installation and Configuration Guide HP NonStop Remote Server Call (RSC/MP) Installation and Configuration Guide Abstract This manual describes the installation, configuration, and management of RSC/MP software on a HP NonStop system acting

More information

There are different characteristics for exceptions. They are as follows:

There are different characteristics for exceptions. They are as follows: e-pg PATHSHALA- Computer Science Computer Architecture Module 15 Exception handling and floating point pipelines The objectives of this module are to discuss about exceptions and look at how the MIPS architecture

More information

9/5/2018. Overview. The C Programming Language. Transitioning to C from Python. Why C? Hello, world! Programming in C

9/5/2018. Overview. The C Programming Language. Transitioning to C from Python. Why C? Hello, world! Programming in C Overview The C Programming Language (with material from Dr. Bin Ren, William & Mary Computer Science) Motivation Hello, world! Basic Data Types Variables Arithmetic Operators Relational Operators Assignments

More information

Programming for Engineers Introduction to C

Programming for Engineers Introduction to C Programming for Engineers Introduction to C ICEN 200 Spring 2018 Prof. Dola Saha 1 Simple Program 2 Comments // Fig. 2.1: fig02_01.c // A first program in C begin with //, indicating that these two lines

More information

CS 3330 Exam 3 Fall 2017 Computing ID:

CS 3330 Exam 3 Fall 2017 Computing ID: S 3330 Fall 2017 Exam 3 Variant E page 1 of 16 Email I: S 3330 Exam 3 Fall 2017 Name: omputing I: Letters go in the boxes unless otherwise specified (e.g., for 8 write not 8 ). Write Letters clearly: if

More information

Will introduce various operators supported by C language Identify supported operations Present some of terms characterizing operators

Will introduce various operators supported by C language Identify supported operations Present some of terms characterizing operators Operators Overview Will introduce various operators supported by C language Identify supported operations Present some of terms characterizing operators Operands and Operators Mathematical or logical relationships

More information

CSc 10200! Introduction to Computing. Lecture 2-3 Edgardo Molina Fall 2013 City College of New York

CSc 10200! Introduction to Computing. Lecture 2-3 Edgardo Molina Fall 2013 City College of New York CSc 10200! Introduction to Computing Lecture 2-3 Edgardo Molina Fall 2013 City College of New York 1 C++ for Engineers and Scientists Third Edition Chapter 2 Problem Solving Using C++ 2 Objectives In this

More information

12/22/11. Java How to Program, 9/e. Help you get started with Eclipse and NetBeans integrated development environments.

12/22/11. Java How to Program, 9/e. Help you get started with Eclipse and NetBeans integrated development environments. Java How to Program, 9/e Education, Inc. All Rights Reserved. } Java application programming } Use tools from the JDK to compile and run programs. } Videos at www.deitel.com/books/jhtp9/ Help you get started

More information

The C Programming Language. (with material from Dr. Bin Ren, William & Mary Computer Science)

The C Programming Language. (with material from Dr. Bin Ren, William & Mary Computer Science) The C Programming Language (with material from Dr. Bin Ren, William & Mary Computer Science) 1 Overview Motivation Hello, world! Basic Data Types Variables Arithmetic Operators Relational Operators Assignments

More information

NonStop SOAP for Java User s Manual

NonStop SOAP for Java User s Manual NonStop SOAP for Java User s Manual Abstract This manual provides reference and user information for NonStop SOAP for Java, a product that runs on a Compaq NonStop server and provides Simple Object Access

More information

Introduction to C. Why C? Difference between Python and C C compiler stages Basic syntax in C

Introduction to C. Why C? Difference between Python and C C compiler stages Basic syntax in C Final Review CS304 Introduction to C Why C? Difference between Python and C C compiler stages Basic syntax in C Pointers What is a pointer? declaration, &, dereference... Pointer & dynamic memory allocation

More information

Chapter 2. Lexical Elements & Operators

Chapter 2. Lexical Elements & Operators Chapter 2. Lexical Elements & Operators Byoung-Tak Zhang TA: Hanock Kwak Biointelligence Laboratory School of Computer Science and Engineering Seoul National Univertisy http://bi.snu.ac.kr The C System

More information

Program Correctness and Efficiency. Chapter 2

Program Correctness and Efficiency. Chapter 2 Program Correctness and Efficiency Chapter 2 Chapter Objectives To understand the differences between the three categories of program errors To understand the effect of an uncaught exception and why you

More information

Instruction Pipelining Review

Instruction Pipelining Review Instruction Pipelining Review Instruction pipelining is CPU implementation technique where multiple operations on a number of instructions are overlapped. An instruction execution pipeline involves a number

More information

COMP 4211 Seminar Presentation

COMP 4211 Seminar Presentation COMP Seminar Presentation Based On: Computer Architecture A Quantitative Approach by Hennessey and Patterson Presenter : Feri Danes Outline Exceptions Handling Floating Points Operations Case Study: MIPS

More information

Creating a C++ Program

Creating a C++ Program Program A computer program (also software, or just a program) is a sequence of instructions written in a sequence to perform a specified task with a computer. 1 Creating a C++ Program created using an

More information

COIMBATORE EDUCATIONAL DISTRICT

COIMBATORE EDUCATIONAL DISTRICT COIMBATORE EDUCATIONAL DISTRICT REVISION EXAMINATION JANUARY 2015 STD-12 COMPUTER SCIENCE ANSEWR KEY PART-I Choose the Correct Answer QNo Answer QNo Answer 1 B Absolute Cell Addressing 39 C Void 2 D

More information

Chapter 2 THE STRUCTURE OF C LANGUAGE

Chapter 2 THE STRUCTURE OF C LANGUAGE Lecture # 5 Chapter 2 THE STRUCTURE OF C LANGUAGE 1 Compiled by SIA CHEE KIONG DEPARTMENT OF MATERIAL AND DESIGN ENGINEERING FACULTY OF MECHANICAL AND MANUFACTURING ENGINEERING Contents Introduction to

More information

Reserved Words and Identifiers

Reserved Words and Identifiers 1 Programming in C Reserved Words and Identifiers Reserved word Word that has a specific meaning in C Ex: int, return Identifier Word used to name and refer to a data element or object manipulated by the

More information