pascal user's guide - bull on-line support...

92
PASCAL User's Guide DPS7000/XTA NOVASCALE 7000 Languages: PASCAL REFERENCE 47 A2 52UL 01

Upload: nguyendiep

Post on 18-Jul-2018

335 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL

User's Guide

DPS

7000/XTA

NO

VASC

ALE

7000

Languages: PASCAL

REFERENCE47 A2 52UL 01

Page 2: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION
Page 3: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

DPS7000/XTANOVASCALE 7000

PASCALUser's Guide

Languages: PASCAL

Decembre 1986

BULL CEDOC

357 AVENUE PATTON

B.P.20845

49008 ANGERS CEDEX 01

FRANCE

REFERENCE47 A2 52UL 01

Page 4: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

The following copyright notice protects this book under Copyright laws which prohibit such actions as, but notlimited to, copying, distributing, modifying, and making derivative works.

Copyright Bull SAS 1986

Printed in France

Suggestions and criticisms concerning the form, content, and presentation of thisbook are invited. A form is provided at the end of this book for this purpose.

To order additional copies of this book or other Bull Technical Publications, youare invited to use the Ordering Form also provided at the end of this book.

Trademarks and Acknowledgements

We acknowledge the right of proprietors of trademarks mentioned in this book.

Intel® and Itanium® are registered trademarks of Intel Corporation.

Windows® and Microsoft® software are registered trademarks of Microsoft Corporation.

UNIX® is a registered trademark in the United States of America and other countries licensed exclusively throughthe Open Group.

Linux® is a registered trademark of Linus Torvalds.

The information in this document is subject to change without notice. Bull will not be liable for errors containedherein, or for incidental or consequential damages in connection with the use of this material.

Page 5: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

47 A2 52UL Rev01 iii

Table of Contents

1. Introduction ........................................................................................................... 1-1

1.1 OBJECTIVES OF THIS MANUAL .............................................................................. 1-1

1.2 INTENDED READERSHIP ......................................................................................... 1-1

1.3 STRUCTURE OF THIS MANUAL. ............................................................................. 1-2

1.4 BIBLIOGRAPHY ......................................................................................................... 1-2

2. Compilation ........................................................................................................... 2-1

2.1 JOB CONTROL LANGUAGE (JCL) .......................................................................... 2-1

2.1.1 Parameters SOURCE, INLIB, INLIBn and INFILE. .................................................. 2-32.1.2 Parameter CULIB ....................................................................................................... 2-42.1.3 Parameters PRTFILE and PRTLIB ........................................................................... 2-42.1.4 Parameters LIST, NLIST, EXPLIST and NEXPLIST ................................................ 2-52.1.5 Parameters XREF and MAP ...................................................................................... 2-52.1.6 Parameter NOBJ ........................................................................................................ 2-52.1.7 Parameters NWARN and NOBSERV ........................................................................ 2-52.1.8 Parameters LEVEL, LFATAL and LOBSERV .......................................................... 2-62.1.9 Parameters XLN and ILN .......................................................................................... 2-62.1.10 Parameter NCHECK .................................................................................................. 2-62.1.11 Parameters ROUND ................................................................................................... 2-62.1.12 Parameter SILENT ..................................................................................................... 2-72.1.13 Parameter ASCII ........................................................................................................ 2-72.1.14 Parameter CODE ....................................................................................................... 2-7

2.2 INVOKING THE PASCAL COMPILER IN GCL MODE ............................................. 2-9

2.3 INTERACTIVE COMPILATION REPORT .................................................................. 2-10

Page 6: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

Pascal User's Guide

iv 47 A2 52UL Rev01

2.4 COMPILATION LISTING ............................................................................................ 2-11

2.5 LISTINGS ILLUSTRATING THE STAGES LEADING TO THE EXECUTION OF A PASCAL PROGRAM .............................................................................................. 2-13

3. Separate Compilation ........................................................................................ 3-1

3.1 GENERAL NOTES ..................................................................................................... 3-1

3.2 IMPORT AND EXPORT DIRECTIVES ....................................................................... 3-2

3.3 CALLS BETWEEN LANGUAGES BY THE EXTERNAL DIRECTIVE ....................... 3-3

3.4 RESTRICTIONS AND CHECKS ................................................................................. 3-4

3.4.1 Restrictions ................................................................................................................ 3-43.4.2 Checks ........................................................................................................................ 3-4

4. Linker ....................................................................................................................... 4-1

4.1 GENERAL FORM ....................................................................................................... 4-1

4.1.1 Parameters Program-name and ENTRY .................................................................. 4-14.1.2 Parameter INLIB ........................................................................................................ 4-14.1.3 Parameter OUTLIB .................................................................................................... 4-14.1.4 Parameter PRTLIB ..................................................................................................... 4-2

4.2 SEPARATE COMPILATION ....................................................................................... 4-3

4.2.1 Error Messages ......................................................................................................... 4-4

4.3 PARTICULAR CASES ................................................................................................ 4-5

4.3.1 File Manipulation ....................................................................................................... 4-54.3.2 Non-dynamic Large Variables .................................................................................. 4-54.3.3 Manipulation of Large Dynamic Objects ................................................................ 4-6

5. Treatment of Files ............................................................................................... 5-1

5.1 PASCAL FILES AND GCOS FILES ........................................................................... 5-1

Page 7: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

Table of Contents

47 A2 52UL Rev01 v

5.2 ALLOCATION OF FILES BY JCL .............................................................................. 5-2

5.2.1 Determining RECSIZE ............................................................................................... 5-25.2.2 Allocation of Sequential Files (Example) ................................................................ 5-35.2.3 Allocation of TEXT-Types Files (Example) ............................................................. 5-35.2.4 Allocation of Relative Files (Example) .................................................................... 5-4

5.3 DYNAMIC ALLOCATION ........................................................................................... 5-5

5.4 RESTRICTIONS ON USE OF PREDEFINED FUNCTIONS ...................................... 5-5

5.5 FILE CONNEXION ...................................................................................................... 5-6

5.5.1 Utilization ................................................................................................................... 5-65.5.2 Dynamic Connection ................................................................................................ 5-75.5.3 Connexion of Requested Files ................................................................................. 5-75.5.3.1 Interactive mode.......................................................................................................... 5-75.5.3.2 Batch mode ................................................................................................................. 5-8

5.5.4 Connexion of File to Terminal .................................................................................. 5-85.5.4.1 Utilization of $TERMINAL............................................................................................ 5-85.5.4.2 Retrying a particular error............................................................................................ 5-85.5.4.3 Management of EOLN on TEXT Files ........................................................................ 5-10

6. Execution ................................................................................................................ 6-1

6.1 ACTIVATION .............................................................................................................. 6-1

6.2 EXTERIOR INTERFACES .......................................................................................... 6-2

6.2.1 Requested Procedure STOP (n) ............................................................................... 6-26.2.2 Requests ARGC/ARGV ............................................................................................. 6-2

6.3 EXECUTION ERRORS ............................................................................................... 6-3

6.3.1 Errors Within the Program ....................................................................................... 6-36.3.1.1 Hardware Exceptions .................................................................................................. 6-36.3.1.2 Software Exceptions.................................................................................................... 6-4

6.3.2 Errors in the RTP ....................................................................................................... 6-56.3.3 Suppression of Checks on Execution. .................................................................... 6-6

7. Performance of Generated Code .................................................................. 7-1

7.1 MEMORY SPACE ....................................................................................................... 7-1

Page 8: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

Pascal User's Guide

vi 47 A2 52UL Rev01

7.2 EXECUTION ............................................................................................................... 7-1

Appendices

A. Some Characteristics of the PASCAL COMPILER 12.00 on DPS 7 A-1

B. System Error Messages ................................................................................... B-1

B.1 PAS00. (VV.NN) SUMMARY FOR <PROGRAM-NAME> .......................................... B-1

B.2 PAS01. OPEN PRTLIB. LISTING WILL BE ON SYSOUT ........................................ B-2

B.3 PAS02. OPEN PRTFILE. LISTING WILL BE ON SYSOUT ...................................... B-2

B.4 PAS03. OPEN INLIB. RC = <RETURN-CODE> ........................................................ B-3

B.5 PAS04. OPEN CULIB. NO OBJECT CODE PRODUCED. ........................................ B-3

B.6 PAS05. BUILD INLIB. RC = <RETURN-CODE> ....................................................... B-4

B.7 PAS06. OPENS INLIB FOR: MEMBER-NAME. RC = <RETURN-CODE> ............... B-4

B.8 PAS07. OPENS PRTLIB FOR: <PROGRAM-NAME-L>. .......................................... B-5

B.9 PAS08. CLOSES INLIB FOR: <MEMBER-NAME>. RC=<RETURN-CODE> ........... B-5

B.10 PAS09. CLOSES PRTLIB FOR: <PROGRAM-NAME_L>. RC=<RETURN-CODE> B-6

B.11 PAS11. CLOSE CULIB. RC = <RETURN-CODE> .................................................... B-6

Page 9: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

Table of Contents

47 A2 52UL Rev01 vii

B.12 PAS12. CLOSE INLIB. RC = <RETURN-CODE> ...................................................... B-7

B.13 PAS13. CLOSE SYSOUT. RC = <RETURN-CODE> ................................................. B-7

B.14 PAS13. CLOSE PRTLIB. RC= <RETURN-CODE>. .................................................. B-8

B.15 PAS15. PUT ON SYSOUT. RC = <RETURN-CODE> ............................................... B-8

B.16 PAS15. PUT ON PRTLIB. RC = <RETURN-CODE> ................................................. B-9

B.17 PAS16. GET INLIB FOR: <MEMBER-NAME>. RC=<RETURN-CODE> .................. B-10

B.18 PAS17. OPENS CULIB WORK MEMBER.<MEMBER-NAME>.RC=<RETURN-CODE> .............................................................................................. B-10

B.19 PAS18. OPENS CULIB OLD_MEMBER:<MEMBER-NAME>.RC=<RETURN-CODE> .............................................................................................. B-11

B.20 PAS19. <PROGRAM-NAME> IS ALREADY AN ALIAS IN CULIB. .......................... B-11

B.21 PAS20. GET CULIB OLD MEMBER:<MEMBER-NAME>RC=<RETURN-CODE> .............................................................................................. B-12

B.22 PAS21.PUT CULIB WORK MEMBER:<MEMBER-NAME>RC=<RETURN-CODE> .............................................................................................. B-13

B.23 PAS22. STOW (ADD) CULIB ALIAS <ALIAS-NAME> TO <MEMBER-NAME> ....... B-14

B.24 PAS23. CLOSES (DELETE) CU MEMBER: <MEMBER-NAME> ............................. B-15

B.25 PAS24. CLOSES CULIB WORK MEMBER: <MEMBER-NAME> ............................ B-15

B.26 PAS25. STOW (DELETE) CULIB ALIAS: <ALIAS-NAME>OF<MEMBER-NAME> .................................................................................................... B-16

B.27 PAS27. PUT ON SYSOUT LNERR. RC = <RETURN-CODE> .................................. B-16

B.28 PAS27. PUT ON PRTLIB LNERR. RC = <RETURN-CODE> .................................... B-17

B.29 PAS28. CHNAME CULIB FROM WORK: <MEMBER-NAME-1> TO ....................... B-17

Page 10: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

Pascal User's Guide

viii 47 A2 52UL Rev01

B.30 PAS30. VMMACC WORK. RC = <RETURN-CODE> ................................................ B-18

B.31 PAS31. VMFOP WORK. RC = <RETURN-CODE> .................................................... B-18

B.32 PAS32. VMFCL WORK. RC = <RETURN-CODE> .................................................... B-18

B.33 PAS33. OPEN SYSOUT. RC = <RETURN-CODE> ................................................... B-19

B.34 PAS35. SEGSIZE FCB-POOL. RC = <RETURN-CODE> ......................................... B-19

B.35 PAS39. SOURCE MEMBER = <MEMBER-NAME>IS NOT IN PAS LANGUAGE ...................................................................................... B-20

B.36 PAS40. PUT SYSOUT. RC = <RETURN-CODE> ...................................................... B-20

B.37 PAS42. TYPE OF INLIB SHOULD BE SL ................................................................. B-21

B.38 PAS43. TYPE OF CULIB SHOULD BE CU. .............................................................. B-21

B.39 PAS44. THE OF PRTLIB SHOULD BE SL. ............................................................... B-22

B.40 PAS45. PROCESSING OF <PROGRAM-NAME>: COMPILER GIVES UP IN:<PHASE-NAME> ........................................................................................................ B-22

B.41 PAS46. PROCESSING OF <PROGRAM-NAME>: COMPILER ABORTS IN:<PHASE-NAME> ........................................................................................................ B-23

B.42 PAS47. VMM TABLE OVERFLOW ............................................................................ B-23

B.43 PAS48. UPDATE: ERRONEOUS LENGTH ............................................................... B-23

B.44 PAS56. CALLERS ARE <ADDRESS VALUES> ........................................................ B-24

C. Syntax of GCOS Files ........................................................................................ C-1

C.1 SYNTAX OF A FILE LITERAL ................................................................................... C-1

C.2 SYNTAX OF A VOLUME LITERAL ............................................................................ C-2

