Вопросы по теме 'compiler-theory'

Мог ли C++ избежать использования идиомы pimpl?
Насколько я понимаю, идиома pimpl существует только потому, что C++ заставляет вас размещать все члены закрытого класса в заголовке. Если бы заголовок содержал только общедоступный интерфейс, теоретически любое изменение в реализации класса не...
2953 просмотров

В чем причина создания LLVM?
В чем разница между LLVM и обычным компилятором? Является ли он более динамичным и, следовательно, может использоваться для компиляции обычно очень динамичных языков (например, Javascript) в статический двоичный код? Каковы принципы его создания? Я...
5352 просмотров

Возможно ли иметь компилятор, который будет предсказывать каждую возможную «конкретную» ошибку времени выполнения?
Под «конкретной ситуацией» я подразумеваю, что он использует некоторые данные, к которым у него будет доступ, например, текущую настройку базы данных, версию какой-либо ОС и т. д. Представьте, что компилятор проверит базу данных, которую вы в...
191 просмотров
schedule 29.03.2024

Какие языковые функции требуются от языка программирования для создания компилятора?
Кажется, что языки программирования проходят несколько этапов. Во-первых, кто-то придумывает новый язык - Foo Language. Компилятор / интерпретатор написан на другом языке, обычно C или другом языке низкого уровня. В какой-то момент FooL созревает и...
480 просмотров
schedule 07.03.2023

Определение среды выполнения
Что такое время выполнения? И я не имею в виду «во время выполнения» = когда программа/скрипт работает. я имею в виду Среда выполнения ‹ваш-интерпретируемый-здесь› язык
3389 просмотров

Управление отступами при разработке небольшого языка, похожего на питон
Я разрабатываю небольшой язык, похожий на python, с использованием flex, byacc (для лексического анализа и синтаксического анализа) и C++, но у меня есть несколько вопросов относительно управления областью действия. точно так же, как python, он...
2093 просмотров
schedule 03.03.2024

Формальное построение графа потока управления
Я пишу компилятор для университетского проекта, и я хотел бы преобразовать свое абстрактное синтаксическое дерево в график потока управления (CFG). Я думаю, что узлы ( V ) в CFG должны быть узлами из AST. Алгоритмически я знаю, как построить набор...
2865 просмотров

Есть ли язык, в котором имена могут включать пробелы?
Есть ли язык программирования, который позволяет именам включать пробелы? (Под именами я подразумеваю переменные, методы, поля и т.д.)
409 просмотров

Кросс-компиляция против виртуальных машин
Разъяснение Когда я говорю о кросс-компиляции, я имею в виду переход с одного языка на другой (вспомним GWT), а не с хост-платформы на целевую платформу. Фон Я разрабатываю арабский язык программирования, который я скомпилировал с Java,...
984 просмотров

Распределение памяти переменных C++
В основном это вопросы дизайна компилятора. Когда ваш компилятор компилирует это, например: int * pData = new int[256]; Как память распределяется на лету? Выполняет ли компилятор вызов подпрограммы ОС, которая выделяет память для вас, или...
4596 просмотров

Вычисление последующего множества
Хорошо, я понял, как вычислить множество Follow_k(N) (N — нетерминал): для каждого продукционного правила формы A -> aBc вы добавляете First_k(First_k(c)Follow_k(A)) к Follow_k(B ) (a, c — любая группа терминалов и нетерминалов или даже лямбда)....
3168 просмотров
schedule 23.04.2024

Почему компилятор не может полностью решить проблему обнаружения мертвого кода?
Компиляторы, которые я использовал в C или Java, имеют защиту от мертвого кода (предупреждение, когда строка никогда не будет выполнена). Мой профессор говорит, что компиляторы никогда не смогут полностью решить эту проблему. Мне было интересно,...
15495 просмотров
schedule 04.09.2023