Может быть, я что-то упускаю, но «умные отступы» были бы полностью связаны в грамматической спецификации языка. Самой близкой вещью к академической статье, которую я смог найти после небольшого количества google-fu, был, фактически, еще один вопрос SO, относящийся к определенному языку, здесь .
Так что, боюсь, я не могу технически дать ответ, поскольку я не нашел никаких научных работ, но в качестве мета-ответа (к сожалению, в форме вопроса): это сложнее? чем разбирать язык? Я использую термин «сложнее» в неопределенном смысле вычислимости / сложности, не имея в виду фактическое время / усилие / разрывы, которые человек фактически вложил бы.
Подумайте: уровень отступа изменяется, по моему опыту, в рамках определенных подпунктов. Если операторы, циклы, классы, структуры и т. Д. И т. Д. И т. Д. Все они уже обнаружены синтаксическим анализатором. Точно так же, как можно украсить дерево разбора для создания семантического дерева (это осколок случайного университета веб-сайт ), вы не можете вместо этого украсить дерево разбора «информацией об отступах»?
Полагаю, я просто не понимаю, к чему относится призыв к академическим работам. Если, конечно, что-то мне не хватает. Что вполне возможно, поскольку я, конечно, никогда не решался попытаться это сделать. :) Но, с моей точки зрения, может показаться, что это умное отступление возможно, просто запустив измененный синтаксический анализатор, и вместо того, чтобы сообщать о «ошибках разбора», он автоматически переформатирует код так, чтобы он был действительным (при условии, что «реальный» "парсер уже в порядке блока). Работа в реальном времени, безусловно, вызовет проблемы, и существуют неоднозначные уровни отступов в языке, зависящем от пробелов (так как уровень отступа является концом блока).
В заключение (честно говоря, я почти закончил! :)) примечание: текстовая редакция Emacs поразительно хороша, по моему опыту. Я понятия не имею, как это работает, но если бы я попробовал это, это было бы первое место, которое я бы посмотрел ... после SO, конечно. :))