Публикации по теме 'compiler-design'


Внутри движка Javascript: компилятор и интерпретатор
Скомпилирован или интерпретирован Javascript? В программировании обычно есть два способа перевода на машинный язык или что-то, что наши компьютеры могут понять. Теперь это относится к большинству языков программирования, а не только к javascript; Python, Java, C ++ используют одни и те же концепции. Переводчик Здесь мы читаем файлы построчно на лету. Давайте возьмем приведенный выше код в качестве примера. Здесь все, что мы делаем, - это 1000 раз перебираем наш расчет (5..

Интерпретатор против компилятора против компилятора Just-In-Time (JIT)
Вы когда-нибудь задумывались о различиях между интерпретаторами, компиляторами и JIT-компиляторами? И когда кто-то говорит, что язык компилируется или интерпретируется, что именно они имеют в виду? Важно отметить, что язык программирования сам по себе не является компилируемым или интерпретируемым языком. Вместо этого способ реализации языка определяет, компилируется он или интерпретируется. Компилируемый язык можно интерпретировать и наоборот. Языки программирования используются..

Представляем YALT: потому что некоторым людям не нравится LLVM.
Я думаю, что мы все можем относиться к мему слева. Мы все ждем, пока наша программа скомпилируется (или чья-то еще), и продолжаем думать: «Вот оно. Это провалится». И иногда это так. Но иногда (к счастью) это не так. Затем мы обнаруживаем ошибку (или две, или три), и мы все знаем, как это происходит. Однако этот «стресс» только усиливается, когда вы используете написанный вами компилятор. Затем вам также нужно беспокоиться о том, что сам компилятор выйдет из строя, выведет..

Написание парсера - Часть I: Начало работы
В этой статье обсуждается простой подход к реализации рукописного синтаксического анализатора с нуля и некоторые основы, связанные с ним. Здесь больше внимания уделяется объяснению практических аспектов реализации, а не формальным определениям синтаксических анализаторов. Введение Парсер - это первое, что приходит в голову, когда мы говорим о разработке компилятора / создании компилятора. Совершенно верно, синтаксический анализатор играет ключевую роль в архитектуре компилятора и..

Давайте поговорим о LLVM
Что такое LLVM? Согласно Википедии, «Проект инфраструктуры компилятора LLVM представляет собой набор технологий компилятора и инструментальной цепочки, которые можно использовать для разработки внешнего интерфейса для любого языка программирования и внутреннего интерфейса для любой архитектуры набора команд». LLVM был разработан в Университете Иллинойса Викрамом Адве и Крисом Латтнером. Первоначально он был разработан как исследовательская инфраструктура для исследования методов..

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