Каковы основные составляющие языка программирования

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

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

При создании нового ЯП разработчики исходят, прежде всего, из семантики — смысловой составляющей: чем он будет отличаться от предшествовавших, для решения каких задач предназначен? Например, язык Erlang ориентирован на создание распределённых вычислительных систем. На нем вряд ли будет удобно разрабатывать настольные приложения. На C# лучше всего писать программы, работающие под управлением операционной системы Microsoft Windows. Язык Prolog предназначен для логического анализа и малопригоден для придания интерактивности веб-страницам.

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

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

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

Читайте также:  Программирование микроконтроллеров программа avr

Синтаксис — набор символов и составляемых из них слов (лексем), допустимых в данном языке программирования безотносительно к описываемому содержанию.

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

Принцип работы семантического анализатора. Автор24 — интернет-биржа студенческих работ

Рисунок 1. Принцип работы семантического анализатора. Автор24 — интернет-биржа студенческих работ

Средства разработки

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

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

Средства разработки, как правило, включают в себя:

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

Рисунок 2. Компиляция программы и ее запуск. Автор24 — интернет-биржа студенческих работ

К интерпретируемым (скриптовым) языкам относятся Python, JavaScript, Perl. К компилируемым — Си, C++, Pascal и др.

Программы на таких языках, как Java, C# сначала преобразуются в промежуточный кроссплатформенный байт-код (для Java — файлы с расширением *.class ). В машинные команды он преобразуется внутри т.н. виртуальной машины, скрывающей специфику операционной системы.

Компоновщик связывает текст программы с необходимыми для ее работы модулями (библиотеками) и приводит к виду, в котором она может быть использована в рамках той или иной операционной системы. Упаковщик объединяет разрозненные фрагменты кода в архивы, которые удобно переносить с компьютера на компьютер (например, jar-архивы для Java, COM-компоненты Microsoft).

Для удобства разработки утилиты, необходимые для создания программ, часто объединяют в IDE (Integrated Development Enviroments — интегрированные среды разработки). В таких системах все необходимые технологические операции, связанные с разработкой, скрыты за удобными графическими меню, а в процессе написания программы редактор подсвечивает синтаксис и автодополняет лексемы, облегчая работу программиста.

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

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

  • развернутая справочная система; всегда есть ключевой интернет-ресурс, где можно узнать о правильном использовании возможностей языка; например, для Java это соответствующий сайт компании Oracle, для JavaScript — веб-каталоги организации Mozilla Development Network и т.п.;
  • пакетные менеджеры; поставщики современных ЯП предоставляют своим пользователям возможность устанавливать необходимые компоненты для программ через сеть Интернет; для Java в этих целях может быть использована система Maven, для JavaScript — npm, для Python — pip;
  • комьюнити; пользователи языков программирования объединяются в сообщества, чтобы делиться опытом, помогать друг другу в решении проблем, сообщать о новинках; периодически для разработчиков устраиваются офлайн-конференции, на которых выступают ведущие специалисты, рассматриваются перспективные направления развития ЯП. На таких мероприятиях можно иногда просто приятно повести время среди единомышленников.

Источник

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

9.1. Основные понятия и элементы языков программирования

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

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

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

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

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

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

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

Иными словами, язык программирования имеет жёсткую структуру. По русски (на естественном языке) мы можем одну и ту же мысль выразить по-разному: «завтра идти на работу», «на работу идти завтра» или «завтра на работу идти». Эмоциональные оттенки этих фраз будут немного отличаться благодаря смысловому ударению. Однако, в программах такие вольности не допускаются. Если в любой конструкции языка программирования изменить порядок следования элементов, конструкция станет ошибочной.

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

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

Основными элементами (понятиями) языков программирования являются следующие.

Имена (идентификаторы) – последовательность символов для обозначения объектов программы (переменных, массивов, функций и дp.).

Операции. Существуют следующие типы операций:

  • арифметические операции: сложение, обозначается символом “+”; вычитание, обозначается символом “–”; умножение, обозначается символом “*”; деление, обозначается символом “/” и дp.;
  • логические операции: операции “логическое и”, “логическое или”, “логическое не” и др.;
  • операции отношения: меньше, обозначается символом “”; меньше или равно, обозначается символами “=”; равно, обозначается символом “=”; не равно, обозначается символами “<>”.
  • операция конкатенации символьных значений дpуг с другом, изображается знаком «+».
  • числовые: (7.5, 12;)
  • логические: (true(истина), false(ложь));
  • символьные: («А», «+»; и т.п.)
  • строковые: (например «abcde», «информатика»).
  • целые,
  • вещественные,
  • логические,
  • символьные
  • строковые.
  • арифметические;
  • логические;
  • строковые.

Источник

Оцените статью