Page 11: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

Table of Contents

47 A2 52UL Rev01 ix

Illustrations

Figures

2-1 Format of PASCAL Statement .................................................................................... 2-22-2 Example of call by GCL Menu..................................................................................... 2-9

Tables

3-1 Correspondence of Type Between PASCAL and Other Languages........................... 3-35-1 Restrictions on Data Format Between TEXT and non-TEXT Files ............................. 5-15-2 Allocation Rules For Basic Types Treated By the Compiler........................................ 5-25-3 Summary of Treatment Done When Allocated Size of PASCAL File Component

is Different to RECSIZE of Physical File ..................................................................... 5-2

Page 12: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

Pascal User's Guide

x 47 A2 52UL Rev01

Page 13: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

47 A2 52UL Rev01 1-1

1. Introduction

1.1 OBJECTIVES OF THIS MANUAL

The purpose of this manual is to explain the working of the DPS 7 PASCAL compiler(PASCAL 12.00) under the GCOS 7 operating system.

Three levels of language are treated:

1) The PASCAL language specified by the ISO 7185 norm, including the adjustablearray parameters.

2) The PASCAL SOL language which incorporates specifications complementary tothe ISO norm.<

3) The GCOS7 PASCAL language which allows for a certain number ofsupplementary facilities.

The selection of which level of the language is to be used is done via the LEVELparameter in the JCL (See Section 2).

The formal specifications of these three levels of language are defined in the PASCALReference Manual (see paragraph 1-4).

In brief, the Run Time Package (RTP) version 12.00 concerns the following:

1) The totality of the PASCAL ISO specifications.

2) The PASCAL SOL complementary specifications excepting the FSIZE predefinedfunction.

3) Certain additional specific features of GCOS7 PASCAL defined in the Appendix ofthe PASCAL Reference Manual.

1.2 INTENDED READERSHIP

This manual is intended for PASCAL programmers.

Page 14: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

1-2 47 A2 52UL Rev01

1.3 STRUCTURE OF THIS MANUAL.

Section 2 describes the use of the PASCAL compiler.

Section 3 describes separate compilation.

Section 4 defines the LINKER which is used to produce an executableprogram from one or several compile units.

Section 5 deals with file management.

Section 6 describes the execution of PASCAL programs.

Section 7 provides some notes on the time and memory spacerequired for execution.

1.4 BIBLIOGRAPHY

This manual should be consulted for the language specification:

PASCAL Reference Manual.............................................................................47 A2 51UL

The following manuals are helpful for program preparation:

Library Maintenance User Guide .....................................................................47 A2 02UP

Library Maintenance Reference Manual ..........................................................47 A2 01UP

JCL User Guide................................................................................................ 47 A2 12UJ

JCL Reference Manual .................................................................................... 47 A2 11UJ

LINKER User Guide .........................................................................................47 A2 10UP

PCF User Guide...............................................................................................47 A2 15UP

IOF Terminal User's ManualPart 1: Introduction to IOF................................................................................ 47 A2 01UJ

IOF Part 2 GCL ................................................................................................ 47 A2 02UJ

IOF Part 3 Processor Commands.................................................................... 47 A2 03UJ

IOF Part 4 Appendices..................................................................................... 47 A2 04UJ

Data Management Utilities User Guide............................................................47 A2 05UF

Page 15: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

47 A2 52UL Rev01 2-1

2. Compilation

This section describes the use of the PASCAL compiler and provides a detaileddescription of the calling parameters.

2.1 JOB CONTROL LANGUAGE (JCL)

The extended JCL statement PASCAL (abbreviation PAS) is used to execute thePASCAL compiler. In general, the latter will generate a compile unit and a printed listing.The compile unit may be stored in a temporary file or in a permanent library.The linker (See Section 4) and the execution of the program (See Section 6) must berequested by the user at a later stage.

Figure 2-1. gives the format of the PASCAL statement. Please note that thoseparameters underlined in this figure are the implicit values adopted by the compiler whenthe parameter is not specified.

Page 16: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

2-2 47 A2 52UL Rev01

{PASCAL}{PAS}

{SOURCE = *input_enclosure_name }{ [{INLIB = input_library}] }{SOURCE = {mb_name [{INLIB1 }] }{ {(mb_name [, mb_name] ...) } [{INLIB2 }] }{ [{INLIB3 }] }{ }{ {INLIB = input_library} }{ {INLIB1 } }{ SOURCE {(star_name [, star_name] ...) } {INLIB2 } }{ {INLIB3 } }{ }{INFILE = sequential_input_file }

[ {output-library}][ CULIB = { }][ {TEMP }]

{ PRTFILE = print_file }{ {print_library }{ PRTLIB = { }][ {TEMP }]

[{ LIST }] [{ EXPLIST }] [{ XREF }] [{ MAP }][{ NLIST }] [{ NEXPLIST }] [{ NXREF }] [{ NMAP }]

[{ OBJ }][{ NOBJ }]

[{ WARN }] [{ OBSERV }][{ NWARN }] [{NOBSERV }]

[{ ISO }]LEVEL = [{ SOL }] [{ LFATAL }] [{ GCOS }] [{ LOBSERV }]

[{ XLN }] [{ ROUND }][{ ILN }] [{ NROUND }]

[{ CHECK }] [ { OBJA }[{ NCHECK }] [ CODE = { OBJCD }]

[SILENT];

Figure 2-1. Format of PASCAL Statement

NOTE: The terms, 'input_library', 'sequential_input_file', 'output_library', 'print_file','print_library', correspond to descriptions of files or libraries, the completespecification of which is given in the JCL Reference Manual.

The input_library designates an SL library created by:

LIBALLOC SL, (input_library, SIZE = n), COMPACT, MEMBERS=n;

and whose members are maintained by:

LIBMAINT SL, LIB = input_library...;

or EDIT LIB = input_library;

Members containing PASCAL source code may be in SARF or SSF format; in the lattercase, they must be of type PAS.

Each member may contain only one PASCAL program.

Page 17: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

Compilation

47 A2 52UL Rev01 2-3

• The sequential_input_file is a sequential file on disk or tape which was built byLIBMAINT using the OUTFILE clause. The source code of one or several programsmay be found in this file.

2.1.1 Parameters SOURCE, INLIB, INLIBn and INFILE.

These parameters are used to specify the file or the library member(s) which contain theprogram(s) to be compiled.

a) SOURCE = *input_enclosure_name

Specifies that the program to be compiled is found in an input_enclosure namedinput_enclosure_name.

Example:

PASCAL SOURCE = *T;$INPUT T, TYPE = DATASSF;PROGRAM VIDE;BEGIN;END.$ENDINPUT;

b) SOURCE = mb INLIB = product_sllib;

Specifies that the program to be compiled is found in the member mb of the catalogedlibrary product_sllib.

c) LIB SL, INLIB1 = input_library_1, INLIB2 = input_library_2, INLIB3 = input_library_3;

PASCAL SOURCE = mb;

Specifies that the program to be compiled is found in a member mb which may belocated in one of the three INLIB's specified in a preceding LIB SL instruction. Thenormal search rules apply, i.e., the compiler searches first for a member named mb inINLIB1; if it does not find it, it continues the search in INLIB2 then INLIB3 if necessary.The unit compiled is the first one found.

With the same LIB SL instruction active,

PASCAL SOURCE = mb INLIB2;

specifies that the program to be compiled is found in the member mb of INLIB2, i.e., thelibrary described by input_library_2.

In this case there is no search in the libraries described by input_library_1 andinput_library_3.

d) SOURCE = (mb1, mb2, mb3)...

Specifies that those are three programs to be compiled which are found in the unitsnamed respectively mb1, mb2 and mb3.

Page 18: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

2-4 47 A2 52UL Rev01

The specification of the INLIB(s) is done in the same way as in (b) and (c).

e) SOURCE = (mb* xx*yy) INLIB1

Specifies that the programs to be compiled are found in the members of the libraryattached to INLIB1 and whose names either begin with mb (for example; mb mb1mb_yy) or begin with xx and end with yy (for example: xxyy xx_yy xxTOTOyy).

f) INFILE = (PASCALFILE, DVC = MT/T9/D1600, MD = Atape)

Specifies that the source code to be compiled is found in the file PASCALFILE on thetape Atape.

NOTE: The same search rules for source apply to INCLUDE'S.

2.1.2 Parameter CULIB

This parameter indicates the library in which the compile unit results must be stored. Inthis parameter, you may use a library-file description (output_library) or TEMP.

If TEMP is indicated, the compile unit will be stored as a temporary member of thesystem library.

NOTE: output_library designates a CU type library created by:

LIBALLOC CU, (output_library, SIZE = n), MEMBERS = m;

For each program compiled without error, the compiler generates a CU (Compile Unit)containing the object code produced; the name of the CU created is the name of thecompiled program.

2.1.3 Parameters PRTFILE and PRTLIB

These two parameters are optional. The default value depends on the execution modeof the compiler:

• in Batch mode, the default is PRTFILE = SYS.OUT(and the listing is printed out at the end of the compilation job)

• in Interactive mode, the default is PRTLIB = TEMP.

NOTE: - print_file designates a sequential file on disk or tape into which thecompiler writes the output listing.

- print_library designates an SL type library created by:

LIBALLOC SL, (print_library, SIZE = n), COMPACT, MEMBERS =m;

For each program compiled, the compiler creates a unit containing the output listing. Thename of the unit created is that of the program suffixed by _L. (The name of the

Page 19: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

Compilation

47 A2 52UL Rev01 2-5

program, and not that of the unit containing it, is used to name the CU and the listingunit.)

Thus, compilation of the program whose header is:

PROGRAM PP;

generates:

(a) if no error, a CU named PP(b) if PRTLIB is specified, a unit named PP_L.

2.1.4 Parameters LIST, NLIST, EXPLIST and NEXPLIST

NLIST is used to suppress the listing of source programs. NEXPLIST is used tosuppress the listing of lines of source program which were inserted by the INCLUDEcommand. Note that lines inserted by LIBMAINT or EDIT and not renumbered will not belisted either in this case.

2.1.5 Parameters XREF and MAP

The parameters XREF and MAP are used respectively to obtain the cross-reference andthe correspondance table showing line numbers < = > displacements of the first byte ofthe corresponding code generated, and the list of external objects for the LINKER.

2.1.6 Parameter NOBJ

This parameter is used to do a compilation reduced to syntactic and semantic analysis,without generation of object code.

2.1.7 Parameters NWARN and NOBSERV

These parameters inhibit the sending of warnings (errors of severity 2) and observations(errors of severity 1).

Page 20: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

2-6 47 A2 52UL Rev01

2.1.8 Parameters LEVEL, LFATAL and LOBSERV

These parameters are used to verify that the program compiled is written with thedesired level of language.

If LEVEL = SOL was specified, the compiler sends a diagnostic once it detects that aGCOS7 extension was used. By default, this diagnostic is fatal, i.e., no object code isgenerated.

If LOBSERV was specified, the object code will be generated nonetheless; extensionutilization will be signalled by observations.

2.1.9 Parameters XLN and ILN

By default the compiler numbers the program source lines, starting from 1 and goingfrom 1 by 1. This constitutes the Internal Line Number (ILN) which is then used in thetable of cross-references and in the sending of error diagnostics at execution.

Example:

PSR 2: IFN: file 1, FILE NOT CONNECTED AT ILN 25.

The parameter XLN indicates that the table of cross-references and the code/linecorrespondance table quote the external line number, i.e., that used with the LIBMAINTor EDIT utilities.

2.1.10 Parameter NCHECK

This parameter is used in order not to generate the code corresponding to the differentchecks demanded by the ISO or SOL norms.

2.1.11 Parameters ROUND

The parameter ROUND indicates that operations performed on real numbers should beexecuted with rounding.The result is increased convergence of scientific calculations at the cost of a reduction inspeed, since instructions with rounding use more time.

Page 21: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

Compilation

47 A2 52UL Rev01 2-7

2.1.12 Parameter SILENT

SILENT is used in interactive mode only. It indicates that only the minimal compilationreport should appear at the console (see paragraph 2-3)

2.1.13 Parameter ASCII

Tells the compiler that characters and character strings are coded in ASCII. This optionfacilitates the sharing of applications which use this type of coding.

The ASCII option is automatically set if the source contains a $OPTIONS EC+ directive.

NOTE: Use of the ASCII option may lead to a degradation of the code generated bythe compiler, as th DSP 7 is an EBCDIC machine.

WARNING

File reading and file writing are always performed in EBCDIC, even ifASCII is specified.

2.1.14 Parameter CODE

The code parameter specifies the class of the target computer for which code will begenerated. The different classes are:

• Class A: DPS 7/X5 X07 and 64/DPS• Class C: DPS 7/X0, X17, X27• Class C: DPS 7/1017, 1027.

If CODE = OBJA is used, the program can be run on a class A or C computer.

If CODE = OBJCD is used, the program can be run on a class C or D computer.

When the PASCAL compiler runs under GCOS 7-V3A, the default value is OBJA.

When the PASCAL compiler runs under GCOS 7-V3B, the default value is OBJCD.

A program compiled with CODE = OBJA and executed on a class D computer may leadto a loss of precision on floating point results.

