Go to the first, previous, next, last section, table of contents.

1. Compiler Overview

1.1 Overall Objective

Write a COBOL compiler as a front end to GCC. The target is ANSI COBOL 85 with its addenda and clarifications, and one or two IBM COBOL for MVS extensions, as yet undefined - any extensions will be documented.

Licence: GPL (GPL Library licence for runtime - this means you can't put standard GPL code as opposed to LGPL code into the runtime).

1.2 Licence and NO WARRANTY

The COBOL for GCC system is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

In other words, you are welcome to use, share and improve this program. You are forbidden to forbid anyone else to use, share and improve what you give them. Help stamp out software-hoarding!

1.3 Why Write a COBOL Compiler

Note: The use of the term 'COBOL' should not be taken as a representation that the COBOL for GCC system is an accurate, functional or complete implementation of the COBOL language.

It is true that COBOL has not usually been the language of first choice for free software. The Hacker's Dictionary definition is less than glowing in its praise of the language. However the enormous success of the language in the face of dismissal by hackers and academics suggests they may be missing something. When the facts and the theory collide, sometimes the theory needs to be examined anew.

Here are some reasons for writing a free COBOL compiler:

  1. There is no complete free COBOL compiler.
  2. Because of the good features of COBOL described above.
  3. To allow mainframe code to be ported to and from GNU/Linux easily. COBOL and assembler are the only languages that run well on IBM mainframes.
  4. To allow me to fix some of the problems with COBOL via extensions. This was my idea anyway. The size of COBOL means it will be a big achievement just to get the standard function going.

Go to the first, previous, next, last section, table of contents.