Подтвердить что ты не робот

Есть ли какие-нибудь "забавные" способы узнать о языках, грамматиках, анализах и компиляторах?

Я готовлюсь к экзамену по языкам, грамматикам, синтаксическим анализам и компиляторам. Это не моя чашка чая и большинство ресурсов, которые я нахожу, используют язык математики для определения разных условий торговли и объяснения различных понятий, которые мне нужно знать, а не придерживаться английского или французского, что я бы очень предпочел. Поэтому у меня возникают проблемы с поиском мотивации продолжать учебу и просто понимать теорию. Итак, вот мой вопрос: кто-нибудь из вас знает, где я могу найти "забавный" способ узнать все это? Или, по крайней мере, может быть более "конкретный" и менее "математический" способ обработки этого вопроса.

Мне нужно освежить следующее, чтобы что-нибудь по этим темам было приветствоваться!

  • Разбор (LR, LL,...)
  • Грамматики (контекстно-свободные, детерминированные,...)
  • Анализ синтаксиса Анализ статического потока
  • Анализ воздействия на обслуживание программного обеспечения и зависимость от пользовательских интерфейсов.
  • Динамический анализ

Вот некоторые ресурсы, которые можно было бы считать "забавой" (с акцентом на кавычки) способами узнать о техническом предмете, просто чтобы понять, что я ищу.

4b9b3361

Ответ 1

Если вы хотите многому научиться за короткое время, узнайте о мета-компиляторах от Val Schorre 1964 (да, вы правильно это прочитали) MetaII о том, как создавать самокомпилирующие метакомпиляторы. Как халява, они также могут компилировать обычные lanuages! Бумага составляет 10 страниц, описывает метакомпиляторы (как виртуальная машина), и содержит два полных компилятора.

В тот момент, когда вы натыкаетесь на то, как компилятор может скомпилировать себя, я получаю умственный момент... Я изучил компиляторы таким образом еще в начале 70-х, и это самый незабываемый урок компилятора, который у меня когда-либо был. Это весело.

Здесь есть онлайн-учебник, в котором реализованы все идеи в JavaScript..

Автор учебника - доктор Джеймс Соседки, парень, который изобрел термин "анализ домена". Он использовал идеи MetaII для впечатляющего генератора кода домена, названного Драко. Драко был ключевым источником вдохновения для инструментов, похожих на компилятор, которые я строил в течение последних 30 лет.

Ответ 2

Как долго вы должны готовиться? "Лучший" способ изучить компиляторы - это вникнуть в них, и лучший способ сделать это - использовать лучшую книгу в компиляторах EVER WRITTEN: The Dragon Book Это старый, но удивительный. Это не дешево, но это, вполне возможно, самый конкретный и наименее математический способ узнать о магическом компиляторе.

У него нет никаких мигающих огней, и он не будет в потрясающем шрифте, как руководство Ruby, но он в топ-10 Книги, которые должен прочитать каждый программист