Я учусь на третьем курсе по программной инженерии. С этого года мой университет ввел новый курс под названием «Конструкции компилятора», который обучает вас основам теории построения компилятора.
Какое будет реальное преимущество для программиста в изучении конструкции компилятора?
Ответы:
Существует практическая сторона в изучении построения компилятора. Было несколько случаев, когда мне нужно было создавать парсеры для реализации какого-то специфичного для приложения командного языка. Это позволило мне создавать гибкие скриптовые интерфейсы для приложения.
Это также дает вам более полное представление о том, почему некоторые языки разработаны так, как они есть, и почему ни один язык не является идеальным.
Это сложный курс, один из самых сложных в учебной программе. Я сделал ошибку, приняв его во время летней сессии; никогда не проходите курс по компиляции на летней сессии, ваш мозг взорвется.
источник
О, это хорошо. Возьми, ты не пожалеешь.
Вы получите представление о магии языков программирования, их сравнительных характеристиках, преобразовании высокоуровневого кода в его исполняемую форму. Вы будете лучше понимать многие языковые функции, будете иметь более широкое представление о том, что возможно и как эти вещи выполняются. Вы увидите все это другими глазами.
Мудро проводить время в университете, чтобы изучать фундаментальные вещи CS. Конкретные языки программирования, инструменты и библиотеки все они приходят и уходят, но основа остается.
Также, если вы переживете курс (если он будет серьезным), вы можете поздравить себя с тем, что у вас есть право на программирование. Сделайте какой-нибудь практический проект с этой теорией, упомяните об этом в своем резюме, и вы очень сильно вызовете интерес у хороших работодателей.
источник
Определенно!
Это может быть не та тема, которую вы бы использовали ежедневно, например, класс баз данных, понимание компиляторов даст вам хорошую основу.
Аналогичным примером будет класс операционных систем. Вы можете быть программистом и не думать о том, как работает операционная система каждый день, но наличие основы поможет вам в долгосрочной перспективе.
источник
Да! Курс даст вам более глубокое понимание синтаксического анализа языка программирования, типов данных и функций и того, как перевести его в машинный код для конкретных процессоров.
Это само по себе может не иметь практического ежедневного применения, но даст вам уверенность в том, что вы действительно знаете, как все работает . Это очень полезно (если говорить с опытом здесь), когда вам нужно выполнить низкоуровневую оптимизацию и найти те действительно неприятные ошибки, которые ставят всех в тупик.
источник
В наши дни много говорят о предметно- ориентированных языках. И они действительно того стоят, их истинный потенциал еще предстоит изучить . Таким образом, навыки построения компиляторов станут не только важными, но и необходимыми в будущем. Я трачу около 60% своего времени на разработку компиляторов eDSL, даже если текущая проблема вообще не связана напрямую с компиляторами.
источник
Стоит пройти курс, чтобы понять, как создаются инструменты, которые вы будете использовать для всей карьеры программиста (например, компиляторы, интерпретаторы, парсеры), и каковы их ограничения.
Это также стоит сделать в академическом контексте, поскольку это раскрывает интересные основы, а не многие сложности реального мира, который запутан и запутан в работе с унаследованными языками и архитектурами, то есть с большой сложностью. Также более вероятно, что вы начнете работать над всеми аспектами компилятора при создании целого для курса, чем над одним в промышленности.
источник