Языки программирования Матросов Александр Васильевич Санкт-Петербургский государственный университет.

Презентация:



Advertisements
Похожие презентации
ВЫПОЛНЕНИЕ АЛГОРИТМОВ КОМПЬЮТЕРОМ. Алгоритм, записанный на «понятном» компьютеру языке программирования, называется программой. Программа данные, предназначенные.
Advertisements

Языки программирования. Программа - это алгоритм, записанный на языке программирования. Программирование – процесс создания программы.
История развития языков программирования. Терминологический словарь: ПРОГРАММИРОВАНИЯЯЗЫК Знаковая система совокупность условных знаков и правил их взаимосвязи.
Язык программирования формальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования определяет набор лексических.
Язык программирования формальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования определяет набор лексических.
Язык программирования формальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования определяет набор лексических.
Тема урока: Классификация языков программирования.
Программы для первых ЭВМ программисты писали на языках машинных команд. Это очень трудоемкий и длительный процесс. Проходило значительное время между.
АНАСТАСИЯ ТКАЧУК PK11-PV TEKO 1 Языки программирования.
Уильям (Билл) Гейтс. Информатика Hard Ware (технические средства) Soft Ware (программные средства) Brain Ware (алгоритмические средства) MS Windows MS.
1 Тема 1.7. Алгоритмизация и программирование Информатика.
Сравнительный анализ языков программирования Автор Родионов Михаил.
Языки программирования часто классифицируют по уровню. Уровень языка показывает, насколько язык близок к естественной для человека записи. Уровни языков.
1 История языков программирования. 2 Обучать компьютер понимать человеческие слова первыми стали американцы. Была необходима специальная программа в машинных.
Искусственный интеллект Проблема создания человеческого разума.
Государственное бюджетное образовательное учреждение среднего профессионального образования «Новороссийский колледж строительства и экономики» Краснодарского.
Троицкий Д.И. Лингвистическое и программное обеспечение САПР 1 Классификация грамматик и языков Лекция 9 Кафедра «Автоматизированные станочные системы»
Что такое программирование? Совокупность процессов, связанных с разработкой программ и их реализацией. В широком смысле к указанным процессам относят все.
Язык программирования Паскаль 1 часть. Система программирования – совокупность программ для создания других программ. Среда программирования – программная.
«Все наше достоинство – в способности мыслить» Блез Паскаль.
Транксрипт:

Языки программирования Матросов Александр Васильевич Санкт-Петербургский государственный университет

2 Цели курса Рассмотреть основные языковые концепции, общие для большинства языков программирования (ЯП). Познакомить с основами теории формальных языков и конечных автоматов как математическим аппаратом, лежащим в основе разработки ЯП. Показать реализацию некоторых понятий и концепций ЯП, что позволит программисту понять связь между исходным текстом программы и ее поведением во время выполнения (подобный подход отличается от другой достаточно распространенной точки зрения, что не надо знать реализацию понятий и конструкций ЯП, а достаточно хорошо владеть его синтаксисом). Изучить несколько новых языков программирования, в которых реализованы присущие многим современным языкам программирования свойства: Java и Perl.

3 Литература Основная: –Пратт Т., Зелковиц М., Языки программирования: разработка и реализация. : Пер. с англ. / Под общей ред. А. Матросова. СПб.: Питер, с. –Себеста Роберт У., Основные концепции языков программирования, 5-е изд. : Пер. с англ. М.: Издательский дом «Вильямс», с. –Карпов Ю.Г., Теория и технология программирования. Основы построения трансляторов. СПб.: БХВ-Петербург, с. Дополнительная: –Эккель Б., Философия Java. Библиотека программиста. 3-е изд. СПб.: Питер, с. –Хантер Р., Основные концепции компиляторов. : Пер. с англ. М.: Издательский дом «Вильямс», с. –Ахо А.В., Сети Р., Ульман Д.Д., Компиляторы: принципы, технологии и инструменты. М.: Издательский дом «Вильямс», с. –Хопкрофт Дж.Э., Мотвани Р., Ульман Д.Д., Введение в теорию автоматов, языков и вычислений, 2-е изд. М.: Издательский дом «Вильямс», с. –Карпов Ю.Г., Теория автоматов: Учебник для вузов. СПб.: Питер, с. –Матросов А.В., Чаунин М.П., Perl. Программирование на языке высокого уровня.: Учебник для вузов. СПб.: Питер, с.

4 Что такое язык Язык система знаков (звуков, сигналов) для передачи и обработки информации. Синтаксис система языковых категорий, относящихся к соединениям слов и строению предложений (по существу множество правил, согласно которым основные символы слова языка организуются в предложения). –Глокая куздра штеко будланула бока и кудрячит бокренка. (акад. Щерба) –Он вернулся из командировки в Москву. Семантика относится к значению, смыслу языковой единицы и часто определяется как множество правил истолкования (интерпретации) значения предложения (зависит от контекста). Маша покрывала мыла крышкой. вар.1 (подлежащее) (сказуемое) (прямое дополнение) (косвенное дополнение) вар.2 (подлежащее) (прямое дополнение) (сказуемое) (косвенное дополнение) Контекст относительно законченная в смысловом отношении часть текста, высказывания.

5 Что такое язык программирования Языки можно разделить на естественные и искусственные (формальные). Язык программирования формальный язык, предназначенный для связи человека с вычислительной машиной. На этом языке задаются информация (данные) для ЭВМ и алгоритм обработки данных (программа). –ЯП можно рассматривать как любую систему записи алгоритмов и структур данных (математическая нотация). –Мы рассматриваем те, которые реализуются на компьютере. –Информация в ЯП данные + алгоритмы.

6 Зачем изучать языки программирования Увеличивает возможности программиста при разработке более эффективных алгоритмов (реализовать алгоритм можно разными средствами языка, понимание их существа и как они реализованы способствует созданию более эффективных программ). Пример рекурсия. Позволяет эффективнее использовать известный программисту ЯП (реализация структур, понимание концепций: рекурсия, классы в ООП). Увеличивает «словарный» запас полезных программистских конструкций. Язык это инструмент мышления, но и ограничитель его. Понимание конструкций других языков способствует их реализации в используемом программистом ЯП. Позволяет правильно выбрать язык для реализации задачи: численные С, FORTRAN, Ada; искусственный интеллект и принятие решений LISP, Prolog, ML; приложения Интернета Perl или Java, языки среды.NET. Способствует более легкому изучению других ЯП. Способствует более легкой разработке нового ЯП. Мало программистов разрабатывает новый язык, но интерфейс пользователя можно рассматривать как некий ЯП. Реализация похожа на реализацию ЯП. => Знание аспектов реализации ЯП ускоряет разработку.

7 Первые языки (1) Первые компьютеры 30-е – 40-е годы прошлого века. Ориентированы на численные задачи (определение баллистических траекторий) электронные калькуляторы. Начало 50-х первые символьные нотации (компиляция арифметических выражений в выполняемый код). Язык А 0 (Grace Hopper) для Univac. Быстрое кодирование (Speedcoding) John Backus для IBM 701. Поворотная точка разработка первого компилятора FORmula TRANslation (FORTRAN). Ориентирован на вычисления, но цель полноценный язык со структурами управления, вводом и выводом. Особое внимание на эффективность вычислений, чтобы конкурировать с ручным кодированием. Некоторые конструкции разработаны специально для IBM 704. Он имел успех. Стандарт FORTRAN 66. Далее FORTRAN 77, FORTRAN 90. В Европе (Германия Peter Naur) комитет по разработке алгоритмического языка. Появился под названием International Algorithmic Language (IAL), но стал называться ALGorithmic Language (ALGOL) (1958). Стандарт ALGOL 60. Академический язык. Цели: –Система записи близка к стандартной математической. –Способен описывать алгоритмы. –Программы компилируются в машинный код. –Не привязан к конкретной архитектуре компьютера. Цели достаточно амбициозны для тех времен. (Чтобы был близок к "чистой" математике, подпрограмма реализовалась как макро подстановка => вызов параметров по имени). Языки численных расчетов

