Краткий обзор известных языков программирования. Основы программирования и основные языки программирования

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

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

Первый машинный язык был придуман в 1941 году Конрадом Цузе, который является изобретателем аналитической машины. Чуть позже, в 1943 г., Говард Эйкен создал машину "Марк-1", способную считывать инструкцию на уровне машинного кода.

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

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

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

  • Аспектно-ориентированные (основная идея - разделение функциональности для увеличения эффективности программных модулей).
  • Структурные (в основе лежит идея создания иерархической структуры отдельных блоков программы).
  • Логические (в основе лежит теория аппарата математической логики и правил резолюции).
  • Объектно-ориентированные (в таком программировании используются уже не алгоритмы, а объекты, которые принадлежат определенному классу).
  • Мультипарадигмальные (сочетают в себе несколько парадигм, и программист сам решает, каким языком воспользоваться в том или ином случае).
  • Функциональные (в качестве основных элементов выступают функции, которые меняют значение в зависимости от результатов вычислений исходных данных).

Программирование для начинающих

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

  • Basic придуман в 1964 году, относится к семейству высокоуровневых языков и используется для написания прикладных программ.
  • Python ("Питон") довольно легко выучить благодаря простому читаемому синтаксису, преимущество же в том, что на нем можно создавать как обычные десктопные программы, так и веб-приложения.
  • Pascal ("Паскаль") - один из древнейших языков (1969 г.), созданных для обучения студентов. Его современная модификация имеет строгую типизацию и структурированность, однако "Паскаль" - вполне логичный язык, который понятен на интуитивном уровне.

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

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

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

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

Низкоуровневые языки предназначены для создания машинных команд для процессоров. Главное их преимущество в том, что они используют мнемонические обозначения, т. е. вместо последовательности нулей и единиц (из двоичной системы счисления) компьютер запоминает осмысленное сокращенное слово из английского языка. Самые известные языки низкого уровня - это "Ассемблер" (существует несколько подвидов этого языка, каждый из которых имеет много общего, а отличается лишь набором дополнительных директив и макросов), CIL (доступен в платформе.Net) и Байт-код JAVA.

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

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

Следующий список языков программирования: C ("Си"), C# ("Си-шарп"), "Фортран", "Паскаль", Java ("Ява") - входит в число самых используемых высокоуровневых синтаксисов. Он обладает следующими свойствами: эти языки работают с комплексными структурами, поддерживают строковые типы данных и операции с файлами ввода-вывода информации, а также имеют преимущество - с ними гораздо проще работать благодаря читабельности и понятному синтаксису.

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

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

  • языки ООП: Java, C++, Python, PHP, VisualBasic и JavaScript;
  • группа структурных языков: Basic, Fortran и Pascal;
  • мультипарадигмальные: C#, Delphi, Curry и Scala.

Область применения программ и приложений

Выбор языка, на котором написана та или иная программа, во многом зависит от области ее применения. Так, например, для работы с самим "железом" компьютера (написания драйверов и поддерживающих программ) лучшим вариантом станет C ("Си") или С++, которые входят в основные языки программирования (список смотрите выше). А для разработки мобильных приложений, в том числе игр, следует выбрать Java или С# ("Си-шарп").

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

