И.А. Волкова, Т.В. Руденко - Формальные грамматики и языки. Элементы теории трансляции. (1114901), страница 8
Текст из файла (страница 8)
Написать грамматику для выражений, содержащих переменные,знаки операций +, -, *, / и скобки ( ), где операции должны выполнятьсястрого слева направо, но приоритет скобок сохраняется. Определитьдействия по переводу таких выражений в ПОЛИЗ.71. Изменить приоритет операций отношения в М - языке ( сделать егонаивысшим). Построить соответствующую грамматику, отражающую этотприоритет. Написать синтаксический анализатор, обеспечить контрольтипов, задать перевод в ПОЛИЗ.72. Написать КС-грамматику, аналогичную данной,Ε → T {+T}T → F {*F}F → (E) | iс той лишь разницей, что в новом языке будет допускаться унарныйминус перед идентификатором, имеющий наивысший приоритет(например,a*-b+-c допускается и означает a*(-b)+(-c).В созданную грамматику вставить действия по переводу такоговыражения в ПОЛИЗ.
Для каждой используемой процедуры привести еетекст на Cи.73. Дана грамматика, описывающая выражения:Ε → TE’E’ → +TE’ | εT → FT’T’ → *FT’ | εF → PF’F’ → ^PF’ | εP → (E) | iВключить в эту грамматику действия по переводу этих выражений вПОЛИЗ. Для каждой используемой процедуры привести ее текст на Си.74. Написать грамматику для выражений, содержащих переменные,знаки операций +, -, *, /, ** и скобки ( ) с обычным приоритетомопераций и скобок.
Включить в эту грамматику действия по переводуэтих выражений в префиксную запись (операции предшествуютоперандам). Предложить интерпретатор префиксной записи выражений.75. В грамматику, описывающую выражения, включить действия попереводувыраженийизинфикснойформы(операциямеждуоперандами) в функциональную запись.Например,а+b ==> + (a, b)a+b*c ==> + (a, * (b, c))76. Построить регулярную грамматику для языка L1, вставить в неедействия по переводу L1 в L2.L1 = {1m 0n | n,m>0}L2 = {1m-n | если m>n;0 | если m<n;ε | если m=n}(Эта задача аналогична задаче выдачи сообщений об ошибке в балансескобок).77.
Построить регулярную грамматику для языка L1, вставить в неедействия по переводу цепочек языка L1 в соответствующие цепочкиязыка L2.L1 = {1n 0m 1m 0n | m,n > 0}L2 = {1m 0n+m | m,n > 0}78. Построить регулярную грамматику для языка L1, вставить в неедействия по переводу цепочек языка L1 в соответствующие цепочкиязыка L2.L1 = {bi | bi =(i)2, т.е. bi -это двоичное представление числа i ⊂ N}L2 = {(bi+1)R | bi+1=(i+1)2, ωR - перевернутая цепочка ω}79. Построить грамматику, описывающую целые двоичные числа(допускаются незначащие нули). Вставить в нее действия по переводуэтих целых чисел в четверичную систему счисления..