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

4… Способы описания языков программирования: бнф-нотации, синтаксические диаграммы

Языки программирования- это формальные языки и для их записи используют различные способы. В процсс разработки языка была разработана Бэкиса-Наурова форма (БНФ-нотация) для записи. БНФ в послдствии стала универсальным средством описания любых формальных языков. Был разработан языка Pascal, используя синтаксические программы.

В силу своей неоднозначности представлений, возможности парадоксальных предложений в зависимости синтаксиса от семантики. Но внутри естественных языков могут быть выделены подмножества предложения, которые однозначны. И однозначность достигается запретом говорить о самих себе. Язык, который описывают, называют языком — объектом. Описывающий язык – метаязык.

Язык описывающий синтаксис другого языка, называется метасинтаксический, а описывающий семантику – метасемантическим.

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

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

Семантика смысла этих конструкций целиком зависит от синтаксического языка.

Для записи конструкции языка с помощью БНФ используют определенные метосимволы и понятия регулярного выражения.

::= Метасимволы по определению есть

RQ Конкатенация регулярного выражения

регулярное выражение или значение пусто

+ регулярное выражение хотя бы один раз

* регулярное выражение повторенное многократно

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

1)Записываются терминальные символы

2)Не терминальные символы для которых

нужно создать синтаксически диаграммы

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

5… Классификация языков программирования, элементы языка программирования С/С++: алфавит, слова, константы.

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

Машинный язык — это я3ык данного процессора, любой компьютер может выполнить программу только на своём я3ыке,когда программа представляет собой последовательность команд, а команда – это цифровой код – последовательность нулей и единиц.

Машинно-ориентированный я3ык – это я3ык , который в своей конструкции содержит,исполь3ует элементы архитектуры данного процессора. Такая программа может быть выполнена только на процессоре определённого типа.

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

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

ЭЛЕМЕНТЫ Я3ЫКА ПРОГРАММИРОВАНИЯ

Любой я3ык программирования определяется алфавитом, синтаксисом, семантикой.

Алфавит- фиксированный набор 3наковых символов,исполь3уемых в я3ыке.

Лексема – синтаксическая единица, составленная и3 символов алфавита, которая имеет смысл.

Выражение строится и3 лексем и символов и 3адаёт правило вычисления следующего 3начения.

Оператор – обра3уется и3 символов, лексем и выражений и является описанием некоторого действия.

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

Семантика – это правила исполь3рвания конструкций я3ыка и правила исполнения программ.

Алфавит С++ включает в себя 3аглавные и строчные латинские буквы, рабочие цифры и символы.

Служебные слова – слова,3аре3ервированные в я3ыке для определённого исполь3ования , их кол-во ограничено.

Константами — на3ываются данные, которые не и3меняются в процессе выполнения программы . В С++ можно исполь3овать именованные и неименованные константы.

Неименованные константы, или литералы – это обычные фиксированные 3начения.

Ра3личаются целые, вещественные, символьные и строковые литералы.

Если при решении 3адачи исполь3уются постоянные 3начения,имеющие смысл для этой 3адачи,то в программе можно определить их как именованные константы. Формат объявления именованной константы:

[] const< тип>< имя именованной константы>=< выражение>;где класс памяти – это спецификатор, определяющий время жи3ни и область видимости программного объекта; выражение определяет 3начение именованной константы, т.е инициализирует её.

6… Переменные и операции в C++, выражения, порядок вычисления выражений.

Переменная – это именованная область памяти, в которой хранятся данные определённого типа. У переменной есть имя и значение. Имя служит для обращения к области памяти, в которой хранится значение. Во время выполнения программы, значение переменой можно изменять. Перед использованием любая переменная должная быть описана. Например int i,j;

