'ANSI C 호환 컴파일러'에 해당되는 글 1건
- 2008/10/02 ANSI C 호환 컴파일러의 환경에 대하여 (2)
평소 C나 C++는 자주 사용하지 않지만 간혹 사용할 경우가 많아서 최근 개념을 다잡고자 "Pointers on C"라는 책을 읽고 있습니다.
책 내용중 기본 개념에 해당하는 ANSI C 호환 컴파일러의 환경에 대한 좋은 글이 있어서 올립니다.
모든 ANSI C 호환 컴파일러는 두개의 서로 다른 환경(Environment)이 존재한다.
1. 번역 환경 (Translation Environment): 소스코드를 실행 가능한 기계어로 번역하는 환경
2. 실행 환경 (Execution Environment): 코드를 실제로 실행하는 환경
이 두 환경은 모두 하나의 동일한 컴퓨터에 존재할 필요가 없다.
특히 다른 CPU나 운영체제를 사용하는 경우 번역환경과 실행 환경은 서로 상이할 수 있다.
예를 들어 Windows XP를 사용하는 개발자가 UNIX에서 돌아가는 C 프로그램을 작성한다고 하면 번역환경은 Windows XP를 사용하는 개발자의 컴퓨터이고 실행환경은 UNIX 머신이다.
이를 위하여 크로스 컴파일러(Cross Compiler)가 존재하여 현재 자신이 실행되는 컴퓨터에서 그와 다른 컴퓨터에서 실행될 수 있는 실행코드를 만들어 낼 수 있다. 이 경우 번역환경은 존재하지만 실행환경은 존재하지 않는다.
또한 환경에 따라 운영체제가 필요하지 않을 수 있다.
운영체제가 없는 환경을 프리스탠딩 환경(Freestanding Environment)라고 하는데, 전자랜지와 같은 임베디드 시스템에서 볼 수 있다.
'Architecture for Software > C and C++' 카테고리의 다른 글
| Eclipse 3.4 (CDT)와 Cygwin으로 C/C++ 개발환경 설정하기 (12) | 2009/11/11 |
|---|---|
| Pointer 의 선언 (0) | 2008/11/03 |
| C 언어의 문자열 리터럴(String Literal) (0) | 2008/10/06 |
| C / C++ 컴파일 과정(Compilation Process) (4) | 2008/10/03 |
| ANSI C 호환 컴파일러의 환경에 대하여 (2) | 2008/10/02 |
| C에서 사용되는 형식 지정자 (0) | 2008/10/01 |
Trackback 0 And
Comment 2
-
-
jangsunjin 2009/02/06 00:31
안녕하세요~ :-)
우선 ANSI는 American National Standdards Institute라는 용어의 약자입니다.
즉 ANSI는 미국의 표준화를 위한 단체입니다.
이 단체에서는 광범위한 표준화를 진행하고 있는데 그중 컴퓨터의 언어(Language)인 C도 표준화하였습니다.
왜냐하면 C는 자생적인 컴퓨터 언어이고 수 많은 라이브러리들이 존재하기 때문에 입니다.
이에따라 ANSI C라고 하면 ANSI에서 표준화시킨 C라는 뜻입니다.
이 왜에도 ISO C라는 것도 있습니다.
더욱 자세한 정보는 http://en.wikipedia.org/wiki/ANSI_C 에서 찾아보실 수 있습니다.
혹시 살펴보시다가 궁금한 것이 있다면 저에게 메일 주시기 바랍니다.
결론적으로 ANSI C는 미국에서 만든 표준 C 언어입니다.
이에 관한 좋은 책으로는 프라임 C라는 책을 권해드립니다.
제 기억에 ANSI C를 기준으로 쓰여졌던것으로 알고 있습니다.
그럼 좋은 하루 보내세요 ;-)
-



