본문 바로가기

프로그래밍 언어론

[프로그래밍 언어론] 추상 구문 트리와 어휘 분석기

반응형

어휘 분석기(lexical analyzer)

 - 입력된 소스 프로그램을 읽어서 토큰(식별자(identifier), 상수(constant), 예약어(keyword), 연산자(operator), 구분자(delimiter) 등의 의미 있는 문법적 단위로 터미널 심볼) 형태로 분리하여 반환

 

파서(parser)

 - 소스 프로그램을 구문 분석(파싱)하면서 프로그램 내의 문장들의 AST 를 생성하여 반환. 

 - 파싱하면서 필요 시에 getToken() 을 호출하여 어휘 분석기로 부터 다음 토큰을 요구

 

추상 구문 트리(Abstract Syntax Tree, AST)

 - 파서는 소스 프로그램을 파싱하여  AST 를 생성. AST 는 소스 프로그램의 구문 구조를 추상적으로 보여주는 트리로 해석기의 입력이 됨

 

인터프리터(Interpreter)

 - 프로그램 내의 각 문장의 AST 를 순회하면서 각 문장의 의미를 따라 해석하여 수행

 

상태(State)

 - 인터프리터는 각 문장을 수행하면서 유효한 변수들의 상태를 저장하는 스택 형태의 자료구조를 사용

 

정규식

 - X                    문자 X

 - M | N              M 또는 N 을 표현

 - MN                 M 다음에 N 이 나타나는 접합을 표현

 - M*                  M 이 0번 이상 반복됨을 표현

 

 

반응형