Алгоритмизация и программирование. Языки программирования высокого уровня. Технологии программирования
Вид материала | Документы |
СодержаниеСтруктурное программирование Функциональное программирование Логическое программирование Объектно-ориентированное программирование (ООП) |
- Аннотация рабочей программы учебной дисциплины языки программирования Направление подготовки, 135.09kb.
- Методические указания по выполнению лабораторных работ для студентов экономических, 2033.72kb.
- Программа курса «Программирование на языке высокого уровня», 126.66kb.
- Пояснительная записка к курсовой работе по предмету «Языки и технологии программирования», 353.31kb.
- Рабочая программа по курсу "Программирование на языках высокого уровня" Факультет экономический, 113.19kb.
- Существуют различные классификации языков программирования, 174.02kb.
- Программа дисциплины Языки и технологии программирования Семестры, 20.19kb.
- Пояснительная записка Ккурсовой работе по дисциплине "Алгоритмические языки и программирование", 121.92kb.
- Введение Предмет "Программирование", 19.2kb.
- Лекция 3 Инструментальное по. Классификация языков программирования, 90.16kb.
Часть 3.
Алгоритмизация и программирование.
Языки программирования высокого уровня.
Технологии программирования.
Определение:
Алгоритм - точный набор инструкций или команд, описывающих порядок действий исполнителя для решения поставленной задачи за конечное время.
Замечание:
Некоторые действия алгоритма должны быть выполнены последовательно, некоторые могут быть и независимыми и выполняться одновременно (параллельно).
Комментарий.
Слово «алгоритм» образовано от имени персидского учёного аль-Хорезми (al-Khwarazmi).
Ранее часто писали «алгорифм», сейчас такое написание используется редко.
Часто в качестве исполнителя выступает некоторый механизм (компьютер, токарный станок, швейная машина), но понятие алгоритма необязательно относится к компьютерным программам, так, например, чётко описанный рецепт приготовления блюда также является алгоритмом, в таком случае исполнителем является человек.
Свойства алгоритмов, требования к алгоритмам:
- Дискретность - процесс решения задачи является последовательным выполнением простых шагов за конечный отрезок времени.
- Детерминированность - в каждый момент времени следующий шаг однозначно определяется состоянием системы. Т.е. алгоритм выдаёт один и тот же результат для одних и тех же исходных данных.
- Понятность - алгоритм содержит команды, понятные исполнителю (которые входят в его систему команд).
- Конечность – для корректных исходных данных алгоритм должен успешно завершать работу за конечное число шагов.
- Массовость - алгоритм должен быть применим к разным наборам исходных данных.
- Результативность – работа алгоритма должна завершаться определёнными результатами.
Определение:
Алгоритмизация – процесс построения алгоритма.
Определение:
Программирование - процесс создания программного обеспечения с помощью языков программирования.
Комментарий.
Программирование сочетает в себе элементы искусства, фундаментальных наук (это прежде всего информатика и математика), инженерии, спорта и ремесла.
Замечание:
Программирование следует отличать от ремесла кодирования программы
Программирование включает в себя:
- Анализ поставленной задачи.
- Проектирование/разработку комплекса алгоритмов.
- Кодирование – реализация алгоритмов - написание исходного текста программы на языке программирования (исходников).
- Компиляцию - преобразование исходников в исполнимый код с помощью компилятора.
- Тестирование и отладку - выявление и устранение ошибок в программах.
- Испытания и сдачу программ.
- Сопровождение программ.
Определение:
Язык программирования - система, предназначенная для записи компьютерных программ. Язык программирования определяет набор правил, задающих внешний вид программы и действия, которые выполнит исполнитель (компьютер) под ее управлением.
Комментарий.
На сегодняшний день известно более 8500 языков программирования.
Языки программирования делятся на:
- компилируемые
- интерпретируемые
- низкоуровневые
- высокоуровневые
Определение:
Компилятор это специальная программа, которая переводит исходный текст программы с языка программирования высокого уровня в двоичные коды инструкций процессора, которые записываются в отдельный исполнимый файл (например exe-файл). Этот файл может быть запущен как отдельная программа.
Определение:
Интерпретатор выполняет исходный текст программы без предварительной компиляции. При этом программа остаётся на исходном языке и не может быть запущена без интерпретатора.
Преимущества:
Компилируемые программы работают значительно быстрей интерпретируемых.
Интерпретируемые программы обладают большей гибкостью в процессе разработки и допускают запуск на разных компьютерных платформах и операционных системах.
Определение:
Язык программирования низкого уровня – это язык, близкий к программированию в машинных кодах используемого процессора.
Общеизвестный пример языка низкого уровня - язык ассемблера.
Определение:
Высокоуровневый язык программирования - язык программирования, разработанный для быстроты и удобства использования программистом.
Замечание:
Основная черта высокоуровневых языков - это абстракция, то есть введение конструкций, кратко описывающих такие структуры данных и операции над ними, описания которых на низкоуровневом языке программирования очень длинны и сложны для понимания и реализации.
Примеры языков высокого уровня:
- C, C++, Visual Basic, Java, PHP, Delphi, Pascal, Fortran.
Язык программирования строится в соответствии с парадигмой программирования.
Определение:
Парадигма программирования - это совокупность идей и понятий, определяющих стиль написания программ. Парадигма определяет то, в каких терминах программист описывает логику программы.
Основные модели (парадигмы) программирования:
- Императивное программирование
- Структурное программирование
- Функциональное программирование
- Логическое программирование
- Объектно-ориентированное программирование
Императивное (процедурное) программирование - это парадигма программирования, которая описывает процесс вычисления в виде последовательности инструкций, которые должен выполнить компьютер.
Примеры процедурных языков программирования: Fortran, Basic, Pascal, C.
^ Структурное программирование - методология разработки ПО, в основе которой лежит представление программы в виде иерархической структуры блоков.
Каждый блок должен представлять собой одну из трех структур: последовательное выполнение, ветвление и повторение.
^ Функциональное программирование - раздел дискретной математики, в которой процесс вычисления трактуется как вычисление значений функций в математическом понимании последних (в отличие от функций как подпрограмм в процедурном программировании).
Примеры функциональных языков программирования: LISP, Haskell, ML.
^ Логическое программирование – парадигма, основанная на автоматическом доказательстве теорем, а также раздел дискретной математики, изучающий принципы логического вывода информации на основе заданных фактов и правил вывода. Логическое программирование основано на теории и аппарате математической логики с использованием математических принципов резолюций.
Самым известным языком логического программирования является Prolog.
^ Объектно-ориентированное программирование (ООП) - парадигма программирования, в которой основными концепциями являются понятия объектов и классов.
Определение:
Класс - это описание устройства объектов (как бы теоретическая модель).
Определение:
Объект - это экземпляр класса (как бы физическая реализация).
Класс можно сравнить с чертежом, согласно которому создаются объекты. Обычно классы разрабатывают таким образом, чтобы их объекты соответствовали объектам предметной области.
Замечание:
ООП есть по сути императивное программирование, дополненное принципом инкапсуляции данных и методов в объект и наследованием.
Внимание!
Понятия инкапсуляции и наследования – изучить самостоятельно!!!
Определение:
Технология программирования - дисциплина, изучающая технологические процессы программирования и порядок их прохождения.
Основные технологии программирования:
- восходящее программирование
- нисходящее программирование
Определение:
Восходящее программирование (программирование «снизу вверх») - методика разработки программ, при которой крупные блоки собираются из ранее созданных мелких блоков.
Восходящее программирование начинается с разработки ключевых процедур и подпрограмм, которые затем постоянно модифицируются.
Определение:
Нисходящее программирование (программирование «сверху вниз») - методика разработки программ, при которой разработка начинается с определения целей решения проблемы, после чего идет последовательная детализация, заканчивающаяся детальной программой.
При нисходящем программировании низкоуровневые блоки первоначально реализуются в виде «заглушек», которые с течением времени обретают свою функциональность.