Size: a a a

Compiler Development

2020 February 10

PS

Peter Sovietov in Compiler Development
Ну, с другой стороны, когда некоторые проф. программисты говорят, что видели ML, Пролог или Лисп последний раз в университете, то я в этом ничего плохого не вижу :)
источник

VK

Vladimir Kazanov in Compiler Development
Peter Sovietov
Ну, с другой стороны, когда некоторые проф. программисты говорят, что видели ML, Пролог или Лисп последний раз в университете, то я в этом ничего плохого не вижу :)
Ml и Пролог, в общем-то, всегда были прежде всего академическими инструментами... Да и лиспы, пускай и в меньшей степени
источник

PS

Peter Sovietov in Compiler Development
И Selfie такой же академический. Его можно и нужно критиковать, но, мне кажется, целесообразнее это делать, учитывая эту его нишу.
источник

VK

Vladimir Kazanov in Compiler Development
Вторые сутки в аэропортах, я в настроении нефальсифицируемых утверждений :-)
источник

VK

Vladimir Kazanov in Compiler Development
Peter Sovietov
И Selfie такой же академический. Его можно и нужно критиковать, но, мне кажется, целесообразнее это делать, учитывая эту его нишу.
А я бы студентам 8cc показывал
источник

VK

Vladimir Kazanov in Compiler Development
И просто, и практично, и почти виртовский дзен
источник

K

Kir in Compiler Development
Vladimir Kazanov
А я бы студентам 8cc показывал
Надо бы глянуть
источник

PS

Peter Sovietov in Compiler Development
Vladimir Kazanov
А я бы студентам 8cc показывал
А еще лучше — chibicc от того же автора. Но тут уже задача обеспечения "междисциплинарности" не решается. Представьте: в курсе компиляторов студенты разрабатывают свои версии chibicc. А в курсе разработки процессоров на ПЛИС реализуют различные простые архитектуры. И, вместо ручного кодирования или ассемблера, используют тот же chibicc с перенацеливанием генератора кода. Получается замечательная синергия. И, в принципе, это и делается в Selfie.
источник

VK

Vladimir Kazanov in Compiler Development
Peter Sovietov
А еще лучше — chibicc от того же автора. Но тут уже задача обеспечения "междисциплинарности" не решается. Представьте: в курсе компиляторов студенты разрабатывают свои версии chibicc. А в курсе разработки процессоров на ПЛИС реализуют различные простые архитектуры. И, вместо ручного кодирования или ассемблера, используют тот же chibicc с перенацеливанием генератора кода. Получается замечательная синергия. И, в принципе, это и делается в Selfie.
Да, особенно хорошо то, что chibicc сопровождается книгой на доступном всем студентам языке :-)

Но я понимаю вашу позицию.
источник

VK

Vladimir Kazanov in Compiler Development
Особенно в свете идей совместного проектирования наборов инструкций и компиляторов
источник

VK

Vladimir Kazanov in Compiler Development
Оценить идеи совместного проектирования мне, к сожалению, мешает опыт работы, в рамках которого процессор высечен в граните, а компилятор все же можно поменять. Но это мой опыт.
источник

AT

Alexander Tchitchigin in Compiler Development
Vladimir Kazanov
Оценить идеи совместного проектирования мне, к сожалению, мешает опыт работы, в рамках которого процессор высечен в граните, а компилятор все же можно поменять. Но это мой опыт.
Высечен в кремнии. 😉
источник

PS

Peter Sovietov in Compiler Development
Перевод с японского не за горами. Но для преподавателя там вполне достаточно посмотреть картинки-таблицы. Ключевой педагогический прием автора — на github каждый commit это новая, чуть более развитая версия компилятора.
источник

PS

Peter Sovietov in Compiler Development
Vladimir Kazanov
Оценить идеи совместного проектирования мне, к сожалению, мешает опыт работы, в рамках которого процессор высечен в граните, а компилятор все же можно поменять. Но это мой опыт.
Сейчас FPGA в области баз данных, работы с большими данными все интенсивнее используется. Поэтому и необходимость в проектировании программируемых решений на ПЛИС есть.
источник

PS

Peter Sovietov in Compiler Development
В любом случае, "зачем проектировать свой учебный процессор" это вопрос из того же разряда, что и "зачем проектировать свой учебный компилятор". И тому, и другому студентов давно учат, невзирая на кажущуюся "неактуальность" :)
источник

VT

Vasiliy Tereshkov in Compiler Development
Vladimir Kazanov
А я бы студентам 8cc показывал
Грамматика C слишком мучительна для разбора рекурсивным спуском, а в своём официальном виде и вовсе непригодна. К тому же на C невозможно писать без препроцессора - значит, в компиляторе вместо одного языка приходится реализовывать два. Так что 8cc всё равно выходит сложнее, чем у Вирта. Создатели Selfie пошли по пути Вирта, но это самообман, потому что фактически у них Оберон в шкуре C, и до полноценного C его расширить будет весьма трудно.
источник

AK

Andrei Kurosh in Compiler Development
Vasiliy Tereshkov
Грамматика C слишком мучительна для разбора рекурсивным спуском, а в своём официальном виде и вовсе непригодна. К тому же на C невозможно писать без препроцессора - значит, в компиляторе вместо одного языка приходится реализовывать два. Так что 8cc всё равно выходит сложнее, чем у Вирта. Создатели Selfie пошли по пути Вирта, но это самообман, потому что фактически у них Оберон в шкуре C, и до полноценного C его расширить будет весьма трудно.
Почему невозможно? Максимум неудобно
источник

VT

Vasiliy Tereshkov in Compiler Development
Andrei Kurosh
Почему невозможно? Максимум неудобно
У K&R и в стандарте C грамматика дана с левой рекурсией, так что парсер попадёт в бесконечный цикл. Её надо вручную переписывать, как это, видимо, и делали создатели TCC и 8cc
источник

VT

Vasiliy Tereshkov in Compiler Development
Кстати, кто-нибудь встречал грамматику C, переписанную под рекурсивный спуск?
источник

PS

Peter Sovietov in Compiler Development
Vasiliy Tereshkov
У K&R и в стандарте C грамматика дана с левой рекурсией, так что парсер попадёт в бесконечный цикл. Её надо вручную переписывать, как это, видимо, и делали создатели TCC и 8cc
А вот это как раз проблема изучения основ компиляции исключительно на примере игрушечного языка. Проблема в том, что студент не знакомится с более мощными техниками, которые просто не нужны были для работы на уровне Паскаля/Оберона.
источник