Ассемблер ба Хөрвүүлэгч
Ерөнхийдөө хөрвүүлэгч гэдэг нь эх хэл гэж нэрлэгддэг нэг хэл дээр бичигдсэн программыг уншиж, өөр хэл рүү хөрвүүлдэг компьютерийн программ бөгөөд үүнийг зорилтот хэл гэж нэрлэдэг. Уламжлал ёсоор эх хэл нь C++ зэрэг өндөр түвшний хэл, зорилтот хэл нь Ассемблей хэл зэрэг доод түвшний хэл байв. Гэсэн хэдий ч Ассемблей хэлээр бичсэн эх программыг хөрвүүлж, машины код эсвэл объектын код руу хөрвүүлэх боломжтой хөрвүүлэгчид байдаг. Ассемблер бол ийм хэрэгсэл юм. Тиймээс ассемблер болон хөрвүүлэгч хоёулаа эцэст нь машин дээр шууд гүйцэтгэх кодыг үйлдвэрлэдэг.
Хэвлэгч гэж юу вэ?
Хэвлэгч гэдэг нь эх хэл гэж нэрлэгддэг нэг хэлээр бичигдсэн программыг уншиж, өөр хэл рүү хөрвүүлдэг компьютерийн программ бөгөөд үүнийг зорилтот хэл гэж нэрлэдэг. Ихэнхдээ эх хэл нь өндөр түвшний хэл, зорилтот хэл нь доод түвшний хэл юм. Тиймээс ерөнхийд нь хөрвүүлэгчдийг нэг хэлээс нөгөө хэл рүү орчуулдаг орчуулагч гэж үзэж болно. Нэмж дурдахад хөрвүүлэгчид кодын зарим оновчлолыг гүйцэтгэдэг. Ердийн хөрвүүлэгч нь хэд хэдэн үндсэн бүрэлдэхүүн хэсгүүдээс бүрдэнэ. Эхний бүрэлдэхүүн хэсэг нь сканнер (мөн лексик анализатор гэгддэг) юм. Сканнер програмыг уншиж, тэмдэгтийн мөр болгон хөрвүүлдэг. Хоёрдахь бүрэлдэхүүн хэсэг нь задлан шинжлэгч юм. Энэ нь токенуудын мөрийг задлан шинжлэх мод (эсвэл хийсвэр синтакс мод) болгон хувиргадаг бөгөөд энэ нь програмын синтаксик бүтцийг агуулдаг. Дараагийн бүрэлдэхүүн хэсэг нь синтаксийн бүтцийн семантикийг тайлбарладаг семантик горимууд юм. Кодын оновчлол болон эцсийн код үүсгэх нь үүнийг дагадаг.
Ассемблер гэж юу вэ?
Ассемблер нь Ассемблей хэлийг машины код руу хөрвүүлдэг программ хангамж эсвэл хэрэгсэл юм. Тиймээс ассемблер нь хөрвүүлэгчийн нэг төрөл бөгөөд эх код нь Ассемблей хэлээр бичигдсэн байдаг. Ассемблей нь хүн унших боломжтой хэл боловч энэ нь ихэвчлэн тохирох машины кодтой нэгийг харьцдаг. Тиймээс ассемблер нь изоморф (нэг рүү нэг зураглал) орчуулга хийдэг гэж хэлдэг. Нарийвчилсан ассемблерууд нь программ боловсруулах болон дибаг хийх процессыг дэмждэг нэмэлт функцээр хангадаг. Жишээлбэл, макро ассемблер гэж нэрлэгддэг ассемблерийн төрөл нь макро байгууламжийг хангадаг.
Ассемблер болон Хөрвүүлэгч хоёрын ялгаа нь юу вэ?
Компилер гэдэг нь нэг хэл дээр бичигдсэн программыг уншиж өөр хэл рүү хөрвүүлдэг компьютерийн программ бол ассемблерийг зөвхөн Ассемблей хэлнээс машины код руу хөрвүүлдэг тусгай төрлийн хөрвүүлэгч гэж үзэж болно. Хөрвүүлэгчид ихэвчлэн өндөр түвшний хэлнээс машин гүйцэтгэх кодыг шууд гаргадаг боловч ассемблерууд нь машин дээр ажиллахын тулд холбогч програмуудыг ашиглан холбох шаардлагатай объектын кодыг гаргадаг. Ассемблей хэл нь машины кодтой нэг нэгээр нь зураглалтай байдаг тул ассемблерийг гүйцэтгэл маш чухал үед (жишээлбэл, график хөдөлгүүр, хувийн компьютертэй харьцуулахад хязгаарлагдмал техник хангамжийн нөөц бүхий суулгагдсан систем) маш үр дүнтэй ажилладаг кодыг үйлдвэрлэхэд ашиглаж болно. богино долгионы зуух, угаалгын машин гэх мэт).