ПРОЧИТАЙТЕ перед началом вашего проекта компилятора

Вообще-то, это прежде всего мечта... Возможно, когда-нибудь у меня будет свой собственный язык программирования!, но это скоро превратится в кошмар, сразу после того, как вы ищете Как собрать компилятор?,

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

Проблема во всех книгах и других ресурсах, которые вам нужны, чтобы понять (и освоить) все это сразу и в начале! Вам нужно понять и реализовать синтаксический анализатор, пока вы еще не знаете, что делать дальше. Кстати, я предполагаю, что вы настоящий новичок в этой теме, однако я знаю, что это было не так для некоторых из вас.

Когда-нибудь я перестану читать эти материалы. Я сказал, что достаточно изучить все детали, я хочу сделать что-то реальное. Итак, я начинаю задавать такие вопросы: какова цель компилятора? Ну, мой ответ был Генерация понятного двоичного кода для процессора. Итак, я сказал, как это должно быть тогда? Ну, что-то вроде этого statement1; statement2; в 0xAABBCCDD, и это все.

Тогда я начинаю все с нуля. Я начну с самого простого синтаксиса и машинных кодов. В конце дня у меня был рабочий компилятор, который мог генерировать чистый двоичный код для Intel. Он понимает только несколько инструкций, но это был действительно работающий компилятор, хотя и очень простой.

Позже я улучшил синтаксический анализатор и т. Д. И с тех пор я чувствовал себя намного счастливее. Теперь я использую все эти материалы, когда они мне нужны. Моя проблема заключалась в том, что я изо всех сил пытался понять и освоить все, потому что я думал (в основном другие говорили), что я не могу сделать компилятор, даже простой, без чтения всех этих книг и статей.

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

В качестве примера смотрите мой ответ здесь!

PS Кстати, перед тем как вы проголосуете, позвольте мне еще раз пояснить, что я не говорю, что эти материалы не годятся. Я просто говорю, что тема невероятно расплывчата. Неправильный подход - идти на все сразу. Самое разумное решение - начать с Hello World! Например, вместо проекта с теми же функциями, что и в GCC и т. д.

2 ответа

Самое главное, чтобы понять, как работает процессор. Сначала вам нужно выбрать конкретную цель, но вы, очевидно, сможете расширить ее позже. Документация производителя также очень вам поможет.

Разминка видео

  1. Введение в процессоры @ Youtube
  2. Как работает процессор @ демонстрация Youtube через MSX88
  3. Регистры процессора @ Youtube
  4. Регистры процессора @ Youtube
  5. 8086 Регистрация Set @ Youtube
  6. x64 Регистрация Set @ Youtube
  7. Как компьютеры добавляют номера @ Youtube
  8. FLAGS Зарегистрироваться @ Youtube
  9. Организация системы: CPU-RAM-I/O @ Youtube
  10. Не на английском, но стоит посмотреть: CPU Builder @ Youtube

статьи

  1. Что делает процессор @ eHow
  2. Как работает процессор @ Аппаратные секреты

Руководства по аппаратному обеспечению

  1. Руководства разработчика программного обеспечения для архитектуры Intel 64 и IA-32
  2. Руководства и руководства для разработчиков AMD

Руководства по флексам и бизонам дают несколько очень простых примеров написания базового интерпретатора:

Я могу получить доступ к обоим на своем локальном компьютере с помощью команд "info flex" и "info bison" соответственно.

РЕДАКТИРОВАТЬ: Просто видел и думал, что я бы поделиться этим ответом на аналогичный вопрос: /questions/11924326/prostoj-kompilyator-dlya-optimizatsii/11924333#11924333

Другие вопросы по тегам