Я хочу спроектировать и разработать свой собственный язык программирования и компилятор для него. Я все еще студент по математике, который знает C / C ++. Я провел небольшое исследование в Интернете и прочитал некоторые электронные книги, но большинство из них использовали специальные инструменты для преобразования объектного / промежуточного кода в машинный код, большинство из которых объясняли, как использовать ассемблер для преобразования нового языка программирования в машинный код. Есть много учебников / ссылок там, которые «Как преобразовать сборку в коды работы машины» но они пропускают некоторые уровни для новичков. Я хочу немного углубиться в эту тему.
— Предположим, что я разработал свой собственный язык программирования (предположим, что он называется = «МВт«) с правильными синтаксисами и операторами.
Как конвертировать МВт код языка в машинный код напрямую, чтобы сгенерировать исполняемый файл для O / S?
Если вы можете дать очень точный и объяснительный ответ, это очень ценится.
Так как я не студент информатики, мне нужно руководство и пошаговые описания, как и почему?
Если кто-то знает отличную книгу или сайт для этого материала, пожалуйста, ответьте.
Спасибо.
Ваш вопрос безнадежно расплывчат.
ПРЕДЛОЖЕНИЕ:
Сосредоточьтесь на одном аспекте проблемы. Изучите, как кто-то еще реализовал «язык программирования». Например, скачайте и поэкспериментируйте с этим небольшим, простым интерпретатором BASIC, написанным на C ++:
Или загрузите и изучите любой (или несколько) других примеров здесь:
https://sites.google.com/site/smallbasicinterpreters/source-code
Удачи!
Я могу лишь дать некоторые ограниченные рекомендации по этой теме, так как я не знаком с тем, как Mathematica работает внутри компании для разрешения или вычисления ответов из символических выражений. Я полагаю, что раньше я сталкивался с некоторыми книгами по этой теме (системы компьютерной алгебры), но я забыл названия. В целом, эта тема сама по себе немного удалена от компиляции языков до машинного кода в целом, так как я считаю, что результаты интерпретируются указанной системой.
Это, как говорится, однако, для общих компьютерных языков, вы бы хорошо обслужили книгу по теории компилятора, такую как
принципы, методы и инструменты компиляторов Aho / Sethi / Ullman / Lam.
или же
разработка компилятора от Купера / Торчзона
или что-то подобное. В этих книгах, как правило, рассматриваются базовые принципы написания интерфейса синтаксического анализа и преобразования текста в промежуточный язык, который затем можно преобразовать в машинный код с использованием различных стандартных методов.
Надеюсь, это поможет.