Size: a a a

Compiler Development

2021 February 23

s

suhr in Compiler Development
Dmitry Lunin
Привет! Пишу сейчас транслятор Python -> Javascript. Если кто знает — подскажите, пожалуйста, релевантную литературу/статьи/идеи, что почитать по теме разработки таких вещей
Crafting interpreters.
источник

M

MaxGraey in Compiler Development
Дарки Дарков
Сейчас тебе книгу дракона посоветуют
про трансляторы есть, про AST тоже есть. Так что вполне нормальный вариант

А вообще нужно смотреть какую то литературу про source-to-source трансляции (транспиляции)
источник

s

suhr in Compiler Development
Но если нужно просто запускать питон в браузере, то есть rustpython + wasm.
источник

M

MrSmith in Compiler Development
В ресерч гейт сразу лучше ползти
источник

M

MrSmith in Compiler Development
Тривиальные идеи типа а давайте возьмём АСТ билдер а после запустим формат, это каждый может а не трвиальные не тривиальны и требуют мат аппарата
источник

DL

Dmitry Lunin in Compiler Development
Ну, я книгу дракона и crafting interpreters читал уже, а сейчас скорее спрашиваю про материалы именно о трансляции одного высокоуровневого языка в другой. Все-таки тут задача довольно сильно отличается от типичного построения компилятора/интерпретатора, и я подумал может люди что-то интересное придумали про эту специфику
источник

M

MrSmith in Compiler Development
Придумали конечно
источник

M

MrSmith in Compiler Development
Придумали к примеру всякие семантики для описания частично валиднго кода, и как генерировать придумали есть где то у меня пейпер от самого простого подхода с шаблонизацией до миникомпилятора
источник

M

MrSmith in Compiler Development
Вообще хорошая программа метогенеоации это два неполноценных компилятора языка
источник

DL

Dmitry Lunin in Compiler Development
А где, например, про эти семантики можно почитать?
источник

M

MaxGraey in Compiler Development
Dmitry Lunin
Ну, я книгу дракона и crafting interpreters читал уже, а сейчас скорее спрашиваю про материалы именно о трансляции одного высокоуровневого языка в другой. Все-таки тут задача довольно сильно отличается от типичного построения компилятора/интерпретатора, и я подумал может люди что-то интересное придумали про эту специфику
Конечно придумали! Вот такое придумали:
https://towardsdatascience.com/facebooks-transcoder-an-ai-source-to-source-compiler-23ea77f3234b
источник

M

MrSmith in Compiler Development
источник

M

MrSmith in Compiler Development
Ну к примеру
источник

M

MrSmith in Compiler Development
Единого ответа нет последняя монография/хендбук остановился 20-30 лет назад и разбирает парсеры
источник

M

MrSmith in Compiler Development
Можете взять перо и написать свой по генерации
источник

M

MrSmith in Compiler Development
Где то тут я кидал работу в которой автоматический рефакторинг люди более менее классифицировали и составили огромный каталог работ
источник

M

MrSmith in Compiler Development
Есть работа модель модель трансляции
источник

M

MrSmith in Compiler Development
Тут надо понять что конкретно нужно, читать то на пару лет точно найдется
источник

DL

Dmitry Lunin in Compiler Development
Спасибо
источник

M

MrSmith in Compiler Development
Да не за что, но не понимаю как вам это поможет
источник