Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » лекции (2008) (by Михайлишин Алексей_ Жбанков Денис_ Щербинин Виктор_ Чеботарев Павел)

лекции (2008) (by Михайлишин Алексей_ Жбанков Денис_ Щербинин Виктор_ Чеботарев Павел)

PDF-файл лекции (2008) (by Михайлишин Алексей_ Жбанков Денис_ Щербинин Виктор_ Чеботарев Павел) Языки программирования (54007): Лекции - 7 семестрлекции (2008) (by Михайлишин Алексей_ Жбанков Денис_ Щербинин Виктор_ Чеботарев Павел): Языки программирования - PDF (54007) - СтудИзба2019-09-19СтудИзба

Описание файла

PDF-файл из архива "лекции (2008) (by Михайлишин Алексей_ Жбанков Денис_ Щербинин Виктор_ Чеботарев Павел)", который расположен в категории "". Всё это находится в предмете "языки программирования" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст из PDF

Языки программированияГоловин Игорь ГеннадиевичВт – 3ей, Чт – 4й парой, отчетность – экзаменЛекции записывали: Михайлишин Алексей, Жбанков Денис, Щербинин Виктор, Чеботарев Павел[В.Ш. Кауфман «Языки программирования: концепции и примеры», 1993][Т.П. Пратт, М. Зенкович «Языки программирования: разработка и реализация»][Р. Себеста «Основные понятия языков программирования»][Бен Ари «Языки программирования»]Мы будем рассматривать:• С++ (много разных книг, стоит выделить Страуструпа)• Ада (мало литературы на русском языке, первая версия 1983 – Н.

Джеханн «Язык Ада», затем в1995 и 2005)• Java (Страуструп, Шилдт «Новые черты в языке Java 2005»)• C# (язык появился в 1999, сам автор языка книгу не написал, но можно порекомендовать «С# ускоренный курс»)• Modula2, Оберон (сейчас не используются, но очень красивы и просты; Н. Вирт«Программирование на языке Модула 2»)• Паскаль, C (иногда будем ссылаться на них)Цель курса – не выучить языки программирования (для этого нужно на них писать), а изучить концепции.План курса:1) Введение2) Основные понятия традиционных ЯП (основное понятие – тип данных)3) ООП языки программированияГлава 1.

Определения и классификация ЯП.Примеры ЯП, которые не для компьютера: APL – язык для короткой записи векторных операций (смассивами), PLANNER – на нем можно было описать алгоритмически неразрешенные проблемы(первоначально был для людей, затем, урезанно, перенесен на компьютер).Экстенсиональное определение в данном случае не работает (пример про HTML – язык это или нет?), ноесть интенсиональное:Язык программирования – инструмент планирования поведения исполнителя. В этом смысле HTML тожеявляется языком программирования.

В нашем курсе мы ограничим понятие исполнителя.COBOL (common business oriented language) – ориентирован на обработку информации, удобные средствадля описания plain-data данных. Создан, чтобы языки программирования писали обычные люди, для этогоон был похож на естественные языки (assign 5 to j; add 1 to I given j).Виды программирования:1) игровое программирование (для себя, напр. Basic)2) научное (для решения каких-то задач, программа нужна только как средство решения задачи)3) индустриальное (программа отчуждается от ее авторов) – это мы будем изучать(С.И.

Мухин пишет на фортране, его (язык) знают все математики)Парадигмы программирования:1) процедурная (императивная), главный оператор присваивания, они эффективны2) объектно-ориентированная, класс (в нем члены-данные и члены-функции)Языки программирования:1) процедурные2) процедурно-ООП3) функциональные, главная операция аппликации (применения функции)4) декларативные[lect2] Глава 2.

Исторический очерк ЯП.Существует несколько тысяч языков программирования. Языков много, генеалогию составить тяжело.Обоснуем выбор языков, которые мы выбрали.FORTRAN (formula translator) – самый первый проект ЯП (1954 - 57). Первоначально затея о написаниитранслятора с некого языка на машинный считалась обреченной на провал т.к. тогда было очень дорогопроцессорное время и память, а никто кроме человека так хорошо не сможет запрограммировать задачу.

Нопотом Бекус понял, что убрать из схемы математик->программист математиков невозможно, следовательно,надо убрать программиста (-ску), которые переводили «блок-схемы» в «двоичный код». Математики отпоявления FORTRANa были просто в восторге! Он сразу же стал самым популярным языком в мире. Однакопозже стало понятно, что FORTRAN – яркий пример того, как делать не надо. Было много ошибок т.к. тогданадо было делать быстрее и не знали, как оно вообще должно быть.

До 1964 года FORTRAN был базовымязыком IBM. На нем писали все что угодно, несмотря на то, что он был создан для математическихвычислений. Самый главный недостаток языка FORTRAN – он сам провоцировал ошибки программистов(DO5I=1.3 instead of DO 5 I = 1, 3).Успех проекта FORTRAN спровоцировал целую кучу проектов.ALGOL (создан IFIP - International Federation for Information Processing, международная организация):• блочная структура• формальные методы (БНФ)• стек -> рекурсивный вызов процедур• другие нововведенияНо не было стандартизованного ввода-вывода, на разных машинах свои реализации – следовательно,сложно было переносить программы на другие системы (а вот FORTRAN можно было). А также код,оттранслированный вручную, а не на ALGOLе, работал в 7-10 раз быстрее.

