Wireless Location and SOC Lab.

Slides:



Advertisements
Similar presentations
Ⅰ. 연산자 Ⅱ. 제어 구조. 연산자 : 할당 연산자 - 사용자가 정의한 변수에 임의의 값을 저장하는 기능 strvar = strVar1+ “ Hello ”
Advertisements

품사. 의미 기능형태 기능에 따라 분류해 봅니다 조사와 결합하는데 ? 형태가 변하지 않아 ^^ 체언.
제철고 프로그래밍언어 2015 가을학기 연습 #1 Python 연산식 이다훈 POSTECH 컴퓨터공학과 2015 년 9 월 23 일.
파이썬 (Python). 1 일 : 파이썬 프로그래밍 기초 2 일 : 객체, 문자열 3 일 : 문자인코딩, 정규표현식, 옛한글 4 일 : 파일 입출력 5 일 : 함수와 모듈 6 일 : 원시 말뭉치 다루기 실습 7 일 : 주석 말뭉치 다루기 실습 8 일 : 웹 데이터로.
Python Ch.06 RaspberryPi Sejin Oh. Raspberry Pi Python  IDLE(Integrated Development Environment)  라즈베리 파이 배포본들은 일반적으로 파이썬과 파이썬 3 의 IDLE 파 이썬 개발 도구를.
문자코드 1 박 2 일 (4 조 ) 이경도 이준집 이수연 엄태규. 문자코드란 ? 문자나 기호를 컴퓨터로 다루기 위하여, 문자나 기호 하나하나에 할당 시키는 고유의 숫자를 말하는 것이다.
재료수치해석 HW # 박재혁.
지난 시간 지방재정 개념 자치단체 국가재정과 비교.
Term Project iTUTOR를 이용한 PIC 동작 검증 보고서와 모든 소스코드 압축하여 제출
DB 프로그래밍 학기.
DB 프로그래밍 학기.
(1.1 v) 엔트리교육연구소 엔트리 카드게임 설명서.
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
기본 컴퓨터 프로그래밍 Lecture #6.
Chapter 7. 조건문.
제 9 장 구조체와 공용체.
Kasimov C언어 세미나 1st.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
제 6장. 생성자와 소멸자 학기 프로그래밍언어및실습 (C++).
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
Computer Architecture
Chapter 06 명령어와 번지지정 방식.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
A1. 결정구조학자가 아니라면, International Centre for Diffraction Data
Homework #5 (1/3) 다음을 수행한 후, 결과 파일들을 출력하여 제출한다.
Lecture 01: Compiler Overview
MATLAB
JA A V W. 03.
어서와 C언어는 처음이지 제14장.
5. Context-free 문법 5-1. 서 론 5-2. 유도와 유도 트리 5-3. CFG표기법.
Chap 6.Assembler 유건우.
인터넷응용프로그래밍 JavaScript(Intro).
13. 포인터와 배열! 함께 이해하기 IT응용시스템공학과 김 형 진 교수.
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
3장. 변수와 연산자 교안 : 전자정보통신 홈페이지 / 커뮤니티/ 학술세미나
Term Projects 다음에 주어진 2개중에서 한 개를 선택하여 문제를 해결하시오. 기한: 중간 보고서: 5/30 (5)
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
포인터 1차원 배열과 포인터 2차원 배열과 포인터 문자열 배열과 포인터 포인터 배열
제 9장 트랜스레이터.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
3D 프린팅 프로그래밍 05 – 반복패턴 만들기 강사: 김영준 목원대학교 겸임교수.
자바 5.0 프로그래밍.
5장 선택제어문 if 선택문 switch-case 선택문 다양한 프로그램 작성 조건 연산자.
3강. 컴퓨터와의 기본적인 소통수단 - I 연산자란? 컴퓨터와 소통하기 위한 다양한 방법들
텍스트 분석 기초.
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
장애인단체 간담회 마스터 제목 스타일 편집 마스터 제목 스타일 편집 장애인 단체 간담회 마스터 부제목 스타일 편집
제 15 강 문자와 코드 shcho.pe.kr.
에어 PHP 입문.
2장 PHP 기초 PHP의 시작과 끝을 이해한다. 주석문에 대하여 이해한다. echo 문을 이용하여 화면에 출력하
Flow Diagram IV While.
ARM Development Suite v1.2
기초C언어 제2주 실습 프로그래밍의 개념, 프로그램 작성 과정 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
Chapter 10 데이터 검색1.
공학도를 위한 C언어 프로그래밍실습1 -통합개발환경 사용법-
TVM ver 최종보고서
16장. 변수, 연산자, 사용자 정의 함수 변수 배열과 객체 연산자 함수.
제 22 강 논리식 및 논리 값 shcho.pe.kr.
Numerical Analysis Programming using NRs
왜 ‘프로그래밍’을 ‘비이공계 학생’이 알아야 하는가?
윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 05. 복사 생성자.
만 입이 내게 있으면 / 찬양하라 복되신 만 입 이 내 게 있 으 면 그 입 다 가 지 고.
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
Docker Study 6~7.
Machine architecture Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Chapter 2.
제 10 강 문자 입출력.
2019 2학기 9장 배열과 포인터 1. 주소, 주소연산자(&) 2. 포인터, 역참조연산자(*) 3. 배열과 포인터.
Presentation transcript:

Wireless Location and SOC Lab. Ch.1 Compiler Jong-Wha Chong Wireless Location and SOC Lab. Hanyang University

SoC & Wireless Location Lab. Compiler의 정의 Compiler “고급프로그래밍 언어로 쓰여진 Program을 기계언어 (Machine oriented lagnguage)로 번역하기 위한 Program” Compiler Source program Object program SoC & Wireless Location Lab.

SoC & Wireless Location Lab. Compiler의 역사 1956 ~ 1958 : IBM의 704의 Fortran용 개발에 25人·年 목표 Object 프로그램 실행 시 능률 중시 - Compile 하는 것은 1회이나 Object Program은 여러 번 실행 Compile 중시 - Debugging 사이에는 몇 회라도 Compile해야 함. 즉, 수정의 필요성이 증가) →TSS(Time Sharing System) 1960 : ALGOL 60 Backus normal form SoC & Wireless Location Lab.

SoC & Wireless Location Lab. Compiler의 예(1) Compiler의 예 ( ABC := E * 3.14 + ABC / E ; ) Address Instruction or Data Description 100 LOAD 201 ( 201 ) → ACC 101 MULT 150 ( ACC ) * ( 150 ) → ACC 102 STORE 160 ( ACC ) → 160 103 LOAD 200 ( 200 ) → ACC 104 DIV 201 ( ACC ) / ( 201 ) → ACC 105 ADD 160 ( ACC ) + ( 160 ) → ACC 106 STORE 200 ( ACC ) → 200 : 150 3.14 ABC=E*3.14+ABC/E. 160 작업용 Address 200 ABC의 값 201 E의 값 (n) : n번지의 내용 ACC : Accumulator → n : n번지에 store → ACC : ACC에 넣음 SoC & Wireless Location Lab.

SoC & Wireless Location Lab. Compiler의 예(2) (a) 변수명 표 ABC 1 Stack (1, 0) : = 1 (1, 0) // (변수명표, 변수명표의 번지) (b) 변수명 표 ABC 1 E Stack (1, 0) : = 1 2 3 (1, 1) * 이미 stack에 넣어져 있는 “:=” 연산보다 “*”의 연산을 먼저 해야하므로 “*”을 “:=” 위에 쌓았다. SoC & Wireless Location Lab.

SoC & Wireless Location Lab. Compiler의 예(3) (c) 정수 표 3.14 Stack (1, 0) : = 1 2 3 4 (1, 1) * (2, 0) (2, 0) // (정수표, 정수표 중의 0번지) ABC := E*3.14 + ABC/E; 다음 단계로 “+”를 stack에 넣으려 할 때 stack 중 가장 최근에 써 넣은 연산자중 “+”보다도 *의 쪽이 연산순위가 높으므로 E*3.14 즉 (1, 1)*(2, 0)의 연산을 해야하므로 SoC & Wireless Location Lab.

SoC & Wireless Location Lab. Compiler의 예(4) 명령 번지 100 101 MULT (2, 0) LOAD (1, 1) (d) 연산의 결과는 Acc에 있음 Stack의 내용 (1, 1)*(2, 0) -> (3, 0)치환 Accumulator의 switch 2 Stack (1, 0) : = 1 2 (3, 0) Acc에 값이 들어있음을 알림 (3, 0) ↑ ACC Stack (1, 0) : = 1 2 3 (3, 0) + Stack의 내용이 (3, 0)으로 변한 시점에서 stack 중의 연산자를 비교, “:=” 는 “+”보다도 나중에 행하여야 하므로 “+” 를 stack에 쌓음 SoC & Wireless Location Lab.

