«compiler-construction» 태그된 질문

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

6
다른 프로그래밍 언어로 쉽게 번역 할 수 있도록 코드에 어떤 종류의 패턴을 적용 할 수 있습니까? [닫은]
닫힘 . 이 질문은 더 집중되어야 합니다. 현재 답변을 받고 있지 않습니다. 이 질문을 개선하고 싶으십니까? 이 게시물 을 편집 하여 한 가지 문제에만 집중하도록 질문을 업데이트하십시오 . 휴일 오년 전에 . 이 질문 개선 저는 한 프로그래밍 언어에서 다른 프로그래밍 언어로 코드를 번역하는 것을 목표로하는 사이드 프로젝트를 시작하려고합니다. 내가 …

11
Java 클래스 파일 생성이 결정적입니까?
사용하는 경우 동일한 JDK (즉, 같은 javac실행 파일을), 생성 된 클래스 파일이 항상 동일하다? 운영 체제 또는 하드웨어 에 따라 차이가있을 수 있습니까? JDK 버전을 제외하고 다른 요인으로 인해 차이가 발생할 수 있습니까? 차이점을 피하기위한 컴파일러 옵션이 있습니까? 이론상으로 만 차이가 있거나 Oracle의javac 실제로 동일한 입력 및 컴파일러 옵션에 대해 …

5
유형 추론 구현
여기서 정적 입력과 동적 입력에 대한 흥미로운 논의를 봅니다. 나는 일반적으로 컴파일 유형 검사, 더 나은 문서화 된 코드 등으로 인해 정적 유형을 선호합니다. 그러나 예를 들어 Java가 수행하는 방식으로 수행되면 코드를 복잡하게 만드는 데 동의합니다. 그래서 저는 저만의 기능적 스타일 언어를 만들기 시작하려고합니다. 타입 추론은 제가 구현하고 싶은 것 …


4
컴파일과 트랜스 파일
차이점을 검색하는 동안 다음과 같은 정의를 발견했습니다. 컴파일 은 한 언어로 작성된 소스 코드를 다른 언어로 변환하는 일반적인 용어입니다. 트랜스 파일링 은 한 언어로 작성된 소스 코드를 비슷한 수준의 추상화를 가진 다른 언어로 변환하는 특정 용어입니다. 추상화가 무엇인지 이해합니다. 그러나 위의 정의에서 "유사한 추상화 수준"은 무엇을 의미합니까? 그리고 언어의 추상화 …

8
JVM 프로그래밍 언어 만들기
루프, 함수 내부 함수 선언, 재귀 호출 등을 지원하는 동적 형식 프로그래밍 언어를 위해 C (lex & bison 사용)로 컴파일러를 만들었습니다. 또한 컴파일러에서 만든 중간 코드를 실행하는 가상 머신을 만들었습니다. 나는 이제 내 자신의 중간 코드로 컴파일하는 대신 자바 바이트 코드로 컴파일하는 것을 생각하고 있었다. JVM 언어 생성에 대한 질문은 …

6
GCC 및 Clang 파서는 실제로 손으로 작성됩니까?
GCC와 LLVM-연타 사용하고있는 것으로 보인다 필기 재귀 하강 파서를 , 그리고 하지 생성, 들소 플렉스를 기반으로, 아래에서 위로 구문 분석 기계. 여기 누군가가 이것이 사실인지 확인해 주시겠습니까? 그렇다면 왜 주류 컴파일러 프레임 워크는 손으로 쓴 파서를 사용합니까? 업데이트 : 여기에이 주제에 대한 흥미로운 블로그

6
컴파일러가 do-while 루프에 대해 다른 유형의 루프에 비해 더 나은 코드를 생성합니까?
zlib 압축 라이브러리 (Chromium 프로젝트에서 사용됨)에는 C의 do-while 루프가 대부분의 컴파일러에서 "더 나은"코드를 생성 함을 암시 하는 주석이 있습니다 . 다음은 표시되는 코드 스 니펫입니다. do { } while (*(ushf*)(scan+=2) == *(ushf*)(match+=2) && *(ushf*)(scan+=2) == *(ushf*)(match+=2) && *(ushf*)(scan+=2) == *(ushf*)(match+=2) && *(ushf*)(scan+=2) == *(ushf*)(match+=2) && scan < strend); /* The …

7
Linux 커널은 어떻게 자체적으로 컴파일 할 수 있습니까?
내 컴퓨터에 Linux 시스템을 설치할 때 Linux 커널의 컴파일 프로세스를 잘 이해하지 못합니다. 다음은 나를 혼란스럽게하는 몇 가지 사항입니다. 커널은 C로 작성되었지만 컴파일러를 설치하지 않고 어떻게 커널을 컴파일 했습니까? 커널이 컴파일되기 전에 내 컴퓨터에 C 컴파일러가 설치되어있는 경우 컴파일러를 설치하지 않고 어떻게 컴파일러 자체를 컴파일 할 수 있습니까? 나는 며칠 …

7
함수 언어로 컴파일러를 작성하는 것이 더 쉬운 이유는 무엇입니까? [닫은]
닫힘 . 이 질문은 의견 기반 입니다. 현재 답변을 받고 있지 않습니다. 이 질문을 개선하고 싶으십니까? 이 게시물 을 편집 하여 사실과 인용으로 답변 할 수 있도록 질문을 업데이트하십시오 . 휴일 2 년 전 . 이 질문 개선 나는이 질문에 대해 오랫동안 생각해 왔지만 실제로 Stackoverflow에 대한 유사한 질문과 Google에서 …



2
어휘 분석기 작성의 기초를 어디서 배울 수 있습니까?
어휘 분석기를 작성하는 방법을 배우고 싶습니다. 내 대학 과정에는 파서 (및 함께 진행할 어휘 분석기)를 작성해야하는 과제가 있었지만 이것은 지침이나 피드백 (마크 이상)없이 우리에게 주어 졌기 때문에 실제로 많은 것을 배우지 못했습니다. 이 주제를 검색 한 후에는 내가있는 곳보다 몇 걸음 앞서 있다고 느끼는 영역에 초점을 맞춘 상당히 진보 된 …

8
GDB가 줄 사이를 예측할 수없이 점프하고 변수를 "<value optimize out>"으로 출력하는 이유는 무엇입니까?
누구든지 gdb의이 동작을 설명 할 수 있습니까? 900 memset(&amp;new_ckpt_info,'\0',sizeof(CKPT_INFO)); (gdb) **903 prev_offset = cp_node-&gt;offset;** (gdb) **905 m_CPND_CKPTINFO_READ(ckpt_info,(char *)cb-&gt;shm_addr.ckpt_addr+sizeof(CKPT_** HDR),i_offset); (gdb) **903 prev_offset = cp_node-&gt;offset;** (gdb) **905 m_CPND_CKPTINFO_READ(ckpt_info,(char *)cb-&gt;shm_addr.ckpt_addr+sizeof(CKPT_ HDR),i_offset);** (gdb) **908 bitmap_offset = client_hdl/32;** (gdb) **910 bitmap_value = cpnd_client_bitmap_set(client_hdl%32);** (gdb) **908 bitmap_offset = client_hdl/32;** (gdb) **910 bitmap_value = cpnd_client_bitmap_set(client_hdl%32);** (gdb) …


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