I.6. организация целых чисел

      Комментарии к записи I.6. организация целых чисел отключены

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

Варианты:

I.6.1. (Cи)

$ двоичное = 0 (B | b) {/ 0 | 1 /}.

$ восьмеричное = 0 (C | c) { 0|1|2|3|4|5|6|7 }.

$ десятичное = [0 (D | d) ]{/ цифра /}.

$ шестнадцатеричное = 0 (X|x) {/цифра|A|B|C|D|E|F|a|b|c|d|e|f /}.

I.6.2. (Ассемблер)

$ двоичное = {/ 0 | 1 /} ( B | b ).

$ восьмеричное = {/ 0|1|2|3|4|5|6|7 /} ( C | c ).

$ десятичное = {/ цифра /} [ D | d ].

$ шестнадцатеричное = цифра {цифра | A|B|C|D|E|F|a|b|c|d|e|f } ( H | h ).

I.6.3. (Произвольный стиль)

$ двоичное = 2# {/ 0 | 1 /}.

$ восьмеричное = 8# {/ 0|1|2|3|4|5|6|7 /}.

$ десятичное = [10#] {/ цифра /}.

$ шестнадцатеричное = 16# {/цифра | A|B|C|D|E|F|a|b|c|d|e|f /}.

I.7. Организация действительных чисел

Действительное число определяется следующим образом:

Варианты:

I.7.1.

$ числовая_строка = {/ цифра /}.

$ порядок = (E|e)[+|-] числовая_строка.

$ действительное = числовая_строка порядок |

числовая_строка . [числовая_строка] [порядок] |

. числовая_строка [порядок].

I.7.2.

$ числовая_строка = {/ цифра /}.

$ порядок = (E|e)[+|-] числовая_строка.

$ действительное = числовая_строка . числовая_строка [порядок] |

числовая_строка порядок.

II. Правила, используемые в синтаксическом анализаторе

Рассматриваемые ниже правила используются при построении распознавателя. Альтернативные варианты позволяют задать структуру программы, ее операторов и выражений. Ключевые слова при описании правил выделены жирным шрифтом. Их реальное написание определяется совокупностью условий и ограничений, определяемых вариантом задания (прописные или строчные и т.д.)

II.1. Организация программы

Задается один из трех вариантов. Первый вариант определяет программу как список чередующихся описаний и операторов, разделяемых точкой с запятой. Конец текста программы определяется концом файла. Описания можно вводить непосредственно перед использованием переменных. При втором варианте программа состоит из двух независимых областей: описаний и операторов. За лексемой, определяющей конец программы, может следовать произвольная цепочка символов, так как осуществлять разбор дальше в соответствии с синтаксисом не имеет смысла. С организацией программы непосредственно связывается и структура составного оператора, синтаксис которого выдержан в аналогичном стиле. Третий вариант отличается от двух предыдущих отсутствием составного оператора.

Варианты:

II.1.1.

$ программа = {/ (описание | оператор) ; /} конец_файла.

$ составной = BST {/ оператор ; /} EST.

II.1.2.

$ программа = [ var описание { ; описание } ]

BST оператор { ; оператор } EST.

$ составной = BST оператор { ; оператор } EST.

II.1.3.

$ программа = {/ (описание | оператор) ; /} конец_файла.

II.2. Описания

Первый вариант описания по стилю близок к языку программирования Паскаль, второй напоминает описания Си, а третий ? Бейсик.

Варианты:

II.2.1.

$ описание = идентификатор { , идентификатор } : [ vector [ целое ] of ] тип.

$ тип = integer | real.

II.2.2.

$ описание = тип идентификатор [ [ целое ] ] { , идентификатор [ [ целое ] ] }.

$ тип = integer | real.

II.2.3.

$ описание = dim идентификатор ( целое ) { , идентификатор ( целое ) }.

Статьи к прочтению:

Разность двух отрицательных целых чисел. Математика 6 класс.


Похожие статьи: