Page 20 -
P. 20

1.6         형식 언어와 자연 언어                                THINK PYTHON







                   영어, 스페인어, 프랑스어처럼 사람들이 말하는 언어가 자연 언어다. (자연 언어에 어떤 질서를 부
                   여하려고 시도하는 사람들도 있지만) 이러한 언어는 사람들이 만들어낸 것이 아니다. 자연 언어는

                   자연적으로 진화했다.
                   사람들이 특정 용도로 만들어낸 언어가 형식 언어다. 예를 들면 수학에서 숫자와 기호 사이에 관

                   계를 표현하는 데 사용하는 표기법이 형식 언어다. 화학자는 분자의 화학 구조를 표현하는 데 형
                   식 언어를 사용한다. 그리고 가장 중요한 언어

                      프로그래밍 언어도 계산을 표현하기 위해 고안된 형식 언어다.

                   형식 언어는 문장 구조를 지배하는 엄격한 구문(syntax) 규칙을 갖는 경향이 있다. 예를 들어 수학에
                   서 3 + 3 = 6은 올바른 구문이지만, 3 + = 3$6은 그렇지 않다. 화학에서 H 2 O는 구문에 따라 올
                   바른 화학식이지만,  2 Zz는 올바르지 않다.

                   구문 규칙은 토큰과 구조, 두 가지로 표현한다. 토큰(token)은 언어의 기본 원소로 단어, 숫자, 화학
                   원소(chemical element) 같은 걸 말한다. 3 + = 3$6이 갖는 문제 중에 하나는 $가 수학에서 올바른
                   토큰이 아니라는 것이다(최소한 내가 아는 지식수준에서는 그렇다). 마찬가지로  2 Zz도 올바르지

                   않은데, 왜냐하면 Zz 약어를 갖는 원소가 없기 때문이다.
                   구문 규칙의 두 번째 유형은 토큰을 결합하는 방식이다. 3 + = 3이라는 등식은 올바르지 않은데
                   +와 =이 올바른 토큰이라 해도 토큰을 연이어 쓸 수 없기 때문이다. 마찬가지로 화학식에서 아래

                   첨자는 원소 이름 뒤에 쓰지 원소 앞에 쓰지 않는다.
                                                               *
                   이 문$장은 잘못된 토*큰을 갖지만 잘 @구조화되어 있다.  이 문장은 모두 유효한 토큰으로 되어
                   있지만, 잘못된 구조를 갖고 있다.

                   영어로 된 문장을 읽거나 형식 언어에서 문장을 읽는다면 구조를 파악해야 한다. 자연 언어에서는
                   무의식적으로 구조를 파악하고 있다. 이렇게 구조를 파악하는 과정을 파싱(parsing)이라고 한다.

                   형식 언어와 자연 언어는 토큰, 구조, 구문 같은 공통 특성도 많지만, 다음과 같이 몇 가지 차이점
                   도 있다.





                   *   역주 원문은 This is @ well-structured Engli$h sentence with invalid t*kens in it.

             032




         씽크 파이썬 개정2판(본문)최종.indd   32                                                            2017-09-19   오전 11:37:09
   15   16   17   18   19   20   21   22   23   24   25