Hva er kompilatorer?  - 1

"Hei, Amigo. Mitt navn er professor Hans Noodles. Jeg er leder av Vitenskapsrådet her på Galactic Rush. Jeg overvåker også vår innsats for å lære deg Java-programmering."

"Hei, professor Noodles."

"Jeg vil gjerne forklare deg hvorfor Java er et veldig kult programmeringsspråk. "

"Du vil høre mer enn en gang at Javas enestående fordel er plattformuavhengigheten . Hva er det og hva er det for, spør du? La meg ta en rundkjøring."

"En datamaskin kan bare utføre de enkleste numeriske kommandoene. Når vi trener hunder, bruker vi kommandoer som "Hæl", "Shake" osv. for å få en hund til å gjøre noe vi vil at den skal gjøre."

"For datamaskiner spiller tall rollen som slike kommandoer. Hver kommando er representert med et bestemt tall eller kode (noen ganger kalt maskinkode)."

"Men det er veldig vanskelig å skrive et program som bare bruker tall, så folk fant opp programmeringsspråk og kompilatorer . Et programmeringsspråk kan forstås av både mennesker og kompilatorer. En kompilator er et spesielt program som konverterer et program skrevet på et programmeringsspråk til et programmeringsspråk. serie med maskinkoder."

"En programmerer skriver vanligvis et program i et programmeringsspråk og kjører deretter en kompilator, som gjør programkodefilene skrevet av programmereren til en enkelt fil med maskinkode - det endelige (kompilerte) programmet."

  • Program i C++
  • Kompilator
  • Maskinkode

"Det resulterende programmet kan kjøres av datamaskinen umiddelbart. Den dårlige nyheten er at koden til det endelige programmet er sterkt avhengig av prosessoren og operativsystemet. Dette betyr at et program kompilert for Windows ikke vil fungere på en Android-smarttelefon."

"Så hvis jeg skriver et program og kompilerer det for Android, vil det ikke fungere på Windows?"

"Nøyaktig."

"Jeg skjønner."

"Men Java bruker en mye mer innovativ tilnærming."

  • Program i Java
  • Java kompilator
  • Spesiell plattformuavhengig kode (bytekode)
  • JVM
  • Maskinkode

"En Java-kompilator kompilerer ikke alle klassene til ett maskinkodeprogram. I stedet kompilerer den hver klasse uavhengig, og dessuten ikke til maskinkode, men til en spesiell mellomkode (bytekode). Bytekoden kompileres til maskinkode når programmet startes."

"Så, hvem kompilerer programmet til maskinkode når det kjøres?"

"Det finnes et spesielt program som heter Java Virtual Machine (JVM). Det må startes først når du skal kjøre et bytekodeprogram. JVM'en vil kompilere bytekoden til maskinkode før programmet kjøres."

"Interessant. Hvorfor skulle det være nødvendig?"

"Det er en veldig kraftig tilnærming og en av grunnene til Javas totale dominans."

"Denne tilnærmingen gjør at programmer skrevet i Java kan kjøres på praktisk talt alle enheter: datamaskiner, smarttelefoner, minibanker, brødristere eller til og med kredittkort!"

"Kul!"

"Denne tilnærmingen har mange fordeler. Det er derfor alle Android-programmer også er skrevet i Java. Takket være den raske veksten i mobiltelefonindustrien dominerer Java følgende programmeringsområder:

1)Bedriften: tunge serverorienterte applikasjoner for banker, selskaper, investeringsfond, etc.

2)Mobil: mobilutvikling (smarttelefoner, nettbrett), takket være Android.

3)Web: PHP er i ledelsen, men Java har tatt en solid andel av markedet.

4)Stor Data: distribuert databehandling i klynger som består av tusenvis av servere.

5)Smarte enheter: programmer for smarte hjem, elektroniske enheter, IoT-kjøleskap, etc."

"Java er ikke bare et språk, men et slags økosystem: millioner av ferdige moduler du kan bruke i programmet ditt; tusenvis av nettsamfunn og oppslagstavler der du kan få hjelp eller råd."

"Jo mer du skriver programmer i Java, jo flere svar vil du finne på spørsmålet 'Hvorfor Java?'. Det var det for i dag."

"Takk, professor. Dette var veldig interessant og inspirerende."