Первые языки программирования были созданы во время. Языки программирования: почему появились, яркие представители, как выбрать язык. Как правильно выбрать язык программирования – Иван Калинин

>> Статьи

Как появились языки программирования?

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

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

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

Языки высокого уровня: алгоритмические языки

Развитие технологий и внедрение новых типов цифровых устройств заставило программистов изобрести язык более высокого уровня с ориентиром написания на алгоритмы. Так появились дополнительные программы- трансляторы, которые запускали действие алгоритма. Известны два метода трансляции:

- Compilation или компиляция, когда инструкции вступают в активное действие после перевода всего пакета программы;

- Interpretation или интерпретация, при которой выполнение и перевод машинного языка осуществляется в синхронном порядке.

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

Год 1954: структурное программирование

Миру стал известен первый компилятор языка программирования очень высокого уровня. Речь идет о Fortran, от английской аббревиатуры FORmula TRANslator. Разработка языка упростилась, но при составлении объемных программ язык становился практически не читаем, хотя и было выпущено много версий Fortran.

Пик развития языков программирования приходится именно на 50-60-е годы, тогда создаются несколько вариантов:

- Algol (1958 г.), созданный на основе обособленных блоков;

- Cobol (1959 г.) - язык бизнеса и управления, основа С+;

- Basic (1965 г.), известный программистам по сегодняшний день.

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

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

Объектно-ориентированное программирование (ООП): 1970 год

Идеология процедурного программирования для формально не связанных в обработке функций заставила разработчиков сесть за создание новой концепции составления языка. Основой понятий ООП стали:

Модель объекта, которого еще не существует;

Экземпляр класса;

Абстракция, придание характеристик объекту;

Инкапсуляция, когда объединяются свойства и методы, преследуя цель сокрытия данных;

Наследование;

Полиморфизм.

Первым языком был Симула, чуть позднее изобретен Smalltalk. В настоящее время такой тип программного языка поддерживают современные программы: Object Pascal (Delphi), C++, C#, Java.

Последовательность развития языков программирования зависит от внедрения новых инноваций, так после появления Интернет, стал необходим язык для доступа к ресурсам, сайтам. Технология World Wide Web (WWW) дала жизнь новым языкам, активно используемых до сих пор: Java, Perl, SQL, HTML, PHP, JavaScript.

Позволю себе выделить некоторую общую тенденцию в развитии языков программирования. Проницательный читатель, наверное, уже давно догадался, о чем я собираюсь сказать. Языки развиваются в сторону все большей и большей абстракции. И это сопровождается падением эффективности. Вопрос: а стоит ли этого абстракция? Ответ: стоит. Стоит, так как повышение уровня абстракции влечет за собой повышение уровня надежности программирования. С низкой эффективностью можно бороться путем создания более быстрых компьютеров. Если требования к памяти слишком высоки, можно увеличить ее объем. Это, конечно, требует времени и средств, но это решаемо. А вот с ошибками в программах можно бороться только одним способом: их надо исправлять. А еще лучше - не совершать. А еще лучше максимально затруднить их совершение. И именно на это направлены все исследования в области языков программирования. А с потерей эффективности придется смириться.

Целью данного обзора была попытка дать читателю представление о всем многообразии существующих языков программирования. Среди программистов часто бытует мнение о «всеобщей применимости» того или иного языка (C, C++, Pascal и т.п.). Это мнение возникает по нескольким причинам: недостаток информации, привычка, инертность мышления. Я попытался слегка компенсировать первый фактор. По поводу остальных могу лишь сказать, что настоящий профессионал должен постоянно стремиться повышать свои профессиональную квалификацию. А для этого нужно не бояться экспериментировать. Ну и что, что все вокруг пишут на C/С++/VB/Pascal/Perl/Java/… (нужное подчеркнуть)? А почему бы не попробовать что-нибудь новенькое? А вдруг это окажется эффективнее? Разумеется, прежде чем приниматься использовать новый язык, нужно внимательно изучить все его особенности, включая наличии эффективной реализации, возможности взаимодействия с существующими модулями и т.п., и только после этого принимать решение. Разумеется, всегда есть риск пойти не тем путем, но… Не ошибается лишь тот, кто ничего не делает.

