3학년2학기/컴파일러

컴파일러 9/11

죽림인 2019. 9. 12. 02:25

유한상태오토마타

유한한 갯수를 가지고, 상태간의 전이를 정의, 시작상태 한개와 끝상태 여러개를 가짐
정규표현식과 동일한 표현력을 가짐 ( RE = FSA)

x=5 에서 결과는 5이다. ( y=x=5 라고 할때 x=5에서 5라는 값이 나와서 y=5도 되는것)

ungetc() => getchar같은걸로 읽었지만 안 읽은것처럼 다시 가져다가 놓는것.

상태전이도를 그릴때 null을 왜 굳이 많이 쓰나?
-> 연달아 되어있는것일때 서로 간섭을 주지 않기 위해서 ex) ab

DFA

토큰인식은 정규표현식 -> NFA -> DFA 그리고 이를 따라서 인식한다.

만약 두개 이상의 정규표현식이 매치되면 어떻게 할까?
긴 token이 우선일까, 우선순위가 있는게 우선일까
정답은 긴 token이다 이유는 최초의 어휘분석기 도구가 그렇게 했다고 한다..ㅎㅎ 그리고 좀더 효율적이지 않겠는가

어휘분석기 안에서는 <토큰번호, 토큰값> 으로 표현된다.
토큰번호는 고유의 내부번호 이다.

symbol table에 대해서 제대로 이해가 가지 않는다. 다음시간에 질문

  1. (1,10):X에서 10은 X의 값인가 주소인가? 주소라면 그냥 X라는 값을 저기 위치에 넣었다는것인가?
    10과 20은 각각 그냥 임의로 주어진건가?