일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 컴파일러
- 스케줄러
- OS
- 웹소프트웨어
- 가상메모리
- 자연어처리
- css
- 랩실일기
- 836
- NLP
- 도커
- 데이터분석
- C언어
- 컴파일
- 운영체제
- Linear Algebra
- 자료구조
- 파싱테이블
- 오픈소스웹소프트웨어
- 클래스
- 데이터베이스
- 정보검색
- 언어모델
- DB
- 소프트웨어공학
- React
- 객체지향설계
- 프로세스
- docker
- 파싱
- Today
- Total
목록컴파일러 (15)
observe_db
3/9 컴퓨터 언어의 정의 언어 구문: 일반적으로 문맥자유문법(CFG: context free grammar)이나 BNF(Backus-Naur Form)으로 표현 언어 의미: 표현의 어려움(설명 및 예제 사용) 문맥 자유 문법의 구성 요소 CFG: ∑: 단말 기호(토큰의 집합) N: 비단말의 집합 S: 생성 규칙 P: 출발기호(비단말의 특수한 경우) 생성규칙(production rule) 왼쪽 문법 기호가 오른쪽 문자열을 생성한다. ex) stmt--> if(expr) stmt else stmt ex) list -> list + digit | list - digit | digit ex) digit -> 1|2|3|4|5|6|7|8|9 언어: 생성 규칙에 따라 만들어진 토큰 열 ex) 9-5+2, 3-1 ..
3/3 컴파일러(compiler): 어떤 언어(source language)로 쓰여진 프로그램을 input으로 하여 대등한 다른 언어(target langugage) 프로그램으로 바꿔주는 프로그램. 보통은 고급어->저급어. 컴파일 단계 어휘 분석 구문 분석 의미 분석 중간코드 생성 코드 최적화 코드 생성 1. 어휘 분석(Lexical analysis) -선형 분석, 스캐닝 -문장을 토큰 단위로 분리 심볼테이블이 이용된다. 2. 구문분석(Syntax analysis) - 계층적 분석, 파싱 - 프로그램 토큰들을 문법적 형태인 파스 트리 형태로 표현 -반복적 규칙들에 의해 표시 3. 의미 분석(Semantic analysis) -소스 프로그램의 의미 오류 검사 -타입 조사 및 정보 정리 -ex) 배열 첨자에..
3/2 컴파일러는 보다 체계적이다. 문법을 정의해야 함. 파씽(구문분석)으로 기계어로 변환한다. 컴파일러 만드는 개별 프로젝트 있음. 교수님의 본 전공은 자연어처리(NLP, National Language Processing) 둘 다 사람말을 분석한다. 컴파일러: 프로그래밍언어=> 기계어 자연어처리: 자연어=>이해 어셈블리는 무척 효율적이고 효과적이나 (굉장히) 어려움. 컴파일러 만드는 툴(flex등)을 이용할 예정 기말은 매년 유사한 문제. 1-8주(전반부): 컴파일러가 무엇인지, 예제중심의 이해 9-15주(후반부): 이론 강의 후반부는 프로젝트까지 해서 매우 바쁠 것!