1. 컴파일러 개론 1-1. Compiler 정의 1-2. Language Processing System

Slides:



Advertisements
Similar presentations
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 프로그래밍 언어론 2nd edition Tucker and Noonan 1 장 소 개 A good programming language is a.
Advertisements

Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 실 습실 습 1.
제 5 장 구문 정의  프로그래밍 언어의 기본 문자 집합  Alphabet 문자 (A-Z) 26 개 + 아라비아 숫자 (0 - 9) 10 개  예 ) Fortran : 기본 문자 집합 + 13 개의 특수문자 (=+ - * / ( ),. $ ‘ : 공백 ) Algol60.
9. 중간언어 9-1. 소개 9-2. Polish표기법 주소 코드 9-4. 트리 구조 코드
Wireless Location and SOC Lab.
8장 프로그래밍 언어 8.1 프로그램이란? 8.2 프로그램 언어의 역사 8.3 프로그램 설계 절차
YACC 응용 예 Desktop Calculator.
3주 강의 Lexical Elements, Operators, and the C System
“자연어처리” 소개 (Natural Language Processing)
ERP(Enterprise Resource Planning)
기본 컴퓨터 프로그래밍 Lecture #6.
제2장 구문(Syntax) Reading Chap 4 © 숙대 창병모.
4장 구문(Syntax).
컴퓨터 소프트웨어.
3조 오세혁 김문환 김용현.
3장 구문과 의미론 순천향대학교 컴퓨터공학과 하상호.
프로그래밍 언어론 2004년 가을학기 창 병 모 숙명여대 컴퓨터과학과.
CHAPTER 04 컴퓨터 소프트웨어.
Ruby 프로그래밍 1 문자열 입출력 제어구조 looping 함수 정의
Lecture # 어셈블러 설계.
1장 기본적인 사항(3) 순천향대학교 컴퓨터공학과 하상호.
Power Java 제4장 자바 프로그래밍 기초.
프로그래밍언어론 2nd edition Tucker and Noonan
프로그램 개발과 언어 Chapter 05 컴퓨터의 이해
4장. 컴퓨터 시스템의 구성과 기능 다루는 내용 컴퓨터 분해를 통한 본체 살펴보기 컴퓨터 구성요소 컴퓨터의 기능
제 1 장 C 언어의 개요 Google 공동 창업자, 래리 페이지와 세르게이 브린.
1 마이크로프로세서의 원리 마이크로컨트롤러 AVR ATmega128.
9. 중간언어 9-1. Polish표기법 9-2. N-투플 표기법 9-3. 트리 구조 코드 9-4. 추상 기계 코드
Lex와 Yacc을 이용한 Calculator 구현
제3장 스택과 큐.
2 운영체제 소개.
Computer Architecture
C / C++ Programming in multi platform
C++ 프로그래밍 년 2학기 전자정보공학대학 컴퓨터공학부.
프로그래밍 서울대학교 통계학과 2009년 2학기 컴퓨터의 개념 및 실습 (
제 11 장  코드 최적화.
Lex와 Yacc을 이용한 Calculator 구현
제1장 컴파일러 개요.
운영체제 이나현.
아날로그 VS 디지탈 -. Analog Vs Digital -. 디지털 논리에 대하여 -. 메모리에 대하여
컴파일러 입문 제 11 장 코드 최적화.
1장 기본적인 사항(3) 순천향대학교 컴퓨터공학과 하상호.
쉽게 풀어쓴 C언어 Express 제1장 프로그래밍의 개념 C Express.
제주닷컴 매뉴얼 (실시간 예약시스템) 2013년 10월.
Lecture 01: Compiler Overview
5. Context-free 문법 5-1. 서 론 5-2. 유도와 유도 트리 5-3. CFG표기법.
Chapter 2 Lexical Elements, Operators, and the C System
[ 포털 사이트 연관검색어/자동완성 등록 서비스 ]
2015. 인문소양교육.
나이스 진로정보 초‧중‧고 연계 서비스 안내 (수) 한국교육학술정보원 교육행정부 김지광 선임연구원
기계어변천사.
기억장치 관리(Memory Management)
프로그래밍 언어론 - 소개 순천향대학교 컴퓨터공학과 하 상 호.
컴 파 일 러 Compilers.
제 9장 트랜스레이터.
제 2 장 어셈블러(Assemblers) 2.1 기본 어셈블러 기능 단순 SIC 어셈블러
2장. 변수와 타입.
[INA470] Java Programming Youn-Hee Han
프로그래밍언어론 2nd edition Tucker and Noonan
Term Project 수행 안내 2011년 2학기 컴파일러.
4. 어휘 분석(Lexical analysis)
제1장 정리 컴퓨터소프트웨어과 2-A반 주세호.
쉽게 풀어쓴 C언어 Express 제1장 프로그래밍의 개념 C Express.
C언어 개론.
9. 중간언어 9-1. 소개 9-2. Polish표기법 주소 코드 9-4. 트리 구조 코드
공학도를 위한 C언어 프로그래밍실습1 -통합개발환경 사용법-
C언어 개요 프로그래밍이란 프로그래밍 언어란 컴퓨터와의 의사소통을 위한 표현 방법 세대별 언어의 발전을 거듭함
운영체제 학 번 : 이름 : 변현영.
Compiler: Overview Seong Jong Choi Multimedia Lab.
1장. C Language Synopsis.
Presentation transcript:

1. 컴파일러 개론 1-1. Compiler 정의 1-2. Language Processing System 1-3. 컴파일러 논리적구조 (phase) 1-4. Compiler Organization

1-1. Compiler 정의 A Compiler is a program that reads a program written in one language – source program – and translates it into an equivalent program in another language – target(object) program compiler Source program Target program error

1-2. Language processing system Skeletal source program(high) preprocessor Front-end 분석 형식이론 (확립) highlevel language compiler IL lowlevel, assembly language assembler Back-end 합성 경험적 이론 Relocatable machine code loader Absolute machine code (executable machine code)

1-3. 컴파일러 논리적 구조 (phase) Symbol table Error handle 전 반 부 Intermediate code generation (중간코드생성) Code generation (코드 생성) Code optimization (코드 최적화) Semantic analysis (의미분석) Syntax analysis (구문분석) Lexical analysis (어휘분석) Error handle Symbol table 전 반 부 후 반 부

Lexical analysis (어휘분석) source program을 읽어서 문법의 최소 단위인 token을 생성하는 일 A := B + 3 ; (token의 개수 : 6개) A, B (variable), := (assignment symbol), +(plus operator), 3(numeric), ;(delimeter) 특수형태 : keyword, operator, delimeter Token 일반형태 : identifier, 상수

Syntax analysis (구문분석) token을 읽어 오류를 검색하고 올바른 문장에 대한 구문구조를 만든다. A := B + 3 ; := Top-down 방식 A + B 3

Semantic analysis (의미분석) type checking(형 검사) 각 연산자가 원시 언어의 정의에 맞는 피연산자를 가지는가를 검사 Intermediate code generation (중간코드생성) 구문구조를 이용하여 코드 생성 또는 문법규칙에 의해 생성 예) A := B + 3; load 1 2 loc 3 add str 1 1 U code

Code optimazation (코드 최적화) 선택적 단계 (공간적, 시간적 효율화를 위해 필수적) Code generation (코드 생성) 목적코드 생성 assemble language, machine code  Cross compiler 다른 machine에서 실행하기 위한 object program 생성

Intermediate code generator position := initial + rate * 60 Lexical analyzer Semantic analyzer Syntax analyzer Code generator Code optimizer Intermediate code generator position := initial + rate * 60 id1 := id2 + id3 * 60 := id1 + id2 * id3 60 inttoreal temp1 := inttoreal(60) temp2 := id3 * temp1 temp3 := id2 + temp2 id1 := temp3 temp1 := id3 * 60.0 id1 := id2 + temp1 MOVF id3, R2 MOVF #60.0, R2 MOVF id2, R2 ADDF R2, R1 MOVF R1, id1 position ... initial … rate ... 1 2 3 4 Symbol Table  Translation of a statement

1-4. Compiler Organization Logical organization (phase) Physical organization (pass) Single Pass Multi pass 속도 증가 메모리 많이 사용 속도 저하 메모리 적게 사용