なぜ人類はインタプリタを自作するのか / Why do we create a interpreter

F2efbf06e1ada70dc431f6c31a5a399d?s=47 Tadao Iseki
September 07, 2019

なぜ人類はインタプリタを自作するのか / Why do we create a interpreter

F2efbf06e1ada70dc431f6c31a5a399d?s=128

Tadao Iseki

September 07, 2019
Tweet

Transcript

  1. ͳͥਓྨ͸ΠϯλϓϦλΛ ࣗ࡞͢Δͷ͔ 2019/09/07 (Sat.) ՆͩΘͬ͠ΐ͍ʂ2019ʙࣗ༝ݚڀLTʙ @saitoeku3

  2. Who? Tadao Iseki (@saitoeku3) Kanazawa Institute of Technology B3 Web

    Frontend and Backend Engineer TypeScript, React, Vue.js, Node.js, Rails
  3. ಥવͰ͕͢…

  4. ͋ͳͨ͸ ίϯύΠϥ / ΠϯλϓϦλ Λ ࣗ࡞ͨ͜͠ͱ͕͋Γ·͔͢ʁ ʢ΋͘͠͸਎ۙʹࣗ࡞ͨ͠ਓ͕͍·͔͢ʁʣ

  5. Ҏલͷ๻ʮૉఢͳ͜ͱͯ͠͸Γ·͢ͳ͊ ʢ͓ؾ͕࣋ͪཧղͰ͖ͳ͍ͷ͕ͩ…ʁʣʯ ࠷ۙͷ๻ʮ͌͞ͱ΋΍Δʔʯ

  6. ଞͷਓྨ͕ίϯύΠϥ / τϥϯεύΠϥ Λ ࣗ࡞͍ͯ͠Δؾ͕࣋ͪগ͠Θ͔͖ͬͯͨ

  7. ࠓ೔࿩͢͜ͱ - ίϯύΠϥ / ΠϯλϓϦλ ͱ͸ʢ֬ೝʣ - Computer Science ͳΜ΋Θ͔ΒΜয૩ײ

    - Rust ͱͷग़ձ͍ - ࠓ௅ઓ͍ͯ͠Δ͜ͱ
  8. ·ͩॳ৺ऀͳͷͰؒҧͬͨ͜ͱΛݴ͍ͬͯͨΒ ༏͘͠ࢦఠ͍ͯͩ͘͠͞

  9. ίϯύΠϥ / ΠϯλϓϦλ ͱ͸ʁ

  10. ίϯύΠϥ ΠϯλϓϦλ ϓϩάϥϜΛղऍͯ͠ɺػցޠ΍ݩΑΓ௿͍ਫ४ͷίʔυʹม׵͢Δ΋ͷ ࠾༻͍ͯ͠Δݴޠ: C ݴޠɺJavaɺGo ݴޠɺetc… ϓϩάϥϜΛղऍͯ͠ɺʢதؒදݱʹม׵ޙʹʣ࣮ߦ͢Δ΋ͷ ࠾༻͍ͯ͠Δݴޠ: RubyɺPHPɺPythonɺetc…

  11. ίϯύΠϥ ΠϯλϓϦλ ϓϩάϥϜΛղऍͯ͠ɺػցޠ΍ݩΑΓ௿͍ਫ४ͷίʔυʹม׵͢Δ΋ͷ ࠾༻͍ͯ͠Δݴޠ: C ݴޠɺJavaɺGo ݴޠɺetc… ϓϩάϥϜΛղऍͯ͠ɺʢதؒදݱʹม׵ޙʹʣ࣮ߦ͢Δ΋ͷ ࠾༻͍ͯ͠Δݴޠ: RubyɺPHPɺPythonɺetc…

    ࠓճ͸ͬͪ͜ʂ
  12. Computer Science ͳΜ΋Θ͔ΒΜয૩ײ

  13. ͳΜ΋Θ͔ΒΜʢϚδʣ ΦϖϨʔςΟϯά γεςϜ ΞϧΰϦζϜ νϡʔϦϯάϚγϯ σʔλߏ଄ ҉߸ཧ࿦

  14. ਫ਼Ұഋͷݴ͍༁ CS ͠ͳֶ͍Պ ͔ͩΒ… ಄ྑ͍ਓʹ ·͔ͤΑ͏ ෳࡶͳ෦෼͸ FW ͕΍ͬͯ͘ΕΔ ߴϨΠϠʔ͑͞

    Ͱ͖Ε͹ྑ͍ ௿Ϩݏʔʂ͆
  15. ιϑτ΢ΣΞΤϯδχΞͱͯ͠ ੜ͖͍ͯ͘ͳΒආ͚ΒΕͳ͍ʁ

  16. Ͱ΋Կ͔Β࢝ΊΕ͹ྑ͍͔Θ͔Βͳ͍͠ɺ ͦ΋ͦ΋ C ݴޠ͸ۤखҙ͕ࣝ͋ͬͯ৮Γͨ͘ͳ͍…

  17. Rust ͱͷग़ձ͍

  18. Rust ͱ͸ Firefox Ͱ༗໊ͳ Mozilla ͕։ൃΛࢧԉ͍ͯ͠Δϓϩάϥϛϯάݴޠ C ݴޠ΍ C++ ʹ୅ΘΔݴޠΛ໨ࢦ͍ͯ͠Δ

    ࠷ۙ Microsoft ͕ਪ͍ͯ͠Δ ಛ௃ - Garbage Collection Λ࢖༻͠ͳ͍୅ΘΓʹݫີͳϝϞϦ؅ཧ͕ٻΊΒΕΔ - WebAssembly ͱͯ͠ Web ϒϥ΢β্Ͱ࣮ߦͰ͖Δ - ࣗಈิ׬ɺϑΥʔϚολɺܕݕࠪͳͲαϙʔτ͕ॆ࣮ - ݫີͳ੩తܕ෇͚
  19. ͢͜ϙΠϯτ - VSCode Ͱॻ͍ͯΈΔͱΨϯΨϯิ׬͕ޮ͍ͯ DX ͕ྑ͍ - λϓϧ΍ߏ଄ମͰ JavaScript ͷΑ͏ͳॻ͖ํ͕Ͱ͖Δ

    - ؔ࿈πʔϧʢrustcɺrustupɺCargoʣΛެ͕ࣜఏڙ - †໊લ͕Χοί͍͍† - νϡʔτϦΞϧ͕ແྉͰެ։͞Ε͍ͯΔ - σϑΥϧτͰ immutable
  20. ΋ͬͱֶͼ͍ͨʂॻ͖͍ͨʂ Ͱ΋ԿΛ࡞Ε͹ྑ͍ͷ͔ͳ…ʁ

  21. ࠓ௅ઓ͍ͯ͠Δ͜ͱ

  22. JavaScript Engine Written in Rust Λ࡞ΔͨΊͷ͓ษڧ

  23. JavaScript Engine Written in Rust Λ࡞ΔͨΊͷ͓ษڧ

  24. ۩ମతʹ͸… - Go ݴޠͰͭ͘ΔΠϯλϓϦλ / O'REILLY Λߪೖ - Monkey ݴޠͷΠϯλϓϦλΛ

    Go ݴޠͰ࣮૷ - ࣈ۟ղੳͷ࣮૷·ͰऴΘͬͨʢୈҰষʣ - ࠓޙ͸ Rust Ͱॻ͖௚͢
  25. ·ͱΊ

  26. ·ͱΊ ίϯύΠϥ / ΠϯλϓϦλ ͸ιϑτ΢ΣΞ։ൃʹ޿͘ܨ͕͍ͬͯΔ - ݴޠΛਂ͘ཧղͰ͖ΔΑ͏ʹͳΔ - ͍ͭͷؒʹ͔ओઓ৔ͷϑϩϯτΤϯυʹ -

    Node.js ͳͲ OSS ʹ Contribution ͢ΔͨΊͷ஌͕ࣝ਎ʹͭ͘ ྼ౳ײʹଧͪউͭͱࣗ৴ʹͳΔ - ՈʹؼΔͱ Rust ੡ͷ JavaScript Τϯδϯ͕଴͍ͬͯΔ਎ͧ - Կ͔ਏ͍͜ͱ͕͋ͬͯ΋ؤுΕΔؾʹͳΕΔ͔΋ʁ