Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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
3-61422
Юра
2002-11-28 20:23
2002.12.19
масштабируемость DB-Grida


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


3-61390
roman_tutov
2002-12-02 13:46
2002.12.19
хитрая сортировка


7-61849
ZMaxim
2002-09-14 17:09
2002.12.19
Алгоритм случайных чисел


14-61809
denisac
2002-10-30 06:37
2002.12.19
Команда кодеров





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский