Просмотр содержимого документа
«Методы и технологии программирования»
Методы и технологии программирования
Структурное программирование
Модульное программирование
Объектно-ориентированное программирование
Визуальное программирование
Облачные технологии
Метод и технология программирования
Метод программирования – способ, средство, определяющие стиль написания, откладки и сопровождения программ.
Технология программирования – технологии разработки программ для ЭВМ, которые будут использоваться людьми для решения задач на ЭВМ.
Принципы структурного программирования
Программирование осуществляется «сверху-вниз»;
Программа состоит из подпрограмм с одним входом и одним выходом;
Подпрограмма должно допускать только три основные структуры – последовательное выполнение, ветвление и повторение.
Модульное программирование – это метод разработки программ, при котором программа разбивается на независимые модули
Модуль – фрагмент программы, хранящийся в отдельной форме.
Объектно-ориентированное программирование (ООП) – это метод программирования, при использовании которого главными элементами программ являются объекты.
В ЯП понятие «объект » реализован как совокупность свойств (структур данных, характерных для данного объекта), методов их обработки (подпрограмм их свойств) и событий, на который данный объект может реагировать.
Класс – множество объектов, связанных общностью структуры и поведения(класс содержит описание структуры и поведение всех объектов, связанных отношением общности).
Принципы ООП :
Наследование предусматривает создание новых классов на базе существующих и позволяет классу-потомку иметь все свойства класса-родителя
Полиморфизм означает, что рожденные объект обладают информацией о том, какие методы они должны использовать в зависимости от того, в каком месте цепочки они находятся
В функциональном программировании (ЯП Lips ) основной единицей является функция
В логическом программировании задача решается путем ввода логических следований их множества факторов и правил (ЯП Prolog , Mercury )
Предпосылки развития программирования
20-х года XIX века - Ч.Бэббидж – высказалмысль о предварительной записи порядка действий машины для последующей автоматической реализации вычислений – программе
Перфокарты, Жозеф Мари-Жаккар
Предпосылки развития программирования
Ада Лавлейс - первый в мире программист. теоретически разработала некоторые приемы управления последовательностью вычислении, описала одну из важнейших конструкций современного языка программирования - цикл.
Предпосылки развития программирования
Джон Моучли, сотрудник Пенсильванского университета - предложил системы кодирования машинных команд с помощью специальных символов .
Грейс Мюррей Хоппер, - «третий в мире программист первого в мире большого цифрового компьютера». - подпрограммы, отладка
ENIAC
ENIAC
Исторический обзор языков программирования
1951 г. Хоппер - первый в мире компилятор .
Компилятор Хоппер осуществлял функцию объединения команд и в ходе трансляции производил организацию подпрограмм, выделение памяти компьютера, преобразование команд высокого уровня (в то время псевдокодов) в машинные команды .
В 1954 г. группа под руководством Г.Хоппер разработала систему, включающую язык программирования и компилятор, которая в дальнейшем получила название MATH - MATIC .
«Существует много различных людей, которым нужно решать разные задачи. Некоторые из них связаны с обработкой символов, другие - с обработкой слов, и им нужны языки другого типа, а не наши попытки превратить их всех в математиков».
В 1958 г. появился FLOW - MATIC - первый язык для задач обработки коммерческих данных.
FORTRAN
В середине 50-х годов под руководством Джона Бэкуса для фирмы IBM был разработан алгоритмический язык программирования FORTRAN . Основным критерием при разработке компиляторов Фортрана являлась эффективность исполняемого кода.
FORTRAN (FORmula TRANslator) - предоставлял возможность записи алгоритма вычислений с использованием условных операторов и операторов ввода/вывода
FORTRAN
для FORTRAN было создано огромное количество библиотек (статистические комплексы, пакеты управления спутниками и т.д.)
HPF ( High Performance Fortran ) для параллельных суперкомпьютеров с множеством процессоров
FORTRAN
К языку FORTRAN предъявлялись требования cоздания высокоэффективного кода. Поэтому многие конструкции языка первоначально разрабатывались с учетом архитектуры IBM 407. С целью некоторой возможной на тот момент унификации языка язык FORTRAN IV, разработанный в 1966 году, стал первым стандартом, именуемым FORTRAN 66.
ALGOL
ALGOL (ALGOrithmic Language) - разработан под руководством Питера Наура в конце 50-х годов
Основная цель - независимость от конкретной архитектуры вычислительной системы, так же удобство описания алгоритмов и применение системы обозначений, близкой к той, что принята в математике.
ALGOL
Algol был призван заменить Фортран, но из-за более сложной структуры не получил широкого распространения. В 1968 году была создана версия Алгол 68, по своим возможностям долго опережавшая многие языки программирования.
PL/1
ПЛ/1 -1965 год. (Programming Language 1, т. е язык программирования 1).
разработан при содействии фирмы IBM.
цель - создать язык, сочетающий в себе лучшие свойства Алгола, Кобола и Фортрана. ПЛ/1 действительно подходит для решения широкого круга задач и является более гибким по сравнению с Алголом, Коболом и Фортраном.
Cobol
Cobol (Кобол)- язык для программирования экономических задач.
хорошо развиты средства обработки текстов, организация вывода данных в форме требуемого документа.
реализованы очень мощные средства работы с большими объемами данных, хранящимися на различных внешних носителях.
Языки обучения программированию
В 1965 году Т. Куртц и Д. Кемени - язык для обучения программированию, который являлся упрощенной версией Фортрана и получил название Бейсик (Beginner's All-purpose Simbolic Instruction Code, т.е. многоцелевой код символических команд для начинающих).
Языки обучения программированию
В 1971 году профессор Н. Вирт из Технического университета в Цюрихе разработал новый язык, известный под названием "Паскаль" (в честь хорошо известного математика 17-го века Блеза Паскаля).
Язык Паскаль основан на Алголе, но содержит ряд усовершенствований. Первоначально он создавался как учебный язык, в нем аккуратно соблюдена структурная линия программирования.
Языки обучения программированию
Фирма Borland Internetional Inc (США) разработала систему Турбо - Паскаль для ПК. Турбо - Паскаль - это не только язык и транслятор с него, но еще и операционная оболочка, позволяющая пользователю удобно работать. Турбо - Паскаль вышел за рамки учебного предназначения и стал языком профессионального программирования с универсальными возможностями.
Лисп
В 1965 году в Стэнфорде под руководством Дж. Маккарти появился язык программирования Лисп (List Processing, т.е. обработка списков). Он служит для обработки строк и рекурсивных данных. Лисп располагает также средствами для выполнения арифметических и логических операций. Он находит широкое применение в исследованиях по созданию искусственного интеллекта.
АДА
В январе 1975 г. Пентагон учредит комитет, которому было предписано разработать один универсальный язык. На конкурсной основе комитет проработал сотни проектов и принял два проекта для окончательного рассмотрения. В мае 1979 г. был объявлен победитeль - группа ученых во главе с Жаном Ихбиа. Победивший язык окрестили АДА, в честь Огасты Ады Лавлейс..
АДА
Язык АДА - прямой наследник языка Паскаль. - этот язык предназначен для создания и длительного (многолетнего) сопровождения больших программных систем, допускает возможность параллельной обработки, правления процессами в реальном времени и многое другое.
Язык С
С - разработан в середине 70-х годов Денисом Ритчи и Кеном Томпсоном.
популярный язык системного программирования и в свое время использовался для написания ядра операционной системы UNIX.
Стандарт языка С начал разрабатываться рабочей группой института стандартов ANSI в 1982 году. Международный стандарт языка С принят в 1990 году. Язык С лег в основу разработки языков программирования C++ и Java.
С появлением персональных компьютеров языки стали составными частями интегрированных сред разработки. Появились языки, применяемые в различных офисных программах, например VBA (Visual Basic for Application).
Языки программирования в 90 годы
с распространением сети Интернет расширяется возможность распределенной обработки данных
Java, Perl и PHP - языки, ориентированные на создание серверных приложений
HTML и XML – языки описания документов
Традиционные языки программирования С++ и Pascal - претерпевают изменения: под языком программирования начинает пониматься не только функциональность самого языка, а также библиотеки классов, предоставляемые средой программирования.
Классификации языков программирования высокого уровня
Классификации языков программирования высокого уровня
Классификация по уровню абстрагирования при постановке задачи.
Классификация по функциональному назначению.
Области применения языков программирования
научные вычисления (языки C++, FORTRAN, Java);
системное программирование (языки C++, Java);
обработка информации (языки C++, COBOL, Java);
искусственный интеллект (LISP, Prolog);
издательская деятельность (Postscript, TeX);
удаленная обработка информации (Perl, PHP, Java, C++);
описание документов (HTML, XML).
Факторы, влияющие на востребованность ЯПВУ
наличие среды программирования, поддерживающей разработку приложений на конкретном языке программирования;
удобство сопровождения и тестирования программ;
стоимость разработки с применением конкретного языка программирования;
четкость и ортогональность конструкций языка;
применение объектно-ориентированного подхода.
Синтаксис языка описывает систему правил написания различных языковых конструкций, а семантика языка программирования определяет смысл этих конструкций. Синтаксис языка программирования может быть описан с помощью БНФ-нотаций.
Семантика языка взаимосвязана с используемой вычислительной моделью.
Парадигмы программирования
Парадигма -- набор теорий, стандартов и методов, которые совместно представляют собой способ организации научного знания, -- иными словами, способ видения мира. парадигма в программировании -- способ концептуализации, который определяет, как следует проводить вычисления, и как работа, выполняемая компьютером, должна быть структурирована и организована.
парадигмы директивного , объектно-ориентированного и функционально-логического программирования.
Для поддержки программирования в соответствии с той или иной парадигмой разработаны специальные алгоритмические языки.
разработчик программы использует процессорно-ориентированная модель, то есть пытается создать код, должным образом воздействующий на данные. Активным началом при этом подходе считается программа (код), которая должна выполнить все необходимые для достижения нужного результата действия над пассивными данными.
объектно-ориентированный (object oriented) подход
C++ и Java.
первичными считаются объекты (данные), которые могут активно взаимодействовать друг с другом с помощью механизма передачи сообщений (называемого также и механизмом вызова методов). Функция программиста - он должен придумать и реализовать такие объекты, взаимодействие которых после старта программы приведет к достижению необходимого конечного результата.
Функциональное и логическое программирование
Lisp, Haskell и Prolog.
Эта парадигма базируется на принципиально иной трактовке понятия программы. Здесь главным является точная формулировка задачи , а выбор и применение необходимого для ее алгоритма решения -- проблема исполняющей системы, но не программиста.