Перед использованием значение любой переменной должно быть определено. Это можно сделать с помощью:

  1. Оператора присваивания: int a; … a=10;
  2. Оператора ввода: int a; … cin>>a;
  3. Инициализации ( определении значения переменной на этапе описания )
  1. Операции увеличения и уменьшения на 1 (++ и —).
  1. Операция определения размера (sizeof).
  1. Операции отрицания(-,!).
  1. Арифметические операции.
  1. Умножение(*), деление(/), остаток от деления(%);
  2. Сложение(+), вычитание(-).
  1. Тип возвращаемого значения;
  2. Имя функции;
  3. Список параметров, заключенный в круглые скобки (может быть пустым)
  4. Тело функции (последовательность операторов), которое помещается в фигурные скобки.
  1. Тип возвращаемого значения int – целый;
  2. Имя функции main;
  3. Список параметров пуст;
  4. Тело функции состоит из одного оператора return 0, который возвратит значение 0 вызываещему окружению (либо компилятору, либо операционной системе).

Источник

Синтаксические диаграммы

Синтаксические диаграммы – наглядный способ изображения формул Бэкуса-Наура.

Понятие языка, определяемое диаграммой, указано в начале диаграммы

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

Лексемы заключаются в овалы

Нетерми­наль­ные символы — в прямоугольники.

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

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

В синтаксически правильной программе все ее объекты удов­летворяют соответствующим диаграммам.

Синтаксические диаграммы использовались автором языка Паскаль Н. Виртом при его описании.

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

Язык программирования Паскаль

Язык программирования Паскаль разработан известным швейцарским ученым и педагогом в области программирования Н.Виртом. Предварительное сооб­щение появилось в 1968 г. В 1971 году заработал первый компилятор пересмотренной версии, которая приобрела статус стандарта.

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

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

Алфавит языка

1.Латинские буквы (большие и маленькие), знак подчеркивания ’_’

2.Цифры 0. 9

3.Математические символы +, -, *, /, , =

5.Скобки ( ) [ ]

6.Другие символы (используемые для печати): буквы национальных алфавитов, !, ?, \, |, .

В различных версиях могут использоваться различные наборы символов. Сейчас широко используется набор символов кода ASCII (American Standard Code for Information Interchange). Этот код предусматривает расширения для национальных алфавитов, символов псевдографики, которые могут меняться от версии к версии.

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

В языке Паскаль представляются числа и строки.

Целые числа записываются в десятичной системе счисления: 137, -56, +26 .

Вещественные числа используют также десятичную нотацию, причем целая часть отделяется от дробной не запятой, а точкой. Для обозначения порядка числа в качестве разделителя используется буква Е. Например, -5.1Е14 означает -5.1, умноженное на 10 в степени 14 (-5,1*10 14 ). Степени чисел могут быть и отрицательными: 6.74Е-8, -56.89Е-10.

Последовательности символов, заключенные в одиночные кавычки, называются строками. Если в строку нужно включить кавычку, то вместо нее записывают две кавычки:

‘ строка из символов ‘, ‘ апостроф ‘’ в слове ‘

Именем в языке называется последовательность (латинских) букв, знака подчеркивания ‘_’ и цифр, начинающаяся с буквы либо со знака подчеркивания. Хотя имена могут быть сколь угодно длинными, в реализации количество значащих символов в имени может быть ограничено. В стандарте языка имена различаются по первым восьми символам. Это означает, что имена VeryLongNumber, VeryLongCardinal в стандарте языка обозначают (именуют) один и тот же объект. Кроме того, язык не различает больших и маленьких букв. Поэтому имена Sin, SIN, sin неразличимы.

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

Pi, Сonstant — имена констант; x, y1, y2, Counter — имена переменных;

Integral, MaxMin — имена процедур; Man, Color, WeekDay — имена типов;

Некоторые имена предопределены заранее. Например:

Sin — имя для обозначения функции синус; Read — имя для обозначения процедуры чтения;

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

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

Источник

Читайте также:  Автоматное программирование систем управления мирэа
Оцените статью