KALANG: Korean Programming Language.
ํ๊ตญ์ด ํ๋ก๊ทธ๋๋ฐ ์ธ์ด.
- < 0.03 MB.
- 250 ๊ฐ ์ด์์ ํ ์คํธ ์ผ์ด์ค.
- ๋ธ๋ผ์ฐ์ ์์ ๋ฐ๋ก ๋์ํ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ตฌํ์ฒด.
- ํ๊ตญ์ด ํค์๋๋ก ๊ตฌ์ฑ๋ ๊ฐ๋จํ ๋ฌธ๋ฒ.
KALANG ์ ํ๋ ์ด๊ทธ๋ผ์ด๋์์ ์ฒดํํด๋ณด์ธ์.
KALANG ์ธํฐํ๋ฆฌํฐ๋ฅผ ๋ธ๋ผ์ฐ์ ์ ๋ก๋ํ๊ฑฐ๋ ์ง์ ๋น๋ํ๋ ๋ฐฉ๋ฒ์ ์๋๋ฅผ ์ฐธ๊ณ ํ์ธ์.
๋ค์๊ณผ ๊ฐ์ด ์ธํฐํ๋ฆฌํฐ ์คํฌ๋ฆฝํธ๋ฅผ HTML ์์์ ๋ก๋ํฉ๋๋ค.
<script src="https://cdn.jsdelivr.net/gh/wcho21/kal@latest/dist/index.min.js"></script>
์ดํ, KALANG ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ด kal.execute(code-to-execute)
๋ก ์คํํฉ๋๋ค.
kal.execute("5+5"); // === 10
ํ์ค ์ถ๋ ฅ์ ์ํด ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ๋ฑ๋กํ ์ ์์ต๋๋ค.
const stdouts = [];
kal.execute("์ฐ๊ธฐ('์ฌ๊ณผ')", stdout => stdouts.push(stdout)); // stdout === ["์ฌ๊ณผ"]
๋ณ์ ๋์ ํ๊ธฐ:
์ฌ๊ณผ = 42
๊ฐ ๋น๊ตํ๊ธฐ:
์ฌ๊ณผ < 99
์กฐ๊ฑด๋ฌธ ์ฐ๊ธฐ:
๋ง์ฝ ์ฌ๊ณผ < 99 {
์ฌ๊ณผ = 99
} ์๋๋ฉด {
์ฌ๊ณผ = 100
}
ํจ์ ์ฌ์ฉํ๊ธฐ:
๋ํ๊ธฐ = ํจ์(์ซ์1, ์ซ์2) {
๊ฒฐ๊ณผ ์ซ์1 + ์ซ์2
}
๋ํ๊ธฐ(42, 10)
๊ฒฐ๊ณผ๋ 52
์
๋๋ค.
ํด๋ก์ ๋ฐ ์ปค๋ง:
๋ํ๊ธฐ = ํจ์(์ซ์1) {
๊ฒฐ๊ณผ ํจ์(์ซ์2) {
๊ฒฐ๊ณผ ์ซ์1 + ์ซ์2
}
}
ํ๋๋ํ๊ธฐ = ๋ํ๊ธฐ(1)
ํ๋๋ํ๊ธฐ(42)
๋ํ๊ธฐ(1)(42)
๊ฒฐ๊ณผ๋ ๋ ๋ค 42
์
๋๋ค.
์ฐ๊ธฐ()
:
์ฐ๊ธฐ('์ฌ๊ณผ')
์ฐ๊ธฐ('ํฌ๋', '๋ฐ๋๋')
๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ฌ๊ณผ
ํฌ๋ ๋ฐ๋๋
๊ธธ์ด()
:
๊ธธ์ด('์ฌ๊ณผ')
๊ฒฐ๊ณผ๋ 2
์
๋๋ค.
์ซ์ ํ์ : ์๋ฌด ๋ถ๋์์์ ์ซ์
์ฌ๊ณผ = 42
ํฌ๋ = -9.5
๋ฌธ์์ด ํ์ : ์์๋ฐ์ดํ๋ก ๋๋ฌ์ผ ๋ฌธ์๋ค
์ฌ๊ณผ = '๋ง์์'
๋ถ๋ฆฌ์ธ ํ์
: ์ฐธ
, ๊ฑฐ์ง
์ฌ๊ณผ = ์ฐธ
ํฌ๋ = ๊ฑฐ์ง
๋น๋ ๊ณผ์ ์ Node.js๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค.
pnpm
์ ์ด์ฉํด, KALANG ์ธํฐํ๋ฆฌํฐ๋ฅผ pnpm install && pnpm build
๋ก ๋น๋ํ ์ ์์ต๋๋ค.
๋น๋ ๊ฒฐ๊ณผ๋ /dist/index.min.js
๋๋ ํ ๋ฆฌ์ ์์นํฉ๋๋ค.