Kamepiula 'ē aʻeIaaiey

Broadcaster - He ... Kind o compilers. Hoohuli a me ka hōʻike nā polokalamu

Papa hana, e like me kanaka, e unuhi mai i kekahi 'ōlelo i kekahi hemahema e pono ai ke kanaka hoʻohālike a unuhi.

walaʻauʻana manaÿo

Ka polokalamu mea i ka'ōlelo e hoohalike ai o ka ho: i, → P → P (e). An hai mai ke ano o ka polokalamu i ua lako ai i ka papa hoʻokomo o P a me kekahi hoʻokomo o m. Ua hanaʻia ma P m: au (P, m) = P (x). I ka mea i loaʻa o kekahi wale unuhi mea hiki ke hoʻokō i hiki i nā papa hana (a hiki hoʻokū 'ia ma ka' olelo'ōnaehana) mea he loa kulou malie a me ka nui loaʻa Turing.

Ka unu lawelawe He kanaka hoʻohālike o nā papahana ma ka mīkini 'ōlelo. Ano nui, ua pipiʻi e kākau mea kuhikuhi nei, no ka kiʻekiʻe-pae 'ōlelo, no laila, e unuhi i loko o ka palapala i ka hiki pono i ke ano.

Kekahi mau 'ano o nā unuhi i loa na inoa:

  • Ke assembler translates ekalesia 'ōlelo nā papahana i loko o mīkini' ōlelo.
  • Ke compiler translates he kiʻekiʻe-ʻilikai'ōlelo i ka lalo'ōlelo.

Broadcaster - mea he polokalamu e lawe i hoʻokomo oʻikepili ka polokalamu i loko o kekahi 'ōlelo S a produces T polokalamu i loko o ia ke ala i ka mea a elua i ka ia semantics: P → X → Q. ia mea, ∀x. P (x) = Q (m).

Inā hōʻike ka polokalamu holoʻokoʻa i loko o kekahi mea interpretable, ka mea, ua kapaʻia he compilation mua aku, a AOT compilation. AOT compiler hiki ke hoʻohana 'ia ma ka puke, o ka hope o ka i mea pinepine ka assembler, no kekahi laʻana:

Ke kumu pā'ālua compiler → (unuhi) → →ʻaha kanaka kuhi assembler (compiler) → → CPU mīkini code (hai mai ke ano).

Hana ana a hōʻeuʻeu compilation ia lŘlŘ ina ka polokalamu ua hōʻike, i ka wa a hooko aku la i ka 'ē aʻe mua ohi hapa. JIT-compilers hoomanao mea ka mea, ua hana mua no laila, i ole e oe a hou, a hou i ke kumu kuhi. Ka mea, hiki i paka adaptive compilation a me ka recompilation ma muli o ka hana o ka? Ia? Aiiu hooko kaiapuni.

He nui nā 'ōlelo ae e hana karaima i i hoʻouluulu manawa, a i hoʻouluulu i ka hou kivila ma runtime.

unuhi ke kahua

Hōʻike maupaʻa nāʻanuʻu o ke kālailai a me ka synthesizing:

Ke kumu pā'ālua mea kālailai → → → mea manaʻo e hoohalike ai mīkini hana wāwahie (synthesizer) → pale umauma hoʻokahi kuhi.

Kēia mea ma muli o ia mau kumu:

  • Kekahi 'ē aʻe iaoia mea i pono. Word unuhi wale 'aʻole i hana.
  • Good 'enekinia, pāʻoihana: ina oe e makemake, e kākau unuhi no ka M a me N kumu' ōlelo hoʻomāka e pono kākau wale M + N ano papahana (polukompilyatorov) ma mua o M × N eiiieaena (huina o nā unuhi).

Eia naʻe, i loko o nä hana kilokilo, he mea manaʻo nānaina o ka he uuku ke kuka expressive lakou e maona ai a me ka mana kupono e uhi i na kumuhana kumu a me ka pale kaua 'ōlelo. Ia kekahi, ua hiki ke hele mai e kokoke ana i keia.

