Vad är kompilatorer?  - 1

"Hej, Amigo. Jag heter professor Hans Noodles. Jag är chef för det vetenskapliga rådet här på Galactic Rush. Jag övervakar också våra ansträngningar att lära dig Java-programmering."

"Hej, professor Nudlar."

"Jag skulle vilja förklara för dig varför Java är ett väldigt coolt programmeringsspråk. "

"Du kommer att höra mer än en gång att Javas oöverträffade fördel är dess plattformsoberoende . Vad är det och vad är det till för, frågar du dig? Låt mig ta en omvägande strategi."

"En dator kan bara utföra de enklaste numeriska kommandona. När vi tränar hundar använder vi kommandon som 'Heel', 'Shake', etc. för att få en hund att göra något vi vill att den ska göra."

"För datorer spelar siffror rollen som sådana kommandon. Varje kommando representeras av ett visst nummer eller kod (kallas ibland maskinkod)."

"Men det är verkligen svårt att skriva ett program som bara använder siffror, så folk uppfann programmeringsspråk och kompilatorer . Ett programmeringsspråk kan förstås av både människor och kompilatorer. En kompilator är ett speciellt program som konverterar ett program skrivet på ett programmeringsspråk till ett serie av maskinkoder."

"En programmerare skriver vanligtvis ett program i ett programmeringsspråk och kör sedan en kompilator, som förvandlar programkodfilerna skrivna av programmeraren till en enda fil med maskinkod - det slutliga (kompilerade) programmet."

  • Program i C++
  • Kompilator
  • Maskinkod

"Det resulterande programmet kan köras av datorn omedelbart. Den dåliga nyheten är att koden för det slutliga programmet starkt beror på processorn och operativsystemet. Det betyder att ett program som kompilerats för Windows inte kommer att fungera på en Android-smarttelefon."

"Så, om jag skriver ett program och kompilerar det för Android, fungerar det inte på Windows?"

"Exakt."

"Jag förstår."

"Men Java använder sig av ett mycket mer innovativt tillvägagångssätt."

  • Program i Java
  • Java kompilator
  • Särskild plattformsoberoende kod (bytekod)
  • JVM
  • Maskinkod

"En Java-kompilator kompilerar inte alla klasser till ett maskinkodsprogram. Istället kompilerar den varje klass oberoende och, dessutom, inte till maskinkod, utan till en speciell mellankod (bytekod). Bytekoden kompileras till maskinkod när programmet startas."

"Så, vem kompilerar programmet till maskinkod när det körs?"

"Det finns ett speciellt program som kallas Java Virtual Machine (JVM). Det måste startas först när du behöver köra ett bytekodsprogram. JVM kommer att kompilera bytekoden till maskinkod innan programmet körs."

"Intressant. Varför skulle det vara nödvändigt?"

"Det är ett mycket kraftfullt tillvägagångssätt och en av anledningarna till Javas totala dominans."

"Det här tillvägagångssättet gör att program skrivna i Java kan köras på praktiskt taget alla enheter: datorer, smartphones, bankomater, brödrostar eller till och med kreditkort!"

"Häftigt!"

"Det här tillvägagångssättet har många fördelar. Det är därför alla Android-program också är skrivna i Java. Tack vare mobiltelefonindustrins snabba tillväxt dominerar Java följande programmeringsområden:

1)Företag: tunga serverorienterade applikationer för banker, företag, investeringsfonder, etc.

2)Mobil: mobil utveckling (smarttelefoner, surfplattor), tack vare Android.

3)webb: PHP är i täten, men Java har tagit en solid andel av marknaden.

4)Big Data: distribuerad datoranvändning i kluster som består av tusentals servrar.

5)Smarta enheter: program för smarta hem, elektroniska enheter, IoT-kylskåp, etc."

"Java är inte bara ett språk, utan ett slags ekosystem: miljontals färdiga moduler du kan använda i ditt program; tusentals online-communities och anslagstavlor där du kan få hjälp eller råd."

"Ju mer du skriver program i Java, desto fler svar hittar du på frågan 'Varför Java?'. Det var allt för idag."

"Tack, professor. Det här var verkligen intressant och inspirerande."