Debugger срещу Compiler
По принцип компилаторът е компютърна програма, която чете програма, написана на един език, който се нарича изходен език, и го превежда на друг език, който се нарича целевият език. Традиционно изходният език е език от високо ниво като C ++, а целевият език е език от ниско ниво като асемблерен език. Debugger е компютърна програма, която се използва за намиране на грешки / грешки в други програми. Debugger позволява на програмист да спре изпълнението на програма в дадена точка и да изследва характеристиките като променливи стойности в тази точка.
Какво е Debugger?
Debugger е компютърна програма, която се използва за намиране на грешки / грешки в други програми. Debugger позволява изпълнение на програма и проверка на всяка стъпка в изпълнението на програмата. Също така позволява спиране на изпълнението на програмата в даден момент и промяна на някои променливи стойности и след това продължаване на изпълнението. Всички тези възможности са предоставени, за да помогнат на програмиста да се увери, че нейната програма се държи правилно и да помогнат при идентифицирането на грешки в кода. Повечето от дебъгърите предоставят възможност за изпълнение на програма стъпка по стъпка (наричана още единична стъпка), като прави пауза, за да изследва текущото състояние на програмата, като предоставя точка на прекъсване и проследява стойности на променливи. Някои разширени програми за отстраняване на грешки позволяват на програмиста да пропусне местоположение, което причинява срив или логическа грешка в кода, и да продължи изпълнението от друго място. Някои от популярните програми за отстраняване на грешки са GNU Debugger (GDB), Microsoft Visual Studio Debugger и др.
Какво е компилатор?
Компилаторът е компютърна програма, която чете програма, написана на един език, който се нарича изходен език, и го превежда на друг език, който се нарича целевият език. Най-често изходният език е език на високо ниво, а целевият език е език на ниско ниво. Така че като цяло компилаторите могат да се разглеждат като преводачи, които превеждат от един език на друг. Освен това компилаторите извършват някои оптимизации на кода. Типичният компилатор се състои от няколко основни компонента. Първият компонент е скенерът (известен също като лексикален анализатор). Scanner чете програмата и я преобразува в низ от символи. Вторият компонент е парсерът. Той преобразува низа от символи в дърво за синтактичен анализ (или абстрактно синтаксисно дърво), което улавя синтактичната структура на програмата. Следващият компонент са семантичните подпрограми, които интерпретират семантиката на синтактичната структура. Следва оптимизация на кода и окончателно генериране на код.
Каква е разликата между дебъгер и компилатор?
Debugger е компютърна програма, която се използва за намиране на грешки / грешки в други програми, докато компилаторът е компютърна програма, която чете програма, написана на един език, и я превежда на друг език. Компилаторите също имат способността да откриват синтаксични грешки и други грешки във времето на компилиране, но дебъгърите предоставят повече възможности (като наблюдение на паметта) за откриване на грешки в програмите. Тези две са две различни програми, но в повечето случаи дебъгерът и компилаторът са интегрирани в един пакет.