История развития языков программирования: кратко обо всем. Один из языков программирования


Изучите любой из этих 16 языков программирования

Существует мнение, что современный мир "питается" программным обеспечением. На сегодняшний день насчитывается более тысячи разных языков программирования. Некоторые из них более популярны, другие используются только в конкретных направлениях.

В поисках новых талантливых программистов крупные компании-разработчики готовы работать со специалистами, не только владеющими навыками работы с давно известными языками, такими как Java, Visual Basic или Delphi, но и готовыми изучать новые продукты наподобие Apple Swift или Google Go.

Ниже перечислены самые востребованные языки программирования по версии индекса TIOBE, рейтинга Redmonk Language Rankings и ежегодного обзора разработчиков Stack Overflow.

Java

Этот язык программирования, созданный в 1991 году для смарт-телевидения, до сих пор остается одним из самых популярных в мире. Это объясняется тем фактом, что на Java пишется подавляющее большинство приложений для операционной системы Android, а также для программного обеспечения, используемого в банковских учреждениях.

С

Являясь одним из наиболее старых языков программирования, С, созданный еще в начале 70-х годов прошлого столетия, до сих пор остается широко востребованным. Не проходит популярность и полного руководства - 800-страничной книги под названием "Язык программирования С", первое издание которого было опубликовано еще в 1978 году.

Python

Этот программный продукт, разработанный в 1989 году, до сих пор популярен благодаря своему легко читаемому коду. Существует мнение, что Python идеально подходит для начального обучения азов программирования.

PHP

Для программистов, хорошо владеющих языком PHP, работа найдется всегда. Более трети всех интернет-ресурсов, включая WordPress, Facebook и Yahoo, используют его в своей работе. В то же время многие программисты буквально ненавидят этот продукт. По словам основателя Stack Overflow Джеффа Атвуда, PHP является не столько языком программирования, сколько случайным набором произвольных команд.

Visual Basic

Первая версия продукта Microsoft Visual Basic, а также его преемник Visual Basic.NET, отличается от других языков графическим элементом, позволяющим менять местами части программного кода путем их перетаскивания. Несмотря на то что он уже относительно устарел, Visual Basic до сих пор имеет своих поклонников.

JavaScript

Один из самых популярных языков программирования в мире. Используется в основном в различных веб-приложениях. Несмотря на свое имя, продукт не имеет ничего общего с Java. JavaScript применяется во многих браузерах, но иногда его использование иногда замедляет их работу, а также делает пользователей более уязвимыми к внешнему вмешательству.

R

Этот язык создан специально для создания программ, применяемых в статистике и при анализе различных данных. Широко используется компанией Google.

Google Go

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

Ruby

По своей популярности у разработчиков Ruby практически не уступает Python. Язык программирования очень легко писать и читать, а наличие надстройки Rails делает его очень удобным для создателей различных веб-приложений. Неудивительно, что официальный девиз Ruby - "Лучший друг программиста".

Groovy

Созданный в 2007 году для облегчения и ускорения создания больших программных кодов, Groovy практически сразу стал очень популярным языком. Поскольку он прекрасно сочетается с кодами Java, это позволило ему стать востребованным у таких больших компаний, как IBM, Google и Target.

Objective-C

После ошеломительного успеха оригинального языка программирования С появилось много новых его версий. Все они базировались на первоначальном варианте продукта, но оснащались функциями, взятыми с другого программного обеспечения. В последнее время популярность Objective-C постепенно падает из-за быстро развивающегося языка Swift, разработанного компанией Apple.

Perl

Разработанный в конце 1980-х годов одним из инженеров НАСА, Perl очень понравился разработчикам своей гибкостью и мощностью. Он даже получил прозвище "клейкая лента в Интернете", так как мог связывать в единое целое несколько веб-сайтов. Единственным недостатком Perl являлось то, что программирование на нем представляло собой довольно сложный процесс даже для опытных разработчиков.

Pascal

Этот язык программирования был назван в честь знаменитого математика и философа Блеза Паскаля. Pascal сыграл очень важную роль в написании программных кодов для компьютеров Apple Macintosh. Чуть позже он превратился в так называемый Object Pascal. Он до сих пор используется как в учебных целях, так и для создания серьезных кодов и приложений.

Delphi Object Pascal

Созданный разработчиками компании Apple в 1986 году, он изначально предназначался для помощи программистам в подключении к базам данных Oracle. Однако и сейчас Delphi широко используется для создания различных приложений для смартфонов.

Apple Swift

Этот "молодой" язык программирования с каждым днем становится все более популярным, постепенно вытесняя таких "монстров", как Objective-C или Java. С его помощью очень легко создавать приложения для iPhone. После проявления к Apple Swift интереса со стороны IBM специалисты по работе с этим языком программирования стали очень востребованными по всему миру.

MATLAB

Этот продукт было создан как математический язык программирования в целях решать сложные вычислительные и логические задачи, а также обрабатывать изображения. MATLAB до сих пор популярен у инженеров и ученых, разрабатывающих приложения искусственного интеллекта.

fb.ru

Программирование, языки программирования, история языков программирования

Внимание! Данный сайт не обновляется. Новая версия: shatalov.su

Дата создания: 2012-05-03 13:20:26Последний раз редактировалось: 2012-05-03 13:23:50

Сегодня мы узнаем, что такое язык программирования, для чего нужны языки программирования и в чём заключается работа программиста. Но сначала немного истории.

История языков программирования

Давным давно, когда компьютеры были большими, вычислительные устройства могли выполнять только какие-то определённые действия. Быстро выяснилось, что такое использование вычислительных устройств нерационально. Т.е. требовалось, чтобы одно и то же устройство могло выполнять разные вычисления - чтобы оно было программируемым.

Для процессора любая программа - это просто последовательные перепады напряжения. Умные инженеры придали этим перепадам числовые значения.

Для простоты на данный момент учитываются только два состояния - есть напряжение или его нет. Первому состоянию соответствует число один (1), второму - число ноль (0), хотя бывает и наоборот. В 40-х годах были попытки использовать больше состояний - 10 (чтобы было удобно считать человеку), но от этого быстро отказались из-за сложности подобных схем.

Итак, любая программа для процессора выглядит вот так:

01011000101101011000110101011100000101010111101001010101111100000101001001010100101010010101

Инженерам приходилось писать и читать такие программы.

В начале 50-х появляется ассемблер. Это язык программирования низкого уровня. Программа на ассемблере выглядит намного понятнее. В ассемблере команды соответствуют инструкциям процессора. Когда программист написал программу на ассемблере, он запускает специальную одноимённую программу, которая переводит команды ассемблера в нули и единицы.

Важно помнить, что команды ассемблера соответствуют инструкциям процессора. Это влечёт два следствия: для каждого типа процессора существует свой ассемблер и программа, написанная на ассемблере, слишком подробна для человека (так как состоит из инструкций процессора).

В 1957 году был придуман первый язык программирования высокого уровня - Fortran (Formula Translation). Создателем языка был Джон Бэкус, а сам язык использовался в IBM 704. В то время ещё не существовало удобных устройст ввода/вывода и для этих целей использовали перфокарты. Первоначально Фортран мог обрабатывать только числа (обработка текста появилась позднее).

Давайте посмотрим на картинку. Я немного неверно нарисовал связи, и соотношения времени показано не совсем правильно, но суть, думаю, ясна.

Нас интересует ветка, которая привела к С++. Предками языка C были ALGOL-60 (Algorithmic Language) - 1960 и PL-1 (Programming Language) - 1966. ALGOL был первым языком программирования, реализованным в нашей стране.

Язык C (1970) (читается как си) был побочным продуктом создания операционной системы UNIX (1971) в BellLabs. Создателем C был Деннис Ритчи. А сам язык (как и операционная система UNIX) впервые использовался в компьютерах PDP-11.

C++ был создан в 1983г. Бъярном Страуструпом и расширял язык C (добавлял в него возможности ООП - подробности мы узнаем позже).

Далее, кратко пройдусь по другим языкам:COBOL (Common Business Oriented Language) – 1960. Язык для обработки в основном текстовой информации.Pascal (1970) был создан талантивым человеком - Никлаусом Виртом, который участвовал в создании многих других языков. К сожалению, ему не сильно везло. В 1995г. была выпущена интегрированная среда для потомка Pascal'а - Delphi.Симула-67 – впервые реализованы концепции объектно-ориентированного программирования (ООП). Симула была создана в Норвегии и во многом являлась потомком ALGOL-60. Развитие ООП привело к созданию Smalltalk в 1972г.Особняком стоит язык Forth (1977), созданный Чарльзом Муром. Единственный язык высокого уровня, для которого есть реализация процессора (т.е. командами процессора являются команды языка Forth).

Концепции программирования

Параллельно с развитием старых и появлением новых языков программирования, накапливался опыт использования языков. Постепенно рождались разные концепции, которые отвечали на вопрос: как следует программировать.

Основными концепциями мы будем считать две: структурное программирование и объектно-ориентированное. Они появились примерно в одно время (60-е годы). Мы ещё обсудим эти концепции подробно в следующих уроках.

Теперь нам необходимо ответить на несколько вопросов касательно программирования:

Что такое "программа"?

Программа - это инструкция компьютеру (процессору) что-то сделать. При этом разные программы решают разные задачи.

Что должен уметь делать программист?

Задача программиста - написание исходного кода программ. При этом программист использует какой-то язык программирования.

Исходный код - это просто текст (на определённом языке программирования). Чтобы исходный текст превратился в рабочуй программу требуется перевести его на ассемблер. Этим занимаются специальные программы: интерпретаторы и компиляторы. Для каждого языка (и под каждую операционную систему) нужен свой компилятор (или интерпретатор).

Языки программирования

Любой язык программирования обладает определёнными правилами. Программа, написанная на каком-то языке, должна удовлетворять правилам этого языка. Правильность программы проверяет компилятор (интерпретатор).

Выполнение программ

Выполнение программы выглядит так:- Берётся исходный код на определённом языке высокого уровня.- Исходный код переводится на ассемблер (в двоичную форму из текстовой) посредством компиляции/интерпретации. На этом этапе проверяется правильность написанной программы.- Операционная система выполняет программу - даёт задание процессору.

Также программу можно представить в виде уровней:- Исходный код (текст) на языке высокого уровня.- Компиляция/интерпретация.- Язык ассемблера (программа превратилась в нули и единицы).- Инструкции процессора.- Взаимодействие физических элементов (полупроводников) посредством электричества.

Заключение

На этому мы закончим наше краткое знакомство с языками программирования. В дальнейших уроках мы узнаем что общего есть у языков высокого уровня. А общего у них много, так как в конце концов программа на любом из языков обязательно будет представлена инструкциями процессора.

oldshatalov.ghost17.ru

История развития языков программирования: кратко обо всем

Программирование – трудоемкий и сложный процесс, постичь который под силу не каждому. Машинный язык состоит из множества алгоритмов и машинных кодов. И сегодняшние компьютеры являются таким совершенным оборудованием благодаря тому, что запрограммированы. И не была бы так успешна история развития программного обеспечения, если бы не был придуман специальный язык для машин, переводящих символические ключевые слова в машинные коды. Рассмотрим, как же складывалась история развития языков программирования.

Первые автокоды появились в 1955 году усилиями разработчиков компании IBM под руководством инженера Джона Бэкуса.  Это был язык высокого уровня, названный Фортран, не набор разрозненных простых команд, а организация более крупных кодов, которые стали называться операторами, или же алгоритмическими языками. Для их перевода на машинный  автокод были изобретены трансляторы, которые преобразуют алгоритмы и делают его понятным для электронно-вычислительной машины. Происходит это двумя способами: интерпретационным и компиляционным. Благодаря простоте версии Фортран быстро входили в употребление, и последняя из них и сегодня является одной из самых популярных языков программирования ЭВМ.

Однако, это не единственный автокод для машин. История  развития языков программирования продолжается созданием алгоритмов Алгол, которые применяются в основном в ученой среде и имеют в составе большое количество новых понятий. Происходит это событие в 1960 году. А чуть позже пытливые сотрудники компании IBM придумали язык Кобол, ориентированный на использование в бизнес среде и используемый для обработки сложной и объемной  информации экономического характера.

История  развития языков программирования продолжается профессорами колледжа в Дартсмуте Т. Куртцем и Дж. Кемени, которые разработали общеизвестный Бейсик. Он намного проще, чем Фортран, и поэтому использовался в персональных компьютерах. Он произвел эффект взрыва, став основным набором автокодов программирования, и сделав компьютеры достоянием самых обычных пользователей.

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

Сегодня ученые продолжают работать над его усовершенствованием и стараются приблизить к программе Паскаль, которым далее ознаменовалась  история развития языков программирования. Его создателем, по праву, считается профессор Цюрихского политехнического университета Никлаус Вирт. А название своему изобретению он дал в честь Паскаля, являющегося первым конструктором самой первой вычислительной машины. Это один из самых легких и доступных программных языков, позволяющий писать ясные и понятные программы.

История  развития программирования  была бы неполной без языка Ада, названного в честь первой женщины программистки Ады Лавлейс, дочери всем известного пота Джорджа Байрона. Он представляет собой более усовершенствованный и универсальный язык программирования, составленный на основе Паскаль.

История  развития программного обеспечения имеет в своем арсенале еще много программных языков, которые написаны для специальных областей применения. Например, в моделировании применяются Симул, Симкрит и GPSS. Для  управления аппаратурой используется язык ФОРТ. Системные программы пишутся языком СИ. Базы данных создаются языком Кодасил. Для обучения программированию удобны Лого, Робик и алгоритмический язык А.П. Ершова.

История  развития программирования до конца еще не написана и вряд ли это произойдет в ближайшем будущем.

fb.ru

Язык программирования Википедия

Язык программи́рования — формальный язык, предназначенный для записи компьютерных программ[1][2]. Язык программирования определяет набор лексических, синтаксических и семантических правил, определяющих внешний вид программы и действия, которые выполнит исполнитель (обычно — ЭВМ) под её управлением.

Со времени создания первых программируемых машин человечество придумало более восьми тысяч языков программирования (включая эзотерические, визуальные и игрушечные) [3]. Каждый год их число увеличивается. Некоторыми языками умеет пользоваться только небольшое число их собственных разработчиков, другие становятся известны миллионам людей. Профессиональные программисты могут владеть десятком и более разных языков программирования.

Язык программирования предназначен для написания компьютерных программ, которые представляют собой набор правил, позволяющих компьютеру выполнить тот или иной вычислительный процесс, организовать управление различными объектами, и т. п. Язык программирования отличается от естественных языков тем, что предназначен для управления ЭВМ, в то время как естественные языки используются, прежде всего, для общения людей между собой. Большинство языков программирования использует специальные конструкции для определения и манипулирования структурами данных и управления процессом вычислений.