Каким бы совершенным ни был компьютер, без программного обеспечения он представляет собой просто груду металла и пластика. Именно программы определяют, что и как , в какой последовательности он выполняет те или иные операции. Первые языки программирования начали появляться в начале пятидесятых годов и использовались для преобразования простых арифметических выражений в машинный код. Машинный код – это система команд вычислительной машины, интерпретируемых непосредственно микропроцессором. Но человеку писать программу в машинных кодах очень неудобно. Для того чтобы облегчить труд программиста, и начали создаваться языки программирования .Языки программирования делятся на языки высокого уровня и низкого. Чем выше уровень языка, тем легче на нем писать программисту. Такой язык более понятен человеку, так как позволяет с помощью простых смысловых конструкций задавать необходимую последовательность действий. После создания программы происходит ее компиляция – то есть автоматический в понятный процессору язык машинных кодов. Языки низкого уровня находятся гораздо ближе к языку машинных кодов, поэтому писать на них труднее. Но у них есть свое преимущество – написанные на таком языке программы получаются очень быстрыми и компактными. Наиболее популярным низкоуровневым языком является Assembler. Некоторые его преимущества настолько очевидны, что даже в сложных программах, написанных на высокоуровневых языках, часто применяют вставки на Ассемблере.Несмотря на существование большого количества языков программирования , получившие широкое распространение можно пересчитать по пальцам. Одним из самых распространенных является язык C++. Это очень удобный и достаточно простой для программиста язык, позволяющий создавать программы любого уровня сложности. Не так давно компания Microsoft разработала язык C# (читается как «си шарп»), обладающий рядом новых возможностей и предназначенный для написания программ под операционную систему Windows. Компания Microsoft выпустила и очень популярную среду программирования Microsoft Visual Studio, позволяющую программировать на С++, С# и некоторых других языках.Очень известным является язык программирования Delphi. Свое происхождение он ведет от некогда знаменитого Паскаля, однако благодаря усилиям компании Borland приобрел ряд новых качеств, став, по сути, новым языком. Писать на этом языке достаточно просто и удобно, а благодаря среде программирования Borland Delphi он получил очень широкое распространение.Без языков программирования было бы невозможным и существование интернета. Такие языки , как Perl и PHP позволяют создавать скрипты, определяющие выполнение на страницах сайта необходимых действий. Даже создание самой простой интернет-страницы невозможно без знания HTML – стандартного языка разметки документов. Вычислительные устройства сейчас находятся повсюду: в сотовых телефонах и банкоматах, в станках с числовым программным управлением и в телевизорах. Трудно найти сферу жизни, в которой они не были бы тем или иным образом задействованы. И все эти устройства работают благодаря программам, написанным с помощью тех или иных языков программирования .

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

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

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

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

Ассемблер

Ассемблер - группа команд двоичного кода, сгруппированного по секциям. Этот язык используется при дизассемблировании программ. Бывает необходимо узнать код программы по ее исполняемым файлам. Для этого необходимо расшифровать исполняемый файл (работа во многом перекликается с криптографией). Этот процесс расшифровки исполняемых файлов называется дизассемблированием. На выходе программист получает группу команд ассемблера, даже если изначально программа была написана на другом языке. Работа с ассемблером (asm) напоминает программирование в двоичном коде, являясь испытанием даже для сильных программистов.

Популярный С++

Огромное количество программ и оболочек в мире написано на языках группы С. Сам язык С был создан в 1970 году для работы с процессорами. Этот язык отличался большой простотой.

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

Новые языки

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

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

Один из достаточно популярных языков Web-программирования, который, в прочем, на белорусском рынке труда не всегда способен обеспечить своего носителя топовым по заработной плате рабочим местом. Курсы Ruby вряд ли стоит изучать для освоения первого языка программирования, потому что с высокой долей вероятности поиски работодателя затянутся, ведь вакансии для junoir’ов на Ruby появляются довольно редко.

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

Машина не понимает человеческий язык. Конечно, мы не про Siri и другие распознаватели голоса — мы про создание нового софта. Чтобы сделать калькулятор, машине нужно поставить задачу так же, как бригадир объясняет рабочим как класть кирпич. Но «Вася, ёпт, ну ровнее же надо!» нужно описать на языке программирования. Откуда вообще взялись эти языки?

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

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

Желание разумное и понятное, но первый вопрос в голове часто становится непреодолимым барьером — с какого языка начать обучаться программированию? Страх неправильного выбора основывается на страхе потратить время впустую. В итоге начинающий программист несколько лет ищет «свой» язык, никак не продвигаясь к заветной цели. Так, чёрт возьми, какой же выбрать язык?

Критерии выбора первого языка программирования

Выбор языка зависит от задач, которые хочет решить программист. Для интернет-проектов популярен Python, который используют в своих проектах Google и Facebook, для мобильных приложений под Android лучший друг — Java, а под iOS — Swift.

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

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