A program compiled with CODE = OBJCD and executed on a class A computer maystop with the exception:"ILLEGAL FIELD INSTRUCTION".

The LIST command of the LIBMAINT CU processor may be used to get information onthe compatibility class of a compiled unit. It must be interpreted as follows:

Page 22: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

2-8 47 A2 52UL Rev01

CU Class

0 or none1223 0

A-C compatible

yesyesnono

C-D compatible

yesnoyesno

Page 23: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

Compilation

47 A2 52UL Rev01 2-9

2.2 INVOKING THE PASCAL COMPILER IN GCL MODE

In GCL mode, the PASCAL compiler is invoked by the use do a GCL procedure. Thisprocedure reproduces the JCL mode parameters previously described, but with theusual GCL conventions (file literal, boolean, etc...)

Example:

PASCAL MB1 INLIB = PASCALLIB$CAT CHECK = 0

Furthermore, when the profile parameter MENU is set to 1, the choice of parametersmay be given in a menu, with corresponding help texts.

An example of a call by menu is given below.

NOTE: All following examples are based on JCL mode.

1/2 PASCAL

compile PASCAL program(s) -->:

SOURCE source program names totoINLIB input library (default is #SLIB)

CULIB resulting CU Library (defaut is #CLIB)

LIST produce a listing ? 1MAP produce a data map ? 0XREF produce a cross reference table ? 0WARN report warnings ? 1OBSERV report observations ? 1ROUND rounded arithmetic ? 0EXPLIST list expanded source program ? 0LEVEL GCOS 7, ISO, SOL GCOS 7SILENT silent mode ? 0

+++

2/2 PASCAL --->:

commpile PASCAL program(s)

PRTLIB listing library (default is #PRTLIB)

INFILE

Figure 2-2. Example of call by GCL Menu

Page 24: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

2-10 47 A2 52UL Rev01

2.3 INTERACTIVE COMPILATION REPORT

For each program compiled, a line containing identification (date, file name) is outputfirst.

If an error is detected, it is signalled at the instant of discovery. Then at the end ofcompilation the text of erroneous lines is printed following the message label. A cursormay be found pinpointing the column where the error was detected.

There follows a resume of the compilation. It indicates on the one hand whether errorswere detected, and on the other hand whether a compile unit was produced.

When the SILENT option is used (see paragraph 2.1.12), only this line of the resume isoutput at the terminal. In the case of a severe system error only (input file not found, orlisting file impossible to open, etc.) an error message appears at the terminal. However,no user error is displayed. Note that the latter messages may be consulted in the listingfile if required.

The influence of the SILENT option is shown further on, followed by an example of theentering of a little program with its compilation, linking and execution in interactive mode.

S: PASCAL SOURCE = QUITE_RIGHT INLIB = TEMP;>>>10:52 PASCAL 11.00 37 -22 10:52:48 FEB 02, 1984 X2651.21 COMPILATION OF ;002651.TEMP.SLLIB: QUITE_RIGHT ERROR 01 * AT ILN 4:INACCESSIBLE CODE HAS BEEN DELETED. 1 ERROR # 4 IF FALSE THEN I:=0; # * # 1 C1 INACCESSIBLE CODE HAS BEEN DELETED. PAS--(11.00) Summary for QUITE_RIGHT: *1 ,cu produced.<<<10:53

S: PASCAL SOURCE = QUITE_RIGHT INLIB = TEMP,SILENT; PAS00(11.00) Summary for QUITE_RIGHT: *1 ,cu produced.

S: EDIT;>>>15:39 EDIT 10.02R: AI: PROGRAM SHORT_EXAMPLE (INPUT, OUTPUT);I: VAR I : INTEGER;I: BEGINI: READLN (I);I: WRITFLN ("ECHO:",I);I: END.I: OFR: W(PAS)SHORT_EXAMPLER: Q<<<15:40S: PASCAL SOURCE=SHORT_EXAMPLE INLIB=TEMP;>>>15:43 PASCAL 11.00 37 -22 15:43:12 JAN 30, 1984 X176 .32 COMPILATION OF; 000176.TEMP.SLLIB:SHORT_EXAMPLE PAS00(11.00) Summary for SHORT_EXAMPLE: No error, cu produced.<<<15:43S: LINKER SHORT_EXAMPLE;>>>15:45 LINKER 82.00WORKING ON : SHORT_EXAMPLE LK00.(82.00) SUMMARY FOR SHORT_EXAMPLE NO ERROR DETECTED. OUTPUT MODULEPRODUCED<<<15:45S: STEP SHORT_EXAMPLE FILE=TEMP;S: ENDSTEP;I: 34ECHO: 34

Page 25: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

Compilation

47 A2 52UL Rev01 2-11

2.4 COMPILATION LISTING

For each program compiled, a listing is produced consisting of:

• an identification banner

• the date and name of the file

• the list of active options (requested by the user or taken by default).

There follows the body of the listing, consisting of 3 optional parts:

a) The listing of compiled source; the $INCLUDE commands are replaced by the textincluded (unless the NEXPLIST option is specified in the JCL).

The first column (XLN) indicates the external source line number, i.e., the SSF linenumber used in the EDIT utility upon the updating of the source program.

The second column (ILN) indicates the internal source line number produced by thecompiler. This is the number used in the cross-reference table and in the errormessages sent by the Run-Time Package (RTP).

Errors detected at compilation are inserted in this listing.

The source line containing the error, the line containing the index to the error, andthe line giving the corresponding message are, all three, marked by the # character,which facilitates searching for them whether by the SCANNER or by the EDIT utilitywhen the listing has been put in a library member by the use of the option PRTLIB.

When the option NLIST is requested, only the erroneous lines are listed with theircorresponding messages.

b) (If the option MAP is requested) the list of definitions and references to externalobjects (SYMDEF/SYMREF) corresponding to calls to the RTP and to theIMPORT/EXPORT.

The table of allocation of the Internal Segment Numbers (ISN) and their size.

The listing of the tables of correspondance between the internal line number of thesource instruction and the address of the first byte of the object code generated forthis instruction.

The first table is given in the order of source lines, the second in the order of thecode generated.

Page 26: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

2-12 47 A2 52UL Rev01

c) (If the option XRCF is requested) the listing of cross-references which give the listof symbols sorted in alphabetical order.

For each symbol we have:

(i) its class: constant, type, variable, etc.

(ii) its type: integer, boolean, etc.

(iii) the name of the block containing the definition of this symbol or the name ifthe RECORD if it is a field.

(iv) the line number of its definition and/or its declaration.

(v) the characteristics or attributes of this symbol:

- for a constant we have its value- for a procedure or a function we may find the attributeEXTERNAL or RECURSIVE or REQUIRED- for a variable we find the address of its allocation.

This address is specified in the format accepted by the utility ProgramCheckout Facility (PCF) in ''effective address'' mode.(** NOT ALLOC ** indicates that the variable is not used, therefore notallocated.)

(vi) The indication 'NO REF' if this symbol is not referenced or the indication 'REF'followed by the list of line numbers where this symbol is referenced.When there are several references to a symbol on the same line, this linenumber is followed by the character '+'.

Page 27: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

Compilation

47 A2 52UL Rev01 2-13

2.5 LISTINGS ILLUSTRATING THE STAGES LEADING TO THE EXECUTIONOF A PASCAL PROGRAM

The following pages show an example of a PASCAL listing with the options MAP andXREF, followed by the listings of the linker and of the execution of the generated program.

In the Appendices you will also find:

• limits of the compiler (Appendix A)

• messages provided in the Job Occurrence Report (JOR) in the case of a fatal errorinterrupting the compilation (Appendix B).

PASCAL SOURCE=SAMPLE_PASCAL INLIB=SYS.RO.SLLIB MAP XREF LEVEL=GCOS,PRTFILE=(SYS.RO.SLLIB,MB=SAMPLE_PASCAL_L);LINK SAMPLE_PASCAL COM='LIST=S',PRTFILE=(SYS.RO.SLLIB,MB=SAMPLE_PASCAL_K);************************************************************************************************************************************************************************************************ GC0S7 ******** P A S C A L ******** VERSION: 11.00 DATED: FEV 15,1984 *********SAMPLE_PASCAL_L****************************************************************** 17***************************************************************************************************

ACTIVE OPTIONS ARE :OBJ, WARN, OBSERV, CHECK, MAP, XREF, LIST, EXPLIST, ILN, LEVEL=GCOS, LFATAL 14:09:36 APR 02, 1984 X2330.3 COMPILATION OF SYS.RO.SLLIB: SAMPLE_PASCAL

