#programming-language
노트 5개
Computer Science › Programming Languages
타입 시스템: 검사, 추론, 다형성, 변성, 건전성타입 시스템이 프로그램의 어떤 오류를 언제 막는지 정리한다. 정적·동적 검사와 그 한계, 타입 판단과 추론 규칙, 곱·합·함수·재귀 타입과 Option·Result, 제약 생성과 단일화로 하는 타입 추론, 매개변수·부분형·임시 다형성(정적·동적 다형성), 명목적·구조적 타입과 덕 타이핑, 공변·반공변·무공변, 패턴 매칭의 완전성 검사, 진행과 보존으로 보는 타입 건전성, 의존 타입과 선형·아핀 타입.
Computer Science › Programming Languages
프로그래밍 언어 의미론: 구문, 바인딩, 람다 계산, 평가 전략프로그래밍 언어 이론의 기초 개념을 정리한다. 구문과 의미론, 구체 구문과 AST, 작은·큰 단계 연산 의미론과 표시·공리적 의미론, 자유·바인딩 변수와 렉시컬·동적 스코프, 클로저의 환경, 람다 계산의 알파 변환·베타 축약과 변수 포획, 값·이름·필요에 의한 호출과 참조·공유에 의한 호출, 환경과 저장소와 별칭, 연속과 CPS, 프로그램 동치와 Hoare 논리, 위생적 매크로, 컴파일·해석이 구현의 성질인 이유, 의미를 보존하는 최적화.
Computer Science › Programming Languages
Kotlin 핵심 문법: 널 안전성, 클래스 종류, 지연 초기화, 스코프 함수Kotlin이 Java와 다른 핵심 문법을 정리한다. 타입 시스템의 널 안전성, data·sealed·enum 클래스와 object·companion object, lateinit과 by lazy의 차이, let·run·with·apply·also 스코프 함수 고르는 법, 일급 함수와 고차 함수.
Computer Science › Programming Languages
Python 언어 기본: 객체와 가변성, 함수, 데코레이터, 클래스, 타입 힌트, importPython 문법이 실제로 어떻게 동작하는지 주제별로 정리한다. 이름과 객체, 가변·불변 타입과 is·==, 얕은 복사와 깊은 복사, *args·**kwargs와 인자 종류, 일급 함수와 LEGB 스코프·클로저·nonlocal, 람다의 제약, 데코레이터, 컴프리헨션과 제너레이터 식, 컨텍스트 매니저, 클래스 변수와 인스턴스 변수, 이름 맹글링, 매직 메서드, 프로퍼티와 디스크립터, 타입 힌트와 mypy, import 시스템과 __init__.py, Python 2와 3의 차이.
Computer Science › Programming Languages
Python 언어 동작: 제너레이터, MRO, 메모리 관리, 동시성, 성능Python의 런타임 동작을 정리한다. 이터러블·이터레이터·제너레이터의 관계와 지연 평가, 다중 상속의 MRO(C3 선형화)와 super(), CPython의 참조 카운팅·세대별 순환 수집과 메모리 누수 패턴, threading·multiprocessing·asyncio 비교와 이벤트 루프·TaskGroup, 측정에서 런타임 교체까지의 성능 최적화, CPython·PyPy(추적 JIT)·Jython(JVM, GIL 없음) 구현체 비교, 덕 타이핑과 Protocol.