전체 글 (107) 썸네일형 리스트형 Lec16.Optimization (1) - 14주차 2강 12월 4일, 14주차 2강* 개인 공부를 위해 정리한 것입니다. 정확한 내용은 꼭 본인이 공부하는 교재를 참고하시기 바랍니다.middle-end optimizer: 중간표현을 입력받아 효율적인 코드로 변환하는 역할.코드 의미를 보존하면서도 불필요한 중간 변수나 연산을 제거해 최적화된 결과 생성코드 최적화 방법공통 부분식 제거표현식 E가 프로그램 내에서 한 번 계산된 이후, 해당 변수 값이 변경되지 않았다면 E는 공통 부분식으로 간주동일한 계산 반복할 필요 없이, 이전 계산 결과 재사용해 프로그램 최적화copy propagationu=v와 같은 복사문 이후, u가 재정의 되지 않는 한 u 대신 v를 사용하는 최적화 기법중간 변수 없이 값 바로 사용하는 방식, 코드 간결성과 실행효율 높임불필요한 변수 제거.. Lec15.lR Translation (2) - 14주차 2강 부제: 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강 부제: 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: 변.. 이전 1 2 3 4 5 6 7 8 ··· 36 다음