$30 off During Our Annual Pro Sale. View Details »

Lisp Interpreter written in Perl

Lisp Interpreter written in Perl

emacs に乗り換えたきっかけで、Lisp を覚えようと Perl で Lisp Interpreter を書いた話です。

p5-Lisp::Tiny: https://github.com/Code-Hex/p5-Lisp-Tiny
Parser の書き方: https://speakerdeck.com/codehex/perl-dezuo-ru-tiny-shell

Kei Kamikawa

January 25, 2019
Tweet

More Decks by Kei Kamikawa

Other Decks in Programming

Transcript

  1. 1FSMͰॻ͘

    -JTQ*OUFSQSFUFS
    :"1$5PLZPલ໷ࡇ

    View Slide

  2. 8)0".*
    +645461&326*$,

    View Slide

  3. !DPEFIFY

    View Slide

  4. ͱͯ΋פ͍Ͱ͢Ͷ

    View Slide

  5. ͱ͜ΖͰ

    View Slide

  6. ΤσΟλ͸Կ͕޷͖Ͱ͔͢ʁ

    View Slide

  7. View Slide

  8. View Slide

  9. ๻͸

    View Slide


  10. View Slide

  11. λʔϛφϧͱΤσΟλը໘

    ߦ͖དྷ͢ΔͷʹർΕ͖ͯͨ

    View Slide

  12. ͜Ε͸

    View Slide

  13. ΤσΟλΛม͑Δͧ

    View Slide

  14. .BDͱಉ͡γϣʔτΧοτ͕
    ࢖͑Δ

    View Slide


  15. View Slide

  16. ͦ͏ɺFNBDTͰ͢ʂ

    View Slide

  17. View Slide

  18. ͱɺݴ͍ͭͭ

    View Slide

  19. WTDPEF

    FNBDTLFZCJOEJOHT

    View Slide

  20. ͜Ε͡Ό͋ͩΊͩʂʂ

    View Slide

  21. FNBDTΛ࢖͍͜ͳͨ͢Ίʹ

    View Slide

  22. -JTQΛ͍֮͑ͨʂʂ

    View Slide

  23. -JTQJOUFSQSFUFSΛ

    ࡞֮ͬͯ͑Α͏ʂʂ

    View Slide

  24. ܰ͘࡞ͬͨʂ

    View Slide

  25. Q-JTQ5JOZ
    IUUQTHJUIVCDPN$PEF)FYQ-JTQ5JOZ

    View Slide

  26. -JTQ1BSTFS
    $PNNPO-JTQͷύʔαʔΛॻ͘

    View Slide

  27. -JTQͬͯͲΜͳه๏ʁ

    View Slide

  28. MFU

    B
    C


    BC



    ׅހ͕͍ͬͺ͍ʂʂ

    View Slide

  29. /'ه๏
    IUUQDVJVOJHFDIJTJCOG-*41#/'JOEFYIUNM

    View Slide

  30. w T@FYQSFTTJPOBUPNJD@TZNCPMc

    T@FYQSFTTJPOT@FYQSFTTJPO
    cMJTU
    w MJTU T@FYQSFTTJPO\T@FYQSFTTJPO^

    w BUPNJD@TZNCPM

    TQBDFcJEFOUJpFScTUSJOHcOVNFSJD

    View Slide

  31. -JTQ5JOZ1BSTFS
    IUUQTHJUIVCDPN$PEF)FYQ-JTQ5JOZCMPCNBTUFS
    MJC-JTQ5JOZ1BSTFSQN

    View Slide

  32. ύʔαʔͷॻ͖ํ͸ˣ

    View Slide

  33. ύʔεޙ

    View Slide

  34. 7.ͷ࡞੒
    -JTQͷ࣮ߦ෦෼Λ࡞੒

    View Slide

  35. ͜ͷ-JTQͰͰ͖Δ͜ͱ

    View Slide

  36. w άϩʔόϧม਺ఆٛ
    w ϩʔΧϧม਺ఆٛ
    w ࢛ଇԋࢉ
    w ग़ྗ

    View Slide

  37. -JTQ5JOZ7.
    IUUQTHJUIVCDPN$PEF)FYQ-JTQ5JOZCMPCNBTUFS
    MJC-JTQ5JOZ7.QN

    View Slide

  38. ม਺͔Β஋औΓग़͠

    View Slide

  39. ϩʔΧϧม਺΁֨ೲ

    View Slide

  40. ஞ࣍ॲཧΛߦͬͯ஋Λฦ͢

    View Slide

  41. άϩʔόϧม਺΁֨ೲ

    View Slide

  42. CVJMUJOϧʔνϯͷݺͼग़͠

    View Slide

  43. 3FQMͷ࡞੒
    3FQMΛ࡞Δ

    View Slide

  44. rDPEFIFY
    5FSN3FBE-JOFΛ࢖͑͹͍͍ײ͡Ͱͨ͠

    View Slide

  45. ׬੒

    View Slide

  46. σϞ

    View Slide

  47. ͜ΕͰ-JTQΛ֮͑ΒΕͨʁ

    View Slide

  48. ͋Δఔ౓ཧղͰ͖ͨɻ

    View Slide

  49. QSJOU'JO

    View Slide