1 PROGRAM sample_pascal (input, output); 2 TYPE 3 operand = integer; 4 VAR 5 op1, op2 : operand; 6 operator, stop_it : char; 7 result : integer; 8 FUNCTION power (x, y : integer) : integer; 9 VAR 10 i, value : integer; 11 BEGIN 12 IF x = 0 THEN value := 0 ELSE 13 IF x > 0 THEN value := 1 ELSE value := -1; 14 FOR i := 1 TO y 15 DO value := value * x; 16 power := value 17 END; 18 BEGIN 19 REPEAT 20 readln (op1, operator, op2); 21 IF operator IN ['+','-','*','/','^'] 22 THEN BEGIN 23 CASE operator OF 24 '+' : result := op1 + op2; 25 '-' : result := op1 - op2; 26 '*' : result := op1 * op2; 27 '/' : result := op1 DIV op2; 28 '^' : result := power (op1, op2) 29 END; 30 writeln ('=', result); 31 END 32 ELSE writeln ("I don'"t know this operator (",operator,')'); 33 readln (stop_it) 34 UNTIL (stop_it = '/'); 35 END.

Page 28: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

2-14 47 A2 52UL Rev01

SAMPLE_PASCAL / 0 08/ PROCEDUREH_PSR_DCOM / 1 00/ DATAINPUT / 2 00/ DATAOUTPUT / 3 00/ DATAERROR / 4 00/ DATA 5 SYMDEFS GENERATED: 4 REFERENCE DATA. 1 REFERENCE PROCEDURES.THE ADDRESSES ABOVE REFER TO INTERNAL SEGMENT NUMBERS (ISN'S) WHICH ARE MAPPED INTOSEGMENT TABLE NUMBERS (STN'S) AND SEGMENT TABLE ENTRIES (STE'S) BY THE STATIC LINKER.

/ 0 0C/= / 0 10/ SEGMENT NUMBERH_PSR_EGET / 0 20/ PROCEDUREH_PSR_EREADLN / 0 24/ PROCEDUREH_PSR_EWRITELN / 0 28/ PROCEDUREH_PSR_EOPEN_IO / 0 2C/ PROCEDUREH_PSR_ECLEAR_FD / 0 30/ PROCEDUREH_PSR_EFILL_BUF / 0 34/ PROCEDUREH_PSR_DCOM / 0 38/ DATAINPUT / 0 3C/ DATAOUTPUT / 0 40/ DATAERROR / 0 44/ DATA / 0 48/= / 5 00/ SEGMENT NUMBER / 0 08/= E/ 0 144/ SEGMENT NUMBER / 0 4C/= / 0 252/ SEGMENT NUMBER / 0 94/= / 0 266/ SEGMENT NUMBER / 0 84/= / 0 27A/ SEGMENT NUMBER / 0 98/= / 0 28E/ SEGMENT NUMBER / 0 90/= / 0 2AC/ SEGMENT NUMBERINPUT / 1 34/ DATAOUTPUT / 1 38/ DATAERROR / 1 3C/ DATA ** 21 SYMREFS GENERATED: 7 REFERENCE DATA. 6 REFERENCE PROCEDURES. 8 SEGMENTNUMBERS.THE ADDRESSES ABOVE REFER TO INTERNAL SEGMENT NUMBERS (ISN'S) WHICH ARE MAPPED INTOSEGMENT TABLE NUMBERS (STN'S) AND SEGMENT TABLE ENTRIES (STE'S) BY THE STATIC LINKER.

0 : LINKAGE [ 10] B4 ( 180) 0 : CODE [ C4] 37A ( 890) 1 : INTERFACE WITH RUN TIME 4C ( 76) 2 : REQUIRED FILE 56 ( 86) 3 : REQUIRED FILE 56 ( 86) 4 : REQUIRED FILE 56 ( 86) 5 : STATIC VARIABLES 10 ( 16)

Page 29: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

Compilation

47 A2 52UL Rev01 2-15

ISN: 0 12:CA 12:D2 12:D8 12:DC 13:DC 13:E4 13:EA 13:EE 13:EE 13:F6 13:F6 14:F6 15:120 15:12C 16:130 17:13E 19:144 20:160 21:1C2 23:226 24:252 24:252 24:262 25:266 25:266 25:276 26:27A 26:27A 26:28A 27:28E 27:28E 27:2A8 28:2AC 28:2AC 29:2D8 30:2D8 32:33E 32:342 32:342 32:3D0 33:3D0 34:412 35:420 LOC:LINE LOC:LINE LOC:LINE LOC:LINE LOC:LINE LOC:LINE LOC:LINE LOC:LINE LOC:LINELOC:LINE

ISN: 0 C4:9 CA:12 D2:12 D8:12 DC:13 E4:13 EA:13 EE:13 F6:14 120:15 12C:15 130:16 13E:17 160:20 1C2:21 226:23 252:24 262:24 266:25 276:25 27A:26 28A:26 28E:27 2A8:27 2AC:28 2D8:30 33E:32 342:32 3D0:33 412:34 420:35

CHAR TYPE 1 REF: 6I LOCAL VAR INTEGER POWER 10 ?BR1.14 REF: 14INPUT LOCAL VAR TEXT SAMPLE_PASCAL 1 ?BR7.2C-> 00 NO REFINTEGER TYPE 1 REF: 3 7 8+ 10OPERAND TYPE INTEGER SAMPLE_PASCAL 3 REF: 5OPERATOR LOCAL VAR CHAR SAMPLE_PASCAL 6 ?BR7.38-> 08 REF: 20 21 23 32OP1 LOCAL VAR OPERAND SAMPLE_PASCAL 5 ?BR7.38-> 00 REF: 20 24 25 26 27 28OP2 LOCAL VAR OPERAND SAMPLE_PASCAL 5 ?BR7.38-> 04 REF: 20 24 25 26 27 28OUTPUT LOCAL VAR TEXT SAMPLE_PASCAL 1 ?BR7.30-> 00 NO REFPOWER FUNCTION INTEGER SAMPLE_PASCAL 8 REF: 16 28READLN PROCEDURE 1 REQUIRED REF: 20 33RESULT LOCAL VAR INTEGER SAMPLE_PASCAL 7 ?BR7.38-> 0C REF: 24 25 26 27 28 30SAMPLE_PASCAL PROGRAM 1 EXTERNAL NO REFSTOP_IT LOCAL VAR CHAR SAMPLE_PASCAL 6 ?BR7.38-> 09 REF: 33 34VALUE LOCAL VAR INTEGER POWER 10 ?BR1.18 REF: 12 13+ 15+ 16WRITELN PROCEDURE 1 REQUIRED REF: 30 32X PARAM VAR INTEGER POWER 8 ?BR1.04-> 00 REF: 12 13 15Y PARAM VAR INTEGER POWER 8 ?BR1.08-> 00 REF: 14

Page 30: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

2-16 47 A2 52UL Rev01

+ + + NO ERROR MESSAGES + + + OBJECT CODE PRODUCED

*****SAMPLE_PASCAL_L***********************************P*A*S*C*A*L****************************

************************************************************************************************************************************************************************************************ GCOS7 ******** L I N K E R ******** VERSION: 82.00 DATED: JAN 15,1984 ********SAMPLE_PASCAL_K************************************************************** 1********************************************************************************************************

*********************************** LINKER CONTROL STATEMENTS ******************************1 LIST=S ,

************************************TASK=MAIN***********************************************2 PROCESS OCCURRENCES : PO3 FATHER PROCESSES : NONE4 BASE 1ST PAGE NB.PAGES SH INITSIZE MAXSIZ5 STACK RING 0 8.13 NONE 0 3 0 40966 STACK RING 1 8.14 8.15 5 3 2048 163847 STACK RING 2 8.1B NONE 0 3 2048 163848 STACK RING 3 8.1C NONE 0 3 2048 163849 ENTRY POINT = SAMPLE_PASCAL LOCATION: 8.10.000008 IN CU: SAMPLE_PASCAL10 ===========================GROUP INFORMATION===============================================11 MINIMUM CONTROL MEMORY REQUIRED : 5376 MINIMUM USER MEMORY REQUIRED : 756812 FIXED SIZE SEGTS. CUMULATED SIZE: 7424 VAR SIZE SEGS CUMUL INITIAL SIZE: 624013 VAR SIZE SEGS CUMUL MAXIMAL SIZE: 278528 LOAD MODULE SIZE : 1874114 CONTROL SEGMENTS15 SEG NUM SEG NUM16 PGCR 9. 0 PCS 8. 017 NPCS 8. I ITS LIST 9. 218 TASK.DIR. 9. 3 DEBUGGING 9. 519 PG PCP S 9. 6 OPTION 9. 720 PGFECB 9. 8 DECB 9. 921 SEMPH. POOL 9. 0 SYMBMAP 9. 822 TERMINATION 9. 4 ASL2 9. 123 ASL3 8. 324 GLOBAL SEGMENTS25 SEGNAME SEG NUM CONTAINS26 __BLANK 8.12 LOCATION LOCATION27 H_PSR_DCOM 000000 INPUT 00004C28 OUTPUT 0000A2 ERROR 0000F829 __REFTAB 9. A LOCATION LOCATION30 H_PSR_EGET 000004 H_PSR_EREADLN 00000F31 H_PSR_EWRITELN 00001D H_PSR_EOPEN_IO 00002C32 H_PSR_ECLEAR_FD 00003B H_PSR_EFILL_BUF 00004833 SEGMENT LIST34 SEG.# IN CU.ISN TYPE SH RF RD WR EX WP EP G S SIZE MAXSIZE CONT.P.35 8. C PCS .D. 3 3 3 0 0 W 320 *36 8. I NPCS .D. 3 3 3 1 0 W 32 *37 8. 3 ASL3 .D. 3 3 1 0 0 W 16 32768 *38 8.10 SAMPLE_PASCAL.O C.L 3 3 3 3 3 E 1088 039 8.11 SAMPLE_PASCAL.5 .D. 3 3 3 3 3 W 16 040 8.12 __BLANK .D. 3 3 3 3 3 W 336 041 .....

Page 31: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

Compilation

47 A2 52UL Rev01 2-17

42 9. 0 PGCR CD. 2 3 3 0 3 W E 457643 9. 1 ASL2 .D. 2 3 1 0 0 W 80 3276844 9. 2 ITS LIST .D. 2 0 3 1 0 W 8045 9. 3 TASK.DIR. .D. 2 3 3 0 0 W 4846 9. 4 TERMINATION .D. 2 3 3 0 0 W S 9647 9. 5 DEBUGGING .D. 2 3 3 1 0 W 0 3276848 9. 6 PG PCP S .D. 2 0 1 0 0 W E 0 3276849 9. 7 OPTION .D. 2 2 3 3 0 W 0 3276850 9. 8 PGFECB .D. 2 3 1 0 0 W 0 3276851 9. 9 DECB .D. 2 3 3 1 0 W 0 3276852 9. A __REFTAB .D. 2 3 3 0 0 W 9653 9. B SYMBMAP .D. 2 3 3 1 0 14454 9. C SEMPH. POOL .D. 2 3 3 1 1 W S 59255 .....

===============================LIST Of CU (S) =============================================== SAMPLE_PASCAL INLIB CREATED 14:09:36 APA 02, 1984 BY: PAS_SOL 11.0

***************************************LINKAGE REPORT***************************************** NO ERRORS DETECTED ---------------------------

. OUTPUT MODULE PRODUCED ON LIBRARY ;102330.TEMP.LMLIB

NUMBER OF ITEMS PROCESSED ------------------------- - COMPILE UNITS 1 - SYMDEFS 5 ( PROC 1, DATA 4) - SYMREFS 13 ( PROC 0, DATA 13) - CALLED SYSDEFS 0 - NO OF CALL 0 - EXT.DATA NAMES 10 _ SEG.ENTRIES USED 510 (TYPE 2 255,TYPE 3 255) TYPE 2 VACANT 242 TYPE 3 VACANT 226 IN MAIN****************************************L*I*N*K*E*R**************************************************************************** END OF SESSION******************************************LASTPERCENTAGE OF SPACE USED 1

Page 32: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

2-18 47 A2 52UL Rev01

$JOB PASCAL; STEP SAMPLE_PASCAL TEMP; ASSIGN INPUT *INPUT; ENDSTEP; $INPUT INPUT PRINT; 3+2

7-2

8<2 / $ENDINPUT; $ENDJOB;

= 5 = 49 I don't know this operator (<)

Page 33: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

47 A2 52UL Rev01 3-1

3. Separate Compilation

3.1 GENERAL NOTES

Separate compilation is a SOL extension which is used to subdivide a logical programinto several units which can be compiled separately. Links may be created betweenthese different units by making objects known outside the unit.

The classical rule of portability enables an object to be made known in the blockcontaining its declaration and in all its dependant objects.

The IMPORT/EXPORT directives increase this portability beyond the level of a PASCALprogram unit.

Links between compile units are resolved by the static LINKER which attempts to makethe correspondence between imported objects and exported objects.

Contrary to other languages, the compiler cannot know which will be the main program.Each of the PASCAL programs may have a body, i.e., a part containing instructions. It isspecified that only one of the program bodies will be effectively executed. (See PASCALReference Manual, SOL Specification.)

Example:

| - PROGRAM P1; | - PROGRAM P2;| $IMPORT Q2$ | $IMPORT Q1$| $EXPORT Q1$ | $EXPORT Q2$| BEGIN | BEGIN| || ... P1 body | ... P2 body| - END. | - END.

We can build via the LINKER (ENTRY command, see paragraph 4.1) two distinct loadmodules, one beginning with the execution of the body of P1, the other with that of P2.

Page 34: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

3-2 47 A2 52UL Rev01

3.2 IMPORT AND EXPORT DIRECTIVES

The EXPORT directive is used to define an external object, i.e., one which may bereferenced from the exterior. If it is a variable, it will be allocated.

The IMPORT directive is used to reference an object thus defined (there will be noallocation).

The SOL specification puts restrictions on the use of directives, which may be resumedas follows (see PASCAL Reference Manual):

• only variables, procedures and functions declared at program level may be exportedor imported

• an exported object may not be imported in the same program

• an imported variable may not be initialized by $VALUE.

Imported or exported objects must be explicitly declared elsewhere.

The indication of origin in the IMPORT directive is accepted but not processed (seeparagraph 3.4).

If the MAP option is active, exported objects are listed in the DATA MAP part under theSYMDEF heading, and imported objects (and references to the RTP) are listed underthe SYMREF heading).

NOTE: In order to avoid conflicts with system objects, it is not advised to useidentifications beginning with "H_".

Page 35: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

Separate Compilation

47 A2 52UL Rev01 3-3

3.3 CALLS BETWEEN LANGUAGES BY THE EXTERNAL DIRECTIVE

It is possible to call external subprograms coded in languages other than PASCAL. Forthis the EXTERNAL directive is used, which replaces the definition and instruction parts.The header of the subprogram must however be completed:

FUNCTION P(X: INTEGER; VAR Y: REAL): INTEGER; EXTERNAL;

We find in Table 3.1 the correspondence between basic PASCAL types and those ofother languages, with the following notes and restrictions:

1. Structured objects (ARRAY, RECORD) are implemented in the same way as thecorresponding objects of the external language, if they exist.

- The fields of a RECORD are byte-aligned- The tables are described by line then by column (watch out for FORTRAN!)

2. The SET and FILE types have an implementation in aggregate form which is toocomplex to be manipulated outside the PASCAL context.

3. The equivalences not given in the table indicate constructions which are difficult orimpossible to write in the language concerned.

4. For the pointers, P_STATUS points to a byte indicating the status of the dynamicobject. A valid value is "00"X, but evidently we lose the benefit of any checking.

5. In the case of GPL, parameters passed by value (VAR not specified) must have theINPUT attribute.

6. The notions of boolean PASCAL and logical FORTRAN do not cover exactly thesame values ("00"X and "80"X in PASCAL).

Table 3-1. Correspondence of Type Between PASCAL and Other Languages

PASCAL GPL/PL1 FORTRAN COBOLINTEGER FIXED BIN (31) INTEGER COMP-2CHAR CHAR(1) CHARACTER*1 PIC XREAL FLOAT BIN(53) DOUBLE PRECISION COMP-10BOOLEAN BIT(1) ALIGNED BYTE LOGICAL*1 ---numerate FIXED BIN(15) INTEGER*2 COMP-1pointer DCL 1 *,

2 P_OBJECT PTR,2 P_STATUS PTR;

--- ---

PROCEDURE ENTRY SUBROUTINE ---FUNCTION ENTRY RETURNS FUNCTION ---

Page 36: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

3-4 47 A2 52UL Rev01

3.4 RESTRICTIONS AND CHECKS

3.4.1 Restrictions

Exported objects are cataloged in the CU. They are therefore present in the librarydirectory in order to be recognized by the LINKER.

Consequently, there should not be two exported objects of the same name in twoprograms whose CU is stored in the same library.

In addition, you cannot import or export the predefined files INPUT, OUTPUT orERROR. The correspondence is done automatically if several programs declare thesefiles in their header.

3.4.2 Checks

Apart from the static checks made by the LINKER on the correspondence of importedand exported objects (see Section 4), a dynamic check is performed on GOTO's towardsthe program in order to detect its validity, i.e., whether return is correctly made to theinitially active program.

Example:

- PROGRAM P1; - PROGRAM P2; LABEL 1; $IMPORT Q2$ $EXPORT Q2$ PROCEDURE Q2; BEGIN BEGIN GOTO 1; (*may be wrong*) END; ... P1 body BEGIN 1:... P2 body - END. - END.

If the entry point is P2, the instruction GOTO 1 is valid.

If the entry point is P1, the instruction GOTO 1 is wrong.

There will therefore be an execution exception in the second case.

Page 37: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

47 A2 52UL Rev01 4-1

4. Linker

4.1 GENERAL FORM

The LINKER is the utility whose purpose is to produce an executable program or loadmodule (LM) from one or more compile unit(s) (CU) generated by the compilers.

The general form of call (without seperate compilation) is:

(LINKER) program-name [INLIB = culib][OUTLIB = lmlib](LINK) [PRTLIB = lislib][ENTRY = entry-name];

4.1.1 Parameters Program-name and ENTRY

Program-name is the name of the LM to be generated. If it is the same as that given tothe PASCAL program, ENTRY is of no interest. Otherwise, ENTRY is the name of thePROGRAM.

4.1.2 Parameter INLIB

Culib is the name of the library containing the CU generated by the compiler (parameterCULIB, see paragraph 2.1.2). The default is a temporary library which is also the CULIBby default of the compiler in output.

4.1.3 Parameter OUTLIB

Lmlib is the name of the library containing the LM generated, which enables itsconservation for later execution. The default is a temporary library.

Page 38: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

4-2 47 A2 52UL Rev01

4.1.4 Parameter PRTLIB

Lislib indicates the name of the listing library which contains the LINK report in theprogram_name_K member.

The default is TEMP in interactive mode, SYS-OUT in batch.

Examples:

PASCAL SOURCE = P INLIB = TEMP; LINK P;

The temporary source library contains a member P containing a program named P. Theresult is an LM named P in the temporary LM library.

PASCAL SOURCE = Q CULIB = MACULIB, INLIB = TEMP; LINK Q INLIB = MACULIB, OUTLIB = MALMLIB;

The LM will be conserved in the library MALMLIB; also, the CU will be kept in the libraryMACULIB.

Page 39: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

Linker

47 A2 52UL Rev01 4-3

4.2 SEPARATE COMPILATION

When separate compilation is used, several programs are compiled and thereforeseveral CU'S are generated to create a single LM.

In the case where the CU'S of different programs were stored in several libraries, it maybe necessary to use the JCL instruction LIB CU. As before, the ENTRY command isused to define the entry point for execution (see paragraph 2.1). The search rules are asfollows:

• library INLIB• library INLIB1• library INLIB2• library INLIB3

Examples:

PASCAL SOURCE = P1 CULIB = MACULIB1, INLIB = TEMP;PASCAL SOURCE = P2 CULIB = MACULIB2, INLIB = TEMP;LIB CU INLIB1 = MACULIB1;LINK MONLM INLIB = MACULIB2 ENTRY = P2;

Since the LINKER has its own search rules for external objects, there is no need toindicate the origin of imports by:

$IMPORT '< filename >': var;

The < filename > specification is ignored.

Going from the program declared as entry point by the command ENTRY, it will includeprograms containing the definition of export of imported (or EXTERNAL) procedures orfunctions described in the entry point program. Then it will reiterate as necessary, foreach of the programs thus included, if they possess references to imported proceduresor functions which are not yet resolved.

Three types of error may arise on this processing. The message label is given forinformation purposes.

Page 40: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

4-4 47 A2 52UL Rev01

4.2.1 Error Messages

a) CONFLICT BETWEEN REF/DEF ATTRIBUTES.

The descriptions of the type of object imported and of the type of object exportedare not identical. In the case of procedures or functions, the conflict may concernthe number and/or type of parameters or the return value.

Please note that this applies equally to inter-language calls (EXTERNAL directive) ifthe types in the different languages do not agree (see paragraph 3.3).

b) UNRESOLVED REFERENCE OR NO MATCHING DEF

In the path of libraries supplied (INLIB, INLIB1, etc.) no definition (such asEXPORT) corresponding to this reference could be found. Any manipulation of thisobject will bring about an exception at execution (FAULT DATA DESCRIPTOR orFAULT BASE REGISTER).

c) THIS CATALOGED ENTITY ALREADY EXISTS

