Design: рдПрдХ рд╡реИрдз рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдмрд╕реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд╛рдЯ рд╕рд┐рдВрдЯреИрдХреНрд╕

рдХреЛ рдирд┐рд░реНрдорд┐рдд 16 рдорд╛рд░реНрдЪ 2019  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: WebAssembly/design

рдЯреЗрдХреНрд╕реНрдЯ рдкреНрд░рд╛рд░реВрдк рдХреЗ рднреАрддрд░ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдП рдЧрдП рдПрд╕-рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдЯ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЛ рд╡реИрдз рдкрд╛рд░реНрд╕-рдЯрд╛рдЗрдо рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдмрд╕реЗрдЯ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣реЛрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЗрдПрд╕рдУрдПрди рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рд╣реИред

рдпрд╣ рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛:

(func $swap (param i32 i32) (result i32 i32) (get_local 1) (get_local 0))

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдиреБрд╕рд╛рд░:

(func, $swap, (param, i32, i32), (result, i32, i32), (get_local, 1) (get_local, 0))

рдЗрд╕рдХрд╛ рдПрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдорд╛рдиреНрдп рд╡рд╛рдЯ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд░рд╣рд╛ рд╣реИ

function add (a, b) {
   (i32.const, a)
   (i32.const, b)
   (i32.const, add)
}

рдХрд┐ рдЖрдк рд╡реИрдз рд╡рд╛рдЯ рд╕реНрд░реЛрдд рдХреЛрдб рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП add.toString() рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХрд░рддреЗ рд╕рдордп рдЯреЗрдореНрдкрд▓реЗрдЯ рд╢рд╛рдмреНрджрд┐рдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рднреАрддрд░ рд╡рд╛рдЯ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдЗрдВрдЯрд░рд▓реАрд╡ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореБрдЭреЗ рд╕рдЪ рдореЗрдВ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдо JS-рд╕рдВрдЧрдд WAST рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЕрдзрд┐рдХрддрд░ рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдкрд╛рд░реНрд╕рд░ рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рд╕реЗ рдпрд╣ рдмрддрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛ рдХрд┐ рдЖрдк WAST рдпрд╛ JS рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред

рдореИрдВ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЬреЗрдПрд╕ рдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЕрдХреНрд╖рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛:

function add (a, b) {
   wast`
     (i32.const, a)
     (i32.const, b)
     (i32.const, add)
   `
}

рд╕рднреА 4 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдПрд╕-рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдореБрдЭреЗ рд▓рд┐рд╕реНрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ рдореИрдВ ' рдХрд╛ рдЕрд░реНрде рдЙрджреНрдзрд░рдг рдФрд░ , рдХрд╛ рдЕрд░реНрде рдЕрдпреЛрдЧреНрдп рд╣реЛрдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реВрдВред

рдпрд╣ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рдЪрд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрдХреНрд╕реНрдЯ рдкреНрд░рд╛рд░реВрдк рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред

рдореБрдЭреЗ рд╕рдЪ рдореЗрдВ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдо JS-рд╕рдВрдЧрдд WAST рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЕрдзрд┐рдХрддрд░ рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдкрд╛рд░реНрд╕рд░ рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рд╕реЗ рдпрд╣ рдмрддрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛ рдХрд┐ рдЖрдк WAST рдпрд╛ JS рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред

рдореИрдВ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЬреЗрдПрд╕ рдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЕрдХреНрд╖рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛:

function add (a, b) {
   wast`
     (i32.const, a)
     (i32.const, b)
     (i32.const, add)
   `
}

рдЖрдк рдмрд╣реБрдд рдЖрд╕рд╛рдиреА рд╕реЗ рдХреЙрдлреАрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдПрдХ рд╡рд╛рдЯ рдбреАрдПрд╕рдПрд▓ рджрд╕реНрддрдХ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рдмрд╕ рдПрдХ рдФрд░ рд╡рд┐рдХрд▓реНрдк рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

aaabbbcccddd00001111 picture aaabbbcccddd00001111  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

badumt55 picture badumt55  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

frehberg picture frehberg  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

beriberikix picture beriberikix  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

chicoxyzzy picture chicoxyzzy  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