Whitespace란 언어...

segfault의 이미지

알만한 분은 다 아시겠지만

http://compsoc.dur.ac.uk/whitespace/

공백으로 된 언어죠..

그나저나 코드 가독성은 정말 최악일거라는 생각이 드는군요 -_-;

샘플 코드를 받아봤는데

어떻게 생겨먹었는지도 전혀 안 보이는군요 -_-

디버깅은 어떻게 하려나...

cdpark의 이미지

몇번 다뤄진 주제랍니다.

빈칸 언어
http://bbs.kldp.org/viewtopic.php?t=2020

혹시 아시는 특이한 프로그래밍 언어 없나요?
http://bbs.kldp.org/viewtopic.php?t=29429

아예 해석기까지 만드신 분도 있죠.

그냥 재미로 만든... :)
http://bbs.kldp.org/viewtopic.php?t=48460

lifthrasiir의 이미지

제가 위의 파이썬 코드 짠 사람입니다. -_-;;;

음... Whitespace는 명령 체계가 상당히 단순한 편에 속합니다. label 명령이 따로 있고요. 실제로 코딩할 때는 Whitespace Assembly라고 해서 Whitespace와 명령이 1:1 대응되는 어셈블리 언어를 사용해서 만드는 걸로 알고 있습니다.

예를 들어서 "Tokigun\n"을 출력하는 프로그램이라면 다음과 같이 작성합니다.

; 어셈블리 문법은 인터프리터마다 조금씩 다릅니다.

  push 0
  push 10
  push 110
  push 117
  push 103
  push 105
  push 107
  push 111
  push 84
print:
  dup
  jz printend
  putchar
  jmp print
printend:
  halt

위 코드를 다음과 같이 컴파일(즉, 공백 문자로 변경)해서 실행하면 Tokigun이라는 출력을 볼 수 있습니다.

$ python tenma.py -c tokigun.wsa tokigun.ws
compile tokigun.wsa to tokigun.ws... done.

$ python tenma.py tokigun.ws
Tokigun

디버깅은 인터프리터 자체에서 지원하는 경우가 많습니다. (예를 들어서 어셈블리 차원에서 디버깅 명령을 지원한다던지...)

- 토끼군