Hvad er compilere?  - 1

"Hej, Amigo. Mit navn er professor Hans Noodles. Jeg er leder af det videnskabelige råd her på Galactic Rush. Jeg fører også tilsyn med vores bestræbelser på at lære dig Java-programmering."

"Hej, professor Noodles."

"Jeg vil gerne forklare dig, hvorfor Java er et meget sejt programmeringssprog. "

"Du vil høre mere end én gang, at Javas uovertrufne fordel er dens platformuafhængighed . Hvad er det, og hvad er det til, spørger du? Lad mig tage en rundkørsel."

"En computer kan kun udføre de simpleste numeriske kommandoer. Når vi træner hunde, bruger vi kommandoer som 'Hæl', 'Shake' osv. for at få en hund til at gøre noget, vi gerne vil have den til at gøre."

"For computere spiller tal rollen som sådanne kommandoer. Hver kommando er repræsenteret af et bestemt tal eller kode (nogle gange kaldet maskinkode)."

"Men det er virkelig svært at skrive et program, der kun bruger tal, så folk opfandt programmeringssprog og compilere . Et programmeringssprog kan forstås af både mennesker og compilere. En compiler er et specielt program, der konverterer et program skrevet i et programmeringssprog til en serie af maskinkoder."

"En programmør skriver normalt et program i et programmeringssprog og kører derefter en compiler, som gør programkodefilerne skrevet af programmøren til en enkelt fil med maskinkode - det endelige (kompilerede) program."

  • Program i C++
  • Kompiler
  • Maskinkode

"Det resulterende program kan udføres af computeren med det samme. Den dårlige nyhed er, at koden til det endelige program i høj grad afhænger af processoren og operativsystemet. Det betyder, at et program, der er kompileret til Windows, ikke vil fungere på en Android-smartphone."

"Så hvis jeg skriver et program og kompilerer det til Android, virker det ikke på Windows?"

"Nemlig."

"Jeg ser."

"Java bruger dog en meget mere innovativ tilgang."

  • Program i Java
  • Java compiler
  • Speciel platform-uafhængig kode (bytekode)
  • JVM
  • Maskinkode

"En Java-kompiler kompilerer ikke alle klasserne i ét maskinkodeprogram. I stedet kompilerer den hver klasse uafhængigt og, hvad mere er, ikke til maskinkode, men til en speciel mellemkode (bytekode). Bytekoden kompileres til maskinkode, når programmet startes."

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

"Der er et specielt program kaldet Java Virtual Machine (JVM). Det skal startes først, når du skal køre et bytekodeprogram. JVM'en vil kompilere bytekoden til maskinkode, før programmet køres."

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

"Det er en meget kraftfuld tilgang og en af ​​grundene til Javas totale dominans."

"Denne tilgang gør det muligt at køre programmer skrevet i Java på stort set alle enheder: computere, smartphones, pengeautomater, brødristere eller endda kreditkort!"

"Fedt nok!"

"Denne tilgang har mange fordele. Det er derfor, at alle Android-programmer også er skrevet i Java. Takket være den hurtige vækst i mobiltelefonindustrien dominerer Java følgende programmeringsområder:

1)Enterprise: tunge serverorienterede applikationer til banker, virksomheder, investeringsfonde osv.

2)Mobil: mobiludvikling (smartphones, tablets), takket være Android.

3)Web: PHP er i spidsen, men Java har erobret en solid andel af markedet.

4)Big Data: distribueret databehandling i klynger bestående af tusindvis af servere.

5)Smarte enheder: programmer til smarte hjem, elektroniske enheder, IoT-køleskabe osv."

"Java er ikke bare et sprog, men en slags økosystem: millioner af færdige moduler, du kan bruge i dit program; tusindvis af online-fællesskaber og opslagstavler, hvor du kan få hjælp eller råd."

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

"Tak, professor. Det var virkelig interessant og inspirerende."