Лекция_1_ПАРАДИГМЫ_ ПРОГРАММИРОВАНИЯ

Содержание

Слайд 2

https://youtu.be/D2RmmRA5myg
Что такое программирование?
https://youtu.be/Ih4cpq5qDl0
Кто такой программист | Самая лучшая профессия

https://youtu.be/D2RmmRA5myg Что такое программирование? https://youtu.be/Ih4cpq5qDl0 Кто такой программист | Самая лучшая профессия

Слайд 3

Паради́гма программи́рования - это совокупность идей и понятий, определяющих стиль написания компьютерных программ
(подход

Паради́гма программи́рования - это совокупность идей и понятий, определяющих стиль написания компьютерных
к программированию).
Это способ концептуализации, определяющий организацию вычислений и структурирование работы, выполняемой компьютером.

Слайд 4

Вопрос 1. СИСТЕМЫ ПРОГРАММИРОВАНИЯ

В парадигмах программирования существует 2 высказывания о системах программирования:
1.

Вопрос 1. СИСТЕМЫ ПРОГРАММИРОВАНИЯ В парадигмах программирования существует 2 высказывания о системах
Система программирования – это комплекс инструментальных программных средств, предназначенный для работы с программами на одном из языков программирования.
2. Система программирования - это комплекс программ и файлов, позволяющий выполнить полный набор операций, связанных с изготовлением программы и работой с ней.

Слайд 5

Система программирования включает в свой состав:

транслятор (компилятор или интерпретатор);
интегрированная среда

Система программирования включает в свой состав: транслятор (компилятор или интерпретатор); интегрированная среда
разработки;
средства создания и редактирования текстов программ;
библиотеки стандартных подпрограмм и функций;
отладочные программы;
«дружественная" к пользователю диалоговая среда;
многооконный режим работы;
мощные графические библиотеки;
утилиты для работы с библиотеками;
встроенный ассемблер;
встроенная справочная служба;
другие специфические особенности.

Слайд 6

Транслятор (англ. «translator» переводчик) - это программа-переводчик.
Она преобразует программу, написанную на

Транслятор (англ. «translator» переводчик) - это программа-переводчик. Она преобразует программу, написанную на
одном из языков высокого уровня, в программу, состоящую из машинных команд.
Трансляторы реализуются в виде компиляторов или интерпретаторов.

Слайд 7

Компилятор (англ. «compiler» - составитель, собиратель) читает всю программу целиком, делает ее

Компилятор (англ. «compiler» - составитель, собиратель) читает всю программу целиком, делает ее
перевод и создает законченный вариант программы на машинном языке, который затем и выполняется.
Откомпилированные программы работают быстрее.

Слайд 10

Интерпретатор (англ. «interpreter» - истолкователь, устный переводчик) переводит и выполняет программу строка

Интерпретатор (англ. «interpreter» - истолкователь, устный переводчик) переводит и выполняет программу строка
за строкой.
После того, как программа откомпилирована, исходная программа и компилятор больше не нужны. В то же время программа, обрабатываемая интерпретатором, должна заново переводиться на машинный язык при каждом очередном запуске программы.
Интерпретируемые программы проще исправлять и изменять.

Слайд 12

Интегрированная среда разработки (IDE)
– это система программных средств, используемая
программистами для

Интегрированная среда разработки (IDE) – это система программных средств, используемая программистами для
разработки программного
обеспечения
Среда IDE включает в себя:
текстовый редактор;
компилятор и/или интерпретатор;
средства автоматизации сборки;
отладчик.

Слайд 14

Отладочные программы (отладчики) – специальные
средства, позволяющие исследовать внутреннее
поведение программы
Возможности:
пошаговое исполнение

Отладочные программы (отладчики) – специальные средства, позволяющие исследовать внутреннее поведение программы Возможности:
программы с остановкой после
каждой команды (оператора);
просмотр текущего значения любой переменной или
нахождение значения любого выражения;
установка в программе «контрольных точек», т.е.
пошаговое выполнение программы.

Слайд 15

Программа – это алгоритм, записанный на понятном компьютеру языке программирования

Программа – это алгоритм, записанный на понятном компьютеру языке программирования

Слайд 17

Вопрос 2. Языки программирования: их уровни и поколения

Языки программирования - это формальные

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

Слайд 23

Алгоритмическим языком

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

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

Слайд 24

Языки программирования делятся на:
Машинно-зависимые или машинноориентированные языки (низкого уровня): Автокоды, Ассемблеры –

Языки программирования делятся на: Машинно-зависимые или машинноориентированные языки (низкого уровня): Автокоды, Ассемблеры
позволяют управлять вычислительным процессом напрямую, при помощи машинных команд
Машинно-независимые (высокого уровня)

Слайд 25

Машинно-зависимые языки (низкого уровня)

Основные конструктивные средства таких языков позволяют учитывать особенности

Машинно-зависимые языки (низкого уровня) Основные конструктивные средства таких языков позволяют учитывать особенности
архитектуры и принципы работы определенной ЭВМ, т.е. ориентированы на конкретный тип процессора
Достоинства: программы компактны и работают эффективно
Применяют: для написания небольших системных приложений, драйверов устройств, компьютерных вирусов

Слайд 26

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

Программы на машинном языке имеют длинные последовательности единиц и нулей, являлись машинно-зависимыми
(т.е. для каждой ЭВМ необходимо было составлять свою программу)

Машинный язык (40-50 годы XXв.)

Слайд 27

Ассемблер обеспечивает возможность применения символических имен в исходной программе и избавляет программиста

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

Ассемблер (начало 50-х годов XXв.)

Слайд 28

Машинно-независимые языки (высокого уровня)

Значительно ближе и понятнее человеку, нежели компьютеру.

Машинно-независимые языки (высокого уровня) Значительно ближе и понятнее человеку, нежели компьютеру. Здесь
Здесь особенности компьютерных архитектур не учитываются, поэтому создаваемые программы легко переносятся на другие платформы, для которых создан транслятор этого языка

Слайд 29

Классификация языков программирования высокого уровня

Классификация языков программирования высокого уровня

Слайд 30

Основная идея - использование памяти для хранения данных. Основная команда - присвоение,

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

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

Слайд 31

Языки процедурного программирования Операционные языки (привязанные к конкретной архитектуре ЭВМ): Фортран (начало 50-х г.)

