JSCC: JavaScript로 개발하는 C Compiler

코스 전체목록

닫기

단원 마무리

5. 단원 마무리

어셈블리를 가르친다면서 한참동안 CIL이라는 괴상한 언어를 가르쳤다중간 언어가 필요하다는 것은 이해했지만 굳이 별로 믿기지도 않는 무명 프로그래머가 만든 언어로 강의를 진행해야했을까 싶었던 분들을 위해 마무리에서 이야기하자면어셈블리를 바로 가르치지 않고 굳이 CIL이라는 중간 단계 언어를 도입한 것은어셈블리 언어를 당장 배우기에는 어셈블리에는 지금까지 설명한 문법적 요소 외에 불필요하게 알아야 할 지식들이 너무 많다는 이유가 있었다예를 들어 바로 어셈블리 코드를 시작하려면 컴파일러는 어떤 것을 사용해야 하는지, globl은 무슨 키워드인지, .text는 뭐고 .data와 무슨 차이가 있는지심지어는 진입점이 어디인지조차도 제대로 갈피가 안 잡히는 경우가 많다. CIL은 C를 기반으로 한 언어이기 때문에 이런 면에서는 월등히 유리했다파일을 포함하려면#include 전처리기전역 문자열을 선언하려면 STRING을 사용하면 된다즉 CIL은 당장 필요하지 않은 부분은 알고 있는 대로정말 배워야 하는 부분은 모두 CIL로 작성하도록 하여 문서의 내용에 보다 집중할 수 있도록 필자가 만든 도구이다.

다음에 배울 내용은 실제 어셈블리 언어에 대한 내용이다처음에는 MASM이라는 Microsoft에 종속적인 어셈블리 언어를 기준으로 설명하려고 했는데기왕 문서를 분리하는 김에 이에 대해서도 검토해볼 기회를 갖게 되어 다행이라고 생각한다.

댓글

댓글 본문
graphittie 자세히 보기