Real compilers kekahi, ma na mea he nui kahua o ka hoʻonaʻauao. Ka wā e pili ana i kou mau compiler, aole ia e pono i 'oe i ka paakiki hana i kanaka i hana ai, e hana e hoohalike ai ia me nā mīkini uila. Oe ke unuhi i kou 'ōlelo' ana i loko o pio ole C, a lawe lanakila o na pio-engine, a me ka C compiler, e hana i ke koena. E hiki no hoi ke hoʻohana i ke kanawai waena e hoohalike ai a me ka ʻike kamepiula machines.

moolelo unuhi

Broadcaster - mea he polokalamu a lako e, i ke komo ekolu 'ōlelo: ke kumu, i ka mākaʻikaʻi a me ke kumu. Ka mea hiki ke kākau i loko o ka T-kinona, ae kau i ka palapala hema, pono a me ka pale kaua kumu ma lalo iho nei.

He ekolu ano o compilers:

  • Broadcaster - He samokompilyator ina mea hoʻopili like i ke kumu o kumu 'ōlelo.
  • Compiler i pale umauma hoʻokahi 'ōlelo o ka kumukahua, i kapaia samorezidentnym.
  • Broadcaster - he keʻa-compiler, ina oia hoʻomāka a me ka walaʻauʻana like 'ōlelo.

No ke aha lā i kēiaʻano nui?

ʻO ina oe aole loa e kekahi maoli compiler, he ike pono i ka 'ike loea hou o kona hanaia'na, no ka mea, ke manaʻo hoʻohana no keia mea i hoʻohana kaiāulu, no kekahi laʻana:

  • formatting kikokikona;
  • 'ōlelo'ōlelo āna i ka' ikepili i;
  • holomua kamepiula kuhikuhipuʻuone;
  • generalized kaʻoi loa pilikia;
  • GUIs;
  • kōmi 'ōlelo;
  • luna;
  • ʻike kamepiula machines;
  • Machine unuhi.

Eia hou, ina e makemake e kākau preprocessors, linkers, nā kaʻa hāpai, debuggers a me profilers, e pono ke hele ma ke kapuwai hookahi me ka wā kākau he compiler.

Oe ke i aʻo pehea e kākau maikaʻi papa hana, mai ka hanaia'na mai o ka unuhi olelo no ka'ōlelo o ia hoʻi, he maikaʻi ka naʻauao o kona intricacies a me ambiguities. I ka like o ka mea mau loina o ka hoʻoleleʻana i leie aku oe e lilo i ka maikai akamai 'ōlelo. No laila, 'aʻole ia mea i ka poe puaa ma ka' ōlelo ina mea hiki ole ke hoʻokō ka pono?

hulina enehana

compiler enehana huna nuiʻokoʻa i nā wahi o ke kamepiula 'epekema:

  • kūlana pähola 'o ka' ōlelo: grammar, parsing, computability;
  • kamepiula kuhikuhipuʻuone:. aʻo e puhi ia, RISC a CISC, pipelined aaioee Kora naʻEsau uaki pōʻaiapuni, a pela aku;
  • manaÿo o ka iaaiey 'ōlelo, no ka laʻana, ae hana i kekahi kaʻina, mana, conditional hooko, iteration, recursion, ooieoeiiaeuiiai decomposition, modularity, hoʻononiakahi, meta-iaaiey, laulā, ikaika iiaciiie-ke ano, UAAIIeIIeX, auaiaea type, prototypes, annotations, pele, monads, mailboxes, hoʻomau , wildcards, regular olelo, transactional hoomanao, e noho ai, polymorphism, 'ano' okoʻa no ka, a no laila, ma luna a pela aku..;
  • Hōʻuluʻulu 'ōlelo a me kaʻike kamepiula machines;
  • algorithms a me nā ikepili nā hale: regular, ka 'aoʻao, parsing algorithms, kiʻi algorithms, hōʻeuʻeu iaaiey, aʻo;
  • iaaiey 'ōlelo: Ka Mooolelo O, semantics (kūpaʻa a me ka hōʻeuʻeu), kākoʻo paradigms (mall, oop, ooieoeiiaeuiiai, Logical, noae, parallelism, meta-iaaiey);
  • hanaia'na lako polokalamu (compilers, IeAUPIIe, IAa IO nui a me ka luna '): IIeEeAIEUAA, Ahu, componentize, API-Interfaces, hou-hoʻohana, hoʻononiakahi.

