부산대학교 컴퓨터공학과 권혁철 교수님의
컴파일러 수업에 제출했던 최종 텀 프로젝트 소스입니다.
2009년 제출된 소스입니다
당시 성공한 조가 몇 없었으며, 실기는 최상위권 레벨이었던걸로 기억합니다.
masm을 이용하며, exe파일을 생성합니다.
코드는 순수 직접 다 작성하였습니다.
가져다 써서 본인이 만든 척 하다 걸리시면.....가만있지 않겠습니다.
( 이전에 그런 경우를 봤거든요.... )
아래의 심플한 수준의 c문법을 지원합니다.
[지원기능]
printf
함수호출
조건문( if , else )
변수 선언
for루프
while루프
break
continue
사칙연산, 나머지연산
컴파일 에러시에 라인번호 별로 에러 내용 출력 및 에러코드 출력
일부 코드 최적화기능( 간단한것들 몇개 )
[이름]
NCC ( Ncc is not a C Compiler : 그냥 외국인들이 좋아하는 회귀문 장난질로 이름 지었습니다. )
졸업한지 오래되기도 했거니와, pc에 저장해놓다가 날려먹을까봐 블로그에 백업삼아 올립니다.
코드가 개 난장판 입니다.
대략 2주만에 완성한 코드이니 감안해주시길 바라며, 필요하신분은 참조하시기 바랍니다.
[참고한자료]
asmrt 라이브러리 ( 각종 crt관련 기능을 가져다썼습니다 )
c언어 문법정의 ( 옛날 버젼이며, 인터넷에 돌아다니는 표준 정의파일을 사용하엿습니다. )
그외 참고한 책은 용이 불뿜고 있는 책, 외국 대학들의 강의 자료 파일을 참고하였습니다. ( intermidiate opcode 생성을 위해 스터디 하였습니다. )
[주의]
1. 과제 제출용도로 그대로 쓰다가 적발되시면 강한 대응 하겠습니다.
2. 가져 가실때에는 댓글이나 방명록에 글을 남겨주세요.
3. 이 자료를 참조하신경우라면 가져가신 분의 고민의 결과도 본인의 블로그에 공유해주세요.( 공유정신 )
[참고]
gcc, g++, bison, flex 가 필요하오니 알아서 설치해서 돌려보세요.
윈도우즈에서 작성되고 빌드 하였던 코드입니다.( windows7 )
PNU CSE 2009 Compiler( 03 심민조, 김호철 ).zip