Главная страница
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.013 c
1-61679
baryjul
2002-12-08 15:15
2002.12.19
Как на панели StatusBar отобразить объект TGaude ?


1-61623
GIL
2002-12-06 05:57
2002.12.19
WebBrowser


7-61840
xCom
2002-10-04 16:08
2002.12.19
Язык и стандарты в Windows (настройка)


6-61742
DED LOGOPED
2002-10-22 20:21
2002.12.19
Помогит с сокетами, как увеличить скорость обращения?


6-61730
=alive=
2002-10-21 20:18
2002.12.19
Как написать свой фильтр для прокси