Популярные услуги

Все письменные КМ под ключ за 3 суток! (КМ-6 + КМ-7 + КМ-8 + КМ-9 + КМ-10)
КМ-6. Динамические массивы. Семинар - выполню любой вариант!
КМ-2. Разработка простейших консольных программ с использованием ООП + КМ-4. Более сложные элементы ООП - под ключ!
Любая задача на C/C++
Одно любое задание в mYsql
Сделаю ваше задание: Лабораторная работа на Pascal / Lazarus
Любой тест по базам данных максимально быстро на хорошую оценку - или верну деньги!
Любой реферат по объектно-ориентированному программированию (ООП)
Повышение уникальности твоей работе
Оба семинара по программированию под ключ! КМ-2. Разработка циклических алгоритмов + КМ-3. Функции и многофайловые программы в Си

Лекция 1

2021-03-09СтудИзба

            Лекция 1

В программе курса мы будем ссылаться на такие языки программирования (далее ЯП) как:

  • С++;
  • Delphi, хотя на самом деле это не ЯП, а система программирования на языке Object Pascal, который, вообще говоря, появился раньше Turbo Pascal;
  • Java, который по виду близок к C++, но идейно гораздо ближе к Delphi;
  • C#, последние 3 ЯП очень похожи и как бы составляют одно семейство, чем они обязаны Андерсу Хельсбергу (здесь и далее авторы электронного варианта лекций приносят свои извинения за возможные орфографические ошибки в упоминаемых фамилиях), который в той или иной мере участвовал в их разработке;
  • Ada 83, как первый стандарт языка Ada и Ada 95, как одну из последних версий;
  • Модула 2, но в программе этого года данного ЯП почти не будет;
  • Оберон (2), под (2) подразумевается вторая версия.

Далее будет перечислена краткая программа этого курса:

1. Введение

2. Традиционные (до 1980 года) языки программирования, основные концепции

2.1. Модульность

2.2. Раздельная трансляция

2.3. Абстрактные типы данных

Рекомендуемые материалы

3. Объектно-ориентированные языки

3.1. Наследование

3.2. Динамический полиморфизм

4. Другие парадигмы ЯП

4.1. Функциональные

4.2. Логические

Введение

  1. Определение ЯП
  2. Исторический очерк ЯП
  3. Концептуальная схема рассмотрения ЯП

1.Определения бывают двух типов - интенсиональные и экстенсиональные. Последние получаются путём перечисления всех представителей (например, С++, Паскаль – это ЯП, а английский язык – это не ЯП). Но возникает вопрос: как определить нижнюю и верхнюю границы этого перечисления для ЯП. Любой из Вас легко сможет назвать хотя бы с десяток ЯП, так что можно сказать что их, по крайней мере, десятки. На самом деле языков программирования в самом общем их смысле десятки или даже сотни тысяч, так как практически каждый программист по молодости пытается написать свой собственный ЯП. Но серьёзных разработок несколько тысяч.

            Для примера многообразия приведём лишь несколько чисел: первым ЯП был Fortran (1954-1957), а в 1967 году вышла книга американского автора с обзором ЯП, где было перечислено более 400 использующихся языков. А ещё через 10 лет их было уже более тысячи.

            Большие деньги в начале 70-х уходили на программное обеспечение, хотя цена компьютеров тех лет исчислялась сотнями тысяч долларов, а основным поставщиком заказов был Пентагон.


            Сопровождение программного обеспечения проводится для продолжения работы программного продукта уже после его продажи. При этом продукт приходится переписывать из-за замены техники или интерфейсов, а так же по причине обнаружения ошибок. Следовательно, было необходимо минимизировать время на сопровождение и поиск ошибок.

            К тому же, только в Пентагоне в середине 70-х писали на 350 ЯП (активно использовали только около 10, например, Tacpol).

            Дадим интенсивное определение: ЯП – это инструмент планирования поведения исполнителя. Причём некоторые ЯП получились вследствие сторонних проектов: язык APL изначально разрабатывался как математическая нотация алгоритмов для человека, а в результате мы получили один из первых интерактивных ЯП. А язык Planner, созданный для описания баз знаний (в области искусственного интеллекта), не планировался для реализации, но был реализован (под именем Плэнер) одним из аспирантов нашего факультета (Владимиром Николаевичем Пильщиковым) для машины БЕСМ-6. С точки зрения этого определения HTML – тоже ЯП, так как с его помощью производится планирования размещения текста для браузера.

            2.Исторический очерк (1954 - 2000):

                        1)1954 – 1960 годы: Эмбриональный период;

                        2)1960 – 1980 годы: Период экспоненциального роста:

                        3)1980 – 2000 годы: Период стабилизации.

            Но мы видим, что новые языки продолжают появляться и это свидетельствует о том, что до сих пор так и не был создан идеальный ЯП.

            1)1954 – 1957: Fortran, что расшифровывалось как «транслятор формул» (For. Tran.). До этого использовалась следующая модель: сначала разрабатывалась математическая модель, которая описывалась в виде блок-схемы:


После чего программист уже писал программу в машинных кодах. При этом единственным способом отлавливания ошибок был 8- или 16-ричный dump памяти.

            А с появлением Fortran’a сам физик или математик мог написать интуитивно понятное выражение вида: A = B+C*exp(C*K). Общий вид формул был V = e. Fortran содержал:

  • Выражения;
  • Оператор присваивания;
  • Переменные;
  • Управляющие операторы (IF, goto, …);
  • Средства ввода-вывода.

Поначалу в его разработку не верили, но он был успешно завершён и около 20 лет оставался основным ЯП. И это притом, что он был ужасно написан. Что, возможно, послужило причиной взрыва американской ракеты к Венере в 1964 году. В тексте программы был цикл от 1 до 3 по метке «5» вида:

            DO 5 I = 1,3

            …

            5 CONTINUE

Но при написании была допущена орфографическая ошибка и в первой строчке вместо «,» была «.», а средства языка не производят проверки на такие семантические ошибки и просто трактовали этот кусок кода не так, как задумывалось авторами. Но до сих пор Fortran – это любимый язык математиков. Он плохой, но удобный, и многим этого хватает. Всё дело в том, что перед этим проектом стояли чёткие цели и они были полностью реализованы. Чем проще процесс написания программ, тем больше программистов.

            Ещё одним плюсом этого языка была мобильность (переносимость или portability). Под мобильностью ЯП подразумевается как переносимость программ (программы в машинных кодах совершенно не мобильны), так и то, что программист уже не зависит от компьютерной системы, на которой он освоил этот язык. Так как Fortran легко переносился на другие системы, то человек, переходя на них, переносил и свои знания. Поэтому этот второй смысл слова portability обычно называют «мобильность знаний». Есть общее правило, что программист пишет в среднем с одинаковой скоростью в строках в любой ЯП, поэтому чем более развитыми встроенными средствами обладает язык, тем больше производительность работающих на нём. После Fortran’a (продукт фирмы IBM) все стали выпускать свои языки.

            1959 – 1961: LISP (символьная обработка), появился в Университете;

                        1960: Алгол 60, был разработан научным комитетом;

