Тема топика напомнила мнеhttp://compiler.su/len-dvigatel-progressa.php
> -- Цитата:
> Прошло совсем немного времени, и скоро обнаружилось, что программисты такие же лодыри, как и все. Вместо того, чтобы в поте лица своего кодировать свои программы, они начали искать, где и как можно сачкануть. Взамен кодов команд они придумали мнемонические обозначения для них. Вместо того, чтобы вспомнить код операции и адреса аргументов и записать, например,             01101010 00101110 00000101они стали писать             ADD A,Bчто означало «сложить A и B». Для трутней-программистов сделали так называемые ассемблеры, т.е. программы, которые переводили мнемонические обозначения в коды компьютера. И вы думаете, этим дело кончилось? Не надо себя обманывать! Появились языки программирования Фортран, Кобол, Лисп, Алгол, Бейсик, Си, Паскаль и тысячи других. И все они были предназначены для того, чтобы писать не «ADD A,B», а «A+B». Торг идет за пару лишних символов! Чтобы перевести программы с этих языков программирования в машинные коды, эти халтурщики смастерили всякие трансляторы, компиляторы, интерпретаторы.            Компьютерная индустрия просто сошла с ума, старясь перещеголять друг друга в угождении лентяям. США против Японии, IBM против SUN, Microsoft против Apple, iPad против Android. И на каждом витке противостояний появлялись всё новые и новые технологии для лежебок и тунеядцев. Лень-матушка стала образом жизни.            Охреневающие от безделья программисты придумали технологию так называемых «ленивых вычислений». Это не шутка и не анекдот: в программе написано, что надо сделать то-то и то-то, но программа оттягивает выполнение этих предписаний до последнего. Эти инструкции выполняются только тогда, когда без них уже совсем невозможно обойтись! Представляете, программы ленятся так же, как и их творцы.            И вот теперь мы пытаемся придумать еще один язык программирования, который должен еще больше угодить извращенному вкусу компьютерных обломовых. Чтобы программисты могли, зевая от скуки, изысканно поплевывать в потолок и умиротворенно созерцать открывающуюся их глазам картину. Они и раньше догадывались, что программирование можно сделать менее трудоемким. Но было как-то лень поинтересоваться этим.

А если серьёзно, то мне больше нравится подход из проекта GIPSY (можно поискать в электронной библиотеке ETH), где они используют аттрибутивную грамматику для генерации текстового редактора, инкрементального компилятора и т.д., то есть по аттрибутивной грамматике фактически генерируют всё необходимое для IDE для этого языка. Еще в этом проекте встречается, что аттрибутивная грамматика позволяет находить противоречия в языке (https://www.research-collection.ethz.ch/bitstream/handle/20.500.11850/141241/eth-22335-01.pdf):
> -- Цитата:
> 4. ApplicationsIn order to use EAGs in practice, only the actual enhancements of a grammar with respect tothe base grammar need be defined. Therefore, only newly-added parts (alphabet, productions,attributes,  attribution  rules)  require  definition.  Furthermore,  it  is  convenient  to  define  theextension  relation  explicitly,  as  this  . For practical applications, it makes sense to restrict the set of valid extension relations.For instance, one might require that it is acyclic and that every non-terminal of the extendedgrammar to be associated with only one non-terminal of the base grammar (single inheritance)