Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра прикладної математики

Інформація про роботу

Рік:
2010
Тип роботи:
Розрахункова робота
Предмет:
Системне програмування
Група:
ПМ-31

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти та науки України Національний університет «Львівська політехніка» кафедра прикладної математики РОЗРАХУНКОВА РОБОТА з системного програмування Задано граматику <cекція операторів> ::= BEGIN <оператори> END <oператори> ::= <оператор> | <оператори> ; <оператор> < оператор > ::= < ціле > : < оператор без мітки > | < оператор без мітки > < оператор без мітки > ::= < оператор присвоєння > | < умовний оператор > | < оператор переходу > | < блок > < оператор присвоєння > ::= < змінна > := < вираз > <умовний оператор > ::= IF < вираз > THEN < оператор > ELSE < оператор > IF < вираз > THEN < оператор > < оператор переходу > ::= GOTO < ціле > < блок > ::= BEGIN < оператори > END < вираз > ::= < простий вираз > < відношення > < простий вираз > | < простий вираз > < відношення > ::= = | < | > | < > | <= | >= < простий вираз > ::= < терм > | < простий вираз > + < терм > | < простий вираз > − < терм > | < простий вираз > OR < терм > < терм > ::= < множник > | < терм > * < множник > | < терм > / < множник > | < терм > AND < множник > < множник > ::= < змінна > | < ціле > | ( < вираз > ) | NOT < множник > Постановка задачі: із заданої граматики вибрати необхідну для заданого варіанту підмножину правил ; знайти відношення передування; виконати синтаксичний аналіз знизу догори; побудувати тетради для заданого фрагменту. При потреби внести зміни у граматику. Варіант №2 BEGIN k:=4; i:=3; m:=1; IF k+i > 1 THEN s:=(k+i)*m ELSE s:=k+i*m; b:= (s−k) *(m+i) END . Вибираю необхідну множину правил: <секція операторів>::=BEGIN<оператори>END <оператори>::=<оператор>|<оператори>;<оператор> <оператор>::=<оператор присвоєння>|<умовний оператор> <оператор присвоєння>::=<змінна>:=<вираз> <умовний оператор>::=IF<вираз><відношення><вираз> THEN<оператор>ELSE<оператор> <вираз>::=<операнд>|<операнд><операція><вираз> <операнд>::=<змінна>|<число>|(<вираз>) <операція>::=+|–|*|/ <відношення>::<|=|>|<>|<=|>= Перетворюю дану граматику позбуваючись безпосередньої лівої та правої рекурсії. Ввожу односимвольні не термінали. Зарезервовані слова та операції теж замінюю на одно символьні константи. P→bCn. C→A A→B|B;A B→V|F V→ivU F→fZ Z→YTE Y→LdL T→tV E→lV L→U U→M|MoU M→i|c|(K K→L) b – begin n – end i – ідентифікатор d – відношення < > = … f – if t – then l – else v – присвоїти o – операція * + – / c – число. Знаходжу відношення передування та будую відповідну таблицю. Для цього спочатку складаю таблицю ліво- та право- виводимих символів. L(U) R(U)  T b .  C ABVFif ABFVZUEMKic)  A BVFif ABFVZUEMKic)  B VFif FVZUEMKic)  V i UMKic)  F f ZEVUMKic)  Z YLUMic( EVUMKic)  Y LUMic( LUMKic)  T t VUMKic)  E l VUMKic)  L UMic( UMKic)  U Mic( UMKic)  M ic( Kic)  K LUMic( )   Таблиця відношень передування: P C A B V F Z Y T E L U M K b n . ; i : = f d t l o c ( ) ├  P                                     C                     =                 A                     >                >  B                     >    =             >  V                     >    >         =      >  F                     >    >              >  Z                               >   >                          Y                 =                             <              T                   =                             <            E                               >   >                          L                            = =      =   U                     >    >       >  >  >      >  >  M                     >    >       >  >  >  =    >  >  K                     >    >       >  >  >  >     >  >  b   = <  <  <  <                   <     <            n                      =                .                                   >  ;    = <  <  <                   <     <            i                     >    >    =    >  >  >  >     >  >  :                          =            =                 = <        <          <  <      f        = <     = <  <        <          <  <      d                = <  <        <          <  <      t      =                   <               l      =                   <               o                 = <        <          <  <      c                     >    >       >  >  >  >     >  >  (                <  <  <  =      <          <  <      )                     >    >       >  >  >  >     >  >  ┤    <  <  <  <    <     <  <  <    <      <     <       <  <       Після лексичного аналізу вхідна стрічка буде виглядати так: bivc;ivc;ivc;fiocdctiv(ioi)oilivioioi;iv(ioi)o(ioi)n. Проілюструємо синтаксичний аналіз знизу догори: # Стек Необроблений рядок Номер прав.  1 ┤ bivc;ivc;ivc;fiocdctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├    2 ┤b ivc;ivc;ivc;fiocdctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├    3 ┤bi vc;ivc;ivc;fiocdctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├    4 ┤biv c;ivc;ivc;fiocdctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├    5 ┤bivc ;ivc;ivc;fiocdctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├    6 ┤bivM ;ivc;ivc;fiocdctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├ 13  7 ┤bivU ;ivc;ivc;fiocdctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├ 12  8 ┤bV ;ivc;ivc;fiocdctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├ 5  9 ┤bB ;ivc;ivc;fiocdctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├ 4  10 ┤bB; ivc;ivc;fiocdctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├    11 ┤bB;i vc;ivc;fiocdctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├    12 ┤bB;iv c;ivc;fiocdctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├    13 ┤bB;ivc ;ivc;fiocdctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├    14 ┤bB;ivM ;ivc;fiocdctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├ 13  15 ┤bB;ivU ;ivc;fiocdctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├ 12  16 ┤bB;V ;ivc;fiocdctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├ 5  17 ┤bB;B ;ivc;fiocdctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├ 4  18 ┤bB;B; ivc;fiocdctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├    19 ┤bB;B;i vc;fiocdctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├    20 ┤bB;B;iv c;fiocdctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├    21 ┤bB;B;ivc ;fiocdctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├    22 ┤bB;B;ivM ;fiocdctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├ 13  23 ┤bB;B;ivU ;fiocdctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├ 12  24 ┤bB;B;V ;fiocdctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├ 5  25 ┤bB;B;B ;fiocdctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├ 4  26 ┤bB;B;B; fiocdctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├    27 ┤bB;B;B;f iocdctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├    28 ┤bB;B;B;fi ocdctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├    29 ┤bB;B;B;fM ocdctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├ 13  30 ┤bB;B;B;fMo cdctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├    31 ┤bB;B;B;fMoc dctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├    32 ┤bB;B;B;fMoM dctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├ 13  33 ┤bB;B;B;fMoU dctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├ 12  34 ┤bB;B;B;fU dctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├ 12  35 ┤bB;B;B;fL dctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├ 11  36 ┤bB;B;B;fLd ctiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├    37 ┤bB;B;B;fLdc tiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├    38 ┤bB;B;B;fLdM tiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├ 13  39 ┤bB;B;B;fLdU tiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├ 12  40 ┤bB;B;B;fLdL tiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├ 11  41 ┤bB;B;B;fY tiv(ioi)oilivioioi;iv(ioi)o(ioi)n.├ 8  42 ┤bB;B;B;fYt iv(ioi)oilivioioi;iv(ioi)o(ioi)n.├    43 ┤bB;B;B;fYti v(ioi)oilivioioi;iv(ioi)o(ioi)n.├    44 ┤bB;B;B;fYtiv (ioi)oilivioioi;iv(ioi)o(ioi)n.├    45 ┤bB;B;B;fYtiv( ioi)oilivioioi;iv(ioi)o(ioi)n.├    46 ┤bB;B;B;fYtiv(i oi)oilivioioi;iv(ioi)o(ioi)n.├    47 ┤bB;B;B;fYtiv(M oi)oilivioioi;iv(ioi)o(ioi)n.├ 13  48 ┤bB;B;B;fYtiv(Mo i)oilivioioi;iv(ioi)o(ioi)n.├    49 ┤bB;B;B;fYtiv(Moi )oilivioioi;iv(ioi)o(ioi)n.├    50 ┤bB;B;B;fYtiv(MoM )oilivioioi;iv(ioi)o(ioi)n.├ 13  51 ┤bB;B;B;fYtiv(MoU )oilivioioi;iv(ioi)o(ioi)n.├ 12  52 ┤bB;B;B;fYtiv(U )oilivioioi;iv(ioi)o(ioi)n.├ 12  53 ┤bB;B;B;fYtiv(L )oilivioioi;iv(ioi)o(ioi)n.├ 11  54 ┤bB;B;B;fYtiv(L) oilivioioi;iv(ioi)o(ioi)n.├    55 ┤bB;B;B;fYtiv(K oilivioioi;iv(ioi)o(ioi)n.├ 14  56 ┤bB;B;B;fYtivM oilivioioi;iv(ioi)o(ioi)n.├ 13  57 ┤bB;B;B;fYtivMo ilivioioi;iv(ioi)o(ioi)n.├    58 ┤bB;B;B;fYtivMoi livioioi;iv(ioi)o(ioi)n.├    59 ┤bB;B;B;fYtivMoM livioioi;iv(ioi)o(ioi)n.├ 13  60 ┤bB;B;B;fYtivMoU livioioi;iv(ioi)o(ioi)n.├ 12  61 ┤bB;B;B;fYtivU livioioi;iv(ioi)o(ioi)n.├ 12  62 ┤bB;B;B;fYtV livioioi;iv(ioi)o(ioi)n.├ 5  63 ┤bB;B;B;fYT livioioi;iv(ioi)o(ioi)n.├ 9  64 ┤bB;B;B;fYTl ivioioi;iv(ioi)o(ioi)n.├    65 ┤bB;B;B;fYTli vioioi;iv(ioi)o(ioi)n.├    66 ┤bB;B;B;fYTliv ioioi;iv(ioi)o(ioi)n.├    67 ┤bB;B;B;fYTlivi oioi;iv(ioi)o(ioi)n.├    68 ┤bB;B;B;fYTlivM oioi;iv(ioi)o(ioi)n.├ 13  69 ┤bB;B;B;fYTlivMo ioi;iv(ioi)o(ioi)n.├    70 ┤bB;B;B;fYTlivMoi oi;iv(ioi)o(ioi)n.├    71 ┤bB;B;B;fYTlivMoM oi;iv(ioi)o(ioi)n.├ 13  72 ┤bB;B;B;fYTlivMoMo i;iv(ioi)o(ioi)n.├    73 ┤bB;B;B;fYTlivMoMoi ;iv(ioi)o(ioi)n.├    74 ┤bB;B;B;fYTlivMoMoM ;iv(ioi)o(ioi)n.├ 13  75 ┤bB;B;B;fYTlivMoMoU ;iv(ioi)o(ioi)n.├ 12  76 ┤bB;B;B;fYTlivMoU ;iv(ioi)o(ioi)n.├ 12  77 ┤bB;B;B;fYTlivU ;iv(ioi)o(ioi)n.├ 12  78 ┤bB;B;B;fYTlV ;iv(ioi)o(ioi)n.├ 5  79 ┤bB;B;B;fYTE ;iv(ioi)o(ioi)n.├ 1  80 ┤bB;B;B;fZ ;iv(ioi)o(ioi)n.├ 7  81 ┤bB;B;B;F ;iv(ioi)o(ioi)n.├ 6  82 ┤bB;B;B;B ;iv(ioi)o(ioi)n.├ 4  83 ┤bB;B;B;B; iv(ioi)o(ioi)n.├    84 ┤bB;B;B;B;i v(ioi)o(ioi)n.├    85 ┤bB;B;B;B;iv (ioi)o(ioi)n.├    86 ┤bB;B;B;B;iv( ioi)o(ioi)n.├    87 ┤bB;B;B;B;iv(i oi)o(ioi)n.├    88 ┤bB;B;B;B;iv(M oi)o(ioi)n.├ 13  89 ┤bB;B;B;B;iv(Mo i)o(ioi)n.├    90 ┤bB;B;B;B;iv(Moi )o(ioi)n.├    91 ┤bB;B;B;B;iv(MoM )o(ioi)n.├ 13  92 ┤bB;B;B;B;iv(MoU )o(ioi)n.├ 12  93 ┤bB;B;B;B;iv(U )o(ioi)n.├ 12  94 ┤bB;B;B;B;iv(L )o(ioi)n.├ 11  95 ┤bB;B;B;B;iv(L) o(ioi)n.├    96 ┤bB;B;B;B;iv(K o(ioi)n.├ 14  97 ┤bB;B;B;B;ivM o(ioi)n.├ 13  98 ┤bB;B;B;B;ivMo (ioi)n.├    99 ┤bB;B;B;B;ivMo( ioi)n.├    100 ┤bB;B;B;B;ivMo(i oi)n.├    101 ┤bB;B;B;B;ivMo(M oi)n.├ 13  102 ┤bB;B;B;B;ivMo(Mo i)n.├    103 ┤bB;B;B;B;ivMo(Moi )n.├    104 ┤bB;B;B;B;ivMo(MoM )n.├ 13  105 ┤bB;B;B;B;ivMo(MoU )n.├ 12  106 ┤bB;B;B;B;ivMo(U )n.├ 12  107 ┤bB;B;B;B;ivMo(L )n.├ 11  108 ┤bB;B;B;B;ivMo(L) n.├    109 ┤bB;B;B;B;ivMo(K n.├ 14  110 ┤bB;B;B;B;ivMoM n.├ 13  111 ┤bB;B;B;B;ivMoU n.├ 12  112 ┤bB;B;B;B;ivU n.├ 12  113 ┤bB;B;B;B;V n.├ 5  114 ┤bB;B;B;B;B n.├ 4  115 ┤bB;B;B;B;A n.├ 3  116 ┤bB;B;B;A n.├ 3  117 ┤bB;B;A n.├ 3  118 ┤bB;A n.├ 3  119 ┤bA n.├ 3  120 ┤bC n.├ 2  121 ┤bCn .├    122 ┤bCn. ├    123 ┤P ├ 1   Будую дерево виводу:    Будую тетради: := 4, , k := 3, , i := 10, , m + k, i, t1 BLE 10,t1, 10 + k, i, t2 * t2, m, t3 := t3, , s BR 13, , * i, m, t4 + k, t4, t5 :=, t5, , s – s, k, t6 + m, i, t7 * t6, t7, t8 := t8, , b
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!