Formal Language   형식 언어

(2022-02-15)

Natural Language, 자연 언어, 자연어, Artificial Language, 인공 언어, 인공어, Formal Grammar, 형식 문법


1. 언어의 구분

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

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

  ㅇ 형식 언어 (Formal Language)    : 언어문법 구조를 수학적 측면에서 형식화한 인공 언어
     - 프로그래밍 언어들에서, 일반적인(공통적인) 특성들을 더욱 추상화시킨 언어
     - 완벽하게 정의될 수 있는 규칙들을 갖음 (모호함을 없앰)
     * Formal(형식) : 빈틈이 없는, 기호적인, 엄밀한 등을 뜻함  

     * 촘스키(Noam Chomsky,1928~)는, 
        . 언어추상적인 형식체계로 규정하고 있음             ☞ 문맥 자유 문법 참조 


2. 언어에 대한 형식적 정의 (Formal Definition)

  ※ 사실상, 언어는, 알파벳 문자들로 구성된 문자열들의 집합 임

  ㅇ 문자 집합 (알파벳)  :  ∑
     - 문장을 이루는 유한개의 기호(심볼)들
     - 例) 다음과 같은 집합알파벳이 됨 
        . ∑ = {a,b,c,...,z}는, 26개의 문자로 구성된 영어 알파벳
        . ∑ = {I,love,you}는, 3개의 단어로 구성된 알파벳
     - 例) 프로그래밍 언어에서의 알파벳은, (키워드,변수,특수기호)들로 구성됨

  ㅇ 문자열 집합 (스트링)  :  ∑* 
     - ∑*은, ∑로부터 구성 가능한 모든 문자열들의 집합 (무한집합 임)
     - (명칭) ∑*를, ∑의 Closure 라고 함
     - (참고) ∑*은, 공백 문자열(비어있는 문자열)도 포함 함
        . (例) 2진 알파벳 ∑ = {0,1}로부터의 문자열 집합은, 
        . `0,10,11,01,010,... 등`과 `공백 문자열인 ε(epsilon)`으로 구성됨
     - (관례) 문자열 기호 : w
        . 문자열 w가 n개 나열 : wn 또는 w{n}
     
  ㅇ 언어 (형식 언어, Formal Language)  :  L 
     - 알파벳으로 만들어지는 문자열들로 구성됨 
        . 즉, 문자열 집합*부분집합,  L ⊆ ∑*
     - 때론, 언어 L에 속하는 각 스트링들을, 단어(word) 또는 문장 이라고 함

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


3. 형식 언어의 例정규표현식

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


"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"