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

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

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

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

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

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

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

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

Пример синтаксической ошибки : употребление оператора цикла 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 ).

    Источник

    Средства описания языков программирования

    Средства описания языков программирования. Как уже указывалось, язык программирования должен иметь алфавит, синтаксис и семантику. Правила, определяющие структуру текста, составляют синтаксис (грамматику). Правила, позволяющие извлекать из текста смысл, называются семантикой языка.

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

    Этот способ записи назвали нормальной формой Бэкуса, или БНФ. Датский астроном П. Наур внес некоторые уточнения, и форму стали называть формой Бэкуса—Наура, но сокращенное название БНФ осталось.

    В БНФ каждое понятие определяется с помощью одной металингвистической формулы, в левой части которой указываются определяемые понятия, а в правой — описываются все допустимые структуры языка, соответствующие этому понятию. Левая и правая части формулы связываются знаком ::=, который читается «по определению есть». При перечислении дополнительных вариантов структур в правой части используется знак |, имеющий смысл «или». Все определяемые понятия языка программирования заключаются в угловые скобки , а неопределяемые исходные понятия языка называются лексемами. Лексемы могут использоваться в правой части формулы.

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

    Это равносильно определению «любая последовательность цифр». Формула рекурсивна, так как уже встречается в правой части, т. е. имеется ссылка на само себя. Теперь выведем формулу:

    I + через лексемы языка 0, 1, 9, +,

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

    Способ описания синтаксиса на основе диаграмм основан на тех же принципах. На рис. 3.9 приводится изображение понятия «цифра» в виде диаграммы.

    Синтаксическая диаграмма понятия «цифра»

    Рис. 3.9. Синтаксическая диаграмма понятия «цифра»

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

    Источник

    Лекция 8. Языки программирования

    Компьютерная программа представляет собой логически упорядоченную последовательность команд, предназначен­ных для управления компьютером. Процессор компьютера исполняет программы, написанные на машинным кодом. Писать программы в машинных кодах вручную очень сложно, причем с ростом размера программы эта задача усложняется. В компьютерах первого поколения использовались программы, написанные в ма­шинных кодах, причем для каждого компьютера существовал свой собственный машинный код. В тот период (начало 50-х гг.) средства програм­мирования и программное обеспечение только зарождались и были еще не развиты. Для того чтобы сделать программу читабельной и иметь возможность следить за ее смысловой структурой, разработали символический язык ассемблер, близкий к машинному (конец 50-х – начало 60-х гг.), в котором появилось понятие переменной. Ассемб­лер стал первым полноценным языком программирования. Благода­ря этому заметно уменьшилось время разработки и возросла надеж­ность программ. Для записи кодов операций и обрабатываемой информации в ассемблере используются стандартные обозначения, позволяющие записывать числа и текст в общепринятом виде, для кодов команд приняты мнемонические обозначения, например MOV AX, BX (переместить машинное слово из регистра AX в регистр BX), ADD AX, CX (сложить регистр AX c CX), JMP loop1 (безусловный переход не метку loop1) и др. Для обозначе­ния величин, размещаемых в памяти, можно применять имена констант. После ввода программы ассемблер сам заменяет символические имена на адреса памяти, а символические коды команд на числовые. Исполь­зование ассемблера сделало процесс программирование более нагляд­ным. Дальнейшее развитие этой идеи привело к созданию языков программирования высокого уровня, в которых длинные и сложные последовательности машинных кодов были заменены одним един­ственным обозначающим их словом – операторы.

    Источник

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