«compiler-construction» 태그된 질문

태그 컴파일러 구성은 컴파일러 프로그래밍과 관련된 질문 또는 컴파일러의 자세한 내부 작업에 대한 질문에 적용해야합니다. 특정 컴파일러 사용 또는 컴파일 오류에 대한 질문에는 사용하지 마십시오.

6
.bss 세그먼트가 필요한 이유는 무엇입니까?
내가 아는 것은 전역 및 정적 변수가 .data세그먼트에 저장 되고 초기화되지 않은 데이터가 .bss세그먼트에 있다는 것입니다. 내가 이해하지 못하는 것은 왜 초기화되지 않은 변수에 대한 전용 세그먼트가 있다는 것입니까? 초기화되지 않은 변수에 런타임에 할당 된 값이있는 경우 변수가 여전히 .bss세그먼트에만 존재 합니까? 다음 프로그램 a에서 .data세그먼트 b에 있고 .bss세그먼트에 있습니다. …

1
VS 디버거 '마법의 이름'에 대해 배울 수있는 곳
Reflector를 사용해 본 적이 있다면 C # 컴파일러가 디버거에서 '특별한'표시를해야하는 유형, 메서드, 필드 및 지역 변수를 생성한다는 것을 알 수 있습니다. 예를 들어 'CS $'로 시작하는 지역 변수는 사용자에게 표시되지 않습니다. 익명 메서드의 클로저 유형, 자동 속성의 지원 필드 등에 대한 다른 특수 명명 규칙이 있습니다. 내 질문 : 이러한 …

8
Qt : -lGL 오류를 찾을 수 없습니다.
방금 QtCreator를 다시 설치하고 새 프로젝트 ( Qt Application )를 만들었으며 컴파일 후 다음과 같이했습니다. /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 32bit) …

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 ++ 함수가 특정 변수의 값을 변경할지 여부를 결정할 수있는 컴파일러를 빌드하는 것은 불가능합니다. 이 단락은 const-ness를 확인할 때 컴파일러가 보수적 인 이유에 대해 이야기하고있었습니다. 왜 그런 컴파일러를 만드는 것이 불가능합니까? 컴파일러는 항상 변수가 재 할당되었는지, 상수가 아닌 함수가 호출되는지, 아니면 상수가 아닌 매개 변수로 …

3
Android 스튜디오 오류의 의미 : 주석이없는 매개 변수가 @NonNull 매개 변수를 재정의합니다.
Android Studio를 사용해보고 있습니다. 새 프로젝트 onSaveInstanceState를 만들고 create MyActivity 클래스에 기본 메서드를 추가 할 때 코드를 Git에 커밋하려고하면 이해할 수없는 이상한 오류가 발생합니다. 코드는 다음과 같습니다. 내가 얻는 오류는 다음과 같습니다. 메서드 서명을로 변경하려고 protected void onSaveInstanceState(@NotNull Bundle outState)하면 IDE에서 기호를 확인할 수 없다는 메시지가 표시 NotNull됩니다. 경고를 없애려면 …

8
LR, SLR 및 LALR 파서의 차이점은 무엇입니까?
LR, SLR 및 LALR 파서의 실제 차이점은 무엇입니까? SLR과 LALR이 LR 파서의 유형이라는 것을 알고 있지만 파싱 테이블에 관한 한 실제 차이점은 무엇입니까? 그리고 문법이 LR, SLR 또는 LALR인지 어떻게 보여줄까요? LL 문법의 경우 구문 분석 테이블의 모든 셀에 여러 생산 규칙이 포함되어서는 안된다는 것을 보여 주면됩니다. LALR, SLR 및 …


3
g ++로 정적 라이브러리를 만드는 방법은 무엇입니까?
누군가 .cpp 및 .hpp 파일에서 정적 라이브러리를 만드는 방법을 알려주시겠습니까? .o 및 .a를 만들어야합니까? 또한 정적 라이브러리를 컴파일하고 다른 .cpp 코드에서 사용할 수있는 방법을 알고 싶습니다. 내가 가진 header.cpp, header.hpp .내가 만들고 싶습니다 header.a. 에서 header.a를 테스트합니다 test.cpp. 컴파일을 위해 g ++를 사용하고 있습니다.

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

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가 앱을 보관하지 못함 Xcode 4는 사용할 수없는 아카이브를 만듭니다. Xcode 4는 .ipa를 …

11
부트 스트랩에는 여전히 외부 지원이 필요합니다.
나는 언어를 부트 스트랩하는 아이디어, 즉 언어 자체에 대한 컴파일러 / 인터프리터를 작성한다는 생각을 들었습니다. 나는 이것이 어떻게 이루어 질 수 있는지 궁금해하고 약간 둘러 보았고 누군가가 그것을 할 수 있다고 말하는 것을 보았습니다. 다른 언어로 초기 컴파일러 작성. 처음의 특별한 경우처럼 보이는 Assembly에서 초기 컴파일러를 직접 코딩 나에게 이들 …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.