On 05/27/2017 07:59 AM, Paul Robinson wrote:
Graeme Geldenhuys asked in Vol 108, Issue 27, "What makes a compiler
project special?"
Well, I'm not a member of the FPC but I've worked on several compilers
and I'll throw in my 0.02 Euro into the discussion.
> Since Florian mentioned that a compiler project is "rocket science"
[not his
> direct words, but he hinted at that] and totally different to any
other software
> project... It has really bugged me... Why is it different, and What
is different?
I'm going to have to disagree here, and it may simply display my own
ignorance of the subject, but, then again, even a stopped clock is
right twice a day.
A compiler is a "language processor," an application that converts
code in one language into something else. If it's a translating
compiler it converts it to another language. If it's a language
compiler it converts it to binary code or potentially to assembly
language. (I'm making a bit of a distinction in that a compiler that
translates to assembly code isn't a "translator" because it is using
the assembler to save some of the work in not "reinventing the wheel"
and not having to create its own object file writer, and because
compilers generating assembly are usually creating a finished output
requiring no manual intervention. Most translators that change source
from one (high level) language to another produce results that often
require manual correction. Few translators produce "perfect"
high-level to high-level conversions without some work. They'll do the
"heavy lifting" but often minor "tweaks" or checking is required by
the person.)
At its core, a language processor is a text processing application. It
takes a fixed combination of rules on what the programmer can and must
"say" in order to specify the particular actions they want a program
to accomplish. Given these rules, which are called "grammars" the
programmer describes the program and the compiler takes that
description and turns it into the target representation of that
description.
Well, a mathematician is also a text processor, therefore mathematics is
simple, right? :)
Nikolay
_______________________________________________
fpc-other maillist - fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other