One object was declared exported in several programs whose CU was stored in thelibraries existing in the search path of the LINKER.

All these errors are signalled in the execution listing of the LINKER. It thereforegenerally terminates with a severity other than nul. An LM is nonetheless produced,but execution errors may occur if it is used as such.

Page 41: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

Linker

47 A2 52UL Rev01 4-5

4.3 PARTICULAR CASES

Certain programs which may require particular resources demand special parameters ofthe LINKER. If these are not supplied, an error will appear at execution.

The LINKER command is as follows:

LINKER program-name [INLIB=culib] [OUTLIB=Imlib] [PRTLIB=lislib] { COM='command1 [,command n]...'} { COMFILE=command-file } ;

4.3.1 File Manipulation

The return code ENTRYOV is sent by the RTP upon the opening of a file; this is the caseif several files are connected simultaneously. The command to be used is:

LINKER program-name [INLIB=culib] [OUTLIB=lmlib] [PRTLIB=lislib] | COM='command1 [,command n] ...' | | COMFlLE=command-file | ;

| SEQ |FILE = ( FILEORG = | | , NBBUF = 2, NUMBER = n) | DIRECT |

where n is the number of files which may be connected simultaneously for a givenorganization.

4.3.2 Non-dynamic Large Variables

The return code R3STACKOV is returned by the system. This means that the size of thestack in which the non-dynamic variables not declared at program level exceeds themaximum value demanded.

By default this value equals 16K bytes. It may be increased by:

STACK3 = (INITSIZE = 16K, MAXSIZE = 64K)

If the same error re-occurs:

1) Check that there are no recursive calling loops.

2) If not, look for large structures and declare them at program level or as dynamicobjects.

Page 42: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

4-6 47 A2 52UL Rev01

4.3.3 Manipulation of Large Dynamic Objects

The return code ENTRYOV is returned by the RTP on call of NEW.

If the object whose allocation is demanded is of a size smaller than 64K bytes (65535),this means that the system limit has been reached. Check whether the program containsa loop on a call to NEW without a call to DISPOSE.

If it is larger than 65535 bytes, use the command:

SEGTABi = (SHRLEVEL = 2, VSEG = n)

where n indicates the number of large segments required (1 <= n <= 3), and i indicatesthe segment table. In order not to enter into conflict with the algorithm of allocation oflarge static objects, choose the i values as follows: 3 then 2 then 1.

NOTE: All dynamic objects are allocated in sharable segments.

Page 43: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

47 A2 52UL Rev01 5-1

5. Treatment of Files

5.1 PASCAL FILES AND GCOS FILES

A PASCAL file is a variable or a field of an aggregate, which was declared with either thetype FILE OF T or the type TEXT. An object of this type has a known name in thePASCAL program where it was declared.

A GCOS file is a system object which also has a name, which is referred to as anExternal File Name (EFN).

The relationship between these objects is achieved by a connection which is eitherexternal (by the JCL statement ASSIGN) or internal (by the requested proceduresFCONNECT and FREOPEN).

The organizations supported by the RTP version 11.00 are:

• for the UFAS access method, sequential and relative

• for the BFAS access method, sequential.

Restrictions on the format of data are resumed in Table 5-1

Table 5-1. Restrictions on Data Format Between TEXT and non-TEXT Files

Organization TEXT File Non-TEXT FileUFAS sequential SARF SARFrelative SARF SARFBFAS sequential SSF SARF

Page 44: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

5-2 47 A2 52UL Rev01

5.2 ALLOCATION OF FILES BY JCL

In order for the RTP to manipulate a file, it is necessary for it to be explicitly preallocatedby the JCL statement PREALLOC. See paragraph 5-3. for the particular case oftemporary files and library members.

5.2.1 Determining RECSIZE

The size of a record of a PASCAL file is based on the allocation done by the compiler.The following table gives the allocation rules for the basic types.

Table 5-2. Allocation Rules For Basic Types Treated By the Compiler

PASCAL type allocation (in bytes)INTEGER or integer

interval4

numerate type ornumerate interval

2

CHAR, BOOLEAN 1REAL 8SET 4*(1+(upper-limit div 32)

-(lower-limit div 32))pointer 8

The following table summarizes the treatment performed when the size allocated for acomponent of a PASCAL file is different to the RECSIZE of a physical file (checkperformed for the format of a Fixed or Fixed Block record).

Table 5-3. Summary of Treatment Done When Allocated Size of PASCAL FileComponent is Different to RECSIZE of Physical File

Opening Mode inspection Generation UpdatingRECSIZE of > bufferphysical file size

F W F

RECSIZE of > bufferphysical file size

W F F

Page 45: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

Treatment of Files

47 A2 52UL Rev01 5-3

5.2.2 Allocation of Sequential Files (Example)

- JCL:

PREALLOC INTEGER_PS, UNIT = CYL, FILESTAT = UNCAT DEVCLASS = device-class, GLOBAL = (MEDIA = media-name, SIZE=1), UFAS = (SEQ = (CISIZE = 512, RECSIZE = 4));PREALLOC STRUC_PS, UNIT = CYL, FILESTAT = UNCAT, DEVCLASS = device-class, GLOBAL = (MEDIA = media-name, SIZE = 1), BFAS = (SEQ = (BLKSIZE = 480, RECSIZE = 24));

STEP MYPROG MYLMLIB;

ASSIGN f1, INTEGER_PS, DEVCLASS = device-class, MEDIA = media-name;

ENDSTEP;

- Corresponding Program:

PROGRAM myprog (output); TYPE struc = record ch1, ch2: integer; ch3: set of [0..127]; end;

VAR f1: file of integer; f2: file of struc; BEGIN rewrite (f1); fconnect (f2,'STRUC_PS: media-name: device-class'); rewrite (f2); ...... END.

5.2.3 Allocation of TEXT-Types Files (Example)

Two libraries are available:

PROJ.TEST.PS.LIB (cataloged)

DATA_PS.LIB (non-cataloged)

The members MEMBER1, MEMBER2 and TEST are to be created.

- JCL:

ASSIGN t1, DATA_PS.LIB, SUBFILE = MEMBER1, DEVICE = device-class MEDIA = media-name;

- Corresponding Program:

PROGRAM myprog; VAR t1, t2, t3: TEXT; BEGIN fconnect (t2,'DATA_PS.LIB..MEMBER2:media-name: device-class'); fconnect (t3,'PROJ.TEST.PS.LIB..TEST'); ........ END.

Page 46: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

5-4 47 A2 52UL Rev01

5.2.4 Allocation of Relative Files (Example)

- JCL:

PREALLOC DIRECT1_PS, UNIT = CYL, FILESTAT = UNCAT, DEVCLASS = device-class, GLOBAL = (MEDIA = media-name, SIZE = 1), UFAS = (RELATIVE = (CISIZE = 512, RECSIZE = 4));PREALLOC DIRECT2_PS, UNIT = CYL, FILESTAT = UNCAT, DEVCLASS = device-class, GLOBAL = (MEDIA = media-name, SIZE = 1), UFAS = (RELATIVE = (BLKSIZE = 1024, RECSIZE = 8));STEP MYPROG MYLMLIB;ASSIGN d1, DIRECT1_PS, DEVCLASS = device-class, MEDIA = media-name;ASSIGN d3, DUMMY;ASSIGN OUTPUT, SYS.OUT;INPUT II;...ENDINPUT;ENDSTEP;

- Corresponding Program:

PROGRAM myprog (output); VAR d1: FILE OF INTEGER; d2, d3: FILE OF REAL; file-in: TEXT; BEGIN reset (d1); rewrite (d3); fconnect (d2, 'DIRECT2_PS: media-name: device- class'); fconnect (file-in, 'SYSIN..II'); rewrite (d2); reset (file-in); ......... END.

NOTE: For UFAS the minimum allocation is two tracks and the CISIZE is rounded to amultiple of 512.

Page 47: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

Treatment of Files

47 A2 52UL Rev01 5-5

5.3 DYNAMIC ALLOCATION

The physical file is automatically allocated upon connexion in generation mode in thefollowing two cases:

• Library Member:

A library exists, but no unit for the file to be connected to. Creation will be done uponstatic or dynamic connection.

• Temporary File:

With FCONNECT, there is dynamic allocation at connexion, with the options END =PASS and ABEND = PASS.

However, static connexion by JCL does not perform implicit allocation. This must berequested by the JCL statement ALLOCATE. Refer to the JCL Reference Manual.

Example:

a) PROGRAM P; VAR F: TEXT... . . . FCONNECT (F, 'TEMPFILE $TEMPRY'); ... Started by STEP P TEMP; ENDSTEP;

b) PROGRAM P; ... VAR F: TEXT ... Started by STEP P TEMP; ASSIGN F, TEMPFILE, FILESTAT = TEMPRY; ALLOCATE F, SIZE = 1; ENDSTEP;

5.4 RESTRICTIONS ON USE OF PREDEFINED FUNCTIONS

The predefined function FPOS used consecutively to FAPPEND does not return the rankof the last element in the file; a WRITE must be performed for the value returned byFPOS to be valid.

Page 48: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

5-6 47 A2 52UL Rev01

5.5 FILE CONNEXION

5.5.1 Utilization

File connection, i.e., the liaison between PASCAL file and GCOS file, or ifn and efn, maybe achieved in two ways:

• outside the program by the JCL Statement ASSIGN (or, in GCL mode, by theparameter ASGi of the command EXEC_PG).

• inside the program by the requested procedure FCONNECT.

The two methods present some differences in utilization:

a) at the moment of connexion:

