Lisp로 주문 외기 - 4 -

2009-02-03

라이센스 - The GNU Free Documentation License 원저자 - Conrad Barski, M.D. 원본 출처 - http://lisperati.com/casting.html

문법과 의미

모든 컴퓨터 언어는 문법(syntax)의미(semantics)로 구성된 코드가 있습니다. 컴퓨터 언어의 문법(syntax)이란 건, 컴파일러가 프로그램에 쓰여있는 게 뭐가 뭔지 알 수 있도록 프로그램을 짤 때 따라야 하는 기본적인 뼈대에요. 그러니까 그게 뭐가 함수고, 뭐가 변수고, 뭐가 뭐고 하는 걸 알 수 있도록 해 주는 거죠. 프로그램에서의 의미(semantics)란 건 아무거나라고 말하는 게 좋겠네요. 가능한 여러가지 서로 다른 명령이라든가, 프로그램의 어디서든 볼 수 있도록 허락한 변수들이라든가 뭐 그런 거. Lisp가 특별한 첫 번째 점은 유명한 프로그래밍 언어중에서 가장 문법이 간단하다는 거에요.

기본적으로, Lisp의 문법은 Lisp 컴파일러에 넘겨주는 건 어떤 문장이든지 목록(list)형태로 정렬되어 있어야 한다는 겁니다. 뭐 그런 게 필요하면 목록 안에 목록을 겹칠 수도 있겠죠. 괄호-(,)-로 각 목록의 처음과 끝을 표시합니다. list

추가로, Lisp 컴파일러는 코드를 읽을 때 두 가지 형태를 사용합니다. 바로 코드 모드(Code mode)데이터 모드(Data mode)지요. 데이터 모드에서는, 목록에 원하는 무었이든지 넣을 수 있습니다. 하지만 컴파일러가 일단 코드 모드로 코드를 읽기 시작하면, 코드 모드에서는 목록은 형식(Form)이라고 하는 특별한 모양이 되어야 합니다. frame 형식(Form)은 목록의 첫번째 기호가 컴파일러가 알아들을 수 있는 특별한 단어로 시작되는 목록입니다. 보통은 함수의 이름이지요. 이 경우, 컴파일러는 목록의 다른 항목들을 함수에 인수로 보내줍니다. 이 인수들로 문장을 읽을 때는, 데이터모드로 바꾸기 전에는 보통 그것들도 코드 모드로 가정하고 읽습니다.

Lisp로 주문 외기 - 3 - Lisp로 주문 외기 - 5 -