Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


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



 

Способы описания ЯП.

Для описания ЯП используются две системы описания:

  1. Нотация Бэкуса – впервые предложена при описании языка Algol;
  2. Нотация IBM (разработана фирмой для описания языков Cobol и JCL).

 

Обе нотации используют следующее обозначение: < > - угловые скобки (или двойные кавычки) обозначают элемент программы, определяемый пользователем (< Идентификатор>, < Список параметров>, “Условие” и пр.). В соответствующих местах реальной программы будет находится идентификатор переменной, список параметров и прочее.

 

Нотация Бэкуса содержит конструкцию следующего вида:

< Оператор присваивания> : = < Переменная> : = < Выражение>

< Идентификатор> :: = < Буква> | < Идентификатор> < Буква> |

< Идентификатор> < Цифра>

 

17.01.14

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

Правая часть включает совокупность элементов, соединённых знаком |, которая трактуется как «или» и объединяет альтернативы – различные варианты значения, определяемого элемента. Части соединяются оператором:: =, который может трактоваться, как является по определению.

 

Нотация IBM включает следующие элементы:

  1. [ ] - квадратные скобки, обозначают возможное отсутствие элемента конструкции. Например, return [< выражение> ] – в этой конструкции < выражение> не обязательно;
  2. { } – фигурные скобки, {< выражение-1> | < выражение-2> | < выражение-3> }

означает обязательное присутствие одного из < выражений>

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

{< выражение> } [, < выражение> ]…} обозначает, что одно или более < выражений>, разделённых запятыми, может появиться между фигурными скобками.

 

Рекурсивное определение в IBM-нотации не используются.

 

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

Определяющие факторы классификации обычно жёстко не фиксируется. Чтобы продемонстрировать пример типичной классификации опишем наиболее часто применяемые факторы, дадим им условные названия и дадим образцы ЯП.

 

 

Факторы Характеристика Группы Примеры ЯП
Уровень ЯП     Степень близости ЯП к архитектуре компьютеры     Низкий Автокод Assembler
Высокий Fortran, Pascal, ADA, Basic, C и другие ЯВУ
Сверхвысокий Сетл
Специализация ЯП Потенциальная или реальная область применения     Общего назначения (универсального) Algol, PL/1, Simula, Basic, Pascal
Специализированные Fortran (инженерные расчёта), Cobol (коммерческие задачи), Refal, Lips (символьная обработка), Modula, Add (программирование в реальном времени)
Алгоритмичность (процедурность) Возможность абстрагироваться от деталей алгоритма решения задачи. Алгоритмичность тем выше, чем точнее приходится планировать порядок выполняемых действий Процедурные Assembler, Fortran, Basic, Pascal, ADA
Непроцедурные Prolog, Langin    

 

 

Элементы языков программирования.

Алфавит – совокупность символов, отображаемых на устройте печати и экранах/вводимых с клавиатуры терминалов. Обычно это набор символов - Latin-1 с исключением управляющих символов. Иногда в это множество включаются неотображаемые символы с указанием правил их записи (комбинирование в лексемы).

 

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

Сюда же включаются зарезервированные ключевые слова ЯП, предназначенные для обозначения операторов, встроенных функций и прочее.

 

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

 

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

 

Семантика – смысловое содержание конструкций предложений языка.

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

Семантические ошибки возникают при недопустимом использовании операции массивов, функций, операций и пр.

 

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

 


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-04-10; Просмотров: 1516; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.015 с.)
Главная | Случайная страница | Обратная связь