첫 밑그림

한글/한국어 기반 프로그래밍 언어 글타래에서 오간 긴 논의에서 얻은 아이디어에 제 생각을 약간 보태 새로운 언어를 구상해 보았습니다. ‘얼(eol)’은 임시로 붙인 이름입니다.

일단 널리 퍼져있는 외래어/외국어를 썼는데 좀 덜 어색한 말로 바꿔야할 것 같습니다.

값 리터럴

값 리터럴은 숫자, 문자열, 심볼 등이 해당되며, 값 리터럴 뒤에 오는 문자열은 다음 토큰 전까지 모두 무시됩니다. 다시 말해, 다음은 모두 value와 같습니다.

숫자

(TBD: 정확한 표준이 필요함)

문자열

쌍따옴표로 둘러싸면 됩니다.

"안녕하세요!"

(TBD: 특수 문자는 어떻게 넣나?)

심볼 (또는 quoted expression)

홑따옴표로 둘러싸면 됩니다.

'사과'

'딸기'

식별자를 조사와 구분지을 때도 쓸 수 있습니다.

'너'와

시퀀스 리터럴

따로 문법이라 할만한 것은 없고 그냥 값 리터럴을 나열하면 됩니다. (두번째 예제부터는 값 리터럴 뒤를 무시하기 때문에 가능합니다.)

1 2 3 4

1, 2, 3, 4

1과 2와 3과 4

이것을 응용하여 속성 목록—정확히 뭐라고 부르는지 모르겠네요—도 만들 수 있습니다.

"apple"은 "사과", "banana"는 "바나나", "orange"는 "어륀지"

객체와 메시지

(주: 제가 그나마 잘 아는 객체 지향 모델을 사용하였습니다. 함수형 언어처럼 바꿀 수 있을지도 모릅니다.)

얼 코드는 객체에 메시지를 보내는 문장이 모여 만들어집니다. 메시지를 보내는 문법은 이렇습니다.

(객체) 아무거나-해

어떤 메시지인지 알려주는 것과 함께 다른 값을 보낼 수도 있습니다.

('누구누구'야) "고양이"를 부탁해

여러 메시지를 연쇄할 수도 있습니다.

(객체) "이걸" "이렇게" 하고 "저것도" 하고 "계속" 하고

왜 객체 이름에는 괄호가 쳐져 있을까요? 객체를 생략할 수도 있기 때문이죠.

"고양이"를 부탁해

클로져

(TBD: 일단 예제만 써봅니다)

(1, 2, 3) 각각: '2을 곱해' 더해 출력

매크로 (타입?)

(TBD: 새로운 형태의 리터럴을 정의할 수 있습니다. 조사를 버리지 않고?)

예제 코드

메소드를 작성하는 법을 아직 정하지 못했으니 어쩔 수가 없네요. -_-;; 결국 별로 쓸모없는 글이 되어버렸;; (시작은 창대하였으나 그 끝은 미약하리니!)