Машинний код: відмінності між версіями

[перевірена версія][перевірена версія]
Вилучено вміст Додано вміст
Рядок 7:
== Мови асемблера ==
{{main|Мова асемблера}}
Машинний код можна розглядати як примітивну [[Мова програмування|мову програмування]] або як найнижчий рівень представлення [[Компілятор|скомпільованих]] або [[Асемблер|ассембльованих]] комп'ютерних програм. Хоча цілком можливо створювати програми прямо в машинному коді, зараз цього практично ніхто не робить. Якщо потрібно написати оптимізовану програму під певний мікропроцесор то використовують переважно різні види мови [[Асемблер]]а. Також, якщо під рукою немає початкового коду програми на високій мові програмування, а необхідно внести певні зміни в код, зламати код і т.п. використовують [[дизасемблер]]и, програми, що перетворюють машинний код у асемблерний, який більш зрозумілий спеціалістам. ДизасемблериЗа можутьдопомогою дизасемблери можна змінювати машинний код таким чином що непотрібна повна перекомпіляція програм. Написання коду на машинному коді і наближених до нього асемблерних мовах доволі трудомістка задача, потрібує хорошого знання будови мікропроцесора та апаратних засобів. Тому переважна більшість програм пишеться мовами більш високого рівня і транслюється в машинний код [[компілятор]]ами.
 
Програми на [[Інтерпретована мова програмування|інтерпретованих мовах]] (таких як [[Бейсик]] або [[Python]]) не транслюються в машинний код; замість цього вони або виконуються безпосередньо [[інтерпретатор]]ом мови, або транслюються у псевдокод ([[байт-код]]), який згодом виконується інтерпретатори. Самі інтерпретатори - це програми представлені в машинному коді. Загалом виконання псевдокоду не значно повільніше за виконання машинного коду і значно швидше за виконанням інтерпретатором звичайного коду зрозумілого людині. Програми на Java зазвичай передаються на цільову машину у вигляді байт-кода, який перед виконання транслюється в машинний код «на льоту» — за допомогою JIT-компіляції.