Published on2026년 3월 19일[컴파일러] 04. 어휘 분석 - 토큰, 패턴, 정규 표현식compilercs-fundamentals어휘 분석기의 역할과 토큰/패턴/렉심의 개념을 정리하고, 정규 표현식과 정규 정의를 사용하여 토큰을 명세하는 방법을 살펴봅니다.
Published on2026년 3월 19일[컴파일러] 05. 유한 오토마타와 어휘 분석기 구현compilercs-fundamentalsNFA와 DFA의 개념, 정규 표현식에서 NFA로의 Thompson 구성, NFA에서 DFA로의 부분 집합 구성, DFA 최소화, 그리고 Lex 도구를 활용한 어휘 분석기 자동 생성을 다룹니다.
Published on2026년 3월 19일[컴파일러] 06. 구문 분석 (1) - Top-Down 파싱과 LL 파서compilercs-fundamentals파서의 역할과 문맥 자유 문법을 복습하고, 모호성 제거, 좌재귀 제거, 좌인수분해 기법을 다룹니다. 재귀 하강 파서, 예측 파서, FIRST/FOLLOW 집합, LL(1) 문법을 상세히 설명합니다.
Published on2026년 3월 19일[컴파일러] 07. 구문 분석 (2) - Bottom-Up 파싱과 LR 파서compilercs-fundamentalsBottom-Up 파싱의 핵심 개념(축약, 핸들, 이동-축약)을 다루고, SLR, 정규 LR(1), LALR 파싱 기법과 Yacc 파서 생성기를 살펴봅니다.
Published on2026년 3월 19일[컴파일러] 08. 구문 지시 번역 - SDD와 SDTcompilercs-fundamentals합성 속성과 상속 속성의 개념, 의존 그래프와 평가 순서, S-속성 정의와 L-속성 정의, 그리고 구문 지시 번역 체계(SDT)의 구현 방법을 다룹니다.
Published on2026년 3월 19일[컴파일러] 09. 중간 코드 생성 - 3주소 코드와 타입 검사compilercs-fundamentals구문 트리의 변형(DAG), 3주소 코드(쿼드러플, 트리플, SSA), 타입 표현식과 타입 검사, 타입 변환, 그리고 제어 흐름 번역과 백패칭 기법을 다룹니다.
Published on2026년 3월 19일[컴파일러] 10. 실행 시간 환경 - 스택, 힙, 가비지 컬렉션compilercs-fundamentals프로그램 실행 시 메모리 구성, 스택 기반 활성 레코드와 호출 순서, 비지역 변수 접근 방법(접근 링크, 디스플레이), 힙 관리와 단편화, 그리고 가비지 컬렉션의 주요 알고리즘을 다룹니다.
Published on2026년 3월 19일[컴파일러] 11. 코드 생성 - 기본 블록과 흐름 그래프compilercs-fundamentals코드 생성기 설계의 핵심 이슈와 기본 블록, 흐름 그래프의 개념을 다룹니다. 명령어 선택, 레지스터 할당, 목적 코드의 주소 지정 방식, DAG 표현까지 살펴봅니다.
Published on2026년 3월 19일[컴파일러] 12. 코드 생성 알고리즘과 레지스터 할당compilercs-fundamentals단순 코드 생성 알고리즘, 레지스터/주소 디스크립터, DAG 기반 코드 생성, 트리 기반 최적 코드 생성, 그래프 컬러링을 이용한 레지스터 할당, 핍홀 최적화를 다룹니다.
Published on2026년 3월 19일[컴파일러] 13. 머신 독립 코드 최적화 기초compilercs-fundamentals공통 부분식 제거, 죽은 코드 제거, 상수 폴딩, 루프 불변 코드 이동, 유도 변수, 강도 감소 등 주요 최적화 기법과 데이터 흐름 분석의 기초를 다룹니다.