ComputerZokuhlela

Msasazi - is ... Iintlobo abacwangcisi. Guqula kunye neenkqubo zosasazo

Iinkqubo, ngokunjalo abantu ukuba aguqulele ukusuka kolunye ulwimi ukuya kolunye kufuneka itoliki okanye ngumguquleli.

nezimaphambili ezingundoqo

Le program lumelo iilwimi yobalo: i → P → P (i). Itoliki yinkqubo onikezelwa kwiprogram igalelo P kunye igalelo x. Iqhuba e P x: I (P, x) = P (x). Into yokuba kukho mnye kuphela umguquleli unako ukwenza zonke iinkqubo kunokwenzeka (leyo angamelwa kwinkqubo esesikweni) yeyona kakhulu kakhulu kwaye ebalulekileyo nokufumanisa Turing.

Le wegama itoliki iinkqubo ulwimi umatshini. Ngokubanzi kubiza kakhulu ukubhala iitoliki kwiilwimi-kwinqanaba eliphezulu, ngoko ke kuthetha ukuba ifom leyo lula intetho.

Ezinye iintlobo abaguquleli baye amagama esingaqhelekanga:

  • Le assembler liguqulelwe iinkqubo zolwimi ibandla ibe kulwimi kumatshini.
  • Le emafini liguqulelwe ulwimi ekwinqanaba eliphezulu kulwimi asezantsi.

Msasazi - yinkqubo ethatha njengoko data ucwangciso kwezinye ulwimi S kwaye ivelisa inkqubo T ngendlela yokuba omabini la semantics ezifanayo: P → X → Q. Oko kukuthi, ∀x. P (x) = Q (x).

Ukuba yokudlala le program lonke into interpretable, ibizwa ngokuba yingqokelela phambi kokuba abulawe, okanye AOT Compilation. AOT emafini ingasetyenziswa series, le yokugqibela ka-nto leyo edla assembler, umzekelo:

Ikhowudi yemvelaphi compiler → (umguquleli) → → ibandla ikhowudi assembler (compiler) → → Umatshini CPU ikhowudi (itoliki).

Ukuqulunqwa Operational okanye olutshintshatshintshayo kwenzeka ukuba inkqubo lisasazwa, xa wabulawa yi enye inxalenye yaqulunqwa ngaphambili. JIT-abacwangcisi Khumbula oko sele kwenziwe kanjalo ukuba aphinde ikhowudi yemvelaphi kwakhona kwaye kwakhona. Ziyakwazi ukuvelisa ukuqulunqwa olwenziwayo kunye recompilation ngokusekelwe imo engqongileyo inkqubo ukubulawa.

iilwimi ezininzi ukuvumela ukuba uphumeze ikhowudi ngexesha yenza kwaye ukuqokelela ikhowudi entsha ngexesha lempumezo obona.

isigaba translation

Broadcast iquka amanyathelo ukuhlola synthesizing:

Ikhowudi yemvelaphi analyzer → → → ingqiqo umelo wenkunkuma (khetha ii icons) → khowudi Ithagethi.

Oku kungenxa yezi zizathu:

  • Nayiphi na enye indlela ayifaneleki. nje translation iLizwi ayisebenzi.
  • isisombululo engineering Good: Ukuba ufuna ukubhala abaguquleli ukuba iilwimi M N umthombo ekujoliswe mfuneko ukubhala kuphela iinkqubo elula M + N (polukompilyatorov) kunokuba M × N entsonkothileyo (total abaguquleli).

Noko ke, xa kusenziwa, imbono ingqiqo a kakhulu kunqabile ezichazayo ngokwaneleyo nonamandla ngokwaneleyo ukuhlangabezana nayo yonke imvelaphi kunye ekujoliswe ibalaseleyo iilwimi. Nakuba abanye bakwazi ukuza ukusondela kulo.

Kwathi abacwangcisi Real kwizigaba ezininzi. Xa udala emafini yakho akuyomfuneko ukuba awaphinde onke umsebenzi nzima ukuba abantu benze ukudala izimvo neejenereyitha. Uyakwazi ukuguqulela ngqo ulwimi lwakho kwi JavaScript okanye C kwaye uthathe ithuba JavaScript-injini ezikhoyo kunye C compiler ukwenza abanye. Unakho ukusebenzisa ukumelwa eliphakathi ekhoyo kunye noomatshini yenyani.

irekhodi umguquleli

Msasazi - yinkqubo okanye hardware, kuquka iilwimi ezintathu: umthombo, indawo ubuvuvu. Zingakotshwa zibhalwe T-imilo, ngokubeka isiseko sokuqala ekhohlo, ekunene kunye ekujoliswe ngezantsi.

Kukho iindidi ezintathu abacwangcisi:

  • Msasazi - kuba samokompilyator ukuba siyafana engundoqo umthombo ulwimi.
  • Emafini eziya kujolisa ulwimi lokwaNdlalela, ebizwa samorezidentnym.
  • Msasazi - umnqamlezo-emafini, ukuba ekujoliswe iilwimi ezisisiseko ezahlukeneyo.

