일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 클래스
- 소프트웨어공학
- 운영체제
- 프로세스
- 랩실일기
- Linear Algebra
- React
- NLP
- 언어모델
- 정보검색
- 자연어처리
- Agile
- OS
- 데이터베이스
- 벡터
- css
- 웹소프트웨어
- C언어
- 데이터분석
- 컴파일러
- 파싱테이블
- 836
- 오픈소스웹소프트웨어
- 애자일
- DB
- 가상메모리
- 객체지향설계
- 파싱
- 컴파일
- 스케줄러
- Today
- Total
목록학교 공부/컴파일러(3-1) (15)
observe_db
4/7 Lex(A Lexical Analyzer Generator) 입력된 정규표현과 명령을 프로그램 언어로 변환 yylex 함수는 입력 문자열에서 정규표현을 인식하고 발견된 각 정규표현에 해당되는 특정 명령들을 실행한다. [1] 소스 형식(*.l) definition //정의 %% rules //규칙 %% //이하 생략 가능 user routines // 사용자 부 프로그램 definitions: 선언부+ 마크로 정의 선언부 %{ }% 사이의 코드 Lex에 의해 아무 처리 없이 lex.yy.c의 앞부분에 복사 매크로 정의 Lex 규칙의 정규 표현에 사용할 표현을 미리 정의(간단하게) 중괄호 안에 매크로 정의 포함하여 사용. 규칙(rules) 문법 규칙을 표현 규칙에 대해 처리해야 할 명령어 나열 rul..
3/24, 3/30 어휘분석기의 역할 주) 입력 문자열을 읽어 토큰의 생성 부) 빈공간 제거, 오류메시지와 소스 프로그램 연관 선형 분석(스캐닝)- 문장을 token 단위 분리 식별자와 키워드 인식 키워드: 프로그램 언어에서 특수 의미를 가지는 문자열(예약어와 식별자 구분) 심벌테이블 이용: 식별자의 실제 문자 값(렉심)과의 연결(파서에는 실제 문자열 값을 넘김) lexeme(어휘소, 렉심): 하나의 토큰을 만들어내는 연속적인 입력 문자들 상수 처리 여백과 주석 제거 입력버퍼 처리 토큰 번호 부여(파서와 통신) 분리의 목적 간단한 설계 컴파일 효율 향상 이식성 증가 패턴: 동일한 토큰 값을 갖는 문자열 집합 렉심(lexeme): 패턴에 적합한 문자들의 나열 토큰 구분 요소 자유 입력 형식: 구성요소가 라..
3/23, 3/24 상향식 파싱(Bottom-up Parsing) 이동 축소 파싱(shift-reduce parsing)과 동일 축소 과정을 반복하여 파싱 축소: 생성규칙의 오른쪽과 일치하는 부분 문자열을 왼쪽의 기호로 대체(A->BC면 BC를 A로 대체) 맨 오른쪽 유도(right most derivation)의 역순 핸들 생성규칙의 오른쪽과 일치하는 부분문자열 S=>aAw=>abw b는 A->b의 규칙에 해당하는 핸들 w는 모두 단말기호들만으로 구성 핸들가지치기(handle pruning): 핸들을 발견하여 왼쪽의 문법기호로 계속 대체하여 파스트리를 축소(시작기호까지 축소) 스택을 이용한 이동 축소 파싱 동작 스택이 빈 상태에서 입력문자열을 하나씩 스택 이동(shift) 스택의 맨 위에 핸들 B가 오..
파싱(Parsing) 하향식(Top Down) 파스트리를 루트에서 시작하여 아래로 쓸만한 파서를 쉽게 만들수 있지만, 속도가 느리고, 복잡한 경우는 어려워짐 상향식(Bottom Up) 파스트리를 리프에서 시작하여 위로 넓은 범위의 문법과 번역 계획 처리 가능 문법 예시 type -> simple | ^id | \(\epsilon\) simple -> integer | char | num dotdot num 예측 파싱법(순환적 내림차순 파싱법(Recursive-descent parsing) 예측기호(lookahead)를 이용하여 파싱시에 백트랙킹을 하지 않는 방법 입력을 처리하는 프로시저들의 실행 순서가 바로 파스트리로 백트랙(backtrack) 비 단말에서 생성규칙을 선택할 경우, 주어진 입력에 맞지 않..