Static connexion (JCL) is effective from the beginning of the STEP; dynamicconnexion is effective upon execution of the calling instruction to FCONNECT.

A file assigned by JCL may be reassigned by FCONNECT:

10 PROGRAM P; ... 20 VAR F: TEXT; ... 100 BEGIN ... 150 FCONNECT (F, 'FILE2'); ... 200 END.

Its execution by the sequence:

STEP P FILE = TEMP; ASSIGN F, FILE1; ENDSTEP;

produces the following effect:

F will be connected to FILE1 from line 100 to line 150 and to FILE2 from line 150 to line 200.

b) at utilization:

Not all files can be statically assigned by JCL.

To be connected by JCL they must fulfil the following three conditions:

- declared at program level- non-dynamic- not appearing in an aggregate (table, storage)

Page 49: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

Treatment of Files

47 A2 52UL Rev01 5-7

In the following extract of a program, only F may be statically connected:

... TYPE T = FILE OF REAL; VAR F: FILE OF ARRAY [1..10] OF REAL; G: ARRAY [1..10] OF FILE OF REAL; H: ^T; PROCEDURE P; VAR I: TEXT; ...

Moreover, the variable name is used as ifn for the system upon connection.

We therefore have the following additional restrictions:

• the name must have no more than 8 characters.

• in the case of separate compilation, two file variables of two distinct programs, whichcan be statically assigned, will be identical from the system point of view, which maylead to a conflict.

5.5.2 Dynamic Connection

This is accomplished by:

FCONNECT (reference-to-PASCAL-file-variable, chain-type-expression);

The chain-type-expression corresponds to a file-literal as defined in GCL. The syntax isgiven in Appendix C.

The special connexion by $TERMINAL is explained in detail in paragraph 5.5.4.

Note that temporary files are connected with the options END = PASS and ABEND =PASS, i.e., they are not deallocated at the end of STEP but only at the end of the jobexecution or interactive session.

5.5.3 Connexion of Requested Files

5.5.3.1 Interactive mode

In no assigning is demanded by the JCL Statement ASSIGN, the requested files INPUTand OUTPUT are implicitly connected to the terminal at the beginning of the STEP.

However, the ERROR file must be explicitly connected, mandatorily, before being used.

Page 50: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

5-8 47 A2 52UL Rev01

5.5.3.2 Batch mode

If no assigning is demanded by the JCL Statement ASSIGN, the OUTPUT file isimplicitly connected at the beginning of the STEP to the system standard output(SYSOUT), which is printed out at the end of the job.

However, the files INPUT and ERROR must be statically connected if they aredeclared.

5.5.4 Connexion of File to Terminal

5.5.4.1 Utilization of $TERMINAL

The DPS 7 PASCAL compiler offers the possibility of connecting a TEXT-type file to theterminal.

This function exists in both interactive and batch modes. It is obtained by dynamicconnexion in the form of:

FCONNECT (F, '$TERMINAL')

There follows a program example using this function, with dialog examples in batch andinteractive modes.

In batch, the written texts are of the form:

.<text>

.reads are preceded by <request-number>/I:

.replies must be of the form: <request-number><reply>

In interactive, requests are preceded by the I: prompt.

Note that the Terminal Access Method (TAM) is not supported by the RTP version 12.00.

5.5.4.2 Retrying a particular error

In the case of a read on a TEXT file connected to a terminal either implicitly (seeparagraph 5.5.3.1) or explicitly (see paragraph 5.5.4.1), a retry of a particular error isperformed on integers and real numbers.

When there is a syntax error on the integer or real number to read (e.g., non-numericcharacter, exponent error, etc.), or when capacity is exceeded on these types of object(e.g., whole number <MAXINT), the corresponding error message is sent with severity 2,and a new value is asked for.

When the FSTATUS utilization option is demanded (S+), the code 7 is sent, whichcorresponds to a syntax error (not defined by the SOL specification), without asking for anew value (retry at user's responsibility).

Page 51: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

Treatment of Files

47 A2 52UL Rev01 5-9

PROGRAM TERMINAL; (An example of connection of text files to the terminal and the execution of the program in batch mode and in an interactive session.)VAR CONSOLE_IN, CONSOLE_OUT: TEXT; DATA, SUM: INTEGER; MESSAGE: PACKED ARRAY [1..22] OF CHAR;BEGIN FCONNECT (CONSOLE_IN, '$TERMINAL'); FCONNECT (CONSOLE_OUT, '$TERMINAL'); RESET (CONSOLE_IN); REWRITE (CONSOLE_OUT); IF IOF THEN MESSAGE: = 'Running under IOF.' ELSE MESSAGE: = 'Running in batch mode.'; SUM: = 0; WRITELN (CONSOLE_OUT, MESSAGE); REPEAT READLN (CONSOLE_IN, DATA); WRITELN (CONSOLE_OUT, 'Input is:', DATA); SUM: = SUM + DATA UNTIL (DATA = 0); WRITELN (CONSOLE_OUT, 'Sum =', SUM);END.

S: STP TERMINAL LSFY.PS.LMLIB; EST;Running under IOF.I: 3Input is: 3I: 12Input is: 12I: 0Input is: 0Sum = 15 15.25 x514 STARTED TERMINAL BOURHIS NS: Running in batch mode.20/I:S: REPLY 20 3;s: Input is: 321/I:S: REPLY 21 12;S: Input is: 1222/I:S: REPLY 22 0; Input is: 0 Sum = 15S: 15.26 X514.1 COMPLETED TERMINAL BOURHIS N

Figure 5-1 Example of Connexion of TEXT Files to Terminal and of Program Execution inBatch and Interactive Modes.

Page 52: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

5-10 47 A2 52UL Rev01

5.5.4.3 Management of EOLN on TEXT Files

According to the PASCAL norm, and recognizing the fact that one cannot foresee thereading on the terminal, one loses the value EOLN = TRUE on reading a blank line. Therefollows an example which shows this behavior.

The purpose is to set EOLN on reading a TEXT file at a terminal.

The following program:

1 PROGRAM EOLN_TERMINAL (INPUT, OUTPUT); 2 VAR 3 C: CHAR; 4 I: INTEGER; 5 BEGIN 6 FOR I: = 1 TO 9 DO BEGIN 7 READ (C); 8 WRITELN ('C = ',C,' EOLN = ',EOLN); 10 END.

gives the following values for the variable read and the boolean EOLN:

I: ABC (A, B, C,hr) C = A EOLN = FALSE C = B EOLN = FALSE C = C EOLN = TRUE C = EOLN = FALSE I: (hr) C = EOLN = FALSE ( WARNING!) I: (,hr) C = EOLN = TRUE C = EOLN = FALSE I: / (/,hr) C = / EOLN = TRUE C = EOLN = FALSE S:

Page 53: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

47 A2 52UL Rev01 6-1

6. Execution

6.1 ACTIVATION

Program activation is done via the JCL Statement:

STEP <program> FILE = <Im-file-name> [OPTIONS = '<option-chain>']; [ASG <ifn> <efn>;] ENDSTEP;

or, in GCL mode, via the EXEC_PG command.

In batch mode, the execution banner (run-time) is printed in the Job Occurrence Report(JOR), at the start of the program, in the form:

PSROO:Pascal Run Time version <version>[<modification-state>]

The RTP version currently is 12.00

The banner does not appear on the console in interactive mode.

It is followed by any error messages which may occur then by statistical informationsupplied by the system (I/O's, etc.).

Page 54: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

6-2 47 A2 52UL Rev01

6.2 EXTERIOR INTERFACES

The interface with files was described in section 5.

Two other interfaces exist at SOL level: the requested procedure STOP (n), and therequests ARGC/ARGV.

6.2.1 Requested Procedure STOP (n)

This halts program execution and sets the status of the stop to the value n.

The status is relative to the severity of the step (see PASCAL Reference Manual).

6.2.2 Requests ARGC/ARGV

These are used to handle the options supplied in the option chain. This is decoded in thefollowing manner: a blank and/or a comma are separators; two consecutive commasdenote an empty argument.

Example:

OPTIONS = 'X YZT, U V,,A'

will be decoded as: ARGC 6 ARGV (1) X\Z ARGV (2) YZT\Z ARGV (3) U\Z ARGV (4) V\Z ARGV (5) \Z ARGV (6) A\Z

since each option is followed by the 'Z' character.(Refer to the PASCAL Reference Manual.)

Note also that if the length of the chain designated by the second argument of ARGV isless than the option processed (including the 'Z' character), a fatal error will be returnedto the user.

Thus, with the preceding example, the case:

VAR OPT: PACKED ARRAY [1..3] OF CHAR ... ARGV (I, OPT);

will produce a fatal error for I=2.

NOTE: at the level of GCOS, the predefined boolean function IOF indicates whetherthe program is executed interactively.

Page 55: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

Execution

47 A2 52UL Rev01 6-3

6.3 EXECUTION ERRORS

Errors detected at execution can be divided into two classes:

• those detected in the RTP

• those detected within the program.

The first type are given explicitly in the JOR (or on the console in interactive mode), thesecond are treated as exceptions.

6.3.1 Errors Within the Program

These may also be divided into two classes:

hardware exceptions, and exceptions revealed when PASCAL checks are applied.

6.3.1.1 Hardware Exceptions

These take the form:

{FATAL } EX01 EXCEPTION xx.yy : <exception type> IN TASK{WARNING } MAIN AT ADDRESS<address>

<address> corresponds to the segmented address where the error was detected, in theform: STN.STE.SRA.

(Segment Table Number. Segment Table Entry. Segment Relative Address.)

STN.STE are used to locate the corresponding segment from the listing supplied by theLINKER. SRA gives the displacement within this segment. The corresponding sourceline may be located, by means of the compilation listing, in the Correspondence Table,denoted DATA MAP, LOC: LINE.

This is supplied if the MAP option was asked for at compilation time.

Page 56: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

6-4 47 A2 52UL Rev01

ACCESS OUT OF incorrect pointer, incorrect array index06.00 SEGMENT BOUNDS without check ((NCHECK option)

08.00 R3STACK OVERFLOW size of stack insufficient (see section3)0E.01 FAULT DATA } DESCRIPTOR } pointer to NIL external } object (EXTERNAL, EXPORT)0E.02 FAULT BASE } not found in LINKER REGISTER }10.00 FLOATING POINT } OVERFLOW } }10.01 FLOATING POINT } errors in floating point UNDERFLOW } arithmetic (real numbers) }10.02 FLOATING POINT } DIVIDE } FIXED POINT }11.00 OVERFLOW } errors in fixed } point arithmetic (whole numbers) FIXED POINT }11.01 DIVIDE11.02 SUBSCRIPT OUT OF ARRAY RANGE index out of allowed limits for an adjustable array

6.3.1.2 Software Exceptions

These take the form:

FATAL EX03. UNEXPECTED RETURN CODE (RC = F000xxxx USED 192, yyyyyyyy) GOT IN TASK MAIN AT ADDRESS <address>

They correspond to checks generated by the compiler.

xxxx yyyyyyyy Corresponding check

0805 RANGEOUT Non-compatible types: ordinal type of the interval, value notcompatible with the constructor of the whole; index value notcompatible with the model of adjustable array.

1032 CASEUNKN Value of CASE expression does not correspond to any ofthe given constants.

1707 INVUSE File not open on EOF, EOLN or FPOS.EOF is correct on thecall to EOLN.

1807 LNERR Non-compatible chains (different lengths) when at least oneis an adjustable array.

Page 57: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

Execution

47 A2 52UL Rev01 6-5

1819 ADDRERR Value of the pointer is undetermined

Incorrect use of dynamic recording created with lists ofconstants. (See Appendix D, number 25 of the book cited inthe Bibliography: PASCAL Programming Language.)

Return by GOTO into an inactive program (see paragraph3.4.2).

1889 SEQERR Value of function not supplied before output of the body ofthe function.

The checks which generate these errors may be lifted completely (NCHECK in JCL) orpartially (option T-), as opposed to the hardware exceptions (see paragraph 6-3.3).

6.3.2 Errors in the RTP

Errors detected by the RTP in calls to procedures or requested functions are printedexplicitly in the JOR (or displayed on the terminal in interactive mode).

Messages referring to files have the form:

PSRnn: IFN=<ifn> at iln <iln>[stt<sttnb>] in program <program-name>.<return-code> <message-label>.

where:

<ifn> gives the name of the PASCAL file on which the anomalywas detected

<iln> gives the internal line number (see compilation listing)

<sttnb> gives the number of the instruction on the line if it is otherthan 1

<program-name> is the name of the corresponding program.In the case of separate compilation, it is the programcontaining the faulty line and not the entry point.

<return-code> is the value of the return-code sent by the system.

<message-label> identifies the error detected.

Messages not referring to files have the form:

PSRnn: <program-name> at iln <iln> [stt<sttnb>] in program <program-name>.<return-code>

with the same meanings as above.

Page 58: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

6-6 47 A2 52UL Rev01

6.3.3 Suppression of Checks on Execution.

In order to improve the performance of a completely tested PASCAL program, it may beuseful to lift the checks to be done on execution (by the JCL option NCHECK, globally, orby T+/T-, locally).

Checks which may be thus suppressed are:

• check on the validity of a pointer

• the result of a function must not be even partially indeterminate

