Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.19;
Скачать: 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 вся ветка

Текущий архив: 2002.12.19;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.017 c
1-61538
stone
2002-12-09 14:43
2002.12.19
Как дождаться завершения потока.


3-61425
Sergey_dolya
2002-11-29 14:43
2002.12.19
Как вытащить сумму


3-61456
Senka
2002-11-27 09:03
2002.12.19
SQL в IBase нужна помощь..


1-61551
Lizerginnn
2002-12-09 17:11
2002.12.19
Представление строки


1-61530
Nikola
2002-12-09 13:57
2002.12.19
Экспорт,импорт информации