본문 바로가기
: ) IT

프로그램 번역과정(Compiler)

by miiinn 2026. 1. 13.

컴파일러의 앞부분 단계인 어휘 분석구문 분석은 시험에서 정말 단골로 비교되는 개념입니다. 아주 쉽게 구분하는 법을 알려드릴게요.

비유하자면 **어휘 분석은 '단어 찾기'**이고, **구문 분석은 '문법 검사'**입니다.


1. 어휘 분석 (Lexical Analysis)

프로그램 코드를 읽어서 의미 있는 최소 단위인 **토큰(Token)**으로 나누는 단계입니다.

  • 하는 일: 코드 전체를 글자 단위로 읽어서 int, a, =, 10 같이 의미 있는 덩어리로 자릅니다.
  • 담당자: 스캐너(Scanner)
  • 주요 작업:
    • 공백 제거, 주석 제거
    • 변수명, 예약어, 상수, 연산자 구분
    • **정규 표현식(Regular Expression)**과 유한 오토마타(Finite Automata) 이론을 사용함 (시험 키워드!)

2. 구문 분석 (Syntax Analysis)

어휘 분석에서 넘어온 토큰들이 언어의 문법 규칙에 맞게 나열되었는지 확인하는 단계입니다.

  • 하는 일: int a = 10;은 맞지만, 10 = a int;는 문법이 틀렸다고 잡아내는 식입니다.
  • 담당자: 파서(Parser)
  • 주요 결과물: 파스 트리(Parse Tree) 또는 추상 구문 트리(AST)를 생성합니다.
  • 주요 작업:
    • 문장 구조가 맞는지 검사
    • **문맥 자유 문법(Context-Free Grammar)**과 푸시다운 오토마타(Pushdown Automata) 이론을 사용함 (시험 키워드!)

💡 한눈에 비교 (시험용)

구분 어휘 분석 (Lexical) 구문 분석 (Syntax)
단위 토큰 (Token) 문장/표현식 (Sentence)
도구 스캐너 (Scanner) 파서 (Parser)
결과물 토큰 스트림 파스 트리 (Parse Tree)
이론 정규 표현식, 유한 오토마타 문맥 자유 문법, 푸시다운 오토마타
비유 단어를 사전에서 찾음 주어/동사 순서가 맞는지 검사

': ) IT' 카테고리의 다른 글

HDLC (High-level Data Link Control)  (0) 2026.01.13
OSI 7계층  (0) 2026.01.13
오류검출방식  (0) 2026.01.10
컴퓨터 부팅 과정  (0) 2026.01.09
RAM vs ROM  (0) 2026.01.09