Vorige Inhoud Volgende
_________________________________________________________________
Toekomst 860409 (c) 1986 by ORD-GROUP 59
Toekomst
Onze toekomstplannen omvatten o.a.
- Het schrijven van een C compiler. Dit moet een volledige
optimaliserende C compiler worden. We zullen uitgaan van het boek
"The C programming language" als beste taaldefinitie.
- Het ontwikkelen van een nieuwe objectformat en het schrijven
van de bijbehorende linker. Een compiler of een assembler
genereert zogenaamde object code. Met een linker kunnen verschil-
lende stukken objectcode worden samengevoegd tot een enkel
programma. Dit maakt het mogelijk om programma's in losse modules
te schrijven en te compileren.
Ons huidige objectformat is bij lange na niet goed genoeg voor
een goed systeem van modules en libraries. Wij zullen daarom een
nieuw objectformat ontwikkelen die o.a. aan de volgende specifi-
caties zal voldoen:
De objectfile moet natuurlijk relocatie-informatie bevatten.
Labels die in een module zijn gedefinieerd als extern bruikbaar
kunnen door andere modules worden gebruikt. Het is mogelijk om
een label dat in een andere module wordt gedefinieerd met een
offset te gebruiken. Men kan dus een plaats definieren waar de
waarde van dat label plus een offset moet komen te staan. Dit
wordt vooral gebruikt in compiler output b.v. om een bepaald
array element efficient te kunnen gebruiken.
De linker moet ook interne labels kunnen invullen. Deze labels
zijn alleen bekend binnen een module. Dit systeem maakt het
mogelijk om compilers hun output in een pass te laten genereren
zonder terug te moeten gaan in de objectcode om dingen in te
vullen. De linker moet in staat zijn om van een objectfile alleen
de interne labels in te vullen en de objectfile dan weer terug te
schrijven.
In een objectfile moet ruimte zijn voor compiler informatie. Dit
staat compilers toe om te zien wat voor procedures en functies in
een bepaalde module worden gedefinieerd. Dit maakt b.v. type-
checking mogelijk over de modulegrenzen heen.
Een module moet hints kunnen bevatten betreffende de libraries
die het nodig heeft. Dit maakt gebruik van de linker eenvoudiger.
De objectformat zal 3 aparte areas kennen. Code en read only,
geinitialiseerde RAM en ongeinitialiseerde RAM. Dit is nodig in
verband met veiligheid en geheugencontrole in een goed operating
systeem. (Zie ook het UNIX objectformat.)
Wij kennen geen enkele objectformat die al deze mogelijkheden
heeft. Deze objectformat moet b.v. alles kunnen wat onder UNIX
mogelijk is en nog wat meer.
_________________________________________________________________
Vorige Inhoud Volgende