C Compiler in Crystal on Compile Time

C Compiler in Crystal on Compile Time

2016/11/29の東京 Crystal 勉強会 #4で発表したものです。

Db1b7e3c6fe6f6a0e9752b2c19bf5473?s=128

TSUYUSATO Kitsune

November 30, 2016
Tweet

Transcript

  1. $$PNQJMFSJO$SZTUBM PO$PNQJMF5JNF 546:64"50l.BLF/PX+VTUz,JUTVOF 

  2. 8IP"SF:PV w !NBLF@OPX@KVTU 5XJUUFS 
 !.BLF/PX+VTU (JU)VC  w ࿐ཬ͖ͭͶʢBLB͖ͬ͞࡞ͬͨʣ

    w จܥେֶੜ w $SZTUBMʹίϯτϦϏϡʔτ͢Δਓ
  3. ࠷ۙ΍ͬͨ͜ͱ

  4. ݴޠΛ͍͍Ճݮʹ঺հ IUUQRJJUBDPNNBLF@OPX@KVTUJUFNTCBCGDE

  5. CBTIͰNFNDBDIFEΛ࣮૷ IUUQRJJUBDPNNBLF@OPX@KVTUJUFNTGBBCBBDEC

  6. ຊฤ

  7. $$PNQJMFSJO$SZTUBM PO$PNQJMF5JNF

  8. $SZTUBMͰॻ͔Εͨ ίϯύΠϧ࣌ʹಈ͘ $ίϯύΠϥ

  9. SIZTEDDWJN IUUQTHJUIVCDPNSIZTEDDWJN

  10. LXVEPODPOTUFYQSDD IUUQTHJUIVCDPNLXVEPODPOTUFYQSDD

  11. ੈ͸େ$ίϯύΠϥ࣮૷࣌୅

  12. ͳͥʁ

  13. &-7. IUUQTHJUIVCDPNTIJOIFMWN

  14. &-7. w &TP-BOH7.$PNQJMFS*OGSBTUSVDUVSF w TIJOIࢯ࡞ w #SBJOG DLΈ͍ͨͳݴޠͰ΋࣮ߦՄೳͳ͘Β͍
 γϯϓϧͳ7. w

    ͦͷ্Ͱಈ͘$ίϯύΠϥ΋ఏڙ͞Ε͍ͯΔ w 7.ͷίʔυˠϓϩάϥϜ΁ͷม׵ثΛ࡞Ε͹ɺ
 ͦͷݴޠͰ$ίϯύΠϥ͕ಈ͘Α͏ʹͳΔ
  15. ࠓճ͸ɺ &-7.ˠ$SZTUBMͷϚΫϩ ΁ͷม׵Λ࣮૷

  16. $SZTUBMͷϚΫϩ w $SZTUBMͷ໨ۄػೳͷҰͭ w ίϯύΠϧ࣌ʹ࣮ߦ͞ΕΔ

  17. ίϯύΠϧ࣌ʹίϚϯυΛ࣮ߦͯ͠ ݁ՌΛຒΊࠐΉ IUUQTHJUIVCDPNDSZTUBMMBOHDSZTUBMCMPC CBGEDDFGDEEFBTSDDPNQJMFSDSZTUBMDPOpHDS-

  18. ςϯϓϨʔτΛύʔεͯ͠ ϓϩάϥϜʹຒΊࠐΉ w &$3ʢ$SZTUBMʹඪ४Ͱ͍͍ͭͯΔςϯϓϨʔτΤϯδϯʣ w ίϯύΠϧ࣌ʹςϯϓϨʔτ͕ύʔε͞Ε
 ϓϩάϥϜʹม׵͞ΕͯɺͦΕ͕ຒΊࠐ·ΕΔ w ͳͷͰͱͯ΋ૣ͍ w

    ϚΫϩͱ͍͏͔ɺ಺෦ͰϚΫϩͷػೳΛ࢖ͬͯ
 ςϯϓϨʔτΛύʔε͢Δ$SZTUBMͷϓϩάϥϜΛىಈ͍ͯ͠Δ
  19. ৭ʑͰ͖Δʁ

  20. $SZTUBMͷϚΫϩͷ੍໿ w $SZTUBMͷϚΫϩͰ࢖͑Δͷ͸$SZTUBMͷαϒηοτ w ࢖͑Δϝιουʹ੍ݶ w ΦϒδΣΫτͷมߋ͕͋·ΓͰ͖ͳ͍
 ʢྫ"SSBZ͸QVTIɺ)BTI͸<>ͷΈʣ w XIJMF΍VOUJMͳͲͷϧʔϓ΋࢖͑ͳ͍


    ʢCSFBL΍OFYU΋࢖͑ͳ͍ʣ w MPPQϝιου΋࢖͑ͳ͍ˠແݶϧʔϓ͕Ͱ͖ͳ͍ʁ
  21. ແݶϧʔϓ͕࢖͑ͳ͍ʁ

  22. GPSJO QVTI 1 {% begin %} 2 {% array =

    [0] %} 3 {% i = 0 %} 4 {% for x in array %} 5 {% if i < 10 %} 6 {% array.push 0 %} # ͜͜Ͱarrayͷத਎Λ௥Ճ 7 {% p i %} 8 {% i = i + 1 %} # ͳ͔ͥ += ͕࢖͑ͳ͍… 9 {% end %} 10 {% end %} 11 {% end %}
  23. ͦͷଞɺͭΒ͔ͬͨͱ͜Ζ w ౰ॳɺ࠶ؼͰϧʔϓΛ࣮૷͠Α͏ͱͨ͠
 ˠελοΫΦʔόʔϑϩʔ͢Δɺແཧ w ೖྗɺग़ྗʹ͍ͭͯ͸ଥڠ w ೖྗ͸ࣗ෼ࣗ਎ʹίϯύΠϧ࣌ϑϥάΛ෇͚ͯ
 TZTUFNϝιουͰىಈ͠ಡΈग़͢ w

    ग़ྗ͸࣮ߦ࣌ʹ͢Δ
  24. ڪΖ͘͠େ͖͍ MMIPVUDDDFJSDS SXYSYSYNBLFOPXKVTUTUB⒎.PVUDDDFJSDS

  25. ڪΖ͘͠஗͍ ෼͔͚ͯ΋QVUDIBS͢Δ͚ͩͷ$ͷίʔυͷ ίϯύΠϧ͕ऴΘΒͳ͍ఔ౓

  26. ·ͱΊ

  27. $SZTUBMͷϚΫϩ͸
 ΍Ε͹Ͱ͖Δࢠ ͔ͩΒ΋͏গ͠ػೳ૿΍ͯ͠΄͍͠ʝ

  28. $SZTUBMͷϚΫϩ͸ νϡʔϦϯά׬શ ΋͏গ͠ػೳΛʝ

  29. ౰೔ʹεϥΠυͷ಺༰Λ Ͱ্ͬͪ͛Δͷͱ͔ແཧ

  30. ͝ΊΜͳ͍͞ʝ