Эволюция языков программирования

5,870 views

Published on

Лекция "Эволюция языков программирования"

Published in: Education
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,870
On SlideShare
0
From Embeds
0
Number of Embeds
347
Actions
Shares
0
Downloads
99
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

Эволюция языков программирования

  1. 1. <ul>Эволюция языков программирования </ul>Informatics.ssga.ru Attribution-ShareAlike (by-sa) — Лицензия «С указанием авторства — Копилефт» stanislav.katsko.name
  2. 2. Языки программирования – формальная знаковая система, предназначенная для записи компьютерных программ. Определяет набор лексических, синтаксических и семантических правил , задающих внешний вид программы и действия, которые выполнит исполнитель (компьютер) под ее управлением. Общее количество языков программирования – более двух с половиной тысяч . <ul>Общие сведения </ul>
  3. 3. Лавлейс Огаста Ада Кинг (1815-1852) – для машины Бэббиджа. В комментариях к описанию машины введены понятия «операция», «переменная», «условный переход», «цикл» . Приведена программа для решения системы двух линейных уравнений с двумя неизвестными. <ul>Первый язык программирования </ul>
  4. 4. Парадигма – совокупность фундаментальных научных установок, представлений и терминов, принимаемая и разделяемая научным сообществом. Томас Кун – предложил термин. В процессе развития научной дисциплины может произойти замена одной парадигмы на другую. <ul>Парадигмы программирования </ul>
  5. 5. Парадигма программирования – совокупность идей и понятий, определяющих стиль написания программ. Парадигма программирования определяется набором инструментов программиста, а именно, языком программирования и используемыми библиотеками . Парадигма программирования определяет то, в каких терминах программист описывает логику программы . Роберт Флойд <ul>Парадигмы программирования </ul>
  6. 6. <ul><li>Императивное программирование
  7. 7. Структурное программирование
  8. 8. Функциональное программирование
  9. 9. Логическое программирование
  10. 10. Объектно-ориентированное программирование </li></ul><ul>Основные парадигмы программирования </ul>
  11. 11. Императивное программирование – парадигма программирования, которая описывает процесс вычисления в виде инструкций, изменяющих состояние программы. Первые императивные языки – машинные коды. 1954 год – первый «человеческий» язык программирования – Fortran (от FORmula TRANslator). 1958-1960 гг. – Алгол (Алгоритмический язык). <ul>Основные парадигмы программирования </ul>
  12. 12. Структурное программирование – методология разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры блоков. Предложена в 70-х годах XX века Э. Дейкстрой, разработана и дополнена Н. Виртом. 3 типа базовых конструкций : последовательное исполнение, ветвление, цикл. Повторяющиеся фрагменты программы могут оформляться в виде т. н. подпрограмм . Разработка программы ведётся пошагово, методом «сверху вниз» . <ul>Основные парадигмы программирования </ul>
  13. 13. Паскаль – язык программирования общего назначения. Использует парадигму структурного программирования. Широко применялся в промышленном программировании, обучении программированию в высшей школе, является базой для ряда других языков. Никлаус Вирт, 1968-69 гг. <ul>Основные парадигмы программирования </ul>
  14. 14. Модула-2 – структурный, модульный язык программирования, с синтаксисом, основанным на языке Паскаль, но заметно переработанным и улучшенным. Использует парадигму структурного программирования. В настоящее время используется для программирования бортового программного обеспечения спутников, запускаемых в рамках проекта ГЛОНАСС. Никлаус Вирт, 1978 г. <ul>Основные парадигмы программирования </ul>
  15. 15. Оберон – сохранил основные черты синтаксиса Модулы и был объектным расширением. Никлаус Вирт, 1989 г. <ul>Основные парадигмы программирования </ul>
  16. 16. Функциональное программирование – парадигма программирования, в которой процесс вычисления трактуется как вычисление значений функций в математическом понимании последних. Наиболее известными языками функционального программирования: <ul><li>LISP
  17. 17. F Sharp (F#)
  18. 18. Haskell
  19. 19. Erlang </li></ul><ul>Основные парадигмы программирования </ul>
  20. 20. Логическое программирование – парадигма программирования, основанная на автоматическом доказательстве теорем. Основано на теории и аппарате математической логики с использованием математических принципов резолюций. Planner – первый язык логического программирования (1969 г.) Prolog – самый известный язык (1972 г.) <ul>Основные парадигмы программирования </ul>
  21. 21. Объектно-ориентированное, или объектное программирование (ООП) – парадигма программирования, в которой основными концепциями являются понятия объектов и классов. ООП возникло в результате развития идеологии процедурного программирования, где данные и подпрограммы (процедуры, функции) их обработки формально не связаны. Visual Basic Delphi Visual C++ <ul>Основные парадигмы программирования </ul>
  22. 22. <ul>Классификации языков программирования </ul><ul></ul><ul>Языки программирования </ul><ul>Высокого уровня </ul><ul>Низкого уровня: C / C++ , Assembler </ul><ul>Общего назначения: Perl, Java, Python </ul><ul>Предметно-ориентированные: Matlab, PL SQL , AutoLisp </ul><ul>Языки программирования </ul><ul>Императивные: C, Java, Perl </ul><ul>Декларативные </ul><ul>Функциональные языки: LISP, Haskell </ul><ul>Языки логического прогр.: Prolog </ul><ul>Мультипарадигменные Ruby </ul>
  23. 23. Языки программирования могут быть реализованы как компилируемые и интерпретируемые . Программа на компилируемом языке при помощи компилятора преобразуется (компилируется) в машинный код для данного типа процессора и далее собирается в исполнимый модуль, который может быть запущен на исполнение как отдельная программа. <ul>Способы реализации языков </ul>
  24. 24. Если программа написана на интерпретируемом языке , то интерпретатор непосредственно выполняет (интерпретирует) исходный текст без предварительного перевода . При этом программа остаётся на исходном языке и не может быть запущена без интерпретатора. Процессор компьютера, в этой связи, можно назвать интерпретатором для машинного кода. <ul>Способы реализации языков </ul>
  25. 25. Современные языки – ASCII . Ранние языки – ограниченный набор (Fortran – 49 символов). Встроенный язык программирования 1С:Предприятие – команды на русском языке . <ul>Используемые символы </ul>
  26. 26. <ul><li>Функциональные
  27. 27. Процедурные (императивные)
  28. 28. Объектно-ориентированные
  29. 29. Учебные
  30. 30. Скриптовые
  31. 31. С русским синтаксисом
  32. 32. Логические
  33. 33. и другие... </li></ul><ul>Классы языков программирования </ul>
  34. 34. <ul><li>Низкоуровневые
  35. 35. Высокоуровневые
  36. 36. Сверхвысокоуровневые </li></ul><ul>Типы языков программирования </ul>
  37. 37. Низкоуровневый язык программирования (язык программирования низкого уровня) – язык программирования, близкий к программированию непосредственно в машинных кодах используемого реального или виртуального процессора. Пример – язык ассемблера <ul>Типы языков программирования </ul>
  38. 38. Высокоуровневый язык программирования (язык программирования высокого уровня) – язык программирования, разработанный для быстроты и удобства использования программистом. Программы, написанные на языках высокого уровня, проще для понимания программистом, но менее эффективны, чем их аналоги, создаваемые при помощи низкоуровневых языков. Примеры: C, C++, Java, Python, PHP, Ruby, Perl, PureBasic, Delphi, Lisp . <ul>Типы языков программирования </ul>
  39. 39. Сверхвысокоуровневый язык программирования (язык программирования сверхвысокого уровня) – язык программирования с очень высоким уровнем абстракции. Используется принцип « что нужно сделать » в отличие от принципа «как нужно сделать». Примеры: скриптовые и декларативные (в частности функциональные) языки Python, Ruby, Haskell, Perl. <ul>Типы языков программирования </ul>
  40. 40. 5 поколений <ul>Поколения языков программирования </ul>
  41. 41. Первое поколение – начало 50-х годов. 1950 – Язык ассемблера , созданный по принципу «одна инструкция – одна строка» (Грейс Хоппер). 1952 – Язык A-0 – первый полноценный ассемблер, получивший известность. 1956 – Язык B-0 – ассемблер. <ul>Поколения языков программирования </ul>
  42. 42. Второе поколение – конец 50-х – начало 60-х гг. 1957 – Fortran – язык высокого уровня, для решения инженерных и расчетных задач. 1958 – Algol-58 – первая спецификация Алгола. 1958 – Lisp – для исследований в области искусственного интеллекта. 1959 – Codasyl – ориентирован на бизнес-приложения. 1959 – Cobol – для коммерческих приложений. <ul>Поколения языков программирования </ul>
  43. 43. <ul>Поколения языков программирования </ul>
  44. 44. <ul>Поколения языков программирования </ul>
  45. 45. Третье поколение – 60-е годы. Универсальные языки программирования . 1964 – PL/1 – Универсальный язык программирования. 1964 – Basic – для обучения работе с компьютером. 1969 – C – для написания ОС Unix, один из языков системного программирования. 1970 – Pascal – для обучения. 1972 – Smalltalk – первый объектно-ориентированный язык. 1972 – Prolog – логический язык программирования. 1979 – Ada – универсальный язык. <ul>Поколения языков программирования </ul>
  46. 46. <ul>Поколения языков программирования </ul>
  47. 47. <ul>Поколения языков программирования </ul>
  48. 48. <ul>Поколения языков программирования </ul>
  49. 49. Четвертое поколение – 70-е годы. Языки для реализации крупных проектов, повышения их надежности и скорости создания. Не универсальные, а проблемно-ориентированные 1983 – C++ – объектно-ориентированное расширение языка C. 1987 – Perl – применяется при обработке текстов, для динамической генерации Web-страниц. 1991 – Python – близок к Perl, но более строг и логичен. 1995 – Delphi 1995 – PHP 1995 – Java <ul>Поколения языков программирования </ul>
  50. 50. <ul>Поколения языков программирования </ul>
  51. 51. <ul>Поколения языков программирования </ul>
  52. 52. <ul>Поколения языков программирования </ul>
  53. 53. <ul>Поколения языков программирования </ul>
  54. 54. <ul>Поколения языков программирования </ul>
  55. 55. <ul>Поколения языков программирования </ul>
  56. 56. <ul>Поколения языков программирования </ul>
  57. 57. Пятое поколение – середина 90-х годов. Системы автоматического создания прикладных программ с помощью визуальных средств разработки, без знания программирования <ul>Поколения языков программирования </ul>
  58. 58. <ul>Поколения языков программирования </ul>

×