Size: a a a

Compiler Development

2020 February 25

VT

Vasiliy Tereshkov in Compiler Development
А вы совсем начинающий? Тогда вот это. Компилятор пишется за неделю, откомпилированные программы даже могут искать простые числа :)
https://en.wikipedia.org/wiki/PL/0
источник

AK

Aleksandr Kravtsov in Compiler Development
Vasiliy Tereshkov
А вы совсем начинающий? Тогда вот это. Компилятор пишется за неделю, откомпилированные программы даже могут искать простые числа :)
https://en.wikipedia.org/wiki/PL/0
в компиляторах совсем)
источник

AT

Alexander Tchitchigin in Compiler Development
Aleksandr Kravtsov
А можете ресурсы посоветовать? Или босяцкий поисковик тоже про такое много чего знает?
Из описания этого чата: https://github.com/true-grue/Compiler-Development 😉
источник

VT

Vasiliy Tereshkov in Compiler Development
Тогда приступайте :) Я тоже наивный любитель, но за пару лет вырастил из PL/0 полноценный Паскаль, ещё и со всякими колокольчиками из Go.
https://github.com/vtereshkov/xdpw
источник

AK

Aleksandr Kravtsov in Compiler Development
вообще изначально было охото со всякими мемори барьерами разобраться) это прикол такой делать все прям основательно, не знаю как далеко эта история зайдёт но попробую)) спасибо
источник

M

MaxGraey in Compiler Development
Написать компилятор не так уж и трудно. Трудно написать быстрокомпилирующий компилятор с эффективной кодогенерацией особенно если не использовать LLVM. Но сейчас все его испорльзуют + парсер генераторы/комбинаторы. Вот и получаем что весь креатив сводиться по сути к семантике или экспериментам с многопоточной моделью / управлением памятью
источник

FO

FORTRAN ONE LOVE in Compiler Development
MaxGraey
Написать компилятор не так уж и трудно. Трудно написать быстрокомпилирующий компилятор с эффективной кодогенерацией особенно если не использовать LLVM. Но сейчас все его испорльзуют + парсер генераторы/комбинаторы. Вот и получаем что весь креатив сводиться по сути к семантике или экспериментам с многопоточной моделью / управлением памятью
gfortran медленный. Мне приходится генерировать определенным образом исходные коды, чтобы компиляция одного файла в ~300Мб исходного кода занимала разумное время.
источник

FO

FORTRAN ONE LOVE in Compiler Development
Вообще это отличный тест, чтобы понять, а нормально ли компилятор понимает исходные коды :)
источник

M

MaxGraey in Compiler Development
FORTRAN ONE LOVE
gfortran медленный. Мне приходится генерировать определенным образом исходные коды, чтобы компиляция одного файла в ~300Мб исходного кода занимала разумное время.
Не удивлюсь, если там в этом огроменном файле всего одна функция и беконечным спгетти из вычисляемых GOTO
источник

FO

FORTRAN ONE LOVE in Compiler Development
MaxGraey
Не удивлюсь, если там в этом огроменном файле всего одна функция и беконечным спгетти из вычисляемых GOTO
не. там просто формулка :)
источник

FO

FORTRAN ONE LOVE in Compiler Development
одна :)
источник

FO

FORTRAN ONE LOVE in Compiler Development
функций чуть побольше - 2 штуки.
источник

M

MaxGraey in Compiler Development
FORTRAN ONE LOVE
функций чуть побольше - 2 штуки.
Я почти угадал)
источник

FO

FORTRAN ONE LOVE in Compiler Development
Когда первый раз сгенерировал её, то ждал около 12 часов, пока gfortran очухается. Сейчас за ~15 секунд прожевывает файл )
источник

VT

Vasiliy Tereshkov in Compiler Development
Aleksandr Kravtsov
вообще изначально было охото со всякими мемори барьерами разобраться) это прикол такой делать все прям основательно, не знаю как далеко эта история зайдёт но попробую)) спасибо
Начинать в любом случае желательно с EBNF и системы команд целевого процессора.
источник

VT

Vasiliy Tereshkov in Compiler Development
FORTRAN ONE LOVE
Когда первый раз сгенерировал её, то ждал около 12 часов, пока gfortran очухается. Сейчас за ~15 секунд прожевывает файл )
А если не секрет - из чего генерятся эти 300 Мб?
источник

FO

FORTRAN ONE LOVE in Compiler Development
Vasiliy Tereshkov
А если не секрет - из чего генерятся эти 300 Мб?
производная. генерировал изначально maxima, сейчас свой скрипт Julia->bash->Python
источник

VT

Vasiliy Tereshkov in Compiler Development
FORTRAN ONE LOVE
производная. генерировал изначально maxima, сейчас свой скрипт Julia->bash->Python
Дай бог им всем корректности :)
источник

FO

FORTRAN ONE LOVE in Compiler Development
ну первые производные правильные :) Остальные тоже должны быть правильными по идее)
источник

M

MaxGraey in Compiler Development
FORTRAN ONE LOVE
производная. генерировал изначально maxima, сейчас свой скрипт Julia->bash->Python
Может заинтересует
https://www.juliadiff.org/
источник