И еще. Мне доводилось слышать, а порой и участвовать в дискуссиях вида «язык A лучше, чем язык B». Я надеюсь, что, прочитав этот обзор, многие убедятся в бессмысленности таких споров. Максимум, о чем может идти речь - это о преимуществах одного языка над другим при решении той или иной задачи в тех или иных условиях. Вот здесь действительно иногда есть о чем поспорить. И решение подчас отнюдь не очевидно. Однако же спорить «вообще» - очевидная глупость.

Эта статья задумывалась как ответ тем, кто кричит «язык X MUST DIE». Надеюсь, что ответ получился достаточно адекватным и убедительным. Надеюсь также, что статья имеет, помимо полемической, и познавательную ценность.

Одной из самых революционных идей, приведших к созданию , была высказанная в 20-х годах 19 века Ч.Бэббиджем мысль о предварительной записи порядка действий машины – . С этого момента начинается история языков программирования .

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

При работе на компьютере "Марк-1" Г. Хоппер и ее группе пришлось столкнуться со многими проблемами. В частности, они придумали подпрограммы.

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

В конце 40-х годов, до прихода Г. Хоппер в фирму Джона Моучли, последний создал систему под названием "Short Code", которая являлась примитивным языком программирования высокого уровня. В ней программист записывал решаемую задачу в виде математических формул, а затем, используя специальную таблицу, переводил символ за символом, преобразовывал эти формулы в двухлитерные коды. В дальнейшем специальная программа компьютера превращала эти коды в двоичный машинный код. Система, разработанная Дж. Моучли, была по существу одним из первых примитивных интерпретаторов.

Уже в 1951 г. Хоппер создала первый в мире компилятор и ею же был введен сам этот термин. Компилятор Хоппер осуществлял функцию объединения команд и в ходе трансляции производил организацию подпрограмм, выделение , преобразование команд высокого уровня (в то время псевдокодов) в машинные команды.

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

В середине 60-х годов сотрудники математического факультета Дартмутского колледжа Томас Курц и Джон Кемени создали специализированный язык программирования, который состоял из простых слов английского языка. Новый язык назвали BASIC.

В начале 60-х годов все существующие языки программирования высокого уровня можно было пересчитать по пальцам, однако впоследствии их число достигло трех тысяч. Разумеется, подавляющая часть языков не получила в истории языков программирования сколько-нибудь широкого распространения; в практической деятельности используется не более двух десятков. Разработчики ориентировали языки программирования на разные классы задач, в той или иной мере привязывали их к конкретным архитектурам ЭВМ, реализовывали личные вкусы и идеи. В 60-е годы в истории языков программирования были предприняты попытки преодолеть эту "разноголосицу" путем создания универсального языка программирования. Первым детищем этого направления стал PL/I (Programm Language One), 1967 г. Затем на эту роль претендовал АЛГОЛ-68 (1968 г.). Предполагалось, что подобные языки будут развиваться и усовершенствоваться и вытеснят все остальные. Однако ни одна из этих попыток на сегодняшний день не увенчалась успехом. Всеохватность языка приводила к неоправданной, с точки зрения программиста, сложности конструкций, неэффективности компиляторов.

В конце 50-х годов в истории языков программирования явился Алгол (ALGOL, от ALGOrithmic Language – алгоритмический язык). Алгол предназначен для записи , которые строятся в виде последовательности процедур, применяемых для решения поставленных задач.

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

Период с конца 60-х и до начала 80-х годов характеризуется в истории языков программирования бурным ростом числа различных языков, сопровождавшим, как это ни парадоксально, кризис программного обеспечения. Этот кризис особо остро переживало военное ведомство США. В январе 1975 г. Пентагон решил навести порядок в хаосе трансляторов и учредит комитет, которому было предписано разработать один универсальный язык. Победивший язык окрестили АДА.

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

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

Принципиально иное направление в истории языков программирования связано с методологиями (иногда говорят "парадигмами") непроцедурного программирования. К ним можно отнести объектно-ориентированное и декларативное программирование. Объектно-ориентированный язык создает окружение в виде множества независимых объектов. Каждый объект ведет себя подобно отдельному компьютеру, их можно использовать для решения задач как "черные ящики", не вникая во внутренние механизмы их функционирования. Из языков объектного программирования, популярных среди профессионалов, следует назвать прежде всего Си++, для более широкого круга программистов предпочтительны среды типа Delphi и Visual Basic.

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

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

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

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

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

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

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

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

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

