Razlike između sastavljača i tumača

Prije Java i C # programski jezici pojavili su se, računarski programi samo sastaviti ili tumačiti. Jezici poput jezika skupštine, C, C ++, Fortran, Pascal gotovo su uvijek sastavljani u strojni kod. Jezici poput Basic, VbScript i JavaScript obično se tumače.

Pa, koja je razlika između sastavljenog programa i interpretiranog programa?

sastavljanje

Da biste napisali program, poduzmite sljedeće korake:

  1. Uredite program
  2. Sastavite program u datoteke strojnih kodova.
  3. Povežite datoteke strojne šifre u program koji se može pokrenuti (također poznat kao exe).
  4. Pomoću programa za uklanjanje pogrešaka ili pokretanja programa

S nekim jezicima poput Turbo Pascala i Delphija kombiniraju se koraci 2 i 3.

Datoteke strojnih kodova su samostalni moduli strojnog koda koji zahtijevaju povezivanje kako bi napravili završni program. Razlog za odvojene datoteke strojne šifre je učinkovitost; prevoditelji se moraju prekompolirati izvorni kod koje su se promijenile. Datoteke kodnih strojeva iz nepromijenjenih modula ponovno se koriste. To je poznato kao podnošenje zahtjeva. Ako želite prekompolirati i obnoviti sav izvorni kod, tada je to poznato i kao Build.

instagram viewer

Povezivanje je tehnički kompliciran proces u kojem su svi pozivi funkcija između različitih modula spojeni, mjesta za memoriju su dodijeljena varijable a sav se kod nalazi u memoriji, a zatim se zapisuje na disk kao cjelovit program. To je često sporiji korak od sastavljanja jer se sve datoteke strojne šifre moraju pročitati u memoriji i povezati zajedno.

Tumačenje

Koraci za pokretanje programa putem tumača su

  1. Uredite program
  2. Pomoću programa za uklanjanje pogrešaka ili pokretanja programa

To je daleko brži proces i pomaže početnicima programerima brže uređivanje i testiranje koda od upotrebe prevoditelja. Nedostatak je taj što interpretirani programi rade mnogo sporije od sastavljenih programa. Onoliko 5-10 puta sporije koliko svaki redak koda treba ponovno pročitati, a zatim ponovno obraditi.

Unesite Java i C #

Oba su jezika polupismena. Oni stvaraju intermedijarni kôd koji je optimiziran za tumačenje. Taj posredni jezik ne ovisi o osnovnom hardveru i to ga čini lakšim za prijenos programi napisani u bilo kojem drugom procesoru, pod uvjetom da je za to napisan prevoditelj hardver.

Java, kada je sastavljen, stvara bajt kod koji tijekom izvođenja interpretira Java virtualni stroj (JVM). Mnogi JVM-ovi koriste Just-in-Time prevodilac koji pretvara bajt kod u izvorni strojni kod, a zatim pokreće taj kod da bi povećao brzinu tumačenja. Zapravo, Java izvorni kôd sastavlja se u dvostepenom procesu.

C # se sastavlja u zajednički srednji jezik (CIL), koji je prethodno bio poznat kao Microsoftov srednji jezik MSIL. Ovim upravlja zajednički jezik rada (CLR), dio .NET okvira okruženje koje pruža usluge podrške kao što su prikupljanje smeća i kompilacija Just-in-Time.

I Java i C # koriste tehnike ubrzavanja, tako da je efektivna brzina gotovo brza kao i čisti sastavljeni jezik. Ako aplikacija provodi puno vremena radeći na unosu i izlazu, poput čitanja datoteka s diskom ili pokretanja baza podataka upita, tada je razlika u brzini jedva primjetna.

Što mi to znači?

Ako nemate vrlo specifičnu potrebu za brzinom i morate povećati brzinu kadra za par sličica u sekundi, možete zaboraviti na brzinu. Bilo koji od C, C ++ ili C # pružit će dovoljnu brzinu za igre, prevoditelje i operativne sustave.