compiler mea i manao ai

Kekahi o ka pilikia i loko o ka ulu ana o ka mea maoli unuhi i nā pilikia.

  • Pilikia a me ke kumu 'ōlelo. Ua mea oluolu ia i hoʻouluulu ia? Ua loaʻa he preprocessor? Pehea i nāʻano? Ua loaʻa i ka hale waihona puke?
  • Hoʻohui 'ia compiler ala: hookahi paha nunui-ala?
  • Ke degere o kaʻoi loa makemake. Fast a me ka haumia hōʻike nā polokalamu me ka uuku paha ole kaʻoi loa hiki e maʻamau. Ma-kaʻoi loa compiler, e 'ūlōlohi, akā maikaʻi kuhi i runtime paha e aho la ia.
  • Ke koi degere o ka hewa ka loaʻaʻana. E hiki anei i ka unuhi e hooki i ka hewa mua? I ka mea e hooki? Ina paha i ka hilinaʻi i ke compiler hewa e hooponopono?
  • I ka loaʻa nui o ka mea paahana. Inā ka palapala 'ōlelo mea e uuku loa, e koi' ia ka mīkiniʻimi a me ka mīkini hana wāwahie analyzers. Aia nō hoʻi nā mīkini uila, kuhi nā mīkini uila, akā, ka mea e ole ai, he pono ole.
  • ʻAno o ka pale umauma hoʻokahi kuhi e e ua loaʻa. E koho mai maemae kumukanawai aʻike kamepiula mīkini kuhi. A i 'ole e kākau i komo hapa e hana i ke kaulana waena e hoohalike ai ia me LLVM, RTL, a JVM. A i 'ole e ka unuhi ana i ka mea mua i loko o ke kumu kivila mai o C a pio.
  • I ka waihona o ka pale kuhi. Oe ke koho i kaʻaha kanaka 'ōlelo, he lawe mīkini kuhi, mīkini kuhi iaiyoe kiʻi.
  • Retargeting. I ka mea maikai i ka lākou o nā mīkini uila no i kekahi, he pono ole muliwai hapa. No keia kumu ka mea, he mea pono ia i kekahi mīkini hana wāwahie no ka manaʻo kōkua o na wahi he nui.

compiler kuhikuhipuʻuone: eiiiiiaiou

