- •Понятие формального языка. Описание синтаксиса языка.
- •Понятия тестирования и отладки. Принципы тестирования.
- •Полнота тестирования. Критерии черного ящика.
- •Критерии белого ящика.
- •Мгт. Ошибкоопасные ситуации при работе с файлами.
- •Ошибкоопасные ситуации при обращении к данным.
- •Ошибкоопасные ситуации при вычислениях.
- •Ошибкоопасные ситуации при передаче управления и вызовах подпрограмм.
- •Безмашинное тестирование.
- •Оценка количества ошибок в программе.
- •Мера доверия к миллсовой модели оценки количества ошибок в программе. Оценка количества необходимых тестов.
- •Отладка. Отладочные операторы.
- •Методы поиска ошибки. Принципы отладки. Анализ обнаруженной ошибки.
- •Отладочные средства авс-Паскаля.
- •Нисходящее программирование. Нисходящее тестирование.
- •Стиль программирования
- •Понятие алгоритма. Свойства алгоритма.
- •Операторы Паскаля
- •Замкнутые подпрограммы.
- •Открытые подпрограммы.
- •Передача параметров.
- •Рекурсия.
- •Рекуррентные вычисления. Вычисления рекурсивные и итеративные. Реализация одного и того же алгоритма рекурсивно и итеративно.
- •Блочная структура.
- •Понятие типа данных. Классификация языков по типизации.
- •Классификация типов данных. Числовые типы.
- •Перечисления. Диапазоны.
- •Массивы.
- •Моделирование массивом последовательностей: стек.
- •Моделирование массивом последовательностей: очереди
- •Моделирование массивом последовательностей: деки
- •Записи. Присоединяющий оператор.
- •Файлы. Виды файлов. Методы доступа. Триада для работы с файлом.
- •Синхронизация. Буферизация. Блокирование.
- •Двоичные файлы в авс-Паскале.
- •Строки Тип string в авс Паскале.
- •Множества.
- •Процедурные типы.
- •1 ) Описание процедурной константы в Паскале:
- •2 ) Не в Паскале:
- •Типовая безопасность. Идентичность типов.
- •Абстракция данных. Модули в Турбо-Паскале и в авс-Паскале.
- •Подходы к созданию универсального языка программирования
- •Запись с вариантами
- •Классы памяти
- •Понятие конечного автомата и мп-автомата
- •Понятие Машины Тьюринга, нормальных алгоритмов Маркова
Понятие формального языка. Описание синтаксиса языка.
Формальный язык – множество цепочек, построенных из символов некоторого алфавита
Характеристики формального языка:
1)Лексика – алфавит языка (лексемы), конечен
2)Синтаксис - правила, по которым строятся цепочки языка
3)Семантика – смысл языковых конструкций
4)Прагматика – назначение языковых конструкций языка
Формальная грамматика - терминальные символы, нетерминальные символы, множество правил вывода, стартовый символ
Терминальные символы – те символы, из которых строится цепочка
Нетерминальные символы – обозначают промежуточные понятия, которые используются при построении и анализе цепочек, в сами цепочки не входят
Стартовый символ грамматики – нетерминальный символ, из которого с помощью правил вывода выводятся все правильные цепочки данного языка
Правила вывода – описывают, как можно комбинировать символы
Идентификатор – последовательность букв и цифр, начинающихся с буквы
Рекурсия – определение понятия само через себя (прямая/косвенная)
Метаязык – язык, который используется для описания определенного языка; язык, средствами которого исследуются и описываются свойства другого языка, называемого предметным, или объектным (например, изучение иностранного языка)
Виртовы диаграммы - графическое правило определения конструкции языка с помощью специальных обозначений (элементов)
БНФ (Бэкусова Нормальная форма) – формальная система описания синтаксиса, используется для описания синтаксиса языков программирования, данных, протоколов.
БНФ-конструкция определяет конечное число символов (нетерминалов). Кроме того, она определяет правила замены символа на какую-то последовательность букв (терминалов) и символов.
Т записываются непосредственно, N - <в скобках>
Альтернативы в БНФ – «|»
Итерации (будут повторяться) в БНФ – «{}»
Понятия тестирования и отладки. Принципы тестирования.
Программа содержит ошибку, если она ведет себя неразумно с точки зрения пользователя
Разумность программы - синтаксически правильна (при трансляции нет ошибок), правильно выполняет задачу, не делает ничего лишнего, результат получается за разумное время при разумных затратах других ресурсов, должна реагировать на неправильно введенные данные
Тестирование – выполнение программы с целью обнаружения фактического наличия ошибок
Отладка – обнаружение места ошибки и устранение ошибки
Цель тестирования – обнаружить ошибку в программе
Принципы тестирования -
- ошибки в программе есть,
- тест – совокупность исходных данных и ожидаемых результатов,
- тестовые данные должны быть легки для проверки, тесты готовятся заранее(до выхода на машину),
- первые тесты разрабатываются после получения задания на разработку программы до написания программного кода,
- перед тестированием сформулировать цели,
- фиксировать выполненные тесты и реальные результаты,
- тесты одинаковы как для правильных, так и для неправильных входных данных
- программа должна делать то, что должна делать и не делать того, что не должна
- результаты теста изучать досконально и объяснять полностью
- недопустимо ради упрощения тестирования изменять программу
- после исправления программы необходимо повторное тестирование
- ошибки кучкуются
Тест – набор входных и выходных данных для проверки модуля программы
Повторное тестирование - после внесения изменений в программу необходимо заново прогнать весь пакет ранее выполненных тестов
Причины кучкования ошибок - большая часть ошибок оказывается в тех частях, которые более сложны, хуже специфицированы, хуже спроектированы, написаны новичками