본문 바로가기

반응형

의미 해석

(2)
컴파일러 공부하고 개발하기 #02 - 소스 코드 해석, 어휘 해석, 구문 해석, 의미 해석, 의미값 서론 오늘은 소스 코드 해석에 대해 다룰 것이다. 책 기준으로는 이전에 책에서 제공하는 소스코드의 간단한 일부 리뷰가 있는데, 그냥 #00과 #01 편에서 말한 순서를 코드로 나타낸 것이기에 패스하도록 하겠다. 그리고 책에서도 전처리 단계가 꽤나 복잡한 관계로 빠져버렸다. 소스 코드 해석에서 고려해야 할 점 우리가 코드가 있을 때 그냥 위에서부터 줄줄이 해석한다면 편하겠지만 우린 '연산자의 우선순위'를 고려해야 한다. 5 + 4 + 2는 컴퓨터 입장에서 (5 + 4) + 2로 받아들이게 되지만, 4 + 2 * 8은 4 + (2 * 8)로 해석해야하기에 이것이 연산자의 우선순위이다. 또한 함수명이 일반적으로 선언되어있는 것과 문자열 안에 함수명이 있을 때의 취급 또한 다르기에 이러한 점들을 고려해야한다. ..
컴파일러 공부하고 개발하기 #01 - 구문 해석, 의미 해석, 중간 표현의 생성, 코드 생성 서론 지난번에 이어서 이번에는 전처리와 어셈블 사이의 중간 과정인 컴파일에 대해 다뤄볼 것이다. 전처리, 컴파일, 어셈블, 링크를 전체를 묶어 컴파일 과정이라 부르긴 하나, 진짜 컴파일은 전처리와 어셈블 사이의 컴파일이 진짜 컴파일이다. 전 글의 '(좁은 의미의)컴파일'이다. 컴파일의 4단계 Syntax anlayzing(구문 해석) Semantic analysis(의미 해석) IR, intermediate representation(중간 표현의 생성) Code generation(코드 생성) Syntax anlayzing(구문 해석)이란? 소스 코드를 해석해서 컴퓨터가 이해하기 쉬운 형식으로 바꿔줘야한다. 그렇다면 '컴퓨터가 이해하기 쉬운 형식'은 무엇일까? 바로 구문 트리이다. 이후 구문 트리에 대해..

반응형