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,10):X에서 10은 X의 값인가 주소인가? 주소라면 그냥 X라는 값을 저기 위치에 넣었다는것인가?
10과 20은 각각 그냥 임의로 주어진건가?