spamsink: (Default)
[personal profile] spamsink


Представьте себе язык, в котором можно описывать некоторые иерархические структуры: скажем, записи, поля в которых могут быть, кроме примитивных типов, еще и типа "запись". Обращаться к элементам этих структур можно с помощью Си-подобного синтаксиса, например, var.f1.f2.f3.
Блок отладчика, который получает от пользователя иерархическое имя поля и разбирает его на составные элементы, не глядя в таблицу имен, не вызывает затруднений.

Представьте себе, что в этом языке, кроме привычных нам идентификаторов, есть еще и "расширенные", состоящие из любых символов, кроме пробельных. Они записываются как \идентификатор<пробел>, т.е. "\\ " - легально (а вот "\ " - нет). И в этом случае разбор иерархического имени не представляет проблем, даже несмотря на то, что символы \ и . внутри расширенных идентификаторов допускаются.

А теперь представьте себе, что есть еще один очень похожий язык, в котором иерархические имена записываются точно так же через точку, оба языка позволяют использовать в качестве полей записи из другого языка (грубо, как opaque reference), но есть одна маленькая деталь - во втором языке тоже есть расширенные идентификаторы, состоящие из любых символов, кроме \. Они записываются как \идентификатор\, и пробелы в идентификаторе допускаются.

Отлаживать, понятное дело, нужно уметь и программы на смеси языков.

"\foo .\.\.\bar "



Та-да!

(Если кто не догадался, первый язык - Verilog, второй - VHDL).

Date: 2012-07-24 07:49 pm (UTC)
From: [identity profile] dz.livejournal.com
я бы уже застрелился. точнее - ввёл бы абсолютные кавычки, в которых литерально ВСЁ. :)

Date: 2012-07-25 08:49 am (UTC)
From: [identity profile] janatem.livejournal.com
Так грамматика получается заведомо противоречивая. А зачем понадобилось такое извращение? Оба языка довольно плохи, а в смеси уж наверно совсем ужасны.

Date: 2012-07-25 09:52 am (UTC)
From: [identity profile] janatem.livejournal.com
> Праститэ, других языков описания хардвэра у меня для вас нэт.

В том и дело! Эти языки из 80-х, и новых нет. В то время как в обычном программировании с тех пор появились 100500 языков, среди которых достаточно много хороших, и можно выбрать на свой вкус. Я уже давно вынашиваю планы по созданию удобного HDL (даже заявку на ФЦП послал), но, несмотря на интерес к этой теме, что-то не накапливается критическая масса желающих.
Page generated Mar. 5th, 2026 08:20 pm
Powered by Dreamwidth Studios