-μ˜ˆμ „μ— Jonathan Blow (Braid λ§Œλ“  μ‚¬λžŒ) 이 자체 μ œμž‘ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ‘œ κ²Œμž„ κ°œλ°œν•˜λŠ” μ˜μƒμ„ λ³Έ κ²½ν—˜μ΄ μžˆλŠ”λ°,


저도 λ­”κ°€ μ €λ§Œμ˜ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄κ°€ 있으면 νŽΈν•˜κ³  쒋을 것 κ°™λ‹€λŠ” 생각이 λ“€μ–΄μ„œ κ²Œμž„ 개발 μ „μš© ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ₯Ό κ°œλ°œν•˜κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.


μž‘μ„±ν•œ μ½”λ“œκ°€ 컴파일러λ₯Ό κ±°μ³μ„œ 쀑간 μ½”λ“œ (ir) 둜 λ²ˆμ—­μ΄ 되고, 이게 가상 λ¨Έμ‹ μ—μ„œ λŒμ•„κ°€λŠ” λ°©μ‹μž…λ‹ˆλ‹€. μžλ°”λž‘ λΉ„μŠ·ν•˜μ£ ?


사싀 개발 일지λ₯Ό μ“°κΈ°μ—λŠ” 벌써 개발 ν•œμ§€ 1λ…„ λ„˜μ–΄κ°€κΈ°λ„ ν–ˆκ³  이전 μŠ€ν† λ¦¬ ν’€κΈ°μ—λŠ” 양이 λ„ˆλ¬΄ λ°©λŒ€ν•΄μ„œ... κ·Έλƒ₯ κ΅¬ν˜„ν•œκ±° μžλž‘ν•˜λŸ¬ μ™”μŠ΅λ‹ˆλ‹€...


a15714ab041eb360be3335625683746f00534521d6a6e989d53763f49f14cd6ebe842890050a52e9fc21ea16af



λŒ€μΆ© 이런 μ½”λ“œλ₯Ό μž‘μ„±ν•˜λ©΄. (문법도 λ‹€ 직접 μ •ν–ˆμŠ΅λ‹ˆλ‹€. 살짝 typescript λž‘.java λž‘ μ§¬λ½•ν•œ λŠλ‚Œ??)



a15714ab041eb360be3335625683746f00534521d6a6e989d53763f49c1ccd6e856a16a4a42d91c06cea86c55d

이런 ν†  λ‚˜μ˜€λŠ” 쀑간 μ½”λ“œκ°€ μƒμ„±λ©λ‹ˆλ‹€. (λͺ…λ Ήμ–΄ μ…‹? 같은 것도 μ „λΆ€ 직접 μ •μ˜ν–ˆμŠ΅λ‹ˆλ‹€.)


이제 이걸 가상 λ¨Έμ‹  μœ„μ—μ„œ μ‹€ν–‰ν•˜λ©΄



a15714ab041eb360be3335625683746f00534521d6a6e989d53763f79e1ccd6e8a617f009eb4ea5fc405edbb

이런 μ‹μœΌλ‘œ 싀행이 잘 λ©λ‹ˆλ‹€!!


+ class, 상속도 μ–΄λŠ 정도 κ΅¬ν˜„λ˜μ–΄μžˆμŠ΅λ‹ˆλ‹€.


사싀 이 μ–Έμ–΄κ°€ νŠΉλ³„ν•œ μ΄μœ κ°€ 두 개 μžˆλŠ”λ°, 첫 번째둜 κ²Œμž„ 엔진이 λ‚΄μž₯λ˜μ–΄μžˆμŠ΅λ‹ˆλ‹€. (그래봀자 아직 κ·Έλ¦Ό μ’€ κ·Έλ¦¬λŠ”κ²Œ λμ΄μ§€λ§Œ)



a15714ab041eb360be3335625683746f00534521d6a6e989d53760f09d10cd6e182f75944e66688f6fbec38e01

