From cde0d516fcdd8efd3171e0c9deb7c6da9718981b Mon Sep 17 00:00:00 2001 From: YongWoo Lee Date: Sun, 28 Apr 2024 16:29:00 +0900 Subject: [PATCH] =?UTF-8?q?[=EC=9D=B4=EC=9A=A9=EC=9A=B0]=204=EC=A3=BC?= =?UTF-8?q?=EC=B0=A8=20=EB=AF=B8=EC=85=98=20=EC=A0=9C=EC=B6=9C=20(#51)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../4\354\243\274\354\260\250.md" | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 "8th_members/\354\235\264\354\232\251\354\232\260/4\354\243\274\354\260\250.md" diff --git "a/8th_members/\354\235\264\354\232\251\354\232\260/4\354\243\274\354\260\250.md" "b/8th_members/\354\235\264\354\232\251\354\232\260/4\354\243\274\354\260\250.md" new file mode 100644 index 0000000..db891de --- /dev/null +++ "b/8th_members/\354\235\264\354\232\251\354\232\260/4\354\243\274\354\260\250.md" @@ -0,0 +1,58 @@ +# 4주차 +### 목차 +1. [Lexer](#lexer) +2. [중요한 용어들](#중요한-용어들) +3. [미션](#미션) + - [instaviz로 AST 시각화 해보기](#instaviz로-ast-시각화-해보기) + - ["거의 같음" 연산자를 문법에 추가하고 AlE 타입의 객체를 출력해보기](#거의-같음-연산자를-문법에-추가하고-ale타입의-객체를-출력-해보기) + + +


+ + +### Lexer +Lexer는 Tokenizer로 쪼개진 토큰들의 의미를 분석하는 역할을 한다. +Tokenizer를 거치며 의미있는 단위로 쪼개지고, +Lexer를 거치며 그 의미를 분석하는 과정을 통틀어서 Lexical Analyze라고 한다. + +> 예를 들어 return 명령어를 분석해보자. +> - return이라는 단어에서 r, e, t, u, r, n은 각각 따로 놓고 보면 아무 의미도 가지지 않는다. +> - Tokenizer를 거치며 return이 의미 있는 단어가 된다. (Tokenizing) +> - Lexer를 거치며 이 토큰은 무언가를 반환하는 명령어임을 인지하게 된다. +> +> 위 과정을 거치며 생성된 오브젝트 {type: 명령어, value: "return", child: []}가 Parser에 전달된다. + +
+ +- Tokenizer : 구문에서 의미 있는 요소들을 토큰으로 쪼깸 +- Lexer : 토큰의 의미를 분석 +- Parser : Lexical analyze된 후의 리턴값인 CST를 AST로 바꿔줌 + + +


+ +### 중요한 용어들 + +| 용어 | 설명 | +|----------| -------------------------------------------------| +|AST | 파이썬 문법과 문장들에 대한 문맥(Context) 있는 트리 표현 | +|CST | 토큰과 심볼에 대한 문맥(Context)이 없는 트리 표현 | +|Parse Tree | CST의 다른 이름 | +|Token | 심볼의 종류 중 하나 | +|Tokenizing | 텍스트를 토큰들로 변환하는 과정 | +|Parsing | 텍스트를 CST나 AST로 변환하는 과정 | + +


+ +### 미션 +#### instaviz로 AST 시각화 해보기 + +image + + +


+ +#### ‘거의 같음’ 연산자를 문법에 추가하고 AlE타입의 객체를 출력 해보기 + +image +