Pytania otagowane jako compiler-construction

Konstrukcja kompilatora tagów powinna być stosowana w pytaniach dotyczących programowania kompilatorów lub w przypadku pytań o szczegółowe wewnętrzne działanie kompilatorów. NIE UŻYWAJ w przypadku pytań dotyczących * używania * określonych kompilatorów lub błędów kompilacji.

6
Dlaczego wymagany jest segment .bss?
Wiem tylko, że zmienne globalne i statyczne są przechowywane w .datasegmencie, a niezainicjowane dane znajdują się w .bsssegmencie. Nie rozumiem, dlaczego mamy dedykowany segment dla niezainicjowanych zmiennych? Jeśli niezainicjalizowana zmienna ma przypisaną wartość w czasie wykonywania, czy ta zmienna nadal istnieje tylko w .bsssegmencie? W następnym programie ajest w .datasegmencie …

1
Gdzie dowiedzieć się o „magicznych nazwach” debuggera VS
Jeśli kiedykolwiek korzystałeś z Reflectora, prawdopodobnie zauważyłeś, że kompilator C # generuje typy, metody, pola i zmienne lokalne, które zasługują na „specjalne” wyświetlanie przez debuger. Na przykład zmienne lokalne zaczynające się od „CS $” nie są wyświetlane użytkownikowi. Istnieją inne specjalne konwencje nazewnictwa dla typów zamykania metod anonimowych, pól zapasowych …

8
Qt: nie można znaleźć błędu -lGL
Właśnie ponownie zainstalowałem QtCreator, utworzyłem nowy projekt ( aplikację Qt ) i otrzymałem to po kompilacji: /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) i zmiana kolejności kompilatora
Dodanie dwóch 32-bitowych liczb całkowitych może spowodować przepełnienie liczb całkowitych: uint64_t u64_z = u32_x + u32_y; Tego przepełnienia można uniknąć, jeśli jedna z 32-bitowych liczb całkowitych jest najpierw rzutowana lub dodawana do 64-bitowej liczby całkowitej. uint64_t u64_z = u32_x + u64_a + u32_y; Jeśli jednak kompilator zdecyduje się zmienić kolejność …


13
Dlaczego nie można zbudować kompilatora, który może określić, czy funkcja C ++ zmieni wartość określonej zmiennej?
Przeczytałem ten wiersz w książce: Nie można udowodnić, że zbudowanie kompilatora, który może faktycznie określić, czy funkcja C ++ zmieni wartość określonej zmiennej, czy nie. W akapicie mówiono o tym, dlaczego kompilator jest konserwatywny podczas sprawdzania ciągłości. Dlaczego nie można zbudować takiego kompilatora? Kompilator zawsze może sprawdzić, czy zmienna jest …

3
Znaczenie błędu Android Studio: parametr bez adnotacji zastępuje parametr @NonNull
Wypróbowuję Android Studio. Po utworzeniu nowego projektu i dodaniu onSaveInstanceStatemetody domyślnej do klasy create MyActivity, kiedy próbuję przekazać kod do Gita, pojawia się dziwny błąd, którego nie rozumiem. Oto kod: Otrzymuję następujący błąd: Jeśli spróbuję zmienić sygnaturę metody na protected void onSaveInstanceState(@NotNull Bundle outState), IDE mówi mi, że nie może …



3
Jak stworzyć bibliotekę statyczną za pomocą g ++?
Czy ktoś może mi powiedzieć, jak utworzyć bibliotekę statyczną z pliku .cpp i .hpp? Czy muszę tworzyć pliki .o i .a? Chciałbym również wiedzieć, jak skompilować bibliotekę statyczną i użyć jej w innym kodzie .cpp. Mam header.cpp, header.hpp .chciałbym stworzyć header.a. Przetestuj nagłówek test.cpp. A in . Do kompilacji używam …

3
Dlaczego ten warunek (null ||! TryParse) powoduje „użycie nieprzypisanej zmiennej lokalnej”?
Poniższy kod powoduje użycie nieprzypisanej zmiennej lokalnej „numberOfGroups” : int numberOfGroups; if(options.NumberOfGroups == null || !int.TryParse(options.NumberOfGroups, out numberOfGroups)) { numberOfGroups = 10; } Jednak ten kod działa dobrze (chociaż ReSharper twierdzi, że = 10jest zbędny): int numberOfGroups = 10; if(options.NumberOfGroups == null || !int.TryParse(options.NumberOfGroups, out numberOfGroups)) { numberOfGroups = 10; …


14
Dlaczego ten kod Java jest kompilowany?
W zakresie metody lub klasy kompiluje się poniższy wiersz (z ostrzeżeniem): int x = x = 1; W zakresie klasy, gdzie zmienne pobierają wartości domyślne , następujący komunikat powoduje błąd „niezdefiniowane odwołanie”: int x = x + 1; Czy to nie pierwsza x = x = 1powinna zakończyć się tym …

14
Kompiluj, kompiluj lub archiwizuj problemy z Xcode 4 (i zależnościami)
To pytanie rozwinęło się w ciągu ostatnich kilku tygodni, aby objąć bardziej ogólne problemy z xcode4 (i aktualizowanie projektów ze starszych wersji xcodes). Jednak wiele problemów można rozwiązać, postępując zgodnie z tym samym zestawem instrukcji. Jeśli masz którykolwiek z poniższych problemów, wypróbuj metody z zaakceptowanej odpowiedzi: Xcode 4 nie archiwizuje …

11
Bootstrap nadal wymaga wsparcia z zewnątrz
Słyszałem o pomyśle bootstrapowania języka, czyli napisania kompilatora / interpretera dla samego języka. Zastanawiałem się, jak można to osiągnąć i rozejrzałem się trochę dookoła i zobaczyłem, że ktoś powiedział, że można to zrobić tylko napisanie początkowego kompilatora w innym języku. ręczne kodowanie początkowego kompilatora w asemblerze, co wydaje się być …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.