На Горох
Информатика, 10 класс

§ 41. Системы программирования

"Информатика (базовый и углублённый уровни) (в 2 частях)", Поляков К.Ю., Еремин Е.А.

Объяснение темы В оглавлении: § 41. Системы программирования

Кратко о теме

Система программирования — набор инструментов, с помощью которых создают, проверяют и запускают программы. Она включает редактор кода, транслятор, средства отладки, запуска и справочную систему. Исходный текст должен быть преобразован в форму, понятную процессору: это делает компилятор или интерпретатор. При работе с компилятором могут понадобиться объектный код и компоновщик, соединяющий программу с библиотеками. Выбор системы зависит от языка и способа выполнения программы.

Объяснение темы

Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.

Определения и обозначения

Система программирования — совокупность программных средств для создания, отладки и выполнения программ. Она помогает написать исходный код, обнаружить ошибки, преобразовать код и запустить результат. Благодаря этому программисту не приходится отдельно искать инструменты для каждого этапа.

Транслятор — программа, которая переводит исходный текст с языка программирования в другую форму. Такой перевод нужен потому, что процессор понимает машинные команды, а не записи вроде условий и циклов. Результатом может быть машинный, объектный или иной целевой код.

Компилятор — транслятор, заранее переводящий программу целиком в машинный или другой целевой код. После этого подготовленный код можно запускать без нового перевода исходного текста. Компиляция удобна, когда программу планируют многократно использовать.

Интерпретатор — программа, которая во время работы анализирует команды исходной программы и сразу выполняет их. Такой способ позволяет быстрее проверять отдельные изменения и получать результат по ходу запуска. Отдельный исполняемый файл при этом обычно не создаётся.

Как это устроено

Исходный текст нельзя непосредственно выполнить процессору, потому что он записан с помощью слов, символов и правил языка программирования. Процессор работает с машинными командами, представленными в форме, которую понимает конкретная вычислительная система. Поэтому между текстом программы и её выполнением нужен транслятор, преобразующий записи в подходящий код.

При компиляции транслятор обрабатывает программу до запуска, проверяет её и создаёт объектный либо другой целевой код. Если исходный текст состоит из нескольких модулей или обращается к библиотекам, одного перевода недостаточно. Компоновщик соединяет полученные части и нужные библиотечные модули, формируя программу, которую можно запустить.

При интерпретации команды анализируются и выполняются во время запуска, поэтому отдельный исполняемый файл обычно не появляется. Такой подход удобен для обучения и быстрой проверки изменений: не нужно каждый раз ждать полного перевода. Однако повторное выполнение может требовать нового анализа исходного текста.

Редактор кода, средства запуска, отладки и справочная система объединяются в среде разработки. Это уменьшает число отдельных действий: код можно написать, запустить, остановить и проверить в одном приложении. Отладчик помогает выполнять программу по шагам и наблюдать значения переменных, когда простой просмотр текста не даёт ответа.

Системы программирования различаются поддерживаемыми языками, способом выполнения программ и набором средств разработки. Одни ориентированы на получение быстрого машинного кода, другие — на удобство экспериментов и интерактивной работы. Поэтому при выборе учитывают задачу, используемый язык, библиотеки и доступные инструменты проверки.

Сравнение компилятора и интерпретатора

СвойствоКомпиляторИнтерпретатор
Когда выполняется переводДо запуска программы, обычно целикомВо время запуска, по мере обработки команд
Что получается после переводаОбъектный, машинный или другой целевой кодОбычно отдельный исполняемый файл не создаётся
Как запускается программаЗапускается подготовленный код, иногда после компоновкиИнтерпретатор читает и выполняет исходный текст
Когда обнаруживаются ошибкиМногие ошибки — до запуска, остальные во время работыПри достижении соответствующей команды во время работы
Особенности повторного запускаПеревод обычно не нужен, если исходный код не изменилсяАнализ команд обычно повторяется при новом запуске

Таблицу удобно использовать, если нужно быстро определить способ выполнения программы по нескольким признакам. Сначала сравните момент перевода и результат, а затем проверьте особенности запуска и поиска ошибок. Нельзя делать вывод только по скорости: на неё влияют язык, реализация и особенности самой программы.

Разбор задач

Поиск причины незапуска программы

Ученик написал программу и хочет узнать, почему она не запускается. Нужно определить, какие средства системы программирования помогут найти ошибку. Здесь важно отличить сообщение транслятора от самостоятельного поиска причины в отладчике.

  1. Сначала прочитайте сообщение компилятора или интерпретатора. Если обнаружена синтаксическая ошибка, исправьте неправильный символ, слово или структуру команды.
  2. Если программа переводится, но завершается неверно или выдаёт неправильный результат, запустите отладчик. Выполняйте код по шагам и проверяйте значения переменных в подозрительном месте.
  3. Сопоставьте найденную строку с условием задачи и исправьте причину, а не только внешний симптом.

