Jag tror knappast att du behöver föreläsa om hur Java fungerar "under the hood".
Alla här är nog helt medvetna om det. Det är ju inget konstigt eller nytt med
det igentligen. Interpreterande språk (som alltså bygger på i princip samma
grundprincip som JAVA/JVM) har ju funnits väldigt länge.
> Lite otydlig var jag där, syftade på C++ som man ska jämföra Java med
Nu så ser det ju ut som att du tänker på helt andra processorer än de som normalt
avhandlas här (AVR/PIC o.s.v), men generellt är C++ lika olämpligt för
mikrokontrollers som Java (OK, kanske lite mindre olämpligt). Så jämförelsen
är mest akademisk utan större praktiskt värde.
> Men då går det inte köra programmet på en annan
> processor vilket är själva grundtanken med Java.
Och det är *stora* problemet med Java. Att man försöker göra det till "allt för alla"
vilket gör att det igentligen inte fungerar riktigt bra någonstans. Enanvändarmiljöer
som en PC eller desktop Linux/unix maskin undantaget kanske.
> Det är bara att klicka igång programmet (bytekoden).
Och JVM'en. Bara bytekoden i sig går inte att köra på någon (normal) processor
utan någonting som tolkar den. Att du väljer att betrakta det som att bytekoden
faktiskt "körs" av processorn kan jag bara tolka som att du inte riktigt förstått
hur det fungerar.
> Den virtuella maskinen ska ju göra om bytekoden till maskininstruktioner.
Njae, JVM'er med JIT gör väl det *delvis*, annars så *tolkas* (interpreteras) bytekoden.
Eller hur menar du igentligen ?
> Java är inte ett interpreterande språk som läser syntaxen,
Nej, mer som vissa Pascal varianters p-kod. Eller hur ?
> Med en processor som kan köra bytekoden direkt så behövs ingen virtuell maskin,
> det är en renodlad Javaprocessor.
OK, det är inte helt tydligt vad du menar med att "köra direkt", men så vitt
jag förstår så har alla "Java-processorer" en firmware med en (slags) JVM som
"kör" den bytekod som man kastar in. Jag har i alla fall aldrig sett en processor som
exekverar bytecode direkt i microkoden (d.v.s i själva hårdvaran).
En undran...
Vad kan du om programmering förrutom det du läste på Java kursen ?
Har du programmerat någonting alls i något annat språk ?
Har du läst/studerat någonting annat än Java ?
Ge oss gärna lite referensramar så är det lättare att förstå hur du ser på det hela.
> Nej inte inbyggd kompilator.
Nej, jag tror att danielr112 menade "inbyggd interpretator", d.v.s i princip en (lite bantad) JVM.
Om danielr112 faktiskt menade "inbyggd kompilator" så håller jag dock med dig...
