제 9장 트랜스레이터.

Slides:



Advertisements
Similar presentations
Python Ch.06 RaspberryPi Sejin Oh. Raspberry Pi Python  IDLE(Integrated Development Environment)  라즈베리 파이 배포본들은 일반적으로 파이썬과 파이썬 3 의 IDLE 파 이썬 개발 도구를.
Advertisements

프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
천안천일고등학교 Copyright © by Ryu Bin All rights reserved 프로그래밍 실무.
9. 중간언어 9-1. 소개 9-2. Polish표기법 주소 코드 9-4. 트리 구조 코드
장. 프로그래밍 언어의 이해 컴퓨터공학과 권기태 프로그래밍언어론프로그래밍 언어.
컴퓨터와 인터넷.
Wireless Location and SOC Lab.
3. 명령어 집합 구조 순천향대학교 정보기술공학부 이상정.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
1. 컴파일러 개론 1-1. Compiler 정의 1-2. Language Processing System
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
Part 01 서론 안산1대학 디지털정보통신과 임 성 국.
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
3장 구문과 의미론 순천향대학교 컴퓨터공학과 하상호.
컴퓨터 프로그래밍 기초 [Final] 기말고사
Power Java 제2장 자바 개발 도구.
제7강 학습 내용 주소지정 방식의 예 값 즉시 지정 방식과 실행 예 레지스터 직접지정 방식 메모리 직접지정 방식과 실행 예
C 언어 1 1주차 C언어 시작하기 - 1차시 C 언어 특징 및 프로젝트 생성 Programming Language.
1장 기본적인 사항(3) 순천향대학교 컴퓨터공학과 하상호.
1장 C#의 배경.
제4장 블록 및 유효범위 Reading Chap. 5 © 숙대 창병모.
12장. 제어 장치 다루는 내용 CPU속의 제어장치 마이크로 연산 제어장치의 동작.
어셈블리 문법 보강 4월 10일.
컴퓨터시스템 구조 Computer System Architecture.
제 3장 컴퓨터 시스템의 구조.
System Programming 제1장 배경지식 시스템 프로그래밍.
이것이 C 언어다. IT응용시스템공학과 김 형 진 교수.
컴퓨터 기본 원리 프로그래밍 언어 C 프로그래밍 환경 C 프로그래밍 작성, 컴파일, 링크 및 실행
프로그래밍 언어 프로그래밍 언어의 개요 프로그래밍 언어의 구문 정의 변수와 영역 자료형 조건문과 반복문 부프로그램
Java 기초 (Java JDK 설치 및 환경설정)
제10강 중앙처리장치 1.
C / C++ Programming in multi platform
제 11 장  코드 최적화.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
Error Detection and Correction
제 6장 8086 어셈블러 설계.
제1장 컴파일러 개요.
컴파일러 입문 제 11 장 코드 최적화.
Computational Thinking
C#.
1장 기본적인 사항(3) 순천향대학교 컴퓨터공학과 하상호.
1. C 언어 개요.
Chap 6.Assembler 유건우.
이름 : 황 상 두 전화번호 : 이메일 : PinTool 이름 : 황 상 두 전화번호 : 이메일 :
UNIX Unbounded A Beginning Approach
CHAPTER 04. 프로그래밍 언어 인간과 컴퓨터의 대화_진화하는 소통. 진화하는 컴퓨터
프로그래밍 언어론 - 소개 순천향대학교 컴퓨터공학과 하 상 호.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
포인터 1차원 배열과 포인터 2차원 배열과 포인터 문자열 배열과 포인터 포인터 배열
2장. 변수와 타입.
자바 5.0 프로그래밍.
LabVIEW WiznTec 주임 박명대 1.
6.4 타입 검사 (Type Checking).
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
제2강 : 전자계산기구조-컴퓨터 시스템 구성.
함수(Function) ◈ 함수의 개념 및 사용 이유 ◈ 함수 정의, 호출 및 선언 ◈ 지역변수와 전역변수 ◈ return 문
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
9. 중간언어 9-1. 소개 9-2. Polish표기법 주소 코드 9-4. 트리 구조 코드
AT MEGA 128 기초와 응용 I 기본적인 구조.
Lecture 02 프로그램 구조 및 문법 Kwang-Man Ko
Chapter 01 자바의 개요 자바는 최초 전자기기의 내장형 소프트웨어를 위해 개발되었으나, 최근 엔터프라이즈 응용에도 폭 넓게 활용됨 자바의 특징과 실행방법, 개발 환경 및 도구에 대해 소개.
공학도를 위한 C언어 프로그래밍실습1 -통합개발환경 사용법-
발표자 : 이지연 Programming Systems Lab.
3.2 분기 명령어.
운 영 체 제 강 원재.
3장 (2) 구문과 의미론 순천향대학교 컴퓨터공학과 하상호.
제 4 장 Record.
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
임시테이블과 테이블변수 SQLWorld Study Group - 최명환 -.
LEON3 DBT 엔진을 이용한 ERC32 기반의 하이퍼바이저 프로토 타입 개발
Presentation transcript:

제 9장 트랜스레이터

제 9장 학습내용 인터프리터의 개념과 인터프리팅 방법 컴파일 단계와 컴파일 과정 어휘분석,구문분석,중간코드생성, 코드최적화의 개념과 처리과정 컴파일러의 구현과 오류처리 방법

인터프리터의 개념 원시문장을 하나씩 읽어 해석 후 실행 기계어를 생성하지 않고 바로 실행 통역하는 형태와 같음 개인용 컴퓨터나 마이크로컴퓨터에 널리 사용 서브루틴 호출에 의해 실행 BASIC, PROLOG, LISP 등에서 사용

인터프리터의 명령어 실행과정 시 작 수행할 첫 문장선택 선택된 문장분석 해당 실행루틴을 호출함으로써 분석된 문장을 실행 NO 시 작 수행할 첫 문장선택 선택된 문장분석 해당 실행루틴을 호출함으로써 분석된 문장을 실행 NO 처리할 문장이 남아 있는가? 끝 YES 실행할 문장을 선택

인터프리터의 장단점 융통성은 있으나 실행효율이 떨어짐 실행할때마다 해석되어야 함 목적프로그램이 생성 되지 않아 디스크 기억장소 절약 만들기 쉽고 프로그램 디버깅 기능을 쉽게 제공

SUM=VALUE1+VALUE2*VALUE3 인터프리터의 실행 예 SUM=VALUE1+VALUE2*VALUE3 치환연산을 위한 치환서브루틴 호출 산술계산 서브루틴 호출 ⇒ ⇒ ⇒ ⇒

컴파일러의 개념 고급언어로 작성된 원시프로그램을 번역 어셈블리어와 기계어 목적프로그램 생성 융통성이 적으나 실행효율이 좋음 컴파일 과정은 5단계로 구분 COBOL,FORTRAN,C,PASCAL등에서 사용

컴파일과정의 5단계 원시프로그램 목적프로그램 테이블(중간결과)이용 및 관리 전반부 후반부 어휘 분석 구문 분석 중간코드 생성 최적화 목적코드 생성 테이블(중간결과)이용 및 관리

어휘분석 단계의 실행 각문장을 토큰단위로 구분 DO 20 I = 1 , 10 리터럴(숫자 상수) 터미널(연산자) 식별자(변수) 식별자(레이블) 터미널(지정어)

어휘분석 단계의 실행 기호표의 생성 원시프로그램 어휘분석 기호 SUM 종류 변수 자료형 실수 주소 1234 기억형태 STATIC

구문분석단계의 실행 파서가 구문구조를 분석하여 파스트리 생성 어휘분석 결과의 기호표와 관련정보 문법 파서 파스트리

구문분석단계의 실행 SUM = A + B * 3의 파스트리 치환문 수식 변수명 SUM = 수식 수식 + 수식 * 수식 상수 3

구문분석단계의 실행 ⇒ 파서의 역할 id1 = id2 + id3 * id4 E E:수식 id:토큰 E = E E + E id1

구문분석단계의 실행 구문트리의 생성 = + SUM * A B 3

중간코드의 생성 의미검사를 수행한다. 연산자가 원시언어 정의에 맞는 연산항을 갖고 있는지 확인 구문구조를 이용하여 코드생성 문법규칙에 따라 문법지시적으로 실행

코드최적화의 실행 지역최적화와 전역최적화로 구분 지역최적화의 기능 *컴파일시간 상수연산 *중복된 명령문 제거 *수식의 간소화 *strength Reduction의 수행

지역최적화의 예 if A > B goto C2 goto C3 C2: if A ≤ B goto C3 ⇒

strength Reduction의 예 좀더 빠르게 연산할 수 있는 방법으로 연산자를 바꿈 A ** 2 = A * A

전역최적화의 예 흐름분석기술을 이용한 최적화 A: = B + C + D E: = B + C + F T: = B + C A: = T + D E: = T + F 루프내에서 반복적인 값을 갖는 문장을 루프밖에 둠 ⇒

목적코드의 생성 연산을 수행할 레지스터 선택 기억장소에서의 데이터 위치결정 중간코드들을 기계명령어들로 치환 일반적으로 코드생성기에 의해 생성됨 중복되는 명령어들을 피하도록 함

제 9장 요약 인터프리터의 이해 컴파일러의 이해 어휘분석, 구문분석의 이해 중간코드, 코드최적화의 이해 컴파일러의 구현과 오류처리 방법