Вниз
Скачать: CL | DM;

Кто знает эту идею или алгоритм ?   Найти похожие ветки 

 
Skier ©   (2002-11-28 11:34) [0]

Например, имеем выражение

A := X*Y-Z;

Для вычисления :

1] его можно разложить на части с использованием
временных переменных (такой подход используется
в "книге дракона")
(1) t1 := X * Y;
(2) A := t1 - Z;
(1) и (2) так называемые трёхадресные инструкции...

2] Другой подход : можно не использовать временные переменные, а
сначала скоприровав значение, например X в A, затем работать
с только с А, т.е. менять только его значение не выделяя
память под временные переменные, т.е.

(1) ASSIGN A, X;
(2) CACL A * Y
(3) CACL A - Z

(1) - (3) - "псевдоинструкции"

(1) - копирование значение X в A
(2) - умножение - резутьтат в A
(3) - вычитание - резутьтат в A

Теперь вопрос : существует ли алгоритм 2] и если да, то где бы
про него почитать...или же 2] вытекает из 1] путём преобразований и оптимизации...или же два можно сформировать
"на прямую" ?


 
Bizon ©   (2002-11-28 11:40) [1]

Грис Д. Построения компиляторов для цифровых вычислительных машин
Вы найдете в этой книге много интересного.


 
Skier ©   (2002-11-28 11:41) [2]

>Bizon
Ссылка есть ? Или только в печатном виде ?


 
McSimm ©   (2002-11-28 11:42) [3]

Некоторые выражения вторым подходом не обработать.
A = X*Y-5*Z
A = (X+Y)*(5+Z)
Т.е. без сохранения промежуточных результатов не обойтись


 
Skier ©   (2002-11-28 11:45) [4]

>McSimm
Согласен !
Но...всё же существует ли такой алгоритм ?
Или 2] это следствие оптимизации 1] ?


 
Bizon ©   (2002-11-28 11:48) [5]

Посмотрите здесь:
http://www.codenet.ru/progr/compil/cons/001.php


 
Виктор Щербаков ©   (2002-11-28 11:48) [6]

Посмотри, здесь кое-что есть про оптимизацию. Но только теория.
http://www.kulichki.com/kit/library/conscomp.zip



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.011 c
3-61478
lscomp
2002-11-28 19:02
2002.12.19
Подскажите! Сумма чисел в колонке DBGrida


14-61831
AlexiY
2002-11-30 08:27
2002.12.19
Как можно...


14-61794
vic_774N
2002-11-28 16:34
2002.12.19
Как отключить некоторые заморочки в ... windows ...


6-61735
ШахтерИЩЕ
2002-10-25 13:13
2002.12.19
Как мне можно поменять сетевое имя компа ...


14-61808
AL2002
2002-11-25 13:18
2002.12.19
Королевство дельфи. (не успел добавить). Теперь можно и стереть.




   Наверх