Здравствуйте! Система категоризации Живого Журнала посчитала, что вашу запись можно отнести к категориям: IT, Литература. Если вы считаете, что система ошиблась - напишите об этом в ответе на этот комментарий. Ваша обратная связь поможет сделать систему точнее. Фрэнк, команда ЖЖ.
К слову, помню тоже как-то давно писал что-то подобное - синтаксическую проверку скриптов в компьютерной игре. На пашкале. Меня, помню, тогда пугали lex/yacс-ом, но я тоже предпочел сделать с нуля.
У меня такое ощущение, что все эти разработчики квантовых компьютеров до сих пор не придумали, нафига козе баян. Одно время грозили на квантовых компах факторизацию проводить (если суметь собрать вместе достаточно кубитов, до чего тоже далеко), но криптографы ответили им эпилептическими кривыми, и с тех пор никакой новой полезной задачи, вроде, так и не придумали.
Квантово-механические расчеты, в основном. Т.е. шило шилом.
Но зато это непреходящее - ибо без этого 42 не посчитать. Так как на классических компьютерах время этих расчетов растет апоплексически от сложности системы, а на квантовых будет линейно.
Он самый и есть. Только я таких слов не знал, но откуда-то знал, как это делать.
Кстати, проверил сейчас ещё раз написанное тогда за 15 минут, и обнаружил, что моя реализация всегда даёт правую ассоциативность, что превращает бинарный минус в тыкву. По ссылке написано: "If the operator's precedence is lower than that of the operators at the top of the stack or the precedences are equal and the operator is left associative, then that operator is popped off the stack and added to the output", но на картинке это не проиллюстрировано. Придётся переделывать. Реализацию из прошлого века проверять лень :)
Сейчас основное это: 1. Ручные парсеры - для всяких CSV, а со стеком и для JSON-подобий. 2. Pratt parser для "что-то простенькое с приоритетами выражений". 3. YACC-подобия для сложных грамматик, желательно с готовыми их описаниями.
Comments 12
Система категоризации Живого Журнала посчитала, что вашу запись можно отнести к категориям: IT, Литература.
Если вы считаете, что система ошиблась - напишите об этом в ответе на этот комментарий. Ваша обратная связь поможет сделать систему точнее.
Фрэнк,
команда ЖЖ.
Reply
Reply
Reply
Обратную Польскую Нотацию
Как говорил Норм МакДональд, его, как человека польского происхождения, эти шутки оскорбляют!
ЗЫ. Однако, не все вычисления имеют таковой.
А также Тьюринг икает в гробу.
Reply
Reply
Reply
Но зато это непреходящее - ибо без этого 42 не посчитать. Так как на классических компьютерах время этих расчетов растет апоплексически от сложности системы, а на квантовых будет линейно.
Reply
А когда понадобилось в программе пользовательские выражения считать (тоже в те ещё времена) - переизобрёл https://en.wikipedia.org/wiki/Shunting_yard_algorithm и тоже свёл всё к стековому вычислителю.
Reply
Кстати, проверил сейчас ещё раз написанное тогда за 15 минут, и обнаружил, что моя реализация всегда даёт правую ассоциативность, что превращает бинарный минус в тыкву. По ссылке написано: "If the operator's precedence is lower than that of the operators at the top of the stack or the precedences are equal and the operator is left associative, then that operator is popped off the stack and added to the output", но на картинке это не проиллюстрировано. Придётся переделывать. Реализацию из прошлого века проверять лень :)
Reply
Сейчас основное это:
1. Ручные парсеры - для всяких CSV, а со стеком и для JSON-подобий.
2. Pratt parser для "что-то простенькое с приоритетами выражений".
3. YACC-подобия для сложных грамматик, желательно с готовыми их описаниями.
Reply
Leave a comment