Форум: "Потрепаться";
Текущий архив: 2002.12.19;
Скачать: [xml.tar.bz2];
ВнизКто знает эту идею или алгоритм ? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c