Автор работы: Пользователь скрыл имя, 04 Апреля 2010 в 13:59, Не определен
введение 4
1 оптимизация программ 5
1.1 назначение и цели оптимизации 5
1.2 промежуточный язык 5
1.3 блок (линейный участок) 7
1.4 сильно связная область 8
1.5 способы оптимизации 8
1.6 разгрузка участков повторяемости 9
1.7 сдвиг инвариантных операторов 10
1.8 вставка псевдоблока 13
2 практическая часть 15
2.1 анализ существующих аналогов 15
2.2 обоснование выбора темы 17
2.3 краткий обзор среды разработки access 18
2.4 краткий обзор среды разработки delphi 7 29
2.5 руководство по написанию программы 33
2.6 руководство пользователя 38
заключение 42
список литературы 43
Министерство образования и науки Российской Федерации
Челябинский юридический колледж
Отделение права и ИТ
Кафедра
«Информатики и ВТ»
Курсовая работа
по дисциплине
«Технологии разработки программных продуктов»
Вариант – 50
Практическое задание на тему:
База данных «Компьютерный магазин»
Работа защищена с оценкой: ________________________ «___» _____________ 2009 г |
Выполнил:_________________ Студент Сахаров А.Н. «____»________________ 2009г. Проверил:_________________ Преподаватель Соловьёва Л.В. «___» _________________ 2009г. |
Челябинск
2009
АННОТАЦИЯ
Сахаров А.Н. Пояснительная записка к курсовой работе. Вариант – 50 . Практическое задание на тему: БД «Компьютерный магазин». Челябинск: ЧЮК, , 2009, (48 стр.). Библиография литературы наименований;
В работе представлены вопросы:
Первая глава содержит информацию о понятии “Оптимизация”
Во
второй главе рассмотрены программы, аналогичные
разрабатываемой базе данных, проведен
их анализ с указанием достоинств и недостатков.
Так же рассматриваются все этапы разработки
программного продукта с четким указанием,
что было сделано на каждом этапе. А также
и обоснование выбора темы и формирование
технического задания. Вторая глава также
содержит руководство пользователя.
СОДЕРЖАНИЕ
Оглавление
ВВЕДЕНИЕ 4
1 ОПТИМИЗАЦИЯ ПРОГРАММ 5
1.1 НАЗНАЧЕНИЕ И ЦЕЛИ ОПТИМИЗАЦИИ 5
1.2 ПРОМЕЖУТОЧНЫЙ ЯЗЫК 5
1.3 БЛОК (ЛИНЕЙНЫЙ УЧАСТОК) 7
1.4 СИЛЬНО СВЯЗНАЯ ОБЛАСТЬ 8
1.5 СПОСОБЫ ОПТИМИЗАЦИИ 8
1.6 РАЗГРУЗКА УЧАСТКОВ ПОВТОРЯЕМОСТИ 9
1.7 СДВИГ ИНВАРИАНТНЫХ ОПЕРАТОРОВ 10
1.8 ВСТАВКА ПСЕВДОБЛОКА 13
2 ПРАКТИЧЕСКАЯ ЧАСТЬ 15
2.1 АНАЛИЗ СУЩЕСТВУЮЩИХ АНАЛОГОВ 15
2.2 ОБОСНОВАНИЕ ВЫБОРА ТЕМЫ 17
2.3 КРАТКИЙ ОБЗОР СРЕДЫ РАЗРАБОТКИ ACCESS 18
2.4 КРАТКИЙ ОБЗОР СРЕДЫ РАЗРАБОТКИ DELPHI 7 29
2.5 РУКОВОДСТВО ПО НАПИСАНИЮ ПРОГРАММЫ 33
2.6 РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ 38
ЗАКЛЮЧЕНИЕ 42
СПИСОК
ЛИТЕРАТУРЫ 43
Несмотря
на все более широкое
Всегда желательно иметь компилятор, который создает эффективно - работающие объектные программы. Как правило, программа в кодах машины, полученная в результате трансляции, будет занимать больший объем памяти и работать медленнее, чем такая же программа, написанная опытным программистом. Термин "оптимизация" применяется к попыткам сделать выходные программы более "эффективными", т.е. быстрее работающими или более компактными. Таким образом, оптимизацией называется улучшение выходной программы, а часть транслятора, выполняющая эту функцию - оптимизирующей частью транслятора.
Если вы пришли к выводу, что ваша программа работает недостаточно быстро, первое, что надо сделать, - это убедиться, что вы решаете задачу, пользуясь наилучшими алгоритмами и представлениями данных. Замена примитивного или неадекватного алгоритма более подходящим может ускорить выполнение вашей программы на порядок и более.
Оптимизирующая часть выполняет следующие действия:
1.
Устраняет недостатки
2. Устраняет излишние вычисления, неизбежно возникающие в процессе трансляции даже при самом тщательном написании программы на языке высокого уровня. Например, устранение повторного вычисления индексных выражений для элементов массива сокращает время выполнения программы и ее длину.
Для повышения эффективности программы можно произвести над ней последовательность преобразований в различные моменты процесса компиляции. Например, можно оперировать с входной программой, со структурами, порождаемыми на стадии синтаксического анализа, с кодом, порождаемым в качестве выхода фазы генерации кода. Однако оптимизировать программу, уже протранслированную в коды машины, трудно по следующим причинам:
во-первых, единицы действия программы в кодах команд слишком мелки, что уже само по себе затрудняет анализ,
во-вторых, при трансляции входной программы в коды машины возможна потеря имеющейся в ней информации. Например, засылка промежуточных результатов в разные рабочие ячейки памяти делает практически невозможной идентификацию одинаковых частей программы;
в-третьих, из-за нестандартности форматов различных элементов языка и рекурсивных конструкций, широко применяемых в текстах программ.
Поэтому, если транслятор производит оптимизацию программы, необходимо делать специальный проход, переводящий программу с исходного языка, на промежуточный.
Строго сформулировать требования, предъявляемые к промежуточному языку, трудно. Однако уже из самого обоснования необходимости промежуточного языка видно, что:
Требования. "4" и "5" показывают, что разработать единый универсальный промежуточный язык для трансляции с любого языка программирования в коды любой вычислительной машины трудно. В качестве промежуточного языка можно использовать польскую запись, триады, синтаксические деревья.
При рассмотрении вопросов оптимизации будем считать, что программа протранслирована с входного на некоторый промежуточный язык, оператор которого имеет следующий общий вид: (mi) код операции аргументы оператора, где mi - указатель оператора, а также идентификатор результата команды при отсутствии его присваивания некоторой переменной.
Необходимо различать переменные, введенные программистом (программные переменные), и переменные, генерируемые в процессе трансляции на промежуточный язык (mi - идентификаторы). Между определением программной переменной и ее использованием в качестве операнда существует следующая зависимость:
- если программная переменная, используемая в области, не определена в ней, то предполагается, что она определена во всех путях, ведущих к области;
- если программная переменная определена и используется в
области, то внутри области существует путь между определением
переменной и каждым ее использованием;
- если программная переменная определена в области, то, вообще говоря, это не значит, что она определена на каждом выходном пути.
Вопросы оптимизации обычно связаны с топологией программы, т.е. со способом ее построения. Для того, чтобы локализовать процессы оптимизации и не связывать их с конкретным входным языком, они проводятся внутри отдельных участков программы, называемых блоками и сильно связанными областями.
Блок (линейный участок) - выполняемая по порядку последовательность операторов, имеющая единственную точку входа - первый оператор с меткой, на который может быть передано управление, и единственную точку выхода - последний оператор.
Блок моделирует часть программы на промежуточном языке, которая содержит операторы присваивания.
Формально модель линейного участка может быть представлена следующим образом:
Блок B - это тройка вида (P,I,U),где
Оператор S в программе называется входом в линейный участок, если он либо первый оператор в программе, либо помечен идентификатором, появляющимся в операторе перехода, либо непосредственно следует за условным оператором.
Линейный участок, относящийся к входу в участок S, состоит из S и всех операторов, следующих за ним вплоть до оператора останова, включая его, или вплоть до входа в следующий блок.
Для каждого блока B=(P,I,U) можно найти ориентированный ациклический граф , представляющий этот блок. При этом каждый лист графа (концевая вершина) соответствует одной входной переменной в I, а каждая его внутренняя вершина - оператору из P. Граф отражает порядок выполнения операторов программы и дает более наглядное представление, чем линейная последовательность операторов.
Если вершины i и j графа соответствуют участкам i и j программы, то дуга идет из i в j, если:
Информация о работе Практическое задание на тему: База данных «Компьютерный магазин»