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

154
Более эффективно использовать if-return-return или if-else-return?

Предположим, у меня есть ifутверждение с return. С точки зрения эффективности, следует ли мне использовать if(A > B): return A+1 return A-1 или if(A > B): return A+1 else: return A-1 Что лучше выбрать при использовании компилируемого языка (C) или скриптового (Python)?...

148
На каком языке написан компилятор C #?

Я посмотрел на исходный код по адресу http://referencesource.microsoft.com/ , и оказалось, что весь исходный код находится на C #. Я также рассмотрел исходный код для новой платформы компилятора C # ( Roslyn ), и он также находится в C #. Как это возможно? Компилятор языка C # написан на C #? Или я...

147
В чем разница между Слэй против Карлика против Сеха?

Я не могу найти достаточно информации, чтобы решить, какой компилятор мне использовать для компиляции моего проекта. На разных компьютерах есть несколько программ, имитирующих процесс. В Linux я использую GCC. Все отлично. Я могу оптимизировать код, он быстро компилируется и использует не так много...

140
TargetedPatchingOptOut: «Производительность критична для встраивания через границы изображений NGen»?

Я просмотрел некоторые классы фреймворка с использованием отражателя и заметил, что некоторые методы и свойства имеют следующий атрибут [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")] Я почти уверен, что видел вышеупомянутый комментарий где-то еще и никогда...

134
Может ли рекурсивная функция быть встроенной?

inline int factorial(int n) { if(!n) return 1; else return n*factorial(n-1); } Когда я читал это , обнаружил, что приведенный выше код приведет к «бесконечной компиляции», если не будет правильно обработан компилятором. Как компилятор решает, встроить функцию или...

128
ошибка: записываемое атомарное свойство не может соединить синтезированный сеттер / получатель с определенным пользователем сеттером / получателем

Недавно я попытался скомпилировать более старый проект Xcode (который раньше прекрасно компилировался), и теперь я вижу много ошибок этой формы: error: writable atomic property 'someProperty' cannot pair a synthesized setter/getter with a user defined setter/getter Шаблон кода, вызывающий эти...

125
Компилятор C для Windows? [закрыто]

В его нынешнем виде этот вопрос не подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, повлечет за собой дебаты, аргументы, опросы или расширенное обсуждение. Если вы считаете, что этот вопрос можно...

122
Как заставить компилятор C #, C ++ или Java вычислять 1 + 2 + 3 +… + 1000 во время компиляции?

В недавнем интервью мне задали действительно странный вопрос. Интервьюер спросил меня, как я могу вычислить 1 + 2 + 3 + ... + 1000, просто используя функции компилятора. Это означает, что мне не разрешено писать программу и выполнять ее, но я должен просто написать программу, которая могла бы...

120
Зачем нужен сегмент .bss?

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

110
Где узнать о волшебных именах отладчика VS

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

104
Значение ошибки Android Studio: параметр без аннотации переопределяет параметр @NonNull

Я пробую Android Studio. После создания нового проекта и добавления onSaveInstanceStateметода по умолчанию в класс create MyActivity, когда я пытаюсь зафиксировать код в Git, я получаю странную ошибку, которую я не понимаю. Код такой: Я получаю такую ​​ошибку: Если я попытаюсь изменить сигнатуру...

104
Почему невозможно создать компилятор, который может определить, изменит ли функция C ++ значение определенной переменной?

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

103
В чем разница между парсерами LR, SLR и LALR?

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

102
Сколько существует уровней оптимизации GCC?

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

101
Как создать статическую библиотеку с g ++?

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

98
Почему этот (null ||! TryParse) условный результат приводит к «использованию неназначенной локальной переменной»?

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