Файл: Обзор языков программирования высокого уровня (Становление языков программирования).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 01.04.2023

Просмотров: 74

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

В настоящий момент наиболее распространены языки, основанные на объектно-ориентированной модели. Самыми известными в теории и практике развития программирования языками являются:

  • Fortran — FortranIV — Fortran77 — Fortran90;
  • Cobol;
  • Algol — Algol60 — Algol68;
  • Simula — Simula67;
  • Smalltalk;  PL/I — PL/M; 24
  • BASIC — GW-Basic — Turbo Basic — Quick Basic — Visual Basic;
  • Pascal — Modula — Modula-2 — Оберон — Active Oberon — Компонентный Pascal — Zonnon;
  • Ada — Ada83 — Ada95 — Ada2012;
  • (BCPL — B) — С — Objective C — C++ — Java — C# — C11;
  • Lisp — Scheme — Common Lisp — Clojure — AutoLisp;
  • ML — Standard ML — Ocaml — F# — LazyML — Miranda — Haskell — Curry;
  • Planner — QA4 — Popler — Conniver — Qlisp;
  • Prolog — Parlog — Mercury — Oz — Fril — P#;
  • Fort;
  • Клу.

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

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

Глава 2. Языки программирования и области их применения

2.1 Главные языки, повлиявшие на развитие программирования

Язык программирования – это набор правил, определяющих, какие последовательности символов составляют программу и какое вычисление описывает программа.[9] Все высокоуровневые языки являются машинно-независимыми языками. Это означает, что одна и та же программа выполнима на ЭВМ различных типов, если они оснащены соответствующим транслятором.

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

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


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

  1. научные вычисления (языки C++, FORTRAN, Java);
  2. системное программирование (языки C++, Java);
  3. обработка информации (языки C++, COBOL, Java);
  4. искусственный интеллект (LISP, Prolog);
  5. издательская деятельность (Postscript, TeX);
  6. удаленная обработка информации (Perl, PHP, Java, C++);
  7. описание документов (HTML, XML).[10]

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

  • наличие среды программирования, поддерживающей разработку приложений на конкретном языке программирования;
  • удобство сопровождения и тестирования программ;
  • стоимость разработки с применением конкретного языка программирования;
  • четкость и ортогональность конструкций языка;
  • применение объектно-ориентированного подхода.[11]

Язык программирования – это механизм абстрагирования. Он дает программисту возможность описать свои вычисления абстрактно, но в то же время позволяет ассемблеру, компилятору или интерпретатору перевести данное описание в детализированную форму, которая необходима для выполнения на компьютере.[12]

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


2.2 Старые языки программирования

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

      1. Fortran (1957). Название сокращено от FORmula TRANslator, дословно означающее — переводчик формул. Пик его популярности пришелся на 60-е года. Подобно большинству первых языков программирования, Fortran имел серьезные недостатки в деталях самого языка, и, что важнее, в нем отсутствовала поддержка современных концепций структурирования модулей и данных. Однако его преимущества, заключающиеся в наличии комплексных чисел в базовом наборе типов данных, быстро покорили большинство программистов: разработка программ стала более быстрой и надежной, а их машинная зависимость уменьшилась из-за абстрагирования от регистров и машинных команд. Fortran стал стандартным языком в науке и технике. Весьма любопытен тот факт, что Fortran успешно используется по сей день, например, в научных расчетах – конечно, с учетом того, что он развивается и вбирает в себя новшества в программировании (Fortran 77; 90). Объясняется это большим объемом наработанных библиотек программ, которые являются эффективными и нет смысла переписывать их на другие языки, а также встроенной поддержкой комплексных чисел, чего нет даже во многих современных языках.[13]
      2. Algol (1958). Его название пошло от сокращения английской фразы «ALGOrithmic Language», что означает – алгоритмический язык. Это была первая разработка языка, который стало возможным применять на различных платформах. Но по итогу оказалось, что он больше подходит для лабораторных вычислений, поскольку в исходной форме язык не поддерживал никаких протоколов ввода-вывода. Пересмотренная версия, Algol 60, весьма широко использовалась в научных компьютерных исследованиях и была много, где реализована. Третья версия языка, Algol 68, по своим возможностям и сегодня опережает многие языки[14] программирования, однако из-за отсутствия достаточно эффективных компьютеров для нее не удалось своевременно создать хорошие компиляторы. Именно в Algol был реализован блочный принцип, который используется в Pascal. За что мы ставим ему огромный плюс. Сегодня он используется минимально, но его «ДНК» лежит в основе многих популярных языков.
      3. Lisp (1958). Название – сокращение от словосочетания «List Processing». Был первым функциональным языком обработки списков, который нашел широкое применение в исследованиях теорий вычисления. Одна из проблем языка состояла в обилии различных «диалектов». Расцвет его пришелся на 60-е годы прошлого столетия. Чаще всего использовался для разработки систем искусственного интеллекта. В AI-разработках используется и поныне.[15]
      4. COBOL (1959). Название является аббревиатурой от Common Business-Oriented Language. Над ним работали производители компьютеров и коммерческих организаций. Изначально они предполагали, что Cobol – это ни что иное, как временное решение, до тех пор, пока не будет создан лучший проект. Однако язык быстро распространился в своей области и стал весьма популярным. Cobol отличается большой «многословностью. Его главным преимуществом являлось то, что при обработке коммерческих данных Cobol делал относительно простые вычисления для большого числа сложных записей данных, превосходя по возможностям структурирования данных язык Fortran. Период расцвета COBOL – 60-80-е годы. Тогда его использовали крупные корпоративные системы, такие, как страховка, банки, и т.д. На Cobol создано очень много приложений, которые активно эксплуатируются и сегодня, в наше время его до сих пор изучают в школах.[16]
      5. APL (1962). Назван сокращением от фразы «A Programming Language». Кену Айверсону, создателю данного языка, за эту разработку дали премию Тьюринга. Основные структуры данных в нем – это векторы и матрицы, и операции выполняются без циклов. Первые семь лет разработки APL прошли без участия компьютеров, что позволяло разработчикам менять конструкцию языка, не заботясь о последствиях. Эдин Д. Фалкофф в своем интервью подтверждал, что первые годы развития APL, они в основном занимались математическими приложениями с помощью бумаги и карандаша, анализом цифровых систем и преподаванием.[17] Данный язык был очень популярен в 60-х годах. Чаще всего использовался в прикладной математике. Известен предельной простотой и ясностью синтаксиса. Его минусы – требует наличия греческого алфавита и других специальных символов. Читается при этом справа налево, то есть наоборот. APL до сих пор применяется для программирования научных и финансовых расчетов, при этом, вполне успешно.
      6. PL/I (1964, релиз 1969). Название расшифровывается как «Programming Language One». Это универсальный язык, который обладает всеми свойствами языков Fortran, Cobol и Algol, и даже предстает значительно мощнее них. PL/1 заменил Fortran и Cobol на многих компьютерах IBM, но вне IBM никогда не поддерживался, особенно на мини- и микроЭВМ. Намного шире использовался в СССР, чем на Западе. Пик его славы пришелся на ранние 70-е. Хоть он и был весьма ресурсоемким и сложным, в нем присутствовала возможность указания точности вычислений, которой нет даже у более поздних языков. PL/1 и сегодня продолжает поддерживаться компанией IBM, на него даже выходят обновления.[18]
      7. BASIC (1964). (сокр. от Beginner's All-Purpose Symbolic Instruction Code), что означает универсальный символьный язык инструкций для начинающих или просто БАЗОВЫЙ. Он создавался для студентов, но получил широкое применение и для домашних компьютеров. Basic считается весьма развитым языком, даже на фоне Си и Pascal, которые в свою очередь являются весьма «сильными». Он снабжен мощными средствами решения специфических задач, но из-за узкого его применения начала появляться масса «потомков», которые включили в себя различные эффективные средства программирования из других алгоритмических языков. В результате чего на сегодняшний день существует не конкретный Basic, а целая группа диалоговых языков одного типа с этим именем.[19] Наиболее популярная его реализация – Visual Basic. Даже через столько лет после изобретения Basic, он остается одним из самых простых языков общецелевого программирования, для освоения из десятков имеющихся других. Используется и по сей день.
      8. Pascal (1968). Назван в честь математика Блеза Паскаля. Самый популярный потомок Algol, в том числе использовавшийся для программирования под ранние версии компьютеров Apple. Годы расцвета – 80-е. Породил многие языки программирования и программные среды, в том числе всем известный Delphi. Язык практического программирования Pascal имеет одно большое преимущество и один большой недостаток. Первый компилятор языка Pascal был написан на самом языке Pascal и легко переносился на любой компьютер. Язык хорошо подходил для микро- и миниЭВМ, популярных в те года, но, к сожалению, как язык, Pascal оказался слишком мал – он не мог использоваться для программ объемом больше нескольких тысяч строк. Неимоверно популярная версия от 1983 года называлась «Turbo Pascal». Сейчас используется для преподавания, но уже куда реже, чем лет 20 назад.[20]
      9. ADA (1977). Назван в честь Ады Лавлейс, которая написала первую программу и была математиком. Данный язык сразу же был разработан для написания переносимых программ. Язык Ada обозначается, как «трудный», в связи с тем, что он содержит в себе слишком многие аспекты программирования, которые другие языки отодвигают от себя, оставляя это ОС. Однако он «берет» тем, что предоставляет более развитые средства абстракции и конкретизации. Расцвет Ada пришелся на 80-е годы. В основном использовался военными в системах контроля ВС, где используется до сих пор и будет использоваться в будущем, так как является неимоверно надежным языком. Сейчас Ada все чаще встречается при изучении программирования, как «первый» язык.[21]

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

Глава 3. Будущее языков программирования

3.1 Языки, повлиявшие на развитие программирования

Как мы уже знаем из первой главы – в начале 70-х годов был создан язык C, от которого пришли два серьезных «потомка» – C++ и C#. К тому же, свою основу из языка Cи берут самые популярные в наше время высокоуровневые языки – Java, Objective C, PHP и многие другие.

В отличии от большого количества многих других языков, которые создавались крупными компаниями (PL/I, Кобол) или родились в научно-исследовательских лабораториях для всевозможных проверок качестве научных гипотез (Smalltalk, Клу, Q и др.), Cи был разработан программистами для личного использования, и как оказалось, это сильно сказалось на его возможностях в положительную сторону.[22]

Во-первых, он широко известен и обладает большим числом компиляторов для такого же большого числа платформ. Во-вторых, Cи обладает возможностями низкоуровневых языков. Любопытно, что из-за этого некоторые разработчики относят его не к языкам высокого уровня, а к промежуточным. Во-третьих, c помощью C можно создавать программы, которые не требуют большого объема памяти. В-четвертых, он отличен от многих других языков своей простотой дизайна и ясностью программ.[23]

Язык Cи обладает большими возможностями, но он очень непредсказуем, если в нем допустить ошибки — могут появиться уязвимости, которые не так легко обнаружить.

Поэтому в 1986 году Строустроп создал расширенную версию C – язык C++, добавив в него объектно-ориентированные черты программирования (ООП), которые взял из Simula, исправив неудачные решения и многие ошибки языка. С помощью С++ создаются большие и сложные современные ООП-программы. Но у него есть и слабые стороны – как показала многочисленная практика, множественное наследование, которое присуще C++ создает меньше преимуществ, чем проблем.[24]


С развитием Интернета в 1996 году была опубликована первая версия Java, которая изначально создавалась для написания программ на электронные устройства бытового назначения. Преимущественно данный язык представлялся для написания программ для сетей, но обладая автоматическим управлением памяти, огромными библиотеками и независимостью, он быстро превратился в универсальный.[25] Сейчас на нем создаются скрипты, плагины, программы и многое другое, как на всевозможные гаджеты – планшеты, телефоны, часы, и прочее, так и на персональные компьютеры, ноутбуки. На Java пытались создавать офисные программы, но все заканчивалось неудачами, о чем впоследствии заявили разработчики, добавив, что данный язык годится только для написания «игрушечных» программ, которые позволяют двигаться картинкам на страницах, но и с апплетами было все не так просто.

Все эти минусы Java языка подтолкнули разработчиков к созданию альтернативы, позволяющей помещать на странице элементы, которые обеспечат интерактив с пользователями. Такую технологию назвали JavaScript, которая, не смотря на свое название, похожа на Java лишь в синтаксисе отдельных конструкций. Ява — сильно типизированный язык, a JavaScript поддерживает динамическую типизацию. Программы на данном скриптовом языке прямо в виде исходного текста включаются в ВЕБ-страницу.[26] Как средство «оживления» WEB-страниц Java-Script намного популярнее Java.

В новом тысячелетии от фирмы Microsoft стало известно о создании нового языка, который назвали C# (Си шарп). Назван он так не случайно, ведь по характеру он напоминает C++, а # – это вообще два пересеченных плюса, но он так же напоминает Java и Basic – унаследовав от них все только самое лучшее, принося вдобавок и свое. С# создан для программистов, использующих С++ и С, чтобы они смогли наиболее результативно создавать Internet-приложения. В нем масса плюсов и преимуществ, а из недостатков можно выделить то, что он запросто может дизассемблезироваться, то есть код может попасть к конкурентам, а еще то, что С# не является достаточно распространенным языком у обычных пользователей. В основном им пользуются коммерческие организации. Так же на сайте Microsoft указано, что С# тесно интегрирован с языком XML.

Раз уж мы коснулись языка разметки, вспомним о том, что интернет, а точнее его популярная подсистема – World Wibe Web (WWW), основана на использовании языка гипертекстовой разметки. Проще говоря – HTМL. Его сложно считать языком программирования, скорее это язык описания страниц, не имеющий динамики, и задающийся тегами.[27]