Am I missing something here?

The below is an excerpt from a blog where the writer lamented that the 
ubiquitous <?> language "C" was available everywhere, for free, except for the 
mainframe.  And then rejoices that it finally came to the mainframe...

Okay, that part I get.  The part that interests me is since "C" was not 
available, 'mainframe users could have been in a position of having to write 
code in a "non-standard" language...'  A language like what...?  Cobol per 
chance...  Maybe assembler?

As I started this, am I missing something here?

Inquiring minds want to know.


--------------
Compiling a Nation
Today I have an interesting analogy. This is one of these concepts I have in my 
head, and I have hitherto assumed everyone else had, but I have since learned 
not to make such assumptions, and to instead begin the laborious process of 
teaching people how to think.

Anyway, in computing there is a language called "C", which is basically the 
equivalent of "English". It is ubiquitous. Every platform on the planet has a C 
compiler available. However, there are still some companies where you won't 
actually find it installed, because it costs money, and on an IBM mainframe, 
that can be a lot of money, when it is not a commonly-used language. For most 
people, there is a free compiler called "gcc" available, so they can use that 
rather than have nothing. Except for IBM mainframe users. Who up until very 
recently (2004) had no free C compiler available to them, and could have been 
in a position of having to write code in a non-standard language instead.

IBM mainframes were the last unconquered territory. I used to work on IBM 
mainframes and I know what it's like to not have a C compiler available. It's 
tragic. So, for decades I dreamt that one day we would get a free C compiler on 
the mainframe, so that the world would be safe for C programmers. That day came 
in 2004. There's been a lot more work done since then, and the project (GCCMVS) 
is now in sourceforge and a new release is expected imminently (there's just 
some bug in VM being ironed out by someone else at the moment - but we're 
talking weeks to a month or so). The new compiler is about 3 meg in size. On 
MVS 3.8 there's about 9 meg in total available to the user.

Anyway, to get a compiler that is native to MVS, you need to have a tool to 
build it. The gcc C compiler is actually written in C itself. Therefore, to the 
tool you need is another C compiler! What this means is that in order to build 
gcc native to MVS, there is a 3 stage process.

Stage1: Compile gcc using some other C compiler (or a cross-compiler).

Stage2: Compile gcc using the output of stage1.

Stage3: Compile gcc using the output of stage2.

stage2 and stage3 need to be confirmed to be identical. Once they are confirmed 
identical, it means that the stage2 compiler is a native MVS compiler, and it 
has the ability to rebuild itself if you want to make improvements to it. It is 
totally "clean". It no longer has any relation to the original compiler used to 
build stage1

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to