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

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

Содержание:

ВВЕДЕНИЕ

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

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

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

Объектом исследования являются языки программирования и их основные характеристики. 

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

Задачи исследования:

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

В первой главе рассматривается обобщённая классификация языков программирования.

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

1. КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

1.2 Типологизация языков программирования

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

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

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

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

Существуют различные классификации, которые делят языки на группы, в зависимости от:

  • вида обрабатываемой информации: вычислительные (Haskell, Python) и символьные (C, C++, Perl);
  • назначения: для администрирования (Perl), серверные (PHP), клиентские (Javascript), декларативные (HTML), универсальные (Алгол, Фортран);
  • поколения языка: машинные (двоичные языки процессоров IBM-PC и ARM), системные (Assembler), языки высокого уровня (бейсик, фортран, PHP), визуальные (FoxPro) и интеллектуальные (C++).

Так же языки программирования можно разделить на две большие группы: машинно – ориентированные и машинно – независимые языки.

Машинно-ориентированные языки по степени автоматического программирования подразделяются на следующие классы:

- машинные языки;

- языки символического кодирования;

- автокоды;

- ассемблеры;

- макрос.

Среди машинно – независимых языков выделяют следующие языки программирования:

- проблемно – ориентированные языки;

- универсальные языки;

- диалоговые языки;

- непроцедурные языки.

Помимо этого, языки программирования также можно разделять на поколения, можно классифицировать на процедурные и непроцедурные и по многим другим основаниям. [11]

http://rudocs.exdat.com/pars_docs/tw_refs/40/39443/39443_html_m6f814c52.jpg

Рисунок 1. Обобщенная классификация языков программирования

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

1.2 Языки низкого уровня

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

Языки низкого уровня имеют следующие особенности:

  • высокое качество создаваемых программ (компактность и скорость выполнения);
  • возможность использования конкретных аппаратных ресурсов;
  • предсказуемость объектного кода и заказов памяти;
  • для составления эффективных программ необходимо знать систему команд и особенности функционирования данной ЭВМ;
  • трудоемкость процесса составления программ (особенно на машинных языках и ЯСК), плохо защищенного от появления ошибок;
  • низкая скорость программирования;
  • невозможность непосредственного использования программ, составленных на этих языках, на ЭВМ других типов.

Машинные коды.

Программы представляют собой набор двоичных данных и представляют собой сложную структуру. Каждый отдельный компьютер имеет свой определенный машинный язык, ему предписывают выполнение указываемых операций над определяемыми ими операндами, поэтому данный язык является командным. Однако, некоторые семейства ЭВМ (например, ЕС ЭВМ, IBM/370/ и др.) имеют единый язык для ЭВМ разной мощности. В команде любого из них сообщается информация о местонахождении операндов и типе выполняемой операции.

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

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

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

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

1.3 Языки высокого уровня

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

Линейные языки.

Одна из начальных веток развития систем программирования. Языки этого уровня не имеют понятия процедур и функций, тем самым программный код исполняется последовательно. Первые версии таких языков не имели даже механизмов ветвления, а программы на них представляли собой просто набор операторов для вычисления элементарных математических задач. Одним из примеров этого типа языка может послужить отечественный «Краткий код» (1949).

Процедурные языки.

Процедуры данных языков, по существу, представляют собой крупные логические блоки, обеспечивающие выполнение тех или иных операций. В них используется принцип модульного программирования. Первым общепризнанным процедурным языком можно по праву назвать Fortran, версия которого появилась в ноябре 1954 года. Позднее, в октябре 1956 года появилась версия Fortran I, а через год Fortran II. Еще через год появился Fortran III, но монополизм этого языка был нарушен с появлением более продуманных языков, таких как Cobol (1957), Lisp (1958), Algol’58 (1958), APL (1960), Basic (1964), Pascal (1967), C (1972).

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

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

Логические языки.

Данные языки базируются на принципах построения логических систем формальной логики и алгебры. Программирование на языке такого уровня напоминает чем-то формальную запись предложений естественного языка с использованием различных логических моделей для имитации систем искусственного интеллекта. В основе этих языков лежит достаточно сложная теория, именно поэтому они не получили должного распространения. К таким языкам относятся Prolog (1970), KLO, Mandala и Mercury.

Объектно – ориентированные языки.

В основе лежит концепция, в которой переменные, процедуры и функции объединяются в классы, реализуемые в исходном коде в виде объектов. Первый объектно – ориентированный язык программирования Simula 67 был разработан в конце 60-х годов в Норвегии. Фактически объектно – ориентировочное программирование можно рассматривать как модульное программирование, когда вместо механического объединения процедур и функций, акцент делается на их связанное взаимодействие. Основные представители:

  • С++ (1986, широко используется во многих областях, обеспечивает хорошее сочетание функциональности и простоты использования);
  • Java (потомок С++, основным его преимуществом считается платформо – независимость);
  • C# (2000, является удачным сочетанием двух вышеуказанных языков, ориентирован на разработку Web – приложений);
  • Delphi (1998, объектно – ориентированный Pasсal);
  • Visual Basic (1991, объектно – ориентированный вариант одного из наиболее простых языков программирования).

Языки запросов к базам данных.

Данные языки обеспечивают интерфейс к базам данных, при помощи которого возможно проводить операции как с данными, так и со структурой. Чаще всего такие языки называют структурированными языками запросов (SQL - Structured Query Language), для каждой системы управления базами данных (СУБД) разработана своя модификация языка запросов. Например, для СУБД Microsoft SQL Server – это Transact SQL, а для Oracle – PL/SQL. Существует общий стандарт, которого придерживается каждый из создаваемых языков - SQL 92.

Языки сценариев.

Эта группа языков используется в сфере Web – разработок, для создания динамически обновляемых Web-сайтов, взаимодействующих с различными базами данных. Под сценарием (скриптом) понимается интерпретируемая программа, встроенная в HTML документ. При написании сценариев не стоит забывать о строгом порядке, в котором браузер формирует содержимое страницы. Самыми известными на сегодняшний день языками сценариев считаются Visual Basic Script, JavaScript, Perl и PHP.

Макросы.

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

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

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

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

Интерпретаторы 

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

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

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

К интерпретируемым языкам относится Basic и Perl.

Компиляторы 

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

Похожее Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸ÐµК компилируем языкам относятся С, С++, Pascal, Java, Fortran.

Рисунок 2. Классификация языков программирования – трансляторов

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

2. ВЫБОР СРЕДЫ И ЯЗЫКА РАЗРАБОТКИ ПРОГРАММ

2.1. Основы технологии программирования.

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

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

Чем подробнее и продуманней алгоритм, тем лучше работает программа. Именно с создания алгоритма – «скелета» будущей программы – начинается программирование.

2.2. Факторы, влияющие на выбор языка программирования

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

  1. Целевая платформа. Самым важным фактором является платформа, на которой программа будет работать. Рассмотрим для примера Java™ и C. Если программа написана на C и должна работать на машинах с Windows® и Linux®, потребуются компиляторы для платформ и два разных исполняемых файла. В случае с Java сгенерированного байт-кода будет достаточно для выполнения программы на любом компьютере, на котором установлена виртуальная Java-машина.
  2. Гибкость языка. Определяется тем, насколько легко можно добавлять к существующей программе новые функциональные возможности. Это может быть добавление нового набора функций или использование существующей библиотеки для добавления новой функциональности.
  3. Время исполнения проекта. Это время, необходимое для создания рабочей версии программы, т.е. версии, готовой для работы в производственных условиях и выполняющей предусмотренные функции. При расчете этого времени необходимо учитывать не только логику управления, но и логику представления. Время исполнения проекта очень зависит от размера кода.
  4. Производительность. Каждая программа и платформа имеет определенный предел производительности, и на эту производительность влияет используемый при разработке язык. Производительность языка нужно учитывать в случае, когда целевая среда не предлагает широкой масштабируемости, – например, при разработке для мобильных устройств.
  5. Поддержка и сообщество. Язык программирования, как и хорошая программа, должен опираться на твердую поддержку сообщества. Язык с активным форумом скорее всего будет популярнее замечательного языка, помощь по которому трудно найти. Поддержка сообщества – это вики-сайты, форумы, учебные руководства и, самое важное, дополнительные библиотеки, развивающие язык. Прошли те дни, когда люди работали автономно. Никто не захочет перерывать горы документации, чтобы решить одну маленькую проблему. Если у языка много сторонников, это увеличивает шансы того, что ранее кто-нибудь сталкивался с вашей проблемой и уже написал об этом на вики-сайте или на форуме. [17]

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

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

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

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