Для FORTRANa этот показательдостигал 1.05.Принцип «экологической ниши» языка - набор методик, библиотек, средств, программистов,работающих в одной данной области. Тот, кто первый займет эту нишу, у того и решающее преимущество.Даже если приходят более подготовленные, но не слишком «более», то они не смогут занять это место. Дляязыков программирования это проявляется ярко. В данном случае нишу занял FORTRAN, другую, например,Си (Си вытеснил ассемблер). Когда язык пытается выйти из этой ниши у него это не получается.Периоды развития ЯП:1) 50е – начало 60х годов – эмбриональный период• FORTRAN• 1960 – ALGOL60 (предтечи PASCAL) – занял нишу в образовании; на базе него был созданSIMULA67 (где в принципе были классы, но не было наследования)• 1959 – COBOL (эффективный ввод-вывод), проблема-2000 завязана с COBOLом, так как там былспециальный тип данных DATA, формата DDMMYY, а все бизнес-программы успешнопроработали до наших дней• 1959 – 61 LISP – язык для AI, но плохо ложился на машины «Фон-Неймана» (переписывали наСи)2) 60е – 1980 – период экспоненциального роста• Ежегодно появлялись сотни новых языков, наиболее заметен – Сипоявление универсальных языков•••••••1961 – для IBM/360 создали NPL, позже PL/I, из каждого языка взяли лучшее (что нравилосьлюдям в языке) -> провал, так как язык слишком сложный (не соблюден принципвзаимосвязанных компромиссов)1968 – пересмотрен ALGOL60 (появился ALGOL68), закончилась его разработка.

И IFIP сталаработать над новым языкомОСMULTICS–идеииспользованияресурсовПКмногимипользователями(мультипрограммирование), хотели создать мощную, гибкую и универсальную систему, но онатакже как и NPL оказалась слишком сложной. В противовес MULTICS создали UNIX (КенТомпсон), где реализовали простые, но фундаментальные концепции (написана на Си).Название языку Си дал язык CPL (машинно-независимый ассемблер). CPL породил BCPL. Первуюверсию языка назвали B, потом уже Си.1969 – PASCAL, академический язык (на основе созданы Object Pascal, Delphi).

Паскаль отражалконцепцию структурного программирования.В 70-е годы стали появляться попытки создать осмысленные ЯП. Они стали создаваться болееконцептуально. Отметим язык CLU - язык абстракции данных, породивший идеи абстрактноготипа данных, которые применяются ныне почти во всех языках.1980 - Modula2, язык почему то не пошел, хотя был очень даже хорош (для системногопрограммирования) [Н.Вирт читал лекцию в П13 в 80м году] Авторское описание MODULA-2 занимает 40страниц.Ортогональность.

Если одна конструкция может появиться в одном месте, а другая – в другом,то первая может появиться во втором месте, а вторая в первом. Если конструкции К и Gортогональны, то они независимы.3) с начала 80х – современный этап• 1972 – SmallTalk, первый ООП• 1980 – Ада, прошел конкурс Пентагона (для написания встроенных систем реального времени,«стальные требования», код – «зеленый» язык), создан во Франции.

Окончательный стандартпринят в 1983, требовали не создавать диалектов, а только обновлять стандарт (каждые 10-12лет). Принципы критичных технологических потребностей и минимальности сложно соблюстиодновременно. В результате компиляторы с Ады получились сложными. Скорость компиляции 3строки в минуту.• 1988 – Оберон (последний язык Вирта), были подвергнуты ревизии все конструкции Модулы2,язык еще более упрошен, но добавлено наследование (type extension), 1993 – Оберон2,полностью ООП (появился аналог виртуальности в Си++)[lect4] Подробнее про современный этап развития ЯПСовременный этап развития ЯП проходит под знаменем Объектной Ориентации.Два основных подхода в проектировании языка - принцип сундука и принцип чемоданчика.• Принцип сундука - берем все что может пригодиться.• Принцип чемоданчика - берем только то, без чего нельзя обойтись.Язык Ада был спроектирован по принципу сундучка.

Modula2 - принцип минимальности языковыхконструкций (чемоданчик). (Пример: Разрешать ли вложенные модули? В ада это разрешено. Но без этогоможно программировать, и в Modula2 этого нету). Какой принцип лучше? В некотором роде минимальныеязыки - лучшие (например, си).Тезис Вирта - сложность языка программирования немедленно переносится на сложность соотв.программных систем.Знаковое событие – появление C++, а также стандарта ЯП Ада – 1983.В Аде появилось понятие исключения. Все еще есть люди, программирующие на Аде, но своей цели, заменывсех остальных языков, Ада не добилась.••1995 – новый вариант Ады (Ада 95) – появление черт ООП2005 – новый вариант Ады (Ада 2005).В этих версиях Ады поддерживалась максимальная совместимость снизу вверх.

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5224
Авторов
на СтудИзбе
426
Средний доход
с одного платного файла
Обучение Подробнее