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

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

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

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

Добавлен: 01.04.2023

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

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

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

Введение

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

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

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

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

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

В первой главе данной работы мы погрузимся в историю развития языков программирования высокого уровня и классифицируем их по типам.

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

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

В заключении мы сделаем выводы о проделанной работе.

В ходе работы были использована русская литература, зарубежная, а также данные корпораций.


Глава 1. Становление языков программирования

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

Что же такое язык программирования (ЯП)? Это формальная семантическая система, которая очень близко находится с привычными знаковыми системами и к обычным языкам людей.[1] Для начала разберемся с различиями между языками низкого и высокого уровней.

Языки низкого уровня подходят только для определенного типа электронно-вычислительных машин и отражают его краткий код (см. далее «машинный», «краткий» код»). Они появились в 50-е годы XX века в связи с появлением ЭВМ. Тогда любое программирование начиналось с записи программ непосредственно в машинных командах. Компьютеры стоили тогда гораздо дороже разработки любой программ и требовали к себе высокоэффективного кода, который и называли «машинный» или «краткий» код, и именно он является первой ступенью развития языков. Но задачи необходимо было облегчать, поэтому был разработан машинно-ориентированный язык Assembler, который позволял записывать машинные команды в символическом виде. Язык Ассемблера был очень хорош для программирования малых задач, которые требовали быстрого исполнения, но большие задачи выполнять на нем было сложно, так как программа, написанная на нем, была привязана только к одному компьютеру и перенести ее не являлось возможным. Если компьютер менялся, то все программы на языке Ассемблера приходилось перезаписывать каждый раз заново. Такие языки, которые использовали ассемблер и стали языками второго поколения. Да, они были гораздо проще «кратких кодов», но все-таки ограничивались использованием Assembler, который в простонародье называли «переводчиком».[2]

Средства высокоуровневых языков программирования описывают задачи наглядно, легковоспринимаемо и удобно для программиста. Такие языки никак не зависят от внутренних машинных кодов ЭВМ, поэтому программы, написанные на них, требуют перевода в машинные коды другими программами. К языкам высокого уровня относят FORTRAN, PL/1, Basic, Pascal, C, Ada и др. Об истории их развития мы и поговорим далее.

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


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

Интерпретатор — это форма с двумя аргументами, а компилятор – с одним. Интерпретатор – это (ограниченный) аппликатор, а компилятор – преобразователь программ (сохраняющий их смысл).[3]

В эти же года в США был разработан алгоритмический язык программирования высокого уровня FORTRAN, первая версия которого появилась в ноябре 1954 года. В октябре 1956 года появился Fortran I, через год Fortran II, а еще через год вышел Fortran III. В 1966 году язык был унифицирован, насколько это возможно, и FORTRAN IV стал первым стандартом, именуемым FORTRAN 66.

В 1958 году в Европе был разработан язык ALGOL, который разрушил всю идеальность FORTRAN. Основной целью, которой задавались при его разработке программисты, было уйти от зависимости конкретной архитектуры вычислительной системы. Кроме того, создатели ALGOL стремились разработать язык, удобный для описания алгоритмов и применяющий систему обозначений, близкую к той, что принята в математике. Языки FORTRAN и ALGOL были первыми языками, ориентированными на программирование вычислений.

Одновременно с алгоритмическими языками развивались языки, предназначенные для обработки деловой информации и языки искусственного интеллекта. К первым относится международный язык COBOL, созданный в 1957 году, в переводе значащий, как «бизнес-ориентированный язык», а ко вторым – язык LISP, выпущенный в 1960 году в США и Европейский язык Prolog (сокр. от «Programming in logic”), разработку над которым начали в 1970 году и в 1972 году выпустили его в «свет».

