#синтаксический_анализ — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #синтаксический_анализ, aggregated by home.social.
-
Почему алгоритм плохо защищает от социальной инженерии: мысленный эксперимент в мире кантианцев-манипуляторов
Что, если самые надёжные системы защиты — двухфакторная аутентификация, тренинги по социнженерии, чёрные списки — на самом деле работают против нас? Что если каждое новое правило, каждый баннер «Осторожно, фишинг!» не укрепляет безопасность, а формирует в пользователе постоянное ощущение угрозы — и делает его уязвимее? Представьте мир, где все действуют разумно: логично, автономно, добродетельно. И при этом хладнокровно убивают или манипулируют, потому что их «добродетель» проходит тест на всеобщность. В этом мысленном эксперименте формальная логика не спасает от морального кошмара. Алгоритм не различает помощь и манипуляцию — он видит синтаксис, но не смысл. А настоящая битва идёт не за пароли, а за интерпретацию. Где проходит грань между заботой и контролем? Когда доверие становится оружием? Чтобы увидеть эти ловушки, нужен не просто код, а взгляд гуманитария. Иначе мы будем строить идеальные системы, в которых человек постепенно перестаёт быть субъектом.
https://habr.com/ru/articles/937510/
#безопасность #безумие #безопасность_в_сети #семантика #логика #синтаксис #синтаксический_анализ #социальная_инженерия #этика
-
Парсер‑комбинаторы «с нуля»
Привет, Хабр! Парсер‑комбинаторы и синтаксический анализ в целом — очень интересные темы. Однако материалов со сравнительно низким порогом входа маловато, а в существующих статьях на читателя сразу обрушивается поток терминов и формальностей. Эту статью я позиционирую как введение в парсер‑комбинаторы «для чайников» (или «для самых маленьких» — как вам больше нравится). Цель: попытаться рассказать простым языком и с примерами так, чтобы Вы могли после прочтения написать свой парсер без какого‑либо предварительного опыта и знаний в области синтаксического анализа. Приятного чтения!
https://habr.com/ru/articles/1016632/
#парсеркомбинаторы #парсер #синтаксический_анализ #функциональное_программирование #dsl #разбор_текста #формальные_языки
-
Компилятор за выходные: пишем собственный парсер
Изначально, когда я решил написать компилятор за выходные , я решил, что нет смысла заморачиваться, и использовал сторонний лексический / синтаксический анализатор. Мой выбор пал на SLY , довольно известную библиотеку. И действительно, пара часов работы, и мой компилятор прекрасно строил синтаксические деревья из исходного кода на wend . Я пытался было заглянуть под капот, утонул в море технических терминов (LL(1), LR, LALR(1) и тому подобное), и решил, что парсинг своими руками - это не для меня, теория формальных языков меня слабо интересует. Однако же в итоге выяснилось, что базовый синтаксический анализатор - это не так сложно, и я закатал рукава.
-
Синтаксический анализатор на стеках и lambda-выражениях (Axolotl)
Синтаксический анализатор на стеках и lambda-выражениях (Axolotl) В этой статье рассматривается практическая реализация синтаксического анализатора, основанного на стеке состояний и lambda-выражениях. Такой подход упрощает обработку синтаксиса, делая его гибким и легко масштабируемым. В статье описана архитектура анализатора, от лексического анализа до правил обработки состояний и обработки ошибок. Обсудим, как использовать состояния для синтаксического анализа ключевых конструкций и продемонстрируем простые, но эффективные методы для управления состояниями. Эта реализация — отличный выбор для быстрого прототипирования и собственных учебных языков.
https://habr.com/ru/articles/856616/
#Аксолотль #Axolotl #язык_программирования #анализатор #синтаксический_анализ #синтаксис #shunting_yard #стек #парсер #парсеркомбинаторы
-
Всё, что вам не рассказали про Shunting Yard
Алгоритм сортировочной станции (Shunting Yard) был предложен Дейкстрой ещё в 1961 году и служит для преобразования математических выражений из привычной всем инфиксной записи (где операторы стоят между операндами, как в 1 + 2 * 3 ) в постфиксную (обратную польскую нотацию, 1 2 3 * + ), удобную для дальнейшего вычисления. Однако есть один важный момент, который почти всегда упускается или замалчивается: алгоритм предполагает, что входное выражение уже синтаксически корректно . Ни в Википедии , ни в большинстве обучающих статей вы не встретите слов о том, что выражения вроде + (1 2, 3 * 4 + ) или sin(+) должны вызывать ошибку. В лучшем случае они просто не вычисляются (что будет понятно лишь на этапе обработки в обратной польской записи), в худшем – дают бессмысленный результат. Алгоритм продолжает работать, даже если выражение изначально некорректно – и мало кто задумывается, почему это плохо. Эта статья – попытка исправить эту несправедливую ситуацию, в которой мы не только реализуем алгоритм сортировочной станции «на максималках» с поддержкой констант, переменных, функций, унарных операторов, приоритетов и ассоциативности, но и добавим полноценную проверку корректности выражения по ходу разбора.
https://habr.com/ru/articles/908062/
#алгоритм_сортировочной_станции #shunting_yard #парсер_математических_выражений #алгоритмы #синтаксический_анализ