Форум сайта python.su
dmitriyLutsenko
В чем Ваша проблема? Что за пассивная агрессия? Может, у Вас нет опыта написания проектов схожей тематики, но за других -то не надо говорить.
Офлайн
py.user.nextДа почему ты со мной так общаешься? Что за сравнение? Я тебе что плохого то сделал? Может, обидел я тебя чем?
Об этом я и говорю. Кришнаит такой, с розовыми соплями, одной ногой в канализационном люке, жрёт с помойки и со столиков в Макдональдсе тайком, где люди не доели еду и оставили крошку-картошку, но при этом счастлив и всем говорит “да вы ничего не понимаете просто! а я-то понимаю как раз! я счастье напрямую черпаю из космоса! а вы дураки все! ха-ха-ха-хари-хари-рама!”.
Офлайн
Ситуация у меня такая.
Курс лекций по компиляторам в вузе моему потоку не читали. По печальному стечению обстоятельств преподаватель по предмету поменялся. И тему курсовой работы я получил новую. “Сделать переводчик с одного языка на другой”. Дали такие требования:
распознать переменные, конструкцию 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.
Офлайн
FishHookДа, уже дождался
ну… подождём более других
Офлайн
py.user.nextПопробую реализовать
Напиши транслятор, который хотя бы пустую программу на одном языке в пустую программу на другом языке транслирует. Начни с этого. Это такой Hello World в компиляции.
Офлайн
dmitriyLutsenko
Я вообще не понял, нафига ты на меня наехал, мне кажется, мой пост был вполне информативен.
Я повторю мысль, если она была непонятна сразу. Ты пытаешься получить на форуме знания. Это не то, как форумы работают и для чего они предназначены. Знания дают учебники. Ну просто невозможно вместить в сообщение в несколько десятков строк хоть сколько-нибудь полезную информацию по теории синтаксического анализа, даже если бы кто-то хотел этим заниматься. Да даже просто, как устроена структура, содержащая граф абстрактного синтаксиса, в двух словах не расскажешь. Посмотри в мой профиль на дату регистрации, некий опыт общения онлайн налицо, правда? Вот руководствуясь этим опытом, я тебе первым же сообщением дал понять, что форум - не источник знаний и ты зря теряешь время. На форум приходят за помощью в решении конкретных проблем, когда собственных мозгов не хватает, тогда на помощь приходит коллективный разум. Еще раз повторю, в виде резюме: учебных материалов по теме - миллион, реализаций в открытом коде - миллион, всё отлично гуглится. Ну в чем проблема то?
Офлайн
FishHookЕсли я тебя обидел, то извини.
dmitriyLutsenkoЯ вообще не понял, нафига ты на меня наехал, мне кажется, мой пост был вполне информативен.
Отредактировано dmitriyLutsenko (Июнь 29, 2022 12:07:40)
Офлайн
dmitriyLutsenko
- может, есть репозитории с реализацией задачи смежной тематики?
Офлайн
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
ищите и обрящете
Офлайн
FishHookВелика вероятность, что он не сможет реализовать это. Сначала надо трансляцию пустой программы реализовать, затем реализовать трансляцию программы с одним оператором, затем поменять оператор с одного на другой, но чтобы код продолжал транслировать как то, так и это правильно. И так далее.
таблетку забыл выпить?
FishHookА на расстоянии миллиарда световых лет обнаружена кротовая нора, ну-ка слетай туда и узнай, куда она ведёт. Если ведёт в прошлое, то можно слетать через неё и препода замочить ещё в зародыше, не дать отцу препода оплодотворить мать препода, который вот этот вот, который ничего не читал им, а потом ещё и сменился, вовремя соскочил, называется.
Вот, например, как устроен модуль ast в питоне
а вот так в го
а вот в расте
Офлайн