1959: COBOL, был разработан по заказу правительства для вопросов связанных с обработкой больших объёмов данных (в основном в сфере бизнеса) и все компьютеры, которые закупались по заказу правительства обязательно оснащались этим языком.

                        Алгол 60 был первым языком, синтаксис которого был описан формально, и, как следствие, после его появления было проделано много теоретических работ по формальному описанию языков. Алгол 60 разрабатывался как язык для записи алгоритмов. У него не было особых ляпов, но он так и не стал индустриальным ЯП, так как в нём не было модульности, раздельной компиляции и стандарта ввода-вывода. К тому же он был очень не эффективен. Под эффективностью языка понимается среднее отношение размера программы на ассемблере к размеру этой же программы, написанной на данном языке, но оттранслированной в ассемблер. Очевидно, что это отношение всегда больше или равно 1. Для Fortran’a этот показатель составлял 1.04, а для Алгола 60 варьировался от 7 до 10.

            В это время появлялось огромное количество специализированных ЯП, в основном для нужд ВПК. Например, для системы американской противоракетной обороны был создан язык Jovial, а для их первой космической станции – HAL. Но такие языки, естественно, не получили широкого распространения.

            2)99% языков этого периода уже забыты…

            1964 – PL|I («ПиЭль один» фирмы IBM). Его выход был приурочен к появлению новой серии IBM 360 (360 – градусов в круге, в том смысле, что создатели этой серии надеялись покрыть все возможные применения компьютеров), и по задумке разработчиков этот язык должен был заменить собой Assembler, Fortran, Cobol. Это была первая попытка написать универсальный ЯП. Он был сделан по следующему принципу: создатели видели что-то полезное в Fortran’e, Алголе или Cobol’e и тут же пытались реализовать это в PL|I, и ещё добавили что-то своё. Получился язык-монстр, где для каждого, отдельно взятого, программиста было порядка 80% лишних возможностей. На поддержку PL|I затратили миллиарды долларов. В итоге, он умер вместе с системами того времени.

            1968 – Алгол 68, который так же был создан коллективом учёных, но уже другим (IFIP). Они хотели создать по-настоящему мощный и красивый ЯП. Вследствие чего в нём содержалось мало конструкций, но они были ортогональны, то есть полностью независимы. В том смысле, что если язык допускает конструкцию вида e(e1), то на месте e1 может быть всё, что угодно, то есть вместо переменной может быть любое выражение или оператор и обратно (В Си если «e» – это выражение, то «e;» - это уже оператор). Так же была формально описана семантика этого языка при помощи W-грамматик, но они были настолько сложны, что простому программисту разобраться в них не представлялось возможным. В мире существует всего несколько реализаций этого языка, что обусловлено его сложностью. Чрезвычайно сложно написать компилятор Алгола 68 и при этом производительность осталась на уровне 7-10.

Информация в лекции "Биохимия мышечной ткани" поможет Вам.

            Ещё в процессе разработки данной версии Алгола часть учёных (Вирт, Дейкстра, Хоар) вышла из IFIP и письменно обратилась с просьбой не включать свои имена в авторы этого проекта.

            В 1967 году появилась операционная система (ОС) MULTICS, которая разрабатывалась как супер-операционка, чем была похожа на Алгол 68. Аналогично, в процессе её разработки часть людей отказалась от авторства из-за неоправданной сложность системы. Среди них был Кен Томпсон, который впоследствии создал новую систему программирования и назвал её UNIX (в противовес MULTICS – «много»). Основная концепция UNIX’a была «как можно проще».

            Вирт, Дейкстра и Хоар создали новое научное направление – «структурное (структурированное) программирование», на основных принципах которого Вирт создал язык Pascal, который был чрезвычайно прост. Основной целью создания этого языка он поставил необходимость наличия простого языка (а не универсального), на котором студенты могли бы получать навыки программирования, и который можно объяснить логически.

            А на основе UNIX – язык Си (изначально появился язык B, потом C, а основой был BCPL), как высокоуровневая замена Assembler’a.

            На основе Алгола 60 был реализован язык Симула 67 для целей имитационного моделирования. В нём впервые появилось понятие «класса». Но этот язык был неэффективен, а молодой Страустер придумал Си с классами (С++).

            1972 – Smalltalk 72, язык, который изначально разрабатывался учёными для обучения детей, чтобы изучать их психологию. Именно он служит первым претендентом на звание первого объектно-ориентированного (ОО) ЯП, так как вся последующая терминология ОО подхода пошла именно оттуда. И 20 лет ООЯП почти не использовались из-за неэффективных реализаций. В итоге, ОО программирование получило широкое распространение только после выхода Object Pascal и C++.

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