컴파일러 만들기.
글쓴이: MasterQ / 작성시간: 토, 2006/01/07 - 5:15오후
이번학기에 Ada/CS (Ada subset) 컴파일러를 만들게 되었습니다. (assembly로 떨구는것 까지입니다.)
학교과목인데 yacc과 같은 툴들은 사용할수 없게 되어있고 필요한 툴은 만들어서 쓰라고 하네요. 후후... 그래서 좀 힘든 학기가 될것 같습니다. 근데 여기에 계신분들중에서도 컴파일러 만드는것에 관심 있으신 분들이 있을것 같아서, 학기가 끝나면 만든 컴파일러를 kldp.net에 올릴생각입니다. 12주안에 정신없이 만들테니까 완성도야 많이 떨어지겠지만, 또 그만큼 저처럼 처음 만드신분들에게 부담없는 양이 될것 같기도 하고, 아예 처음부터 시작하니까 배우는것도 많이 있을것 같습니다. 그럼 버그좀 있고 완성도는 약간 떨어지는 이 코드를 학기가 끝나고 여러 사람들이 같이 고치면 꽤 재밌는 프로젝트가 될것 같습니다. 예를 들어 결과물은 MIPS인데 다른사람은 x86이나 ppc코드를 떨궈낼수도 있겠구요.
괜찮은 아이디어인가요?
Forums:
굿~~ 이죠~근데 Ada를 모른다는 문제가...ㅡ.ㅡ
굿~~ 이죠~
근데 Ada를 모른다는 문제가...ㅡ.ㅡ
노루가 사냥꾼의 손에서 벗어나는 것 같이, 새가 그물치는 자의 손에서 벗어나는 것 같이 스스로 구원하라 -잠언 6:5
Ada/CS는 Ada와 어떻게 다른가요?
Ada/CS는 Ada와 어떻게 다른가요?
- 죠커's blog / HanIRC:#CN
글쎄요.
각 학교별 텀 프로젝트로 나오는거는...
컴파일러 만들기, 라우터 만들기, 부트로더 만들기..등등..
많은 종류가 있죠, 물론 제가 다니고 있는 학교에서는 과목별로 위의 세가지 텀을 다하고, DB같은경우, 확장 해싱 구현이라던지, 간단한 디비 구현까지도 합니다.
과정을 디딜때 저도 처음엔 이런걸 가지고 공개해서 뭔가 하면 어떨까 생각했는데 말이죠..
실제로,. 하다보면 큰 도움은 되지 않더군요.
이미 있는 구현체를 조금 다른 시각으로 해석해 다른 구현체를 만들어 본다거나, 특별히 어떤 목적을 이루기 위한 것들은 어느정도 모임이 생길 수 도 있겠지만요..
그런 예로 운영체제 만들기 같은것들이 있는데, 대부분이 공부를 하는 과정에서 오는 것들을 정리 하는 것이죠. 또한 부가적인 지식이나 정보도 많구요. (머신별 상세 구조 정리 문서 및 구현 알고리즘등)
컴파일러를 만드는 것도, 공부를 하겠다는 전제하에, LL,LR등의 파서를 구현해 보는 것이 어느정도 의미가 있겠지만, 운영체제와 달리, 그 이상 어떤 결과물이 도출될지는 기대하기 어려울 것 같네요..
말이 횡설수설해졌지만,..
요약하면, 등록한다는 것에 의의를 두시는것도 괜찮을 것 같습니다.
지극히 개인적인 생각입니다.^^
https://nicesj.com
https://blog.nicesj.com
[quote="CN"]Ada/CS는 Ada와 어떻게 다른가요?[/quot
저도 Ada는 처음이라 어떤 차이가 있는지는 많이 모르지만 일단 컴파일러 과제를 할수 있도록 줄여진것외에 제가 본 차이점은 concurrency에 대한 support가 없고, Read/Write를 이미 overloaded predefined procedure로 가정하고 Ada는 지원하지 않는 list of input/output을 지원한다는것 정도만 알고 있습니다.
Ada/CS는 Fischer/LeBlanc의 Crafting a Compiler 란 책의 appendix a에 define되어 있는데, 이 책이 절판된 책이라... 복사한 카피만 가지고 있습니다.
grammar는 여기에서 볼수 있습니다
니는 나쁘지 않다고 봅니다. 오픈소스를 보면 생각 이상의 고 효율의 C
니는 나쁘지 않다고 봅니다. 오픈소스를 보면 생각 이상의 고 효율의 C 혹은 C++ 컴파일러가 있습니다. 이들은 사람들의 지원이 없어서 성장을 못하고 있지요. 그들이 장차 GCC와 같은 거물이 될지 누가 아는 것입니까?
MasterQ님의 의견이 좋다고 생각합니다.
- 죠커's blog / HanIRC:#CN