D, so it happend...

Ellery Newcomer ellery-newcomer at utulsa.edu
Mon Apr 6 14:48:22 PDT 2009


Baas wrote:
>> No. Just .. no.
>>
>> On the off chance that you're serious about that - XML is a data format that encodes tree-like hierarchical information.
>>
>> But if your parser isn't already using a tree-like structure internally, you're doing something wrong.
>>
>> And if it is, there's absolutely no reason to use XML as some weird sort of intermediary stage.
> 
> I've used the "Analysis-Synthesis Model" for the overall design (to "re-invent the wheel" :) ), as I've done lots of times in the past.
> 
> The Analysis-Synthesis Model is clearly based on a tree-structure.
> - Lexical Analysis
> - Parsing/Syntax Analysis
> - Semantic Analysis
> - Intermediate Code Generator
> - Code Optimizer
> - Code Generator
> Lexical- and Syntax Analysis is handled in a single pass. (just a reminder)
> 
> Instead of writing a lot of additional code to work with and to identify the source/tokens, I simply dump all the tokens into a xml format using Regular Expressions search/replace. 
> This takes up to 30 passes for completion and, yes, this is where most of the time is used.
> From there on it's straight forward to do any kind of analysis with the code/tokens.
> The key is when it gets to the phase of optimization. 
> In this case, the compiler (or should I be fair and call it "the converter"), has a complete "engine" behind it which takes care of all the information in a proper manner.
> Cutting, moving, merging, passing referenses and occasionally adding additional code is done with ease.
> It's already possible at that stage to systematically assign (and measure) a "Unit of Fitness" (Genetic Analysis), if I may call it that, to the individual code blocks.
> By measuring the fitness, the converter knows where to focus to improve performance.
> After optimization, converting it to HLA obviously opens a Pandora's box of a different kind. You know the rest...
> 
> To summarize, optimization is taken care of even before convertion to HLA takes place, and that's why I use xml (it's a matter of preference).
> 
> Technically, thats the basic overview of the operation, and yes, I AM SERIOUS ABOUT THIS!
> 
> So, be positive... :)
> 


I'll be positive, but only if you promise you didn't sacrifice nesting 
comments in the process. Also, if you haven't already, you should trash 
D's cyclic dependency policy.



More information about the Digitalmars-d mailing list