AIINSIGHT NOTE
AI · Web3 · Tech trends and insights at a glance
AI · Web3 · Tech trends and insights at a glance
프로그래밍 언어의 설계 원리, 구현 기법, 이론적 토대를 다룹니다. 컴파일러·인터프리터 구조, 타입 시스템, 파싱, 문법 이론 등 언어가 어떻게 동작하는지 이해하기 위한 핵심 개념을 정리합니다.
프로그래밍 언어론(Programming Language Theory, PLT)은 프로그래밍 언어의 설계·구현·분석·분류를 연구하는 컴퓨터공학의 핵심 분야다. "어떻게 프로그램을 작성하는가"가 아닌 언어 자체가 어떻게 동작하는가를 다룬다.
| 주제 | 설명 |
|---|---|
| 컴파일러 | 소스 코드를 기계어·바이트코드로 변환하는 프로그램. 어휘 분석→구문 분석→의미 분석→코드 생성 단계로 구성 |
| 인터프리터 | 소스 코드를 즉시 해석·실행. Python, Ruby 등이 대표적 |
| 파싱(Parsing) | 소스 코드의 토큰 스트림을 문법에 따라 추상 구문 트리(AST)로 변환 |
| 타입 시스템 | 변수·표현식의 타입을 검사해 오류를 컴파일 타임에 포착. 정적 타입 vs 동적 타입 |
| 형식 문법 | 언어의 문법을 수학적으로 기술하는 방법 (BNF, EBNF, 정규 문법 등) |
| 실행 모델 | 스택 기반, 레지스터 기반, 힙 관리, 가비지 컬렉션 등 실행 환경 설계 |
| 언어 패러다임 | 절차형·객체지향·함수형·선언형 등 언어 설계 철학의 분류 |
| 구분 | 컴파일 | 인터프리터 |
|---|---|---|
| 실행 시점 | 실행 전 전체 변환 | 런타임 줄 단위 해석 |
| 속도 | 빠름 | 상대적으로 느림 |
| 오류 발견 | 컴파일 타임 | 런타임 |
| 예시 | C, C++, Rust, Go | Python, Ruby |