Главная страница

Лекция № 1. История языков программирования. История языков программирования


Скачать 1.46 Mb.
НазваниеИстория языков программирования
Дата09.06.2022
Размер1.46 Mb.
Формат файлаpptx
Имя файлаЛекция № 1. История языков программирования.pptx
ТипПрограмма
#580085
История языков программирования
Язык программирования (ЯП) — формальный метод для записи компьютерных программ. Каждая такая программа — комбинация инструкций для вычислительной машины и данных, позволяющая выполнять расчеты и осуществлять управление. Естественные языки используются для общения людей между собой, а языки программирования предназначены для управления компьютером, то есть для выражения человеческих идей в понятном для компьютера виде. ЯП подчиняется той задаче, которая стоит перед компьютерной программой. Он зависит от оборудования, на котором выполняется алгоритм. Соответственно, практически для каждой задачи и каждого оборудования можно использовать наиболее подходящий ЯП. Вот почему языков программирования так много. С момента описания первого универсального программируемого устройства в 1835 году — им считается разностная машина Чарльза Бэббиджа — человечество создало более 8000 языков программирования. Конкретно для этой машины первую программу написала в 1842 году леди Ада Лавлейс, ее считают первым в мире программистом. К сожалению, саму машину не удалось полностью собрать при жизни создателя из-за несовершенства технологий и дотошности Бэббиджа. Машина считывает данные с перфокарт и использует паровой двигатель как источник энергии. Если бы механизм собрали по плану, то он стал бы первым в мире компьютером. Фрагмент разностной машины Чарльза Бэббиджа, собранный его сыном из деталей, найденных в лаборатории отца. Металлические шестерни выполняют математические операции.
Языки программирования вбирают в себя специфические черты конкретных сфер программирования — характерные структуры данных, типичные процессы и терминологию. Когда мы слышим о появлении нового языка программирования, может возникнуть мысль: еще один язык? Почему нельзя сделать один-единственный, стандартный язык программирования? Но нет, этого сделать нельзя. Наоборот, появление очередного языка — это свидетельство прогресса компьютерной науки. Значит, или компьютеру нашлось новое применение, или мы научились эффективнее выполнять старые задачи. Новый ЯП — доказательство достижений и новых возможностей самого мощного инструмента, который есть у человеческой цивилизации: компьютера. Языки программирования принято делить на пять поколений. В первое поколение входят языки, созданные в начале 50-х годов, когда первые компьютеры только появились на свет. Это был первый язык ассемблера, созданный по принципу «одна инструкция — одна строка». Физические принципы работы электронных устройств ЭВМ таковы, что компьютер может воспринимать команды, состоящие только из единиц и нулей — последовательность перепада напряжения, то есть машинный код. На начальной стадии развития ЭВМ человеку было необходимо составлять программы на языке, понятном компьютеру, в машинных кодах. Каждая команда состояла из кода операций и адресов операндов, выраженных в виде различных сочетаний единиц и нулей. Итак, любая программа для процессора выглядела на то время как последовательность единиц и нулей. Довольно скоро стало понятно, что процесс формирования машинного кода можно автоматизировать. Уже в 1950 году для записи программ начали применять мнемонический язык — язык assembly. Язык ассемблера позволил представить машинный код в более удобной для человека форме: для обозначения команд и объектов, над которыми эти команды выполняются, вместо двоичных кодов использовались буквы или сокращенные слова, которые отражали суть команды. Например, на языке ассемблера команда сложения двух чисел обозначается словом add, тогда как ее машинный код может быть таким: 000010. Ассемблер — язык программирования низкого уровня. Язык программирования низкого уровня — язык программирования, который ориентирован на конкретный тип процессора и учитывает его особенности. Появление языка ассемблера значительно облегчило жизнь программистов, так как теперь вместо рябящих в глазах нулей и единиц, они могли писать программу командами, состоящими из символов приближенных к обычному языку. Для того времени этот язык был новшеством и пользовался популярностью так как позволял писать программы небольшого размера, что при тех машинах критерий значительный. Середина 50-х гг. характеризуется стремительным прогрессом в области программирования. Роль программирования в машинных кодах стала уменьшаться, стали появляться языки программирования нового типа, выступающие в роли посредника между машинами и программистами. Наступило время второго и третьего поколений языков программирования. Язык программирования FORTRAN
Первый язык высокого уровня Фортран был создан в период с 1954 по 1957 год группой программистов под руководством Джона Бэкуса в корпорации IBM. Он предназначался для научных и технических расчетов. Название Fortran является сокращением от FORmula TRANslator (переводчик формул). Язык программирования ALGOL 69
Поскольку Фортран оказался столь успешным языком, в Европе возникли опасения, что IBM будет доминировать в компьютерной отрасли.
Алгол был разработан в 1958 году на недельной конференции в ETH (Цюрих, Швейцария) как универсальный язык программирования для широкого круга применений, а затем доработан комитетом, созданным Международной федерацией по обработке информации. Язык программирования LISP
Язык Лисп был предложен Дж. Маккарти в работе в 1960 году и ориентирован на разработку программ для решения задач не численного характера. Английское название этого языка — LISP является аббревиатурой выражения LISt Processing (обработка списков) и хорошо подчеркивает основную область его применения. Понятие «список» оказалось очень емким. Язык программирования COBOL
Кобол был разработан в 1959 году и предназначался прежде всего для написания программ для разработки бизнес приложений, а так же для работы в экономической сфере.
Спецификация языка была создана в 1959 году. Создатели языка ставили своей целью сделать его машинонезависимым и максимально приближенным к естественному английскому языку.
Язык программирования BASIC
BASIC – симбиоз FORTRAN II и ALGOL 60. Несмотря на большое количество ограничений, по сути он стал первым языком, позволившим обучать программированию на «взрослом» уровне. То есть сделать переход от теории к работе с Algol или Fortran быстрым и безболезненным. В истории влияние BASIC трудно переоценить. Без него, возможно, не было в современном виде никакого ПО, ведь и Microsoft, и Apple во многом обязаны именно этому языку и его ответвлениям. VB6 и Visual Basic .NET по-прежнему востребованы, причём не в обучении, а в создании полноценных приложений. Язык программирования Pascal
Так как BASIC достаточно долго шёл к мировой известности, многие учёные продолжали создавать образовательные языки. Никлаус Вирт руководствовался теми же идеями, что и Кемени с Курцем. Он хотел создать язык, пригодный для обучения информатике в школах и вузах, при этом он должен был работать на мини-ПК и быть походим на один из комитетских языков. Взяв за основу Algol, в 1972 году Вирт создал язык Pascal, названный в честь французского математика XVII века Блеза Паскаля.
Основная битва за доминирование между Pascal и BASIC развернётся в следующем десятилетии, и приведёт к созданию почти совершенных диалектов этих языков qBasic и Turbo Pascal.
В пользу BASIC была поддержка крупных корпораций. Он по умолчанию использовался на всех известных ПК. Однако здесь был и скрыт аргумент в пользу Pascal – скорость. При нехватке памяти ПК BASIC запускался через интерпретатор, который работает медленнее компилятора. Таким образом, возник миф, что Pascal быстрее, хотя непосредственно к языкам эта версия не имеет никакого отношения. Язык программирования C
Пока BASIC и Pascal боролись за умы начинающих программистов, многие корпорации были озабочены разработкой мощного универсального языка высокого уровня, который бы был производительнее и удобнее тех, над которыми трудились комитеты. Больше всего в этом преуспела компания Bell Labs – именно здесь увидели свет операционная система Unix и язык программирования C. Одним из недостатков существующих популярных компьютерных языков была их ограниченность.
Язык программирования Simula
Вне всяких сомнений, самой большой революцией 80-х годов стало появление объектно-ориентированных языков. Однако первопроходцем принято считать язык Simula, разработанный в 1967 году в Норвежском Вычислительном Центре тремя учёными – Оле-Йоханом Далем, Бьорном Мирхаугом и Кристен Нигаард. Чтобы понять отличие, рассмотрим пример, пусть будет автомобиль. В традиционных языках (Fortran, Algol, BASIC или Cobol) вам необходимо писать подпрограмму или модуль для каждого автомобиля, хотя все они будут более или менее одинаковыми. В Simula 67 был реализован иной подход – вы создаёте лишь один модуль, определяющий автомобиль как набор переменных, процедур и функций, а затем просто создаёте экземпляры с частными параметрами. Язык программирования Smalltalk
Smalltalk стал первым полноценным объектно-ориентированным языком и задал тренд на долгие годы. Кроме того, со Smalltalk связано ещё одно эпохальное событие. На этом языке была написана первая графическая среда. Однажды в Xerox Palo Alto зашёл Стив Джобс, восхитился этой разработкой и завербовал Ларри Теслера для создания LISA – предшественника первого Macintosh. Окна, иконки, мышь – всё это берёт начало здесь. Объекты и другие языки
Объектно-ориентированный подход стал настолько популярен в конце 80-х годов, что многие традиционные языки стали включать в себя этот подход. Бьёрн Страуструп из компании AT&T расширил возможности языка C и создал C++. Были и другие расширения, даже более удачные, но Страуструп обладал соответствующими полномочиями, потому именно его вклад в программирование оказался историческим. Другими значимыми расширениями существующих языков были ответвления Pascal - Microsoft и Borland. Хоть они и не были совместимы, в подходах они схожи. Fortran, Lisp и Forth тоже включили объектно-ориентированные расширения, но в сравнении с C++ это были незначительные доработки. Появились и новые языки, вроде Ada и Modula 2, которые включали некоторые аспекты объектно-ориентированного метода. Таким образом, к концу 1980-х годов практически каждый программист был знаком либо с Basic, либо с C++.
Логическое программирование
Самый успешный из логических языков — Prolog. Он основан на идее написания программ как набора логических операторов и использования перебора для автоматического определения результатов.
Турбо-языки
Turbo Pascal был первым из высокопроизводительных компиляторов нового поколения с простой средой разработки. Turbo Pascal прошёл путь от медленного и трудного в использовании интерпретатора до быстрого, интерактивного, адаптированного для всех машин компилятора, который приглянулся многим программистам. После успеха Turbo Pascal появились интегрированные среды Turbo C, Turbo BASIC и Turbo Prolog.
Последнее десятилетие XX века ознаменовалось появлением интернета (World Wide Web) в его привычном глобальном виде. Если ранее языки и идеи программирования распространялись через отдельные дистрибутивы или журналы, то теперь появился мощный канал обмена информацией, доступный каждому. Таким образом, любой язык программирования, даже созданный школьником на уголке планеты, мог стать международным хитом. Язык программирования Python
Basic и Pascal были искусственно ограничены в угоду массовости. Для сложных вычислений, моделирования и построения графиков программисту требовалось использовать сторонние библиотеки, а чаще создавать свои. Это порождало массу сложностей, куда проще было освоить ещё один язык. Кроме того, Pascal и Basic уже сильно устарели в плане синтаксиса Язык программирования Visual Basic
Ещё одно подтверждение этому – появление в 1991 году очередной ветви популярного языка – Visual Basic. VB был направлен на работу с графическим интерфейсом Microsoft Windows. «Оконная» ОС уже тогда была одним из лидеров рынка, и за возможность создавать приложения зацепилось огромное количество простых пользователей. Несмотря на то, что первые версии VB не отличались функциональностью и качеством сборки, язык получил большую популярность. Пожалуй, главный вклад 1990-х в современный мир состоит в появлении двух невероятно мощных и схожих языков – Java и C#. Java появился хронологически раньше. Язык стремился решить насущную проблему – создание такого кода, который бы мог работать на любой платформе. Реализация стала возможна благодаря трансляции в байт-код с использованием виртуальной машины. Синтаксис Java был схож с популярными языками, в том числе C++, но функциональность была расширена до полноценных возможностей ООП.
Язык программирования HTML
Существующие языки программирования для веба были слишком «тяжёлыми», всё-таки скорость соединений в начале 90-х оставляла желать лучшего. Поэтому в качестве стандарта WWW выступала технология гипертекста. Базовым языком стал HTML, разработка которого велась ещё с 1986 года. Несмотря на то, что он не является Тьюринг-полным, то есть не может быть причислен к разряду языков программирования, переоценить вклад HTML в современный IT-мир трудно. Язык программирования CSS
К середине десятилетия выросло количество серверов, сайтов, соответственно, увеличился объем трафика. Для того, чтобы уменьшить количество кода и привести страницы к общему логическому знаменателю, веб-разработчики стали использовать язык CSS. С его помощью можно было задавать цвета, формат шрифта, верстать страницы и логически их разделять, используя единый шаблон для всего сайта. Это не только уменьшило количество кода, но и значительно повысило надёжность. Язык программирования Perl
Альтернативой специализированным языкам являлся Perl – язык общего назначения для работы с текстом. Он заимствовал синтаксис и механизмы из других популярных языков, в том числе С и awk, но благодаря ориентации никогда не был им конкурентом. Когда речь зашла о поиске подходящего инструмента для интерфейсного обслуживания интернета, Perl стал одним из главных вариантов. Язык программирования PHP
Он же лёг в основу истории создания важнейшего языка современной «паутины» – PHP. Именно Perl использовал Расмус Лердорф, программист из Дании, создавая скрипты для обработки статистики онлайн-резюме. Он дал им название Personal Home Page. Позднее Расмус понял, что возможностей Perl ему не хватает, разработал на С новый интерпретатор шаблонов, который и получил название PHP. Язык программирования Ruby
Еще одной альтернативной ветвью развития Perl стал Ruby – динамический высокоуровневый язык с полноценной реализацией ООП. Юкихиро Мацумото хотел реализовать ту же идею доступности, что существовала в Python, при этом сохранив «дух» Smalltalk и Perl. Язык программирования JavaScript
Но, пожалуй, главную революцию совершил язык JavaScript. Он также изначально замышлялся как скриптовая замена С для обработки макросов. Но, благодаря многочисленным стечениям обстоятельств и удачной интеграции в HTML-коды, JavaScript вызвал бурный интерес у большинства разработчиков. Конец 90-х и начало 2000-х в вебе запомнились огромным количеством веб-страниц, перенасыщенных JS-скриптами. Язык программирования C#
Компания Microsoft в конце 90-х приступила к разработке C#, который должен был оспорить господство Java. Новый язык был представлен в 2000 году, но увидел свет только в 2002. Причина задержки заключалась не только в желании победить все «болячки» Java, но и в меняющихся тенденциях на рынке IT. Прежде в Microsoft ориентировались на создание десктопных приложений для Windows, но поняли, что это путь в никуда. Требовалась новая программная платформа, которая бы замкнула на себе множество языков, а также позволила работать с вебом, мобильными и стационарными устройствами. Так появилась .NET, представленная вместе с C# в 2000 году. Язык программирования Go
В 2008 году редактор журнала Nature Клиффорд Линч ввел понятие «большие данные». Этот термин он использовал при анализе растущего объема информации, поступающей в сервисы и социальные сети. Ведущие компании столкнулись с проблемой: необходимо было придумывать новые методы обработки и хранения данных, чтобы отвечать потребностям общества. Частично это решалось функциональным программированием, но требовались и новые специализированные языки. Компания Google нашла выход в использовании нейронных сетей и языка для обработки данных - Go. Язык программирования Java
Аппараты Android работали, опираясь на язык Java, и с первого дня существования системы пользователи могли писать под нее приложения. Почти все базовые приложения Android — результат международного конкурса разработчиков, который устроил Google за год до официального запуска платформы. Язык программирования Objective-C
В Apple избрали другой путь — использовать собственные наработки. Objective-C был создан в 80-х как одно из множества ответвлений языка С. Возможно, он так и канул бы в ХХ веке, если бы не приглянулся разработчикам компании NeXT и операционной системы NEXTSTEP. Компьютер NeXTcube собрал массу положительных отзывов, но не получил распространения из-за высокой стоимости проекта. Язык программирования Rust
Язык С++ уже более 30 лет успешно существует в мире программирования, позволяя решать широкий спектр задач — особенно там, где требуется высокая производительность при ограниченных ресурсах. Заменить его пытаются уже давно, но упрощение синтаксиса и определенных конструкций (в частности, работы с памятью) неизбежно снижает скорость исполнения, а значит теряется главная прелесть. В этом плане язык Rust, официально представленный компанией Mozilla в 2010 году, подобрался к успеху ближе всего. Язык программирования Swift
Swift пришел на смену Objective-C. По выходной производительности приложений эти два языка схожи, но если брать трудозатраты разработчика, Swift демонстрирует серьезное превосходство. В Apple при этом не стали форсировать события и принуждать всех переходить на новые методы разработки. Но — чтобы вы понимали эффект — согласно статистике портала TIOBE, всего за год после выхода Swift количество запросов «Objective-C» в популярных поисковиках снизилось почти в 10 раз. Сегодня востребованность языков уже сопоставима. Язык программирования Dart
Впервые Dart появился в 2011 году — в Google на него возлагали большие надежды, активно развивали, продвигали в массы. Основными «фишками» языка должны были стать не только упрощенный синтаксис и повышенная надежность программ, но и варианты запуска: с компиляцией в JavaScript-код и без нее (прямая работа с браузером Chromium). Но в итоге оказалось, что этого недостаточно, чтобы заставить разработчиков массово отказываться от JavaScript. В результате в Google в 2016-м заморозили все работы по проекту, а в феврале этого года неожиданно громыхнули с выходом Dart 2. Язык программирования Hack
Про язык Hack пока вообще не стоит говорить как о преемнике PHP. В Facebook он был разработан для решения частных проблем, связанных с большими данными. Hack «понимает» код, написанный на PHP, а значит формально не вынуждает разработчиков делать выбор. Учитывая перечень решаемых задач и частоту апгрейдов языка, Hack скорее сам исчезнет из мира программирования, чем обгонит по популярности PHP. Язык программирования Kotlin
В некотором роде схожая судьба выпала Kotlin — продукту компании JetBrains и идеологическому конкуренту Java. В сравнении с оригиналом, здесь улучшен синтаксис и повышена безопасность выходного кода. Не стоит забывать и об официальной поддержке популярных IDE: IntelliJ IDEA и Android Studio. В результате у языка немало поклонников, но среди них практически нет тех, кто бы отказался от Java в пользу Kotlin. Возможно, стоит подождать. Топ языков программирования 2020 tiobe


написать администратору сайта