Et språk som bygger seg selv
Norscode er selvhostende — kompilatoren er skrevet i språket den kompilerer. Det er den strengeste testen.
Kompilatoren som gjør Norscode-kode om til noe maskinen kan kjøre, er selv skrevet i Norscode. Det høres nesten sirkulært ut — hvordan kan et språk kompilere seg selv før det finnes? Svaret er en liten oppstartsbinær som får ballen til å rulle, og etter det bygger språket seg selv.
Den strengeste testen
En kompilator er et av de mest krevende programmene du kan skrive. Den er full av tekstbehandling, store datastrukturer, kronglete logikk og null rom for uklarhet — én feil et sted, og alt annet blir feil. Klarer et språk å uttrykke sin egen kompilator på en lesbar måte, har det bestått en prøve de fleste programmer aldri kommer i nærheten av.
En praktisk gevinst
Det betyr også at det ikke ligger et annet språk skjult under. Den som kan Norscode, kan lese verktøykjeden — kompilatoren, lenkeren, standardbiblioteket — uten å måtte lære et fremmed system først. Det er ingen ekstra terskel mellom deg og hvordan koden din faktisk blir kjørt.
Tillit gjennom åpenhet
Når hele veien fra kildekode til kjørende program er skrevet i ett språk du kan lese, er det færre svarte bokser å stole blindt på. Du kan følge sporet selv. Selvhosting er ikke et kunststykke for skryt; det er en måte å gjøre systemet gjennomsiktig på.
Et språk som bygger seg selv, sier noe om at det er ferdig nok til å tas på alvor — og at ingen deler av det er unndratt innsyn.
Hva det betyr for deg som bruker
Du trenger ikke bry deg om bootstrapping for å ha nytte av at Norscode er selvhostende. Den praktiske gevinsten er tillit: hele veien fra koden du skriver til programmet som kjører, er skrevet i ett språk du kan lese. Det ligger ikke en fremmed verktøykjede i et annet språk mellom deg og det som faktisk skjer. Vil du forstå hvordan noe fungerer, kan du åpne kilden og følge sporet selv.
Færre svarte bokser
I de fleste systemer er det ledd du bare må stole på uten å kunne ettergå dem — en kompilator skrevet i noe annet, en kjøretid du ikke ser inn i. Når kompilatoren, kjøretiden og standardbiblioteket alle er skrevet i det samme lesbare språket, krymper listen av ting du må ta på tro. Åpenhet er ikke bare et prinsipp her; det er en egenskap ved hvordan systemet er bygget.
Et tegn på at det holder
At et språk kan uttrykke sin egen kompilator, er også en påstand om modenhet. En kompilator er stor og kronglete og tåler ingen uklarhet; klarer språket den, klarer det det meste. Selvhosting er derfor ikke skryt for skryts skyld — det er både et bevis på at verktøyet holder, og en måte å gjøre hele veien gjennomsiktig på.
Les også
- Nytt nettsted for språketnorscode.no handler nå om programmeringsspråket, med dokumentasjon, eksempler og nedlastinger.
- Hvorfor kjøretiden sier neiEn kort forklaring av kapabilitetsmodellen, og hvorfor den er slått på fra første stund.
- Kompilatoren bygger seg selvNorscode er selvhostende: verktøykjeden er skrevet i språket den kompilerer.