'심볼매니저'에 해당되는 글 1건
- 2011.09.29 :: 컴파일러 어셈블리코드 생성 부분 소스. 2
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%라도 받는 사람이 있다면 최소한 소스자료에 대한 참고를 알려주길 바라며, 블로그에 게재시에나 여타 다른 곳에 올릴경우가 있다면 원본 링크를 게재해주었으면 한다.
그것이 최소한 자료공개를 하는 사람에 대한 예의가 아닐까 싶다.