Similar presentations:
Языки программирования
1. Языки программирования
ЯЗЫКИПРОГРАММИРОВАНИЯ
Козырева
Екатерина
Васильевна
2.
3. Почему сделано так, а не иначе?
ПОЧЕМУ СДЕЛАНО ТАК, А НЕ ИНАЧЕ?Как появлялись и эволюционировали
языки программирования.
Общие принципы построения языков
программирования.
4. Зачем изучать языки программирования?
ЗАЧЕМ ИЗУЧАТЬ ЯЗЫКИПРОГРАММИРОВАНИЯ?
Разработка более эффективных алгоритмов (реализовать
алгоритм можно разными средствами языка, понимание
их существа и как они реализованы способствует
созданию более эффективных программ). Пример —
рекурсия.
Позволяет эффективнее использовать известный
программист у ЯП (реализация структ ур, понимание
концепций: рекурсия, классы в ООП).
Увеличивает «словарный» запас полезных
программистских конструкций . Язык — это инструмент
мышления, но и ограничитель его. Понимание
конструкций других языков способствует их реализации в
используемом программистом ЯП.
Позволяет правильно выбрать язык для реализации
задачи: численные — С, FORTRAN, Ada; искусственный
интеллект и принятие решений — LISP, Prolog, ML;
приложения Интернета — Perl или Java, языки среды .NET.
Способствует более легкому изучению других ЯП .
Способствует более легкой разработке нового ЯП. Мало
программистов разрабатывает новый язык, но
интерфейс пользователя можно рассматривать как некий
ЯП. Реализация похожа на реализацию ЯП. => Знание
аспектов реализации ЯП ускоряет разработку.
5. литература
ЛИТЕРАТ УРАПрат т Т., Зелковиц М., Языки программирования:
разработка и реализация . : Пер. с англ. / Под общей ред. А .
Матросова. — СПб.: Питер, 2002. — 688 с.
Себеста Роберт У., Основные концепции языков
программирования, 5-е изд. : Пер. с англ. — М.:
Издательский дом «Вильямс», 2001 . — 672 с.
Карпов Ю.Г., Теория и технология программирования.
Основы построения трансляторов . — СПб.: БХВ-Петербург,
2005. — 272 с
6. Язык определяет способ мышления
ЯЗЫК ОПРЕДЕЛЯЕТ СПОСОБ МЫШЛЕНИЯЯзык формирует наш способ
мышления и определяет то, о чём
мы можем мыслить».
Б.Л Ворф
«
7. Понятие языка программирования
ПОНЯТИЕ ЯЗЫКА ПРОГРАММИРОВАНИЯЯзык программирования - формальная
знаковая система, предназначенная для
записи программ, задающих алгоритм в
форме, понятной для исполнителя
(например, компьютера).
Язык программирования определяет набор
лексических, синтаксических и
семантических правил, используемых при
составлении программы.
8. Понятие языка программирования
ПОНЯТИЕ ЯЗЫКА ПРОГРАММИРОВАНИЯСемантика - в программировании - система
правил истолкования отдельных языковых
конструкций. Семантика определяет
смысловое значение предложений
алгоритмического языка.
Синтаксис - набор правил построения
фраз алгоритмического языка,
позволяющий определить, осмысленные
предложения в этом языке.
9. Понятие языка программирования
ПОНЯТИЕ ЯЗЫКА ПРОГРАММИРОВАНИЯЯП можно рассматривать как любую систему
записи алгоритмов и структур данных
(математическая нотация).
Мы рассматриваем те, которые реализуются
на компьютере.
Информация в ЯП — данные + алгоритмы.
10. Краткая история языков программирования
КРАТКАЯ ИСТОРИЯ ЯЗЫКОВПРОГРАММИРОВАНИЯ
В 50-е гг. появились первые языки
программирования высокого уровня.
В 70-е гг. только в оборонных
проектах США было использовано
более 500 различных ЯП.
В настоящее время ≈ 8000 ЯП.
11. Краткая история языков программирования
КРАТКАЯ ИСТОРИЯ ЯЗЫКОВПРОГРАММИРОВАНИЯ
12. Языки численных расчетов
ЯЗЫКИ ЧИСЛЕННЫХ РАСЧЕТОВПервые компьютеры 30-е – 40-е годы прошлого
века. Ориентированы на численные задачи
(определение баллистических траекторий) —
электронные калькуляторы.
Начало 50-х — первые символьные нотации
(компиляция арифметических выражений в
выполняемый код). Язык А-0 (Grace Hopper) для
Univac. Быстрое кодирование (Speedcoding) John
Backus для IBM 701.
Поворотная точка — 1955-1957 — разработка
первого компилятора FORmula TRANslation
(FORTRAN). Ориентирован на вычисления, но
цель — полноценный язык со структурами
управления, вводом и выводом. Особое
внимание на эффективность вычислений, чтобы
конкурировать с ручным кодированием.
Некоторые конструкции разработаны специально
для IBM 704. Он имел успех. Стандарт
FORTRAN 66. Далее FORTRAN 77, FORTRAN 90.
13. Языки численных расчетов
ЯЗЫКИ ЧИСЛЕННЫХ РАСЧЕТОВВ Европе (Германия — Peter Naur) комитет по
разработке алгоритмического языка. Появился
под названием International Algorithmic
Language (IAL), но стал называться ALGorithmic
Language (ALGOL) (1958). Стандарт ALGOL 60.
Академический язык. Цели:
–
–
–
–
Система записи близка к стандартной математической.
Способен описывать алгоритмы.
Программы компилируются в машинный код.
Не привязан к конкретной архитектуре компьютера.
Цели достаточно амбициозны для тех времен.
(Чтобы был близок к "чистой" математике,
подпрограмма реализовалась как макро
подстановка => вызов параметров по имени).
14. Языки численных расчетов
ЯЗЫКИ ЧИСЛЕННЫХ РАСЧЕТОВALGOL не был столь популярен в США, как в
Европе, но под его влиянием появился JOVIAL
(Jules' Own Version of IAL — Jule Schwartz),
ставший стандартом разработки для ВВС США.
Backus при редактировании отчета по описанию
языка ALGOL под влиянием концепции контекстно свободных языков (Chomsky, 1959) использовал
синтаксическую нотацию, ставшую началом
теории формальных грамматик. Она известна как
НФБ-нотация (Backus-Naur Form).
Компания Burroughs использовала при
реализации нового компьютера стек для
вычисления арифметических выражений. Толчком
послужила работа польского математика
Лукашевича о бесскобочной записи выражений.
Компилятор ALGOL стал быстрее компилятора
FORTRAN.
15. Языки численных расчетов
ЯЗЫКИ ЧИСЛЕННЫХ РАСЧЕТОВВ 60-х разработана концепция определяемых
пользователем типов. Simula-67 (норвежцы
Nygaard и Dahl) ввел классы, которые Страуструп
в 80-х ввел в С и получил С++. Вирт пытался
ввести определяемые пользователем типы в
ALGOL-W, но язык не имел успеха. Его же Pascal
(1968-1970) де-факто стал стандартом при
изучении информатики в 70-х.
Новые концепции пытались реализовать в
ALGOL 68, но он так и остался всего лишь
теоретическим языком из-за своей сложности,
хотя компиляторы и были созданы.
16. Языки численных расчетов
ЯЗЫКИ ЧИСЛЕННЫХ РАСЧЕТОВВвод новой серии компьютеров IBM 360 в 1963
— исходная точка для нового языка NPL ( New
Programming Language), затем MPPL (MultiPurpose Programming Language) в связи с
недовольством сотрудников English National
Physical Laboratory, и в конце концов PL/I. Он
сочетал вычислительные возможности FORTRAN
и возможности разработки деловых приложений
(для бизнеса) языка COBOL. Скромный успех .
BASIC (Beginners All-purposed Symbolic
Instruction Code) — для вычислений не учеными,
но дальнейшее его развитие далеко вышло за
первоначальные цели (Visual Basic, Visual Basic
for Application, VBScript).
17. Языки обработки деловой информации
ЯЗЫКИ ОБРАБОТКИ ДЕЛОВОЙИНФОРМАЦИИ
Обработка деловых данных (разнообразный
анализ биржевых данных, информации по
клиентам и т. п.) — следующая, после численных
расчетов, область приложения программных
продуктов и разработчиков языков
программирования.
FLOWMATIC (Grace Hopper, 1955). Цель —
разработка приложений для бизнеса в форме
англо-подобного текста.
В 1959 Министерство обороны США создало
комитет по разработке языка обработки данных,
который как можно ближе был бы к английскому.
В 1960 появился COBOL (COmmon Business
Oriented Language). Пересматривался в 1974 и
1984 годах. Он и сейчас используется.
18. Языки искусственного интеллекта
ЯЗЫКИ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА• Интерес к подобного рода языкам возникает с появлением
в 50-х IPL (Information Processing Language ). Имел большой
успех (IPL-V), но уст упил LISP (LIst PRocessing) (John
McCarthy). Функциональный язык обработки списков. Его
область — реализация игр: выстроить дерево возможных
ходов (связанный список), а потом найти оптимальную
стратегию.
• Другой естественной областью применения этого языка
стал автоматический машинный перевод текста, где одна
цепочка символов заменятся на другую. Первой
разработкой был язык COMIT (MIT), но его код был
запатентован, поэтому AT&T Bell Labs разработала SNOBOL.
• Prolog — основан на концепциях математической логики, в
отличие от LISP — языка общего назначения обработки
списков.
19. Системные языки
СИСТЕМНЫЕ ЯЗЫКИЯзык ассемблера преобладал многие годы .
Были CPL и BCPL
Но только С (70-е годы) имел успех. На нем была
написана операционная система UNIX, и он
показал эффективность языка высокого уровня и в
системной области.