Алексей Молчанов - Системное программное обеспечение. Лабораторный практикум

Здесь есть возможность читать онлайн «Алексей Молчанов - Системное программное обеспечение. Лабораторный практикум» — ознакомительный отрывок электронной книги совершенно бесплатно, а после прочтения отрывка купить полную версию. В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Санкт-Петербург, Год выпуска: 2005, ISBN: 2005, Издательство: Array Издательство «Питер», Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Системное программное обеспечение. Лабораторный практикум: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Системное программное обеспечение. Лабораторный практикум»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

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

Системное программное обеспечение. Лабораторный практикум — читать онлайн ознакомительный отрывок

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Системное программное обеспечение. Лабораторный практикум», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

1. Программа, вычисляющая факториал числа.

2. Программа, на примере которой можно иллюстрировать работу оптимизирующих алгоритмов.

Оба примера приведены в приложении 4.

Первый пример вычисляет факториал входной величины, причем если величина отрицательная или превышает 31, то программа возвращает 0. Умножение реализовано через цикл операций сложения. Входной файл приведен в листинге П4.1, а полученный результирующий файл – в листинге П4.2, приложение 4.

Второй пример содержит почти бессмысленную программу, которая всегда возвращает значение, равное 0, но на примере этой программы можно хорошо проиллюстрировать работу оптимизирующих алгоритмов. Входной файл приведен в листинге П4.3, в листинге П4.4 приведен результирующий файл, полученный без применения оптимизации, а в листинге П4.5 – файл, полученный с применением оптимизации. Желающие могут сравнить ассемблерный код этих двух файлов и проверить эффективность используемых алгоритмов оптимизации. [12]

Выводы по проделанной работе

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

Построенный компилятор обнаруживает все синтаксические ошибки языка, а также семантические ошибки:

• присваивание значений константам (когда первый операнд в операторе присваивания – константа);

• присваивание значений предопределенной входной переменной InpVar;

• использование предопределенной переменной Result.

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

Построенный компилятор также выполняет оптимизацию результирующей программы следующими методами:

• свертка объектного кода;

• исключение лишних операций;

• исключение бесполезных арифметических и логических операций;

• модификация операций загрузки значения в регистр с учетом особенностей процессоров типа Intel 80x86.

Это позволяет сократить объем результирующего ассемблерного кода и время выполнения объектного кода, который может быть построен на его основе.

Компилятор выполняет обработку исходной программы за шесть проходов:

1. Лексический анализ исходного текста и построение таблицы лексем.

2. Синтаксический анализ по таблице лексем и построение дерева синтаксического разбора.

3. Построение списка триад по дереву синтаксического разбора.

4. Оптимизация списка триад методом свертки объектного кода.

5. Оптимизация списка триад методом исключения лишних операций.

6. Построение результирующего ассемблерного кода по списку триад.

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

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

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

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

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Системное программное обеспечение. Лабораторный практикум»

Представляем Вашему вниманию похожие книги на «Системное программное обеспечение. Лабораторный практикум» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Системное программное обеспечение. Лабораторный практикум»

Обсуждение, отзывы о книге «Системное программное обеспечение. Лабораторный практикум» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

Хатын 10 марта 2023 в 07:44
Я хочу читать книги
x