/jazzlang

샤빱두비뚜밥 두비두비두비두비 뚜비두밥 사바두비두봐 샤바다 두붸둡 🎷

Primary LanguageHTMLMIT LicenseMIT

재즈가 뭐라고 생각하세요? 🎷

이 저장소는 난해한 프로그래밍 언어 만들어보기 포스팅에서 언어 제작 예제를 위해 만들어졌습니다. 이왕 만드는 김에 재밌는 밈을 이용하여 구현해봤습니다. 기본적인 구현 스펙은 Brainfuck과 거의 동일합니다.

샤빱두비뚜밥 두비두비두비두비 뚜비두밥 사바두비두봐 샤바다 두붸둡

주호민: 재즈가 뭐라고 생각하세요? 침착맨 님
침착맨: 재즈요? / 주호민: 네
침착맨: 상대방의 그... 호흡, 화합 / 주호민: 아니
주호민: 샤빱두비뚜밥 두비두비두비두비 뚜비두밥 사바두비두봐 샤바다 두붸둡
주호민: 이거야

밈에 대한 자세한 설명은 나무위키를 참고해주세요.

사용법

각 구현체 디렉토리 README에 구체적인 실행 방법이 기록되어 있습니다. 공통적인 규칙은 다음과 같습니다.

  • 스크립트 확장자는 .jazz 입니다.
  • 재즈가 뭐라고 생각하세요?부터 명령어를 인식합니다. 이거야가 나오면 프로그램이 종료됩니다.
  • 문법에 적힌 명령어 외 문자는 무시됩니다. 예를 들어, 공백 문자는 무시됩니다.
  • 문법은 하단 설명을 읽어주세요.

문법

재즈가 뭐라고 생각하세요?부터 명령어를 인식합니다. 이거야가 나오면 프로그램이 종료됩니다. 즉, 재즈가 뭐라고 생각하세요? 위로 이거야 아래로 무시됩니다. 외에는 기본적으로 Brainfuck 언어와 생긴 것만 다르고 동일합니다.

명령어 의미
샤빱 포인터 위치가 1 증가됩니다.
사바 포인터 위치가 1 감소합니다.
두비 포인터 위치에 해당하는 값이 1 증가합니다.
두밥 포인터 위치에 해당하는 값이 1 감소합니다.
두붸둡 포인터에 해당하는 값을 ASCII 값으로 출력합니다.
샤바다 포인터 위치에 입력받은 값을 저장합니다.
뚜비 포인터 위치에 해당하는 값이 0이라면 "두봐"로 이동합니다. 0이 아니라면 다음 명령어로 이동합니다.
두봐 포인터 위치에 해당하는 값이 0이 아니라면 "뚜비"로 이동합니다. 0이라면 다음 명령어로 이동합니다.

예제

Hello, World!

재즈가 뭐라고 생각하세요?
두비두비두비 두비두비두비 두비두비두비두비
뚜비 샤빱 두비두비 두비두비두비 두비두비 샤빱 두비두비두비 두비두비두비 두비두비두비두비 샤빱 두비두비두비 샤빱 두비 사바사바사바사바 두밥 두봐
샤빱 두비두비 두붸둡 샤빱 두비 두붸둡 두비두비두비 두비두비두비두비 두붸둡 두붸둡 두비두비두비 두붸둡 샤빱
두비두비두비 두비두비두비 두비두비두비 두비두비두비 두비두비 두붸둡 두밥두밥두밥 두밥두밥두밥 두밥두밥두밥 두밥두밥두밥 두붸둡 사바사바
두비두비두비 두비두비두비 두비두비두비 두비두비두비 두비두비두비 두붸둡 샤빱 두붸둡 두비두비두비 두붸둡 두밥두밥두밥 두밥두밥두밥 두붸둡
두밥두밥두밥 두밥두밥두밥 두밥두밥 두붸둡 샤빱 두비 두붸둡
이거야

구현체

참고자료

라이센스

MIT License.