Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 29, 2022 10:10:10

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как создать синтаксический анализатор кода?

dmitriyLutsenko
В чем Ваша проблема? Что за пассивная агрессия? Может, у Вас нет опыта написания проектов схожей тематики, но за других -то не надо говорить.

ну… подождём более других



Офлайн

#2 Июнь 29, 2022 10:15:44

dmitriyLutsenko
Зарегистрирован: 2022-06-28
Сообщения: 19
Репутация: +  -1  -
Профиль   Отправить e-mail  

Как создать синтаксический анализатор кода?

py.user.next
Об этом я и говорю. Кришнаит такой, с розовыми соплями, одной ногой в канализационном люке, жрёт с помойки и со столиков в Макдональдсе тайком, где люди не доели еду и оставили крошку-картошку, но при этом счастлив и всем говорит “да вы ничего не понимаете просто! а я-то понимаю как раз! я счастье напрямую черпаю из космоса! а вы дураки все! ха-ха-ха-хари-хари-рама!”.
Да почему ты со мной так общаешься? Что за сравнение? Я тебе что плохого то сделал? Может, обидел я тебя чем?

Офлайн

#3 Июнь 29, 2022 10:34:23

dmitriyLutsenko
Зарегистрирован: 2022-06-28
Сообщения: 19
Репутация: +  -1  -
Профиль   Отправить e-mail  

Как создать синтаксический анализатор кода?

Ситуация у меня такая.
Курс лекций по компиляторам в вузе моему потоку не читали. По печальному стечению обстоятельств преподаватель по предмету поменялся. И тему курсовой работы я получил новую. “Сделать переводчик с одного языка на другой”. Дали такие требования:
распознать переменные, конструкцию if-else, присвоение =, операции сравнения <, >, ==
Все.
Кода, по конструкции сложнее этого, не будет:

program Hello;
var
a: integer;
b: integer;
{c: integer;}
begin
a := 1;
b := 2;
{c := 3;}
if a < b then
writeln('a < b')
else
writeln('a >= b');
{if c < b then
writeln('c < b')
else
writeln('c >= b');
}
end.
Новый преподаватель понимает, какая у нас ситуация, и что эта тема больше для полноценного диплома, нежели курсовой проект(даже на уровне лабораторной работы). Поэтому оценивает по принципу: “Главное, чтобы работало”.

Офлайн

#4 Июнь 29, 2022 11:01:42

dmitriyLutsenko
Зарегистрирован: 2022-06-28
Сообщения: 19
Репутация: +  -1  -
Профиль   Отправить e-mail  

Как создать синтаксический анализатор кода?

FishHook
ну… подождём более других
Да, уже дождался

Слишком горячий прием для новичка

Офлайн

#5 Июнь 29, 2022 11:05:54

dmitriyLutsenko
Зарегистрирован: 2022-06-28
Сообщения: 19
Репутация: +  -1  -
Профиль   Отправить e-mail  

Как создать синтаксический анализатор кода?

py.user.next
Напиши транслятор, который хотя бы пустую программу на одном языке в пустую программу на другом языке транслирует. Начни с этого. Это такой Hello World в компиляции.
Попробую реализовать

Офлайн

#6 Июнь 29, 2022 11:40:35

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как создать синтаксический анализатор кода?

dmitriyLutsenko
Я вообще не понял, нафига ты на меня наехал, мне кажется, мой пост был вполне информативен.
Я повторю мысль, если она была непонятна сразу. Ты пытаешься получить на форуме знания. Это не то, как форумы работают и для чего они предназначены. Знания дают учебники. Ну просто невозможно вместить в сообщение в несколько десятков строк хоть сколько-нибудь полезную информацию по теории синтаксического анализа, даже если бы кто-то хотел этим заниматься. Да даже просто, как устроена структура, содержащая граф абстрактного синтаксиса, в двух словах не расскажешь. Посмотри в мой профиль на дату регистрации, некий опыт общения онлайн налицо, правда? Вот руководствуясь этим опытом, я тебе первым же сообщением дал понять, что форум - не источник знаний и ты зря теряешь время. На форум приходят за помощью в решении конкретных проблем, когда собственных мозгов не хватает, тогда на помощь приходит коллективный разум. Еще раз повторю, в виде резюме: учебных материалов по теме - миллион, реализаций в открытом коде - миллион, всё отлично гуглится. Ну в чем проблема то?



