The Burning Questions

Otieno Ododa datahntr@aimnet.com
Wed, 18 Nov 1998 23:30:12 -0800


I apologize for not being very active. I am very interested in helping with the project, but among other things, I'm somewhat lost by some of the things being discussed (parse trees, syntactic sugars, static vs dynamic library bindings; I think I understand the last issue). As I figure out what's going on, I may be able to contribute more.

-----Original Message-----
From:	Tanton Gibbs [SMTP:thgibbs@Harding.edu]
Sent:	Sunday, November 15, 1998 11:15 PM
To:	ultra-devel@bay-city.net
Subject:	Re: The Burning Questions

>>There are going to be heaps of questions that need to be answered at
>some point, so I've tried to wrack my brain trying to think of them to
>get them out in the open.  Many are like religious issues, some are
>arbitrary and some probably have clear cut answers.  But which is which?
>Anyway, here goes:

>>* The Compiler
>>
>>What will be the target platforms:  JVM, Our own VM, Win32, Mac, Unix,
>Output To C, Something else?
    I'm afraid to say the JVM because of much of the legal battles/copyright
up in the air quality of Java not to mention that Java is still not the
fastest language to be executed, although it is gaining on compiled
programs.  I think we should output either to C or to Unix.  The reason not
Win32 is that because most people who do development and would need an
experimental compiler do so at a university that usually uses Unix or VMS.
Win32 is not used a lot for expiramental research on language/compiler
design
>>

[Otieno Ododa]  

I think output to C gives a measure of portability while making speed less of a problem. The resulting output could be tweaked by the programmer, if he/she knew C. Perhaps, also, we could consider output to C++ (perhaps that was implied in the original suggestion) ? I don't like Java for many reasons, none of them particularly good reasons ;) . My few experiences with Java left me wishing for something different.

>>What tools shall we write?
  As few as possible.  We should rely on previously written tools like Flex
and Bison if at all possible.

[Otieno Ododa]  

I haven't the faintest idea what either is, but I'll look them up ... intelligent editors seems to me to be a good idea, but the only reasons I can think of come from a beginner's perspective really.


>>What optimisations can we do?
  I think we'll have to know more about the structure of the language and
intermediate code before we start categorizing these.
>>
>>What will be the general structure of the compiler?
  Boy, this one is vague :)  I'm sure the standard front-end -> back-end
both using symbol-table will be the general structure.

[Otieno Ododa]  

An intelligent editor might take some of the burden of a compiler. If all source was saved in "somewhat compiled form", this might speed compilation, perhaps. Use a symbol table, shortened names for commands, something like assembly mnemonics which translate to actual commands. I don't know how sensible all that sounds, and I apologize if it sounds dumb ;) .

>>* The Language
>>
>>What facilties should be in the library?  Bear in mind that since we
>are an open source project, we will let anybody include the code in
>their compiler.  Hence, one reason against large libraries (the need to
>write them) is gone.
>>
  We have to have a standard string class, I/O classes, OS classes,
Container classes, memory management if not garbage collected, general
search and sort, and math...that, naturally, is minimal.

[Otieno Ododa]  

A string class is a must, please ;) ! I despised the lack of 'useful' string functions in C, and I haven't played with anyone's string classes in C++. I heard somewhere that up to %80 of a program is for handling strings. Why make that harder for the programmer than it needs to be ?


>>How much and what syntactic sugars should we use?
  Enough, but not too much...how's that for a vague answer!

[Otieno Ododa]  

I don't have the faintest idea what a syntactic sugar is.

>>* The Project

[Otieno Ododa]  

More comments on the rest later. It's late, and I'm tired ;) .