Ответ: сообщение транслятора помогает найти ошибки записи и перевода, а отладчик — ошибки выполнения и логики уже запускаемой программы.

Определение способа выполнения

Для двух языков указано, что один переводится в исполняемый файл до запуска, а другой выполняется команду за командой. Требуется определить способы выполнения. Признаки прямо указывают, когда происходит перевод и что используется при запуске.

  1. Перевод до запуска с получением исполняемого файла означает компиляцию.
  2. Выполнение команд по мере запуска означает интерпретацию, поскольку анализ текста происходит в рабочем процессе.
  3. Сопоставьте первый язык с компилятором, а второй — с интерпретатором.

Ответ: первый язык выполняется скомпилированным способом, второй — интерпретируемым.

Программа с библиотечными модулями

Программа использует библиотечные модули, поэтому нужно описать путь от исходного текста до запуска. Простого перевода текста может быть недостаточно: отдельные функции находятся в подключаемых компонентах. Последовательность действий показывает, где появляется готовая программа.

  1. Компилятор анализирует исходные файлы и переводит их в объектный или иной целевой код.
  2. Компоновщик находит необходимые библиотечные модули и соединяет их с объектным кодом программы.
  3. После успешной компоновки получается исполняемый файл или другой запускаемый результат, который передаётся операционной системе.

Ответ: исходный текст проходит трансляцию, затем объектный код компонуется с библиотеками, после чего готовая программа запускается.

Типичные ошибки

Ошибка: считать компилятор и интерпретатор языками программирования. Так думают, потому что названия часто употребляют рядом с названиями языков. Проверьте себя: язык задаёт правила записи, а компилятор или интерпретатор обрабатывает текст по этим правилам.

Ошибка: полагать, что компиляция всегда сразу создаёт готовый исполняемый файл. Такое представление не учитывает объектный код, библиотеки и работу компоновщика. Уточните, какой результат получен после перевода и потребовалась ли ещё сборка.

Ошибка: утверждать, что интерпретатор заранее переводит всю программу. Обычно он анализирует и выполняет команды во время запуска, поэтому ошибка может проявиться только при достижении конкретной команды. Проверьте, создаётся ли отдельный исполняемый файл до старта.

Ошибка: считать среду разработки языком программирования. Путаница возникает потому, что в ней пишут код и запускают программы. Проверьте себя: среда разработки — набор инструментов, а язык — система правил и конструкций исходного текста.

Связь с другими темами

  • До изучения темы нужно знать, что такое программа, исходный код, язык программирования и машинные команды. Эти понятия объясняют, что именно переводит транслятор и почему процессору нужен другой формат.
  • Понимание трансляции пригодится при изучении этапов создания программ, библиотек и модулей. Оно помогает увидеть, как отдельные части объединяются в работающую систему.
  • Навыки работы со средой разработки и отладчиком пригодятся при написании и проверке программ на разных языках. Они позволяют быстрее находить ошибки независимо от выбранного способа выполнения.

Что запомнить

  • Система программирования включает средства для создания и проверки программ.
  • Транслятор преобразует исходный текст программы.
  • Компилятор переводит программу до её запуска.
  • Интерпретатор выполняет команды в процессе работы программы.
  • Для запуска скомпилированной программы может понадобиться компоновка с библиотеками.
  • Среда разработки объединяет редактор кода и другие инструменты.

Частые вопросы по теме

Чем система программирования отличается от языка программирования?

Язык программирования задаёт правила записи команд и конструкций программы. Система программирования — это набор инструментов, которые позволяют писать, переводить, отлаживать и запускать код на этом языке.

Обязательно ли компилятор создаёт исполняемый файл?

Нет. Компилятор может создать объектный или другой целевой код, а готовый исполняемый файл появится после компоновки с библиотеками и другими модулями.

Почему интерпретируемая программа может запускаться медленнее?

При запуске интерпретатор обычно анализирует команды и выполняет их во время работы программы. Повторный анализ добавляет затраты времени, тогда как заранее скомпилированный код уже подготовлен для выполнения.

Когда удобнее использовать отладчик?

Отладчик полезен, когда программа запускается, но работает неправильно. Он позволяет выполнять код по шагам, наблюдать значения переменных и находить место, где возникает ошибка.

Зачем программе нужны библиотеки и компоновщик?

Библиотека содержит готовые модули и функции, которые не нужно писать заново. Компоновщик соединяет объектный код программы с нужными библиотеками, чтобы получилась целостная программа.

Спросить по теме параграфа

§ 41. Системы программирования

Эта же тема в других учебниках

Учебник

Оглавление →
Предмет
Информатика
Класс
10 класс
Учебник
"Информатика (базовый и углублённый уровни) (в 2 частях)", Поляков К.Ю., Еремин Е.А.