Programmerins filosofi?

greenspun.com : LUSENET : Grundlæggende Programmering F2001 : One Thread

Dette spørgsmål er vist lidt hønen og ægget agtigt, men alligevel...

Som jeg har forstået det, så er java et programmeringssporg der omsættes til et andet sprog, når man compiler.

Mit spørgsmål er:" Hvad er java skrevet i?"

Jeg kan forstå, at der er et sykke under overflade er tale om maskinkode, men hvad er da maskinkode skrevet i?

Altså Hvordan er koblingen fra nogle elektriske kredsløb til, at datamaten kan udfører fx. en if else ordre. Hvordan lærer maskinen denne syntax? HVordan kommer det til at give mening...

Kristian

-- Kristian Tørning (toerning@it-c.dk), February 11, 2001

Answers

Ja det er et godt emne. Oversætteren javac er skrevet i Java, men fortolkeren java (som egentlig udfører programmerne) er skrevet i C. C-oversætteren som nogen i sin tid har oversat Java-fortolkeren med er også skrevet i C, men genererer maskinkode (nærmest en række tal), som direkte kan udføres af maskinen.

Men hvordan oversatte man første gang javac, inden man havde en oversat Java-oversætter? Man startede formentlig med en simpel Java-oversætter, som man oversatte til Java-mellemkode med håndkraft, hvorefter man kunne bruge den håndoversatte Java-oversætter til maskinelt at oversætte Java-oversætteren til Java-mellemkode. Derefter behøvede man aldrig igen håndoversætte den, men kunne gradvis udvide den til at klare mere og mere indviklede Java-konstruktioner, og hver gang bare oversætte den nye oversætter med den gamle for at få en ny og bedre kørende Java-oversætter. Det kaldes bootstrapping, og man skal have tungen lige i munden når man gør det.

-- Peter Sestoft (sestoft@dina.kvl.dk), February 11, 2001.


Moderation questions? read the FAQ