Assemblyscript: AssemblyScript๋Š” Walt์™€ ์–ด๋–ป๊ฒŒ ๋น„๊ต๋ฉ๋‹ˆ๊นŒ?

์— ๋งŒ๋“  2018๋…„ 04์›” 25์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: AssemblyScript/assemblyscript

์•ˆ๋…•ํ•˜์„ธ์š”! ๊ทธ๋ฆฌ๊ณ ์ด ํ›Œ๋ฅญํ•œ ํ”„๋กœ์ ํŠธ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. https://github.com/ballercat/walt ์— ๋Œ€ํ•ด ๋ฌป์Šต๋‹ˆ๋‹ค.

์–ด๋Š ์ชฝ์„ ์„ ํƒํ•ด์•ผํ• ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•ต์‹ฌ ์ฐจ์ด์ ์„ ์„ค๋ช…ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

question

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์•ˆ๋…•ํ•˜์„ธ์š” @ emil14 ,
walt ๊ทธ๊ฒƒ์€ ๋‚ด๊ฐ€ ์†Œ์œ ์ž๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ดํ•ดํ•œ๋‹ค๋ฉด ๊ฐ€๋Šฅํ•œ ํ•œ ๊ฐ€๊น๊ฒŒ ๋ฒˆ์—ญ๋˜๋Š” ์ฃผ์š” ๋ชฉํ‘œ๊ฐ€์žˆ๋Š” wat ๋ณด๋‹ค ๋†’์€ ์ˆ˜์ค€์˜ ๊ตฌ๋ฌธ ์„คํƒ•์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค : https://github.com/ballercat/walt/issues/11

์ฃผ์š” ์ฐจ์ด์  :
1) ๋” ์ผ์ฐ ํƒœ์–ด๋‚œ AssemblyScript . ์ฒซ ๋ฒˆ์งธ ํ”„๋กœํ†  ํƒ€์ž…์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
2) AS๋Š” ๊ด‘๋ฒ”์œ„ํ•œ '์ž‘์€'์ •์ˆ˜๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค-๋ฌผ๋ก  i8, u8, i16, u16 ๋ฐ i32 / u32, i64 / u64. walt ๋Š” ์„œ๋ช…๋˜์ง€ ์•Š์€ ์œ ํ˜•์—†์ด i32 ๋ฐ i64 ๋งŒ ๊ด€๋ฆฌ ํ•  ์ˆ˜
3) AS๋Š” typescript ์ˆ˜ํผ ์„ธํŠธ์ด๋ฉฐ javascript ๋ฅผ ํ†ตํ•ด tsc javascript ์‰ฝ๊ฒŒ ํŠธ๋žœ์Šค ํŒŒ์ผ๋ฉ๋‹ˆ๋‹ค. walt ์—๋Š” flow ์™€ ์œ ์‚ฌํ•œ ๊ตฌ๋ฌธ์ด ์žˆ์ง€๋งŒ ์™„์ „ํžˆ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™๊ณ  ์ˆœ์ˆ˜ํ•œ js ๋กœ์˜ ๋ฒˆ์—ญ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
4) AS์—๋Š” ๋Ÿฐํƒ€์ž„์ด ์žˆ์Šต๋‹ˆ๋‹ค : Array , ArrayBuffer , ํ˜•์‹ํ™” ๋œ ๋ฐฐ์—ด, String , Map/Set , Symbol , ๋„ค์ดํ‹ฐ๋ธŒ Math , ์—ฐ์‚ฐ์ž instanceof ๋“ฑ. walt ์—๋Š” ๋ฌธ์ž์—ด๊ณผ ๋ฐฐ์—ด์— ๋Œ€ํ•œ ๋งค์šฐ ๊ธฐ๋ณธ์ ์ธ ๋‚ด์šฉ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
5) AS ์ง€์› Generics.
6) AS์—๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ํž™ ํ• ๋‹น์˜ ์„ธ ๊ฐ€์ง€ ์œ ํ˜• : arena , tlsf ๋ฐ buddy . ๋˜ํ•œ Garbage Collector์— ๋Œ€ํ•œ ์ž‘์—…์ด ์žˆ์Šต๋‹ˆ๋‹ค. walt ์€ (๋Š”) ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
7) AS๋Š” ๋งŽ์€ ์˜ˆ์ œ์™€ ๋ฒค์น˜ ๋งˆํฌ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ wasmBoy๋ผ๋Š” ๊ฑฐ๋Œ€ํ•˜๊ณ  ์„ฑ๊ณต์ ์ธ ํ”„๋กœ์ ํŠธ ์ž…๋‹ˆ๋‹ค.
8) ์—ฌ๋Ÿฌ ํ”Œ๋ ˆ์ด ๊ทธ๋ผ์šด๋“œ์—์„œ ์ง€์›๋˜๋Š” AS : WebAssembly Studio ๋ฐ Assembleash .
9) AS๋Š” binaryen ์ด์ƒ์œผ๋กœ ์›ํ™œํ•˜๊ฒŒ ๋นŒ๋“œ๋˜์–ด emscripten ์ž‘์„ฑ์ž์˜ ๋งŽ์€ ํŒจ์Šค๋กœ ๋น ๋ฅธ ์ฝ”๋“œ ์ƒ์„ฑ๊ณผ ๋งค์šฐ ์Šค๋งˆํŠธ ํ•œ ์ตœ์ ํ™”๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. walt ์€ (๋Š”) ๋ฐ๋“œ ์ฝ”๋“œ ์ œ๊ฑฐ ์—๋„ ์ •ํ™•ํ•œ ๋‚ด์žฅ ์ตœ์ ํ™”๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  3 ๋Œ“๊ธ€

