![]() Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Этапы трансляции программы. Состав набора средств разработки и отладки программы на языке высокого уровня. Примеры инструментальных средств.
Ответ: Трансляция – перевод программы с языка программирования на язык машинных кодов (выполняется транслятором) Транслятор: · Анализирует программу на наличие ошибок (синтаксических и др.). · Генерирует выходную (объектную) программу на языке машинных команд. · Распределяет память для объектной программы. Этапы трансляции · Предварительная обработка (препроцессинг, preprocessing): o Преобразование исходного текста программы без его анализа. o Выполняется препроцессором (для C/C++) или компилятором (C#). o Директивы – специальным образом выделяемые в программе команды управления препроцессором (#define, #if, #pragma, ...) для: § Включения файлов в текст программы. § Определения макроса (текстовой подстановки). § Задания параметров условной компиляции. o Полезна при отладке программы. o Может приводить к появлению труднообнаруживаемых ошибок. 1. На входе – исходные файлы. 2. На выходе – "единицы трансляции". · Компиляция - преобразование в машинные команды, выполняется в несколько подэтапов: o Лексический анализ. o Синтаксический анализ. o Семантический анализ. o Оптимизация. o Генерация кода. 1. На входе – единицы трансляции 2. На выходе – машинный код (объектные модули) · Связывание (компоновка, линковка) выполняется с целью: o Формирования единого адресного пространства исполняемой программы. o Размещения всех объектных модулей по соответствующим адресам. o Изменению относительных адресов процедур и переменных каждого объектного модуля на абсолютные (в пределах всей программы) – внешнее связывание. § На входе – объектные модули, библиотечные файлы. § На выходе – исполняемый файл (или библиотечные файлы). Минимальный набор средств разработки · Текстовый редактор: o Создание и редактирование текста программ. o Подсветка синтаксиса, предиктивный ввод текста(автодополнение). · Препроцессор: o Предварительная обработка текста o Удаление комментариев, реализация директив (#) и макросов (текстовых подстановок) · Компилятор: o Трансляция текстовых модулей в объектные модули на низкоуровневом языке · Библиотека подпрограмм: o Статическая – вставляется в исполняемый модуль на этапе компоновки. o Динамическая (dll ) - загружается в память по мере необходимости, сокращает размер исполняемого модуля. · Компоновщик (Linker): o Компоновка нескольких объектных модулей в один исполняемый модуль o Использует таблицы символов и библиотеки. Расширенный набор средств разработки · Отладчик: o Трассировка. o Отслеживание, установка, изменение переменных. o Установка и удаление контрольных точек (breakpoints, watchpoints). o Условный и безусловный останов. · Профайлер: o Сбор характеристик работы программы: § Время выполнения отдельных фрагментов (обычно подпрограмм). § Число верно предсказанных условных переходов. o Используются для анализа проведения программы (граф вызовов) и оптимизации программы · Статический анализатор кода: o Анализ программы без ее выполнения. o Warnings для компиляторов С/С++: § Чтение неинициализированной переменной. § Возможность выхода за границы массива. § Опасность недокументированного поведения. ИнтегрированнаясредаразработкиIDE (Integrated development environment) или IDDE(Integrated development& debug environment). Включает в себя: · Текстовый редактор. · Компилятор. · Компоновщик (средства автоматизации сборки проекта). · Отладчик. Содержит средства для: · Интеграции с системами управления версиями. · Конструирования GUI. · Поддержки ООП (браузер классов, инспектор объектов, диаграмма иерархии классов) Бывают: · "Многоязычные" (Visual Studio, IntelliJ IDEA, Eclipse, Code::Blocks). · "Одноязычные" (Delphi, Dev-C++)
Структура программы на языке Си. Ответ: Исходная программа: · Директивы препроцессора. · Указания компилятору. · Объявления: o Имена и атрибуты используемых переменных, функций и типов. · Определения: o Определения переменных: § В дополнение к типу задаёт начальное значение. o Определения функций: § Имя функции, формальные параметры, возвращаемая величина. § Объявления. § Операторы. Структура программы на языке С: · Подключение заголовочных файлов. · Описание констант, определение макросов. · Описание глобальных переменных. · Объявление функций. · Определение функций. · Описание локальных переменных функций. · Функция main(): o Точка входа в функции. o Точка выхода из функции. |
||
Последнее изменение этой страницы: 2018-04-12; просмотров: 1583. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |