Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Обзор языков программирования высокого уровня( История развития языков )

Содержание:

Введение

Персональные компьютеры занимают важное место в нашей жизни. Сложно поверить, что 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 и пр. Уже известный нам Брайан Керниган называл их «малыми языками», а некоторые – «языками конкретных приложений». Но после того, как язык разрастался, его уже было трудно назвать малым, и он постепенно становился похож на все другие универсальные языки, но иногда с более слабой реализацией.

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

  • 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]

Язык высокого уровня, с помощью которого разрабатываются всплывающие окна с приложениями на веб-сайтах, настраивается работа серверных ПО, создается динамика и снабжается окно сайта различными интерактивными функциями – PHP. Язык РНР дополняет всевозможные современные языки, его активно разрабатывают, поддерживают и развивают, как язык с полностью открытым исходным кодом. Это полезный ЯП для создания программ, которым необходим web-доступ к базам данных. PHP cобрал в себе самое лучшее от языков Рerl и C. К тому же он напоминает своим синтаксисом JavaScript, а характером динамики массивов и строк, типизацией – Perl. К сожалению, данный язык узкопрофильный и подходит только для программирования «под интернет»

Pythоn является интерпретируемым языком скриптов. Развитие языка в настоящее время поддерживается фондом Pythоn Sоftwаrе. Pythоn используется для тех же типов задач, что Pеrl. В их число входят системное администрирование, программирование CGI и другие относительно небольшие вычислительные задачи. Pythоn является системой с открытым исходным кодом и доступен для наиболее популярных платформ. Реализации Pythоn размещены на его официальном сайте, который предлагает также обширную информацию о нем. Синтаксис языка Pythоn отличается от синтаксиса обычного языка. Типы элементов данных проверяются, но типизация динамическая. Синтаксис Python отличается от синтаксиса обычного языка. Преимущества Python – идеален для новичков программирования, простой, имеет большой перечень сред разработки, универсален, быстро растет, очень востребован на рынке услуг. Ко всем большим плюсам его существенными минусами является то, что среди ЯП Pythоn относительно медленный, для мобильных разработок совершенно не удобен и потребляет много памяти в связи своим типом данных.[28]

Наверное, не зря компания Apple, в то время, когда к ним присоединился Стив Джобс, выбрала именно ObjectiveC в качестве основного для своей платформы. И пусть сейчас ему на смену уже пришел другой язык, ObjectiveC является самым хорошим и достойным языком из семейства Cи и Smalltalk для работы в команде. Явные имена аргументов увеличивают читаемость кода и снижают остроту необходимости и свежести документации. Не перегружен операторами, а отсутствие мета-программирования определяют разницу в стилях между членами команд, когда один не понимает другого.

Хочется дополнить, о том, что в Японии в 1996 году реализован язык Rubу, первый в своем роде. Вдобавок он достаточно высокоуровневый, постоянно развивается, поэтому отлично подходит для того, чтобы быть в этом списке. Его создание было мотивировано тем, что Perl и Pуthon недостаточно устраивали разработчика. Ни тот ни другой не являются полностью объектно-ориентированными, так они имеют не объективный тип для каждой функции, которую поддерживают. А Rubу – целиком объектно-ориентированный язык, как и Smаlltаlk. Его синтаксис очень схож с Аda и Еiffеl и использует динамическую типизацию. Руби достаточно широко распространен и используется во всем мире, но развивается, по сути, одним человеком, поэтому его скорость развития не так высока. Rubу определенно имеет массу преимуществ в оформлении, в продуманности, чтении, но все это пока что перекрывает масса недостатков – до второй версии Руби был самым медленным языком в мире, он очень усложнен и на нем писать программу не легко. В дополнении он не очень надежен, поэтому не используется корпорациями.

Из относительно новых языков можно выделить SQL. Его Преимущества - независимость от конкретной СУБД, наличие стандартов и декларативность. Недостатки - несоответствие реляционной модели данных, отступление от стандартов, сложности в целом в языке и в работе с иерархическими структурами.[29]

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

Ни для кого не секрет, что любой ЯП используется только конкретно в своей отрасли, но не малая часть из них применяется чаще, чем остальные. Если рассматривать список самых популярных языков программирования по количеству запросов по мнению Hi, то в нём с неплохим разбегом в лидеры выходит JаvаSсriрt, далее идет Руthоn, затем Jаvа, Rubу и PHP. Следом по убыванию популярности идут C#, Java, SQL, Python.

Но, если принять в расчет сразу несколько параметров языка (количество занятых специалистов, обучающихся языкам студентов, запросов) для того, чтобы оценить их популярность, то список уже будет иным - Java, С, С++, С#, Python и только после них JаvаSсript.

Так же можно проанализировать рейтинг языков относительно зарплат программистов. Оказывается, что больше всех зарабатывают программисты, которые пишут на менее популярных языках. Это языки Go, Scala и Objective-C. В России же больше всего зарабатывают ведущие Java-программисты. Если мы посмотрим вакансии данных специалистов, то заметим, что они получают не менее ста пятидесяти тысяч рублей в месяц.

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

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

3.2 Будущее языков программирования или грядущие тренды

В связи с активным ростом вычислительных возможностей современной техники продолжается и развитие языков программирования, каждый из которых создается всегда с разной целью применения. Большинство из них – это простые разработки узких групп компьютерных специалистов, а иногда и одного человека, занимающегося программированием, но не до конца довольным ходом своего проекта, и такие языки в большинстве своем редко выходят за пределы одной цели применения. Сейчас достаточно редко языки создают при поддержке корпорацией, в основном это случается для достижения определенных целей. Например – сделать ход написания программы более упрощенным, увеличив тем самым скорость разработки; усовершенствовать язык, чтоб он стал надежным на уровне кода; помочь в определенной сфере научных исследований; упростить настройку каких-либо программ для пользователей и многое другое. В течении последних лет появились языки, которые уверенно завоевывают популярность у средств разработки. Так, научный интернет-журнал Hi-Tech.Mail определил четыре ЯП, которые, по их мнению, возьмут пик популярности с 2016 по 2025 года.

В свою очередь, TeachBeacon разделил Я на три группы. Первая – это лидирующие сейчас Java, Javascript, Python, Ruby, PHP, C#, C++ и Objective-C. Второй дивизион – это популярные, но все же не мейнстримные языки программирования. К ним относятся Scala, Go, Swift, Clojure и Haskell. Какие-то из них могут вскоре войти в первый дивизион. Например, Swift, который все шире используется для разработки под iOS и macOS.[31]

Наконец, есть третий дивизион с редко используемыми языками программирования. Самый большой интерес представляют языки, появившиеся недавно, но стремительно набирающие популярность – Elm, Rust, Kotlin, Crystal и Elixir. Они вполне могут попасть во второй дивизион, а в перспективе — и в первый. Например, Rust рассматривается как замена C и C++.

Данные приведены в таблице ниже:

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

Черты и применение

R

C помощью данного языка обрабатывают большие объёмы статистических данных, производят расчёты и создают модели графики. Применяется везде, где нужна статистика и первичный анализ. У данного языка открытый исходный код. Многие глобальные компании работают с языком R, например, такие, как Боинг.[32]

Erlang

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

Go

Данный язык разработался командой Google, он имеет большое количество преимуществ и способностей. О его недостатках сказано очень мало, но известно, что его скорость работы намного ниже популярных языков в 5-10 раз. Go одним из первых начал учитывать преимущества многоядерной архитектуры, многозадачен, высокопроизводителен. Но, к сожалению, на сегодня не все специалисты верят в перспективность данного языка.[33]

Swift

Этот язык – разработка компании Apple. Сами они о нем отзываются, как о первом мощном ЯП, который так же прост и понятен, как языки скриптов. Его создание связано с разработками iOS для мобильных устройств и систем MacOs X, походит для разработки 2D-игрушек, высокопроизводителен и призван заменить устаревающий Objective-C. На бурное развитие Swift оказали существенный влияние и дали толчок такие языки, как Ruby и Python.

Kotlin

Язык, созданный на платформе Java. Он всё чаще используется для написания мобильных приложений, работающих в среде ОС Android. Kotlin обладает более низким порогом вхождения по сравнению с Java, при этом он полностью поддерживается в привычной для разработчиков мобильных программ IDE Android Studio. Вполне вероятно, что Kotlin может со временем стать основным языком разработки для этого класса мобильных устройств.

