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


Почему JIT был введен?
Давайте поймем важность 𝐉𝐮𝐬𝐭-𝐢𝐧-𝐓𝐢𝐦𝐞 𝐂𝐨𝐦𝐩𝐢𝐥𝐞𝐫 (𝐉𝐈𝐓) в JS. Как мы знаем, в программировании есть два способа перевода: компилятор и интерпретатор. У каждого из этих способов обработки перевода есть свои плюсы и минусы. Интерпретатор по сравнению с компилятором имеет возможность быстро приступить к работе, что делает его быстрее. Но компромисс интерпретатора JavaScript заключался в том, чтобы интерпретировать код снова и снова в случае зацикливания. Чтобы получить лучшее из обоих..

Сборка GCC из исходников
Сборка GCC из исходного кода В этом руководстве мы рассмотрим шаги, необходимые для сборки GCC 9.1.0 из исходников. Кроме того, мы увидим, как последовательность команд может быть собрана в один сценарий сборки, что делает весь процесс легко повторяемым. Весь сценарий сборки доступен через: https://github.com/darrenjs/howto/blob/master/build_scripts/build_gcc_9.sh GCC - это де-факто компилятор для GNU / Linux. Это означает, что некоторая версия GCC уже установлена ​​с..

Сравнение реализаций языка Monkey V: Vestido de Crystal
Ранее… В последнем выпуске я представил новую реализацию языка обезьян под названием Monyet . Второй взгляд на макросы Отзывы, которые я получил из последнего поста, заключаются в том, что мой пример с макросами можно легко реализовать в Kotlin и Crystal с помощью функций/процессов высокого порядка. Я собираюсь представить более убедительный пример. Для целей отладки мне нужен метод, возвращающий простое имя класса без его полей. Он также должен быть частью иерархии. Без..

Ржавчина, мой друг
Я начал изучать программирование с 2005 года. За это время я использовал много языков в своей повседневной работе. C, Java, Ruby, JavaScript, Groovy, Scala. Все эти языки пытаются дать вам достаточную гибкость, насколько это возможно, и они говорят вам, что вы должны нести ответственность за свой код. Это похоже на то, что кто-то дает вам мощное оружие, даже ядерное, и вы можете делать все, что хотите, но тот, кто дает вам оружие, не остановит вас, даже если вы застрелитесь. Людей..

Внедрение оптимизации машинного кода для RISC-V в LLVM — Подробный взгляд
В этом сообщении в блоге описываются три оптимизации — упаковка в сжатие, сохранение/восстановление и выделение машины, — над которыми я работал для бэкенда RISC-V в LLVM. Эти оптимизации сосредоточены на преобразовании представления машинного кода программы для повышения производительности или уменьшения общего размера программы. Задний план Формируя заключительную часть процесса компиляции, программа транслируется в представление машинного кода перед преобразованием в окончательную..

Процесс компиляции программ на C, как это работает?!
Процесс компиляции программ на C, как это работает?! Давайте поговорим о C, что это такое? C — это язык процедурного компьютерного программирования общего назначения, что означает, что он предназначен для создания программного обеспечения в самых разных предметных областях. Вам, как программисту, может понадобиться написать его исходный код с помощью любого редактора в виде текстового файла, после чего он должен быть скомпилирован в машинный код. Для этого перед компиляцией..

Введение в LEX и YACC
Первый шаг к созданию собственного компилятора Lex и YACC — популярные инструменты, используемые при создании компилятора. В этой статье мы обсудим инструменты и способы их использования с точки зрения начинающих. 1. Введение в ЛЕКС Lex (генератор лексического анализатора) — это инструмент, используемый для создания лексического анализа. Лексический анализ — это процесс преобразования входного потока в токены. Он берет набор регулярных выражений, заданный в качестве входных данных..