Конвертер программы с подмножества языка Си в Паскаль с использованием LL(1) метода синтаксического анализа (выражения)
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: заболевания реферат, курсовые
| Добавил(а) на сайт: Adrian.
Предыдущая страница реферата | 1 2 3 4 5 | Следующая страница реферата
Арифметическое выражение порождает целое или действительное
(вещественное) значение. Наиболее простыми формами арифметических выражений
являются:
. Целая или действительная константа без знака;
. Целая или действительная переменная;
. Элемент массива целого или действительного типа;
. Функция, принимающая целое или действительное значение.
Значение переменной или элемента массива должно быть определено до их появления в арифметическом выражении. Другие арифметические выражения составляются из вышеперечисленных простых форм путем применения круглых скобок и арифметических операций.
Арифметические операции выполняют арифметические действия в выражениях над значениями операндов целочисленных и вещественных типов. Арифметические операции языка Паскаль представлены в таблице1.
Арифметические операции
|Операция |Действие |Типы операндов |Тип результата |
|Бинарные |
|+ |Сложение |Целый |Целый |
| | |Вещественный |Вещественный |
|- |Вычитание |Целый |Целый |
| | |Вещественный |Вещественный |
|* |Умножение |Целый |Целый |
| | |Вещественный |Вещественный |
|/ |Деление |Целый |Вещественный |
| | |Вещественный |Вещественный |
|DIV |Целочисленное деление |Целый |Целый |
|MOD |Остаток от деления |Целый |Целый |
|AND |Арифметическое И |Целый |Целый |
|SHL |Сдвиг влево |Целый |Целый |
|SHR |Сдвиг вправо |Целый |Целый |
|OR |Арифметическое ИЛИ |Целый |Целый |
|XOR |Исключающая дизъюнкция |Целый |Целый |
| | | | |
|Унарные |
|+ |Сохранение знака |Целый |Целый |
| | |Вещественный |Вещественный |
|- |Отрицание знака |Целый |Целый |
| | |Вещественный |Вещественный |
|NOT |Арифметическое отрицание |Целый |Целый |
Выражения и операции отношения.
Выражением отношения называется словосочетание языка, в котором два выражения связаны знаком операции отношения. Выражение отношения определяет истинность или ложность результата. Операции отношения выполняют сравнение двух операндов и определяют, истинно значение выражения или ложно.
В языке Паскаль операции отношения и рассмотренные ниже булевские операции более важны при написании программ, чем в других языках, так как они интенсивно используются для реализации разветвляющихся и циклических алгоритмов. В таблице 2 приведены операции отношения, допустимые в версии языка Паскаль для ПЭВМ.
Сравниваемые величины могут принадлежать к любому скалярному или перечисляемому типу данных. Результат всегда имеет булевский тип и принимает одно из двух значений: True (истина) или False (ложь).
Операции отношения.
|Операция|Название |Выражение |Результат |
|= |Равно |A=B |True, если А равно В |
| |Не равно |AB |True, если А не равно В |
|> |Больше |A>B |True, если А больше В |
|< |Меньше |A= |Больше или равно |A>=B |True, если А больше или равно В |
|=B
| B= П | П=B П(+C
B(BBB’
28. B1(BB’
44. B’(=BB’
46. B’(=П
10. B’( | | |27 | | |43 | | | | | | |
|< | | |28 | | |44 | | | | | | |
|- | | |26 | | |42 | | | | | | |
|+ | | |25 | | |41 | | | | | | |
|/ | | |24 | | |40 | | | | | | |
|* | | |23 | | |39 | | | | | | |
|% | | |22 | | |38 | | | | | | |
|-- |56 |20 |7 |15 | | | | | | | | |
|++ |57 |21 |8 |17 | | | | | | | | |
|K | | | |18 | | | | | | | | |
|I |54 |1 | |12 | | | |16 | | | | |
|) | | |37 | | |53 |13 | |19 |59 |10 | |
|( |55 |11 |9 |14 | | | | | | | | |
| |S |B |B1 |B2 |B3 |B’ |C |C1 |C2 |S’ |S1 |# |
Управляющая таблица для выражения на языке Turbo Pascal 7.0
||- | | |11 | |32 | |23 | | |19 |38 |39 |
|Or | | | | |32 | |23 | | |18 | | |
|= | | |9 | |32 | |23 | | |19 | | |
|> | | |7 | |32 | |23 | | |19 | | |
|< | | |6 | |32 | |23 | | |19 | | |
| | | |8 | |32 | |23 | | |19 | | |
|= | | |5 | |32 | |23 | | |19 | | |
|And | | | | |31 | |23 | | | | | |
|Mod | | | | |30 | |23 | | | | | |
|Div | | | | |29 | |23 | | | | | |
|/ | | | | |28 | |23 | | | | | |
|* | | | | |27 | |23 | | | | | |
|- |34 |2 | | |32 | |23 | |13 |17 | | |
|+ |33 |1 | | |32 | |23 | |12 |16 | | |
|, | | |11 | |32 | |23 | | |19 |37 | |
|I |35 |3 | |25 | |20 | | |14 | | | |
|) | | |11 | |32 | |23 |24 | |19 |38 | |
|( |36 |4 | |26 | |21 |22 | |15 | | | |
| |S |B |B’ |C |C’ |M |M’ |M1 |П |П’ |S’ |# |
Пример работы программы
Ввели выражение на языке СИ:
КУРСОВАЯ РАБОТА ПО ЯПМТ
Выберете язык: 1 - СИСИ++ 2 - Turbo Pascal 7.0
1
Напишите выражение на языке С:
(e+e==7)
Дескрипторный текст:
0 2 9 2 16 2 1
Заменить(S',В2) Сдвиг
Заменить(C,В1) Сдвиг
Заменить(В',В) Сдвиг
Заменить(В1) Сдвиг
Заменить(В',В) Сдвиг
Заменить(В1) Сдвиг
Вытолкнуть Держать
Вытолкнуть Держать
Вытолкнуть Держать
Заменить(В') Сдвиг
Вытолкнуть Держать
Вытолкнуть Держать
ДОПУСТИТЬ
Выходная лента:
55 12 25 1 31 1 37 53 53 13 53 59 60
Ввели не выражение:
КУРСОВАЯ РАБОТА ПО ЯПМТ
Выберете язык: 1 - СИСИ++ 2 - Turbo Pascal 7.0
1
Напишите выражение на языке С:
t+
Дескрипторный текст:
2 9
Рекомендуем скачать другие рефераты по теме: анализ темы курсовой работы, эффективность реферат.
Категории:
Предыдущая страница реферата | 1 2 3 4 5 | Следующая страница реферата