Важно отметить факт того, что данный язык создан нашими русскими разработчиками. И назван он в честь одного острова, который расположен рядом с Санкт-Петербургом.[34]

Crystal

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

Rust

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

Александр Пряхин, декан факультета WEB-разработки в GU, отметил, что факт того, что через 10 лет на рынке в лидерах будут новые молодые языки – не сто процентный. В своем интервью он призвал посмотреть на Java, который только набирает популярность. А всё потому, что данный язык развивается в ногу со временем, весьма прост в своем применении, подходит к решению задач на современном уровне, хотя его синтаксис весьма строг. Исходя из всего вышесказанного рынок программирования к 2026 году будет определяться такими факторами, как:

  • «Интернетом вещей». В развитие глубже уйдут микроПК и будут разрабатываться языки программирования под них.
  • Для юзера уменьшится время ожидания. Ведь скорость жизни растет, и пользователь хочет получить свой заказ прямо в этот момент, и поэтому отправка денег на карты должна быть максимально простой и быстрой – в одно касание. А такая скорость работы определена не только комплектующими компьютера, но и работой программного обеспечения.
  • Модели «as a service», или проще говоря – секторы IT-услуг. Известный такие, как: Infrastructure, Platform, Software и прочие. Люди начнут осознавать, что использовать сервис намного проще и выгоднее, чем покупать продукт и разбираться с ним самостоятельно.
  • Угрозы информационной безопасности. Год от года вычислительные силы увеличиваются и становятся дешевле. Устаревают алгоритмы шифровки, системы взламывать становится проще, поэтому язык программирования должен помогать в сохранении безопасности и уделять этому много внимания.

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

Заключение

Персональные компьютеры полюбились нам за безграничность использования. Они заменили учебники, телевизоры; ПК содержат в себе столько знаний, сколько невозможно никогда изучить до конца. Даже если покажется, что вам это удалось – пока вы изучаете «старое», технологии выйдут на новый уровень и старые знания обновятся новыми. Поэтому и не существует на свете людей, которые бы знали абсолютно всё.

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

Рассмотренные в данной курсовой работе популярные языки C#, PНP, Python - хорошо подойдут тем, кто только начинает свой развитие в программировании и хотят отлично разбираться в этом деле. Самый популярный JavaScript – c помощью него создаются скрипты, язык реализуется через все основные браузеры. Он отлично справляется с объединением компонентов и создания высокоуровневых системных структур.

Для разработок баз данных больше подойдут языки Delphi и С++ builder. Для написания драйверов и разработок операционных систем - чистый Си или Ассемблер. Так, например, ОС UNIX полностью создана на языке Си - ведь язык Си помогает эффективно выполнять программы и открывает доступ, как к ОС, так и к «железу», не обременяя при этом разработчика всякого рода ограничениями.

С созданием игр лучше всего справляется Visual Си++, к которому вдобавок необходимо уметь применять язык Assembler. Но это не значит, что на другом языке у вас этого не получится. На самом деле, если правильно использовать свои знания, то писать можно что-угодно на каком-угодно языке. Даже на самом медленном и слабом языке программирования можно создавать непревзойденные шедевры.

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

Наши поставленные цели и задачи по обзору языков программирования- выполнены полностью.

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

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

Список использованной литературы:

  1. Артемова С.В. Информатика: Учебное пособие. Ч.1. Тамбов: Изд-во Тамб. гос. техн. ун-та, 2018. - 160 с.
  2. Баррон Д. Введение в языки программирования. Пер. с англ. В.А. Серебрякова. Под ред. Ю.М. Маяковского. М.: Мир (редакция литературы по техническим наукам), 2015. – 190с.
  3. Бекман И.Н. КОМПЬЮТЕРЫ В ИНФОРМАТИКЕ. Курс лекций. Лекция 8. URL: http://profbeckman.narod.ru/EVM.files/Komp8.pdf (дата обращения: 19.06.2020) – 24 с.
  4. Бен-Ари М. Языки программирования. Практический сравнительный анализ. М.: Мир, 2015. - 366 с.
  5. Берт Альтенбёрг, Алекс Кларк и Филипп Муген. Become an Xcoder Начни программировать под Mac OS X используя Objective-C. Русское издание. Версия 1. 2018 – 85 с.
  6. Бьянкуцци Ф., Уорден Ш.: Пионеры программирования. Диалоги с создателями наиболее популярных языков программирования. СПб.: Символ-Плюс, 2016. – 608 c.
  7. Вонг У. Основы программирования для «чайников», 4-е изд.: Пер. с англ. – М. ООО «И.Д.Вильямс», 2018. - 336 с.: ил. – Парал. тит. англ.

