generated from Pseudo-Lab/Jupyter-Book-Template
-
Notifications
You must be signed in to change notification settings - Fork 18
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
58 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
# 4주차 | ||
### 목차 | ||
1. [Lexer](#lexer) | ||
2. [중요한 용어들](#중요한-용어들) | ||
3. [미션](#미션) | ||
- [instaviz로 AST 시각화 해보기](#instaviz로-ast-시각화-해보기) | ||
- ["거의 같음" 연산자를 문법에 추가하고 AlE 타입의 객체를 출력해보기](#거의-같음-연산자를-문법에-추가하고-ale타입의-객체를-출력-해보기) | ||
|
||
|
||
<br><br><hr> | ||
|
||
|
||
### Lexer | ||
Lexer는 Tokenizer로 쪼개진 토큰들의 의미를 분석하는 역할을 한다. | ||
Tokenizer를 거치며 의미있는 단위로 쪼개지고, | ||
Lexer를 거치며 그 의미를 분석하는 과정을 통틀어서 Lexical Analyze라고 한다. | ||
|
||
> 예를 들어 return 명령어를 분석해보자. | ||
> - return이라는 단어에서 r, e, t, u, r, n은 각각 따로 놓고 보면 아무 의미도 가지지 않는다. | ||
> - Tokenizer를 거치며 return이 의미 있는 단어가 된다. (Tokenizing) | ||
> - Lexer를 거치며 이 토큰은 무언가를 반환하는 명령어임을 인지하게 된다. | ||
> | ||
> 위 과정을 거치며 생성된 오브젝트 {type: 명령어, value: "return", child: []}가 Parser에 전달된다. | ||
<br> | ||
|
||
- Tokenizer : 구문에서 의미 있는 요소들을 토큰으로 쪼깸 | ||
- Lexer : 토큰의 의미를 분석 | ||
- Parser : Lexical analyze된 후의 리턴값인 CST를 AST로 바꿔줌 | ||
|
||
|
||
<br><br><hr> | ||
|
||
### 중요한 용어들 | ||
|
||
| 용어 | 설명 | | ||
|----------| -------------------------------------------------| | ||
|AST | 파이썬 문법과 문장들에 대한 문맥(Context) 있는 트리 표현 | | ||
|CST | 토큰과 심볼에 대한 문맥(Context)이 없는 트리 표현 | | ||
|Parse Tree | CST의 다른 이름 | | ||
|Token | 심볼의 종류 중 하나 | | ||
|Tokenizing | 텍스트를 토큰들로 변환하는 과정 | | ||
|Parsing | 텍스트를 CST나 AST로 변환하는 과정 | | ||
|
||
<br><br><hr> | ||
|
||
### 미션 | ||
#### instaviz로 AST 시각화 해보기 | ||
|
||
<img width="650" alt="image" src="https://github.com/wooy0ng/wooy0ng/assets/37149278/72258beb-29b9-4703-b936-6f8418d34b7a"> | ||
|
||
|
||
<br><br><hr> | ||
|
||
#### ‘거의 같음’ 연산자를 문법에 추가하고 AlE타입의 객체를 출력 해보기 | ||
|
||
<img width="650" alt="image" src="https://github.com/wooy0ng/wooy0ng/assets/37149278/9414665a-5e55-40a8-ac1a-7831d657014e"> | ||
|