๊ธฐ์ RFC: RFC-017 (atlas ๋ด์ฅ + strict lint), RFC-018 (์ง์ codegen), RFC-019 (์๋ฌ ๋ฉ์์ง) ์ด ๋ฌธ์๋ ๊ฐ์ ๋ด์ฉ์ ์๋ฆฌ์ฑ ๋น์ ๋ก ํ์ด ์ด ์ผ๋ฐ์ธ์ฉ ์ค๋ช ์ ๋๋ค.
| ๊ธฐ์ ์ฉ์ด | ๋น์ |
|---|---|
| hexa-lang | ์๋ฆฌ ์ธ์ด. ์๋ฆฌ๋ฒ(์ฝ๋)์ ์ ๋ ๋ฐฉ์ |
| atlas.n6 | ๊ณต์ ์ฌ์ + ํ์ค ๋ ์ํผ์ง. "์ด ์ฌ๋ฃ, ์ด ์กฐ๋ฆฌ๋ฒ, ์ด ๋ฒ์น" ๋ชจ๋ ์ ๋ฆฌ๋ ํ ๊ถ์ ์ฑ |
| P / C / L ๋ ธ๋ | ์ฌ์ ์์ ํญ๋ชฉ โ P๋ ์ฌ๋ฃ(์๊ธ, ๋ฌผ), C๋ ์ฐ๊ฒฐ(์๊ธ+๋ฌผ=์๊ธ๋ฌผ), L์ ๋ฒ์น(๊ฐ์ดํ๋ฉด ๋๋๋ค) |
| hexa interp (ํ ์ธํฐํ๋ฆฌํฐ) | ์๋ฆฌ ์๋ด์. ์๋ฆฌ๋ฒ์ ํ ์ค์ฉ ์ฝ์ด์ฃผ๋ฉด์ ์์์ ์ํค๋ ์ฌ๋ |
| native ์ปดํ์ผ๋ฌ | ์ ฐํ ์์ฒด. ์๋ฆฌ๋ฒ์ ๋จธ๋ฆฟ์์ ์ธ์์ ๋ฐ๋ก ๋ง๋๋ ์ฌ๋ |
| lint | ํ์ง ๊ฒ์ฌ๊ด. ์๋ฆฌ ์์ ์ ์ ์ฌ๋ฃ/๋จ์ ์ ๊ฒ |
| ์ ์ ๋ด์ฅ | ์ฌ์ ์ ์ ฐํ ๋จธ๋ฆฟ์์ ํต์งธ๋ก ๋ฃ์ด๋๊ธฐ |
atlas.n6์ด๋ผ๋ ๊ณต์ ์ฌ์ ์ด ๋ฐ๋ก ์์ต๋๋ค. 4.2 MB์ง๋ฆฌ, 60,760์ค, ๋งค์ผ ์
๋ฐ์ดํธ๋ฉ๋๋ค.
์ง๊ธ๊น์ง๋ ์๋ฆฌํ ๋๋ง๋ค ๋์๊ด ๊ฐ์ ์ฌ์ ์ ๋น๋ ค์ต๋๋ค. ํ ๋ฒ์ ์ฝ 0.2์ด๊ฐ ๊ฑธ๋ฆฝ๋๋ค.
ํ ๋ฒ์ด๋ฉด 0.2์ด๋๊น ๊ด์ฐฎ์๋ฐ, 100๋ฒ ๋ฐ๋ณตํ๋ฉด 20์ด, 5000๋ฒ์ด๋ฉด 17๋ถ. ์๋ ๊ฒ์ฌ(CI)๋ ์ฝ๋ ํธ์ง๊ธฐ(LSP)๋ ๋งค ํค ์ ๋ ฅ๋ง๋ค ์ฌ์ ์ ๋ด์ผ ํด์ ์ฌ์ค์ ๋ถ๊ฐ๋ฅ.
| ์ ํ์ง | ๋น์ | ์๊ฐ |
|---|---|---|
| ๋งค๋ฒ ๋์๊ด ๊ฐ๊ธฐ | ์ฌ์ ๋งค๋ฒ ๋น๋ฆผ | 0.2์ด/ํ โ CI 17๋ถ |
| ์ฑ ์์ ์ฌ๋ณธ ๋๊ธฐ | mtime cache | 0.001์ด/ํ โ ๋น ๋ฆ |
| ์ ฐํ๊ฐ ํต์งธ๋ก ์ธ์ | ์ ์ ๋ด์ฅ | 0์ด โ ๊ฑฐ์ ์ฆ์ |
์ ฐํ๊ฐ ์ฌ์ ์ ํต์งธ๋ก ์ธ์ด๋ค (์ ์ ๋ด์ฅ).
๊ทผ๋ฐ ์ฌ์ ์ด ๋งค์ผ ๋ฐ๋์์์? โ ๊ทธ๋ฌ๋ฉด ๋งค์ผ ์ ฐํ๋ฅผ ์๋ก ๊ต์ก์ํต๋๋ค (CI๊ฐ ๋งค์ผ ์ปดํ์ผ๋ฌ ์๋ ์ฌ๋น๋). ์ผ๋ฐ ์๋ฆฌ์ฌ๋ค(์ฌ์ฉ์)์ ์ ฐํ ์ ๋ฒ์ ๋ฐ์ผ๋ฉด ์๊ธฐ ์๋ฆฌ๋ฒ๋ ์๋ก ์ ๊ฒ๋ง ํ๋ฉด ๋ฉ๋๋ค.
์๋ฆฌ๋ฒ(.hexa ํ์ผ)์ ์ ์ผ๋ฉด, ์๋ด์(hexa interp)์ด ํ ์ค์ฉ ์ฝ์ด์ฃผ๋ฉด์ ์งํํฉ๋๋ค.
์๋ด์: "์, ์ฒซ ์ค์ด '์๊ธ 1g ๋ฃ๊ธฐ' ๋ค์. ๋ฃ์์ด์?"
๋น์ : "๋ค."
์๋ด์: "์ด์ ๋ ๋ฒ์งธ ์ค... ์ด? ์ด ์ฌ๋ฃ๊ฐ ์ฌ์ ์ ์๋๋ฐ์?"
์ฅ์ : ์ฆ์์์ ๊ณ ์น๊ธฐ ์ฌ์ ๋จ์ : ๋งค๋ฒ ์ฌ์ ์ ๋ค์ถฐ์ผ ํด์ ๋๋ฆผ. ํฐ ๊ณต์ฅ(CI)์์๋ ์ ํตํจ.
์๋ฆฌ๋ฒ์ ํ ๋ฒ์ ์ ฐํ์๊ฒ ํต์งธ๋ก ๋๊น๋๋ค. ์ ฐํ๋ ๋จธ๋ฆฟ์ ์ฌ์ ์ด๋ ๋์กฐํด์
- ์ฌ๋ฃ ๋น ์ง ๊ฑฐ ์๋?
- ๋จ์ ์ ๋ง๋ ๊ฑฐ ์๋?
- ๋ฒ์น ์๋ฐ์ธ๊ฐ?
๋ค ๊ฒ์ฌํ ๋ค์, ์ด์ ์์ผ๋ฉด ์๋ฆฌ๋ฒ์ ์ธ์์ ์๋์ผ๋ก ๋์ํ๋ ๋ก๋ด์ผ๋ก ๋ง๋ญ๋๋ค (= ์คํ ๊ฐ๋ฅํ ๋ฐ์ด๋๋ฆฌ).
์ด์์ด ์์ผ๋ฉด? ๋ก๋ด ์์ฒด๋ฅผ ์ ๋ง๋ฆ. ์ฆ, ์๋ฆฌ ์์๋ ๋ชป ํจ.
์ด๊ฑด TypeScript ์
tsc strict์ ๊ฐ์ ๋ชจ๋ธ์ ๋๋ค. "ํ์ ๊ฒ์ฌ ํต๊ณผ ๋ชป ํ๋ฉด ๊ทธ๋ฅ ๋น๋ ์คํจ, ์คํ ์์ฒด๊ฐ ๋ถ๊ฐ๋ฅ."
Python์ฒ๋ผ ๋ฌธ๋ฒ ํ๋ฆฌ๋ฉด ์ฆ์ ์คํจํ๋ ์ ๋๊ฐ ์๋๋ผ, ์ฌ์ ๊ณผ ๋จ์๊น์ง ๋ค ๋ง์์ผ ์คํ๋ฉ๋๋ค.
| ๋จ๊ณ | ๋ฌด์์ ๊ฒ์ฌ? | ๋น์ |
|---|---|---|
| S0 | ๋ฌธ๋ฒ (๊ดํธ, ์ธ๋ฏธ์ฝ๋ก ) | ๊ธ์จ ์์ฒด๊ฐ ์ฝํ๋? |
| S1 | ์ฌ์ ์ ์๋ ์ฌ๋ฃ์ธ๊ฐ? | "์ ์ ์ด๋?" โ ๊ทธ๋ฐ ๊ฑฐ ์ฌ์ ์ ์์ด์ |
| S2 | ๋ณ์ ์ ์ธํ๋? | "๊ทธ๋ฆ X" ๋ผ๋๋ฐ X๊ฐ ๋ญ์ฃ ? |
| S3 | ํ์ ๋ง๋? | ์ซ์์ ๊ธ์ ๋ํ๊ธฐ ์ ๋จ |
| S4 | ๋๋ฉ์ธ (์์/์์/์ ์)? | "์ฌ๋ โ3๋ช "? |
| S5 | ๋จ์๊ฐ ๋ง๋? | "๊ฑฐ๋ฆฌ + ์๊ฐ"? ๊ทธ๋ฐ ๋ง์ ์์ด์ |
| S6 | ๊ณต์์ด ๋ง๋? (์ ํ) | E = mcยฒ ์ด๋ผ๋ฉด์ ๋ณธ๋ฌธ์ E = m+c |
| S7 | ์ํ์ ์ฆ๋ช ? (์ ํ) | Z3 ๊ฐ์ ๋๊ตฌ๋ก ์ ์ ์ฆ๋ช |
| S8 | ์ถ์ฒ ์ธ์ฉํ๋? | ๊ณต์ ์ธ ๋ "์์ธ์ํ์ธ์ ๋ฒ์น" ์ธ์ฉ ๋๋ฝ |
S0~S5, S8์ ํญ์ ์ผฌ. S6, S7์ ์ฌ์ฉ์๊ฐ @verify/@prove ๋ผ๊ณ ํ์ํ ๋ถ๋ถ๋ง ์ผฌ.
๊ฑฐ์ ์ ๋จ. ๋ช ๋ น์ค ์ต์ ์ผ๋ก ๋๋ ๊ฑด ์๊ณ , ์ฝ๋์ ๊ธฐํ ๋ง๋ฃ ๋ผ๋ฒจ๋ง ํ์ฉ:
@allow_unverified("legacy migration", until="2026-06-01")
fn old_thing() { ... }
โ 6์ 1์ผ ์ง๋๋ฉด ์๋์ผ๋ก ๋ค์ ๊ฒ์ฌ ๊ฐ์ . "๊ธํด์ ์ผ๋จ ํต๊ณผ์ํค๋, ์ง์ง ๊ณง ๊ณ ์ณ๋ผ"๋ผ๋ ์๋ฏธ.
์ ฐํ(=native ์ปดํ์ผ๋ฌ) ๋ง๋๋ ๋ฐ ์ธ ๊ฐ์ง ๊ธธ์ด ์์ต๋๋ค.
| ํ๋ณด | ๋น์ | ์ฅ๋จ์ |
|---|---|---|
| LLVM | ๊ฑฐ๋ํ ๊ณต์ฉ ์ฃผ๋ฐฉ ๋น๋ ค์ฐ๊ธฐ | ๊ฐ๋ ฅํ์ง๋ง ๋ฌด๊ฒ๊ณ , ์ฐ๋ฆฌ ์ฌ์ ์ธ์ง ์ด๋ ค์ |
| C ๋ณํ | ์ผ๋จ C๋ก ๋ฒ์ญํด์ C์ ฐํ์๊ฒ ๋๊ธฐ๊ธฐ | ์์กด์ฑ ์ฌ์ฌ, ๋๋ฒ๊น ์ด๋ ค์ |
| ์ง์ ๋ง๋ค๊ธฐ | ์ฐ๋ฆฌ ์ฃผ๋ฐฉ์ ์ฒ์๋ถํฐ ์ง๊ธฐ | ๋ฌด๊ฒ์ง๋ง 100% ์ฐ๋ฆฌ ํต์ |
์ด์ : hexa-lang์ ํต์ฌ์ "์ฌ์ (atlas)๊ณผ ์์ ๊ฒ์ฆ". ์ธ๋ถ ๋๊ตฌ๋ ์ด ์ ๋ณด๋ฅผ ์ค๊ฐ์ ์์ด๋ฒ๋ฆผ. ์ฐ๋ฆฌ ๋๊ตฌ๋ก ์ฒ์๋ถํฐ ๋๊น์ง ์ฌ์ ์ ์ธ์ํด์ผ ํจ.
์๋ฆฌ๋ฒ์ด ์ ฐํ ์์์ ๊ฑฐ์ณ๊ฐ๋ ๋จ๊ณ:
1. ์๋ฆฌ๋ฒ ๊ธ์ ์ฝ๊ธฐ (lex)
2. ๋ฌธ๋ฒ ๊ตฌ์กฐ๋ก ์ ๋ฆฌ (parse)
3. ์ฌ์ ๊ณผ ๋์กฐ ๊ฒ์ฌ (resolve, check) โ ์ฌ๊ธฐ์ ํ๋ฆฌ๋ฉด abort
4. ๋จธ๋ฆฟ์ ๋จ์ํ ํํ๋ก ์ ๋ฆฌ (HIR/MIR)
5. ์๋์ ๋ช
๋ น์ผ๋ก ๋ณํ (LIR)
6. ์ค์ ๋์ ๊ฐ๋ฅํ ๋ก๋ด์ผ๋ก ์ถ๋ ฅ (binary)
ํฌ๊ธฐ: ์ ฐํ ์์ฒด โค 2MB (์ฌ์ 4.2MB ์์ถํด์ 1~2MB๋ก). ์ธ๋ถ ๋๊ตฌ ์์กด 0.
๋ญ๊ณผ ๋ฌ๊ฑ ๋ฌธ์ . ์ ฐํ๋ฅผ ๋ง๋ค๋ ค๋ฉด ์ ฐํ๊ฐ ํ์ํ์์์?
ํด๊ฒฐ: 4๋จ๊ณ ๋ถํธ์คํธ๋ฉ
- Stage 0: ์ง๊ธ ์๋ ์๋ด์(์ธํฐํ๋ฆฌํฐ)์ด ์ ฐํ ๋ง๋๋ ๋ฒ(์์ค์ฝ๋) ์ฝ๊ณ ์คํ
- Stage 1: ๊ทธ ๊ฒฐ๊ณผ๋ฌผ = 1์ธ๋ ์ ฐํ
- Stage 2: 1์ธ๋ ์ ฐํ๊ฐ ์๊ธฐ ์์ ์ ๋ค์ ๋ง๋ฆ = 2์ธ๋
- Stage 3: 2์ธ๋๊ฐ ์๊ธฐ ์์ ์ ๋ง๋ ๊ฒฐ๊ณผ == 2์ธ๋ โ ์ ์ฐฉ
3์ธ๋์ 2์ธ๋๊ฐ ๋๊ฐ์ผ๋ฉด "์์ "์ด๋ผ๋ ๋ป. ์ด๋๋ถํฐ ์๋ด์์ ์ํด.
- Rust: ์ฝ๋+์์น+ํ์ดํ+ํํธ
- TypeScript: ๋ชจ์ ๋ณด์ฌ์ฃผ๊ธฐ, ์ ํํ ํ์ ์ฐจ์ด
- Elm: ๊ฐ์ฅ ์น์ , ์์ ๋๋ด
- Python: ์งง๊ณ ๋ช ๋ฃ
โ hexa๋ Rust + Elm ์น์ ํจ ๊ฒฐํฉ.
HexaError [HX1042] example/foo.hexa:42:11โ28
let p = P[einstien-mass-energy]
^^^^^^^^^^^^^^^^^^^ atlas ๋
ธ๋ ์์
์์ธ: atlas a3f9...c2 ์ P ๋
ธ๋ `einstien-mass-energy` ์์
์ถ์ฒ: P[einstein-mass-energy] (์คํ 1๊ธ์ ์ฐจ์ด)
์์ : hexa fix --apply HX1042 example/foo.hexa
์ค๋ช
: hexa explain HX1042
ํต์ฌ 5์์
- ์๋ฌ ์ฝ๋ (HX1042) โ ๊ฒ์ ๊ฐ๋ฅ
- ์ ํํ ์์น โ ๋ผ์ธ:์ด, ํ์ดํ
- ์์ธ โ ๋ฌด์์ด ์ ํ๋ ธ๋์ง
- ์ถ์ฒ โ "ํน์ ์ด๊ฑธ ์๋ฏธํ์ จ๋์?"
- ์๋ ์์ โ
hexa fix๋ช ๋ น ํ ์ค๋ก ํด๊ฒฐ
์. 5์ถ์ผ๋ก ๊ฐ๋ฅํฉ๋๋ค:
| ์ถ | ์๋ฏธ | ๋น์ |
|---|---|---|
| A. atlas E ๋ ธ๋ | ์๋ฌ๋ ์ฌ์ ํญ๋ชฉ | "์ค์ ์ฌ๋ก" ๋ ์ฌ์ ์ด ๊ด๋ฆฌ |
| B. catalog๊ฐ hexa๋ก ์์ฑ | ์ ์๋ฌ = ํ์ผ ํ ์ค | ์ ฐํ๊ฐ ์๊ธฐ ์ค์ ๋ ธํธ๋ฅผ ๊ฐ๊ณ ์์ |
| C. i18n ๋ถ๋ฆฌ | ๋ฉ์์ง ํ ์คํธ์ ๋ก์ง ๋ถ๋ฆฌ | ํ๊ตญ์ด/์์ด ํ์ผ๋ง ๊ฐ์๋ผ์ |
| D. snapshot ํ๊ท | ๋ฉ์์ง ๋ณ๊ฒฝ ์๋ ๊ฐ์ง | ์ค์ ๋ ธํธ ๋ฐ๋๋ฉด ์๋ฆผ |
| E. fix-it API | ์๋ ์์ ๊ฐ๋ฅ | "์ด๊ฑด 1ํค๋ก ์๋ ๊ณ ์นจ" ํ์ |
์ ์๋ฌ 1๊ฑด ์ถ๊ฐ ๋น์ฉ: 5~7 ํ์ผ ์์ / ์ฝ 5๋ถ.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๊ณต์ ์ฌ์ (atlas.n6, 4.2MB, ๋งค์ผ ๊ฐฑ์ ) โ
โ P ์ฌ๋ฃ / C ์ฐ๊ฒฐ / L ๋ฒ์น / E ์๋ฌ โ
โโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๋งค์ผ ์๋ ํฉ์ณ์
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ์
ฐํ (hexa native ์ปดํ์ผ๋ฌ) โ
โ ๋จธ๋ฆฟ์์ ์ฌ์ ํต์งธ๋ก ์ธ์ (์ ์ ๋ด์ฅ) โ
โ ์ธ๋ถ ๋๊ตฌ ์์กด 0 โ
โโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ์ฌ์ฉ์ ์๋ฆฌ๋ฒ(.hexa)์ ๋ฐ์ผ๋ฉด
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๊ฒ์ฌ 8๋จ (S0~S8) โ
โ ๋ฌธ๋ฒ/์ฌ์ /ํ์
/๋จ์/๊ณต์/์ธ์ฉ ๋ชจ๋ ๊ฒ์ฌ โ
โ ๋จ 1๊ฑด ์๋ฐ โ ๋น๋ ์คํจ, ๊ฒฐ๊ณผ๋ฌผ X โ
โโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๋ค ํต๊ณผํ๋ฉด
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ์๋ฆฌ ๋ก๋ด (์คํ ๋ฐ์ด๋๋ฆฌ) โ
โ ์คํ ์ ์ฌ์ ๋ค์ ์ด ํ์ ์์ (0ms) โ
โ ๋จ์ผ ํ์ผ, ์ด๋์๋ ์คํ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
| ์ํฉ | ์ง๊ธ (์ธํฐํ๋ฆฌํฐ) | ์ ๋ฐฉํฅ (native + ์ ์ ๋ด์ฅ) |
|---|---|---|
| ์ฝ๋ ํ ๋ฒ ์คํ | "์ ๊น, ์ฌ์ ์ข ๋ณผ๊ฒ์" 0.2์ด ๋๊ธฐ | ์ฆ์ ์์ |
| 100๊ฐ ํ์ผ ๊ฒ์ฌ | 20์ด | ๊ฑฐ์ ์ฆ์ |
| CI 5000๊ฐ ํ์ผ | 17๋ถ | ์์ด |
| ์ฝ๋ ์๋ํฐ ์๋์์ฑ | 200ms ์ง์ฐ(์ฒด๊ฐ ๋ช ํ) | ์ฆ์ |
| ์ฌ์ ์ ๋ฐ์ดํธ ํ | ์ฆ์ ๋ฐ์ | ์ปดํ์ผ๋ฌ ์๋ ์ฌ๋น๋ ํ ๋ฒ ํ ๋ฐ์ |
| ๋ค๋ฅธ ์ฌ๋์๊ฒ ๋ฐฐํฌ | ์ฌ์ ํ์ผ ๋๋ด ํ์ | ๋จ์ผ ๋ฐ์ด๋๋ฆฌ ํ๋๋ฉด ๋ |
| ์๋ฌ ๋ฌ์ ๋ | ํ ์ค์ง๋ฆฌ ๋ฉ์์ง | ์์น+์์ธ+์ถ์ฒ+์๋์์ |
| ์ฐ๋ ค | ๋์ |
|---|---|
| ์ฌ์ ๋งค์ผ ๋ฐ๋๋๋ฐ ์ปดํ์ผ๋ฌ๋ ๋งค์ผ ์๋ก? | CI๊ฐ ์๋. ์ฌ์ฉ์๋ ์ปดํ์ผ๋ฌ ๋ฐ๊ธฐ๋ง ํจ (Rust deps update ๋ชจ๋ธ) |
| ๊ฒ์ฌ๊ฐ ๋๋ฌด ๋นก์ธ์ ์ฝ๋๊ฐ ์ ์ปดํ์ผ๋จ | ๊ธฐ์กด ์ฝ๋๋ @allow_unverified(until="...") ๋ถ์ฌ, ์ ์ง ๋ง์ด๊ทธ๋ ์ด์
|
| ์ปดํ์ผ๋ฌ ์ง์ ๋ง๋ค๊ธฐ? ๋๋ฌด ํฐ ์ผ? | ๋จ๊ณ๋ณ ๋ถํธ์คํธ๋ฉ, 1์ฐจ ํ๊ฒ์ x86_64-linux + arm64-darwin๋ง |
| ์ธํฐํ๋ฆฌํฐ ์ฆ์์ฑ ์์ | hexa run (์ธํฐํ๋ฆฌํฐ ๋ชจ๋)์ stage0๋ก ์ ์ ์ ์ง, dev ์นํ |
์ฌ์ (atlas)์ ์ ฐํ(์ปดํ์ผ๋ฌ) ๋จธ๋ฆฟ์์ ํต์งธ๋ก ๋ฃ๊ณ , ์ ฐํ๊ฐ ์๋ฆฌ๋ฒ(์ฝ๋)์ ๋ฐ์ผ๋ฉด ์ฌ์ ยท๋ฌธ๋ฒยท๋จ์ยท๊ณต์ยท์ถ์ฒ๋ฅผ ๋ค ํ์ธํ ๋ค ํ ๊ฑด์ด๋ผ๋ ํ๋ฆฌ๋ฉด ์๋ฆฌ ์์ฒด๋ฅผ ์์ํ์ง ์๋๋ค.
์ด๋ฌ๋ฉด ๋น ๋ฅด๊ณ (๋ฐํ์ 0์ด), ์์ ํ๊ณ (ํ๋ฆฐ ์ฝ๋ ์คํ ๋ถ๊ฐ), ์์จ์ (์ธ๋ถ ๋๊ตฌ ์์กด 0)์ธ ์ธ์ด๊ฐ ๋ฉ๋๋ค.