Skip to content

Instantly share code, notes, and snippets.

@dolsup
Last active August 5, 2020 07:27
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dolsup/0958256a5114a2d21355e0bcddbc1dee to your computer and use it in GitHub Desktop.
Save dolsup/0958256a5114a2d21355e0bcddbc1dee to your computer and use it in GitHub Desktop.
난해한 야옹... 언어

난해한 야옹... 언어 v0.4.5

소개

난해한 야옹... 언어(이하 야옹)는 난해한 혀엉... 언어(이하 혀엉)와 상호 트랜스파일 가능한 언어입니다. 야옹혀엉은 기본적으로 동치(equivalent) 관계이며 각 언어의 명령어셋은 서로 1:1 매핑될 수 있습니다.

명령어셋 비교

혀엉 v0.4.5를 기준으로 합니다. 아래 나열된 한글 음절 문자 명령어를 제외한 모든 스펙은 동일합니다.

난해한 야옹... 언어 난해한 혀엉... 언어 해석
, 야옹, 야오옹~~~ , 혀엉, 혀어엉... 글자 수와 마침표 개수를 곱한 값을
현재 스택에 저장합니다.
, 먀암, 먀아암~~~ 하앙하아앙 현재 스택에서 글자 수만큼 뽑아 모두 더하여
마침표 개수에 해당하는 스택에 넣습니다.
, 냐앙, 냐아앙~~~ 하앗하아앗... 현재 스택에서 글자 수만큼 뽑아 모두 곱하여
마침표 개수에 해당하는 스택에 넣습니다.
, 구룱, 구루룱... 흐읏 , 흐으읏... 스택의 위쪽에서 글자 수만큼의 원소들의 부호를 바꾼 후
그 합을 마침표 개수에 해당하는 스택에 넣습니다.
, 꾸욱, 꾸우욱... 흐읍흐으읍... 스택의 위쪽에서 글자 수만큼의 원소들을 역수로 바꾼 후
그 곱을 마침표 개수에 해당하는 스택에 넣습니다.
, 골골, 골골골... 흐윽흐으윽... 현재 스택에서 값을 하나 뽑아, 마침표 개수에 해당하는
스택에 글자 수만큼 복제해서 넣고, 현재 스택에 뽑았던 값을
하나 넣은 뒤, 마침표 개수에 해당하는 스택으로 이동합니다.

특이사항

  • , , 은 마침표 대신 물결표 ~(U+007E)를 사용합니다.
  • , 골골, 골골골 은 같은 명령어입니다. 글자 수가 한 글자일 때만 을 사용합니다.

런타임에서의 스펙 상 차이

혀엉에서는 1번 스택에 NaN이 넣어져버리는 경우 너무 커엇...을 출력하는 것이 스펙입니다만, 야옹을 직접 실행하는 구현체를 제작할 때, 선택적으로 혀엉과의 상호 호환을 무시하고 (냥냥 펀치!!!)를 출력할 수 있습니다.

예시

Hello, world!

야오오오오오오오옹~~~~~~~~ 냥~ 야옹~~~~~ 뺩... 냐앙~~~ 골골... 양~  먀암~ 
야옹~~~~ 먀암~~~ 골골... 먐~ 먐~ 양~~~ 먀암~ 골골골... 양~~~ 꾹... 야옹~~ 
냐아아앙~ 야옹~~ 꾹... 꾸욱... 양~~ 냐앙~ 먀아암~~~ 양~~~ 먀암~~~ 골골... 
야오오옹~~ 먀암~ 먐~ 양~~~ 먀암~ 야옹~~~~ 먀암~ 뺩... 먐~ 양~~~ 꾹 냐앙~ 
야옹~~~~~ 뺩. 굵

TODO

  • hyeongnya(transpiler) 제작 hyeongnya
  • hyeong-testcases 통과
  • 야옹혀엉 중 어느 코드가 더 귀여운지 벤치마크 테스트

Special Thanks

@0x1f440 '야옹 언어'라는 단어를 언급하신 데서 영감을 얻었습니다.

@dolsup
Copy link
Author

dolsup commented Dec 15, 2018

애옹을 못 넣어서 아쉽습니다

@chalkpe
Copy link

chalkpe commented Dec 17, 2018

애옹~~~~~

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment