신택스 그리고 시맨틱

모든 컴퓨터 언어는 신택스(Syntax, 문법/구조론)시맨틱(Semantic, 의미론) 으로 이루어진 코드를 가지고 있습니다.

신택스 는 프로그램에서 컴파일러가 무엇이 무엇인지 알 수 있도록 따라야만 하는 프로그래밍 언어의 기본 빼대입니다. 이로써 무엇이 함수인지, 변수인지 등을 알 수 있습니다.

시맨틱 은 프로그램의 좀 더 "랜덤"한 내용을 다룹니다. 프로그램의 특정 지점에서 어떤 변수가 사용가능한지 아닌지 같은 것들이 있습니다.

syntax & semantics
Syntax어떻게 구성되어야 하는가
Semantics어떻게 동작하는가

리스프의 첫 번째로 특별한 부분은 메이저 프로그래밍 언어 중 가장 간결한 신택스를 가지고 있다는 점입니다. 기본적으로 리스프 신택스는 리스프 컴파일러에게 넘겨주는 텍스트를 리스트(list)로 넘기도록 강제합니다. 필요에 따라 중첩된 리스트 역시 가능합니다.

리스트의 시작과 끝은 괄호로 되어있습니다:

;; 쌍번점(`;`)는 주석을 의미합니다.

(list 1 2 3)

추가적으로, 리스프 컴파일러는 두가지 모드를 사용하여 코드를 읽습니다: 코드 모드와 데이터 모드

데이터 모드일때, 리스트에 아무거나 넣을 수 있습니다. 그러나, 컴파일러는 코드 모드에서 코드를 읽기 시작합니다.

모드리스트
코드리스트를 코드로 읽고 실행된다
데이터리스트를 데이터 자체로 취급한다.(실행하지 않는다)

코드 모드에서는 리스트는 "폼(form)" 이라 불리는 특별한 형태의 리스트여야만 합니다.

폼은 리스트이며, 이 리스트의 첫번째 심볼이 컴파일러가 이해할 수 있는 특별한 단어여야 합니다 - 보통은 함수의 이름이며, 컴파일러는 리스트의 나머지 부분을 함수의 인자로 넘김니다. 그리고 이러한 인자들을 읽을때, 데이타 모드로 변환하라고 지정하지 않는한, 코드 모드라 가정하고 읽습니다.

짚고넘어갈것

  • 신택스와 시맨틱
  • 코드모드와 데이터모드
  • 리스트
  • 주석(;)