Голиков В.А. Интернет курс по дисциплине «Теория программирования» в двух частях. Часть I. Тема 2. МФПУ «Университет», URL: http://e-biblio.ru/book/bib/01_informatika/ProgBK_pt2/Book_teria_prog_2.html#_Toc241999361 (дата обращения: 14.05.2019)

Голицына О.Л., Партыка Т.Л., Попов И.И. Языки программирования, учебное пособие. М.: ФОРУМ-ИНФРА, 2018. - 244 c.

Джеймс Г., Уиттон Д., Хасти Т., Тибширами Р. Введение в статистическое обучение с примерами на языке R. Пер. с англ. С.Э. Мастицкого – М.: ДМК Пресс, 2016 – 450 с.: ил.

  1. Донован, Алан А. А., Керниган, Брайан, У. Д67 Язык программирования Go.: Пер. с англ. - М.: ООО “И.Д. Вильямс”, 2016. - 432 с.: ил. - Парал. тит. Англ.
  2. Кауфман В.Ш. Языки программирования. Концепции и принципы. Саратов: Профобразование, 2017. - 464 с.
  3. Кудрявцев П.П. Курс лекций по дисциплине: Информатика и программирование. Барнаул: Учебное пособие, 2017. – 69 с.
  4. Кудрявцев А.С. Программирование в Delphi: учебное пособие/ ГОУВПО СПбГТУРП СПб., 2015. - 102 с. ил. 47.
  5. Орлов С.А. Теория и практика языков программирования. Учебник для вузов. 2-е изд. Стандарт 3-го поколения; СПб.: Питер, 2017. – 688 c.
  6. Свердлов С.З. Языки программирования и методы трансляции. Учебное пособие; СПб.: Лань, 2019. – 564 c.
  7. Скин Джош. Гринхол Дэвид. Kotlin. Программирования для профессионалов. – СПб.: Питер, 2020. – 464 с.: ил. – (серия для профессионалов)
  8. Тюгашев А.А. Основы программирования. В двух частях. Часть I. СПб.: Университет ИТМО, 2016. - 160 с.
  9. Тюгашев А.А Основы программирования. В двух частях. Часть II. СПб.: Университет ИТМО, 2016. – 116 с.
  10. Фленов М.Е. Библия Delphi. 3-е изд., перераб. и доп. СПб.: БХВ-Петербург, 2015. - 880 с.: ил.

