Еще парсерное восхитительное
Jul. 24th, 2012 10:56 amПредставьте себе язык, в котором можно описывать некоторые иерархические структуры: скажем, записи, поля в которых могут быть, кроме примитивных типов, еще и типа "запись". Обращаться к элементам этих структур можно с помощью Си-подобного синтаксиса, например, var.f1.f2.f3.
Блок отладчика, который получает от пользователя иерархическое имя поля и разбирает его на составные элементы, не глядя в таблицу имен, не вызывает затруднений.
Представьте себе, что в этом языке, кроме привычных нам идентификаторов, есть еще и "расширенные", состоящие из любых символов, кроме пробельных. Они записываются как \идентификатор<пробел>, т.е. "\\ " - легально (а вот "\ " - нет). И в этом случае разбор иерархического имени не представляет проблем, даже несмотря на то, что символы \ и . внутри расширенных идентификаторов допускаются.
А теперь представьте себе, что есть еще один очень похожий язык, в котором иерархические имена записываются точно так же через точку, оба языка позволяют использовать в качестве полей записи из другого языка (грубо, как opaque reference), но есть одна маленькая деталь - во втором языке тоже есть расширенные идентификаторы, состоящие из любых символов, кроме \. Они записываются как \идентификатор\, и пробелы в идентификаторе допускаются.
Отлаживать, понятное дело, нужно уметь и программы на смеси языков.
"\foo .\.\.\bar "
Та-да!
(Если кто не догадался, первый язык - Verilog, второй - VHDL).
no subject
Date: 2012-07-24 07:49 pm (UTC)no subject
Date: 2012-07-24 08:03 pm (UTC)no subject
Date: 2012-07-25 08:49 am (UTC)no subject
Date: 2012-07-25 09:06 am (UTC)По второму вопросу могу сказать лишь "Праститэ, других языков описания хардвэра у меня для вас нэт."
no subject
Date: 2012-07-25 09:52 am (UTC)В том и дело! Эти языки из 80-х, и новых нет. В то время как в обычном программировании с тех пор появились 100500 языков, среди которых достаточно много хороших, и можно выбрать на свой вкус. Я уже давно вынашиваю планы по созданию удобного HDL (даже заявку на ФЦП послал), но, несмотря на интерес к этой теме, что-то не накапливается критическая масса желающих.
no subject
Date: 2012-07-25 05:42 pm (UTC)System Verilog на сегодняшний день - это на самом деле сплав Верилога с разнообразными языками для верификации. Ниша узкая, поэтому они на слуху обычно не оказываются.