Основные методы современной технологии проектирования алгоритмов.
1. Метод структурного проектирования. Любой алгоритм может быть построен из комбинаций трех базовых структур: линейный алгоритм (следование), разветвляющийся алгоритм (развилка) и циклический алгоритм (повтор).
2. Метод нисходящего проектирования. Первоначально определяются главные функции, затем второстепенные.
3. Метод пошаговой детализации.
4. Метод модульности. Модуль – логически связанный фрагмент программы, выполняющий одну функцию и состоящий из обозримого числа шагов.
Эволюция и классификация языков программирования. Основные понятия языков программирования
знать: классификацию языков программирования; основные понятия языков программирования; основные этапы развития языков программирования; области их применения
уметь: записывать арифметические выражения
Выражение на языке программирования задает правило вычисления некоторого значения. Выражение состоит из констант, переменных, указателей функций, знаков операций и скобок. Каждое выражение имеет тип, зависящий от типов входящих в него операндов.
Выражение называют арифметическим, если его значением является число. Арифметическое выражениезаписывается в строку. Нельзя опускать знак умножения.
При вычислении значений выражений важен порядок выполнения операций. Приняты следующие правила. Действия выполняются слева направо с соблюдением следующего старшинства (в порядке убывания приоритетов):
1) действия в скобках;
2) вычисление функций;
3) NOT;
4) *, /, DIV, MOD, AND;
5) +, -, OR;
6) =, <>, <, >, <=, >=.
Если приоритет операций одинаков, то операция, стоящая левее, выполняется раньше. Порядок выполнения операций можно переопределить с помощью скобок.
Язык программирования – искусственный язык, который имеет
– ограниченное число слов, значение которых понятно транслятору
(ключевые слова)
– очень строгие правила записи команд
Синтаксис языка – совокупность правил записи команд
Семантика языка – смысл каждой команды и других конструкций языка
Язык программирования — формальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, задающих внешний вид программы и действия, которые выполнит исполнитель (компьютер) под ее управлением.
Каждый язык программирования поддерживает один или несколько встроенных типов данных (базовых типов). Кроме того, развитые языки программирования предоставляют программисту возможность описывать собственные типы данных, комбинируя или расширяя существующие.
Тип данных – характеристика набора данных, которая определяет:
- диапазон возможных значений данных из набора;
- допустимые операции, которые можно выполнять над этими значениями;
- способ хранения этих значений в памяти.
Различают:
- простые типы данных: целые, действительные числа и др.;
- составные типы данных: массивы, файлы и др.
Переменная – именованная область памяти, хранящая некоторое значение.
Массивы используются во всех современных языках программирования.
Массив – именованный набор однотипных данных, расположенных в памяти непосредственно друг за другом (в отличие от списка), доступ к которым осуществляется по индексу элемента массива (номеру по порядку, упорядоченному по возрастанию в индексных массивах). Индекс массива (целое число), указывает на элемент массива.
ТЕСТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ — процесс исследования программного обеспечения (ПО) с целью получения информации о качестве продукта (в том числе поиск ошибок в программе).
Альфа-тестирование – тестирование готового продукта на специально созданных задачах.
Бета-тестирование – опробование бесплатной тестовой версии программного продукта на реальных задачах.
Если «альфа-» и «бета-тестирование» относятся к стадиям до выпуска продукта (а также, неявно, к объёму тестирующего сообщества и ограничениям на методы тестирования), тестирование «белого ящика» и «чёрного ящика» имеет отношение к способам, которыми тестировщик достигает цели.
При тестировании белого ящика (англ. white-box testing, также говорят — прозрачного ящика), разработчик теста имеет доступ к исходному коду программ и может писать код, который связан с библиотеками тестируемого ПО. Это типично для юнит-тестирования (англ. unit testing), при котором тестируются только отдельные части системы. Оно обеспечивает то, что компоненты конструкции — работоспособны и устойчивы, до определённой степени. При тестировании белого ящика используются метрики покрытия кода.
При тестировании чёрного ящика, тестировщик имеет доступ к ПО только через те же интерфейсы, что и заказчик или пользователь, либо через внешние интерфейсы, позволяющие другому компьютеру либо другому процессу подключиться к системе для тестирования. Например, тестирующий модуль может виртуально нажимать клавиши или кнопки мыши в тестируемой программе с помощью механизма взаимодействия процессов, с уверенностью в том, все ли идёт правильно, что эти события вызывают тот же отклик, что и реальные нажатия клавиш и кнопок мыши. Как правило, тестирование чёрного ящика ведётся с использованием спецификаций или иных документов, описывающих требования к системе. Как правило, в данном виде тестирования критерий покрытия складывается из покрытия структуры входных данных, покрытия требований и покрытия модели (в тестировании на основе моделей).
Регрессионное тестирование. После внесения изменений в очередную версию программы, регрессионные тесты подтверждают, что сделанные изменения не повлияли на работоспособность остальной функциональности приложения. Регрессионное тестирование может выполняться как вручную, так и средствами автоматизации тестирования.
Отла́дка — этап разработки компьютерной программы, на котором обнаруживают, локализуют и устраняют ошибки. Чтобы понять, где возникла ошибка, приходится :
- узнавать текущие значения переменных;
- и выяснять, по какому пути выполнялась программа.
Существуют две взаимодополняющие технологии отладки.
- Использование отладчиков — программ, которые включают в себя пользовательский интерфейс для пошагового выполнения программы: оператор за оператором, функция за функцией, с остановками на некоторых строках исходного кода или при достижении определённого условия.
- Вывод текущего состояния программы с помощью расположенных в критических точках программы операторов вывода — на экран, принтер, громкоговоритель или в файл. Вывод отладочных сведений в файл называется журналированием.
Отладчик – программа, позволяющая исследовать внутреннее устройство программы. Отладчик обеспечивает пошаговое исполнение программы, просмотр текущих значений переменных, вычисление значения любого выражения программы и др. Debugger.
Рефакторинг — процесс изменения внутренней структуры программы, не затрагивающий её внешнего поведения и имеющий целью облегчить понимание её работы
Подпрограмма– набор операторов, выполняющих нужное действие и не зависящих от других частей исходного кода.
Подпрограммы бывают двух видов – процедуры и функции. Они отличаются тем, что процедура просто выполняет группу операторов, а функция к тому же передает в главную программу некоторое вычисленное значение. Передает = возвращает. Функция имеет тип, совпадающий с типом возвращаемого значения.
Внешняя программа вызывает подпрограмму. Данные передаются подпрограмме в виде параметров или аргументов, которые описываются в заголовке подпрограммы.
Подпрограммы могут быть вложенными, т.е. допускается вызов подпрограммы не только из главной программы, но и из другой подпрограммы. Подпрограмма может вызывать сама себя. Такой прием называется рекурсией.
Важная характеристика подпрограмм – возможность их повторного использования. С интегрированными системами программирования поставляются большие библиотеки стандартных подпрограмм.
Модуль – процедура, функция, юнит, программа в целом – логически законченная составная часть программы.
Процедурные языки программирования – те, где возможно использование подпрограмм.
Событийно-ориентированное программирование – главная часть программы представляет собой один бесконечный цикл, который опрашивает Windows, следя за тем, не появилось ли новое сообщение о событии. При обнаружении события вызывается подпрограмма, ответственная за обработку события. Цикл продолжается, пока не будет получено сообщение «завершить работу».
События могут быть:
– пользовательскими (возникают в результате действий пользователя)
– системными (возникают в ОС, например, сообщение от таймера)
– программными (генерируются программой, например, надо обработать ошибку)
Исключение – ситуация в программе или ОС, требующая немедленного реагирования, например, деление на 0.
Виды программирования
- Структурное
- Функциональное программирование
- Логическое программирование
- Процедурное программирование
- Объектно-ориентированное программирование
- Аспектно-ориентированное программирование
- Компонентно-ориентированное программирование
Структурное программирование — методология разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры блоков.
Функциональное программирование объединяет разные подходы к определению процессов вычисления на основе достаточно строгих абстрактных понятий и методов символьной обработки данных. Программирование с использованием математического понятия функции вызывает некоторые трудности, поэтому функциональные языки, в той или иной степени предоставляют и императивные возможности, что ухудшает дизайн программы (например возможность безболезненных дальнейших изменений). Дополнительное отличие от императивных языков программирования заключается в декларативности описаний функций. Тексты программ на функциональных языках программирования описывают «как решить задачу», но не предписывают последовательность действий для решения. Первым, спроектированным функциональным языком стал Лисп.
Логическое программирование — парадигма программирования, основанная на автоматическом доказательстве теорем, а также раздел дискретной математики, изучающий принципы логического вывода информации на основе заданных фактов и правил вывода. Логическое программирование основано на теории и аппарате математической логики с использованием математических принципов резолюций.
Пролог (англ. Prolog) — язык и система логического программирования, основанные на языке предикатов математической логики дизъюнктов Хорна, представляющей собой подмножество логики предикатов первого порядка. Основными понятиями в языке Пролог являются факты, правила логического вывода и запросы, позволяющие описывать базы знаний, процедуры логического вывода и принятия решений.
Процедурное (императивное) программирование является отражением архитектуры традиционных ЭВМ, которая была предложена фон Нейманом в 1940-х годах. Теоретической моделью процедурного программирования служит алгоритмическая система под названием Машина Тьюринга.
Программа на процедурном языке программирования состоит из последовательности операторов (инструкций), задающих процедуру решения задачи. Основным является оператор присваивания, служащий для изменения содержимого областей памяти. Концепция памяти как хранилища значений, содержимое которого может обновляться операторами программы, является фундаментальной в императивном программировании.
Выполнение программы сводится к последовательному выполнению операторов с целью преобразования исходного состояния памяти, то есть значений исходных данных, в заключительное, то есть в результаты. Таким образом, с точки зрения программиста имеются программа и память, причем первая последовательно обновляет содержимое последней.
Процедурный язык программирования предоставляет возможность программисту определять каждый шаг в процессе решения задачи. Особенность таких языков программирования состоит в том, что задачи разбиваются на шаги и решаются шаг за шагом. Используя процедурный язык, программист определяет языковые конструкции для выполнения последовательности алгоритмических шагов.
Процедурные языки программирования
· Аda (язык общего назначения)
· Basic (версии начиная с Quick Basic до появления Visual Basic)
· Си
· КОБОЛ
· Фортран
· Модула-2
· Pascal
· ПЛ/1
· Рапира
· REXX
Машинный язык –язык программирования для представления программ в форме, допускающей их непосредственную реализацию аппаратными средствами конкретной ЭВМ.
Языки низкого уровня – Ассемблер и Макроассемблер.
Язык разметки данных в компьютерной терминологии – набор символов или последовательностей, вставляемых в текст для передачи информации о его выводе или строении. Принадлежит классу компьютерных языков. Текстовый документ, написанный с использованием языка разметки, содержит не только сам текст (как последовательность слов и знаков препинания), но и дополнительную информацию о различных его участках, например, указание на заголовки, выделения, списки и т.д. В более сложных случаях язык разметки позволяет вставлять в документ интерактивные элементы и содержание других документов.
Языки разметки используются везде, где требуется вывод форматированного текста: в типографии (SGML, TeX, PostScript, PDF), пользовательских интерфейсах компьютеров (Microsoft Word, OpenOffice, troff), Всемирной Сети (HTML, XHTML, XML, WML, VML, PGML, SVG).
XML (Hypertext Markup Language – «язык разметки гипертекста») – это стандартный язык разметки документов во Всемирной паутине.
Объектно-ориентированный язык – язык программирования, поддерживающий понятие объектов, их свойств и методов обработки, а также поддерживающий наследование и полиморфизм.
Java – язык объектно-ориентированного программирования, разработан корпорацией Sun Microsistems как межплатформенный, интерпретируемый, объектно-ориентированный язык программирования, используемый для создания приложений, работающих под управлением веб-браузера и характеризующихся высоким уровнем интерактивности.
Java. Объектно-ориентированный язык программирования. Главная особенность этого языка – компиляция не в машинный код, а в байт-код, где каждая команда занимает 1 байт и который может выполняться на любой машине с любой операционной системой, если там есть интерпретатор. Этот интерпретатор называется «виртуальная машина Java». Программы на языке java можно переносить с машины на машину в виде исходного текста или в виде байт-кода. По популярности Java занимает второе место в мире после Basic.
Java script – язык программирования, который разработан на основе языка Java и используется в составе html страниц с целью увеличения функциональности сайта.
Основное отличие языка Java script от любого другого языка программирования в том, что java скрипты размещаются внутри html страницы и не могут существовать как отдельные программы, а функционируют только будучи запущенными в браузерах.
SQL (Structured Query Language) – язык структурированных запросов. Структурированный язык запросов основан на реляционной алгебре. Это язык манипулирования данными, позволяющий описывать условия поиска информации, не задавая для этого последовательность действий, нужных для получения ответа. SQL является стандартным средством доступа к серверу баз данных. Стандарт SQL содержит компоненты для определения, изменения, проверки и защиты данных.
ADA – язык программирования для встраиваемых систем. Это универсальный язык программирования, предназначенный для создания сложных систем, характеризующийся высокой степенью независимости от операционных систем и обеспечивающий поддержку средств параллельной обработки данных в реальном времени.
Дата добавления: 2016-05-31; просмотров: 2762;