Bootstraping

수요일에 Programming Language 과목의 중간고사를 준비하면서 열심히 공부한 부트스트래핑이 시험에 나오지 않았기 때문에, 공부한 게 아까워 정리해서 올려봅니다. T-Diagram T-Diagram은 간단한 표기법입니다. Python으로 짜여진 Sort 프로그램, x86 위에서 돌아가는 Python 인터프리터, 그리고 x86 자체를 T-Diagram에서는 위와 같이 표기합니다. 인터프리터를 봤으니 컴파일러도 봐야겠죠? x86에서 C 코드를 x86 어셈블리로 바꿔주는 컴파일러는 위와 같이 표기합니다. x86에서 C 코드를 […]

Introduction to LLVM (3)

12. Static Single Assignment (SSA) Form 어디서 어떤 변수가 선언/사용되고 있는지 추척하는 것이 최적화의 주된 질문 중 하나. 위와 같은 상황에서는 if를 전후로 x의 역할이 바뀐다. Line 1의 x와 Line 7의 x는 전혀 연관이 없다. 이런 경우에는 두 변수를 구분해줘야 LLVM이 변수의 선언/사용을 추적하는 게 더 쉽지 않을까? 극단적인 상황을 가정해보자. 하나의 int 변수로 서로 […]

Introduction to LLVM (1)

이번 학기에 고급 컴파일러 설계를 수강했습니다. 물론, 대학원 수업이기 때문에 형식적으로 “고급”이 붙었을 뿐이라 정말 완벽하게 고급진 내용은 아니였지만 LLVM의 구조, 철학, 사용하고 있는 이론적 배경 등을 배우는 수업이였기에 LLVM 소개글 정도로 포스팅의 목적을 정했어요. 수업에서 배운 내용을, 그리고 교수님이 내주셨던 과제와 개인이 제안해서 진행했던 과제들을 수행하면서 겪었던 시행착오들을 정리해 봅니다. 대부분의 내용은 Bernd Burgstaller […]

새로운 언어를 공부하는 방법

예전에 JAVA에서 JavaScript로 넘어갈 때도 느꼈지만 나에게 있어서 새로운 언어를 공부하는 가장 좋은 방법은 대충 여러 번 읽기인 것 같다. 이 방법은 특히 프로그래밍과 같은 이론보다는 실제에의 적용이 더 중요한 부분에서 큰 효과를 불러오는 것 같은데, 우리 아버지 세대의 표현으로는 선암기-후이해와 조금 비슷하다고 할 수 있겠다. 일단 하나의 주 언어가 생기고 난 후라면 실제 메모리 […]

데이터 스터디 MongoDB 발표자료

빅데이터와 데이터 분석 들을 공부하기 위해 작년 추워질 때 즈음 부터 참여하고 있는-정확히 언제부터 였는 지가 가물가물 하다-그 스터디에서 준비한 발표자료다. ‘빅데이터에 웬 몽고디비?’ 라 고 생각할 수도 있는데, 빅데이터를 수집하기 위해 필요한 기본적인 스택이었다고 변명해보고 싶지…만 발표자료에도 쓰여있듯 그냥 내가 평소에 관심이 있어서 만든 발표자룧ㅎㅎ 여담으로, PDF를 아래와 같이 임베디드 형식으로 스크롤 되게 링크거는 […]