4. 어휘 분석(Lexical analysis)

Slides:



Advertisements
Similar presentations
유클리드 이후의 그리스 수학. 아르키메데스 ( 기원전 ) 죽은 뒤 묘비위에 원기둥에 내접한 구 모형을 만 들어 달라고 저서 : 평면기하에 관한 것 ① 원의 측정 - π 를 계산 하는 고전적인 방법을 처음시도 ② 포물선의 구적법 - 24 개의 명제로 구성,
Advertisements

내 마음의 버 스 이천신하교회 청년부. 이름 : 한상훈 나이 : 30 살 종교 : 기독교 ( 모태신앙 ) 생활신조 : 인생은 한방 ! 로또나 사자 이상형 : 청순 가련한 모태미녀 특이사항 : 걸그룹 노래에 환장함 식스팩을 갖기엔 슬픈 몸을 타고 남.
독서골든벨 2009 학년도 6 학년 1 학기 6-10 반. 1. 이야기 삼국유사 정대한 원효대사는 수행을 위해 떠나던 중 피곤하여 숲 속에서 잠이 들었다. 잠결에 너무 목이 마른 나머지 어디에 담겨있는 물을 맛있게 마셨나요 ?
아름다운 지역공동체를 만들어가는.  목적 본관은 풍부한 인적, 물적 자원을 동원하여 소외계층에게 보호서비스의 제공, 자립능력 배양을 위한 교육훈련, 가족기능강화, 나아가 주민상호간 연대감조성 등 전문적, 종합적 사회복지서비스를 제공함으로써 소외계층과 지역주민이 더 불어.
1 大邱科學大學校 / 測地情報科 토지구획정리론 제 1 강 토지구획정리의 배경과 발전 제 1 절 토지구획정리의 의의 제 2 절 토지구획정리의 배경 제 3 절 토지구획정리기법의 개발 제 4 절 토지구획정리의 도입 발전 제 5 절 토지구획정리의 시대적.
두 손 들고 두 손 들고 찬양합니다 두 손 들고 찬양합니다 다시 오실 왕 여호와께 다시 오실 왕 여호와께 두 손 들고 찬양합니다 두 손 들고 찬양합니다 다시 오실 왕 여호와께 다시 오실 왕 여호와께 오직 주만이 나를 다스리네 오직 주만이 나를 다스리네 나 주님만을.
명륜종합사회복 지관. * 강사 : 소 찾는 아이 작가 이상희, 김매화 팀장 외 * 북아트란 : 논술교육의 중요성, 자유로운 사고, 창 의력, 논리력 * 준비물 : 색연필, 사인펜, 연필, 지우개, 딱풀, 가위.
Marketing Research 1  군집분석의 개념과 적용  군집분석 (cluster analysis) : 다수의 대상들 ( 소비자, 제품, 기타 ) 을 그들이 소유하는 특 성을 토대로 유사한 대상들끼리 그룹핑하는 다변량 통계기법 → 군집내의 구성원들은 가급 적.
내 손 내 손과 친구 손을 그려보세 요. 주제 : 유치원과 친구 활동명 : 친구 손과 내 손 친구 손.
Lexical Analysis 1 컴파일러 입문 제 4 장 어휘 분석. Lexical Analysis Page 2 목 차목 차목 차목 차 4.1 서론 4.2 토큰 인식 4.3 어휘분석기의 구현 4.4 렉스 (Lex)
지금은 기도 하는 시간입니다 1. 송구영신예배를 위해서 2. ‘크리스마스 이브’ 행사를 준비하는 교육 기관을 위하여
성결 어린이 영등포교회 유년부 정답은 뒷면에 제 11-31호 2011월 8월 14일 어디로 가세요?
청년일자리, 어떻게 해결할 것인가? 이 병 훈 (중앙대 사회학과) 사회경제정책포럼 발제문
낙안효자실버빌 사업계획(안) [2016년] 전남 순천시 낙안면 읍성로 320 TEL
Ⅵ. 빛(단원학습목표).
공교육 정상화 및 선행학습 금지 학부모 연수 부천송일초등학교.
변비 재활전문센터 재활 간호사 김은화.
YACC 응용 예 Desktop Calculator.
해시 함수.
암 보다 더 무서운 당뇨 2010년 [아시아경제 강경훈 기자 ].
현대사회의 여성문제와 여성복지 3조 권경욱 강향원 황대인 변갑수 박창욱 김지현.
Q & A (사실상 혼인·이혼) Q. 사실상 혼인·이혼 관계를 어떻게 처리해야 하나요?   사실 혼인·이혼은 부부 모두 동의 여부를 확인하고, 자녀, 이·통·반장으로부터 「사실(이)혼 확인서」를 징구해야 합니다. 만약 어느 한쪽이 동의하지 않는 경우는.
2010 여름교육 BCM VACAZINE 운영가이드
통로이미지㈜ 마케팅실 신입/경력 모집 ◎ 모집부분 및 자격요건 ◎ 채용인원 ◎ 전형절차 ◎ 제출서류 ◎ 연봉 ◎ 사전인터뷰
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
커뮤니케이션 스킬 UP -전화매너- ..
고교평준화의 득과 실 김영주 이지영 최윤영.
전산회계1급 기출 50회 신성대학교 세무부동산과 김상진.
주요추진업무 1. 청년학교 등 청년정책 프로그램 운영 청년학교 운영, 커뮤니티 디자이너 양성 등의 프로그램 운영을 통해
제 8 장  파서 생성기 YACC 사용하기.
4장 구문(Syntax).
2. 형식언어 (Formal Language)
4장 어휘 / 구문 분석 (Term project 포함)
제  3 장  Lex 사용하기.
영덕풍력발전단지 준공 기념식 행사(안) 경영기획실.
에너지 운동량 방법: 일과 에너지법칙 1. 상자들이 초기속도 vo로 컨베이어 벨트로 운반되어 A에서 미끄러져서 B에서 떨어진다. μk= 0.40이고, 상자가 2.4m/s로 B점에서 떨어질 때 컨베이어 벨트의 속도를 구하라.
제 11장 교락법과 일부실시법.
2010년 직원연수 자료 제1차 : 4월 16일 ~ 17일 제2차 : 4월 23일 ~ 24일

