Вопросы с тегом «compiler-construction»

Тег compiler-construction следует применять к вопросам, касающимся программирования компиляторов, или к вопросам о детальной внутренней работе компиляторов. НЕ ИСПОЛЬЗУЙТЕ для вопросов об * использовании * определенных компиляторов или ошибках компиляции.

6
Зачем нужен сегмент .bss?
Я знаю, что глобальные и статические переменные хранятся в .dataсегменте, а неинициализированные данные находятся в .bssсегменте. Я не понимаю, почему у нас есть специальный сегмент для неинициализированных переменных? Если неинициализированной переменной присвоено значение во время выполнения, существует ли эта переменная .bssтолько в сегменте? В следующей программе aнаходится в .dataсегменте и …

1
Где узнать о волшебных именах отладчика VS
Если вы когда-либо использовали Reflector, вы, вероятно, заметили, что компилятор C # генерирует типы, методы, поля и локальные переменные, которые заслуживают «специального» отображения отладчиком. Например, локальные переменные, начинающиеся с «CS $», пользователю не отображаются. Существуют и другие специальные соглашения об именах для типов закрытия анонимных методов, полей поддержки автоматических свойств …

8
Qt: не удается найти ошибку -lGL
Я только что переустановил QtCreator, создал новый проект ( приложение Qt ) и получил это после компиляции: /usr/bin/ld: **cannot find -lGL** collect2: error: ld returned 1 exit status make: *** [untitled1] Error 1 18:07:41: The process "/usr/bin/make" exited with code 2. Error while building/deploying project untitled1 (kit: Desktop Qt 5.1.0 …

6
(A + B + C) ≠ (A + C + B) и переупорядочение компилятора
Добавление двух 32-битных целых чисел может привести к целочисленному переполнению: uint64_t u64_z = u32_x + u32_y; Этого переполнения можно избежать, если сначала преобразовать одно из 32-битных целых чисел или добавить к 64-битному целому числу. uint64_t u64_z = u32_x + u64_a + u32_y; Однако, если компилятор решит изменить порядок добавления: uint64_t …


13
Почему невозможно создать компилятор, который может определить, изменит ли функция C ++ значение определенной переменной?
Я прочитал эту строчку в книге: Доказано, что невозможно создать компилятор, который действительно может определить, изменит ли функция C ++ значение определенной переменной. В абзаце говорилось о том, почему компилятор консервативен при проверке константности. Почему невозможно построить такой компилятор? Компилятор всегда может проверить, переназначена ли переменная, для нее вызывается неконстантная …

3
Значение ошибки Android Studio: параметр без аннотации переопределяет параметр @NonNull
Я пробую Android Studio. После создания нового проекта и добавления onSaveInstanceStateметода по умолчанию в класс create MyActivity, когда я пытаюсь зафиксировать код в Git, я получаю странную ошибку, которую я не понимаю. Код такой: Я получаю такую ​​ошибку: Если я попытаюсь изменить сигнатуру метода на protected void onSaveInstanceState(@NotNull Bundle outState), …

8
В чем разница между парсерами LR, SLR и LALR?
В чем разница между парсерами LR, SLR и LALR? Я знаю, что SLR и LALR являются типами парсеров LR, но какова реальная разница в их таблицах синтаксического анализа? И как показать, является ли грамматика LR, SLR или LALR? Для грамматики LL мы просто должны показать, что любая ячейка таблицы синтаксического …

4
Сколько существует уровней оптимизации GCC?
Сколько существует уровней оптимизации GCC ? Я пробовал gcc -O1, gcc -O2, gcc -O3 и gcc -O4 Если я использую очень большое число, это не сработает. Однако я пробовал gcc -O100 и он скомпилирован. Сколько существует уровней оптимизации?

3
Как создать статическую библиотеку с g ++?
Может кто-нибудь сказать мне, как создать статическую библиотеку из файлов .cpp и .hpp? Нужно ли мне создавать .o и .a? Я также хотел бы знать, как я могу скомпилировать статическую библиотеку и использовать ее в другом коде .cpp. Есть header.cpp, header.hpp .хочу творить header.a. Протестируйте header.a в test.cpp. Я использую …

3
Почему этот (null ||! TryParse) условный результат приводит к «использованию неназначенной локальной переменной»?
Следующий код приводит к использованию неназначенной локальной переменной numberOfGroups : int numberOfGroups; if(options.NumberOfGroups == null || !int.TryParse(options.NumberOfGroups, out numberOfGroups)) { numberOfGroups = 10; } Однако этот код работает нормально (хотя ReSharper говорит, что = 10он избыточен): int numberOfGroups = 10; if(options.NumberOfGroups == null || !int.TryParse(options.NumberOfGroups, out numberOfGroups)) { numberOfGroups = …

5
Eclipse: включить утверждения
Я использую Eclipse Galileo. Как включить утверждения в Eclipse? По предложению других сайтов, я попытался добавить аргументы: -ea. Я также попытался изменить уровень соответствия компилятора на 1.4. Ни одно из этих предложений не сработало.

14
Почему этот код Java компилируется?
В области метода или класса следующая строка компилируется (с предупреждением): int x = x = 1; В области класса, где переменные получают значения по умолчанию , следующее дает ошибку «неопределенная ссылка»: int x = x + 1; Разве не первая x = x = 1должна закончиться той же ошибкой «неопределенная …

14
Проблемы с компиляцией, сборкой или архивированием с Xcode 4 (и зависимостями)
Этот вопрос развился за последние несколько недель, чтобы охватить более общие проблемы с xcode4 (и модернизация проектов из более старых xcodeс). Однако многие проблемы можно решить, следуя тем же инструкциям. Если у вас есть какие-либо из следующих проблем, попробуйте методы, указанные в принятом ответе: Xcode 4 не может заархивировать приложение …

11
Начальная загрузка по-прежнему требует внешней поддержки
Я слышал об идее начальной загрузки языка, то есть написания компилятора / интерпретатора для языка как такового. Мне было интересно, как это можно сделать, и я немного огляделся и увидел, что кто-то сказал, что это можно сделать только написание исходного компилятора на другом языке. ручное кодирование исходного компилятора на ассемблере, …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.