컴파일러 구성_출석과제물
- 최초 등록일
- 2023.06.01
- 최종 저작일
- 2022.09
- 8페이지/ 어도비 PDF
- 가격 6,000원
목차
1. 컴파일러와 인터프리터를 비교 설명하시오.
2. 유한오토마타 M은 다음과 같다. DFA(Deterministic Finite Automata) 전이함수표를 보고 아래 문제에 답하시오.
3. 유한오토마타 NFA M은 다음과 같다. NFA(Nondeterministic Finite Automata) 전이함수표를 보고 아래 문제에 답하시오.
본문내용
1. 컴파일러와 인터프리터를 비교 설명하시오.
컴파일러와 인터프리터는 둘다 고급언어로 작성된 프로그래밍 언어를 기계어로 변환해주지만 차이점이 있다. 컴파일러는 프로그래밍 언어로 쓰여 있는 소스 코드를 다른언어로 컴파일하는데 그 과정에서 일반적으로 6단계의 과정을 거친다. 단계는 어휘분석 단계, 구문분석 단계, 의미분석 단계, 중간코드 생성단계, 코드 최적화 단계, 목적코드 생성단계이다. 원래의 소스를 원시코드, 바뀐 코드를 목적 코드라고 하며, 컴파일러에 의해 컴파일된 목적파일은 최종 실행 가능한 파일(.exe)로 연결하는 과정을 통해 실행 파일을 만드는 과정인 빌드(build)를 거쳐 CPU가 실행파일을 실행한다. 런타임 이전에 어셈블리 언어로 변환되기 때문에 구동 시간이 오래 걸리지만, 구동된 이후로는 하나의 패키지로 매우 빠르게 작동하기 때문에 구동시에 코드와 함께 시스템으로 부터 메모리를 할당받으며 사용하게 된다. 반복문이나 계속 호출되는 부프로그램처럼 많은 횟수로 반복처리되는 프로그램인 경우 컴파일러 기법이 유리하나, 입출력명령, 기계상태 파악코드와 버퍼등으로 기억장치가 많이 필요로 한다.
인터프리터는 이런 컴파일러와는 다르게 컴파일 과정을 거치지 않고 소스코드를 바로 실행하는 일종의 가상머신이나 실행환경이며, 전체 소스코드를 한번에 컴파일 하는것이 아닌 코드를 한줄씩 읽어서 다른 중간 코드나 기계어로 변환한 뒤 임시파일(*.pyc)에 저장하고 변환한 것을 메모리에 바로 로드시켜 실행한다. 큰 기억장소가 요구되지는 않으나, 실행하는 동안에 디코딩하는 시간이 많이 필요하여 반복문 등에는 적절하지 않다. 그러나 사용하기가 편리하고 언어에 사용되는 자료를 동적으로 정의하는것 등에서 융통성이 있다.
참고 자료
컴파일러 구성. 김강현, 박두순 공저
https://bentist.tistory.com/41