Hi-Tech Mail.ru - крупнейший сайт о технике в Рунете URL: https://hi-tech.mail.ru/review/geekbrains-programming-languages

  1. Бен-Ари М. Языки программирования. Практический сравнительный анализ. М.: Мир, 2015. - 5 с.

  2. Свердлов С.З. Языки программирования и методы трансляции. Учебное пособие; СПб.: Лань, 2019. – 18 c.

  3. Кауфман В.Ш. Языки программирования. Концепции и принципы. Саратов: Профобразование, 2017. - 4 с.

  4. Бьянкуцци Ф., Уорден Ш.: Пионеры программирования. Диалоги с создателями наиболее популярных языков программирования. СПб.: Символ-Плюс, 2016. – 10 c.

  5. Бьянкуцци Ф., Уорден Ш.: Пионеры программирования. Диалоги с создателями наиболее популярных языков программирования. СПб.: Символ-Плюс, 2016. – 10 c.

  6. Бен-Ари М. Языки программирования. Практический сравнительный анализ. М.: Мир, 2015. – 8-10 с.

  7. Кауфман В.Ш. Языки программирования. Концепции и принципы. Саратов: Профобразование, 2017. - 415 с.

  8. Свердлов С.З. Языки программирования и методы трансляции. Учебное пособие; СПб.: Лань, 2019. – 113 c.

  9. Бен-Ари М. Языки программирования. Практический сравнительный анализ. М.: Мир, 2015. - 5 с.

  10. Голиков В.А. Интернет курс по дисциплине «Теория программирования» в двух частях. Часть I. Тема 2. МФПУ «Университет»

  11. Голиков В.А. Интернет курс по дисциплине «Теория программирования» в двух частях. Часть I. Тема 2.

  12. Бен-Ари М. Языки программирования. Практический сравнительный анализ. М.: Мир, 2015. - 5 с.

  13. Бекман И.Н. КОМПЬЮТЕРЫ В ИНФОРМАТИКЕ. Курс лекций. Лекция 8. URL: http://profbeckman.narod.ru/EVM.files/Komp8.pdf (дата обращения: 19.06.2020) – 5-9 с.

  14. Свердлов С.З. Языки программирования и методы трансляции. Учебное пособие; СПб.: Лань, 2019. – 34 c.

  15. Бен-Ари М. Языки программирования. Практический сравнительный анализ. М.: Мир, 2015. – 10 с.

  16. Свердлов С.З. Языки программирования и методы трансляции. Учебное пособие; СПб.: Лань, 2019. – 41 c.

  17. Бьянкуцци Ф., Уорден Ш.: Пионеры программирования. Диалоги с создателями наиболее популярных языков программирования. СПб.: Символ-Плюс, 2016. – 70 c.

  18. Свердлов С.З. Языки программирования и методы трансляции. Учебное пособие; СПб.: Лань, 2019. – 44 c.

  19. Голицына О.Л., Партыка Т.Л., Попов И.И. Языки программирования, учебное пособие. М.: ФОРУМ-ИНФРА, 2018. - 88 c

  20. Свердлов С.З. Языки программирования и методы трансляции. Учебное пособие; СПб.: Лань, 2019. – 78 c.

  21. Кауфман В.Ш. Языки программирования. Концепции и принципы. Саратов: Профобразование, 2017. - 47 с.

  22. Бен-Ари М. Языки программирования. Практический сравнительный анализ. М.: Мир, 2015. – 7 с.

  23. Тюгашев А.А. Основы программирования. В двух частях. Часть I. СПб.: Университет ИТМО, 2016. – 77 с., 120 с.

  24. Свердлов С.З. Языки программирования и методы трансляции. Учебное пособие; СПб.: Лань, 2019. – 87 c., 141 с.

  25. Бьянкуцци Ф., Уорден Ш.: Пионеры программирования. Диалоги с создателями наиболее популярных языков программирования. СПб.: Символ-Плюс, 2016. – 355 c.

  26. Орлов С.А. Теория и практика языков программирования. Учебник для вузов. 2-е изд. Стандарт 3-го поколения; СПб.: Питер, 2017. – 84 c.

  27. Свердлов С.З. Языки программирования и методы трансляции. Учебное пособие; СПб.: Лань, 2019. – 187-188 c.

  28. Орлов С.А. Теория и практика языков программирования. Учебник для вузов. 2-е изд. Стандарт 3-го поколения; СПб.: Питер, 2017. – 85 с.

  29. Орлов С.А. Теория и практика языков программирования. Учебник для вузов. 2-е изд. Стандарт 3-го поколения; СПб.: Питер, 2017. – 86-87 c.

  30. Тюгашев А.А. Основы программирования. В двух частях. Часть I. СПб.: Университет ИТМО, 2016. - 74 с.

  31. Hi-Tech Mail.ru - крупнейший сайт о технике в Рунете URL: https://hi-tech.mail.ru/review/geekbrains-programming-languages

  32. Джеймс Г., Уиттон Д., Хасти Т., Тибширами Р. Введение в статистическое обучение с примерами на языке R. Пер. с англ. С.Э. Мастицкого – М.: ДМК Пресс, 2016 – 56 с.: ил.

  33. Донован, Алан А. А., Керниган, Брайан, У. Д67 Язык программирования Go.: Пер. с англ. - М.: ООО “И.Д. Вильямс”, 2016. – 14-15 с.: ил. - Парал. тит. Англ.

  34. Скин Джош. Гринхол Дэвид. Kotlin. Программирования для профессионалов. – СПб.: Питер, 2020. – 49 с.: ил. – (серия для профессионалов)