7장: 빛의 간섭과 회절 빛의 간섭 단일슬릿과 회절 회절격자 – 더 선명해진 간섭무늬.
우리생활속의 확률 이용사례탐구 한림초등학교영재학급 6학년 김수민.
알기쉬운 시설공사(2) 경상북도교육청 이형주.
3. 게이트레벨 최소화.
평행사변형의 성질 사각형 ABCD 사각형 ABCD → 기호: □ABCD 대변: 마주 보는 변 대각: 마주 보는 각
김포 한강베네치아 상가분양 3층~5층 오피스텔 226세대 1층~2층 상가 분양문의 : 이효철( )
고구려,백제,신라의 건국과 발전 Start!
과학 탐구 토론 대회 1학년 2반 박승원 1학년 5반 권민성.
우리는 부모를 닮지만, 왜 똑같지는 않을까? 유전적 다양성 독립 연관과 교차 무작위 수정.
탐구하는 수학연습문제 수학 8나 대한 114쪽 Ⅲ. 도형의 닮음
3. 정규 언어(Regular Language)
3.2 학교수학의 목표 수 학 과 신 원 경.
5장 품질비용 품질비용의 중요성 품질비용의 정의 품질비용의 측정 활동기준원가계산 품질비용 계산 품질비용 측정의 문제점 A B
도형의 닮음 Ⅵ-1 도형의 닮음 (1) 닮음과 닮은 도형 닮음
Chapter 5. 자료의 연산과 논리회로 e-learning Computers.
Term Project 수행 안내 2011년 2학기 컴파일러.
4. 어휘 분석(Lexical analysis)
nauten Compiler – Report Ver.3 Mini-C (주간)
평 면 도 형 도형의 작도 삼각형의 작도와 결정조건 도형의 합동 작도와 삼각형의 합동 학습내용을 로 선택하세요
마음의 성전이 더 아름다운 조촌교회.
1.비 사업용(자가용 및 관용) 차 종 적 용 상 의 구 분 승합 자동차 (버스) 1 종
집합의 연산 총정리 수학 7-가 집합과 자연수 > 집합 > 9/20 수업계획 수업활동 [제작의도]
수학8가 대한 113~114 쪽 Ⅴ. 부등식 2. 일차부등식 §2.연립부등식(7/10) 연립부등식의 풀이.
물체 나타내기 기술ㆍ가정 1학년 Ⅳ . 제도의 기초 〉 1.물체를 나타내는 방법 (7 / 8) 1. 제작의도 2. 활용방법
기술가정 2학년 1학기 2.재료의 이용>1) 목재,플라스틱,금속재료의 특성>11/15제품의 구상
진리 나무 Truth-tree  ∧ ∨ → ↔  =.
엔화 대환/대출 자금용도 대상 이자 차액 효과 (A,B,C) 환율 리스크 헷징 (A,B) 엔화의 평균환율 (A,B,C)
엑셀2013의 화면구성 워크시트의 열 이름(A열~XFD열, 총 16,384열) 워크시트의 행 번호(1행~1,048,576행)
나-는 믿음으로 주 얼굴 보리니- 아침에 깰 때에 주형상에 만족하리 나주님 닮기 원하네 믿음으로 주얼굴 보리라 -
논증의 타당성/부당성 검증 Verification/Falsification
프로그래밍 기법 최적화 프로그래밍.
Presentation transcript:

4. 어휘 분석(Lexical analysis) 4-1. 정 의 4-2. 토큰 인식 4-3. 어휘분석기의 구현 4-4. 렉스(Lex)

4-1. 정 의 정의 스캐너 (Scanner) 원시프로그램을 하나의 긴 문자열로 보고 차례대로 문자를 4-1. 정 의 정의 원시프로그램을 하나의 긴 문자열로 보고 차례대로 문자를 검사하여 문법적으로 의미 있는 최소의 단위로 분할 해내는 것 스캐너 (Scanner) 원시 프로그램을 토큰으로 분리하는 부분

토큰(Token) 일반 형태 특수 형태 명 칭 상 수 지정어 연산자기호 구분자 : l(l+d)* 문법적 최소단위 형태 일반 형태 특수 형태 명 칭 상 수 지정어 연산자기호 구분자 : l(l+d)* : 526, 2.3, ‘string’등 : begin, end, for, goto등 : +, -, *, /, <, := 등 : ;, , , (, [, :등

토큰번호 토큰값 lexeme 각 토큰들을 효율적인 처리하기 위해서 고유의 내부번호 토큰이 프로그래머가 사용한 값을 가질 때 그 값을 말한다 명칭의 토큰값은 그 자신의 스트링 값 상수의 토큰값은 그 자신의 상수 값 예제 if X < Y then X :=10; (29,0) (1,X) (18,0) (1,Y) (35,0) (1,X) (9,0) (2,10) (7,0) (1,10) : X (1,20) : Y lexeme Symbol table

4-2. 토큰 인식 설계 시 주의사항 상태전이도 프로그래밍 언어의 각 토큰의 구조를 기술 할 때 이용되는 방법인 정규표현을 알고 있어야 하며, 이것들을 식별하기 위한 인식기가 필요한데, 인식기를 설계하는 방법인 상태 전이도와 유한 오토마타를 사용 상태전이도 유한 오토마타를 그림으로 표현한 흐름도로 어떤 모양의 토큰을 인식 할 수 있는지를 쉽게 알 수 있는 그림

S A start l, d l  명칭의 인식 S = l(l+d)*  정수의 인식 C B + - d S = ‘+’d+ + -d+ + dd* = (‘+’+ - + )d+

 실수의 인식 A S B C F G D E start d . e + - S = d+.d+ + d+.d+e(+’+’+ - )d+  스트링의 인식 ´ c S = ´(c + ´ ´)*´

4-3. 어휘분석기의 구현 미니 파스칼에 대한 어휘분석기 구현 특수 심벌 단어 심벌

4 25 21 18 12 7 1 6 2 22 19 8 11 5 28 32 26 3 13 29 23 15 24 9 31 16 20 14 17 30 27 10 Look up keyword Table A B 출발 b l/d l not l/d not found found d not d ident exit keyword exit number exit ( * not * ) not) and not* not* < > = not >,= not = : . not . + - ; , [ ]  미니 파스칼의 상태전이도

4-4. 렉스(Lex) 정의 기능 렉 스 어휘 분석기 1975년에 레스크에 의해 발표된 어휘분석기 생성기 사용자가 정의한 정규 표현과 실행코드를 입력 받아 C언어로 쓰여진 프로그램 출력 렉 스 어휘 분석기 일련의 토큰들 입력 스트림 렉스 입력

렉스의 입력 <정의부분> %{ 실행코드를 C언어로 기술할 때 필요한 자료구조, 변수 상수 }% 이름 정의 부분 %% : 특정한 정규표현을 하나의 이름으로 정의하여 그 형태의 정규표현이 필요 할 때만 쓸 수 있도록 해주는 부분 %% <규칙부분> :토큰의 형태를 표현하는 정규표현과 그 토큰이 인식되었을 때 처리할 행위를 기술하기 위한 부분인 실행코드 <사용자 부 프로그램 부분> : 렉스의 입력 작성시 사용되는 부 프로그램들을 정의

렉스의 정규표현 렉스에서 사용되는 연산자 “ \ [ ] ^ - ? . * + | ( ) $ / { } % < > “ \ [ ] ^ - ? . * + | ( ) $ / { } % < > “ : “ 사이에 있는 모든 문자는 텍스트문자로 취급 예) ( a“*”b = a * b )  ( a * b = a*b ) \ : 한 개의 문자를 에스케이프 하기 위하여 사용 예) XYZ“++”, “XYZ++”, XYZ\+\+ [] : 문자들의 클래스를 정의하는데 사용 예) [abc] : a, b, c중에서 한문자 - : 범위를 나타내는 연산자 문자 예) [a-z] : a부터 z사이의 문자 중에 한문자 ^ : 여집합을 표현 예) [^*] : *를 제외한 모든 문자 \ : C언어의 에스케이프 문자열로 간주 예) [ \t\n] : 공백, 탭, 개행 문자중의 하나

