Здравствуйте, CodeMonkey, Вы писали:
CM>Здравствуйте, VladiCh, Вы писали:
VC>>Ну просто для обработки арифметических и прочих скобочных выражений удобно из инфиксной записи преобразовывать в постфиксную (для этого есть отдельный довольно простой алгоритм) VC>>и потом через стек применять операции. Можно и в инфиксном режиме обрабатывать, не вопрос, но код получится сложнее.
CM>Остается открытым вопрос — почему нельзя взять исходное синтаксическое дерево и вычислять просто в процессе обхода.
Как ты получишь исходное синтаксическое дерево? Выражения обычно заданы в виде текста — (3+4)*5 и т.д.
Получить из такого выражения постфиксную запись и потом ее вычислить проще чем получить из нее дерево напрямую.
·>Так это был Один Твой Знакомый™?
Покажи пальцем, где я там написал, что я — "эксперт по докам log4net". Напрягись, соберись с мыслями.
Но ты ведь опять притворишься, что ничего не было, не так ли? Потому что ты соврал и был на этом пойман, и теперь скорее удавишься, чем признаешь этот факт.
·>Если это горячее место, оно покажется профайлером. А если профайлер не использовался, значит на перформанс всем плевать.
Значит, надо было вообще не выпендриваться и писать не 65536, а например 50000.
·>Твоё мнение обо мне очень важно для меня. Спасибо за ценные рекомендации и искреннюю заботу о моём благополучии.
Гуглить "bad practice — magic numbers". Также — "Yoda conditions", это как раз пример реальной паранойи по отношению к опечаткам.
И эти вещи — как раз из той категории, которые каждый программист обязан знать и использовать повседневно. В отличие от идиотских нотаций, которые на практике не нужны.
Здравствуйте, VladiCh, Вы писали:
VC>Как ты получишь исходное синтаксическое дерево? Выражения обычно заданы в виде текста — (3+4)*5 и т.д.
LL или LR парсер — и ты получаешь дерево.
VC>Получить из такого выражения постфиксную запись и потом ее вычислить проще чем получить из нее дерево напрямую.
Здравствуйте, CodeMonkey, Вы писали:
CM>Здравствуйте, VladiCh, Вы писали:
VC>>Получить из такого выражения постфиксную запись и потом ее вычислить проще чем получить из нее дерево напрямую.
CM>Каким образом проще?
Взять алгоритм перевода выражения в постфиксную запись (Reverse Polish notation (RPN), also known as Polish postfix notation).
Тривиальный, даже когда в него добавляются вызовы функций.
Это в разы проще и быстрее, чем тащить в проект LL/LR-парсеры.
Во-вторых, LL/LR-парсеры нужны лишь для контекстно-свободных грамматик в DSL (domain-specific language), когда приходится определять-выявлять синтаксические ошибки в обрабатываемых выражениях.
Здравствуйте, a7d3, Вы писали:
A>Взять алгоритм перевода выражения в постфиксную запись (Reverse Polish notation (RPN), also known as Polish postfix notation). A>Тривиальный, даже когда в него добавляются вызовы функций.
И он умеет учитывать приоритеты операций?
A>Это в разы проще и быстрее, чем тащить в проект LL/LR-парсеры.
В простом случае — не надо ничего тащить, можно написать самому.
Здравствуйте, CodeMonkey, Вы писали:
CM>Здравствуйте, a7d3, Вы писали:
A>>Взять алгоритм перевода выражения в постфиксную запись (Reverse Polish notation (RPN), also known as Polish postfix notation). A>>Тривиальный, даже когда в него добавляются вызовы функций.
CM>И он умеет учитывать приоритеты операций?
Умеет и даже про скобки знает
В процессе обработки используется правило помещения/выталкивания из специального стека операций с учётом их приоритета. Порядок которых потом меняется, т.к. LIFO-стэк.
Искать в инете по словам: «постфиксная запись преобразование».
A>>Это в разы проще и быстрее, чем тащить в проект LL/LR-парсеры.
CM>В простом случае — не надо ничего тащить, можно написать самому.
Преобразование из инфиксной в постфиксную на порядок проще, чем устройство LL/LR-парсера.
Да, можно парсер и сгенерировать предварительно сделав формальное описание грамматики для генератора, но это не аргумент о том, что проще сделать. По аналогии можно пользоваться готовой реализацией преобразования в постфиксную запись.
Здравствуйте, CodeMonkey, Вы писали:
CM>·>Т.е. никаких поскипанных вопросов так и не нашлось.
CM>Тыкаю тебя носом.
Я же сказал, что шум игнорирую. А вопросы я так и не вижу.
CM>http://rsdn.org/forum/job/7307334?tree=tree
CM>·>Так это был Один Твой Знакомый™?
CM>Покажи пальцем, где я там написал, что я — "эксперт по докам log4net". Напрягись, соберись с мыслями.
CM>Но ты ведь опять притворишься, что ничего не было, не так ли? Потому что ты соврал и был на этом пойман, и теперь скорее удавишься, чем признаешь этот факт.
Ну не эксперт, так не эксперт, никого это не волнует. И это очевидно не враньё, а догадки. Это невозможно врать теоретически, добавляя что-то к чужим росказням. А вот заявления, что на интервью обычно не дают пользоваться бумагой — это хороший пример вранья.
CM>·>Если это горячее место, оно покажется профайлером. А если профайлер не использовался, значит на перформанс всем плевать. CM>Значит, надо было вообще не выпендриваться и писать не 65536, а например 50000.
Ок, разрешаю, не выпендривайся.
CM>Гуглить "bad practice — magic numbers". Также — "Yoda conditions", это как раз пример реальной паранойи по отношению к опечаткам. CM>И эти вещи — как раз из той категории, которые каждый программист обязан знать и использовать повседневно. В отличие от идиотских нотаций, которые на практике не нужны.
А как там у тебя бузина в Киеве?
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Здравствуйте, a7d3, Вы писали:
A>Умеет и даже про скобки знает A>В процессе обработки используется правило помещения/выталкивания из специального стека операций с учётом их приоритета. Порядок которых потом меняется, т.к. LIFO-стэк.
Ну так это тот же парсер, только со странным форматом вывода. Не?
Здравствуйте, ·, Вы писали:
·>Ну не эксперт, так не эксперт, никого это не волнует. И это очевидно не враньё, а догадки.
Нет, это именно враньё. Ты приписал мне утверждение, которого в моем сообщении не было — и тут же сам рванулся оспаривать это утверждение, которые ты сам и придумал и приписал мне.
Засим раскланиваюсь, спорить с врунами смысла нет.
Я тебя пожалуй поддержу, с одной стороны такую задачу конечно надо уметь решить, с другой стороны отсеивать человека потому что, он не решил одну задачу это МАРАЗМ.
А всем кто тут пишет, как такое можно не знать ко ко ко... Вы такие умные пока вопросы задаете вы, когда вопросы будут задавать вам, вас закопают если захотят, уж поверьте мне
Здравствуйте, a7d3, Вы писали:
A>Здравствуйте, CodeMonkey, Вы писали:
CM>>Здравствуйте, a7d3, Вы писали:
A>>>Взять алгоритм перевода выражения в постфиксную запись (Reverse Polish notation (RPN), also known as Polish postfix notation). A>>>Тривиальный, даже когда в него добавляются вызовы функций.
CM>>И он умеет учитывать приоритеты операций?
A>Умеет и даже про скобки знает A>В процессе обработки используется правило помещения/выталкивания из специального стека операций с учётом их приоритета. Порядок которых потом меняется, т.к. LIFO-стэк. A>Искать в инете по словам: «постфиксная запись преобразование».
A>>>Это в разы проще и быстрее, чем тащить в проект LL/LR-парсеры.
CM>>В простом случае — не надо ничего тащить, можно написать самому.
A>Преобразование из инфиксной в постфиксную на порядок проще, чем устройство LL/LR-парсера. A>Да, можно парсер и сгенерировать предварительно сделав формальное описание грамматики для генератора, но это не аргумент о том, что проще сделать. По аналогии можно пользоваться готовой реализацией преобразования в постфиксную запись.
Это есть на самом деле LR парсер и разрешение конфликтов типа shift/reduce
Здравствуйте, pagid, Вы писали:
mgu>>А что такое "моноширинный тег"? И вы и вправду полагаете, что выравнивание на формах происходит при помощи шрифтов? P>А как еще могут выравниваться числовые данные в таблицах?
Здравствуйте, ·, Вы писали:
CM>>·>Есть такое слово "тесты". Поинтересуйся на досуге. А то бояться опечаток... это мягко говоря непрофессионально.
·>С фобиями — это тебе к другим профессионалам. Программирование тут непричём.
Здравствуйте, iriska2, Вы писали:
I>А всем кто тут пишет, как такое можно не знать ко ко ко...
Ещё один
I>Вы такие умные пока вопросы задаете вы, когда вопросы будут задавать вам, вас закопают если захотят, уж поверьте мне
Здравствуйте, iriska2, Вы писали:
A>>Преобразование из инфиксной в постфиксную на порядок проще, чем устройство LL/LR-парсера. A>>Да, можно парсер и сгенерировать предварительно сделав формальное описание грамматики для генератора, но это не аргумент о том, что проще сделать. По аналогии можно пользоваться готовой реализацией преобразования в постфиксную запись. I>Это есть на самом деле LR парсер и разрешение конфликтов типа shift/reduce
Тсс... не спугни человека.
Да это частный, вырожденный случай LR-парсера, да используется shift-reduce(«перенос-свертка»).
Лучше один раз понять работу этого алгоритма, чем по пустякам описывать грамматику в Backus–Naur form (BNF) для генерации тривиально-вырожденных LR-парсеров.
Здравствуйте, CreatorCray, Вы писали:
CC>Здравствуйте, iriska2, Вы писали:
I>>А всем кто тут пишет, как такое можно не знать ко ко ко... CC>Ещё один
I>>Вы такие умные пока вопросы задаете вы, когда вопросы будут задавать вам, вас закопают если захотят, уж поверьте мне CC>Image: u_f9e49ef8c4d5ff58b9b2e5e633c71a6d_800.jpg
Тут одному питону чсв недавно укоротили и тебе тоже укоротят
Здравствуйте, CodeMonkey, Вы писали:
CM>·>Ну не эксперт, так не эксперт, никого это не волнует. И это очевидно не враньё, а догадки. CM>Нет, это именно враньё. Ты приписал мне утверждение, которого в моем сообщении не было — и тут же сам рванулся оспаривать это утверждение, которые ты сам и придумал и приписал мне.
Я тебе ничего не приписывал, не сочиняй. Да и в чём собственно враньё-то заключается? Назвал благородного дона экспертом по log4net? Ок, прошу прощения, что обидел, господин неэксперт по log4net.
CM>Засим раскланиваюсь, спорить с врунами смысла нет.
Приятно было пообщаться.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай