Главная страница
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.018 c
3-61454
Дмитрий Жуков
2002-11-30 19:53
2002.12.19
Ошибка в TStoredProc.Prepare


14-61786
sural
2002-11-27 21:00
2002.12.19
HELP!!! HELP!!!


4-61857
MrAngel
2002-10-15 17:51
2002.12.19
Избегание настроек виндовса...


4-61885
Обсолютный ноль
2002-11-07 20:22
2002.12.19
Вопрос по WinAPI


1-61649
VJar
2002-12-07 14:35
2002.12.19
Проверка идентичности двух файлов