Assembler vs Compiler
ზოგადად, კომპილერი არის კომპიუტერული პროგრამა, რომელიც კითხულობს ერთ ენაზე დაწერილ პროგრამას, რომელსაც ეწოდება საწყისი ენა, და თარგმნის მას სხვა ენაზე, რომელსაც ეწოდება სამიზნე ენა. ტრადიციულად, საწყისი ენა იყო მაღალი დონის ენა, როგორიცაა C++ და სამიზნე ენა იყო დაბალი დონის ენა, როგორიცაა ასამბლეის ენა. თუმცა, არსებობენ შემდგენელები, რომლებსაც შეუძლიათ ასამბლეის ენაზე დაწერილი წყაროს პროგრამის გარდაქმნა და მანქანის კოდში ან ობიექტის კოდში გადაყვანა. ასამბლერები ასეთი ინსტრუმენტებია. ასე რომ, ასამბლერებიც და შემდგერებიც საბოლოოდ აწარმოებენ კოდს, რომელიც შეიძლება პირდაპირ შესრულდეს მანქანაზე.
რა არის შემდგენელი?
კომპეილერი არის კომპიუტერული პროგრამა, რომელიც კითხულობს ერთ ენაზე დაწერილ პროგრამას, რომელსაც ეწოდება საწყისი ენა, და თარგმნის მას სხვა ენაზე, რომელსაც ეწოდება სამიზნე ენა. ყველაზე ხშირად, საწყისი ენა არის მაღალი დონის ენა, ხოლო სამიზნე ენა დაბალი დონის ენაა. ასე რომ, ზოგადად შემდგენლები შეიძლება ჩაითვალოს მთარგმნელებად, რომლებიც თარგმნიან ერთი ენიდან მეორეზე. გარდა ამისა, შემდგენელები ახორციელებენ კოდის გარკვეულ ოპტიმიზაციას. ტიპიური შემდგენელი შედგება რამდენიმე ძირითადი კომპონენტისგან. პირველი კომპონენტია სკანერი (ასევე ცნობილია, როგორც ლექსიკური ანალიზატორი). სკანერი კითხულობს პროგრამას და გარდაქმნის მას ტოკენების სტრიქონად. მეორე კომპონენტი არის პარსერი. ის აკონვერტებს ჟეტონების სტრიქონს გაანალიზებულ ხედ (ან აბსტრაქტულ სინტაქსურ ხედ), რომელიც ასახავს პროგრამის სინტაქსურ სტრუქტურას. შემდეგი კომპონენტია სემანტიკური რუტინები, რომლებიც ინტერპრეტაციას უკეთებენ სინტაქსური სტრუქტურის სემანტიკას. კოდის ოპტიმიზაცია და საბოლოო კოდის გენერაცია ამას მოჰყვება.
რა არის ასამბლერი?
Assembler არის პროგრამული უზრუნველყოფა ან ინსტრუმენტი, რომელიც თარგმნის ასამბლეის ენას მანქანის კოდში. ასე რომ, ასამბლერი არის შემდგენელის ტიპი და წყაროს კოდი იწერება ასამბლეის ენაზე. ასამბლეა არის ადამიანისთვის წასაკითხი ენა, მაგრამ მას, როგორც წესი, აქვს ერთ-ერთი კავშირი შესაბამის მანქანის კოდთან. ამიტომ ნათქვამია, რომ ასამბლერი ასრულებს იზომორფულ (ერთიდან ერთ რუქაზე) თარგმნას. მოწინავე ასამბლერები უზრუნველყოფენ დამატებით ფუნქციებს, რომლებიც მხარს უჭერენ პროგრამის შემუშავებას და გამართვის პროცესებს. მაგალითად, ასამბლერების ტიპი, რომელსაც ეწოდება მაკრო ასამბლერები, უზრუნველყოფს მაკრო ინსტრუმენტს.
რა განსხვავებაა ასემბლერსა და კომპილერს შორის?
კომპილერი არის კომპიუტერული პროგრამა, რომელიც კითხულობს ერთ ენაზე დაწერილ პროგრამას და თარგმნის მას სხვა ენაზე, ხოლო ასამბლერი შეიძლება ჩაითვალოს შემდგენლის სპეციალურ ტიპად, რომელიც თარგმნის მხოლოდ ასამბლეის ენას მანქანის კოდზე. შემდგენელები, როგორც წესი, აწარმოებენ მანქანაში შესასრულებელ კოდს პირდაპირ მაღალი დონის ენიდან, მაგრამ ასამბლერები აწარმოებენ ობიექტის კოდს, რომელიც შეიძლება დაკავშირდეს ლინკერის პროგრამების გამოყენებით, რათა იმუშაოს მანქანაზე.იმის გამო, რომ ასამბლეის ენას აქვს ერთი-ერთი შეხამება მანქანის კოდით, ასამბლერი შეიძლება გამოყენებულ იქნას კოდის შესაქმნელად, რომელიც მუშაობს ძალიან ეფექტურად იმ შემთხვევებში, როდესაც შესრულება ძალიან მნიშვნელოვანია (მაგალითად, გრაფიკული ძრავებისთვის, ჩაშენებული სისტემებით შეზღუდული ტექნიკის რესურსებით პერსონალურ კომპიუტერთან შედარებით. როგორიცაა მიკროტალღური ღუმელები, სარეცხი მანქანები და ა.შ.).