Запитання з тегом «compiler-construction»

Побудова компілятора тегів має застосовуватися до питань, що стосуються програмування компіляторів або до питань про детальну внутрішню роботу компіляторів. НЕ ВИКОРИСТОВУЙТЕ для питань щодо * використання * конкретних компіляторів або помилок компіляції.

6
Чому потрібен сегмент .bss?
Що я знаю, це те, що глобальні та статичні змінні зберігаються у .dataсегменті, а неініціалізовані дані - у .bssсегменті. Я не розумію, чому ми виділили сегмент для неініціалізованих змінних? Якщо неініціалізована змінна має значення, призначене під час виконання, чи існує змінна ще лише у .bssсегменті? У наступній програмі aзнаходиться в …

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 GCC …

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; Однак якщо компілятор вирішить змінити …


13
Чому неможливо побудувати компілятор, який може визначити, чи змінює функція C ++ значення певної змінної?
Я читав цей рядок у книзі: Неможливо побудувати компілятор, який насправді може визначити, змінить чи не функція C ++ значення певної змінної. У параграфі йшлося про те, чому компілятор є консервативним під час перевірки на стабільність. Чому неможливо побудувати такий компілятор? Компілятор завжди може перевірити, чи змінена переназначена зміна, на …

3
Значення помилки Android Studio: Параметр, який не зазначається, замінює параметр @NonNull
Я пробую Android Studio. Створюючи новий проект і додаючи onSaveInstanceStateметод за замовчуванням до класу створення MyActivity, коли я намагаюся ввести код у Git, я отримую дивну помилку, яку я не розумію. Код такий: Я отримую помилку така: Якщо я спробую змінити підпис методу на protected void onSaveInstanceState(@NotNull Bundle outState), IDE …

8
Яка різниця між парзаторами LR, SLR та LALR?
Яка фактична різниця між LR, SLR та LALR парсерами? Я знаю, що SLR та LALR - це типи парсерів LR, але яка насправді різниця щодо їх таблиць розбору? І як показати, граматика - LR, SLR або LALR? Для граматики LL ми просто повинні показати, що жодна комірка таблиці розбору не …


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 = …

14
Чому цей код Java компілюється?
У області методу або класу компілюється рядок нижче (з попередженням): int x = x = 1; У межах класу, де змінні отримують свої значення за замовчуванням , наступне дає помилку "невизначене посилання": int x = x + 1; Хіба це не перше, що x = x = 1має закінчитися такою …

5
Затьмарення: включити твердження
Я керую Eclipse Galileo. Як увімкнути твердження в Eclipse? За пропозицією інших сайтів, я спробував додати аргументи: -ea. Я також спробував змінити рівень відповідності компілятора на 1.4. Жодна з цих пропозицій не спрацювала.

14
Компіляція, побудова або архівування проблем із Xcode 4 (та залежностями)
Це питання розвивалося протягом останніх кількох тижнів, щоб охопити більш загальні питання xcode4 (і проекти з модернізації старіші xcodeз). Однак багато питань можна вирішити, дотримуючись тих самих наборів інструкцій. Якщо у вас є якісь із наведених нижче проблем, спробуйте методи у прийнятій відповіді: Xcode 4 не може архівувати додаток Xcode …

11
Для завантаження все ще потрібна зовнішня підтримка
Я чув про ідею завантаження мови, тобто написання компілятора / інтерпретатора для самої мови. Мені було цікаво, як це можна зробити, і трохи озирнувся навколо, і побачив, як хтось каже, що це може зробити лише хтось із них написання початкового компілятора іншою мовою. ручне кодування початкового компілятора в Assembly, що …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.