์•ˆ๋…•ํ•˜์„ธ์š” @ emil14 ,
walt ๊ทธ๊ฒƒ์€ ๋‚ด๊ฐ€ ์†Œ์œ ์ž๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ดํ•ดํ•œ๋‹ค๋ฉด ๊ฐ€๋Šฅํ•œ ํ•œ ๊ฐ€๊น๊ฒŒ ๋ฒˆ์—ญ๋˜๋Š” ์ฃผ์š” ๋ชฉํ‘œ๊ฐ€์žˆ๋Š” wat ๋ณด๋‹ค ๋†’์€ ์ˆ˜์ค€์˜ ๊ตฌ๋ฌธ ์„คํƒ•์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค : https://github.com/ballercat/walt/issues/11

์ฃผ์š” ์ฐจ์ด์  :
1) ๋” ์ผ์ฐ ํƒœ์–ด๋‚œ AssemblyScript . ์ฒซ ๋ฒˆ์งธ ํ”„๋กœํ†  ํƒ€์ž…์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
2) AS๋Š” ๊ด‘๋ฒ”์œ„ํ•œ '์ž‘์€'์ •์ˆ˜๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค-๋ฌผ๋ก  i8, u8, i16, u16 ๋ฐ i32 / u32, i64 / u64. walt ๋Š” ์„œ๋ช…๋˜์ง€ ์•Š์€ ์œ ํ˜•์—†์ด i32 ๋ฐ i64 ๋งŒ ๊ด€๋ฆฌ ํ•  ์ˆ˜
3) AS๋Š” typescript ์ˆ˜ํผ ์„ธํŠธ์ด๋ฉฐ javascript ๋ฅผ ํ†ตํ•ด tsc javascript ์‰ฝ๊ฒŒ ํŠธ๋žœ์Šค ํŒŒ์ผ๋ฉ๋‹ˆ๋‹ค. walt ์—๋Š” flow ์™€ ์œ ์‚ฌํ•œ ๊ตฌ๋ฌธ์ด ์žˆ์ง€๋งŒ ์™„์ „ํžˆ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™๊ณ  ์ˆœ์ˆ˜ํ•œ js ๋กœ์˜ ๋ฒˆ์—ญ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
4) AS์—๋Š” ๋Ÿฐํƒ€์ž„์ด ์žˆ์Šต๋‹ˆ๋‹ค : Array , ArrayBuffer , ํ˜•์‹ํ™” ๋œ ๋ฐฐ์—ด, String , Map/Set , Symbol , ๋„ค์ดํ‹ฐ๋ธŒ Math , ์—ฐ์‚ฐ์ž instanceof ๋“ฑ. walt ์—๋Š” ๋ฌธ์ž์—ด๊ณผ ๋ฐฐ์—ด์— ๋Œ€ํ•œ ๋งค์šฐ ๊ธฐ๋ณธ์ ์ธ ๋‚ด์šฉ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
5) AS ์ง€์› Generics.
6) AS์—๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ํž™ ํ• ๋‹น์˜ ์„ธ ๊ฐ€์ง€ ์œ ํ˜• : arena , tlsf ๋ฐ buddy . ๋˜ํ•œ Garbage Collector์— ๋Œ€ํ•œ ์ž‘์—…์ด ์žˆ์Šต๋‹ˆ๋‹ค. walt ์€ (๋Š”) ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
7) AS๋Š” ๋งŽ์€ ์˜ˆ์ œ์™€ ๋ฒค์น˜ ๋งˆํฌ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ wasmBoy๋ผ๋Š” ๊ฑฐ๋Œ€ํ•˜๊ณ  ์„ฑ๊ณต์ ์ธ ํ”„๋กœ์ ํŠธ ์ž…๋‹ˆ๋‹ค.
8) ์—ฌ๋Ÿฌ ํ”Œ๋ ˆ์ด ๊ทธ๋ผ์šด๋“œ์—์„œ ์ง€์›๋˜๋Š” AS : WebAssembly Studio ๋ฐ Assembleash .
9) AS๋Š” binaryen ์ด์ƒ์œผ๋กœ ์›ํ™œํ•˜๊ฒŒ ๋นŒ๋“œ๋˜์–ด emscripten ์ž‘์„ฑ์ž์˜ ๋งŽ์€ ํŒจ์Šค๋กœ ๋น ๋ฅธ ์ฝ”๋“œ ์ƒ์„ฑ๊ณผ ๋งค์šฐ ์Šค๋งˆํŠธ ํ•œ ์ตœ์ ํ™”๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. walt ์€ (๋Š”) ๋ฐ๋“œ ์ฝ”๋“œ ์ œ๊ฑฐ ์—๋„ ์ •ํ™•ํ•œ ๋‚ด์žฅ ์ตœ์ ํ™”๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์–ด์ด, wasmBoy @MaxGraey ๋ฅผ ์–ธ๊ธ‰ ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ๐Ÿ˜„

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. AssemblyScript ๊ฐ€ ๋ณต์žกํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋นŒ๋“œํ•˜๋Š” ๋ฐ ๋” ๋‚˜์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