Реализация интерпретатора языка РЛИ на языке PASKAL | MetodPro.ru

Реклама на сайте

Реализация интерпретатора языка РЛИ на языке PASKAL


Требуется определить структуры данных. Целесообразно использовать древовидные структуры, где каждый узел является либо, атомом, либо указателем на список, также являющейся деревом. Для хранения атома необходима ячейка (регистр), для хранения списком  - два регистра – один указатель на голову, другой – на хвост. Такое древовидное представление можно использовать в качестве промежуточного представления программы на языке РЛИ.

Разработка компилятора для языка РЛИ. Виртуальная SECD машина. 

Лекция SECD машина (продолжение).

(a b.s) e (leq.c)d-> (b<=a.s)ecd

eq

(a b.s) e (eq.c) d -> (b=a.s)ecd

 

прграмма на РЛИ

(equal (sub (quote 1)(mul (quote 2) (quote 3))) (quote 4))

(ldc 1 ldc 2 ldc 3 mul sub ldc 4 eq)

1)    S e (ldc 1 ldc 2 ldc 3 mul sub ldc 4 eq) d

2)    (1.s) e (ldc 2 ldc 3 mul sub ldc 4 eq) d

3)    (2 1.s) e (ldc 3 mul sub ldc 4 eq) d

4)    (3 2 1.s) e (mul sub ldc 4 eq) d

5)    (6 1.s) e (sub ldc 4 eq) d

6)    (-5.s) e (ldc 4 eq) d

7)    (4 -5.s) e (eq) d

8)    (false.s) e (nil) d

Команда cons

(a b.s) e (cons.c) d -> ((a.b).s) e c d

atom

(a.s) e (atom.c) d -> (t.s) e c d  t=true или false.

1) S ((3 7)(2 0))   (LD (01) LD (10) HDD.C) d

2) (7.s) ((3 7) (2 0)) (LD(10) ADD.C) d

3) (2 7.s) ((3 7) (2 0)) (ADD.C) D

4) (9.S) ((3 7) (2 0)) c d



Методические пособия

  • Системы автоматизированного проектирования
  • Социология молодёжи
  • Общая социология
  • Криптография
  • Проектирование трансляторов
  • Компьютерная графика
  • Моделирование систем
  • Информационная безопасность
  • Теория вычислительных процессов
  • Логические основы искусственного интелекта
  • Проектирование распределённых информационных систем