То есть это уже завершение?
А где же начало?
Мне показалось мы еще не вышли за рамки предисловия…
Влад, тогда мне вообще непонятно, для кого ты писал:
- если человек “в теме”, полагаю, ничего нового ты ему не сообщил.
- если человек “не в теме”, думаю, он тебя не понял. Вероятно потому, что ты пользуешься терминологией “для тех, кто в теме”.
Мне, по крайней мере, эта терминология непонятна.
Собственно, как уже можно сделать вывод, я не в теме. Слова LEX и YACC я, конечно слышал. То утверждение, что они называются лексическим и синтаксическим анализаторами, мне тоже известно. И последнее, что я в этой области знаю, так это то, что они как-то используются при разработке компиляторов для ЯВУ.
В общем, никогда ранее этим не интересовался.
Но, прочитав твое сообщение №10, решил, что уж теперь-то ликвидирую пробел вы своем образовании.
Не тут-то было!
Далее пишу в высказанном выше предположении, что я практически ничего не понял из-за использования терминологии, ориентированной “на тех, кто в теме”.
Поэтому вопросы, касающиеся терминологии.
- Что такое генератор?
- Что такое лексический анализатор?
- Что такое синтаксический анализатор?
- Что такое “надстройка” над языком программирования? Чем она отличается, скажем, от библиотеки?
То есть на LEX можно написать программу? Ну, в принципе, если это надстройка над ЯВУ, логично.
5. А что должна делать эта программа? Каковы ее назначение и какие у нее функции?
Вот это непонятно.
То есть пользователь, чтобы LEX заработал, должен написать программу на LEX, на основе которой генератор что-то там создаст, и код пользователя, который этот генератор включит код лексического анализатора.
Что-то получается слишком много сущностей:
- программа пользователя на LEX,
- сам LEX,
- генератор,
- код лексического анализатора,
- код пользователя, включаемый в созданный на основе программы пользователя в анализатор.
Как все эти сущности соотносятся друг с другом?
- А зачем нужно менять одно слово на другое? Какой в этом смысл?
- И что, чтобы заменить одно слово на другое, нужен целый “пакет”? Одной простенькой программы для этого недостаточно?
Единственное, что понятно из примера, что на входе (8. Кстати, на входе чего именно: LEX, генератора, анализатора, программы пользователя?) стандартного устройства ввода - текст, и на стандартном устройстве вывода - тоже текст.
Непонятно только - зачем. И как это все связано с компиляторами.
Собственно, уже видно, что отсутствие ответов на первые вопросы порождает вопросы последующие. Поэтому пока на этом остановлюсь.