Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Структура программы на языке Си.

Этапы трансляции программы. Состав набора средств разработки и отладки программы на языке высокого уровня. Примеры инструментальных средств.

Ответ:

Трансляция – перевод программы с языка программирования на язык машинных кодов (выполняется транслятором)

Транслятор:

· Анализирует программу на наличие ошибок (синтаксических и др.).

· Генерирует выходную (объектную) программу на языке машинных команд.

· Распределяет память для объектной программы.

Этапы трансляции

· Предварительная обработка (препроцессинг, 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-11-11; Мы поможем в написании ваших работ!; просмотров: 304 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Самообман может довести до саморазрушения. © Неизвестно
==> читать все изречения...

2489 - | 2332 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.013 с.