LINUX.ORG.RU

История изменений

Исправление den73, (текущая версия) :

Где-то на ЛОРе прочитал этот термин. Смысл в том, что он даже комментарии собирает и потом по дереву можно в точности воспроизвести исходный текст.

Думается, он применяется в CLang. Как у меня применяется? Первое практическое применение было для 1С 7.7. В 1С 7.7 параметры по умолчанию передаются по имени (то, что в C по мутабельному указателю). Как правило, фактически они не присваиваются. Знание об этом помогает читать программу. Я написал тул, который разбирает код обработки на 1С 7.7 и добавляет слово «знач» к каждому параметру, который фактически не меняется, а потом собирает исходник обратно.

Второе применение - в 1С очень медленный отладчик. Я написал программу (правда, кривоватую), которая инструментирует код, чтобы в момент падения по ошибке напечатался стек. А потом обратно разинструментирует.

Также был сделан (более кривой) аналогичный инструментор-разинструментов для Firebird, где он тоже был по делу, там с отладчиком ещё намного хуже.

Вот применения из жизни. В Яре он пока не применяется за отсутствием синтаксиса в настоящий момент. Синтаксис в процессе переработки. У старого синтаксиса есть парсер-линза, или был. Можешь попробовать посмотреть исходники (хотя они страшные).

Исходная версия den73, :

Где-то на ЛОРе прочитал этот термин. Смысл в том, что он даже комментарии собирает и потом по дереву можно в точности воспроизвести исходный текст.

Думается, он применяется в CLang. Как у меня применяется? Первое практическое применение было для 1С 7.7. В 1С 7.7 параметры по умолчанию передаются по имени (то, что в C по мутабельному указателю). Как правило, фактически они не присваиваются. Знание об этом помогает читать программу. Я написал тул, который разбирает код обработки на 1С 7.7 и добавляет слово «знач» к каждому параметру, который фактически не меняется, а потом собирает исходник обратно.

Второе применение - в 1С очень медленный отладчик. Я написал программу (правда, кривоватую), которая инструментирует код, чтобы в момент падения по ошибке напечатался стек. А потом обратно разинструментирует.

Также был сделан (более кривой) аналогичный инструмент для Firebird, где он тоже был по делу, там с отладчиком ещё намного хуже.

Вот применения из жизни. В Яре он пока не применяется за отсутствием синтаксиса в настоящий момент. Синтаксис в процессе переработки. У старого синтаксиса есть парсер-линза, или был. Можешь попробовать посмотреть исходники (хотя они страшные).