Skip to content

Just a small Kalang interpreter written in Python

License

Notifications You must be signed in to change notification settings

irijije/Kalang

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kalang은 튜링 완전 프로그래밍 언어입니다.

  • 카무위키에 영감을 받아 만들게 되었습니다.
  • brainfuck 언어의 아종입니다. v0.1은 테스트를 위해 아래 brainfuck 인터프리터를 그대로 가져다 썼습니다. https://github.com/pocmo/Python-Brainfuck

문법

잘했다. 포인터 증가
어이쿠! 포인터 감소
음, 포인터가 가리키는 바이트의 값을 증가
그래, 포인터가 가리키는 바이트의 값을 감소
임금커피 포인터가 가리키는 바이트 값을 아스키 코드 문자로 출력한다.
프록시마스 포인터가 가리키는 바이트에 아스키 코드 값을 입력한다.
괜찮아~ 포인터가 가리키는 바이트의 값이 0이 되면 짝이 되는 ]로 이동한다. 의사코드로는 while(*ptr != 0) {...} 이다.
천천히해~ 포인터가 가리키는 바이트의 값이 0이 아니면 짝이 되는 [로 이동한다.
EOF(\0) 문자로 드러나지 않는 토큰이며 프로그램을 종료한다.

인터프리터 사용법

python3 kalang.py yourcode.ka

예제

  • 아래는 Hello, World!를 출력하는 Kalang 예제입니다.
음,음,음,음,음,음,음,음,음,음,
괜찮아~잘했다.음,음,음,음,음,음,음,잘했다.음,음,음,음,음,음,음,음,음,음,잘했다.음,음,음,잘했다.음,어이쿠!어이쿠!어이쿠!어이쿠!그래,천천히해~
잘했다.음,음,임금커피잘했다.음,임금커피음,음,음,음,음,음,음,임금커피임금커피음,음,음,임금커피잘했다.음,음,음,음,음,음,음,음,음,음,음,음,음,음,임금커피그래,그래,그래,그래,그래,그래,그래,그래,그래,그래,그래,그래,임금커피어이쿠!어이쿠!음,음,음,음,음,음,음,음,음,음,음,음,음,음,음,임금커피잘했다.임금커피음,음,음,임금커피그래,그래,그래,그래,그래,그래,임금커피그래,그래,그래,그래,그래,그래,그래,그래,임금커피잘했다.음,임금커피
  • 결과
jglee@no1:~/Test/Kalang$ python3 kalang.py test_hello.ka 
Hello, World!

로드맵

  • brainfuck에서 벗어나 범용 프로그래밍 언어로의 도약을 꿈꾸고 있습니다.
  • 컴파일러에 관심이 있는 개발자들의 컨트리뷰션을 언제나 환영합니다.

About

Just a small Kalang interpreter written in Python

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%