Как правило, язык программирования определяется не только через спецификации стандарта языка, формально определяющие его синтаксис и семантику [⇨], но и через воплощения (реализации) стандарта — программные средства, обеспечивающих трансляцию или интерпретацию программ на этом языке [⇨]; такие программные средства различаются по производителю, марке и варианту (версии), времени выпуска, полноте воплощения стандарта, дополнительным возможностям; могут иметь определённые ошибки или особенности воплощения, влияющие на практику использования языка или даже на его стандарт.

История[ | код]

Ранние этапы развития[ | код]

Можно сказать, что первые языки программирования возникали ещё до появления современных электронных вычислительных машин:

ru-wiki.ru

История языков программирования — WiKi

Машинные коды и Ассемблер

Физические принципы работы электронных устройств ЭВМ таковы, что компьютер может воспринимать команды, состоящие только из единиц и нулей — последовательность перепада напряжения, то есть машинный код. На начальной стадии развития ЭВМ человеку было необходимо составлять программы на языке, понятном компьютеру, в машинных кодах. Каждая команда состояла из кода операций и адресов операндов, выраженных в виде различных сочетаний единиц и нулей. Итак, любая программа для процессора выглядела на то время как последовательность единиц и нулей.

Как показала в дальнейшем практика общения с компьютером, такой язык громоздок и неудобен. При пользовании им легко допустить ошибку, записав не в той последовательности 1 или 0. Программу очень трудно контролировать. Кроме того, при программировании в машинных кодах надо хорошо знать внутреннюю структуру ЭВМ, принцип работы каждого блока. И самое плохое в таком языке, что программы на данном языке — очень длинные последовательности единиц и нулей являются машинно зависимыми, то есть для каждой ЭВМ необходимо было составлять свою программу, а так же программирование в машинных кодах требует от программиста много времени, труда, повышенного внимания.

Довольно скоро стало понятно, что процесс формирования машинного кода можно автоматизировать. Уже в 1950 году для записи программ начали применять мнемонический язык — язык assembly. Язык ассемблера позволил представить машинный код в более удобной для человека форме: для обозначения команд и объектов, над которыми эти команды выполняются, вместо двоичных кодов использовались буквы или сокращенные слова, которые отражали суть команды. Например, на языке ассемблера команда сложения двух чисел обозначается словом add, тогда как ее машинный код может быть таким: 000010.

Ассемблер — язык программирования низкого уровня. Язык программирования низкого уровня — язык программирования, который ориентирован на конкретный тип процессора и учитывает его особенности. В данном случае «низкий уровень» не значит «плохой». Имеется в виду, что операторы языка близки к машинному коду и ориентированы на конкретные команды процессора. Появление языка ассемблера значительно облегчило жизнь программистов, так как теперь вместо рябящих в глазах нулей и единиц, они могли писать программу командами, состоящими из символов приближенных к обычному языку. Для того времени этот язык был новшеством и пользовался популярностью так как позволял писать программы небольшого размера, что при тех машинах критерий значительный.

Но сложность разработки в нём больших программных комплексов привела к появлению языков третьего поколения — языков высокого уровня. Но на этом жизнь ассемблера не закончилась, он жив и по сей день и не только жив, но и пользуется популярностью в узких кругах. Сейчас его используют в написании отдельных фрагментов программ или иногда в написании самих программ. Примеров может быть много, но самые яркие это использование ассемблера в написании драйверов, игр и загрузчиков ОС. Не стоит забывать, что у хакеров этот язык так же пользуется популярностью, да ещё какой! Но что же им так нравится в нём? Конечно же, то, что скорость работы полученной программы значительно выше скорости программы написанной на языке программирования высокого уровня. Это объясняется тем, что получившийся размер программы очень мал. А как же разработчики антивирусных программ? Они тоже не лыком шиты и так же используют ассемблер в некоторых модулях своих программ, что так же обеспечивает их быстродействие. А если бы не ассемблер некоторые программы загружались бы около часа! Так что ассемблер воистину вечный язык и ещё много, много лет он будет служить человечеству![1]

Первые языки программирования высокого уровня

Середина 50-х гг. характеризуется стремительным прогрессом в области программирования. Роль программирования в машинных кодах стала уменьшаться, стали появляться языки программировании нового типа, выступающие в роли посредника между машинами и программистами. Наступило время второго и третьего поколений языков программирования.

С середины 50-х гг. XX в. начали создавать первые языки программирования высокого уровня (high-level programming languages). Эти языки не были привязаны к определенному типу ЭВМ (машинонезависимы). Для каждого из них были разработаны собственные компиляторы. Компиляция — трансляция программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке, близком машинному коду (абсолютный код, объектный модуль, иногда язык ассемблера).

Язык программирования FORTRAN

Первый язык высокого уровня Фортран был создан в период с 1954 по 1957 год группой программистов под руководством Джона Бэкуса в корпорации IBM. Он предназначался для научных и технических расчетов. Название Fortran является сокращением от FORmula TRANslator (переводчик формул).

История языка

В конце 1953 Джон Бэкус предложил начать разработку эффективной альтернативы ассемблеру для программирования на ПК IBM 704. Уже к середине 1954 была закончена черновая спецификация языка Fortran. Первое руководство для Fortran появилось в октябре 1956 вместе с первым компилятором, поставленным в апреле 1957. Компилятор был оптимизирующим, потому что клиенты отказывались использовать язык программирования высокого уровня, который был не в состоянии генерировать код с производительностью ниже, чем у ассемблера.

В то время сообщество относилось скептически к новому способу программирования и не верили в то, что Fortran позволит программировать быстрее и эффективнее. По словам самого Джона Бэкуса, большая часть его работы была направлена на то, чтобы «быть ленивым». Ему жутко не нравилось писать программы под IBM 701 на ассемблере.

Язык был широко принят учеными для написания программ с интенсивными вычислениями. Включение комплексного типа данных сделало его особенно подходящим для технических приложений.

К 1960 году существовали версии Fortran для компьютеров IBM 709, 650, 1620, 7090. Его большая популярность побуждала конкурирующих изготовителей компьютеров создавать компиляторы Fortran для своих компьютеров. Таким образом, уже к 1963 существовало более 40 компиляторов для разных платформ. Именно поэтому Fortran считают первым широко используемым языком программирования.[2]

Фортран в СССР

Фортран в СССР появился позже, чем на Западе, поскольку поначалу у нас более перспективным языком считался Алгол. Во внедрении Фортрана большую роль сыграло общение советских физиков со своими коллегами из CERN, где в 1960-х годах почти все расчёты велись с использованием программ на Фортране.

Первый советский компилятор с Фортрана был создан в 1967 г. для машины «Минск-2», однако он не получил большой известности. Широкое внедрение Фортрана началось после создания в 1968 г. компилятора ФОРТРАН-ДУБНА для машины БЭСМ-6. Машины ЕС ЭВМ, появившиеся в 1972 г., уже изначально имели транслятор Фортрана («позаимствованный» с IBM/360 вместе с другим программным обеспечением)

Современный Фортран. Достоинства языка

Фортран широко использовался в основном для научных и инженерных вычислений. Он прекрасно подходит для решения численных задач, так как за время его существования было написано множество библиотек. Он используется и по сей день, но не столько по причине удачного дизайна, сколько в силу большого количества написанных на нём программ, изменять и, тем более, переписывать которые нет смысла. Его структура способствует тому, что компилятор может очень хорошо оптимизировать вычисления.

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

Язык программирования ALGOL 58

Причина появления языка ALGOL

Поскольку Фортран оказался столь успешным языком, в Европе возникли опасения, что IBM будет доминировать в компьютерной отрасли. Немецкое Общество прикладной математики и механики (GAMM) создало комитет по разработке универсального языка. В то же время Ассоциация вычислительной техники (ACM) организовала похожий комитет в США. Несмотря на то, что у европейцев было некоторое беспокойство по поводу господства американцев, оба этих комитета слились в один.

Алгол был разработан в 1958 году на недельной конференции в ETH (Цюрих, Швейцария) как универсальный язык программирования для широкого круга применений, а затем доработан комитетом, созданным Международной федерацией по обработке информации. В комитет вошёл ряд ведущих европейских и американских учёных и инженеров-разработчиков языков, среди которых были Джон Бэкус, Джон Маккарти, Петер Наур, Эдсгер Дейкстра и Джозеф Уэгстен, впоследствии возглавивший комитет по разработке языка Кобол.

В ходе работы возникали большие трудности непринципиального характера. Так, например, один из членов комитета вспоминал «десятичную бурю» — крайне резкую дискуссию между американскими и европейскими участниками по поводу того, какой именно символ должен быть использован в качестве разделителя целой и дробной частей числа. Американцы настаивали на точке, европейцы же требовали применять традиционную для Европы запятую. Чтобы избежать конфликтов по мелким вопросам, было решено, что описание Алгола будет трёхуровневым, включающим уровень описаний, публикаций и реализации. Мелкие вопросы, типа выбора между точкой и запятой или используемого алфавита, были вынесены на второй-третий уровень, что позволило относительно быстро решить принципиальные вопросы. На уровне публикаций, согласованном позже, допускалось использование национальных ключевых слов и стандартов представления данных (в том числе и десятичной точки), уровень реализации определял язык совершенно строго — согласно ему должны были строиться трансляторы.

Вначале предлагавшееся название ALGOL (ALGOrithmic Language) было отвергнуто. Но поскольку оно стало общеупотребительным, официальное имя IAL пришлось впоследствии изменить на ALGOL 58.

Новая версия появилась в 1960 г., и ALGOL 60 (с небольшими изменениями, сделанными в 1962 г.) с 60-х и до начала 70-х гг. прошлого века был стандартом академического языка программирования.

У нового языка нашлись как приверженцы, так и критики. В США Алгол приняли холодно, он был популярен только в академической среде, и то не повсеместно. Те, кто попытался реализовать Алгол, столкнулись с целым рядом сложностей.

Так, например, обнаружилось, что ни один из существовавших тогда компьютеров не поддерживал ввод-вывод всех 116 литер, из которых состоял алфавит Алгола.

А вот в Европе Алгол приняли с энтузиазмом. Он быстро завоевал популярность в академической среде, повсеместно шла разработка компиляторов, многие из которых, несмотря на сложности реализации, оказались весьма успешными. Алгол распространился от Великобритании до Дальнего востока СССР, став как универсальным языком описания алгоритмов в научных публикациях, так и средством реального программирования.

Свойства языка. Его достоинства и недостатки

В Алголе появилось представление о программе не как о свободной последовательности команд, а как о блочной структуре, состоящей из чётко описанных и отделённых друг от друга частей. Основной блок программы на Алголе — это сама главная программа. Она содержит свою исполняемую часть, заключённую в блок, ограниченный парой ключевых слов begin и end, а также описания подпрограмм. Каждая подпрограмма — это программа в миниатюре, имеющая собственные, описанные внутри неё данные, однозначно определённый интерфейс в виде имени и списка формальных параметров, и блок кода.

При этом в блоке могут выделяться подблоки.

Были выделены структурные управляющие конструкции: ветвления, циклы, последовательные участки, исполняющие условно или многократно вложенные наборы операторов, также ограниченные теми же ключевыми словами begin и end.

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

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

Язык программирования LISP

Язык Лисп был предложен Дж. Маккарти в работе в 1960 году и ориентирован на разработку программ для решения задач не численного характера. Английское название этого языка — LISP является аббревиатурой выражения LISt Processing (обработка списков) и хорошо подчеркивает основную область его применения. Понятие «список» оказалось очень емким.

В виде списков удобно представлять алгебраические выражения, графы, элементы конечных групп, множества, правила вывода и многие другие сложные объекты. Списки являются наиболее гибкой формой представления информации в памяти компьютеров. Неудивительно поэтому, что удобный язык, специально предназначенный для обработки списков, быстро завоевал популярность.

Развитие языка

На протяжении почти сорокалетней истории его существования появился ряд диалектов этого языка: Common LISP, Mac LISP, Inter LISP, Standard LISP и др.

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

Основные достоинства языка

Большим достоинством Лиспа является его функциональная направленность, то есть программирование ведется с помощью функций. Причем функция понимается как правило, сопоставляющее элементам некоторого класса соответствующие элементы другого класса. Сам процесс сопоставления не оказывает никакого влияния на работу программы, важен только его результат — значение функции. Это позволяет относительно легко писать и отлаживать большие программные комплексы. Ясность программ, четкое разграничение их функций, отсутствие каверзных побочных эффектов при их выполнении является обязательными требованиями к программированию таких логически сложных задач, каковыми являются задачи искусственного интеллекта.

Дисциплина в программировании становится особенно важной, когда над программой работает не один человек, а целая группа программистов.

Язык программирования COBOL

Кобол был разработан в 1959 году и предназначался прежде всего для написания программ для разработки бизнес приложений, а так же для работы в экономической сфере.

Спецификация языка была создана в 1959 году. Создатели языка ставили своей целью сделать его машинонезависимым и максимально приближенным к естественному английскому языку. Обе цели были успешно достигнуты; программы на COBOL считаются понятными даже неспециалистам, поскольку тексты на этом языке программирования не нуждаются в каких-либо специальных комментариях (самодокументирующиеся программы).

Достоинства и недостатки

COBOL — язык очень старый и в свое время использовался крайне активно, поэтому существует множество реализаций и диалектов. Для языка был утвержден ряд стандартов: в 1968, 1974, 1985 и 2002 годах. Последний стандарт добавил в язык поддержку объектно-ориентированной парадигмы.

Язык позволяет эффективно работать с большим количеством данных, он насыщен разнообразными возможностями поиска, сортировки и распределения. К числу других плюсов COBOL обычно относят его структурированность. Довольно мощные компиляторы с этого языка разработаны для персональных компьютеров. Некоторые из них столь эффективны, что программу, отлаженную на персональном компьютере, нетрудно перенести на большие ЭВМ.

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

Выводы по данному периоду развития языков программирования

На заре компьютеризации (в начале 1950-х г.г.), машинный язык был единственным языком, большего человек к тому времени не придумал. Языки низкого уровня мало похожи на нормальный, привычный человеку язык. Большие, громоздкие программы на таких языках пишутся редко. Зато если программа будет написана на таком языке, то она будет работать быстро, занимая маленький объем и допуская минимальное количество ошибок. Чем ниже и ближе к машинному уровень языка, тем меньше и конкретнее задачи, которые ставятся перед каждой командой.

Для спасения программистов от сурового машинного языка программирования, были созданы языки высокого уровня (то есть немашинные языки), которые стали своеобразным связующим мостом между человеком и машинным языком компьютера. Языки высокого уровня работают через трансляционные программы, которые вводят «исходный код» (гибрид английских слов и математических выражений, который считывает машина), и в конечном итоге заставляет компьютер выполнять соответствующие команды, которые даются на машинном языке.

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

Подводя итог данному периоду развития языков программирования, можно сделать вывод, что языки программирования высокого уровня (FORTRAN, ALGOL, LISP,COBOL и т. д.) не похожи на язык ассемблера. Языки высокого уровня разработаны специально для того, чтобы можно было иметь дело непосредственно с задачей, решаемой программой. В этом качестве они иногда называются процедурными языками, поскольку описывают процедуру, используемую для решения задачи. Языки высокого уровня машинонезависимы. Программы же на языке ассемблера непосредственно относятся к той машине, на которой они должны выполняться.

Достоинства языков программирования высокого уровня:

  1. Алфавит языка значительно шире машинного, что делает его гораздо более выразительным и существенно повышает наглядность и понятность текста;
  2. Набор операций, допустимых для использования, не зависит от набора машинных операций, а выбирается из соображений удобства формулирования алгоритмов решения задач определенного класса;
  3. Конструкции операторов задаются в удобном для человека виде;
  4. Поддерживается широкий набор типов данных.

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

ru-wiki.org

История языков программирования - это... Что такое История языков программирования?

Эта статья описывает важнейшие этапы в истории развития языков программирования. За деталями обратитесь к хронологии языков программирования.

Начало развития

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

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

Например, для организации чтения блока данных с гибкого диска программист может использовать 16 различных команд, каждая из которых требует 13 параметров, таких как номер блока на диске, номер сектора на дорожке и т. п. Когда выполнение операции с диском завершается, контроллер возвращает 23 значения, отражающие наличие и типы ошибок, которые надо анализировать.

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

Каждая модель процессора имеет свой собственный набор машинных команд, хотя большинство из них совпадает. Если Процессор А полностью понимает язык Процессора Б, то говорится, что Процессор А совместим с Процессором Б. Процессор Б будет называться не совместимым с Процессором А если А имеет команды, не распознаваемые Процессором Б.

На протяжении 60-х годов запросы на разработку программного обеспечения возросли и программы стали очень большими. Люди начали понимать, что создание программного обеспечения — гораздо более сложная задача, чем они себе представляли. Это привело к тому, что было разработано структурное программирование. С развитием структурного программирования следующим достижением были процедуры и функции. К примеру, если есть задача, которая выполняется несколько раз, то её можно объявить как функцию или процедуру и в выполнении программы просто вызывать её. Общий код программы в данном случае становится меньше. Функции позволяют создавать модульные программы.

Следующим достижением было использование структур, благодаря которым перешли к классам. Структуры — это составные типы данных, построенные с использованием других типов. Например, структура время. В неё входит: часы, минуты, секунды. Программист мог создать структуру время и работать с ней, как с отдельной структурой. Класс — это структура, которая имеет свои переменные и функции, которые работают с этими переменными. Это было очень большое достижение в области программирования. Теперь программирование можно было разбить на классы и тестировать не всю программу, состоящую из 10’000 строк кода, а разбить программу на 100 классов, и тестировать каждый класс. Это существенно облегчило написание программного продукта.

Язык ассемблера

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

Но даже работа с ассемблером достаточно сложна и требует специальной подготовки.

Например, для процессора Zilog Z80 машинная команда 00000101 предписывает процессору уменьшить на единицу свой регистр B. На языке ассемблера это же будет записано как DEC B.

Структурное программирование

Следующий шаг был сделан в 1954 году, когда был создан первый язык высокого уровня — Фортран (англ. FORTRAN - FORmula TRANslator). Языки высокого уровня имитируют естественные языки, используя некоторые слова разговорного языка и общепринятые математические символы. Эти языки более удобны для человека, с помощью них, можно писать программы до нескольких тысяч строк длиной. Однако легко понимаемый в коротких программах, этот язык становился нечитаемым и трудно управляемым, когда дело касалось больших программ. Решение этой проблемы пришло после изобретения языков структурного программирования (англ. structured programming language), таких как Алгол(1958), Паскаль(1970), Си(1972).

Структурное программирование предполагает точно обозначенные управляющие структуры, программные блоки, отсутствие инструкций безусловного перехода (GOTO), автономные подпрограммы, поддержка рекурсии и локальных переменных.

Суть такого подхода заключается в возможности разбиения программы на составляющие элементы.

Также создавались функциональные (аппликативные) языки (Пример: Lisp — англ. LISt Processing, 1958) и логические языки (пример: Prolog — англ. PROgramming in LOGic, 1972).

Хотя структурное программирование, при его использовании, дало выдающиеся результаты, даже оно оказывалось несостоятельным тогда, когда программа достигала определенной длины. Для того чтобы написать более сложную (и длинную) программу, нужен был новый подход к программированию.

ООП

В итоге в конце 1970-х и начале 1980-х были разработаны принципы объектно-ориентированного программирования. ООП сочетает лучшие принципы структурного программирования с новыми мощными концепциями, базовые из которых называются инкапсуляцией, полиморфизмом и наследованием.

Примерами объектно-ориентированных языков являются Object Pascal, C++, Java и др.

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

Пример записи программы на разных языках

Язык высокого уровня (Delphi)

Ассемблер x86 (сопроцессор)

fldpi fmul qword ptr [Y] fsin fld1 faddp st(1), st(0) fstp qword ptr [X]

Машинный код (шестнадцатеричное представление, каждая команда начинается с новой строки)

