· Text 41 · w8 · inlagg
Ganska precis nu så har jag fixat till en metacompiler för
Cp/m-figgen. Tyvärr kan den inte läggas upp i monitorn i
nuvarande skick, eftersom den är copy-right-skyddad. (Jag
får alltså skrivo om den först). Om någon (erfaren) forth-
hackare har intresse att göra något för ABC-forth, så
får denne någon naturligvis en kopia. (Själva metacompilern
består av 13-14 skärmar, men sedan tillkommer källkoden för
fig-kärnan 100-120 skärmar, så det tar tid att föra över
via modem. Alltså: med ordet intresse ovan menar jag då
INTRESSE!)
Nu kan man fråga sig vad en metacompiler är. I stället för
att fig-kärnans källkod upplagd på en assembler-fil, har man
den upplagd på forth-block. Detta öppnar nya möjligheter att
manipulera koden.
Naturligtvis kan man köra källkoden rakt av igenom kompilern
och få en ny körbar forthkärna. Ibland när man jobbar med
STORA program kanske man får ont om minnesutrymme, så har man
möjlighet att göra en ny kärna men där namnfältet är begränsat
till, säg 3 boksäver + längdbyte. Om man utgår från att
genomsnittslängden är 5 bokst och programmet består av 2000
ord, så sparar man då 4000 byte.
Med redan färdigutvecklade program kan compilera helt utan
namnfält och länkfält. Under samma förutsättningar som ovan
sparar man här 16000 byte. Dock mister man då forthens
interpreterande förmåga. Vilket i.o.f.s. leder till att man
kan ta bort de delar i kärnan som understödjer denna, d.v.s.
man spar ännu mer utrymme.
Troligen är det ingen svårighet att generera program och kärnor
där bara vissa ord har namnfält. Man kan här spara mycket ut-
rymme samtidigt som man inte mister forthens interpreterande
egenskaper.
I ett längre perspektiv finns andra möjligheter. Man kan enkelt
generera forthsystem till andra datorer. På så sätt är man
livstidsförsäkrad att alltid få med sig språket när man byter
till ny dator.
M.a.o. borde det vara förbjudet att vara utan en metacompiler.
Snacka med KO eller NO om saken!!