μ΄λŸ°μ‹μœΌλ‘œ μ½”λ“œλ₯Ό μ“°λ©΄ ( λ³΄μ‹œλ‹€μ‹œν”Ό 내뢀에 vector 도 μ§€μ›ν•˜κ³ , scene, object 같은 νŠΉμˆ˜ν•œ 객체가 μ‘΄μž¬ν•˜λ©°, #load λ₯Ό 톡해 미리 λ¦¬μ†ŒμŠ€λ₯Ό λ‘œλ”©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.)



a15714ab041eb360be3335625683746f00534521d6a6e989d53760f39c12cd6ee3f3df947185923b3039e795

μ΄λŸ°μ‹μœΌλ‘œ κ°„λ‹¨ν•œ 이미지λ₯Ό λ„μš°λŠ”κ²Œ κ°€λŠ₯ν•΄μ§‘λ‹ˆλ‹€.




a15714ab041eb360be3335625683746f00534521d6a6e989d53760f99814cd6e4d0e70b20a0556bdd9ee1149c0

이건 μ•„μ£Ό μ˜›λ‚ μ— λ§Œλ“  μŠˆνŒ…κ²Œμž„ 데λͺ¨μž…λ‹ˆλ‹€.


그리고 두 번째둜 νŠΉλ³„ν•œ 점은 리얼 νƒ€μž„ 디버깅을 μ§€μ›ν•©λ‹ˆλ‹€.




별건 μ•„λ‹ˆκ³ , 이제 μž‘μ„±ν•œ μ½”λ“œκ°€ λŸ°νƒ€μž„ 도쀑 (κ·ΈλŸ¬λ‹ˆκΉŒ μ‹€ν–‰ 도쀑) 에 λ°”λ‘œ μ μš©λ©λ‹ˆλ‹€. λ”°λΌμ„œ ν”„λ‘œκ·Έλž¨μ„ μ’…λ£Œν•˜κ³  λ‹€μ‹œ μ‹€ν–‰ν•˜κ±°λ‚˜,


μƒˆλ‘­κ²Œ μ„ΈνŒ…ν•  ν•„μš”κ°€ μ—†μ–΄μ§‘λ‹ˆλ‹€.


아직 버그 덩어리이기도 ν•˜κ³ , κ°ˆμ•„μ—ŽκΈ°λ„ ν•œ 5~6 번 정도 ν•΄μ„œ μ–Όλ§ˆλ‚˜ 더 λ³€ν™”λ₯Ό κ±°μΉ μ§€ λͺ¨λ₯΄μ§€λ§Œ,


μ–΄λŠ 정도 μ€€λΉ„κ°€ 된 것 κ°™μ•„ μ΄λ ‡κ²Œ μžλž‘ν•˜λŸ¬ μ™”μŠ΅λ‹ˆλ‹€. ν—ˆν—ˆ.


https://github.com/nayoungwook/CVM

GitHub - nayoungwook/CVM: virtual machine for chestnut runtime.

virtual machine for chestnut runtime. Contribute to nayoungwook/CVM development by creating an account on GitHub.

github.com



GitHub - nayoungwook/CVM: virtual machine for chestnut runtime.

virtual machine for chestnut runtime. Contribute to nayoungwook/CVM development by creating an account on GitHub.

github.com

https://github.com/nayoungwook/ChsetnutCompiler

GitHub - nayoungwook/ChsetnutCompiler: compiler for chestnut programming language.

compiler for chestnut programming language. Contribute to nayoungwook/ChsetnutCompiler development by creating an account on GitHub.

github.com


μœ„μ— 두 κ°œλŠ” λ―Έμ²œν•œ μ €μ˜ μ½”λ“œμž…λ‹ˆλ‹€. (각각 가상 λ¨Έμ‹ , 컴파일러)


κΈ΄ κΈ€ μ½μ–΄μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€.