9. Языки программирования
9.1. Основные понятия и элементы языков программирования
Язык программирования – это набор букв, слов, чисел и мнемонических сокращений, используемых при записи компьютерной программы, а также правила записи программы из элементов языка (его синтаксис).
Обычный разговорный (естественный) язык состоит из четырех основных элементов: символов, слов, словосочетаний и предложений. Компьютерный (формальный) язык программирования содержит подобные же элементы, только слова называют элементарными конструкциями, словосочетания – выражениями, предложения – операторами. Язык программирования (как и любой другой язык), образуют три его составляющие: алфавит, синтаксис и семантика.
Алфавит – фиксированный для данного языка набор символов (букв, цифр, специальных знаков и т. д.), которые могут быть использованы при написании программы.
Синтаксис – правила построения из символов алфавита специальных конструкций, с помощью которых составляется команда. Множество правил порождения элементов языка программирования, выражений и предложений называют грамматикой формального языка или формальной грамматикой.
Семантика – система правил толкования конструкций языка. Таким образом, программа составляется с помощью соединения символов алфавита в соответствии с синтаксическими правилами и с учетом правил семантики.
У формального языка много общего с естественным языком, предложения которого также строятся в соответствии с грамматическими правилами. Однако грамматика естественного языка, подобно наукам о природе с известной степенью достоверности описывает и обобщает результаты наблюдений за естественным языком как за явлением окружающего мира. Характерные для грамматики естественных языков исключения из правил свидетельствуют о том, что зафиксированная в грамматике языка система правил не может в точности описать все закономерности развития языка.
Формальные языки проще естественных языков. Они создаются одновременно с системой правил построения слов и предложений. Исключения из правил в формальном языке могут свидетельствовать лишь о противоречивости и некорректности системы грамматических правил.
Иными словами, язык программирования имеет жёсткую структуру. По русски (на естественном языке) мы можем одну и ту же мысль выразить по-разному: «завтра идти на работу», «на работу идти завтра» или «завтра на работу идти». Эмоциональные оттенки этих фраз будут немного отличаться благодаря смысловому ударению. Однако, в программах такие вольности не допускаются. Если в любой конструкции языка программирования изменить порядок следования элементов, конструкция станет ошибочной.
Грамматические правила можно записывать различными способами. Грамматика естественного языка традиционно описывается в виде грамматических правил на естественном языке. Грамматика формального языка также может быть описана в виде множества правил на естественном языке. Но обычно для этого используют специальные средства записи: формулы и схемы.
Для многих широко распространённых языков программирования созданы международные стандарты. Специальные организации проводят регулярное обновление и публикацию спецификаций и формальных определений соответствующего языка. В рамках таких комитетов продолжается разработка и модернизация языков программирования и решаются вопросы о расширении или поддержке уже существующих и новых языковых конструкций.
Основными элементами (понятиями) языков программирования являются следующие.
Имена (идентификаторы) – последовательность символов для обозначения объектов программы (переменных, массивов, функций и дp.).
Операции. Существуют следующие типы операций:
- арифметические операции: сложение, обозначается символом “+”; вычитание, обозначается символом “–”; умножение, обозначается символом “*”; деление, обозначается символом “/” и дp.;
- логические операции: операции “логическое и”, “логическое или”, “логическое не” и др.;
- операции отношения: меньше, обозначается символом “”; меньше или равно, обозначается символами “=”; равно, обозначается символом “=”; не равно, обозначается символами “<>”.
- операция конкатенации символьных значений дpуг с другом, изображается знаком «+».
- числовые: (7.5, 12;)
- логические: (true(истина), false(ложь));
- символьные: («А», «+»; и т.п.)
- строковые: (например «abcde», «информатика»).
- целые,
- вещественные,
- логические,
- символьные
- строковые.
- арифметические;
- логические;
- строковые.
Понятие о языках программирования
Языки программирования – это формальные языки, специально созданные для общения человека с компьютером. Каждый язык программирования, равно как и «естественный» язык (русский, английский и т.д.), имеет алфавит, словарный запас свои грамматику и синтаксис, а также семантику.
Алфавит – фиксированный для данного языка набор основных символов, допускаемых для составления текста программы на этом языке.
Синтаксис – система правил, определяющих допустимые конструкции языка программирования из букв алфавита.
Семантика – система правил однозначного толкования отдельных языковых конструкций, позволяющих воспроизвести процесс обработки данных.
Взаимодействие синтаксических и семантических правил определяют те или иные понятия языка, например, операторы, идентификаторы, переменные, функции и процедуры, модули и т.д. В отличие от естественных языков правила грамматики и семантики для языков программирования’, как и для всех формальных языков, должны быть явно, однозначно и четко сформулированы.
Синтаксис – описывает структуру программ как наборов символов (обычно говорят — безотносительно к содержанию).
Пример синтаксической ошибки : употребление оператора цикла For без To или Next, или отсутствие знака равенства в приведенной на рисунке программе.
Синтаксические ошибки распознаются встроенным синтаксическим анализатором.
Синтаксису языка противопоставляется его семантика. Синтаксис языка описывает «чистый» язык, в то же время семантика приписывает значения (действия) различным синтаксическим конструкциям.
Семантика – определяет смысловое значение предложений алгоритмического языка.
Пример семантической ошибки :
1) For i As Integer = 1 To 10 Step -2
2) Если надо вычислить , то запись x = a / b * c содержит семантическую ошибку, т.к. приоритет операций деления и умножения одинаков, то вначале а делиться на b , а затем полученный результат умножает на с .
Поиск этих ошибок происходит с помощью логического анализа работы программы и ее тестирования.
Классы языков программирования
- Императивное
- Декларативное
- функциональное
- логическое
- Процедурное
- Объектно-ориентированное
- Неструктурное
- Структурное
- Языки низкого уровня
- Языки высокого уровня
- алфавит языка значительно шире машинного, что делает его гораздо более выразительным и существенно повышает наглядность и понятность текста;
- набор операций, допустимых для использования, не зависит от набора машинных операций, а выбирается из соображений удобства формулирования алгоритмов решения задач определенного класса;
- конструкции операторов задаются в удобном для человека виде;
- поддерживается широкий набор типов данных.
- Фортран – старейший язык программирования, предназначен для решения математических задач.
- Кобол – для решения экономических задач
- Delphi – универсальный.
- Бейсик , Pascal – для обучения.
- Java (джава) – язык сетевого программирования.
- Для системного программирования наиболее подходят языки C, C++, C#. Cи – язык разработанный для написания операционной системы UNIX (обычно ядро операционных систем писали на Assembler ).
Понятие о языках программирования
Языки программирования – это формальные языки, специально созданные для общения человека с компьютером. Каждый язык программирования, равно как и «естественный» язык (русский, английский и т.д.), имеет алфавит, словарный запас свои грамматику и синтаксис, а также семантику.
Алфавит – фиксированный для данного языка набор основных символов, допускаемых для составления текста программы на этом языке.
Синтаксис – система правил, определяющих допустимые конструкции языка программирования из букв алфавита.
Семантика – система правил однозначного толкования отдельных языковых конструкций, позволяющих воспроизвести процесс обработки данных.
Взаимодействие синтаксических и семантических правил определяют те или иные понятия языка, например, операторы, идентификаторы, переменные, функции и процедуры, модули и т.д. В отличие от естественных языков правила грамматики и семантики для языков программирования’, как и для всех формальных языков, должны быть явно, однозначно и четко сформулированы.
Синтаксис – описывает структуру программ как наборов символов (обычно говорят — безотносительно к содержанию).
Пример синтаксической ошибки : употребление оператора цикла For без To или Next, или отсутствие знака равенства в приведенной на рисунке программе.
Синтаксические ошибки распознаются встроенным синтаксическим анализатором.
Синтаксису языка противопоставляется его семантика. Синтаксис языка описывает «чистый» язык, в то же время семантика приписывает значения (действия) различным синтаксическим конструкциям.
Семантика – определяет смысловое значение предложений алгоритмического языка.
Пример семантической ошибки :
1) For i As Integer = 1 To 10 Step -2
2) Если надо вычислить , то запись x = a / b * c содержит семантическую ошибку, т.к. приоритет операций деления и умножения одинаков, то вначале а делиться на b , а затем полученный результат умножает на с .
Поиск этих ошибок происходит с помощью логического анализа работы программы и ее тестирования.
Классы языков программирования
- Императивное
- Декларативное
- функциональное
- логическое
- Процедурное
- Объектно-ориентированное
- Неструктурное
- Структурное
- Языки низкого уровня
- Языки высокого уровня
- алфавит языка значительно шире машинного, что делает его гораздо более выразительным и существенно повышает наглядность и понятность текста;
- набор операций, допустимых для использования, не зависит от набора машинных операций, а выбирается из соображений удобства формулирования алгоритмов решения задач определенного класса;
- конструкции операторов задаются в удобном для человека виде;
- поддерживается широкий набор типов данных.
- Фортран – старейший язык программирования, предназначен для решения математических задач.
- Кобол – для решения экономических задач
- Delphi – универсальный.
- Бейсик , Pascal – для обучения.
- Java (джава) – язык сетевого программирования.
- Для системного программирования наиболее подходят языки C, C++, C#. Cи – язык разработанный для написания операционной системы UNIX (обычно ядро операционных систем писали на Assembler ).