Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Andrew Kadatch                       2:5020/400     22 Jul 2001  11:08:16
 To : All
 Subject : Re: Компилятор
 -------------------------------------------------------------------------------- 
 
 > Я не o тoм, я хoчу узнать, пoчему не cледует пpи pазpабoтке кoмпилятopа
 > начинать c pазбopoв гнуевых иcхoдникoв ?
 
 Disclaimer: я никоим образом не хочу оскорбить любителей gcc и проч. в
 лучших
 чувствах (т.е. пинайте меня в email); все сказанное ниже -- мое личное
 мнение.
 
 Coding style -- это полбеды (хотя за условные операторы на 4 экрана,
 испещренные
 &&-ми и ||-ми без единой скобки, нужно выдергивать руки).
 
 Основная проблема, на мой взгляд, заключается в безнадежно запущенной
 болезни
 ГЦЦ, давно перешедшей в хроническую стадию и лечению не поддающейся. Болезнь
 эта называется "идиотский дизайн". Сначала ребята героически переводят
 убогое
 синтаксическое дерево в RTL (Register Transfer Language -- достаточно
 неудачная
 попытка упростить retargetting кодогенератора на другие платформы, BURG с
 этой
 задачей справляется гораздо лучше), теряя при этом всю информацию об
 исходной
 программе (особая прелесть заключается в том, что RTL указатель и целое
 одной
 длины неотличимы), а потом data flow analysis не менее героически пытается
 извлечь
 хоть какую-нибудь информацию из этого убожества. Hу просто классика жанра --
 сначала создать себе трудности, а потом их героически преодолевать. И так в
 ГЦЦ
 везде, куда ни кинь взгляд... Четкого разделения машинно-зависимых и
 машинно-
 независимых оптимизаций нет (и начинается весь этот бардак еще в парсере),
 никто
 не знает, как различные фазы оптимизатора зависят друг от друга, море
 спагетти-кода,
 и проч. и проч.
 
 Короче, это вещь, на которой тренировалось 10 поколений студентов не
 обладающих,
 увы, должным опытом и квалификацией -- отсюда и все ляпы в дизайне: чтобы
 узнать,
 где грабли лежат, на них надо разок наступить; история хождения по минному
 полю
 хорошо отражена в исходниках ГЦЦ. Hу а потом слегка недоделанные кусочки
 (как
 правило, при переносе, когда все ляпы и машинная зависимость начинают,
 подобно
 тараканам, лезть из всех щелей) наскоро доделывались (столь же часто без
 малейшего
 понимания происходящего), что сделало изначально не самый лучший код
 нечитаемым
 окончательно и бесповоротно.
 
 Сия проблема, кстати, имеет место быть не только в ГЦЦ. Взгляните на любой
 старый
 город сверху, и вам тоже станет страшно -- все улицы кривые, как турецкая
 сабля, и
 коротенькие, как штанишки первоклассника. Hеизбежное следствие
 неконтролируемого
 роста -- в остутствие садовника, безжалостно вырезающего кривые веточки,
 постоянный
 рост энтропии рано или поздно приводит к хаосу.
 
 Разумеется, каждый опытный проектировщик города должен знать о лондонском
 сити --
 с тем, чтобы знать, как города делать не надо, -- однако, на мой взгляд, это
 не то, с чего
 следует начинать обучение.
 Удачи,
 АК
 --- ifmail v.2.15dev5
  * Origin: Demos online service (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Компилятор   andy Tatarinov   05 Jul 2001 03:33:24 
 Компилятор   Alex Astafiev   05 Jul 2001 14:37:55 
 Re: Компилятор   andy Tatarinov   05 Jul 2001 16:28:15 
 Re: Компилятор   Alexei Frounze   06 Jul 2001 09:18:37 
 Re: Компилятор   Alexey Desyatnik   06 Jul 2001 09:15:04 
 Компилятор   George Shepelev   09 Jul 2001 15:44:43 
 Компилятоp   Alexandr Ivanov   05 Jul 2001 12:40:31 
 Компилятоp   Dzurilo Dmitry   06 Jul 2001 17:39:54 
 Компилятор   Ilya S Slyzhnyak   08 Jul 2001 12:23:53 
 Re: Компилятор   Andrew Kadatch   19 Jul 2001 11:21:10 
 Компилятор   Yaroslav Pernerovsky   19 Jul 2001 21:32:51 
 Компилятор   Stanislav Shwartsman   19 Jul 2001 23:14:02 
 Компилятор   Yaroslav Pernerovsky   20 Jul 2001 03:13:20 
 Компилятор   Stanislav Shwartsman   20 Jul 2001 06:07:02 
 Компилятор   Yaroslav Pernerovsky   20 Jul 2001 21:59:14 
 Компилятор   George Shepelev   22 Jul 2001 14:10:32 
 Re: Компилятор   Andrew Kadatch   22 Jul 2001 11:08:16 
 Re: Компилятор   Alexander Krotoff   20 Jul 2001 14:53:39 
 Компилятор   George Shepelev   21 Jul 2001 12:55:05 
 Re: Компилятор   Serge Kanilo   23 Jul 2001 22:04:00 
 Компилятор   George Shepelev   24 Jul 2001 18:47:31 
 Re: Компилятор   Serge Kanilo   25 Jul 2001 19:22:42 
 Компилятор   George Shepelev   26 Jul 2001 15:47:35 
 Компилятор   Smirnov Valery   09 Jul 2001 21:08:43 
Архивное /ru.algorithms/6577b9042445.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional