├── .gitignore ├── .gitmodules ├── hello.c ├── c2aheui └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "elvm"] 2 | path = elvm 3 | url = https://github.com/puzzlet/elvm.git 4 | -------------------------------------------------------------------------------- /hello.c: -------------------------------------------------------------------------------- 1 | int putchar(int x); 2 | int main() { 3 | const char* msg = "Hello, world!\n"; 4 | for (; *msg; msg++) 5 | putchar(*msg); 6 | return 0; 7 | } 8 | -------------------------------------------------------------------------------- /c2aheui: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | SCRIPT_DIR="$(dirname "$(readlink -f "$0")")" 4 | tmpfile=$(mktemp /tmp/c2aheui.XXXXXX) 5 | 6 | $SCRIPT_DIR/elvm/out/8cc -S -I$SCRIPT_DIR/elvm/libc -o $tmpfile $1 7 | 8 | $SCRIPT_DIR/elvm/out/elc -aheui $tmpfile > $1.aheui 9 | 10 | rm $tmpfile 11 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 1446년 훈민정음이 반포된 이래, 아희는 가장 성공한 한글 프로그래밍 언어가 되었습니다. 2 | 3 | 아희가 성공적인 언어라는 것은 국내 최대의 프로그래밍 커뮤니티 중의 하나인 [백준 온라인 저지](https://www.acmicpc.net/)에서 지원하는 70여개의 프로그래밍 언어 중에서 유일한 한글 프로그래밍 언어가 아희라는 것만 봐도 알 수 있습니다. 4 | 5 | 하지만 안타깝게도 많은 수의 프로그래밍 교육 과정에서 아희가 빠져 있고, 대부분의 코딩 테스트 사이트에서 아희를 지원하지 않습니다. 위에 언급한 백준 온라인 저지에서조차도 아희보다 더 배우기 어려운 C나 C++ 같은 언어가 주로 쓰이는 것이 현실입니다. 6 | 7 | 문제의 원인을 좇아보면 다음으로 정리할 수 있습니다: 8 | 9 | - 많은 사람들이 아희로 실용적인 코드를 짜본 경험이 부족하다. 10 | - 아희 코드에 친숙한 사람이 적다. 11 | 12 | 만약 다른 언어로 짠 코드를 아희로 변환시켜서 실행시켜 볼 수 있게 해준다면 아희로 코드를 직쩝 짜본 적이 없던 사람도 아희 코드에 친숙하게 접근할 수 있게 될 것이고, 결국 아희로도 코드를 짜게 될 것입니다. 13 | 14 | 이에 C 코드를 아희 코드로 변환하는 도구를 제안합니다. 15 | 16 | ```bash 17 | $ ./c2aheui hello.c 18 | $ rpaheui-c hello.aheui 19 | Hello, world! 20 | 21 | $ 22 | ``` 23 | 24 | ## 설치 25 | 26 | ```bash 27 | $ git clone https://github.com/aheui/c2aheui 28 | $ cd c2aheui 29 | $ make -C elvm 30 | 31 | ... 32 | 33 | $ 34 | ``` 35 | 36 | ## 참고 37 | 38 | - https://github.com/Algy/aheui-cc - 아희 → C 39 | - https://github.com/kiwiyou/palheui - 아희 → C 40 | - https://github.com/aheui/rpaheui/pull/14 - 아희 → C++ 41 | 42 | --------------------------------------------------------------------------------