Language   언어

(2018-05-24)

Natural Language, 자연 언어, Formal Language, 형식 언어

1. 언어(Language) 이란?

  ㅇ 사상,생각,감정을 나타내고, 의사 소통을 위한 상징 체계 또는 기호 체계


2. 언어의 구분

  ㅇ 자연 언어(Natural Language)    : 한국어,영어,독어,일본어 등 (때론, 수화도 포함됨)
     - 자연 언어를 완벽하게 처리할 수 있는 거의 유일한 존재가 인간의 뇌(腦)이지만,
     - 현재, 인공지능이 이에 도전하고 있는 중임

  ㅇ 인공 언어(Artificial Language) : 에스패란토오어(Esperanto), 프로그래밍 언어 등

  ㅇ 형식 언어 (Formal Language)    : 언어의 문법 구조를 수학적 측면에서 형식화한 인공 언어
     - 프로그래밍 언어들의 일반적인(공통적인) 특성들을 추상화시킨 언어
     - 완벽하게 정의될 수 있는 규칙들을 갖음


3. 언어의 형식적 정의 

  ㅇ 문자 집합 (알파벳)   : ∑
     - 例) ∑ = {I,love,you}는, 3개의 단어로 구성된 알파벳
     - 例) 프로그래밍 언어에서의 알파벳은, 키워드,변수,특수기호들로 구성됨

  ㅇ 문자열 집합 (스트링) : ∑* 
     - ∑*은, ∑로부터 구성 가능한 모든 문자열들의 집합 (∑의 closure 라고 함)
     - 例) 2진 알파벳 ∑ = {0,1}로부터의 문자열 집합은, 
        . `0,10,11,01,010,... 등`과 `아무 문자도 아닌 ε(epsilon)`으로 구성됨

  ㅇ 언어 (형식 언어)     : L 
     - 알파벳으로 만들어지는 스트링들로 구성됨 (문자열 집합*부분집합)
     - 때론, 언어 L에 속하는 각 스트링들을, 단어(word) 또는 문장 이라고 함

  ㅇ 문법 (형식 문법)     : 알파벳문자열을 형성하는 규칙
     - 형식 언어를 생성하기 위한 규칙
     - 형식 문법을 표현하는 방법
        . 정규표현식
        . 문법도표
        . BNF
        . EBNF유한 오토마타 : 형식 언어를 입력으로하여 문법에 맞는지 분석하고 판단해주는 것


[컴파일러] 1. 컴파일 2. 전처리 3. 링커,로더 4. 형식 언어 5. 유한상태 머신 6. 어휘/구문/의미 분석 7. BNF,EBNF

 
        최근수정     요약목록(시험중)     참고문헌