D9 EB DC 0D D0 97 40 00 D9 FE D9 E8 DE C1 DD 1D 98 97 40 00

Машинный код (двоичное представление)

11011001 11101011 11011100 00001101 11010000 10010111 01000000 00000000 11011001 11111110 11011001 11101000 11011110 11000001 11011101 00011101 10011000 10010111 01000000 00000000

Ссылки

dik.academic.ru

История языков программирования - это... Что такое История языков программирования?

Эта статья описывает важнейшие этапы в истории развития языков программирования. За деталями обратитесь к хронологии языков программирования.

Начало развития

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

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

Например, для организации чтения блока данных с гибкого диска программист может использовать 16 различных команд, каждая из которых требует 13 параметров, таких как номер блока на диске, номер сектора на дорожке и т. п. Когда выполнение операции с диском завершается, контроллер возвращает 23 значения, отражающие наличие и типы ошибок, которые надо анализировать.

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

Каждая модель процессора имеет свой собственный набор машинных команд, хотя большинство из них совпадает. Если Процессор А полностью понимает язык Процессора Б, то говорится, что Процессор А совместим с Процессором Б. Процессор Б будет называться не совместимым с Процессором А если А имеет команды, не распознаваемые Процессором Б.

На протяжении 60-х годов запросы на разработку программного обеспечения возросли и программы стали очень большими. Люди начали понимать, что создание программного обеспечения — гораздо более сложная задача, чем они себе представляли. Это привело к тому, что было разработано структурное программирование. С развитием структурного программирования следующим достижением были процедуры и функции. К примеру, если есть задача, которая выполняется несколько раз, то её можно объявить как функцию или процедуру и в выполнении программы просто вызывать её. Общий код программы в данном случае становится меньше. Функции позволяют создавать модульные программы.

Следующим достижением было использование структур, благодаря которым перешли к классам. Структуры — это составные типы данных, построенные с использованием других типов. Например, структура время. В неё входит: часы, минуты, секунды. Программист мог создать структуру время и работать с ней, как с отдельной структурой. Класс — это структура, которая имеет свои переменные и функции, которые работают с этими переменными. Это было очень большое достижение в области программирования. Теперь программирование можно было разбить на классы и тестировать не всю программу, состоящую из 10’000 строк кода, а разбить программу на 100 классов, и тестировать каждый класс. Это существенно облегчило написание программного продукта.

Язык ассемблера

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

Но даже работа с ассемблером достаточно сложна и требует специальной подготовки.

Например, для процессора Zilog Z80 машинная команда 00000101 предписывает процессору уменьшить на единицу свой регистр B. На языке ассемблера это же будет записано как DEC B.

Структурное программирование

Следующий шаг был сделан в 1954 году, когда был создан первый язык высокого уровня — Фортран (англ. FORTRAN - FORmula TRANslator). Языки высокого уровня имитируют естественные языки, используя некоторые слова разговорного языка и общепринятые математические символы. Эти языки более удобны для человека, с помощью них, можно писать программы до нескольких тысяч строк длиной. Однако легко понимаемый в коротких программах, этот язык становился нечитаемым и трудно управляемым, когда дело касалось больших программ. Решение этой проблемы пришло после изобретения языков структурного программирования (англ. structured programming language), таких как Алгол(1958), Паскаль(1970), Си(1972).

Структурное программирование предполагает точно обозначенные управляющие структуры, программные блоки, отсутствие инструкций безусловного перехода (GOTO), автономные подпрограммы, поддержка рекурсии и локальных переменных.

Суть такого подхода заключается в возможности разбиения программы на составляющие элементы.

Также создавались функциональные (аппликативные) языки (Пример: Lisp — англ. LISt Processing, 1958) и логические языки (пример: Prolog — англ. PROgramming in LOGic, 1972).

Хотя структурное программирование, при его использовании, дало выдающиеся результаты, даже оно оказывалось несостоятельным тогда, когда программа достигала определенной длины. Для того чтобы написать более сложную (и длинную) программу, нужен был новый подход к программированию.

ООП

В итоге в конце 1970-х и начале 1980-х были разработаны принципы объектно-ориентированного программирования. ООП сочетает лучшие принципы структурного программирования с новыми мощными концепциями, базовые из которых называются инкапсуляцией, полиморфизмом и наследованием.

Примерами объектно-ориентированных языков являются Object Pascal, C++, Java и др.

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

Пример записи программы на разных языках

Язык высокого уровня (Delphi)

Ассемблер x86 (сопроцессор)

fldpi fmul qword ptr [Y] fsin fld1 faddp st(1), st(0) fstp qword ptr [X]

Машинный код (шестнадцатеричное представление, каждая команда начинается с новой строки)

D9 EB DC 0D D0 97 40 00 D9 FE D9 E8 DE C1 DD 1D 98 97 40 00

Машинный код (двоичное представление)

11011001 11101011 11011100 00001101 11010000 10010111 01000000 00000000 11011001 11111110 11011001 11101000 11011110 11000001 11011101 00011101 10011000 10010111 01000000 00000000

Ссылки

dic.academic.ru