Мегаобучалка Главная | О нас | Обратная связь


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



2020-03-19 181 Обсуждений (0)
Описание семантики входного языка 0.00 из 5.00 0 оценок




 

Представление данных различных типов в оперативной памяти

Тип Размер, байт Диапазон значений
Integer 2 -32768..32767
Char 1 -128…127

 

Входной язык также поддерживает ограниченный тип.

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

Операции входного языка и их приоритет

Операции перечислены в порядке убывания приоритета. Операции выполняются без учета переполнения.

 


 

Знак операции Порядок выполнения и особенности использования Семантический смысл
- Слева направо, Унарный Унарный минус, определен для числовых переменных, возвращает переменную такого же типа, что и получает. Меняет знак числа на противоположный.
* Слева направо, Бинарный Умножение, определено для числовых переменных. Результат вычисляется в наибольшем типе среди указанных операндов
/ Слева направо, Бинарный Деление с отбрасыванием дробной части, определено для числовых переменных. Результат вычисляется в наибольшем типе среди указанных операндов
+ Слева направо, Бинарный Сложение, определено для числовых переменных. Результат вычисляется в наибольшем типе среди указанных операндов
- Слева направо, Бинарный Вычитание, определено для числовых переменных. Результат вычисляется в наибольшем типе среди указанных операндов
=, <>, <, >, <=, >= Слева направо, Бинарный Операции сравнения, определены для числовых переменных. Необходимы только для формирования условия
not Слева направо, Унарный Логическое НЕ, определено для операций сравнения. Необходимо только для формирования условия
and Слева направо, Бинарный Логическое И, определено для операций сравнения. Необходимо только для формирования условия
or Слева направо, Бинарный Логическое ИЛИ, определено для операций сравнения. Необходимо только для формирования условия

 

Конструкции входного языка

Оператор цикла с постусловием repeat - until .

<цикл с постусловием>:= repeat <последовательность операторов> until <условие>

 

1. Выполняется оператор (Тело цикла).

2. Вычисляется условие.

.   Выполняется переход на пункт 1 в случае, если условие не выполнилось.

Оператор присваивания:=

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

1. Вычисляется выражение, стоящее справа от знака присваивания

2. В случае, если результат получился того же типа, что и переменная, в нее заносится новое значение, иначе результат преобразуется к заданному типу и заносится в переменную

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

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

Имя переменной не может совпадать с ключевыми словами.

Оператор безусловного перехода goto.

<оператор безусловного перехода>:=goto <метка>

Выполняется переход на метку

Метка должна быть объявлена в разделе label, и встречаться в теле программы один раз.

Условный оператор if-then-else:

<условный оператор>:=if <условие> then <оператор1> [else <оператор2>]

Вычисляется значение логического выражения и выполняется в переход на оператор2, если условие не выполнилось. Иначе выполняется оператор1 и происходит безусловный переход на конец оператора if-then-else.

Оператор ввода read.

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

Оператор вывода write.

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


Лексический анализатор

Описание типов лексем

 

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

· идентификаторы;

· целые беззнаковые константы;

· строковые константы;

· ключевые слова входного языка;

· однолитерные и двулитерные разделители.

Соотношение между токенами и лексемами для различных языковых конструкций иллюстрируется следующей таблицей:

 

Токен Лексемы Языковая конструкция
id count, index Идентификатор
scon ‘Hello’, ‘World’ Строка
nat 0, 1, 3, 943 Целое число без знака
program, begin, end, label, const, var, type, integer, char, string, read, readln, write, writeln, goto, if, then, else, repeat, until, length, concat, replace, pos, StrChar, copy, Same, and, or, not program, begin, end, label, const, var, type, integer, char, string, read, readln, write, writeln, goto, if, then, else, repeat, until, length, concat, replace, pos, StrChar, copy, Same, and, or, not Ключевые слова program, begin, end, label, const, var, type, integer, char, string, read, readln, write, writeln, goto, if, then, else, repeat, until, length, concat, replace, pos, StrChar, copy, Same, and, or, not
:= := Оператор присваивания
= = Операция «равно»
< < Операция «меньше»
> > Операция «больше»
<= <= Операция «меньше равно»
>= >= Операция «больше равно»
<> <> Операция «неравно»
+ +, - Операция типа «сложение»
* *, / Операция типа «умножение»
( ( Открывающая круглая скобка
) ) Закрывающая круглая скобка
[ [ Открывающая квадратная скобка
] ] Закрывающая квадратная скобка
; ; Символ «;»
, , Символ «,»
: : Символ «:»
. . Символ конца программы



2020-03-19 181 Обсуждений (0)
Описание семантики входного языка 0.00 из 5.00 0 оценок









Обсуждение в статье: Описание семантики входного языка

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (181)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.009 сек.)