일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 가상메모리
- 컴파일러
- 클래스
- DB
- 오픈소스웹소프트웨어
- Linear Algebra
- 운영체제
- 언어모델
- 객체지향설계
- 소프트웨어공학
- 벡터
- C언어
- 정보검색
- css
- 자연어처리
- 데이터베이스
- 애자일
- 파싱
- 데이터분석
- 스케줄러
- Agile
- 컴파일
- 836
- NLP
- React
- 파싱테이블
- 웹소프트웨어
- OS
- 프로세스
- 랩실일기
- Today
- Total
목록컴파일러 (15)
observe_db
보호되어 있는 글입니다.
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) 비 단말에서 생성규칙을 선택할 경우, 주어진 입력에 맞지 않..