В пятидесятые годы двадцатого века с появлением компьютеров на электронных лампах началось бурное развитие языков программирования. Компьютеры, стоившие в то время значительно дороже, чем разработка любой программы, требовали высокоэффективного кода. Такой код разрабатывался вручную на языке Ассемблер . В середине 50-х годов под руководством Джона Бэкуса для фирмы IBM был разработан алгоритмический язык программирования FORTRAN. Несмотря на то, что уже существовали разработки языков, выполняющие преобразование арифметических выражений в машинный код, создание языка FORTRAN (FORmula TRANslator), предоставляющего возможность записи алгоритма вычислений с использованием условных операторов и операторов ввода/вывода, стало точкой отсчета эры алгоритмических языков программирования.

К языку FORTRAN предъявлялись требования cоздания высокоэффективного кода. Поэтому многие конструкции языка первоначально разрабатывались с учетом архитектуры IBM 407. Успех разработки этого языка привел к тому, что производители других вычислительных систем стали создавать свои версии трансляторов. С целью некоторой возможной на тот момент унификации языка язык FORTRAN IV, разработанный в 1966 году, стал первым стандартом, именуемым FORTRAN 66.

Как альтернатива языку FORTRAN, первоначально ориентированному на архитектуру IBM, под руководством Питера Наура в конце 50-х годов был разработан язык ALGOL (ALGOrithmic Language). Основной целью, преследуемой разработчиками этого языка, была независимость от конкретной архитектуры вычислительной системы. Кроме того, создатели языка ALGOL стремились разработать язык, удобный для описания алгоритмов и применяющий систему обозначений, близкую к той, что принята в математике.

Языки FORTRAN и ALGOL были первыми языками, ориентированными на программирование вычислений.

Язык PL/I , первые версии которого появились в начале 60-х годов, был первоначально ориентирован на IBM 360 и расширял возможности языка FORTRAN некоторыми средствами языка COBOL, разработанного в эти же годы. Несмотря на определенную популярность языка PL/I у программистов, работавших на компьютерах IBM и машинах серии ЕС, в настоящее время он представляет чисто теоретический интерес.

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

В середине 70-х годов Вирт предложил язык Pascal , который сразу стал широко использоваться. В это же время по инициативе Министерства обороны США началась работа по созданию языка высокого уровня, получившего название Ada – в честь Ады Лавлейс, программистки и дочери лорда Байрона. Создание языка началось с определения требований и выработки спецификаций. Над проектом работали четыре независимые группы, но все они использовали как основу язык Pascal. В начале 80-х годов был разработан первый промышленный компилятор языка Ada .

Универсальный язык программирования С был разработан в середине 70-х годов Денисом Ритчи и Кеном Томпсоном. Этот язык стал популярным языком системного программирования и в свое время использовался для написания ядра операционной системы UNIX. Стандарт языка С начал разрабатываться рабочей группой института стандартов ANSI в 1982 году. Международный стандарт языка С принят в 1990 году. Язык С лег в основу разработки языков программирования C++ и Java.

Наряду с алгоритмическими языками параллельно развивались и языки, предназначаемые для обработки деловой информации, а также языки искусственного интеллекта. К первым относится язык COBOL (COmmon Business Oriented Language), а ко вторым – языки LISP (LISt Processing) и Prolog . Язык LISP, разработанный в 60-х годах под руководством Дж. Маккарти, был первым функциональным языком обработки списков, который нашел широкое применение в теории игр.

С появлением персональных компьютеров языки стали составными частями интегрированных сред разработки. Появились языки, применяемые в различных офисных программах, например VBA (Visual Basic for Application).

В 90-х годах с распространением сети Интернет расширяется возможность распределенной обработки данных, что отражается и на развитии языков программирования. Появляются языки, ориентированные на создание серверных приложений, такие как Java , Perl и PHP , языки описания документов – HTML и XML . Традиционные языки программирования С++ и Pascal также претерпевают изменения: под языком программирования начинает пониматься не только функциональность самого языка, а также библиотеки классов, предоставляемые средой программирования. Акцент со спецификации самих языков программирования переносится на стандартизацию механизмов взаимодействия распределенных приложений. Появляются новые технологии – COM и CORBA, специфицирующие взаимодействие распределенных объектов.