> Автоматическая генерация большого количества кода приводит к неприятным проблемам в отладке.
Вотъ это очень интересно. Откуда берутся проблемы отладки кода?
Почему-то мы компилируемъ огромное количество софта изъ самыхъ разныхъ языковъ въ машинные коды или въ байтъ-коды (JVM, .NET), и это тоже "автоматическая генерацiя большого количества кода" - очень большого количества кода! - но это не приводитъ къ проблемамъ отладки.
А вѣдь отлаживать сгенерированный байтъ-кодъ или ассемблерный кодъ на порядокъ тяжелѣе, чѣмъ отлаживать, скажемъ, сгенерированный кодъ высокаго уровня на Java или С++.
Какъ же такъ получается, что мы генерируемъ мегабайтами и гигабайтами машинный кодъ, который потомъ практически невозможно будетъ отлаживать, и это насъ не смущаетъ. А генерировать гораздо меньшее количество кода высокаго уровня для парсинга, это почему-то проблематично.
Очевидно, тутъ есть какая-то коренная разница. Для языковъ высокаго уровня мы пользуемся отладчиками, которые показываютъ намъ проблемы на уровнѣ исходнаго кода. Мы сегодня больше не отлаживаемъ ассемблеръ или байтъ-коды.
Можетъ, дѣло въ томъ, что нужны особыя средства отладки, которыя работали бы прямо на уровнѣ декларативной грамматики, но такихъ отладчиковъ нѣтъ?
no subject
Вотъ это очень интересно. Откуда берутся проблемы отладки кода?
Почему-то мы компилируемъ огромное количество софта изъ самыхъ разныхъ языковъ въ машинные коды или въ байтъ-коды (JVM, .NET), и это тоже "автоматическая генерацiя большого количества кода" - очень большого количества кода! - но это не приводитъ къ проблемамъ отладки.
А вѣдь отлаживать сгенерированный байтъ-кодъ или ассемблерный кодъ на порядокъ тяжелѣе, чѣмъ отлаживать, скажемъ, сгенерированный кодъ высокаго уровня на Java или С++.
Какъ же такъ получается, что мы генерируемъ мегабайтами и гигабайтами машинный кодъ, который потомъ практически невозможно будетъ отлаживать, и это насъ не смущаетъ. А генерировать гораздо меньшее количество кода высокаго уровня для парсинга, это почему-то проблематично.
Очевидно, тутъ есть какая-то коренная разница. Для языковъ высокаго уровня мы пользуемся отладчиками, которые показываютъ намъ проблемы на уровнѣ исходнаго кода. Мы сегодня больше не отлаживаемъ ассемблеръ или байтъ-коды.
Можетъ, дѣло въ томъ, что нужны особыя средства отладки, которыя работали бы прямо на уровнѣ декларативной грамматики, но такихъ отладчиковъ нѣтъ?