gcc C 컴파일러는 C 자체로 작성 되었습니까? 아니면 총회에 서면? 컴파일러가 C로 작성된 경우 컴파일러 코드를 컴파일하는 데 사용되는 컴파일러는 무엇입니까?gcc C 컴파일러는 C 자체로 작성 되었습니까?
답변
gcc의 특정 내역은 GCC Wiki입니다. 보다 일반적인 점은 컴파일러가 일반적으로 컴파일 할만큼 강력 할 때까지 컴파일러는 원래 다른 컴파일러로 컴파일된다는 것입니다. 또는 어셈블러에서 피쳐의 하위 세트를 처리 할 수있는 기본 컴파일러를 작성하여 빌드 할 수 있습니다. 그러나 다시 이것은 거의 필요가 없습니다. 다양한 언어로 다양한 컴파일러를 사용할 수 있습니다. Stephen Johnson이 pcc (첫 번째 C 컴파일러 중 하나)를 작성한 경우에도 B 언어 용 컴파일러가 여러 언어와 함께 제공되었습니다. gcc는 원래 컴파일러를 고를 수있는 컴파일러를 여러 개 가지고있었습니다. RMS는 적어도 초기 개발 단계에서 파스텔 컴파일러를 사용하고 있었다고 말합니다.
C 컴파일러가 C로 작성되어야한다는 요구 사항은 없습니다. 원하는 경우 Perl로 작성할 수 있습니다. 특정 플랫폼 용 컴파일러가 원래 해당 플랫폼에 작성되어야한다는 요구 사항은 없습니다 (임베디드 시스템은 거의 항상 다른 시스템에서 컴파일됩니다). 따라서 부트 스트랩을하는 데는 여러 가지 방법이 있습니다.
이 질문에는 컴파일러 부트 스트랩의 첫 번째 인스턴스와 관련된 몇 가지 흥미로운 점이 있습니다. 당신이 매우 똑똑하다면, 그 부트 스트랩을 이용하여 something incredible, brilliant and terrifying을 할 수 있습니다.
+1 리치 링크는 항상 좋은 읽을 거리입니다. :) – unwind
Woah, 그 두 번째 기사는 현명하게 영리합니다. – Ponkadoodle
그들은 이제 몇 가지 [C++ in gcc] (http://lwn.net/Articles/542457/)를 사용합니다. –
원래 어셈블리 언어로 작성되었지만 그 자체로 개가 음식을 만들기 시작했습니다.
+1 문구를 좋아하십시오. –
원본 부트 스트랩에 어셈블러를 사용하여 RMS에 대한 참조를 보지 못했습니다. 그 근원은 무엇입니까? 그는 부트 스트랩 (bootstrap)을 할 수있는 몇 가지 다른 컴파일러를 가지고 있었기 때문에 많은 작업이 필요했습니다. –
비록 용어는 부트 스트랩 이었지만. –
이것은 분명히 매우 거친 표시기이지만,이 의 목록은 gcc-5.1.0-src/gcc/
디렉토리의이 흥미 롭습니다. 이 디렉토리 에는 GCC 자체의 주요 소스가 들어 있습니다 (런타임 라이브러리 제외). 여기
112 .opt
118 .def
140 .cc
185 .x
250 .exp
353 .md
366 .mm
414 .f
430 .f03
521 .m
625 .a
1082 .go
1371 .h
1602 .ads
1655 .adb
1828 .ada
3860 .f90
11231 .C // C++
23811 .c // C
요즘 GCC
는 GNU 컴파일러 컬렉션뿐 아니라 GNU C 컴파일러를 의미 있습니다.
6.3 GCC 하위 디렉토리
GCC 디렉토리는 문서를 포함 많은 GCC의 이 다른 파일이 구성의 일부로 사용 빌드 프로세스 C 소스의 일부 파일 및 하위 디렉토리를 포함 및 testsuite.
참조 :https://gcc.gnu.org/onlinedocs/gccint/gcc-Directory.html
- 1. C# 컴파일러는 C++로 작성 되었습니까?
- 2. GCC C++ 컴파일러는 __restrict - statements를 고려합니까?
- 3. F #의 컴파일러는 어떤 언어로 작성 되었습니까?
- 4. Ajax Push가 C/C++로 작성 되었습니까?
- 5. VxWorks에서 사용할 수있는 C/C++ 컴파일러는 무엇입니까?
- 6. gcc/최적화 플래그의 지속성 변경 gcc/C
- 7. 좋은 C 디 컴파일러는 무엇입니까?
- 8. GCC : C 표준이 사용됨
- 9. C++ - gcc 관련 경고
- 10. SCons : GCC Ignoring -c
- 11. C++ GCC 4.3.2 에러
- 12. C# 컴파일러는 릴리스 빌드에서 Debug.Assert를 어떻게 제거합니까?
- 13. wxWidget은 Python과 C++로 얼마나 느리게 작성 되었습니까?
- 14. 인기있는 프로그래밍 언어 인터프리터의 주요 구현이 C++로 작성 되었습니까?
- 15. 크로스 컴파일러는 무엇입니까?
- 16. C/C++ 컴파일러는 헤더 파일의 프로토 타입 정의를 어떻게 찾습니까?
- 17. Quadruple Precision in C++ (GCC)
- 18. C++ (gcc)에서 PostgreSQL에 연결
- 19. GCC 함수의 Visual C++ 버전
- 20. C++/templates/GCC 4.0 버그?
- 21. GCC 2.96에서 C++ 디맹글 방법
- 22. 컴파일러는 C++ 클래스의 메서드를 어디에 저장합니까?
- 23. ndk를 통해 C++ 포팅에 사용할 컴파일러는 무엇입니까?
- 24. C# 컴파일러는 버전 또는 플랫폼 상수를 설정합니까?
- 25. C 컴파일러는 비트 필드와 어떤 관계가 있습니까?
- 26. Xcode의 objective-c 컴파일러는 비트 이동을 최적화합니까?
- 27. Objective-c 용으로 Xcode에서 사용하는 컴파일러는 무엇입니까?
- 28. 포럼은 파이썬으로 작성 되었습니까?
- 29. C#과 C++ 사이의 값이 동기화 되었습니까?
- 30. C++가 C 위에 구축 되었습니까?
예는 (대부분)입니다. 물론 대부분의 컴파일러와 마찬가지로 C를 컴파일하려면 C 컴파일러가 필요합니다. 일련의 "부트 스트랩"단계가 있습니다. 일반적인 생각은 [GCC 설치하기] (http://gcc.gnu.org/install/build.html)와 [GCC - LFS 설치하기] (http://www.linuxfromscratch.org/lfs/)에서 다루고 있습니다. view/development/chapter05/gcc-pass2.html). –
@mu : 다음 단계입니다. – euphoria83
1980 년대와 90 년대 초반에 각기 다른 브랜드의 워크 스테이션은 c 컴파일러, 툴 등을 사용하는 유닉스 환경을 가지고있었습니다.GCC 소스를 사용하면 이러한 플랫폼 중 하나에서 gcc의 초기 컴파일을 수행 한 다음 gcc를 컴파일하여 몇 번이나 고정 지점에 대한 확인을 몇 번 할 수 있습니다. – Paul