Mau mea i ka nui ooieoeiiaeuiiai eiiiiiaiou o ka compiler e paha ke kanaka maoli code (ina ka polokalamu auoiaea mea he polokalamu i loko o C a me kaʻike kamepiula mīkini, e pono ole ai i na kahua o ka hoʻonaʻauao):

  • Ka polokalamu hoʻokomo o (pele hoailona) iiaeaaony i loko o ka mīkiniʻimi (lexical mea kālailai), i pio ia i loko o ke kahawai o ka hoailona.
  • Waeʻikepili (waeʻikepili) kūkulu i kekahi Hōʻuluʻulu Ka Mooolelo O laau.
  • Semantic mea kālailai decomposes ka semantic ike, a loaʻa, e kaha i ka laau aka wahi no ka wahaheʻe. E like me ka hopena, kūkulu semantic kaiapili - Hōʻuluʻulu Ka Mooolelo O laau me nā waiwai, a me nā loulou hookupaaiaʻi.
  • Kuwaena kivila mīkini hana wāwahie kūkulu i ke kahe pakuhi (e Hoʻohui 'tuples i loko o ka papa kuhikuhiE ālai').
  • Machine-kuokoa kivila optimizer e lawelawe ai nā kūloko (i loko o ka waihona ipu mokuna) a me ka honua (i nā ālai ') kaʻoi loa holo nōhie koe i loko o nā kūmau. Ho'ēmi i kā redundant kivila, a simplifies i ka ho. I ka hopena o ka Hoʻololi 'pele pakuhi.
  • Mīkini hana wāwahie e hoopaa ana ka pale kaua kuhi walaʻauʻana ālai 'i loko o ka rectilinear EYI hooponopono kivila, e pili ana i ka mea waihona assemblerʻike kamepiula? Aaeno? (Hiki ineffective).
  • Machine-e kaukaʻi optimizer, linker allocates hoomanao ma waena o? Aaeno? A i hoʻolala eiiaiaeu. Ua hanaʻia ka polokalamu huli ana ma kaʻaha kanaka 'ōlelo i kēiaʻaha kanaka i ka hoʻohana' maikai o ka pipelining.

Eia hou, i ka hoʻohana 'ana o ka hewa ka loaʻaʻana subsystem manakia a me ka hōʻailona papa.

Lexical Ka Ikepili (kaʻimiʻana)

Ka mīkiniʻimi pio ke kahawai kumu huapalapala i loko o ke kahawai o ka hoailona, hoonee whitespace, manaʻo a me ka hoʻonui macros.

Scanners pinepine halawai pilikia, e like me ina ole paha, e lawe i ka mooolelo o ka hihia, margins, laina, mai hemo mai, a i loko iho manaʻo.

Hewa i e hana ana i kaʻimiʻana, i kapaʻia lexical a me ka pololei:

  • huapalapala i mea ole ma o ka'ōlelo Hawaiʻi;
  • oi o ka helu o nā huapalapala ma ka olelo a me ka laina;
  • ʻAʻole i paʻa ka hoailona a ke kaula literal;
  • pau o ka waihona ma ka manaʻo hoʻopuka.

Parsing (parsing)

Ka waeʻikepili pio i ke kaʻina o nā hōʻailona puʻupaʻa i loko o ka Hōʻuluʻulu Ka Mooolelo O laau. Kēlā me kēia'āina i loko o ka laau ua waiho waho e like me ka mea me ka inoa o nā mahinaʻai, he nui no i ka poe ia lakou iho i ka laau aka wahi. Ma kēia kahua loaʻa nāʻaʻohe pōʻaiapuni. A hiki aku oe e hana i ka waeʻikepili mea pono e hoʻolohe i ke kiʻekiʻe o ka manaʻo pohihihi o ka grammar (LL a LR) a loaʻa mai ina loaʻa nō kekahi rula disambiguation. Kekahi mau 'ōlelo e koi semantic Ka Ikepili.

Hewa i loaʻa ma kēia kahua i kapaia Ka Mooolelo O. No kekahi laʻana:

  • ke k = 5 * (7 - y me;
  • hu = / 5;
  • 56 = m * 4.

semantic Ka Ikepili

Iloko o ka semantic Ka Ikepili , e kaha i ka permissibility o nā rula a me ka ÷ ino māhele o ka wae laau (i hiki maopopo kahi inoa hoʻokomo 'ana no ka implicit type conversions, a no laila, ma luna o. D.) No ka ho okumu i ka mea semantic pakuhi.

ʻae nō hoʻi, i ka i ana o admissibility o ka rula i loko o kekahi 'ōleloʻokoʻa. Inā 'oe i hoʻouluulu i ka Iawa-e like' ōlelo, compilers i loaʻa:

  • mau ee iaaanu aey hoike ana'ku i loko o kona laulā;
  • i pili i ka ee iaaanu aey mua kona hoike ana'ku;
  • i maopopo nä haumäna i ka inoa o ka undeclared;
  • ʻaihue o iaoaioa pono;
  • excessive a lawa ka helu o nā manaʻo hoʻopiʻi kū'ē ma kekahi papa hana i kapa aku ai;
  • ʻAno OOAaAeAa.

hanauna

Kuwaena kivila hanauna produces pele pakuhi haku o tuples, Hoʻohui 'i loko o walaʻauʻana ālai'.

pā'ālua hanauna produces he maoli mīkini kuhi. Ma kuʻuna compilers no ka RISC-machines ma kaʻanuʻu mua, e ho okumu i ka assembler me ka mana loa helu o kaʻike kamepiula? Aaeno?. No ka CISC-machines paha e ole hiki mai.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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