Compiler와 Interpreter의 차이 *충남대학교 이성호교수님의 프로그래밍언어개론 강의를 참고하여 작성한 글입니다 컴퓨터는 사람이 고급언어로(C, C++, Java,,,,)작성한 코드를 바로 이해할 수 없습니다. 집에 살고있는 뽀삐한테 배고프니? 밥먹을래? 라고 말하면 대답할 수 없는 것과 마찬가지죠 그러므로, 상대가 이해할 수 있도록 입력을 주어야 합니다. 뽀삐한테도 해당 문장을 이해시키는 방법이 두가지가 있는 것처럼(강아지언어로 단어하나씩 설명하기, 사람언어를 문장통채로 이해하게 시키기) 컴퓨터에도 방법이 두가지가 있습니다. 이는 Compiler와 Interpreter를 사용하는 방법인데요. Compiler는 번역기, Interpreter는 해석기 라고 빗대서 이해할 수 있습니다. 번역과 해..
LLVM Pass를 제작하기 위해 공부한 내용을 정리하기 위한 글임니다 https://youtu.be/MagR2KY8MQI?si=_TIQhqHYNhkbBbfz 해당 영상을 참고해서 정리하였고, 틀린부분이 있을 수 있습니다 :) LLVM IR이란? 소스코드는 컴파일과정에서 몇가지 단계를 거쳐 실행파일로 변환됩니다. 단계들을 간단하게 살펴보겠습니다, 1. Source Code -> Intermediate Representation 첫번째 단계에서 소스코드는 parsing 후 변환과정을 거쳐 Intermediate Representation(IR)로 변환됩니다. 해당 단계는 front-end 컴파일러가 담당하며, llvm에서는 clang이 c와 c++대상으로 해당 단계를 수행하지요. 그러고 나면 LLVM-IR..