Scanner
[Compiler] 1. Lexical Analyzer :: 구현하기
[Compiler] 1. Lexical Analyzer :: 구현하기
2020.04.09* 2020/04/09 - [Programming/Compiler] - [Compiler] 1. Lexical Analyzer :: 동작하는 방식에서 이어지는 내용입니다. Lexical Analyzer를 구현해보자 무엇을 구현해야 할까? Lexical Analyzer는 input을 읽고 토큰으로 분류를 해서 Symbol Table을 만들어야 합니다. Token들의 Pattern 그 Pattern들을 인식하는 코드 Symbol Table 1. Token들의 Pattern은 어떻게 정의할까? 정규식(Regular Expression)을 사용하면 편합니다. 특정 문자열의 패턴을 간결하면서 정확하게 표현을 하게 해주는 좋은 도구입니다. 비교를 해봅시다. 식별자 Token의 Pattern을 글로 표현한 경우 식별..
[Compiler] 1. Lexical Analyzer :: 동작하는 방식
[Compiler] 1. Lexical Analyzer :: 동작하는 방식
2020.04.09* 2019/07/30 - [Programming/Compiler] - [Compiler] 1. Lexical Analyzer :: 소개와 용어 정리에서 이어지는 내용입니다. 지난번 글에서 말했던 개념을 빠르게 복습해봅시다 더보기 Token: (Token Name, 어떤 문자들을 대표하는 Symbol)와 (Token Value, 토큰의 구체적인 속성)의 쌍 (ex) "산술연산자(+, -, *, /, %)", "반복문(for, while)" Lexeme: 토큰들의 구체적인 예 (ex) "+" -> 산술연산자라는 토큰의 구체적인 예 Lexical Analyzer(Scanner)의 동작 방식에 대해 알아보자 Lexical Analyzer는 input으로 준 문자열을 읽어서 각각의 단어들이 무엇을 의미하는 단어..
[Compiler] 1. Lexical Analyzer :: 소개와 용어 정리
[Compiler] 1. Lexical Analyzer :: 소개와 용어 정리
2019.07.30Compiler의 첫 번째 단계는 Lexical Analysis로 가장 먼저 Lexical Analyzer를 실행합니다. Lexical Analyzer는 어떤 일을 할까요? Lexical Analyzer는 Input 문자열들을 스캔하면서 의미가 있는 단위로 문자열을 묶습니다. (그래서 Scanner라고도 불립니다). 그리고 일련의 Token들을 생성해 내고 Syntax Analyzer에게 보냅니다. 이 과정을 진행하면서 Token들에 대한 정보들을 Symbol Table에 저장합니다. Lexical Analyzer의 동작 방식을 알아보기 전에 앞으로 쓸 용어들에 대해 알아봅시다. Lexical Analyzer에서 쓰는 용어들: Token, Lexeme, Pattern Token A token is a p..