lex 및 yacc 처음 사용합니다. 툴 어떤걸 설치해야하나요?
학교 수업으로 컴파일러 관련 수업을 듣고 있습니다.
레포트로 javacc를 이용하여 간단한 계산기도 소스를 돌려보았는데
이젠 lex 하고 yacc 를 이용하려 해보려고 합니다.
아직까지는 계념 정도만 잡은 정도라서 lex 및 yacc 에 대해 책에서 공부한거 말고는 감이 잘 안오네요
어쨋든 질문은
1. 툴은 어떤것을 설치하는게 좋나요? 일반적이고 텍스트 기반으로요... (사용하기 어렵고 이런건 상관없습니다)
그냥 $yacc 쳐보면 뭔가 나오던데.. 원래 설치할때 개발패키지에 포함이 되어 있나요?
검색하여 보니 lex는 flex, yacc 는 bison을 사용하라고 하던데.. byacc 하고의 차이는 무엇인지...
2. 책을 전체적으로 대충 훝어보긴 했지만 아직 감이 안잡힌게.. lex하고 yacc툴들이 알아서 scanner 도 만들어 주고 LALR 구문분석까지 다 해주면
제가 해야 될것은 뭔지... 그냥 javaCC 처럼 뭐뭐뭐.L이라는 파일을 C문법으로 코딩해서 lex하고 yacc로 돌려주면 컴파일러가 나오는 건가요?
3. 최적화 하는데 있어서 임베디드관련 개발자들은 항상 최적화를 감안해서 코딩을 하시나요? 예를 들면 루프안의 변수들을 최소화 한다던지 하는 등등
또한 #define ~~ 하는 경우에는 프리프로세서에 해당하는데 최적화하고 상관이 있는건지도 궁금합니다.
처음 사용해 보는거라서 질문이 두리뭉실 해졌네요.. 어쨋든 단기적인 목표는 JAVACC계산기 소스 보고 C코드로 작성해서 lex로 돌리는 것입니다.
댓글 달기