На активном этапе развития ЯП возникла необходимость внедрения в современные языки новых идей. Их стали улучшать и стандартизировать, в результате чего начали появляться языки, приобретающие лучшие качества прошлых разработок и уходящие от их недостатков. Так, в США в 1964 году появился PL/I ("скрещенная" версия Cobol, Fortran IV и Algol'60), который заменил Fortran и Cobol на многих компьютерах IBM.

Спустя год, в 1965 году, на основе Algol'60 был разработан язык Simula-67 (сокр. от SIMULAtion), использующий концепцию пользовательских типов данных, а также более простой в изучении язык программирования, который назвали BASIC.[4]


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

Если же затрагивать другие языки, создание которых повлияло на историю развития программирования, то в 60-х годах появился язык Forth и SmallTalk (с англ. «светская беседа») – объектно-ориентированный язык стандартной версии Smalltalk-80 с динамической типизацией, разработанный в лаборатории Xerox PARC Аланом Кэйем.

Сэр Тони Хоар, лауреат премии Тьюринга, в течении 50 лет является ведущим исследователем компьютерных алгоритмов языков программирования. В своей первой научной работе в 1969 исследовал идею доказательства корректности программ и предложил проектировать языки программирования таким образом, чтобы они облегчали написание корректных программ. К его радости, этой идее следует все больше создателей языков программирования. Он говорил, что языки программирования – увлекательнейшая тема. Многие разработчики тешили себя мыслью, что способны придумать язык получше того, которым им в данный момент приходится использовать, а многие даже полагали, что могут спроектировать язык, превосходящий все известные. Возможно, им это и удается, но результаты, по-видимому, не выходят за пределы письменного стола.[5]

Вообще, язык Dеlрhi хоть и использует в своей основе Pаsсаl, и по сути является средой разработки, но даже сами разработчики Делфи уже стали причислять его к самостоятельным языкам программирования высокого уровня, так как от изначального Pаscal в нем практически ничего не осталось. Делфи отлично подходит для написания баз данных, утилит и программ общего назначения. Для всего остального он используется редко, так как теряет в скорости работы, пусть немного, но тем не менее писать игру на Си++ будет куда лучше, чем на Delphi.

В 1977 г. в США провели унификацию языка программирования, с целью сэкономить на обучении и стоимости поддержки операционных средств разработки программ для различных военных систем. Было решено провести конкурс на разработку нового языка, положив в основу существующий язык – Pascal. В конце концов в ходе конкурса выбрали язык, который назвали Ada, стандарт которого приняли в 1983 г. Так же, под влиянием популярности Pascal, в 1975 создали Modula (Modula 2 в 1979г.) и Scheme (собрат Lisp).

Наконец, самый успешный язык программирования — универсальный язык С (Си) и связанная с ним линия объектно-ориентированных языков: C++, Java, C#. Он был разработан в середине 70-х годов, как язык реализации операционной системы UNIX. Язык С абстрагируется от деталей программирования, присущих ассемблерам, предлагая структурированные управляющие операторы и структуры данных. Стандарт ANSI (Американский Национальный Институт Стандартов) С был принят в 1989 г., а стандарт ISO (Международной Организацией по Стандартизации приняли годом позже. Язык С лег в основу разработки языков программирования C++, который задумался в 1983 году, а также в основу Java.[6]


С появлением ПК (персональный компьютер) появились языки для офисных программ, например VBA (Visual Basic for Application). В своем интервью Брайан Керниган (соавтор многих руководств к языкам и языков) говорил, что Visual Basic – на ранней стадии своего существования представлял прекрасный язык и среду для создания Windows-приложений. В какой-то момент VB даже стал одним из самых популярных языков программирования.

После того, как стал развиваться интернет в 90-е годы, появились языки для написания веб-страниц, прародителем которых выступил язык Си или оказал какое-либо влияние на языки Java (и прочие версии Java), PHP, и другие. Были созданы языки описания документов – HTML и XML. Развитие языков в нынешнее время идет в сторону безопасности пользователя.

1.2 Классификация языков программирования по типам

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

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

Так же у языков программирования есть своя семантика – смысл высказывания (программы) в языке (программирования). И если синтаксис языков понять очень легко, то понять семантику намного труднее, так как нужно обладать достаточно обширными общими знаниями.

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

  1. Процедурные-ориентированные языки. В их основе лежит принцип последовательного выполнения операторов, который позволяет легко решить поставленную задачу (проблему). К процедурным языкам относятся FORTRAN, Basic, C, Ada, Smalltalk и др. Процедурные языки включают в себя императивные, а это, в свою очередь - все современные языки программирования. И функциональные языки, которые оперируют функциями высокого порядка. К категории функциональных языков относятся Lisp, FP, APL, Nial, Krc. [7]
  2. Объектно-ориентированные языки. В их основе лежит построение объектов для создания глобальных сетей с помощью набора данных и операций над ними. Объектно-ориентированные языки объединяют и расширяют возможности, присущие процедурным и функциональным языкам. Данные языки распространены в медицине, моделировании, коммуникации, создании ПО (программного обеспечения) и пр. К ним относятся C++, Object Pascal, Java, Objective Caml, Delphi.[8]
  3. Проблемно-ориентированные языки. К их числу относятся языки, специально разработанные для описания процессов решения задач определенного узкого класса. Они имеют краткую запись алгоритма решения задачи. Ярким примером этого типа является язык Pascal. Algol, Simula и пр. Уже известный нам Брайан Керниган называл их «малыми языками», а некоторые – «языками конкретных приложений». Но после того, как язык разрастался, его уже было трудно назвать малым, и он постепенно становился похож на все другие универсальные языки, но иногда с более слабой реализацией.