Upgrade to Pro — share decks privately, control downloads, hide ads and more …

hello_world.pdf

Avatar for kanekou kanekou
November 02, 2019

 hello_world.pdf

Avatar for kanekou

kanekou

November 02, 2019

More Decks by kanekou

Other Decks in Technology

Transcript

  1. ࣗݾ঺հ • • ͔Ͷ͜͏ Twitter@kanekou8 • ຊ໊: ݉ౡޫฏ • ླྀٿେֶ৘ใ޻ֶՊB4

    • ྔࢠίϯϐϡʔλؔ࿈ͷݚڀ • ϝλϧɼΞχϝ͕େ޷͖ • ݴޠॲཧܥ͸શ͘ͷॳ৺ऀ
  2. จࣈ ಈ࡞  ϙΠϯλΛΠϯΫϦϝϯτ  ϙΠϯλΛσΫϦϝϯτ ϙΠϯλͷ஋ΛΠϯΫϦϝϯτ  ϙΠϯλͷ஋ΛσΫϦϝϯτ 

    ϙΠϯλͷ஋Λग़ྗ ೖྗ͔ΒόΠτಡΈࠐΜͰɼϙΠϯλ͕ࢦ͢஋ʹ୅ೖ < ϙΠϯλͷࢦ͢஋͕ͳΒɼޙͷ>·Ͱδϟϯϓ > ϙΠϯλͷࢦ͢஋͕Ͱͳ͚Ε͹ɼલͷ<·Ͱδϟϯϓ IUUQTRJJUBDPN5PNP4IJP[BXBJUFNTEDDFEG 8ͭͷ໋ྩͰશͯΛهड़
  3. ςʔϓτϨʔε # H >+++++++++[<++++++++>-]<. 0 9 0 0 0 0

    0 0 0 8 9 0 0 0 0 0 0 0 8 8 0 0 0 0 0 0 0 16 8 0 0 0 0 0 0 0     ϧʔϓ
  4. Compiler def step #ߏจղੳ case when @str.scan(/;;#{NUM}/) then [:push, num(@str[1])]

    when @str.scan(/;͐;/) then [:dup] when @str.scan(/;͑;#{NUM}/) then [:copy, num(@str[1])] when @str.scan(/;͐͑/) then [:swap] when @str.scan(/;͐͐/) then [:discard] when @str.scan(/;͑͐#{NUM}/) then [:slide, num(@str[1])] when @str.scan(/͑;;;/) then [:add] when @str.scan(/͑;;͑/) then [:sub]
  5. VM def run return_to = [] pc = 0 while

    pc < @instructions.size instructions, arg = *@instructions[pc] case instructions when :push push(arg) when :dup push(@stack[-1]) when :copy push(@stack[-(arg+1)]) when :swap y, x = pop, pop push(y) push(x)
  6. Hello, world! + + * + * + . +

    + * + * + .| + + * + * + * + . + + * + *| + . + + * + * + * + * + . + + * | + * + . + + * + * + * + . + + * | + * + * + * + . + + * + * + * +| * + . + + * + * + * + * + * + . + | + * + . + + * + * + . |
  7. 4ͭͷ໋ྩ • ελοΫʹର͢Δૢ࡞ • push, dup, swap, rotate, pop •

    ࢛ଇԋࢉ : + - * / % • จࣈͱ਺஋ͷೖग़ྗ • ෼ذ໋ྩ
  8. ม׵ํ๏ • ʮ*ʯ௚લͷ[space]ͷ਺ % 5 • 0: + 1: -

    2: * 3: / 4: % • ʮ+ʯ௚લͷۭനͷ਺ • 1: dup 2: swap 3:rotate 4:pop • 5Ҏ্: ([space]ͷ਺ - 5)Λpush
  9. ม׵ํ๏ • ʮ.ʯ ௚લͷۭന਺ % 2 • 0 : ਺஋ग़ྗɺ1

    ͳΒจࣈग़ྗ • ʮ,ʯ ௚લͷۭന਺ % 2 • 0 : ਺஋ೖྗɺ1 ͳΒจࣈೖྗ
  10. “H” (ASCII 72) + + * + * + .

    ͱΓ͋͑ͣΈͯΈΔ push 7 push 10 * push 2 + char_out தؒίʔυ <T>       
  11. ͍͍͔Μ͡ + + * + * + . + +

    * + * + .| + + * + * + * + . + + * + *| + . + + * + * + * + * + . + + * | + * + . + + * + * + * + . + + * | + * + * + * + . + + * + * + * +| * + . + + * + * + * + * + * + . + | + * + . + + * + * + . |
  12. จࣈ ಈ࡞ ⽂ DIBS@PVU ✒ OVN@PVU 㿃 XIJMF ☛ EP

    ✅ FOE ➕ ➖  ✖ ➗  ☚ BTTJHO 10ͷ໋ྩͰશͯΛهड़
  13. demo ⡠☚⁠ ⡡☚⁢ ⡢☚⡠✖⡡ ⡑☚⤒✖⤒ ⡒☚⡑➕ ⁞ 㿃⡑☛  ⡠

    ⭕ ⡠☚⡠➖ ⁞ ❌ ⡠☚  ✅   ⡡ ⭕ ⡡☚⡡➖ ⁞ ❌ ⡡☚⁡ ✅   ⡠ ⭕   ⡡ ⭕ ✒⡒➖ ⡑⽂⤒ ❌ ⽂⤒✖⁤➖ ⁡⽂⤒✖⤒➕ ⤒➕ ⁤⽂⁠✖⁡✖⤒➕  ⽂⁠✖⁡✖⤒➕  ⽂⤒ ✅  ❌   ⡡ ⭕ ⽂⤒✖⁤⽂⡒➕ ⁡⽂⁠✖⁡✖⤒➕  ⽂⁠✖⁡✖⤒➕  ⽂⤒ ❌ ⽂⤒✖⁤⽂⡒➕ ⁡⽂⁠✖⁡✖⤒➕  ⽂⁠✖⁡✖⤒➕   ⽂⤒✖⁤➖ ⁡⽂⤒✖⤒➕ ⤒➕ ⁤⽂⁠✖⁡✖⤒➕  ⽂⁠✖⁡✖⤒➕  ⽂⤒ ✅  ✅  ⡑☚⡑➖ ⁞ ✅