Помимо универсальности , есть ещё критерии:

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

Под эти три описания лучше всего подходят языки Python, C#, Java и Ruby.

Разработан в 80-е годы голландским программистом Гвидо ван Россумом. Большие технологические компании работают с Python: Яндекс, Google, Facebook и YouTube. Это так называемый скриптовый язык — на нём пишут то, что у программы под капотом. Его используют для веб-приложений, в разработке игр, софта для серверов…

Простота Популярность Универсальность

Код легко читается, у него понятная структура. Стандартного инструментария достаточно для начала обучения.

Занимает 1-е место в программах начального обучения программированию в университетах США.

Регулярно обновляется — раз в 2,5 года. Входит в пятерку популярных языков по версии аналитической компании TIOBE Software на январь 2016 года.

На Python пишут почти всё: скрипты управления системами, веб-сайты, системы машинного обучения, игры.

Язык был разработан в конце 90-х на базе C++ и Java. В основном используется для больших enterprise-проектов, но не ограничивается только ими. Например, скрипты в игровом движке Unity пишут на C#.

Простота Популярность Универсальность

Структурно близок к C++ и Java — синтаксис (структура программного кода) сложнее, чем у Python и Ruby, но зато на изучение родственных языков уйдёт меньше времени. Интерфейсы библиотек хорошо вписываются в шаблоны проектирования — это упрощает изучение.

Последнее обновление было в 2015-м году.

На C# пишут под Windows Phone, iOS и Android. Большое количество документации, но библиотек со свободной лицензией не много — это значит, что для обучения программист может использовать чужой код, но вот для использования в коммерческом продукте нужно платить.

Язык придумали программисты из Microsoft для разработки Windows-приложений. Несмотря на это, его используют и в других системах. Также работает на встраиваемых, десктопных и серверных платформах.


Ruby

Создан японским разработчиком под влиянием языка Perl. Запущен в 1995 году. На Ruby написаны: Shopify, Github, Groupon, Yellow Pages, Twitter и Slideshare. Он набирает популярность, но чаще встречается в стартапах, нежели в крупных компаниях. Хорошо подходит для создания простого интернет-проекта.

Простота Популярность Универсальность

Как и Python, код легко читается. Структура также идентична Python. В сравнении с остальными языками, выбор стандартных библиотек скуднее — нужно потратить время на поиски.

Большое и лояльное сообщество разработчиков — замыкает десятку самых популярных языков по версии TIOBE Software. Много библиотек в свободном доступе.

Наименее универсальный из всей четвёрки — в основном подходит для web-разработок. С другой стороны, внутри интернет-проектов с ним можно делать очень разные и очень крутые вещи.


Java

Первая версия языка вышла в мае 1995 года. Java используется в Amazon, eBay, LinkedIn и Yahoo!

Простота Популярность Универсальность

Как было сказано ранее, у Java и C# очень похожий синтаксис — выучил один, почти знаешь другой. Но как и в первом случае, синтаксис сложнее, чем у Ruby и Python.

В мире 3 миллиарда смартфонов на Android — это значит, что Java ещё долго будет востребован. Первый по популярности по версии TIOBE Software.

Чаще всего используется для enterprise-разработки и Android-приложений.


Итог препарирования

Вывод сделать сложно. С одной стороны манит возможность одним выстрелом убить двух зайцев и взять Java или C#, но Python манит свой универсальностью, а Ruby — простотой.

Мы сомневались и пошли говорить с опытными разработчиками — они всё же советуют остановиться на Python. Вот что говорит Григорий Петров, профессиональный разработчик, евангелист VoxImplant:

«Язык программирования Python часто называют «исполняемым псевдокодом», потому что синтаксис языка и стандартные библиотеки делают упор на читаемость и понятность. Добавим к этому широчайший выбор средств разработки, библиотек, обучающих материалов — и мы получим один из лучших языков программирования для начинающих».

Вывод: пока нет чётких задач и ясных целей, а есть только желание кодить, остановиться стоит на Python — он простой, популярный и универсальный. Никита Соболев, преподаватель программирования для начинающих в #tceh, также считает выбор этого языка оптимальным для новичка — образовательная программа получилась сложнее и длиннее, чем на курсе по Ruby, но свобода в выборе направления того стоит.

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

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

