컴파일러나 인터프리터를 만들고자 할 때 가장 걸림돌이 될 수 있는 이론 지식 타파하기
이번 글은 하나의 글에 다 담지 않고 중요한 부분마다 끊어내어서 글을 작성해볼 요량입니다. 어쩌다가 이런 주제를..? 코틀린의 컴파일 과정을 공부하면서 생소한 용어가 나오는데 처음에는 K2 컴파일러가 어떻게 동작하는지에 대한 얕은 지식만 이해를 하다가, 이런 깊이의 이해도로는 개발에 아무런 도움이 안되겠다는 마음에 컴파일러 관련 공부를 시작하게 되었습니다.
본격적으로 오토마타 이론을 공부하기 이전 가장 중요한 세가지 기본 컨셉에 대해서 다뤄보자. 오토마타 이론에서 언어란? 영어, 한국어 이런것을 이야기 한다고 보기에는 오토마타 이론에서 다루는 언어는 그 범위가 꽤나 협소하다. 물론 지금 이 글을 적는 것도 언어를 활용해서 적는 것이라고 볼 수 있지만, 오토마타 이론에서 언어라는 것은 규칙을 잘 정의할 수 있는