8 Первые языки (2) ALGOL не был столь популярен в США, как в Европе, но под его влиянием появился JOVIAL (Jules' Own Version of IAL Jule Schwartz), ставший стандартом разработки программ для военно-воздушных сил США. Backus при редактировании отчета по описанию языка ALGOL под влиянием концепции контекстно-свободных языков (Chomsky, 1959) использовал синтаксическую нотацию, ставшую началом теории формальных грамматик. Она известна как НФБ-нотация (Backus-Naur Form). Производитель компьютеров компания Burroughs использовала при реализации нового компьютера стек для вычисления арифметических выражений. Толчком послужила работа польского математика Лукашевича о бесскобочной записи выражений. Компилятор ALGOL стал быстрее компилятора FORTRAN. В 60-х разработана концепция определяемых пользователем типов. Simula-67 (норвежцы Nygaard и Dahl) ввел классы, которые Страуструп в 80-х ввел в С и получил С++. Вирт пытался ввести определяемые пользователем типы в ALGOL-W, но язык не имел успеха. Его же Pascal ( ) де-факто стал стандартом при изучении информатики в 70-х. Новые концепции пытались реализовать в ALGOL 68, но он так и остался всего лишь теоретическим языком из за своей сложности, хотя компиляторы и были созданы. Ввод новой серии компьютеров IBM 360 в 1963 исходная точка для нового языка NPL (New Programming Language), затем MPPL (Multi-Purpose Programming Language) в связи с недовольством сотрудников English National Physical Laboratory, и в конце концов PL/I. Он сочетал вычислительные возможности FORTRAN и возможности разработки деловых приложений (для бизнеса) языка COBOL. Скромный успех. BASIC (Beginners All-purposed Symbolic Instruction Code) для вычислений не учеными, но дальнейшее его развитие далеко вышло за первоначальные цели (Visual Basic, Visual Basic for Application, VBScript). Языки численных расчетов

9 Первые языки (3) Обработка деловых данных (разнообразный анализ биржевых данных, информации по клиентам и т. п.) следующая, после численных расчетов, область приложения программных продуктов и разработчиков языков программирования. FLOWMATIC (Grace Hopper, 1955). Цель разработка приложений для бизнеса в форме англо-подобного текста. В 1959 Министерство обороны США создало комитет по разработке языка обработки данных, который как можно ближе был бы к английскому. В 1960 появился COBOL (COmmon Business Oriented Language). Пересматривался в 1974 и 1984 годах. Он и сейчас используется. Языки обработки деловой информации

10 Первые языки (4) Языки искусственного интелекта Интерес к подобного рода языкам возникает с появлением в 50-х IPL (Information Processing Language). Имел большой успех (IPL-V), но уступил LISP (LIst PRocessing) (John McCarthy). Функциональный язык обработки списков. Его область реализация игр: выстроить дерево возможных ходов (связанный список), а потом найти оптимальную стратегию. Другой естественной областью применения этого языка стал автоматический машинный перевод текста, где одна цепочка символов заменятся на другую. Первой разработкой был язык COMIT (MIT), но его код был запатентован, поэтому AT&T Bell Labs разработала SNOBOL. Prolog основан на концепциях математической логики, в отличие от LISP языка общего назначения обработки списков. Системные языки Язык ассемблера преобладал многие годы. Были CPL и BCPL Но только С (70-е годы) имел успех. На нем была написана операционная система UNIX, и он показал эффективность языка высокого уровня в системной области, да и в других.

11 Выводы