[CS320] 7. 가비지 컬렉션

Reference Counting, Mark & Sweep, Two-Space Collection 세 가지 가비지 컬렉션 알고리즘의 원리와 장단점을 비교합니다.

June 13, 2023 · 6 min · Hojoon Kim

[CS320] 6. 지연 평가와 Continuation

지연 평가(Lazy Evaluation)를 지원하는 LFAE와 Continuation Passing Style(CPS)의 개념을 통해 프로그래밍 언어의 제어 흐름을 이해합니다.

June 11, 2023 · 7 min · Hojoon Kim

[CS320] 5. 가변 상태 — BFAE와 MFAE

Box를 통한 힙 메모리 모델(BFAE)과 가변 변수(MFAE)를 도입하며, Store를 이용한 상태 관리 인터프리터를 구현합니다.

June 9, 2023 · 10 min · Hojoon Kim

[CS320] 4. 재귀와 조건 분기 — RFAE

조건 분기(if0)와 재귀 함수(Rec)를 지원하는 RFAE 언어를 설계하고, mkRec 패턴과 var 키워드를 이용한 재귀 구현 기법을 살펴봅니다.

June 7, 2023 · 6 min · Hojoon Kim

[CS320] 3. 함수의 세계 — F1VAE에서 FAE까지

일급이 아닌 함수(F1VAE)에서 일급 함수와 클로저(FVAE, FAE)까지 발전하는 과정과 Static/Dynamic Scope의 차이를 살펴봅니다.

June 5, 2023 · 9 min · Hojoon Kim

[CS320] 2. 산술식에서 변수까지 — AE와 VAE

가장 단순한 산술식 언어(AE)부터 변수 바인딩을 지원하는 VAE까지, 인터프리터를 단계적으로 확장하며 프로그래밍 언어의 기초를 쌓습니다.

June 3, 2023 · 6 min · Hojoon Kim

[CS320] 1. Scala 기초와 프로그램 설계 방법론

Scala의 Trait, Class, Case Class 차이점과 프로그래밍 언어를 설계하는 체계적인 방법론(Syntax, Semantics)을 정리합니다.

June 1, 2023 · 9 min · Hojoon Kim