반응형
컴파일러
- 간단하게 말해서 언어를 번역하는 번역기
- 컴퓨터와 인간사이에 의사전달을 하기 위한 것 고급언어를 저급언어(기계어)로 번역한다.
- 번역기에는 어셈블러(assembler), 컴파일러(compiler), 인터프리터(interpreter), 프리프로세서(preprocessor)
등이 있는데 이들 중 가장 대표적인 번역기가 컴파일러이다.
번역기 종류
컴파일러와 인터프리터
1). 컴파일러
- 번역 후에 실행된다.
- 효율적이며 반복문 처리에 효과가 있다.
- 큰 기억장소를 요구한다.
- FORTRAN, COBOL, PASCAL, C, C++, JAVA
- 컴파일러의 논리적 구조
- 어휘분석 : 원시 프로그램을 읽어 토큰단위로 분리하여 출력
- 구문문석 : 토큰들이 주어진 문법에 맞는지 검사
- 의미분석 : 구문분석단계의 결과인 구문트리에 대하여 어떤 의미와 기능을 하는 것인지 분석하고 기능이 올바르게 수행될 수 있도록 환경을 조성
- 중간코드생성 : 코드최적화가 되기 위해 먼저 처리되는 작업
- 코드최적화 : 효율적으로 코드를 만들어 프로그램 실행 시 기억공간이나 실행시간을 절약하기 위해 수행되는 작업
- 목적코드생성 : 최적화된 코드를 그대로 레지스터나 기억장소 위치를 정해서 목적코드를 생성
=> 고급언어를 컴파일러가 이러한 논리적 구조 6단계를 거쳐 저급언어로 번역한다.
2). 인터프리터
- 번역과 동시에 실행된다.
- 컴파일러와 달리 원시 프로그램을 입력 프로그램의 논리적인 순서에 따라 문장 단위로 번역한 후, 곧바로 실행한다.
- 실행시간이 길다.
- 사용자와의 대화식으로 동작
- 융통성이 있다
- LISP, APL, SNOBOL
1-패스 컴파일러 / 2-패스 컴파일러
- 컴파일러는 위에서 언급한 6단계의 논리적인 구조를 가지고 있다.
- 이러한 구조를 실제 구현하게 되는 경우 1-패스 컴파일러 또는 2-패스 컴파일러 방법을 이용한다.
- 1-패스 컴파일러 : 초창기에 컴파일러를 만들 때 사용 했던 방법으로 컴파일러의 전 과정을 하나의 패스 구현하는 방법
- 2-패스 컴파일러 : 컴파일러의 구성을 중간코드를 기점으로 하여 앞 단계를 전반부, 뒷 단계를 후반부로 구성하는 방법
반응형
'수업내용정리 > 컴파일러' 카테고리의 다른 글
1.2 형식언어 (0) | 2023.11.18 |
---|---|
1.1.1 컴파일러 개요 요약 (1) | 2023.11.18 |