
- •Лекция 1: Введение в системное программное обеспечение Билет 1
- •Системное программное обеспечение
- •Функции
- •Создание процесса
- •Завершение процесса
- •Создание процесса
- •Завершение процесса
- •9. Системные часы и таймеры, планирование выполнения процессов реального времени
- •Билет 37
- •Билет 38
- •Существуют программы, которые решают обратную задачу – перевод программы с низкоуровневого языка на высокоуровневый. Этот процесс называют декомпиляцией, а
- •Компоновщик
Билет 38
Транслятор (англ. translator – переводчик) – это программа-переводчик. Она преобразует программу, написанную на одном из языков высокого уровня, в программу, состоящую из машинных команд.
Например, компилятор принимает на входе исходный код на языке высокого уровня и выдаёт программу на языке ассемблера либо объектный код.
Интерпрета́тор языка программирования (англ. interpreter – истолкователь, устный переводчик) переводит и выполняет программу строка за строкой. Это программа для непосредственного исполнения программ (производства вычислений, предписываемых этими программами) из исходного кода на определённом языке.
Простые интерпретаторы анализируют и выполняют (интерпретируют) программу последовательно (покомандно или построчно). Синтаксические ошибки обнаруживаются такими интерпретаторами только когда интерпретатор приступает к выполнению команды (строки) содержащей ошибку, это может быть удобно начинающим.
Более сложные интерпретаторы (называемые интерпретаторами компилирующего типа) перед выполнением производят компиляцию исходного кода программы в машинный или некий «промежуточный код», и только после этого приступают к выполнению.
Некоторые интерпретаторы для начинающих (преимущественно, для языка Бейсик) могут работать в режиме диалога, добавляя вводимую строку команд в программу (в памяти) или выполняя команды непосредственно.
Компиля́тор (англ. compiler – составитель, собиратель) читает всю программу целиком, делает ее перевод и создает законченный вариант программы на машинном языке, который затем и выполняется. Это разновидность транслятора, программный модуль или отдельная программа, задачей которой является полный перевод программы, написанной на одном из языков программирования (исходный язык) в программу на другом языке программирования (целевой язык) до начала ее выполнения. Другой разновидностью трансляторов являются интерпретаторы, осуществляющие анализ и перевод текста программы в машинный код пошагово, непосредственно перед выполнением, и сразу же исполняющие получившийся машинный код.
Существуют программы, которые решают обратную задачу – перевод программы с низкоуровневого языка на высокоуровневый. Этот процесс называют декомпиляцией, а
Процесс компиляции состоит из двух основных частей – собственно компиляции и компоновки (генерации исполняемого файла).
модулю ссылки должны быть разрешены, то есть для каждой из них должна быть поставлена в соответствие конкретная функция из другого модуля программы, либо из внешней библиотеки.
Байт-код (англ. byte-code), иногда также используется термин псевдоко́д – машинно-независимый код низкого уровня, генерируемый компилятором и исполняемый виртуальной машиной. Большинство инструкций байт-кода эквивалентны одной или нескольким командам ассемблера. Компиляция в байт-код занимает промежуточное положение между компиляцией в машинный код и интерпретацией.
Байт-код называется так, потому что длина каждого кода операции – один байт, но длина кода команды различна. Каждая инструкция представляет собой однобайтовый код операции от 0 до 255, за которым следуют такие параметры, как регистры или адреса памяти. Это в типичном случае, но спецификация байт-кода значительно различается в языке.
В то же время возможно создание процессоров, для которых данный байт-код является
Отладчик является модулем среды разработки или отдельным приложением, предназначенным для поиска ошибок в программе. Отладчик позволяет выполнять пошаговую трассировку, отслеживать значения переменных в процессе выполнения программы, устанавливать точки или условия останова и т. д.
Отладка – этап разработки компьютерной программы, на котором обнаруживают, локализуют и устраняют ошибки. Есть различные подходы и средства отладки; в качестве основного средства используются отладчики, которые включают в себя пользовательский интерфейс для пошагового выполнения программы: оператор за оператором, функция за функцией, с остановками на некоторых строках исходного кода или при достижении определённого условия.
Они также дают возможность отображения значений переменных. Отслеживать правильный ход программы можно расстановкой в критических её частях отладочных операторов вывода «внутренней» информации о программе. Вывод отладочных сведений в файл называется журналированием3.
GDB – переносимый отладчик проекта GNU, который работает на многих UNIX-подобных системах и умеет производить отладку многих языков программирования, включая Си, C++ и Фортран.
Отладчик не содержит собственного графического пользовательского интерфейса, и использует стандартный текстовый интерфейс консоли.