Языки процедурного программирования Операционные языки (привязанные к конкретной архитектуре ЭВМ): Фортран (начало
- первый компилируемый язык для программирования научно-технических задач; Кобол (конец 60-х г.) - для решения задач обработки больших объемов данных, хранящихся на различных носителях данных; Алгол (1960 г.) – многоцелевой расширенный язык, в котором впервые введены понятия «блочная структура программы» и «динамическое распределение памяти»; BASIC (середина 60-х г.) - характеризуется простотой освоения и наличием универсальных средств для решения научных, технических, экономических и игровых задач.

Слайд 32

Структурные языки (не привязанные к конкретной архитектуре ЭВМ): PL-1 (1963-1966гг.) - хорошо приспособлен

Структурные языки (не привязанные к конкретной архитектуре ЭВМ): PL-1 (1963-1966гг.) - хорошо
для исследования и планирования вычислительных процессов, моделирования, решения логических задач, разработки систем математического обеспечения. PASCAL (1968-1971гг.) - популярный для ПК, в основу которого положен подход от общей задачи к частным (более простым и меньшим по объему). АДА (1979 г) - назван в честь первой программистки Ады Лавлейс. Его отличает модульность конструкций. СИ (начало 70-х г.) - первоначальный его вариант планировался как язык для реализации операционной системы Unix вместо языка Ассемблера. Особенность языка - это то, что различия между выражениями и операторами сглаживаются, что приближает его к функциональным языкам программирования.
Модула (1980 г.) - для профессиональных системных программистов.

Слайд 33

Объектно-ориентированное программирование (ООП) - это метод программирования, при использовании которого главными элементами

Объектно-ориентированное программирование (ООП) - это метод программирования, при использовании которого главными элементами
программ являются объекты. Объединение данных и свойственных им процедур обработки в одном объекте, называется инкапсуляцией и является одним из важнейших принципов ООП.

Слайд 34

Объектно-ориентированные языки

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

Объектно-ориентированные языки позволяют разрабатывать программные приложения для большого круга задач, имеющих общность
в реализуемых компонентах
Объектные языки: С++ , Java.
Визуальные языки (середина 90-х г.) - интерфейсная часть программного продукта создается в диалоговом режиме, практически без написания программных операторов: Visual Basic, Delphi, C++ Builder, Visual C++, Object PAL, dBase.
Язык VBA (Visual Basic for Application) – язык приложений Microsoft Office (Excel, Word, Power Point и др), который соблюдает основной синтаксис языка и правила программирования языков Basic – диалектов, что позволяет создавать макросы для автоматизации выполнения операций и графический интерфейс пользователя, интеграцию между различными программными продуктами.

Слайд 35

Языки программирования для компьютерных сетей являются интерпретируемыми. Интерпретаторы для них распространяются бесплатно,

Языки программирования для компьютерных сетей являются интерпретируемыми. Интерпретаторы для них распространяются бесплатно,
а сами программы – в исходных текстах. Такие языки называются скрипт – языками. - Perl (1987 г.) язык для обработки больших текстов и файлов и расшифровывается, как язык для практического извлечения данных и составления отчетов. С помощью него можно создать скрипт, который открывает один или несколько файлов, обрабатывает информацию и записывает результаты. - PHP (1995-1997гг.) обладает средствами доступа к БД и используется создателями динамических сайтов во всем мире. - Tcl/Tk (конец 80-х г.) состоит из мощных команд, предназначенных для работы с абстрактными нетипизированными объектами и позволяет создавать программы с графическим интерфейсом. - VRML (1994 г.) создан для организации виртуальных трехмерных интерфейсов в Интернете. - XML - с 1996 г. идет работа над созданием универсального языка структуры документов. Может стать заменой языка HTML.

Слайд 36

Функциональное программирование - это способ составления программ, в которых единственным действием является

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

Декларативные языки программирования – это функциональные и логические языки программирования

Слайд 37

Лисп (1959 г) - позволяет обрабатывать большие объемы текстовой информации. Язык логического

Лисп (1959 г) - позволяет обрабатывать большие объемы текстовой информации. Язык логического
программирования: Пролог (1973 г.) - язык искусственного интеллекта. Программа на языке Пролог строится из последовательности фактов и правил, затем формулируется утверждение, которое Пролог пытается доказать с помощью правил. Язык сам ищет решение с помощью методов поиска и сопоставления, которые в нем заложены.

Языки декларативного программирования

Язык функционального программирования:

Слайд 38

«Язык формирует наш способ мышления и определяет, о чем мы можем мыслить»

«Язык формирует наш способ мышления и определяет, о чем мы можем мыслить» Б.Л.Ворф Введение в программирование
Б.Л.Ворф

Введение в программирование

Слайд 39

Сложно ли научиться программировать?

И да, и нет!

ЗАДАНИЕ
Предположим, вы хотите поручить роботу-исполнителю приготовить

Сложно ли научиться программировать? И да, и нет! ЗАДАНИЕ Предположим, вы хотите
яичницу из трех яиц. Составьте для
него план решения этой задачи.
Когда сделаете, нажмите кнопку «Готово»

Готово

Слайд 40

Что у вас получилось?

Обычно предлагают такой план:
Зажечь газ
Поставить на плиту сковородку
Положить кусочек

Что у вас получилось? Обычно предлагают такой план: Зажечь газ Поставить на
масла
Разбить яйца
Посолить по вкусу
Через 3-4 минуты выключить газ. Яичница готова.

Вы тоже так думаете?

Слайд 41

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

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

Может быть лучше попробовать себя в другой области?

ПОЧЕМУ?

Слайд 42

Робот-исполнитель может выполнять только конкретные и однозначно понимаемые команды. Даже такая простая

Робот-исполнитель может выполнять только конкретные и однозначно понимаемые команды. Даже такая простая
команда как «Взять кусочек масла» может поставить его в тупик, он «зависнет».
Чем зажечь газ?
Сколько взять масла?
Какого: сливочного, топленого?
Сколько разбить яиц?
А что значит «посолить по вкусу»?
Так сколько же: 3 или 4 минуты жарить яичницу?
Допустим, каждую команду мы сделали предельно конкретной.
Но и этого недостаточно!
А если спичек, масла, соли и т.д. не окажется?
А яйца разбивать на сковородку вместе со скорлупой?
И так далее, и так далее.
Допустим, мы и это предусмотрели.
У-ф-ф! Ну теперь, кажется, все. Посмотрим, что у нас получилось.

Слайд 43

Фу-у-у! Яйцо оказалось тухлым!

Хороший программист не тот, кто хорошо знает язык, а

Фу-у-у! Яйцо оказалось тухлым! Хороший программист не тот, кто хорошо знает язык,
тот, кто умеет прогнозировать!
Имя файла: Лекция_1_ПАРАДИГМЫ_-ПРОГРАММИРОВАНИЯ.pptx
Количество просмотров: 48
Количество скачиваний: 0