RSS    

   Реферат: Проектирование трансляторов

  С1  -  номер имвола,  с которого начинается <инстр.2>.

  С2 - номер  символа,следующего за <инстр.2>.

     Операторы BZ  и  BR  не порождают результирующего значения.

Часть их работы состоит в исключении из стека двух верхних  эле-

ментов  (значения  <выр>  и <С1>) для BZ и соответственно одного

<С2> для BR. Оператор безусловного перехода <С2>BR - использует-

ся метка <С2> для внутренних генерируемых переходов.  В то время

как оператор <метка> BRL в качестве значения <метка>  использует

адрес эл-та таблицы символов.

  5) Описание массива.   ARRAY A[Li:Ui,...,Ln:Un]

     можно представить в виде:

     LiUi...LnUn A ADEC, где ADEC - оператор, имеющий переменное

число операндов,  зависящее от числа индексов.  Операнд А - оче-

видно,  адрес элемента таблицы символов для А -> При  вычислении

ADEC,  следовательно,  из этого элемента таблицы извлекается ин-

формация о размерности массива А (т.е. и о числе операндов ADEC)

- с этой целью изменен порядок записи операндов.

  6) Переменная с индексами A[<выр.i>,...,<выр.n>] преставляется

     в  виде  <выр.1>...<выр.2>  A  SUBS

     Оператор SUBS используя элемент А таблицы  символов  и  ин-

дексные выражения,  вычисляет адрес элемента массива. Затем опе-

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

ранд, определяемый адресом элемента массива и его типом.

     Использование для  индексирования  специального   оператора

SUBS - более удобный способ для польской записи.

         Пример: BEGIN INTEGER K; ARRAY[1:I-j]; K:=0;

                       L:IF I>j THEN K:=K+A[I-j]*6 ELSE

                       BEGIN I:=I+1;I:=I+1;COTOL END

                 END

     (1) BLOCK 1 IJ - A ADEC K0 :=           Польская запись

     (11) IJ - 29 BMZ

     (16) K KIJ - A SUBS 6*+:= 41 BR       Для каждого символа отво-

     (29) II1 + := II1 + := L BRL          дится одна строка (место)

     (41) BLCEND

     Как видно,  описание  INTEGER K (не требующее генерации ко-

манд) отсутствует во внутреннем  представлении.  Оно  нужно  для

формирования элемента таблицы символов для К.

     Введены два оператора без операндов BLOCK (начало блока)  и

BLCKEND (конец блока).

  N    содерж.           N    содерж.             таблица

слова   слова   символ  слова  слова    символ    символов

┌────┬────┬────┬───────┬────┬────┬────┬────────┬───┬─────┐

│ 1  │ 11 │    │ BLOCK │ 36 │ 6  │    │  SUBS  │ 1 │  I  │

├────┼────┼────┼───────┼────┼────┼────┼────────┼───┼─────┤

│ 2  │ 1  │ 1  │   1   │ 37 │ 1  │ 6  │   6    │ 2 │  Y  │

├────┼────┼────┼───────┼────┼────┼────┼────────┼───┼─────┤

│ 4  │ 2  │ 1  │   I   │ 39 │ 15 │    │   *    │ 3 │  A  │

├────┼────┼────┼───────┼────┼────┼────┼────────┼───┼─────┤

│ 6  │ 2  │ 2  │   Y   │ 40 │ 14 │    │   +    │ 4 │  K  │

├────┼────┼────┼───────┼────┼────┼────┼────────┼───┼─────┤

│ 8  │ 16 │    │   -   │ 41 │ 7  │    │   :=   │ 5 │ L25 │

├────┼────┼────┼───────┼────┼────┼────┼────────┼───┴─────┘

│ 9  │ 2  │ 3  │   A   │ 42 │ 1  │ 64 │   64   │

├────┼────┼────┼───────┼────┼────┼────┼────────┤

│ 11 │ 13 │    │ ADEC  │ 44 │ 9  │    │   BR   │

├────┼────┼────┼───────┼────┼────┼────┼────────┤

│ 12 │ 2  │ 4  │   K   │ 45 │ 2  │ 1  │   I    │

├────┼────┼────┼───────┼────┼────┼────┼────────┤

│ 14 │ 1  │ 0  │   0   │ 47 │ 2  │ 1  │   I    │

├────┼────┼────┼───────┼────┼────┼────┼────────┤

│ 16 │ 7  │    │  :=   │ 49 │ 1  │ 1  │   1    │

├────┼────┼────┼───────┼────┼────┼────┼────────┤

│ 17 │ 2  │ 1  │   I   │ 51 │ 14 │    │   +    │

├────┼────┼────┼───────┼────┼────┼────┼────────┤

│ 19 │ 2  │ 2  │   Y   │ 52 │ 7  │    │   :=   │

├────┼────┼────┼───────┼────┼────┼────┼────────┤

│ 21 │ 16 │    │   -   │ 53 │ 2  │ 1  │   I    │

├────┼────┼────┼───────┼────┼────┼────┼────────┤

│ 22 │ 1  │ 45 │   45  │ 55 │ 2  │ 1  │   I    │

├────┼────┼────┼───────┼────┼────┼────┼────────┤

│ 24 │ 8  │    │  BMZ  │ 57 │ 1  │ 1  │   1    │

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.