SoC & Wireless Location Lab. Compiler의 예(5) (e) Stack (1, 0) : = 1 2 3 4 5 (3, 0) + ABC:= E*3.14+ABC/E; 다음 “ABC”, “/” ↑이미 변수명표에 (1, 0) 들어있으므로 다시 stack에 넣음 stack 중의 연산자 “+”는 “/”보다 후에 실행해야하므 stack에 넣음 최후로 “E;”를 보고 stack에 (1, 1)을 넣음 ↑ statement의 끝 “;”보다 “/”의 쪽이 우선이므로 (1, 0)/(1, 1)을 연산하는 명령을 생성해야 함 그러나 Acc의 switch를 보면 전 명령의 실행 data를 갖고 있음 SoC & Wireless Location Lab.

SoC & Wireless Location Lab. Compiler의 예(6) (f) 102 STORE (4, 0) (4, 0) ←작업용 번지 위 0번 작업용 번지의 counter 1 Stack 2번지 내용을 (4, 0)으로 교체 ↑Acc SW를 보면 알 수 있음 103 104 D I V (1, 1) LOAD (1, 0) Stack (1, 0) : = 1 2 (4, 0) + (3, 0) Accumulator의 switch 4 (3, 0) ↑Acc의 표시 다시 “+”와 “:=”비교 SoC & Wireless Location Lab.

SoC & Wireless Location Lab. Compiler의 예(7) 105 ADD (4, 0) Stack (1, 0) : = 1 2 (3, 0) 106 STORE (1, 0) 100 101 102 104 105 106 LOAD (1, 1) MULT (2, 0) STORE (4, 0) LOAD (1, 0) DIV (1, 1) ADD (4, 0) STORE (1, 0) SoC & Wireless Location Lab.

SoC & Wireless Location Lab. Compiler의 예(8) (g) 정수표의 선두번지 : 150 작업용의 선두번지 : 160 변수표 ABC : 200 변수표 E : 201 (h) 한 명령을 각각 조사하여 각 명령의 번지부가 ( 1, n )이면, 변수명표의 n번의 우측에 있는 수 ( 2, n )이면, 정수표의 번지 + n ( 4, n )이면, 작업용표의 선두번지 + n 을 각각 그 번지부에 써 넣으면 된다. 1 ABC 200 E 201 SoC & Wireless Location Lab.

SoC & Wireless Location Lab. Compiler의 구성요소 Step1) Source program의 읽어들임 Step2) Source program을 기본적 요소로 나눈다. ex) ABC := E * 3.14 + ABC / E ; Step3) 표의 조작 변수명 표, 정수명 표 Step4) 구문의 해석 (Parsing) 단어로부터 문(statement)이 어떻게 구성되어 있는가를 조사 SoC & Wireless Location Lab.

SoC & Wireless Location Lab. Compiler의 구성요소 ;= Step5) 명령어를 만들어 냄 Step6) 번지 할당 명령어, 각 변수, 정수 , 작업용 번지 Step7) Object Protram의 생성 + ABC * / E 3.14 ABC E SoC & Wireless Location Lab.

Backus Normal Form (Backus 방식) <숫 자> := 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 <문 자> := A | B | C | D | … | Z <이 름> := <문자> | <이름> <문자> | <이름> <숫자> ex) A, AA, A9, B39D <문(文)> := <주부> <동사> <주 부> := <명사> <조사> <명 사> := 사과 | 청주 | 학생 | 꽃 <조 사> := 이 | 은 | 가 | 도 <동 사> := 놀다 | 타다 | 읽다 Backus 기법으로 나타낸 것은 문장을 어떻게 구성하는가 하는 구문 측(syntactic)을 나타냄 SoC & Wireless Location Lab.

SoC & Wireless Location Lab. 단어분류 <정 수> := <숫 자> | <정 수> <숫 자> <구별기호> := + | - | * | / | ( | ) | = < 구 > := <구별기호> | <변수명><구별기호> | <정수><구별기호> < 변수명 > := <영자> | <변수명> <영자> | <변수명> <숫 자> SoC & Wireless Location Lab.

SoC & Wireless Location Lab. 단어분류 SoC & Wireless Location Lab.