Офлайн

#7 Июнь 29, 2022 11:57:27

dmitriyLutsenko
Зарегистрирован: 2022-06-28
Сообщения: 19
Репутация: +  -1  -
Профиль   Отправить e-mail  

Как создать синтаксический анализатор кода?

FishHook
dmitriyLutsenkoЯ вообще не понял, нафига ты на меня наехал, мне кажется, мой пост был вполне информативен.
Если я тебя обидел, то извини.

На меня часто наезжают на форумах. Задаешь вопрос любой сложности - получаешь по шапке. Начиная от “в гугле забанили?” до послания “Ты никто и твой код хуже фекалий. А помогать не буду, потому что гладиолус.”.

Не отвечать на подобное, значит дать другим возможность жестко меня троллить и обесценить необходимость решения вопроса. Знаю - проходил уже.

Значит, снова гугл мне в помощь
- Получается, нужно найти хорошую книгу про трансляторы
- учебники формальные языки и грамматики
- алгоритмы и структуры данных (бинарные деревья, графы и стеки)
- может, есть репозитории с реализацией задачи смежной тематики?








Отредактировано dmitriyLutsenko (Июнь 29, 2022 12:07:40)

Офлайн

#8 Июнь 29, 2022 12:36:47

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как создать синтаксический анализатор кода?

dmitriyLutsenko
- может, есть репозитории с реализацией задачи смежной тематики?

Так любой опен-сорсный продукт, который чего-то транслирует/компилирует можно посмотреть. Да тот же питон. Вот, например, как устроен модуль ast в питоне
https://github.com/python/cpython/blob/3.10/Lib/ast.py, а вот так в го https://pkg.go.dev/go/ast, а вот в расте https://doc.rust-lang.org/beta/nightly-rustc/rustc_ast/ast/index.html

ищите и обрящете



Офлайн

#9 Июнь 29, 2022 12:46:26

dmitriyLutsenko
Зарегистрирован: 2022-06-28
Сообщения: 19
Репутация: +  -1  -
Профиль   Отправить e-mail  

Как создать синтаксический анализатор кода?

FishHook
Так любой опен-сорсный продукт, который чего-то транслирует/компилирует можно посмотреть. Да тот же питон. Вот, например, как устроен модуль ast в питоне
https://github.com/python/cpython/blob/3.10/Lib/ast.py, а вот так в го https://pkg.go.dev/go/ast, а вот в расте https://doc.rust-lang.org/beta/nightly-rustc/rustc_ast/ast/index.html
ищите и обрящете
Спасибо тебе большое за жесткую но конструктивную помощь

Офлайн

#10 Июнь 29, 2022 13:04:56

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9731
Репутация: +  843  -
Профиль   Отправить e-mail  

Как создать синтаксический анализатор кода?

FishHook
таблетку забыл выпить?
Велика вероятность, что он не сможет реализовать это. Сначала надо трансляцию пустой программы реализовать, затем реализовать трансляцию программы с одним оператором, затем поменять оператор с одного на другой, но чтобы код продолжал транслировать как то, так и это правильно. И так далее.

FishHook
Вот, например, как устроен модуль ast в питоне
а вот так в го
а вот в расте
А на расстоянии миллиарда световых лет обнаружена кротовая нора, ну-ка слетай туда и узнай, куда она ведёт. Если ведёт в прошлое, то можно слетать через неё и препода замочить ещё в зародыше, не дать отцу препода оплодотворить мать препода, который вот этот вот, который ничего не читал им, а потом ещё и сменился, вовремя соскочил, называется.

Ты ему такие вещи предлагаешь. Он код читать не умеет даже. Какие деревья в питоне? Тут пластмассовый горшок нужен в углу, чтобы если он обделается на простой трансляции, чтобы ему было куда какать.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version