[fpc-other] What makes a Compiler project (like FPC) special?

Nikolay Nikolov nickysn at gmail.com
Sat May 27 20:51:57 CEST 2017



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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-other/attachments/20170527/0adbcb1a/attachment.html>


More information about the fpc-other mailing list