예) [a-zA-Z][a-zA-Z0-9]* : 변수 인식을 위한 정규표현 + : 한번 이상 반복 할 수 있음을 의미 * : 0번 이상 반복을 의미 예) [a-zA-Z][a-zA-Z0-9]* : 변수 인식을 위한 정규표현 + : 한번 이상 반복 할 수 있음을 의미 예) [a-z]+ : 모든 소문자 문자열을 인식하는 정규표현 ? : 선택을 의미 예) ab?c : abc 또는 ac | : 택일을 위한 연산자 예) (ab | cd) : ab 또는 cd (ab | cd+)?(ef)* : abefef, efefef, cdef, cddd ^ : 라인의 시작을 인식 예) ^abc : 라인의 시작에서 abc가 있을 때만 토큰으로 처리 $ : 라인의 끝에서만 인식 / : 접미 문맥을 명시할 때 사용 예) ab/cd : ab다음에 cd가 이어서 있을 때만 ab를 토큰으로 처리 . : .는 newline문자를 제외한 모든 문자들 예) “- -”.* : - -부터 한 라인의 끝까지와 부합 {} : 정의된 이름을 치환식으로 확장 할 때 사용

렉스의 실행코드 총괄변수와 함수 yyleng : 매칭된 문자열의 길이를 저장하고 있는 변수 yymore() : 현재 매칭된 문자열의 끝에 다음에 인식될 문자열이 덧붙여 지도록 하는 함수 yyless(n) : n개의 문자만을 yytext에 남겨두고 나머지는 다시 처리 하기 위하여 입력 스트림으로 되돌려 보내는 함수 input() : 입력 스트림으로부터 다음 문자를 읽는 함수 output(c) : 출력 스트림으로부터 문자 c를 내보내는 함수 unput(c) : 함수 input()에 의해 다시 읽혀지도록 문자 c를 입력 스트림으로 되돌려 보내는 기능을 하는 함수 yywrap() : 렉스가 입력의 끝을 만났을 때 호출하는 함수 정상적인 경우에 복귀값은 1이다.

스캐너의 생성 및 동작 lex cc 스캐너의 생성과정 렉스의 선택규칙 lex.yy.c 렉스 입력 스캐너 lex library 가장 길게 인식된 토큰을 우선으로 한다. 인식될 수 있는 토큰의 길이가 같은 경우 먼저 나타난 규칙의 정규 표현으로 인식한다. lex cc lex.yy.c 렉스 입력 스캐너 lex library