theem kawg ntawm kev tsim ib qho kev pab cuam yog txhais cov algorithm uas sau ua ib hom lus programming (C/C++, Pascal, thiab lwm yam) rau hauv cov lus tshuab qis. Qhov no yog vim lub fact tias nyob rau hauv thiaj li yuav ua tau tej hauj lwm, computers yuav tsum tau muab commands nyob rau hauv ib hom lus lawv to taub, ze rau binary thiab kev khiav hauj lwm nrog cov ntaub ntawv keeb kwm (ntsis, byte los yog lo lus). Cov txheej txheem ntawm kev txhais cov ntsiab lus tshwj xeeb ntawm cov lus qib siab rau hauv binary code yog hu ua kev txhais lus. Muaj ob txoj kev txhais lus - muab tso ua ke thiab txhais.
Compiler - yog dab tsi?
Kev tshuaj xyuas ntau qhov kev txhais ntawm cov ntsiab lus "compiler" thiab "sib sau ua ke" tso cai rau peb qhia txog cov ntsiab lus hauv qab no. Lub compiler yog ib qho kev pab cuam tsim los txhais cov ntawv ntawm ib lub hauv paus algorithm los ntawm cov lus theem siab mus rau ib qho sib npaug ntawm cov lus qhia hauv hom lus siv tshuab. Qhov no yog lub npe hu ua object code, rau kev sib sau ua ke tom qab ntawm cov khoom code uas tau tshwm sim rau hauv ib qho kev npaj txhij-rau-siv program module.
Compiler thiab txhais lus - zoo sib xws thiab sib txawv
Tus neeg txhais lus yog qhov siv tauraws li ib tug compiler, tsim los txhais cov code rau hauv tshuab code. Txawm li cas los xij, tsis zoo li lub compiler, tus neeg txhais lus khiav txhua zaus nrog qhov kev pab cuam thiab ua cov kab lus txhais los ntawm kab.
Koj tuaj yeem hais tau tias tus sau thiab tus neeg txhais lus yog cov txheej txheem lus uas tso cai rau lub khoos phis tawj paub thiab ua tiav cov lus txib muab los ntawm programmer.
Compiler classification
Compilers raug cais feem ntau los ntawm cov yam ntxwv ntsig txog lawv thaj chaw ntawm kev siv tswv yim.
Vectorizing compiler yog cov khoom siv uas txhais cov lej hauv cov khoom code thiab hloov kho rau cov khoos phis tawj nruab nrog vector processors.
Ib qho yooj yim compiler yog programmed nyob rau hauv cov lus theem siab nyob rau hauv ib tug modular zam. Nws txoj kev tswj hwm yog ua los ntawm cov ntxhuav. Nws kuj tseem tuaj yeem ua rau nws siv cov compiler ntawm compilers.
Incremental compiler yog tus txheej txheem lus uas rov txhais cov kab lus cais ntawm qhov chaws thiab ntxiv rau nws. Txawm li cas los xij, nws zam kev rov ua dua tag nrho daim ntawv thov.
Ib tus txhais lus (stepping) compiler yog ib qho khoom siv uas ua raws li kev ua haujlwm ywj pheej ntawm txhua nqe lus lossis cov lus txib ntawm qib siab qhov chaws.
Ib tug sau ntawm cov compilers yog tus txhais lus muaj peev xwm lees txais cov lus piav qhia rau ib hom lus programming thiab nws tus kheej tsim cov compiler rau ib hom lus.
Lub debug compiler tso cai rau koj mus nrhiav thiab kho qee yam ntawm syntax yuam kev ua thaum sau qhov chaws
Ib tus neeg nyob hauv lub kaw lus nyob hauv qhov chaw ruaj khov hauv RAM thiab yog li rov siv tau los ntawm ntau txoj haujlwm.
Tus kheej-sib sau ua ke sau ua ib hom lus raws li kev txhais lus.
Lub universal compiler yog raws li cov lus piav qhia ntawm cov semantic thiab syntactic parameters ntawm cov lus nkag. Cov khoom tseem ceeb ntawm cov khoom siv hluav taws xob zoo li no yog cov tub ntxhais, syntactic thiab semantic loaders.
Compiler ntaus ntawv
Ib tug compiler thiab ib tug linker yog nyob rau hauv lub plawv ntawm tej compiler. Feem ntau, thaum compiling, ib qho txuas sab nraud yog siv, thiab lub compiler nws tus kheej tsuas yog ua haujlwm txhais lus xwb. Nws kuj tshwm sim hais tias lub compiler yog siv raws li ib yam ntawm cov kev pab cuam uas yog txuam nrog cov neeg txhais lus (los yog cov neeg txhais lus, yog hais tias sib txawv programming lus tau siv thaum sau lub hauv paus code) thiab tus linker thiab pib lawv ua tiav thaum tsim nyog.
Txoj kev hais lus thiab kev txhais lus
Txawm hais tias qhov kev zov me nyuam sau ua ib hom lus programming tuaj yeem muab sau ua ke thiab txhais, ntau hom lus qib siab muaj qhov cuam tshuam rau ib lossis lwm txoj kev txhais lus. Yog li, cov lus C yog Ameslikas tsim los muab tso ua ke, thiab Java - rau kev txhais lus ntawm kev sau ntawv. Muaj kev tsim khoC compilers yog ib qho yooj yim heev, ua tsaug rau nws cov qib qis thiab muaj pes tsawg tus qauv tsim.
Qhov zoo thiab qhov tsis zoo ntawm cov neeg sau thiab txhais lus. Daim ntawv thov
Nco ntsoov tias cov ntawv sau ua ke tau nrawm dua li kev txhais, tab sis tib lub sijhawm, lub tshuab code tau txais los ntawm kev muab tso ua ke nyob ntawm lub hardware platform. Yog li, ib qho program sau thiab muab tso ua ke rau Windows yuav tsis ua haujlwm, piv txwv li, hauv Linux. Yog li ntawd, nyob rau hauv cov ntaub ntawv ntawm kev siv Internet, thaum nws tsis tuaj yeem hais ua ntej nyob rau hauv uas ib puag ncig lawv yuav ua haujlwm, lawv siv kev txhais lossis bytecode (qhov no, qhov kev pab cuam tau hloov mus rau hauv daim ntawv nruab nrab uas tuaj yeem ua tiav ntawm ntau yam khoom siv. platforms).