Kutheni kubalulekile nje oku?

Nokuba nawe awusoze wenze compiler yokwenene, ukwazi kakuhle netheknoloji indalo yayo, kuba ingqiqo esetyenziselwe le njongo asetyenziswa ngokubanzi, umzekelo:

  • ukufometha okubhaliweyo;
  • imibuzo ulwimi zedata;
  • computer bokwakha eliphezulu;
  • iingxaki nokwenza ngokubanzi;
  • GUI;
  • ushicilelo lweelwimi;
  • izilawuli;
  • imishini virtual;
  • Machine translation.

Ukongeza, ukuba ufuna ukubhala preprocessors, linkers, bayifakwa, debuggers kunye profilers, kufuneka uye ngokusebenzisa amanyathelo efanayo xa ebhala emafini.

Unako kwakhona ufunde ukubhala indlela iinkqubo ezingcono, ukususela ekudalweni umguquleli zolwimi kuthetha ukuqonda ngcono nezo zayo kungacaci. Isifundo se-siseko jikelele yosasazo kwakhona ikuvumela ukuba ube ulwimi elungileyo umyili. Ngoko ke, ngaba ibalulekile into yokuba indlela eweni ulwimi ukuba ayikwazi ukusebenza ngempumelelo?

technology esibanzi

technology emafini lugubungela iindawo ezininzi ezahlukeneyo zenzululwazi computer:

  • theory esesikweni zolwimi: igrama, ulinganiso, computability;
  • ukwakhiwa computer:. sets umyalelo, RISC okanye CISC, pipelined core processing clock imijikelo, etc;
  • concepts iilwimi lwenkqubo, umzekelo, ukwenza ulawulo ngokulandelelana, uphumezo enemiqathango, uniko, recursion, ibole functional, modularity, ungqamaniso, meta-lwenkqubo, ububanzi, sub-iintlobo rhoqo, templates, uhlobo output, AMAGQABAZA ▸, ezingachanekanga, ukuhamba, monads, iibhokisi zeposi, qhubeka , wildcards, wochazo lwarhoqo, inkumbulo emide, ilifa, polymorphism, Useto lemo, njalo-njalo..;
  • iilwimi abstract kunye noomatshini virtual;
  • ubuchule kunye data nezakhiwo: amabinzana rhoqo, ubuchule imposiso, ubuchule imizobo, iinkqubo eliguqukayo, uqeqesho;
  • iilwimi lwenkqubo: isintaksi, semantics (emile kunye neguquguqukayo), inkxaso paradigms (zesakhiwo, OOP, esebenza, ingqiqo, watshisa izitha zengqolowa, okukhona, meta-iinkqubo);
  • indalo software (abacwangcisi, ngokuqhelekileyo ezinkulu kunye nezintsonkothileyo): kwasendaweni, esisikhupheli sokuxhaphakileyo, componentize, API-ujongano, ukusetyenziswa-, ungqamaniso.

design emafini

Ezinye iingxaki kuphuhliso umguquli real:

  • Iingxaki komthombo ulwimi. Ingaba kulula uyiqokelele? Ingaba ikhona indawo preprocessor? Njani na iintlobo? Ingaba kukho kwithala leencwadi?
  • Ngokwamaqela abapasileyo emafini: olunye okanye multi-ndlela?
  • The degree of noun ofunekayo. Iinkqubo zosasazo Fast nezingcolileyo kunye nokwenza luncinane okanye akukho kunokuba eqhelekileyo. Over-noun compiler wehlisa, kodwa ikhowudi ongcono ngexesha lempumezo obona kusenokuba ikufanele.
  • Ubungakanani efunekayo Ubhaqo impazamo. Ngaba ngumguquleli ume nje impazamo yokuqala? Xa kufuneka ayeke? Nokuba ngaba uthembe ulungiso lwemposiso emafini?
  • Ukufumaneka kwezixhobo. Ukuba ulwimi lokuqala ayikho ezincinane kakhulu, vuavanyisi kunye wokuphehla analyzers ziyafuneka. Kukho kwakhona umbane, ikhowudi umbane, kodwa ingasetyenziswa kangako.
  • Uhlobo lwe khowudi ekujoliswe kumele iqaliswe Kwi protocols. Kukhethwe nyulu yongezwe okanye yenyani ikhowudi umatshini. Okanye ubhale nje isahlulo yokungena ukuba kudala ukumelwa eliphakathi ethandwayo ezifana LLVM, RTL, okanye jvm. Okanye wenze inguqulelo ezingakhutshelwanga ezikolu ikhowudi yemvelaphi kwi C okanye JavaScript.
  • Ifomathi khowudi target. Ungakhetha i ulwimi ibandla, ephathekayo ikhowudi kumatshini, umfanekiso umatshini ikhowudi memory.
  • Retargeting. Xa iseti umbane kulungile ukuba inxalenye eqhelekileyo ugwebu. Ngenxa yesi sizathu kungcono ukuba generator enye igalelo ungamalungu amaninzi.

