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를 아래와 같이 임베디드 형식으로 스크롤 되게 링크거는 […]

react study #3

React를 열심히 공부를 했었다. #1, #2. 그러다가 큰 변경없이 angular에 redux만 섞어서 써보자는 생각도 해서 실제로 꽤 많은 부분을 ngRedux를 사용해서 포팅을 했었는데, 포팅하면 할 수록 react로 했으면 더 간편했을 텐데.. 같은 부분이 마구마구 생겼다. angular의 dircetive로 react의 component를 흉내내기를 한 것인데 변수를 넘겨주면 =, 일반 문자열을 넘겨주려면 link constructor의 attrs에서 받아오기, 동적인 문자열은 @, […]