Существующие языки программирования можно разделить на две группы: процедурные и непроцедурные (см. рис. 4.1).

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

Процедурные языки разделяют на языки низкого и высокого уровня.

Разные типы процессоров имеют разные наборы команд. Если язык программирования ориентирован на конкретный тип процессора и учитывает его особенности, то он называется языком программирования низкого уровня.
Имеется в виду, что операторы языка близки к машинному коду и ориентированы на конкретные команды процессора.

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

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

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

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

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

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

Работа всех трансляторов строится по одному из двух принципов: интерпретация или компиляция.

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

Несмотря на указанные недостатки, трансляторы-интерпретаторы получили достаточное распространение, так как они удобны при разработке и отладке исходных программ.

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

Большая сложность в разработке компилятора по сравнению с интерпретатором с того же самого языка объясняется тем, что компиляция программы включает два действия: анализ, т. е. определение правильности записи исходной программы в соответствии с правилами построения языковых конструкций входного языка, и синтез – генерирование эквивалентной программы в машинных кодах. Трансляция методом компиляции требует неоднократного «просмотра» транслируемой программы, т. е. трансляторы-компиляторы являются многопроходными: при первом проходе они проверяют корректность синтаксиса языковых конструкций отдельных операторов независимо друг от друга, при последующем проходе – корректность синтаксических взаимосвязей между операторами и т. д.

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

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

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

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



При использовании декларативного языка программист указывает исходные информационные структуры, взаимосвязи между ними и то, какими свойствами должен обладать результат. При этом процедуру его получения («алгоритм») программист не строит (по крайней мере, в идеале). В этих языках отсутствует понятие «оператор» («команда»). Декларативные языки можно подразделить на два семейства – логические (типичный представитель – Пролог) и функциональные (Лисп).

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

1.Фортран (FORmula TRANslating system – система трансляции формул); старейший и по сей день активно используемый в решении задач математической ориентации язык. Является классическим языком для программирования на ЭВМ математических и инженерных задач