• dynamic check of compatibility by assignment

• validity of use of EOF, EOLN and FPOS

• validity of the selector of a CASE instruction

• check that the expressions quoted in a constructor lie between 0 and SETMAX.

Verifications done by the RTP cannot be lifted in this way. On files, the predefinedfunction FSTATUS may be used in liaison with the options S+ and S- (see the PASCALReference Manual).

Page 59: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

47 A2 52UL Rev01 7-1

7. Performance of Generated Code

For users who are anxious about the performance of a generated program, here aresome notes about the space and execution time consumed.

7.1 MEMORY SPACE

You are advised to deal with voluminous arrays with parameters by reference and not byvalue (keyword VAR), in order to avoid having a copy of the array in the stack.

Use of the ASCII option may be costly in space, in particular where manipulation of longcharacter chains is entailed

Objects may be divided into 3 classes:

• objects at program level allocated in static segments

• objects of other procedures allocated in the stack

• dynamic objects allocated in another segment table.

In the event of overflow in one of these classes (no more segment entry available, orstack overflow), it may become necessary to handle voluminous objects in anotherclass.

7.2 EXECUTION

It is advised to look for useless conversions between whole and real numbers; these arecostly.

For example,

I: = J + 1, 0 where I and J are whole.

Use of the $VALUE directive enables you to quicken the part concerning initialization ofprogram variables. It is useful in particular for large arrays, since no code is generated.

If necessary, checks may also be lifted (see paragraph 6-3.3).

Page 60: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

7-2 47 A2 52UL Rev01

Page 61: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

47 A2 52UL Rev01 A-1

A. Some Characteristics of the PASCALCOMPILER 12.00 on DPS 7

Maximum depth of nesting

of blocks 20of instructions 50of types 20of RECORD variables 20of expressions 20of WITH 20of function calls 20of the INCLUDE command 4

Maximum number

of procedures or functions(not external or imported)

512

of fields in a RECORD 5000of characters in an identifier 80of formal parameters 50of parameters for READ(LN), WRITE (LN)

50

of characters in an origin line 255of compiled lines for a program 65536

Page 62: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

A-2 47 A2 52UL Rev01

Page 63: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

47 A2 52UL Rev01 B-1

B. System Error Messages

There follows a description of messages generated in the JOR by the PASCAL compiler.

B.1 PAS00. (VV.NN) SUMMARY FOR <PROGRAM-NAME>

<error-recapitulative>, [no] CU produced

Meaning:

Information message produced for each compilation of a PASCAL program.

Contents:

• Current version of compiler vv.nn (currently 12.00)

• Name of compiled program

• Recap of errors, i.e., the number of errors detected by class of severity; or no error, ifthat is so.

• Whether or not a Compile Unit (CU) was generated.

Page 64: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

B-2 47 A2 52UL Rev01

B.2 PAS01. OPEN PRTLIB. LISTING WILL BE ON SYSOUT

RC = <return-code>

Meaning:

The PASCAL compiler was not able to open the permanent print file.

The return code gives the reason for this.

The most common user error is RC=EFNUNKN, i.e., the print file is not found on thegiven volume.

Result:

Compilation is performed, but the listing is sent to the standard SYSOUT and willtherefore be suppressed after printing at the end of the job.

Recommendation:

If required, correct the JCL. If unsuccessful, contact the Service Center.

B.3 PAS02. OPEN PRTFILE. LISTING WILL BE ON SYSOUT

RC = <return-code>

Meaning:

Same as message PAS01.

Page 65: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

System Error Messages

47 A2 52UL Rev01 B-3

B.4 PAS03. OPEN INLIB. RC = <RETURN-CODE>

Meaning:

The PASCAL compiler was not able to open the file containing the source programs tobe compiled (library or entry label between $INPUT and $ENDINPUT).

The most common return-code is RC = EFNUNKN, i.e., the parameter INLIB of the JCLstatement PASCAL designates a library which is not on the volume indicated.

Result:

Compilation is not performed.

Recommendation:

If required, correct the JCL. If unsuccessful, contact the Service Center.

B.5 PAS04. OPEN CULIB. NO OBJECT CODE PRODUCED.

RC =<return-code>

Meaning:

The PASCAL compiler was not able to open the CU library which is to receive the CU.

The return-code gives the reason for this.

This message is unlikely to appear if a temporary library is used.

If a permanent CU library is used, the most common return-code is RC = EFNUNKN,i.e., the parameter CULIB of the JCL Statement PASCAL designates a library which isnot found on the volume indicated.

Result:

Compilation is performed, but no CU is produced.

Recommendation:

If required, correct the JCL. If unsuccessful, contact the Service Center.

Page 66: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

B-4 47 A2 52UL Rev01

B.6 PAS05. BUILD INLIB. RC = <RETURN-CODE>

Meaning:

A problem appeared when the PASCAL compiler attempted to find source membernames in the input library. The return-code gives the reason.

Result:

Compilation is not performed.

Recommendation:

Inform the Service Center.

B.7 PAS06. OPENS INLIB FOR: MEMBER-NAME. RC = <RETURN-CODE>

Meaning:

A problem appeared when the compiler attempted to access a member in the inputlibrary.

The return-code gives the reason.

The problem may be a system one.

Result:

Compilation is aborted.

Recommendation:

Inform the Service Center.

Page 67: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

System Error Messages

47 A2 52UL Rev01 B-5

B.8 PAS07. OPENS PRTLIB FOR: <PROGRAM-NAME-L>.

LISTING WILL BE ON SYSOUT. RC=<return-code>

Meaning:

A problem appeared when the compiler attempted to create a member which is toreceive the listing produced by the compiler.

Note that the name attributed to the member is that of the procedure suffixed with "_L".

The reason for the problem is given by the return-code.

The problem may be a system one.

Result:

The listing will be stored in the standard SYSOUT then suppressed after printing.

Recommendation:

Inform the Service Center.

B.9 PAS08. CLOSES INLIB FOR: <MEMBER-NAME>. RC=<RETURN-CODE>

Meaning:

A problem appeared at the end of reading the source program.

The reason is given by the return-code.

This is a rare kind of problem (may be a system one).

Result:

Compilation continues.

Recommendation:

Check the result of the compilation and inform the Service Center.

Page 68: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

B-6 47 A2 52UL Rev01

B.10 PAS09. CLOSES PRTLIB FOR: <PROGRAM-NAME_L>. RC=<RETURN-CODE>

Meaning:

A problem appeared at the end of creation of the listing in the print library. The reason isgiven by the return-code.

A fault like this is very uncommon, and may be due to a system problem.

Note that the name attributed to the member in the print library is that of the procedure,to which "_L" is suffixed.

Result:

The compiled unit is already produced at the time the problem appears (except in thecase of severe errors in the source).

The listing is normally accessible in the print library.

Recommendation:

Inform the Service Center.

B.11 PAS11. CLOSE CULIB. RC = <RETURN-CODE>

Meaning:

A problem appeared at the CLOSE of the CU library (CULIB). The reason is given by thereturn-code.

This type of problem may be due to a system fault.

Result:

The CU's are already generated at the time the problem occurred; they are normallyaccessible in the CU library.

Recommendation:

If it is a question of an I/O error, check the disk unit as well as the disk volume.

If unsuccessful, call the Service Center.

Page 69: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

System Error Messages

47 A2 52UL Rev01 B-7

B.12 PAS12. CLOSE INLIB. RC = <RETURN-CODE>

Meaning:

A problem appeared at the CLOSE of the library containing the source programs.

The return-code gives the reason.

Result:

Compilation continues.

Recommendation:

If it is a question of an I/O error, check the disk unit as well as the disk volume.

If unsuccessful, call the Service Center.

B.13 PAS13. CLOSE SYSOUT. RC = <RETURN-CODE>

Meaning:

A problem appeared at the CLOSE of the standard SYSOUT. The return-code gives thereason.

This problem may be due to a system fault.

Result:

The problem occurred at the end of compilation; the objects compiled had already beengenerated.

The listings produced by the compilation are normally accessible and may be printed.

Recommendation:

If it is a question of an I/O error, check the disk unit as well as the disk volume containingthe file.

If unsuccessful, call the Service Center.

Page 70: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

B-8 47 A2 52UL Rev01

B.14 PAS13. CLOSE PRTLIB. RC= <RETURN-CODE>.

Meaning:

A problem appeared at the CLOSE of the print file (library specified by the PRTLIBparameter, or sequential file specified by PRTFILE).

The return-code gives the reason.

This problem may be due to a system error.

Result:

See previous message.

Recommendation:

See previous message.

B.15 PAS15. PUT ON SYSOUT. RC = <RETURN-CODE>

Meaning:

The compiler could not perform a write operation into the standard SYSOUT.

The return-code gives the reason.

This problem is very uncommon, and may be due to a system error.

Result:

The compiler halts. However the generation of the CU was terminated for the program inquestion.

The message ''PAS00...'' in the JOR indicates which CU's were already generated.

A partial listing is available for the program in processing when the problem occurred.

Recommendation:

If it is a question of an I/O error, check the disk unit as well as the disk volume containingthe file. Inform the Service Center if necessary.

Page 71: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

System Error Messages

47 A2 52UL Rev01 B-9

B.16 PAS15. PUT ON PRTLIB. RC = <RETURN-CODE>

Meaning:

The compiler failed on a write operation into the print file (either a library specified byPRTLIB, or a sequential file specified by PRTFILE in the PASCAL statement).

The return-code gives the reason.

The value RC = DATALIM indicates that the print file is full and cannot be extended.

Remember that:

• The sequential file (PRTFILE) is processed in APPEND mode (new data arrive insequence behind existing data without the latter being erased).

• In the library (PRTLIB), the listing is stored in the member "program-name_L" andreplaces (over-writes) the preceding version if there was one (preceding compilation).

Result:

See previous message.

Recommendation:

See previous message.

Page 72: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

B-10 47 A2 52UL Rev01

B.17 PAS16. GET INLIB FOR: <MEMBER-NAME>. RC=<RETURN-CODE>

Meaning:

The compiler failed on a read operation on some source in the input library (SYS.IN oruser library).

The return-code gives the reason.

A problem of this kind is very uncommon, and may arise from a system error.

Result:

The program (member) is not compiled. Control passes to the following program(member).

Recommendation:

If it is a question of an I/O error, check the disk unit as well as the disk volume containingthe library.

If necessary, contact the Service Center.

B.18 PAS17. OPENS CULIB WORK MEMBER.<MEMBER-NAME>.RC=<RETURN-CODE>

Meaning:

The compiler failed to create the receiving member in the CU library.

The return-code gives the reason why.

Result:

The compiler halts. The preceding version of the program (if it exists) is still availablebecause the compiler works in a temporary member and does not store the result in thepermanent member until the end of the generation of the compiled unit.

Recommendation:

See the message PAS14.

Page 73: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

System Error Messages

47 A2 52UL Rev01 B-11

B.19 PAS18. OPENS CULIB OLD_MEMBER:<MEMBER-NAME>.RC=<RETURN-CODE>

Meaning:

The compiler failed to access the member containing the old version of the CU.

This fault occurs at the time when the old version is replaced by the new.

The return-code gives the reason.

The most probable cause is a system problem.

Result:

The compiler halts.

Recommendation:

See message PAS14.

B.20 PAS19. <PROGRAM-NAME> IS ALREADY AN ALIAS IN CULIB.

DUPLICATE NAME

Meaning:

There was an attempt to create a CU whereas one already exists in the library which hasan exported object (SYMDEF) having the same name as the member which has justbeen compiled.

This problem occurs when several programs which transmit exported objects of thesame names are compiled in the same CU library.

Result:

It is impossible to generate the new CU in this library.

Recommendation:

Enter LIBMAINT CU, and use the LIST command to obtain the name of the procedurecontaining the exported object.

Change the name of the new procedure, or else use another CU library.

Page 74: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

B-12 47 A2 52UL Rev01

B.21 PAS20. GET CULIB OLD MEMBER:<MEMBER-NAME> RC=<RETURN-CODE>

Meaning:

In order to replace an old version of the compiled unit by a new one, the compiler startsby reading the old version.

In this case, a fault occurred in the reading of recorded information.

The return-code gives the reason.

This type of fault is probably due to a system problem.

Result:

Compilation halts.

Recommendation:

See message PAS14.

Page 75: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

System Error Messages

47 A2 52UL Rev01 B-13

B.22 PAS21.PUT CULIB WORK MEMBER:<MEMBER-NAME>RC=<RETURN-CODE>

Meaning:

The compiler failed to write a recording of the CU in the library.

The return-code gives the reason.

The value RC = DATALIM indicates that the library is full.

Remember that the CU is first created in a (temporary) work member before it goes toreplace the preceding version. Space must therefore be available in the library even ifanother version of the program is already there.

Result:

Compilation halts. The old version of the CU, if it exists, remains available in the CUlibrary.

Recommendation:

Another CU library can be used.

If it is a question of an I/O error, check the disk unit as well as the disk volume containingthe library.

It is possible to suppress the old version (old CU) using LIBMAINT CU.

Page 76: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

B-14 47 A2 52UL Rev01

B.23 PAS22. STOW (ADD) CULIB ALIAS <ALIAS-NAME> TO <MEMBER-NAME>

RC=<return-code>

Meaning:

The PASCAL program <member-name> is being compiled.

This program contains a secondary entry point or else a data item with the attributeSYMDEF which is called <alias-name> (object exported with this name).

The compiler attempts to store in the CU library directory this name as an alias of theprincipal entry point, i.e., these two names should point to the same CU.

This message is generated when a fault condition appears during this operation.

The reason is given by the return-code.

The most frequent value of this is RC = DUPNAME, i.e., an exported object having thissame name already exists among the members of the CU library.

Result:

The new member is created, but the alias-name is not cataloged in the directory as analias for the CU member.

Recommendation:

You can use the LIST command of LIBMAINT CU to check the contents of the library.

Page 77: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

System Error Messages

47 A2 52UL Rev01 B-15

B.24 PAS23. CLOSES (DELETE) CU MEMBER: <MEMBER-NAME>

RC=<return-code>

Meaning:

The compiler failed to suppress an old version of the CU in the library.

The reason is given by the return-code.

This problem is very rare, and is probably caused by a system error.

Result:

Compilation continues. The LIST command of LIBMAINT can be used to check thecontents of the library.

Recommendation:

If it is a question of an I/O error, check the disk unit as well as the disk volume containingthe file.

Inform the Service Center if necessary.

B.25 PAS24. CLOSES CULIB WORK MEMBER: <MEMBER-NAME>

RC=<return-code>

Meaning:

The compiler failed to close the CU work member.

The reason is given by the return-code.

This fault is very rare and probably avises from a system error.

Result:

Compilation halts. The old version of the CU normally remains available in the CUlibrary.

Recommendation:

See message PAS23.

Page 78: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

B-16 47 A2 52UL Rev01

B.26 PAS25. STOW (DELETE) CULIB ALIAS: <ALIAS-NAME>OF<MEMBER-NAME>

RC = <return-code>

Meaning:

An old version of the CU exists in the library.

This version contains exported objects (secondary entry points, or data with theSYMDEF attribute) which are classified in the directory as aliases of the principal entrypoint.

In this case, a fault appeared when the compiler attempted to suppress one of thesesynonyms (alias-names).

The reason is given by the return-code.

Result:

Compilation continues. The synonym is not suppressed from the library directory.

There may be the following consequences:

• a PAS22 error, due to the presence of the synonym, (following the same compilation)

• a return-code ADDROUT at linker time (when the name is referenced).

Recommendation:

See message PAS23.

B.27 PAS27. PUT ON SYSOUT LNERR. RC = <RETURN-CODE>

Meaning:

There was a failure to write recorded information in the standard SYSOUT. This errorderives from a software fault.

Result:

Compilation continues. The current recorded information is not put into the print file.

Recommendation:

Inform the Service Center about this problem.

Page 79: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

System Error Messages

47 A2 52UL Rev01 B-17

B.28 PAS27. PUT ON PRTLIB LNERR. RC = <RETURN-CODE>

Meaning:

There was a failure to write recorded information into the private SYSOUT designated byPRTLIB or PRTFILE. This error derives from a software fault.

Result:

Compilation continues. The current recorded information is not put into the print file.

Recommendation:

Inform the Service Center.

B.29 PAS28. CHNAME CULIB FROM WORK: <MEMBER-NAME-1> TO

<member-name-2>.RC=<return-code>.

Meaning:

An old version of the CU exists in the library.

The compiler first created the new version in a temporary work member "member-name-1".

It suppressed the old member then attempted to change the name of the new one from"member-name-1" to "member-name-2" (definitive name).

An error occurred at this moment.

The reason is given by the return-code.

Result:

Compilation halts.

Recommendation:

In the case of an I/O error, check the disk unit as well as the disk volume containing thelibrary.

Contact the Service Center if necessary.

Page 80: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

B-18 47 A2 52UL Rev01

B.30 PAS30. VMMACC WORK. RC = <RETURN-CODE>

Meaning:

A problem appeared in virtual memory file management involving files used by PASCAL.

The reason is given by the return-code.

This problem is due to a system error.

Result:

Compilation halts.

Recommendation:

Inform the Service Center.

B.31 PAS31. VMFOP WORK. RC = <RETURN-CODE>

See message PAS30.

B.32 PAS32. VMFCL WORK. RC = <RETURN-CODE>

See message PAS30.

Page 81: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

System Error Messages

47 A2 52UL Rev01 B-19

B.33 PAS33. OPEN SYSOUT. RC = <RETURN-CODE>

Meaning:

The compiler failed to open the standard SYSOUT required to create the compilationreport.

The return-code gives the reason.

Such an error is very uncommon, and is probably due to a system fault.

Result:

Compilation halts, but the CU has already been created in the CU library.

Recommendation:

If an I/O error is involved, check the disk unit as well as the disk volume.

Contact the Service Center if necessary.

B.34 PAS35. SEGSIZE FCB-POOL. RC = <RETURN-CODE>

Meaning:

A problem appeared in the virtual memory file management of files used by PASCAL.

If the return-code is SGOV (code sent by VMM) and if the incident occurred during theFIXUP phase (name of which indicated by the message PAS45 which normally follows),the cause may be an overflow in the ISN table of the compiler, i.e., the number of arraysand objects declared in the program is too high.

Result:

Compilation halts.

Recommendation:

Check whether we are in the case described above. If so, use dynamic allocation withNEW/DISPOSE for certain of the largest objects.

Otherwise, inform the Service Center.

Page 82: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

B-20 47 A2 52UL Rev01

B.35 PAS39. SOURCE MEMBER = <MEMBER-NAME> IS NOT IN PASLANGUAGE

Meaning:

The source member given as input to the compiler is neither of the type PASCAL (TYPE =PAS) nor DATASSF (TYPE = DATASSF).

Result:

Compilation continues in spite of everything. The result may be unexpected if the sourcecontains, for instance, JCL or COBOL.

Recommendation:

If you can, change the member TYPE using LIBMAINT or EDITOR.

Further explanations on the types of source members are found in the LibraryMaintenance Manuals.

B.36 PAS40. PUT SYSOUT. RC = <RETURN-CODE>

Meaning:

The compiler failed to write recorded information in the standard SYSOUT (operationrequired for tracing).

The return-code gives the reason.

Result:

Compilation halts.

Recommendation:

Inform the Service Center.

Page 83: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

System Error Messages

47 A2 52UL Rev01 B-21

B.37 PAS42. TYPE OF INLIB SHOULD BE SL

Meaning:

The library indicated as input to the compiler is not of type SL.

Result:

Compiler halts.

Recommendation:

Check the JCL and correct it if necessary.

B.38 PAS43. TYPE OF CULIB SHOULD BE CU.

Meaning:

The library designated by the CULIB parameter is not of type CU.

Result:

Compilation halts.

Recommendation:

Check the JCL and correct it if necessary.

Page 84: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

B-22 47 A2 52UL Rev01

B.39 PAS44. THE OF PRTLIB SHOULD BE SL.

Meaning:

The library designated by the PRTLIB parameter is not of type SL.

Result:

Compilation halts.

Recommendation:

Check the JCL and correct it if necessary.

B.40 PAS45. PROCESSING OF <PROGRAM-NAME>: COMPILER GIVES UPIN: <PHASE-NAME>

Meaning:

This message appears each time a compilation halts before its normal termination.

The message supplies:

• the program name

• the name of the phase where compilation halted.

In general, another message in the JOR or in the compilation report indicates whycompilation stopped.

Page 85: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

System Error Messages

47 A2 52UL Rev01 B-23

B.41 PAS46. PROCESSING OF <PROGRAM-NAME>: COMPILER ABORTS IN:<PHASE-NAME>

Meaning:

This message appears when a compilation aborts because of an internal error.

The message supplies:

• the name of the program being compiled

• the name of the phase where compilation halted.

Recommendation:

Inform the Service Center.

B.42 PAS47. VMM TABLE OVERFLOW

Meaning:

An internal problem in the compiler appeared when virtual memory management fileswere used.

Result:

Compilation halts.

Recommendation:

Inform the Service Center.

B.43 PAS48. UPDATE: ERRONEOUS LENGTH

See message PAS47

Page 86: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

B-24 47 A2 52UL Rev01

B.44 PAS56. CALLERS ARE <ADDRESS VALUES>

Meaning:

Information message appearing when a compilation halts before its normal termination.

Recommendation:

Transmit the message contents to the Service Center.

Page 87: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

47 A2 52UL Rev01 C-1

C. Syntax of GCOS Files

C.1 SYNTAX OF A FILE LITERAL

file literal::= local-file \ remote-file (1)remote file ::= $site-name {:string1 | :protected-string | {/ | ! | ^ | | > | < | .}string-2}site-name ::= name-8string-1 ::= any combination of up to 255 characters excluding ,;= # % ' " ()s&? and spaceprotected-string ::= a GCL protected string of up to 255 charactersstring-2 ::= like string-1 but restricted to 254 characterslocal-file ::= { [$TEMPRY] [$CAT [i]] [$UNCAT] [$RES] full-path-name [/g-suffix] [..subfile ] [:md [/md] ... :dvc] [$MFT [i | +]] [$NATIVE ] [$NONE ] [$COMPACT ] [$NSTD ]

| * input-enclosure-name | SYSIN .. input-enclosure-name | DUMMY | SYS.OUT | * : md [/md] ... :dvc [ $UNCAT | $NATIVE | $COMPACT ] | [ full-path-name ] : [md] : [ TNC/tdb ] [ $UNCAT ] (2) | rel-asc-path [/g-suffix] [..subfile] [ $NATIVE ] | rel-desc-path [/g-suffix] [[..subfile] [ $NATIVE ] } (1) : remote file not implemented (2) : TNC not implemented (see $TERMINAL).

full-path-name ::= simple-name [.simple-name] ... rel-asc-path ::= <[</ ... simple-name [.simple-name] ... rel-desc-path ::= .simple-name [.simple-name] ... g-suffix ::= { Gdigit4 [Vdigit2] |G+digit4 [Vdigit2 |G-digit4 [Vdigit2] |G+ [Vdigit2] |G- [Vdigit2] |G_name5 |Vdigit2 }

subfile ::= name31 input-enclosure-name ::= name16

Page 88: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

PASCAL User's Guide

C-2 47 A2 52UL Rev01

C.2 SYNTAX OF A VOLUME LITERAL

[$NATIVE ] [$NONE ]md[/md] ... :dvc [ ] [$NSTD ] [$COMPACT]

Page 89: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

Vos remarques sur ce document

Titre : DPS7000/XTA NOVASCALE 7000 PASCAL User's Guide Languages: Pascal

Nº Référence : 47 A2 52UL 01 Date: December 1986

ERREURS DETECTEES

AMELIORATIONS SUGGEREES

Vos remarques et suggestions seront examinées attentivement.Si vous désirez une réponse écrite, veuillez indiquer ci�après votre adresse postale complète.

NOM : Date :

DOCIETE :

ADRESSE :

Remettez cet imprimé à un responsable BULL ou envoyez�le directement à :

Bull - Documentation Dept.

1 Rue de ProvenceBP 20838432 ECHIROLLES [email protected]

Page 90: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

Bon de commande de documents techniques

Pour commander des documents techniques, remplissez une copie de ce formulaire et envoyez�la à :

BULL CEDOC357 AVENUE PATTONB.P.2084549008 ANGERS CEDEX 01FRANCE

Téléphone: +33 (0) 2 41 73 72 66FAX: +33 (0) 2 41 73 70 66Couriel: [email protected]

Reference CEDOC Désignation Qte'

_ _ _ _ _ _ _ _ _ [ _ _ ]

_ _ _ _ _ _ _ _ _ [ _ _ ]

_ _ _ _ _ _ _ _ _ [ _ _ ]

_ _ _ _ _ _ _ _ _ [ _ _ ]

_ _ _ _ _ _ _ _ _ [ _ _ ]

_ _ _ _ _ _ _ _ _ [ _ _ ]

_ _ _ _ _ _ _ _ _ [ _ _ ]

_ _ _ _ _ _ _ _ _ [ _ _ ]

_ _ _ _ _ _ _ _ _ [ _ _ ]

_ _ _ _ _ _ _ _ _ [ _ _ ]

_ _ _ _ _ _ _ _ _ [ _ _ ]

_ _ _ _ _ _ _ _ _ [ _ _ ]

[ _ _ ] : La révision la plus récente sera fournie si aucun numéro de révision n'est indiqué.

NOM : Date :

SOCIETE :

ADRESSE :

TELEPHONE : FAX :

COURIEL :

Pour les Filiales Bull :

Identification :

Pour les Clients Affiliés Bull :

Code Client :

Pour les Clients Internes Bull :

Section Budgétaire :

For les autres : Merci de demander à votre contact Bull.

Page 91: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION
Page 92: PASCAL User's Guide - Bull On-line Support Portalsupport.bull.com/ols/product/system/gcos7/gcos7... · PASCAL User's Guide Languages: PASCAL Decembre 1986 ... 2.3 INTERACTIVE COMPILATION

BULL CEDOC

357 AVENUE PATTON

B.P.20845

49008 ANGERS CEDEX 01

FRANCE

47 A2 52UL 01REFERENCE