언어 모델
언어 모델 (Language Model)
이 절은 Racket 언어가 어떻게 동작하는지, 얼마나 큰 프로그램이 Racket으로 어떻게 구성되는지 설명하는 개념적인 기초를 담고 있어요. 평가 모델, 문법 모델, 리더·프린터, 구현 등 Racket 언어 전체를 관통하는 구조를 개관합니다.
본문
Racket Reference의 이 절은 언어의 개념적 모델을 다루며, 다음 하위 절들로 구성됩니다:
- 1.1 평가 모델 (Evaluation Model)
- 1.1.1 하위 표현식 평가와 연속 (Sub-expression Evaluation and Continuations)
- 1.1.2 꼬리 위치 (Tail Position)
- 1.1.3 여러 반환값 (Multiple Return Values)
- 1.1.4 최상위 변수 (Top-Level Variables)
- 1.1.5 객체와 명령형 갱신 (Objects and Imperative Update)
- 1.1.6 가비지 컬렉션 (Garbage Collection)
- 1.1.7 프로시저 적용과 지역 변수 (Procedure Applications and Local Variables)
- 1.1.8 변수와 위치 (Variables and Locations)
- 1.1.9 모듈과 모듈 수준 변수 (Modules and Module-Level Variables)
- 1.1.9.1 페이즈 (Phases)
- 1.1.9.2 별도 컴파일 보장 (The Separate Compilation Guarantee)
- 1.1.9.3 교차 페이즈 영속 모듈 (Cross-Phase Persistent Modules)
- 1.1.9.4 모듈 재선언 (Module Redeclarations)
- 1.1.9.5 서브모듈 (Submodules)
- 1.1.10 연속 프레임과 마크 (Continuation Frames and Marks)
- 1.1.11 프롬프트, 제한 연속, 배리어 (Prompts, Delimited Continuations, and Barriers)
- 1.1.12 스레드 (Threads)
- 1.1.13 파라미터 (Parameters)
- 1.1.14 예외 (Exceptions)
- 1.1.15 커스토디언 (Custodians)
- 1.2 문법 모델 (Syntax Model)
- 1.2.1 식별자, 바인딩, 스코프 (Identifiers, Binding, and Scopes)
- 1.2.2 문법 객체 (Syntax Objects)
- 1.2.3 확장, 파싱 (Expansion)
- 1.2.3.1 완전 확장 프로그램 (Fully Expanded Programs)
- 1.2.3.2 확장 단계 (Expansion Steps)
- 1.2.3.3 확장 맥락 (Expansion Context)
- 1.2.3.4 바인딩 도입하기 (Introducing Bindings)
- 1.2.3.5 변환기 바인딩 (Transformer Bindings)
- 1.2.3.6 지역 바인딩 맥락 (Local Binding Context)
- 1.2.3.7 부분 확장 (Partial Expansion)
- 1.2.3.8 내부 정의 (Internal Definitions)
- 1.2.3.9 모듈 확장, 페이즈, 비짓 (Module Expansion, Phases, and Visits)
- 1.2.3.10 매크로 도입 바인딩 (Macro-Introduced Bindings)
- 1.2.4 컴파일 (Compilation)
- 1.2.5 네임스페이스 (Namespaces)
- 1.2.6 추론된 값 이름 (Inferred Value Names)
- 1.2.7 교차 페이즈 영속 모듈 선언 (Cross-Phase Persistent Module Declarations)
- 1.3 리더 (The Reader)
- 1.4 프린터 (The Printer)
- 1.5 구현들 (Implementations)