Публикации по теме 'compilers'


#CSENotes 2. Дизайн компилятора
Серия моих рукописных заметок, охватывающих большинство стандартных тем из области компьютерных наук. В этом посте подробно рассматриваются темы создания компилятора. Основные примеры конечных автоматов и регулярных языков Ссылка Классификация грамматик (CFG, CFL, неоднозначная грамматика, рекурсия в грамматике) Ссылка Макроскопическое представление компилятора (многоуровневая архитектура) Ссылка Анализ, сначала и последующие (сверху вниз (LL0, LL1), снизу вверх (LR,..

Сборник | Быстрый срыв
Что происходит, когда вы вводите «gcc main.c» в командной строке? Чтобы понять, что происходит за кулисами, когда мы вводим «gcc main.c» в командную строку, давайте сначала разобьем ее на две части: gcc и main.c. GCC, что означает GNU Compiler Collection, представляет собой компилятор C и C++. Цель компилятора — преобразовать удобочитаемый код нашей программы на C в машинный код, который компьютер сможет выполнить. Как императивный язык программирования, C должен быть скомпилирован,..

Давайте создадим интерпретатор Python с нуля
Часть 4: Создание парсера для присвоения переменных и печати Эта статья является продолжением статьи: Часть 3: Создание парсера для арифметических операций Теперь, когда мы выполнили синтаксический анализ арифметического выражения. Мы напишем парсер для операторов на языке программирования. Начнем с присвоения переменной. Как только вы узнаете, как выполнять синтаксический анализ одного оператора, остальные будут такими же. Позвольте заявление Мы используем операторы let..

Интерфейс компилятора и эксперименты
Метрополис был создан для изучения технологий Java-on-Java, и действительно, результаты которого пришли вместе с Java-9 с введением в Интерфейс компилятора JVM уровня Java (JVMCI) , предназначенный для компиляции AOT для сокращения времени запуска как малых, так и больших приложений Java путем компиляции классов в собственный код перед запуском виртуальной машины. Цитируя сам JEP, JVMCI API состоит из механизмов для: - Доступ к структурам данных виртуальной машины, требуемым..

Компилятор VS интерпретатор в простом . . .
Компиляторы и интерпретаторы — это программы, которые помогают преобразовывать язык высокого уровня (исходный код) в машинные коды (двоичные системы), понятные компьютерам. Язык высокого уровня — это язык, понятный человеку. язык низкого уровня — это язык, представленный в формах 0 или 1, которые являются машинными инструкциями. язык высокого уровня содержит слова и фразы из общеупотребительных языков. поэтому компьютеры не могут понимать языки высокого уровня. Они могут понимать только..

Даже у C есть свои библиотеки…
Как и у людей, у языка программирования C есть свои собственные библиотеки, и они очень похожи на цветы. Проще говоря, библиотека в C — это объекты, когда вы можете «хранить» определенный набор вещей, которые вам понадобятся позже, или технически ваша программа. Существует два типа библиотек, статические библиотеки и динамические библиотеки. Основное отличие состоит в том, что первые связываются на этапе копирования и игнорируются во время выполнения программы, а вторые..

Поистине окончательная оптимизация в Zing VM
Это сообщение в блоге представляет собой сокращенную версию доклада, представленного на JVM LS 2018 [1]. Zing - это флагманская коммерческая JVM на стороне сервера Azul. У нас есть несколько ключевых функций, таких как C4 GC, технология ReadyNow практически без пауз, которая помогает устранить проблемы с прогревом. А в начале 2017 года мы выпустили Falcon , нашу высокоуровневую JIT на основе LLVM. Все действительно окончательные оптимизации реализованы для JIT-компилятора Falcon...