emafini Architecture: izakhi

Ezi amacandelo ezisebenzayo neziphambili compiler elenza ikhowudi lweenkobe (ukuba inkqubo yemveliso yinkqubo e C okanye kumatshini onesiqhamo, akufanele izigaba ezininzi):

  • Le program input (amanqaku flow) iya kufakwa vuavanyisi (analyzer lungelelanisa), nto leyo iyiguqule zibe iimpawu.
  • Kohlobo (kohlobo) ukwakha umthi omnye syntax abstract.
  • analyzer zesemantiki abole ulwazi kwisemantiki kwaye sijonga iindawo umthi iimpazamo. Ngenxa yoko, wakha igrafu lwesemantiki - umthi kwezivakalsi abstract kunye iipropati ezongeziweyo kunye Nendawo ongenekuzo lusekiwe.
  • EsiPhakathi ikhowudi generator wakha igrafu flow (tuples zidweliswe iibhloko eziphambili).
  • Machine-ezizimeleyo ikhowudi seglosi uqhuba noun iindidi abaseleyo phakathi yesiqhelo zombini ndawo (phakathi kwiyunithi isiseko) kunye jikelele (kubo bonke iibhloko). Kunciphisa ikhowudi ezingeyomfuneko lula izibalo. Isiphumo igrafu flow iguqulwe kancinane.
  • Generator ubophelela iibhloko ezisisiseko ikhowudi ekujoliswe ibe rectilinear ikhowudi yolawulo transmission, kukudala assembler ifayile into iirejista virtual (mhlawumbi kuphumelele).
  • Machine-oxhomekeke seglosi, linker yabela memory phakathi iirejista kwaye yenza amaqela uceba. Iqhuba inkqubo ukuguqulwa ngolwimi kwindibano eli bandla kunye nokusetyenziswa kakuhle yombhobho.

Ukongeza, ukusetyenziswa imposiso Ubhaqo yomphathi esezantsi neetheyibhile isimboli.

Uhlalutyo lungelelanisa (yokuskena)

Vuavanyisi oguqula abalinganiswa umsinga umthombo zibe iimpawu, ukususa esimhlophe, izimvo kunye imacros zesikocan nokwandisa.

Yabavavanyi badla udibana neengxaki, ezinjengo noba okanye hayi ukuthathela ingqalelo mzekelo, imida, ilayini ukopuka kunye nezimvo engoma.

Iimpazamo ezinokuthi zenzeke ngexesha ukukrwaqula, ebizwa lungelelanisa kwaye ziquka:

  • abalinganiswa ezingekho kwi alphabet;
  • ezingaphezu inani abalinganiswa igama okanye umgca;
  • uphawu evaliweyo okanye umtya yokoqobo;
  • ekupheleni ifayile izimvo.

Imposiso (lokuguqula)

Le kohlobo oguqula ukulandelelana iimpawu zibe somthi syntax abstract. node nganye emthini igcinwe njenge into kunye namasimi ogama, uninzi lwazo ngokwabo kwindawo emthini. Okwangoku akukho mijikelo. Xa uyila kohlobo kuyimfuneko ukunikela ingqalelo kwinqanaba ukuntsonkotha wegrama (LL okanye LR) kwaye ufumanise ukuba kukho nayiphi na imithetho disambiguation. Ezinye iilwimi badinga uhlalutyo lwesemantiki.

Iimpazamo ofumanekileyo kule nqanaba kuthiwa syntax. Umzekelo:

  • k = 5 * (7 - y;
  • j = / 5;
  • 56 = x * 4.

Uhlalutyo lwesemantiki

Ngexesha uhlalutyo lwesemantiki ukukhangela permissibility lwemithetho kunye namalungu nabo umthi XPath (ukuvumela amagama reference ngokufaka nokusebenza for lokukwekwa uhlobo conversions, njalo njalo. D.) Ngenxa kusekwe kwigrafu kwisemantiki.

Ngokucacileyo, le isethi admissibility yemithetho ngeelwimi ezahlukeneyo ezahlukeneyo. Ukuba uqokelele i iilwimi Java-like, abacwangcisi banokufumanisa:

  • isibhengezo multiple eziguquguqukayo kwimida yayo;
  • kokudluliselwa yomahluko Womendo phambi isibhengezo yayo;
  • izikhombisi ukufumana igama undeclared;
  • Ukophulwa kwamalungelo patent;
  • ngokuloqa kakhulu okanye ayanelanga inani neziphakamiso call indlela;
  • uhlobo Ukungafani.

esizukulwaneni

Isizukulwana esiPhakathi ikhowudi uvelisa Igrafu flow akhiwa tuples, amaqela iibhloko ezisisiseko.

ikhodi velisa ikhowudi yokwenene umatshini. Xa abacwangcisi zemveli zilungele RISC-oomatshini kwi inyathelo lokuqala, wenze i assembler ezinenani olungenasiphelo zeerejista yenyani. Kuba CISC-matshini mhlawumbi akuyi kwenzeka.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 xh.delachieve.com. Theme powered by WordPress.