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


Шаг 53. Линкер — не волшебная программа ~ Дэниел Линднер
Это 53-й шаг к получению серии Программирование Просветление . Если вы не выучили 52-й шаг , прочтите его. Что такое компоновщик? Wiki говорит: компоновщик или редактор ссылок — это компьютерная программа, которая берет один или несколько «объектных файлов , сгенерированных компилятором , и объединяет их в один исполняемый файл . » файл, файл библиотеки или другой объектный файл». Иллюстрация процесса связывания показана ниже. Объектные файлы и статические..

Как скомпилировать и запустить свою первую Java-программу
Языки высокого уровня, такие как Java, C, C++ и т. д., компилируют программу в эквивалентный низкоуровневый код, который может быть понят и выполнен машиной. В этом блоге мы обсудим, как написать, скомпилировать и запустить программу Java. Первый шаг — создать папку, создать класс Java и написать программу Java. Когда мы пишем программу на Java, javac (компилятор Java) переводит исходный код Java в байт-код, т.е. . класс файл . Байт-код — это машинный язык виртуальной машины..

Написание синтаксического анализатора - Часть III: Обработка синтаксических ошибок
Один из кошмаров внедрения синтаксического анализатора промышленного уровня - иметь дело с пользовательскими ошибками и недопустимыми кодами. В моей предыдущей статье обсуждались алгоритмы и некоторые детали реализации лексера и парсера. В этой статье я расскажу, как обрабатывать синтаксические ошибки в синтаксическом анализаторе и восстанавливать их для создания устойчивого дерева синтаксического анализа. Ошибки синтаксиса Синтаксическая ошибка - это случай, когда достигается..

Начало работы с Buck на базе Travis CI
Начало работы с Buck на базе Travis CI Travis CI - это сервис, который предлагает бесплатные серверы сборки для open-source проектов ( спасибо, венчурные капиталисты! ). Он имеет тесную интеграцию с GitHub, что позволяет автоматически создавать и тестировать код в запросе на перенос перед объединением. Это отлично подходит для проектов с несколькими участниками, потому что вы можете запускать тесты, не проверяя код самостоятельно. Но как интегрировать проект на основе Buck с..

Изучение компиляторов: что делает «gcc»?
Итак, вы создали свою первую программу, поздравляем! Но теперь у вас есть программа, на которую вы потратили немало времени, и вы не знаете, как заставить ее работать. Но почему я не могу просто "./" мой файл и выполнить его как обычно? Что ж, с программами на C вы фактически собираетесь компилировать его. Подождите ... компиляция, что это вообще значит? Допустим, у вас есть программа на языке программирования. Для этого объяснения мы будем использовать язык «C.» Итак, на..

Я не верю этой идее.
Я не верю этой идее. Я не очень благодарен за то, что код пришлось переписывать. Почему? Потому что все собрано. Итак, предполагая, что операционная система все еще написана и написана на языке Objective-C, работа, которую необходимо было выполнить, заключалась в компиляторе, который принимал бы Objective-C в выходных инструкциях ARM. Конечно, если бы существовал ассемблерный код, это нужно было бы переписать для набора инструкций ARM. Учитывая, что мы говорим здесь о вещах уровня..

Понять простой CFG и обработку ошибок
Этот блог является продолжением серии моих блогов о JavaCC Установка JavaCC для Mac . Цель этого блога - реализовать очень простой, но расширяемый синтаксический анализатор на основе команд. Команды будут moveForward() turnRight() Вот схема железной дороги для языка Мы будем использовать генерацию кода JavaCC для создания синтаксического анализатора, передав ему правильную грамматику EBNF. Грамматика EBNF CFG - контекстно-свободная грамматика - это набор производственных..