4-2학기 2011. 9. 29. 00:55

2009년 권혁철 교수님 컴파일러 수업 떄 작성했던 컴파일러 소스중 일부이다.

무심코 보던 TV에서 TED.COM강의가 나오는데 정보 공유와 관련된 내용이 나오고 있다.

비록 내가 이걸 짠다고 삽질과 수많은 고민을 했지만, 공유가되면 더 발전하겠지 하는 생각이 다시 또 떠오른다.
그래서 업로드를 한다.

Fully  소스를 공개하는것도 좋겠지만, 표절 문제만 발생시킬뿐이고....

대다수의 사람들이 어떤방식으로 짤진 모르겠으나,....

3형식 방식으로 중간코드를 생성했으면 이 코드를 잘 분석하거나 참조하면 어셈블리어로 어떻게 변환되는지 이해할수 있을거란 생각이든다.

이 코드는 MASM어셈블러와 링커를 통해 EXE로 변환이 가능한 코드이다.

핵심은 심볼매니저인데.....심볼매니저만 있어도 컴파일러가 얼추 돌아갈 수준인지라....공개할수가 없다..

내가 학부 다닐때 내 로망은 내가 만든 운영체제를 가져보는것과, 내가만든 컴파일러를 가져보는 것이었다.
전자는 이루지 못했고, 후자는 어설프게나마 가져보았다.

당시 hello world가 내가만든 컴파일러로 빌드해서 exe가 실행되어 출력되었을때의 그 희열을 이루 표현할 수가 없다...

그렇게 벅차게 감동을 느껴본적도 많이 않았던거같다....
그런 감동을 누군가 이 글을 볼 학생들도 느껴봤으면 좋겠다..



작동 샘플은 4-2학기 폴더내에 ncc 최종 결과물에 보면 결과물(소스 없이 테스트소스와, 컴파일러 실행파일)이 있을것이다.

이 코드 입사시험 본다고 면접올라가던 KTX에서 70%정도 짯던 코드들인데.....1년도 넘은 기억이 새록새록 떠오른다...
뭔가에 쫓길때에는 쫓기는 시간이 없으면 더 잘할수 있을줄 알았는데, 쫓기지 않으니 아무것도 하지않는 모습이 되어버렷다.


P.S 혹시나 이 소스로 도움을 0.1%라도 받는 사람이 있다면 최소한 소스자료에 대한 참고를 알려주길 바라며, 블로그에 게재시에나 여타 다른 곳에 올릴경우가 있다면 원본 링크를 게재해주었으면 한다.
그것이 최소한 자료공개를 하는 사람에 대한 예의가 아닐까 싶다.
posted by Sense.J
:
4-2학기 2009. 12. 13. 05:54
4-2학기..마지막 학기를 다니며 권혁철 교수님의 컴파일러를 수강하며
호철이와 한조로 호흡을 맞추어 진행하는 텀.....

for, while, if , 펑션콜, 인자, printf, break, int변수, 사칙연산, 나머지연산 을 지원하는
심플한 c컴파일러다

c코드를 asm코드로 생성해주며 어셈블링과 링킹과정을 자동으로 거치게 했는데 이 과정을 거치면
실행가능한 exe바이너리가 생성된다.

마무리만 하면 컴파일러는 무난할듯......

posted by Sense.J
: