전체 글 (172) 썸네일형 리스트형 Lec15.lR Translation (2) - 14주차 2강 (전공/프로그래밍 언어 및 컴파일러) 2024. 12. 10. 23:09 부제: Control-Flow Graph 14주차 2강. 2024.12.04. three address code - 각 식이 최대 3개의 피연산자를 갖도록 함. 단순한 연산 단위로 분해해 분석과 최적화 용이하게.global optimization을 효과적으로 수행하기 위해 3주소 코드를 CFG로 변환함. CFG는 프로그램 제어 흐름을 그래프로 표현한 구조. 최적화와 정적 분석을 위해 사용.Node는 Basic Block을 나타냄. 분기 없이 연속적으로 실행되는 명령어 집합Edge: Basic Block 간의 Control Flow. 조건문, 반복문의 흐름에 따라 블록이 연결됨.basic block은 분기가 없는 명령어의 최대 연속 집합. 중간에서 흐름이 끊기지 않고 처음부터 끝까지 순차적 실행.basic.. Lec14.IR Translation (1) - 14주차 1강 (전공/프로그래밍 언어 및 컴파일러) 2024. 12. 10. 22:34 부제: Automatic Translation12월 2일, 14주차 1강* 개인 공부를 위해 정리한 것입니다. 정확한 내용은 꼭 본인이 공부하는 교재를 참고하시기 바랍니다.컴파일러 디자인의 복잡도를 줄이기 위해 IR을 사용한다x=0, t1=0x에 t1 값을 할당t3에 x값을 할당t4에 1을 할당t2에 t3과 t4의 합을 할당t2를 write한 후 정지초기화, sum=0, i=02:SKIP: 반복문 시작조건 검사t4에 i값 복사t5에 10 복사t3에 t4조건이 거짓이면 3으로 점프반복문 본문sum=sum+i를 계산해 sum에 저장i++ 연산을 수행반복문 시작으로 돌아가기 위해 goto23:SKIP: 반복문 종료출력 및 종료sum값을 출력하고 HALT 소스 언어과 타겟언어 사이의 자동변환 절차를 정의S: 변.. Lec13.Semantic Analysis (4) - 13주차 1강/2강 (전공/프로그래밍 언어 및 컴파일러) 2024. 12. 9. 23:24 11월 25일, 27일 / 13주차 1강, 2강* 개인 공부를 위해 정리한 것입니다. 정확한 내용은 꼭 본인이 공부하는 교재를 참고하시기 바랍니다.고정점 계산반복문처럼 state의 변화가 있는 명령문에서 stable state를 찾기 위해 고정점 계산을 함고정점은 항상 종료되는가? 종료되기 위해서는 추상 도메인의 lattice가 finite height를 가져야 함그러나 실제 도메인은 infinite height를 가져, 고정점 계산이 끝나지 않을 수 있음Widening 연산자 - 고정점 계산이 종료하지 않는 문제를 해결하기 위해 도입상태 병합(join) 과정에서 빠르게 상위 상태로 approximation하여 반복 과정을 종료하도록 함무한 높이를 가진 lattice에서도 고정점 계산의 종료를 보장정확성.. 이전 1 ··· 24 25 26 27 28 29 30 ··· 58 다음