home.social

#синтаксический_анализ — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #синтаксический_анализ, aggregated by home.social.

  1. Почему алгоритм плохо защищает от социальной инженерии: мысленный эксперимент в мире кантианцев-манипуляторов

    Что, если самые надёжные системы защиты — двухфакторная аутентификация, тренинги по социнженерии, чёрные списки — на самом деле работают против нас? Что если каждое новое правило, каждый баннер «Осторожно, фишинг!» не укрепляет безопасность, а формирует в пользователе постоянное ощущение угрозы — и делает его уязвимее? Представьте мир, где все действуют разумно: логично, автономно, добродетельно. И при этом хладнокровно убивают или манипулируют, потому что их «добродетель» проходит тест на всеобщность. В этом мысленном эксперименте формальная логика не спасает от морального кошмара. Алгоритм не различает помощь и манипуляцию — он видит синтаксис, но не смысл. А настоящая битва идёт не за пароли, а за интерпретацию. Где проходит грань между заботой и контролем? Когда доверие становится оружием? Чтобы увидеть эти ловушки, нужен не просто код, а взгляд гуманитария. Иначе мы будем строить идеальные системы, в которых человек постепенно перестаёт быть субъектом.

    habr.com/ru/articles/937510/

    #безопасность #безумие #безопасность_в_сети #семантика #логика #синтаксис #синтаксический_анализ #социальная_инженерия #этика

  2. Парсер‑комбинаторы «с нуля»

    Привет, Хабр! Парсер‑комбинаторы и синтаксический анализ в целом — очень интересные темы. Однако материалов со сравнительно низким порогом входа маловато, а в существующих статьях на читателя сразу обрушивается поток терминов и формальностей. Эту статью я позиционирую как введение в парсер‑комбинаторы «для чайников» (или «для самых маленьких» — как вам больше нравится). Цель: попытаться рассказать простым языком и с примерами так, чтобы Вы могли после прочтения написать свой парсер без какого‑либо предварительного опыта и знаний в области синтаксического анализа. Приятного чтения!

    habr.com/ru/articles/1016632/

    #парсеркомбинаторы #парсер #синтаксический_анализ #функциональное_программирование #dsl #разбор_текста #формальные_языки

  3. Компилятор за выходные: пишем собственный парсер

    Изначально, когда я решил написать компилятор за выходные , я решил, что нет смысла заморачиваться, и использовал сторонний лексический / синтаксический анализатор. Мой выбор пал на SLY , довольно известную библиотеку. И действительно, пара часов работы, и мой компилятор прекрасно строил синтаксические деревья из исходного кода на wend . Я пытался было заглянуть под капот, утонул в море технических терминов (LL(1), LR, LALR(1) и тому подобное), и решил, что парсинг своими руками - это не для меня, теория формальных языков меня слабо интересует. Однако же в итоге выяснилось, что базовый синтаксический анализатор - это не так сложно, и я закатал рукава.

    habr.com/ru/articles/883390/

    #парсер #синтаксический_анализ #синтаксический_анализатор

  4. Синтаксический анализатор на стеках и lambda-выражениях (Axolotl)

    Синтаксический анализатор на стеках и lambda-выражениях (Axolotl) В этой статье рассматривается практическая реализация синтаксического анализатора, основанного на стеке состояний и lambda-выражениях. Такой подход упрощает обработку синтаксиса, делая его гибким и легко масштабируемым. В статье описана архитектура анализатора, от лексического анализа до правил обработки состояний и обработки ошибок. Обсудим, как использовать состояния для синтаксического анализа ключевых конструкций и продемонстрируем простые, но эффективные методы для управления состояниями. Эта реализация — отличный выбор для быстрого прототипирования и собственных учебных языков.

    habr.com/ru/articles/856616/

    #Аксолотль #Axolotl #язык_программирования #анализатор #синтаксический_анализ #синтаксис #shunting_yard #стек #парсер #парсеркомбинаторы

  5. Всё, что вам не рассказали про Shunting Yard

    Алгоритм сортировочной станции (Shunting Yard) был предложен Дейкстрой ещё в 1961 году и служит для преобразования математических выражений из привычной всем инфиксной записи (где операторы стоят между операндами, как в 1 + 2 * 3 ) в постфиксную (обратную польскую нотацию, 1 2 3 * + ), удобную для дальнейшего вычисления. Однако есть один важный момент, который почти всегда упускается или замалчивается: алгоритм предполагает, что входное выражение уже синтаксически корректно . Ни в Википедии , ни в большинстве обучающих статей вы не встретите слов о том, что выражения вроде + (1 2, 3 * 4 + ) или sin(+) должны вызывать ошибку. В лучшем случае они просто не вычисляются (что будет понятно лишь на этапе обработки в обратной польской записи), в худшем – дают бессмысленный результат. Алгоритм продолжает работать, даже если выражение изначально некорректно – и мало кто задумывается, почему это плохо. Эта статья – попытка исправить эту несправедливую ситуацию, в которой мы не только реализуем алгоритм сортировочной станции «на максималках» с поддержкой констант, переменных, функций, унарных операторов, приоритетов и ассоциативности, но и добавим полноценную проверку корректности выражения по ходу разбора.

    habr.com/ru/articles/908062/

    #алгоритм_сортировочной_станции #shunting_yard #парсер_математических_выражений #алгоритмы #синтаксический_анализ