Mikä on kääntäjäsuunnittelu? Tyypit, rakennustyökalut, esimerkki

Mikä on kääntäjä?

Kääntäjä on tietokoneohjelma, jonka avulla voit muuntaa korkean tason kielellä kirjoitetun lähdekoodin matalan tason konekieleksi. Se kääntää yhdellä ohjelmointikielellä kirjoitetun koodin jollekin toiselle kielelle muuttamatta koodin merkitystä. Kääntäjä tekee myös loppukoodista tehokkaan, joka on optimoitu suoritusaikaa ja muistitilaa varten.

Käännösprosessi sisältää peruskäännösmekanismit ja virheiden havaitsemisen. Kääntäjäprosessi käy läpi leksikaalisen, syntaksisen ja semanttisen analyysin käyttöliittymässä ja koodin luomisen ja optimoinnin taustapäässä.

kääntäjä

Kääntäjien ominaisuudet

  • oikeellisuutta
  • Kokoamisnopeus
  • Säilytä koodin oikea merkitys
  • Kohdekoodin nopeus
  • Tunnista lailliset ja laittomat ohjelmarakenteet
  • Hyvä virheilmoitus/käsittely
  • Ohje koodin virheenkorjaukseen

Kääntäjätyypit

Seuraavassa on erityyppisiä kääntäjiä:

  • Single Pass -kääntäjät
  • Kaksi passin kääntäjää
  • Multipass-kääntäjät

Yhden passin kääntäjä

Yhden passin kääntäjä
Yhden passin kääntäjä

Yhdellä kierroksella kääntäjän lähdekoodi muuttuu suoraan konekoodiksi. Esimerkiksi Pascal-kieli.

Kaksivaiheinen kääntäjä

Kaksivaiheinen kääntäjä
Kaksivaiheinen kääntäjä

Kaksivaiheinen kääntäjä on jaettu kahteen osaan, eli.

  1. Etupää: Se yhdistää oikeudellisen koodin Intermediate Representaatioon (IR).
  2. Takapää: Se kartoittaa IR:n kohdekoneeseen

Kaksivaiheinen kääntäjämenetelmä yksinkertaistaa myös uudelleenkohdistamisprosessia. Se mahdollistaa myös useita etupäitä.

Multipass-kääntäjät

Multipass-kääntäjät
Multipass-kääntäjät

Multipass-kääntäjä käsittelee ohjelman lähdekoodin tai syntaksipuun useita kertoja. Se jakoi suuren ohjelman useisiin pieniin ohjelmiin ja käsitteli ne. Se kehittää useita välikoodeja. Kaikki nämä monipäästöt ottavat tulona edellisen vaiheen lähdön. Joten se vaatii vähemmän muistia. Se tunnetaan myös nimellä "Wide Compiler".

Kääntäjän tehtävät

Kääntäjän suorittamat päätehtävät ovat:

  • Pilko lähdeohjelman osiin ja asettaa niille kieliopillisen rakenteen
  • Mahdollistaa halutun kohdeohjelman rakentamisen väliesityksen perusteella ja myös symbolitaulukon luomisen
  • Kääntää lähdekoodia ja havaitsee siinä olevat virheet
  • Hallitse kaikkien muuttujien ja koodien tallennusta.
  • Tuki erilliselle käännökselle
  • Lue, analysoi koko ohjelma ja käännä semanttisesti vastaavaksi
  • Lähdekoodin kääntäminen objektikoodiksi koneen tyypistä riippuen

Kääntäjän historia

Kääntäjän historian tärkeä maamerkki on seuraava:

  • Grace Murray Hopper käytti sanaa "kääntäjä" ensimmäisen kerran 1950-luvun alussa.
  • John Backum ja hänen ryhmänsä rakensivat ensimmäisen kääntäjän vuosina 1954-1957 klo. IBM.
  • COBOL oli ensimmäinen ohjelmointikieli joka on koottu useille alustoille vuonna 1960
  • Skannaus- ja jäsennysongelmien tutkimusta jatkettiin 1960- ja 1970-luvuilla täydellisen ratkaisun saamiseksi.

Kielenkäsittelyjärjestelmien vaiheet

Ennen kuin tiedät kääntäjien käsitteen, sinun on ensin ymmärrettävä muutama muu työkalu, jotka toimivat kääntäjien kanssa.

Kielenkäsittelyjärjestelmien vaiheet
Kielenkäsittelyjärjestelmien vaiheet
  • Esiprosessori: Esiprosessorin katsotaan olevan osa kääntäjää. Se on työkalu, joka tuottaa syötteitä kääntäjälle. Se käsittelee makrojen käsittelyä, lisäystä, kielilaajennusta jne.
  • Tulkki: Tulkki on kuin kääntäjä, joka kääntää korkean tason kielen matalan tason konekieleksi. Suurin ero molempien välillä on, että tulkki lukee ja muuntaa koodia rivi riviltä. Kääntäjä lukee koko koodin kerralla ja luo konekoodin.
  • Assembler: Se kääntää kokoonpanokielen koodin koneen ymmärrettäväksi kieleksi. Assemblerin tulostustulos tunnetaan objektitiedostona, joka on yhdistelmä konekäskyjä sekä tietoja, joita tarvitaan näiden ohjeiden tallentamiseen muistiin.
  • Linkit: Linkkeri auttaa sinua linkittämään ja yhdistämään erilaisia ​​objektitiedostoja suoritettavan tiedoston luomiseksi. Kaikki nämä tiedostot on ehkä käännetty erillisillä kokoajilla. Linkkerin päätehtävä on etsiä ohjelmasta kutsutut moduulit ja selvittää muistipaikka, johon kaikki moduulit on tallennettu.
  • Loader: Latausohjelma on osa käyttöjärjestelmää, joka suorittaa suoritettavien tiedostojen lataamisen muistiin ja suorittaa ne. Se laskee myös lisämuistitilaa luovan ohjelman koon.
  • Ristikääntäjä: Kääntäjäsuunnittelun ristikääntäjä on alusta, joka auttaa sinua luomaan suoritettavaa koodia.
  • Lähteestä lähteeseen -kääntäjä: Lähteestä lähteeseen -kääntäjä on termi, jota käytetään, kun yhden ohjelmointikielen lähdekoodi käännetään toisen kielen lähteeksi.

Kääntäjän rakennustyökalut

Kääntäjän rakennustyökalut otettiin käyttöön tietokoneisiin liittyvien teknologioiden leviäessä ympäri maailmaa. Ne tunnetaan myös kääntäjinä, kääntäjinä tai kääntäjinä.

Nämä työkalut käyttävät tiettyä kieltä tai algoritmia kääntäjän komponentin määrittämiseen ja toteuttamiseen. Seuraavassa on esimerkki kääntäjien rakennustyökaluista.

  • Skannerigeneraattorit: Tämä työkalu ottaa syötteeksi säännöllisiä lausekkeita. Esimerkiksi LEX Unixille Operating System.
  • Syntaksiohjatut käännöskoneet: Nämä ohjelmistotyökaluja tarjota välikoodin jäsennyspuun avulla. Sen tavoitteena on liittää yksi tai useampi käännös jäsennyspuun jokaiseen solmuun.
  • Jäsennysgeneraattorit: Jäsentimen generaattori ottaa syötteeksi kieliopin ja luo automaattisesti lähdekoodin, joka voi jäsentää merkkivirtoja kieliopin avulla.
  • Automaattiset koodigeneraattorit: Ottaa välikoodin ja muuntaa ne konekieleksi.
  • Tiedonsiirtomoottorit: Tämä työkalu on hyödyllinen koodin optimoinnissa. Tässä käyttäjä toimittaa tiedot, ja välikoodia verrataan minkä tahansa suhteen analysoimiseksi. Sitä kutsutaan myös tietovirta-analyysiksi. Se auttaa sinua selvittämään, kuinka arvot siirretään ohjelman yhdestä osasta toiseen.

Miksi käyttää kääntäjää?

  • Kääntäjä tarkistaa koko ohjelman, joten syntaksi- tai semanttisia virheitä ei ole.
  • Kääntäjä optimoi suoritettavan tiedoston, joten se suoritetaan nopeammin.
  • Mahdollistaa sisäisen rakenteen luomisen muistiin.
  • Ohjelmaa ei tarvitse suorittaa samalla koneella, jolla se rakennettiin.
  • Käännä koko ohjelma toiselle kielelle.
  • Luo tiedostoja levylle.
  • Linkitä tiedostot suoritettavaan muotoon.
  • Tarkista syntaksivirheet ja tietotyypit.
  • Auttaa sinua parantamaan kielen semantiikan ymmärtämistä.
  • Auttaa käsittelemään kielen suorituskykyongelmia.
  • Mahdollisuus ei-triviaaliseen ohjelmointiprojektiin.
  • Kääntäjän rakentamiseen käytetyt tekniikat voivat olla hyödyllisiä myös muihin tarkoituksiin.

Kääntäjien sovellus

  • Kääntäjän suunnittelu auttaa korkean tason ohjelmointikielten täydellistä toteuttamista.
  • Tuki optimointi tietokoneelle Architecture Parallelism.
  • Uusien koneiden muistihierarkioiden suunnittelu.
  • Käytetään laajasti ohjelmien kääntämiseen.
  • Käytetään muiden ohjelmistojen tuottavuustyökalujen kanssa.

Yhteenveto

  • Kääntäjä on tietokoneohjelma, jonka avulla voit muuntaa korkean tason kielellä kirjoitetun lähdekoodin matalan tason konekieleksi.
  • Oikeus, kääntämisen nopeus, koodin oikean merkityksen säilyttäminen ovat joitakin kääntäjän suunnittelun tärkeitä piirteitä.
  • Kääntäjät on jaettu kolmeen osaan 1) Single Pass Compilers 2) Two Pass Compilers ja 3) Multipass Compilers.
  • "Kääntäjä" oli sana, jota Grace Murray Hopper käytti ensimmäisen kerran 1950-luvun alussa.
  • Kielenkäsittelyjärjestelmän vaiheet ovat: Esikäsittelijä, Tulkki, Kokoaja, Linkki/lataaja.
  • Tärkeitä kääntäjien rakennustyökaluja ovat 1) skannerigeneraattorit, 2) syntaksi-3) ohjatut käännöskoneet, 4) jäsennysgeneraattorit, 5) automaattiset koodigeneraattorit.
  • Kääntäjän päätehtävä on tarkistaa koko ohjelma, jotta syntaksi- tai semanttisia virheitä ei ole.