Ассемблер және аудармашы
Жалпы алғанда, компилятор – бастапқы тіл деп аталатын бір тілде жазылған бағдарламаны оқып, оны басқа тілге аударатын, аударма тілі деп аталатын компьютерлік бағдарлама. Дәстүрлі түрде бастапқы тіл - C++ сияқты жоғары деңгейлі тіл және мақсатты тіл - Ассамблея тілі сияқты төмен деңгейлі тіл. Дегенмен, Ассамблея тілінде жазылған бастапқы бағдарламаны түрлендіретін және оны машиналық кодқа немесе объектілік кодқа түрлендіретін компиляторлар бар. Құрастырушылар осындай құралдар. Екінші жағынан, аудармашылар - бұл кейбір бағдарламалау тілінде жазылған нұсқауларды орындайтын құралдар. Аудармашы жоғары деңгейлі бастапқы кодты тікелей орындай алады немесе оларды аралық кодқа аударып, содан кейін оны түсіндіре алады немесе алдын ала құрастырылған кодты орындай алады.
Ассемблер дегеніміз не?
Assembler - бағдарламалық құрал немесе Ассамблея тілін машиналық кодқа аударатын құрал. Сонымен, ассемблер - компилятордың бір түрі және бастапқы код Ассамблея тілінде жазылады. Ассамблея - бұл адам оқи алатын тіл, бірақ ол әдетте сәйкес машиналық кодпен бір-біріне қатынасы бар. Сондықтан ассемблер изоморфты (бірден-бірге салыстыру) аударманы орындайды деп аталады. Жетілдірілген ассемблерлер бағдарламаны әзірлеу және жөндеу процестерін қолдайтын қосымша мүмкіндіктерді қамтамасыз етеді. Мысалы, макро ассемблер деп аталатын ассемблер түрі макроқұрылымды қамтамасыз етеді.
Аудармашы дегеніміз не?
Аудармашы – компьютерлік бағдарлама немесе бағдарламалау нұсқауларын орындайтын құрал. Интерпретатор бастапқы кодты тікелей орындауы немесе бастапқы кодты аралық кодқа түрлендіруі және оны тікелей орындауы немесе компилятор шығарған алдын ала құрастырылған кодты орындауы мүмкін (кейбір интерпретатор жүйелерінде осы тапсырма үшін компилятор бар). Perl, Python, MATLAB және Ruby сияқты тілдер аралық кодты пайдаланатын бағдарламалау тілдерінің мысалдары болып табылады. UCSD Паскаль алдын ала құрастырылған кодты түсіндіреді. Java, BASIC және Samlltalk сияқты тілдер алдымен көзді байт код деп аталатын аралық кодқа құрастырады, содан кейін оны түсіндіреді.
Ассемблер мен аудармашының айырмашылығы неде?
Ассемблерді тек Ассамблея тілін машиналық кодқа аударатын компилятордың ерекше түрі деп санауға болады. Аудармашылар – белгілі бір тілде жазылған нұсқауларды орындайтын құралдар. Интерпретаторлық жүйелер интерпретация алдында кодты алдын ала құрастыру үшін компиляторды қамтуы мүмкін, бірақ интерпретаторды компилятордың арнайы түрі деп атауға болмайды. Ассемблерлер нысан кодын жасайды, оны машинада іске қосу үшін байланыстырушы бағдарламалар арқылы байланыстыру қажет болуы мүмкін, бірақ интерпретаторлардың көпшілігі бағдарламаның орындалуын өздігінен аяқтай алады. Ассемблер әдетте бір-бір аударма жасайды, бірақ бұл көптеген аудармашылар үшін дұрыс емес. Ассемблер тілінде машиналық кодпен бір-бір салыстыру болғандықтан, ассемблер өнімділігі өте маңызды жағдайларда (мысалы, графикалық қозғалтқыштар, дербес компьютермен салыстырғанда шектеулі аппараттық ресурстары бар ендірілген жүйелер үшін) өте тиімді жұмыс істейтін кодты шығару үшін пайдаланылуы мүмкін. микротолқынды пештер, кір жуғыш машиналар және т.б.). Екінші жағынан, аудармашылар жоғары тасымалдану қажет болғанда қолданылады. Мысалы, сәйкес аудармашы (JVM) арқылы бірдей Java байт кодын әртүрлі платформаларда іске қосуға болады.