2.Бейсик (Beginner"s All-purpose Symbolic Instruction Code – универсальный символический код инструкций для начинающих); несмотря на многие недостатки и изобилие плохо совместимых версий – самый популярный по числу пользователей. Широко употребляется при написании простых программ.

3.Алгол (ALGOrithmic Language – алгоритмический язык); сыграл большую роль в теории, но для практического программирования сейчас почти не используется.

4.ПЛ/1 (PL/1 Programming Language – язык программирования первый); многоцелевой язык; сейчас почти не используется.

5.Паскаль (Pascal – назван в честь ученого Блеза Паскаля); чрезвычайно популярен как при изучении программирования, так и среди профессионалов. Создан в начале 70-х годов швейцарским ученым Никлаусом Виртом. Язык Паскаль первоначально разрабатывался как учебный, и, действительно, сейчас он является одним из основных языков обучения программированию в школах и вузах. Однако качества его в совокупности оказались столь высоки, что им охотно пользуются и профессиональные программисты. Не менее впечатляющей, в том числе и финансовой, удачи добился Филип Кан, француз, разработавший систему Турбо-Паскаль. Суть его идеи состояла в объединении последовательных этапов обработки программы – компиляции, редактирования связей, отладки и диагностики ошибок – в едином интерфейсе. Версии Турбо-Паскаля заполонили практически все образовательные учреждения, программистские центры и частные фирмы. На базе языка Паскаль созданы несколько более мощных языков (Модула, Ада, Дельфи).

6.Кобол (COmmon Business Oriented Language – язык, ориентированный на общий бизнес); в значительной мере вышел из употребления. Был задуман как основной язык для массовой обработки данных в сферах управления
и бизнеса.

7.АДА ;является языком, победившим (май 1979 г.) в конкурсе по разработке универсального языка, проводимым Пентагоном с 1975 году. Разработчики – группа ученых во главе с Жаном Ихбиа. Победивший язык окрестили АДА, в честь Огасты Ады Лавлейс. Язык АДА – прямой наследник языка
Паскаль. Этот язык предназначен для создания и длительного (многолетнего) сопровождения больших программных систем, допускает возможность параллельной обработки, управления процессами в реальном времени и многое другое, чего трудно или невозможно достичь средствами более простых языков.

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

9.Си++ (С++);объектно-ориентированное расширение языка Си, созданное Бьярном Страуструпом в 1980 году. Множество новых мощных возможностей, позволивших резко повысить производительность программистов, наложилось на унаследованную от языка Си определенную низкоуровневость.

10.Дельфи (Delphi); язык объектно-ориентированного «визуального» программирования; в данный момент чрезвычайно популярен. Созданный на базе языка Паскаль специалистами фирмы Borland язык Delphi, обладая мощностью и гибкостью языков Си и Си++, превосходит их по удобству и простоте интерфейса при разработке приложений, обеспечивающих взаимодействие с базами данных и поддержку различного рода работ в рамках корпоративных сетей и сети Интернет.

11.Ява (Java); платформенно-независимый язык объектно-ориентированного программирования, чрезвычайно эффективен для создания интерактивных веб-страниц. Этот язык был создан компанией Sun в начале 90-х годов на основе СИ++. Он призван упростить разработку приложений на основе Си++ путем исключения из него всех низкоуровневых возможностей.

12.Лисп (Lisp) – функциональный язык программирования. Ориентирован на структуру данных в форме списка и позволяет организовать эффективную обработку больших объемов текстовой информации.

13.Пролог (PROgramming in LOGic – логическое программирование). Главное назначение языка – разработка интеллектуальных программ и систем. Пролог – это язык программирования, созданный специально для работы с базами знаний, основанными на фактах и правилах (одного из элементов систем искусственного интеллекта). В языке реализован механизм возврата для выполнения обратной цепочки рассуждений, при котором предполагается, что некоторые выводы или заключения истинны, а затем эти предположения проверяются в базе знаний, содержащей факты и правила логического вывода.
Если предположение не подтверждается, выполняется возврат и выдвигается новое предположение. В основу языка положена математическая модель теории исчисления предикатов.

Языки программирования для Интернета:

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

2. PERL. Он задумывался как средство эффективной обработки больших текстовых файлов, генерации текстовых отчетов и управления задачами.
По мощности Perl значительно превосходит языки типа Си. В него введено много часто используемых функций работы со строками, массивами, управление процессорами, работа с системной информацией.

3. Tcl/Tk. Этот язык ориентирован на автоматизацию рутинных процессов и состоит из мощных команд. Он независим от системы и при этом позволяет создавать программы с графическим интерфейсом.

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

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

Контрольные вопросы

1. Что такое системы программирования и к какому классу программ они относятся?

2. Что входит в состав систем программирования?

3. На каком языке программирования создавались первые программы?

4. На какие языки подразделяются процедурные языки?

5. Охарактеризуйте языки низкого уровня.

6. Какой язык относится к языку низкого уровня?

7. Достоинства языков низкого уровня.

8. Охарактеризуйте языки высокого уровня.

9. Достоинства языков высокого уровня.

10. Приведите примеры языков высокого уровня.

11. Для чего предназначены трансляторы?

12. Чем отличается компилятор от интерпретатора?

13. Недостатки интерпретации (как вид транслятора).

14. Что представляет собой процесс компиляции программы?

15. Какие действия выполняются при компиляции?

16. Чем отличается загрузочный модуль от объектного?

17. Чем отличается процедурное программирование от непроцедурного?

18. Какие виды программирования относятся к непроцедурному
программированию?

19. Особенность декларативных языков.

20. Охарактеризуйте кратко языки программирования: Фортран, Бейсик, Паскаль, Кобол.

21. Охарактеризуйте кратко языки программирования: Ада, Си, Си++, Delphi, Java.

22. Приведите примеры объектно-ориентированных языков.

23. К какому классу языков относится язык Лисп?

24. К какому классу языков относится язык Пролог?