C:\Users\User\Desktop\MzExNjk1OA.jpeg

Рисунок 4. Пятый ежегодный интерактивный рейтинг лучших языков программирования (IEEE Spectrum - 2018)

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

Рисунок 5. Динамика рейтинга языков программирования

2.3. Критерии выбор языка программирования в соответствии со средой использования

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

Задача

Примеры языков

Задачи искусственного

интеллекта

Lisp, Prolog, Multilisp, Commonlisp, Рефал, Planner, QA4, FRL, KRL, QLisp

Параллельные

вычисления

Fun, Apl, Alfl, PARAlfl, ML, SML, PPL/1, Hope, Miranda, Occam, PFOR, Glypnir, Actus, параллельный Cobol, ОВС-ЛЯПИС, ОВС-Мнемокод, ОВС-Алгол, ОВС-Фортран, PA(1), PA(G)

Задачи вычислительной

математики и физики

Occam, PFOR, Glypnir, Actus, параллельный Cobol, ОВС-ЛЯПИС, ОВС-Мнемокод, ОВС-Алгол, ОВС-Фортран, PA(1), PA(G)

Разработка

интерфейса

Forth, c, C++, Ассемблер, Макроассемблер, Simula-67, OAK, Smalltalk, Java, РПГ

Разработка

программ-оболочек,

разработка систем

Forth, c, C++, Ассемблер, Макроассемблер, Simula-67, OAK, Smalltalk, Java, РПГ

Задачи вычислительного

характера

Algol, Fortran, Cobol, Ada, PL/1,Фокал, Basic, Pascal

Оформление документов, обработка больших текстовых файлов, организация виртуальных трехмерных интерфейсов в Интернете, разработка баз данных

Perl, Tcl/Tk, VRML, SQL, PL/SCL, Informix 4GL, Natural, DDL, DSDL, SEQUEL, QBE, ISBL

Таблица 1. Классификация языков программирования на основании

выполняемой задачи.

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

№ п/п

Задача

Язык

программирования

Особенности

Среда

применения

1

Чтобы

понимать,

как

устроен

и как

работает

компьютер

С

Классический язык: фундамент современного мира ПО.

Низкий уровень (близко к
аппаратуре).

Выжимает из оборудования максимум.

Традиционный процедурный
статически типизированный
язык.
Предмет восхищения и критики.

Есть на любом компьютере.

Примеры программ: Windows,
Linux, Android, Tizen.
Где можно попробовать:
Microsoft Visual Studio, Clang (Linux)

2

Чтобы

научиться

работать

с данными

и строить

сложные

структуры

данных

С#

Объектно-ориентированный язык высокого уровня: классы, наследование, полиморфизм.

Поддержка элементов функционального подхода.

Похож на Java.

Основной инструмент программирования традиционных приложений для Microsoft Windows.

Можно программировать смартфоны и веб-сайты.

Без C# встанут банки и не включится смартфон.

В работе Windows начнутся существенные сбои.

Язык находится под контролем Microsoft; активно развивается.

Где можно попробовать: Microsoft Visual Studio, MonoDevelop (Linux).

Java

Объектно-ориентированный переносимый язык высокого уровня: классы, наследование, полиморфизм.
Между языком и компьютером - прослойка: «виртуальная машина Java».

Основной инструмент прикладного программирования традиционных приложений.

Можно программировать смартфоны (Android).

Без Java встанут банки и не включится смартфон.

Язык находится под контролем Oracle; развивается медленно.

Где можно попробовать: Eclipse, IntelliJ IDEA, NetBeans (Linux, Windows).

3

Чтобы

научиться

эффективно
программировать алгоритмы

со
сложными структурами данных

С++

Выжимает из оборудования максимум. Совместим с С.

Обеспечивает все мыслимые потребности программирования, поэтому довольно сложный.
«Первый этаж» современного
мира ПО.

Мультипарадигменный язык:
процедурный подход + ООП.

Примеры программ: Google Chrome, Firefox, Safari, Microsoft
Office, Adobe Photoshop, Youtube, игры на PC.

Где можно попробовать: Microsoft Visual Studio, g++ (везде),Clang (Linux).

4

Чтобы

научиться

делать

сложные

веб-сайты

JavaScript

Для программирования клиентских частей веб-сайтов:
всё, что видим в браузере,– сделано JavaScript’ом.

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

