프로그래밍 언어론 Lex와 Yacc을 이용한 Mini C 컴파일러 제작

개요

lex와 Yacc을 이용해 간단한 연산이 가능한 Mini-C 컴파일러를 제작한다.

입력코드

1
2
3
4
5
a = 12 + 34;
print a;
b = 56 - 34;
print b;
print a > b;

결과화면

과제후기

과제를 하면서 나에게는 너무 어려운 듯한 느낌이 들었다. 우선 Lex와 Yacc에 익숙해 지지까지 많은 기간이 걸렸고, 도중에 나오는 에러들에 대처하는 것에 익숙치 않았다. 참고도서의 한정된 수량으로 학교 도서관에서 대여를 못하였고, 인터넷의 여러 참고 자료를 보고 하였으나 이해하기가 어려웠다. 하지만 이렇게 과제를 마치고 보니 어느정도 이해했고 익숙해진 느낌이 든다.

사칙연산은 힘들지 않게 하였으나 변수에 값을 저장하는 방식이 이해가 안되어 시간이 많이 지연되었다. IF-ELSE문이나 FOR문 등은 여러번 시도해 보았으나 성공하지 못했다.

흡족한 마무리를 한 것은 아니지만 과제를 하면서 많은 지식을 쌓았다는 것에 만족한다.

Share Comments