5강. 구문 분석

학습개요

앞서 우리는 문자가 모여 어휘를 구성하고 이 어휘들이 구문에 맞게 모여 프로그램을 구성하는 것을 보았습니다. 이렇게 만들어진 프로그램을 실행하기 위해서는 우선 그 프로그램을 분석하여 어떤 구문이 사용되었는지 파악한 후 그에 맞춰 기계적으로 수행하면 됩니다. 이번 강의에서는 프로그램 분석에 필요한 어휘 분석과 구문 분석에 대해 알아봅니다. 특히 구문 분석을 위한 유도와 파스 트리의 개념을 학습하고, 모호한 문법의 개념과 모호성을 제거하는 방법에 대해 자세히 알아봅니다.

학습목표

  1. 어휘 분석의 개념을 이해하고 토큰의 종류를 설명할 수 있다.
  2. 구문 분석을 위한 유도와 파스 트리의 개념을 설명할 수 있다.
  3. 모호한 문법의 개념을 이해하고 모호성을 제거하는 방법을 설명할 수 있다.

정리하기

  1. 프로그램의 분석은 크게 어휘 분석과 구문 분석으로 나눌 수 있다.
  2. 어휘 분석을 통해 프로그램에서 사용된 단어인 토큰을 구별해 낸다. 토큰의 종류에는 연산자, 구분자, 식별자, 예약어 등이 있다.
  3. 식별자는 변수나 함수 등의 이름을 나타내는 토큰이다.
  4. 예약어는 프로그래밍 언어 자체에 정의되어 포함된 토큰으로 사용자 재정의가 불가능하다.
  5. 유도는 구문 규칙을 이용하여 주어진 프로그램을 만들어 내는 과정으로, 유도가 가능하다면 주어진 프로그램은 문법적 오류가 없다.
  6. 파스 트리는 유도를 트리 형태로 나타낸 것으로, 루트 노드는 시작 비단말 기호, 단말 노드는 단말 기호가 된다. 단말 노드를 왼쪽부터 오른쪽으로 차례로 나열하면 주어진 프로그램이 된다.
  7. 주어진 표현에 대한 파스트리가 존재하면 구문에 부합하는 표현이지만, 파스 트리가 존재하지 않으면 오류가 있는 표현이다.
  8. 모호한 문법은 동일한 표현에 대해 서로 다른 파스 트리가 만들어지는 문법으로, 하나의 프로그램이 서로 다른 결과를 도출할 수 있는 위험을 내포하고 있다.
  9. 모호한 문법은 문법을 명확하게 변경하여 모호성을 제거해야 한다.

Leave a Comment