«С» для веб-программирования.

Примеры программ: любой сайт; некоторые приложения для iPhone и Android.

Где можно попробовать: Aptana, WebStorm, ZendStudio, Microsoft Visual Studio for Web.

5

Чтобы

научиться

программировать

C#,

Java,

Python

Динамический интерпретируемый объектно-ориентированный язык.

Работает везде.

Прост в изучении (сравнительно с C++, Java, C#).
Без него Google не будет искать.

Примеры программ: Google,
Яндекс, Instagram, World of Tanks.
Где можно попробовать: Microsoft Visual Studio (IronPython), PyCharm,
Eclipse+PyDev, Linux Ubuntu
(python).

Таблица 2. Критерии отбора языков программирования

Приведем примеры использования языков программирования наиболее успешными и быстроразвивающимися компаниями:

  • Microsoft – C, C++, C#, HTML5/JavaScript.
  • Google – C, C++, Java, Python, Go, HTML5/JavaScript.
  • Apple – Objective-C, Swift.
  • Samsung – C, C++, Java, Python, JavaScript.
  • YouTube – Python.

Таким образом, по разным оценкам, в мире насчитывается 400-600 production-ready языков программирования. И, как минимум, на два порядка больше экспериментальных проектов. При этом, из всего множества языков можно выделить только небольшой процент (от 10 до 20) наиболее популярных известных языков, которые и определяет границы рационального выбора, исходя из поставленных задач и определяемых критериев.
Разумеется, такой выбор не стоит отождествлять с качеством языка. Однако, они связаны. Хороший язык программирования делает умнее, вынуждая развиваться не только самому, но и развивать всю отрасль в целом, что, безусловно, является главным преимуществом для человечества.

ЗАКЛЮЧЕНИЕ

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

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

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

СПИСОК ИСПОЛЬЗОВАНЫХ ИСТОЧНИКОВ

  1. Андреева Т.А. Программирование на языке Pascal / Т.А. Андреева – М.: Интернет-университет информационных технологий, Бином. Лаборатория знаний, 2006. − 341 с.
  2. Ваулин А.С. Языки программирования. Кн. 5 / А.С. Ваулин. – М.: Высшая школа, 1993. – 159 с.
  3. Вик Курилович Visual Basic / В. Курилович – М.: Солон-Пресс, 2006. – 384 с.
  4. Джаррод Холингворт, Боб Сворт, Марк Кэшмэн, Поль Густавсон Borland C++ Builder 6. Руководство разработчика Borland C++ Builder 6 Developer’s Guide. — М.: «Вильямс», 2004. – 976 с.
  5. Джошуа Блох Java. Эффективное программирование Effective Java. Programming Language Guide − Серия: Java / Д. Блох Лори, 2002 г. – 224 с.
  6. Желонкин А. Основы программирования в интегрированной среде DELPHI / А. Желонкин − М: Бином. Лаборатория знаний, 2004. – 240 с.
  7. Карбонелл П. Рейтинг популярности языков программирования: https://tproger.ru/news/pypl-and-ide-index/
  8. Касс. С. Лучшие языки программирования 2018 г.: https://spectrum.ieee.org/static/interactive-the-top-programming-languages-2018
  9. Кобелев И.А., Иванова Л.В., Чекушина В.Е. Два типа языков программирования // Современные проблемы науки и образования. – 2014. – № 4.
  10. Лафоре Р. Объектно-ориентированное программирование в С++ Object-Oriented Programming in C++ / Р. Лафорте. – СПБ.: Питер, 2011. – 928 с.
  11. Леонтьев В.П. Компьютер. Настольная книга / В.П. Леонтьев – М: «Просвещение», 2007 – 480 с.
  12. Малышева Т.В. Информатика и вычислительная техника: https://nsportal.ru/npo-spo/informatika-i-vychislitelnaya-tekhnika/library/
  13. Microsoft Visual Studio. Языки программирования: https://life-prog.ru/1_3856_mashinnonezavisimie-yaziki-programmirovaniya.html
  14. Пильщиков В.Н. Assembler. Программирование на языке ассемблера IBM PC / В.Н. Пильщиков. – М.: Диалог-МИФИ, 2005. – 288 с.
  15. Джерри Регунад, Неха Джайн. Выбор оптимального языка программирования: https://www.ibm.com/developerworks/ru/library/waoptimal/-index.html