Using, Maintaining and Enhancing COBOL for the GNU Compiler Collection (GCC)
1. Compiler Overview
1.1 Overall Objective
1.2 Licence and NO WARRANTY
1.3 Why Write a COBOL Compiler
2. COBOL Overview
2.1 Use of Material from the COBOL Standard
2.2 Purpose of COBOL
2.3 What's Good About COBOL?
2.4 What's Bad About COBOL?
3. Invoking
3.1 COBOL Editing mode for emacs - cobol.el
3.2 ASCII to EBCDIC Conversion coba2e
3.3 EBCDIC to ASCII Conversion cobe2a
3.4 DOS text to Unix text Conversion cobd2u
3.5 Unix text to DOS text Conversion cobu2d
3.6 Fixed Length to Variable Length Records cobf2v
3.7 COBOL Preprocessor cobpre
3.8 Main COBOL Compiler cobcc1
4. Installing the COBOL Compiler
5. Syntax of COBOL programs
5.1 Reference Format
5.2 Preprocessor
5.2.1 COPY Verb
5.2.1.1 COPY Verb Examples
5.2.1.2 COPY Verb Syntax
5.2.1.3 COPY Verb Restrictions
5.2.1.4 COPY Verb Processing
5.2.2 REPLACE Verb
5.2.2.1 REPLACE Verb Examples
5.2.2.2 REPLACE Verb Syntax
5.2.2.3 REPLACE Verb Processing
5.3 Definitions of syntactic elements and terms.
6. Extensions Supported in the COBOL Compiler
7. Implementation defined values and behaviours
8. Implementation Limits
9. Known Causes of Trouble with COBOL for GCC
10. Known Bugs in COBOL for GCC
10.1 Bugs to be Fixed
10.2 Bugs Not to be Fixed
11. How To Get Help with COBOL for GCC
12. Contributing to COBOL for GCC Development
12.1 Contributors to COBOL for GCC
12.2 COBOL Subset for use within the compiler
12.3 Programming Standards and Methodology
13. How COBOL for GCC Works
13.1 FILES
13.2 Processing Strategy
14. Writing a Compiler Front End
14.1 Background
14.2 Introduction
14.3 Overview of the GCC Compiler back end
14.3.1 GCC Construction Overview
14.3.1.1 Code size analysis
14.3.1.2 Separation of Language and Common Part
14.3.1.3 Modularity
14.3.1.4 Extension of the tree Structure
14.3.2 Compiler Driver
14.3.2.1 Translation Process
14.3.2.2 Two Principal Possibilities
14.3.2.3 Translation into RTL
14.3.2.4 Constructs Supported by the Tree Format
14.3.2.5 Control Structures
14.3.2.6 Additional Constructs
14.3.2.7 Calling Up of Optimization and Code Creation
14.3.3 Modules of Interest
14.3.3.1 Top Level Module
14.3.3.2 Output of Debugging Information in Various Formats
14.3.3.3 Creation of syntax trees for expressions and more
14.3.3.4 Storage Management
14.3.3.5 Storage Management
14.3.3.6 Data Formats
14.3.3.7 Initialization functions
14.3.3.8 Access Macros
14.3.3.9 TREE_CODE Constants
14.3.3.10 Creation of RTL code for Control Structures
14.3.3.11 Creation of RTL code for Routines
14.3.3.12 Processing of Type Declarations
14.3.3.13 Simplification of Constant Expressions
14.3.3.14 Creation of External Declarations
14.3.3.15 Tree Debugging Information
14.3.3.16 Modules for Creation of of RTL Code
14.3.3.17 Transformation of RTL code
14.3.3.18 Machine Independence
14.3.3.19 Conclusion
14.3.4 Symbol Table
14.3.5 Callback
14.3.5.1 Top Level Variables - tree nodes
14.3.5.2 Other Variables - tree nodes
14.3.5.3 Functions for Types
14.3.5.4 Back end Access to Symbol Table
14.3.5.5 Initialization and Cleanup
14.3.5.6 Language Specific Initialization
14.3.5.7 Accounting
14.3.5.8 Debugging Help
14.3.5.9 Input
14.4 Creating Your Own GNU Compiler
14.4.1 The Official GNU Way
14.4.2 A Possible Alternative
14.4.3 Driver Program
14.4.4 Modifying toplev.c
14.4.5 Makefile and Configuration
14.5 Generating RTL from the syntax tree
14.5.1 Memory Management
14.5.1.1 Storage for enduring objects
14.5.1.2 Storage for short-lasting objects
14.5.2 Calls Common to All Tree Nodes
14.5.3 Routines
14.5.4 Scope
14.5.5 Types
14.5.5.1 Basic Types
14.5.5.2 Integral Types
14.5.5.3 Array Types
14.5.5.4 Function Types
14.5.5.5 Record Types
14.5.5.6 Pointer Types
14.5.5.7 Variants of Types
14.5.5.8 Other Types
14.5.6 Declarations
14.5.6.1 Variables
14.5.6.2 Formal Parameters
14.5.6.3 Field Declarations for Record Types
14.5.6.4 Declarations for Routines
14.5.6.5 Declarations for Jump Labels
14.5.6.6 Declarations for Symbolic Constants
14.5.6.7 Declarations for Named Types
14.5.7 Building Expressions
14.5.7.1 Logical Expressions
14.5.7.2 Arithmetic Expressions
14.5.7.3 Comparison Expressions
14.5.7.4 Constant Expressions
14.5.7.5 Function Call Expressions
14.5.7.6 Conversion Expressions
14.5.7.7 Storage Access Expressions
14.5.7.8 Control Structures for Functional Programs
14.5.7.9 Other Expressions
14.5.8 Code for Control Structures
14.5.8.1 Conditional Statements
14.5.8.2 Looping Statements
14.5.8.3 Multibranch Statements
14.5.8.4 Jump Statements
14.5.8.5 Other Jump Statements
14.5.9 Other Statements
14.5.9.1 Calls and Assignments
14.5.9.2 Return from Routines
14.6 Tree Summary and Overview
14.7 GCC Internals Information
14.8 Tree Changes
14.9 Tree Examples
14.9.1 Introduction to the Tree Examples
14.9.2 Tree Example Code - exa
14.9.3 Tree Example Code - toy
15. GNU
15.1 Funding Free Software
15.2 Linux and the GNU Project
15.3 GNU GENERAL PUBLIC LICENSE
Preamble
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
NO WARRANTY
END OF TERMS AND CONDITIONS
15.3.1 How to Apply These Terms to Your New Programs
Index
This document was generated on 24 January 2001 using
texi2html
1.56k.