Слайд 1Методы и технологии программирования
Слайд 2
Структурное программирование
Модульное программирование
Объектно-ориентированное программирование
Визуальное программирование
Облачные технологии
Слайд 3Метод и технология программирования
Метод программирования – способ, средство, определяющие
стиль написания, откладки и сопровождения программ.
Технология программирования – технологии
разработки программ для ЭВМ, которые будут использоваться людьми для решения задач на ЭВМ.
Слайд 4Принципы структурного программирования
Программирование осуществляется «сверху-вниз»;
Программа состоит из подпрограмм с одним
входом и одним выходом;
Подпрограмма должно допускать только три основные структуры
– последовательное выполнение, ветвление и повторение.
Слайд 5
Модульное программирование – это метод разработки программ, при котором программа
разбивается на независимые модули
Слайд 6
Модуль – фрагмент программы, хранящийся в отдельной форме.
Объектно-ориентированное программирование (ООП)
– это метод программирования, при использовании которого главными элементами программ
являются объекты.
Слайд 7В ЯП понятие «объект» реализован как совокупность свойств(структур данных, характерных
для данного объекта), методов их обработки (подпрограмм их свойств) и
событий, на который данный объект может реагировать.
Класс – множество объектов, связанных общностью структуры и поведения(класс содержит описание структуры и поведение всех объектов, связанных отношением общности).
Слайд 8Принципы ООП:
Наследование предусматривает создание новых классов на базе существующих и
позволяет классу-потомку иметь все свойства класса-родителя
Полиморфизм означает, что рожденные объект
обладают информацией о том, какие методы они должны использовать в зависимости от того, в каком месте цепочки они находятся
Слайд 9
В функциональном программировании (ЯП Lips) основной единицей является функция
В логическом
программировании задача решается путем ввода логических следований их множества факторов
и правил (ЯП Prolog, Mercury)
Слайд 10Предпосылки развития программирования
20-х года XIX века - Ч.Бэббидж –
высказал мысль о предварительной записи порядка действий машины для последующей
автоматической реализации вычислений – программе
Перфокарты, Жозеф Мари-Жаккар
Слайд 11Предпосылки развития программирования
Ада Лавлейс - первый в мире программист. теоретически
разработала некоторые приемы управления последовательностью вычислении, описала одну из важнейших
конструкций современного языка программирования - цикл.
Слайд 12Предпосылки развития программирования
Джон Моучли, сотрудник Пенсильванского университета - предложил системы
кодирования машинных команд с помощью специальных символов.
Грейс Мюррей Хоппер, -
«третий в мире программист первого в мире большого цифрового компьютера». - подпрограммы, отладка
Слайд 15Исторический обзор языков программирования
1951 г. Хоппер - первый в мире
компилятор.
Компилятор Хоппер осуществлял функцию объединения команд и в ходе трансляции
производил организацию подпрограмм, выделение памяти компьютера, преобразование команд высокого уровня (в то время псевдокодов) в машинные команды.
Слайд 16
В 1954 г. группа под руководством Г.Хоппер разработала систему, включающую
язык программирования и компилятор, которая в дальнейшем получила название MATH-MATIC.
Слайд 17
«Существует много различных людей, которым нужно решать разные задачи. Некоторые
из них связаны с обработкой символов, другие - с обработкой
слов, и им нужны языки другого типа, а не наши попытки превратить их всех в математиков».
В 1958 г. появился FLOW-MATIC - первый язык для задач обработки коммерческих данных.
Слайд 18FORTRAN
В середине 50-х годов под руководством Джона Бэкуса для фирмы
IBM был разработан алгоритмический язык программирования FORTRAN. Основным критерием при
разработке компиляторов Фортрана являлась эффективность исполняемого кода.
FORTRAN (FORmula TRANslator) - предоставлял возможность записи алгоритма вычислений с использованием условных операторов и операторов ввода/вывода
Слайд 19FORTRAN
для FORTRAN было создано огромное количество библиотек (статистические комплексы, пакеты
управления спутниками и т.д.)
HPF(High Performance Fortran) для параллельных суперкомпьютеров с
множеством процессоров
Слайд 20FORTRAN
К языку FORTRAN предъявлялись требования cоздания высокоэффективного кода. Поэтому многие
конструкции языка первоначально разрабатывались с учетом архитектуры IBM 407. С
целью некоторой возможной на тот момент унификации языка язык FORTRAN IV, разработанный в 1966 году, стал первым стандартом, именуемым FORTRAN 66.
Слайд 21ALGOL
ALGOL (ALGOrithmic Language) - разработан под руководством Питера Наура в
конце 50-х годов
Основная цель - независимость от конкретной архитектуры вычислительной
системы, так же удобство описания алгоритмов и применение системы обозначений, близкой к той, что принята в математике.
Слайд 22ALGOL
Algol был призван заменить Фортран, но из-за более сложной структуры
не получил широкого распространения. В 1968 году была создана версия
Алгол 68, по своим возможностям долго опережавшая многие языки программирования.
Слайд 23PL/1
ПЛ/1 -1965 год. (Programming Language 1, т. е язык программирования
1).
разработан при содействии фирмы IBM.
цель - создать язык,
сочетающий в себе лучшие свойства Алгола, Кобола и Фортрана. ПЛ/1 действительно подходит для решения широкого круга задач и является более гибким по сравнению с Алголом, Коболом и Фортраном.
Слайд 24Cobol
Cobol (Кобол)- язык для программирования экономических задач.
хорошо развиты средства
обработки текстов, организация вывода данных в форме требуемого документа.
реализованы
очень мощные средства работы с большими объемами данных, хранящимися на различных внешних носителях.
Слайд 25Языки обучения программированию
В 1965 году Т. Куртц и Д. Кемени
- язык для обучения программированию, который являлся упрощенной версией Фортрана
и получил название Бейсик (Beginner's All-purpose Simbolic Instruction Code, т.е. многоцелевой код символических команд для начинающих).
Слайд 26Языки обучения программированию
В 1971 году профессор Н. Вирт из Технического
университета в Цюрихе разработал новый язык, известный под названием "Паскаль"
(в честь хорошо известного математика 17-го века Блеза Паскаля).
Язык Паскаль основан на Алголе, но содержит ряд усовершенствований. Первоначально он создавался как учебный язык, в нем аккуратно соблюдена структурная линия программирования.
Слайд 27Языки обучения программированию
Фирма Borland Internetional Inc (США) разработала систему Турбо
- Паскаль для ПК. Турбо - Паскаль - это не
только язык и транслятор с него, но еще и операционная оболочка, позволяющая пользователю удобно работать. Турбо - Паскаль вышел за рамки учебного предназначения и стал языком профессионального программирования с универсальными возможностями.
Слайд 28Лисп
В 1965 году в Стэнфорде под руководством Дж. Маккарти появился
язык программирования Лисп (List Processing, т.е. обработка списков). Он служит
для обработки строк и рекурсивных данных. Лисп располагает также средствами для выполнения арифметических и логических операций. Он находит широкое применение в исследованиях по созданию искусственного интеллекта.
Слайд 29АДА
В январе 1975 г. Пентагон учредит комитет, которому было предписано
разработать один универсальный язык. На конкурсной основе комитет проработал сотни
проектов и принял два проекта для окончательного рассмотрения. В мае 1979 г. был объявлен победитeль - группа ученых во главе с Жаном Ихбиа. Победивший язык окрестили АДА, в честь Огасты Ады Лавлейс..
Слайд 30АДА
Язык АДА - прямой наследник языка Паскаль. - этот язык
предназначен для создания и длительного (многолетнего) сопровождения больших программных систем,
допускает возможность параллельной обработки, правления процессами в реальном времени и многое другое.
Слайд 31Язык С
С - разработан в середине 70-х годов Денисом Ритчи
и Кеном Томпсоном.
популярный язык системного программирования и в свое
время использовался для написания ядра операционной системы UNIX.
Стандарт языка С начал разрабатываться рабочей группой института стандартов ANSI в 1982 году. Международный стандарт языка С принят в 1990 году. Язык С лег в основу разработки языков программирования C++ и Java.
Слайд 32
С появлением персональных компьютеров языки стали составными частями интегрированных сред
разработки. Появились языки, применяемые в различных офисных программах, например VBA
(Visual Basic for Application).
Слайд 33Языки программирования в 90 годы
с распространением сети Интернет расширяется возможность
распределенной обработки данных
Java, Perl и PHP - языки, ориентированные на
создание серверных приложений
HTML и XML – языки описания документов
Слайд 34
Традиционные языки программирования С++ и Pascal - претерпевают изменения: под
языком программирования начинает пониматься не только функциональность самого языка, а
также библиотеки классов, предоставляемые средой программирования.
Слайд 35Классификации языков программирования высокого уровня
Слайд 36Классификации языков программирования высокого уровня
Слайд 37Классификация по уровню абстрагирования при постановке задачи.
Слайд 38Классификация по функциональному назначению.
Слайд 39Области применения языков программирования
научные вычисления (языки C++, FORTRAN, Java);
системное
программирование (языки C++, Java);
обработка информации (языки C++, COBOL, Java);
искусственный интеллект (LISP, Prolog);
издательская деятельность (Postscript, TeX);
удаленная обработка информации (Perl, PHP, Java, C++);
описание документов (HTML, XML).
Слайд 40Факторы, влияющие на востребованность ЯПВУ
наличие среды программирования, поддерживающей разработку приложений
на конкретном языке программирования;
удобство сопровождения и тестирования программ;
стоимость
разработки с применением конкретного языка программирования;
четкость и ортогональность конструкций языка;
применение объектно-ориентированного подхода.
Слайд 41
Синтаксис языка описывает систему правил написания различных языковых конструкций, а
семантика языка программирования определяет смысл этих конструкций. Синтаксис языка программирования
может быть описан с помощью БНФ-нотаций.
Семантика языка взаимосвязана с используемой вычислительной моделью.
Слайд 42Парадигмы программирования
Парадигма -- набор теорий, стандартов и методов, которые
совместно представляют собой способ организации научного знания, -- иными словами,
способ видения мира. парадигма в программировании -- способ концептуализации, который определяет, как следует проводить вычисления, и как работа, выполняемая компьютером, должна быть структурирована и организована.
Слайд 43
парадигмы директивного, объектно-ориентированного и функционально-логического программирования.
Для поддержки программирования в
соответствии с той или иной парадигмой разработаны специальные алгоритмические языки.
Слайд 44Директивное программирование (directive programming)
C и Pascal
разработчик программы использует процессорно-ориентированная
модель, то есть пытается создать код, должным образом воздействующий на
данные. Активным началом при этом подходе считается программа (код), которая должна выполнить все необходимые для достижения нужного результата действия над пассивными данными.
Слайд 45объектно-ориентированный (object oriented) подход
C++ и Java.
первичными считаются объекты (данные),
которые могут активно взаимодействовать друг с другом с помощью механизма
передачи сообщений (называемого также и механизмом вызова методов). Функция программиста - он должен придумать и реализовать такие объекты, взаимодействие которых после старта программы приведет к достижению необходимого конечного результата.
Слайд 46Функциональное и логическое программирование
Lisp, Haskell и Prolog.
Эта парадигма базируется
на принципиально иной трактовке понятия программы. Здесь главным является точная
формулировка задачи, а выбор и применение необходимого для ее алгоритма решения -- проблема исполняющей системы, но не программиста.