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

LintオタクによるLint解説 / Introduction to Lints

Kuniwak
November 18, 2022

LintオタクによるLint解説 / Introduction to Lints

Kuniwak

November 18, 2022
Tweet

More Decks by Kuniwak

Other Decks in Programming

Transcript

  1. -JOUΦλΫʹ
    ΑΔ-JOUղઆ
    -JOU/JHIU,VOJXBL

    View Slide

  2. ,VOJXBL
    7JNTDSJQUͷ-JOUͰ͋Δ7JOUͷ࡞ऀɻ
    -JOU͕޷͖͗ͯ͢Φʔϓϯιʔεͷ
    -JOUͷίʔυΛಡΈړ͍ͬͯΔɻ
    Ͱ-JOUͷ։ൃ΋͍ͯ͠Δɻ
    2

    View Slide

  3. ͜ͷൃදͰ఻͍͑ͨ͜ͱ
    3

    View Slide

  4. 4
    -JOUͷڭཆ
    -JOUͱ͸
    -JOUͷݕग़͢Δ໰୊
    -JOUͷߏ଄
    -JOUͷޮՌతͳ࢖͍ํ

    View Slide

  5. 5
    -JOUͷڭཆ
    -JOUͱ͸
    -JOUͷݕग़͢Δ໰୊
    -JOUͷߏ଄
    -JOUͷޮՌతͳ࢖͍ํ

    View Slide

  6. ίʔυͱઃఆΛೖྗͱͯ͠ϓϩάϥϜͷ໰୊Λ੩తʹ
    ݕग़͢Δπʔϧͷ͜ͱ
    ࣗવݴޠͰॻ͔ΕͨจॻͱઃఆΛೖྗͱͯ͠
    จॻͷ໰୊Λݕग़͢Δπʔϧͷ͜ͱ
    6
    -JOUͱ͸ʢ߹ҙ͞Εͨఆٛ͸ͳ͍ͷͰ஫ҙʣ
    1
    2

    View Slide

  7. ίʔυͱઃఆΛೖྗͱͯ͠ϓϩάϥϜͷ໰୊Λ੩తʹ
    ݕग़͢Δπʔϧͷ͜ͱ
    ࣗવݴޠͰॻ͔ΕͨจॻͱઃఆΛೖྗͱͯ͠
    จॻͷ໰୊Λݕग़͢Δπʔϧͷ͜ͱ
    7
    -JOUͱ͸ʢ߹ҙ͞Εͨఆٛ͸ͳ͍ͷͰ஫ҙʣ
    2
    ੩తʹݕग़͢Δͱ͸ɺϓϩάϥϜΛ
    ࣮ࡍʹ࣮ߦ͢Δ͜ͱͳ͘໰୊Λ
    ݕग़͢Δͱ͍͏ҙຯ
    1

    View Slide

  8. :BDDͰ༗໊ͳ4$+PIOTPO͕೥ʹ։ൃͨ͠$ݴޠͷ
    ੩తݕࠪثͷ໊લ͕-JOUͩͬͨ͜ͱʹ༝དྷ͢Δɻ
    ࠓͰ͸͜ͷ-JOUʹࣅͨ੩తݕࠪثશൠ͕-JOUͱݺ͹Ε͍ͯΔɻ
    ΋ͱ΋ͱ-JOUͱ͸ࢳͣ͘ͷҙຯͰɺࢳͣ͘औΓΛΠϝʔδͯ͠
    -JOUͱ໊෇͚ΒΕͨΒ͍͠ɻ
    UFYUMJOUͷొ৔͔Β-JOUͷࢦ͢੩తݕࠪث͸ࣗવݴޠͷจॻΛ
    ର৅ͱ͢Δ΋ͷʹ·Ͱ޿͕͍ͬͯΔɻ
    8
    -JOUͷ໊લͷ༝དྷ

    View Slide

  9. 9
    -JOUͷڭཆ
    -JOUͱ͸
    -JOUͷݕग़͢Δ໰୊
    -JOUͷߏ଄
    -JOUͷޮՌతͳ࢖͍ํ

    View Slide

  10. -JOU͕
    ݕग़͢Δ
    ໰୊
    ॲཧܥ͕੩తʹ
    ݕग़͢Δ໰୊
    ୯७ͳઃఆΛ΋ͱʹ੩తʹݕग़Ͱ͖Δ
    ϓϩάϥϜͷ໰୊ͷ͏ͪɺॲཧܥ
    ʢίϯύΠϥ΍ΠϯλϓϦλʣ͕
    ݕग़͠ͳ͍΋ͷɻ
    ࣗવݴޠͷ໰୊ʹ͍ͭͯ͸ಈ੩ͷ
    ֓೦͕ͳ͍ͷͰ͍͍ͩͨશ෦ɻ
    -JOUͷݕग़͢Δ໰୊
    10

    View Slide

  11. 11
    -JOU͕
    ݕग़͢Δ
    ໰୊
    ॲཧܥ͕੩తʹ
    ݕग़͢Δ໰୊
    ॲཧܥͱ-JOUͷݕग़ର৅͸ݴޠ͝ͱʹҟͳΔ
    -JOU͕
    ݕग़͢Δ
    ໰୊
    ॲཧܥ͕੩తʹ
    ݕग़͢Δ໰୊
    5ZQF4DSJQU $ (P
    1FSM 3VCZ +BWB4DSJQU

    View Slide

  12. 12
    -JOUͷݕग़͢Δ໰୊ͷྫ
    ఆٛʹ߹ҙͷऔΕͳ͍໰୊
    ಈతʹ͔͠ݕग़͞Ε͍ͯͳ͍໰୊
    1
    2

    View Slide

  13. 13
    ໰୊ͷఆٛʹ߹ҙͷऔΕͳ͍΋ͷ

    ݹདྷΑΓਓྨ͸ίʔσΟϯάελΠϧͰ૪͖ͬͯͨɻ
    ͍·΋૪͍ͷܾண͸͍͍ͭͯͳ͍ͨΊॲཧܥ͕
    ίʔσΟϯάελΠϧΛݕࠪ͢Δ͜ͱ͸
    ΄ͱΜͲͳ͘ɺ-JOUͷ໾ׂʹͳ͍ͬͯΔɻ
    ͨͩ͠Ұ෦ͷॲཧܥ͸ΠϯσϯτΛ
    ݕࠪ͢Δ͜ͱ͕͋ΔʢΦϑαΠυϧʔϧͱ͍͏ʣɻ
    1

    View Slide

  14. 14
    ໰୊ͷఆٛʹ߹ҙͷऔΕͳ͍΋ͷ

    ͲͷϑϨʔϜϫʔΫΛ࢖͏͔ɺ͋Δ͍͸࢖Θͳ͍͔͸
    ࣗ༝Ͱ͋ΔͷͰɺϑϨʔϜϫʔΫݻ༗ͷ࢖͍ํͷ
    ໰୊΋ॲཧܥ͕ݕग़͢Δ͜ͱ͸ͳ͍ɻ-JOUͷग़൪ɻ
    1

    View Slide

  15. 15
    ಈతʹ͔͠ݕग़͞Ε͍ͯͳ͍໰୊
    ಈతʹݕग़͞ΕΔ໰୊Λ੩తʹݕग़͢Δͷ΋-JOUͷ
    ໾ׂͷ̍ͭɻ࠷ۙͰ͸͞·͟·ͳಈతܕݕ͖ࠪͭ
    ϓϩάϥϛϯάݴޠʹ੩తܕݕࠪΛ͢Δ-JOU͕
    ొ৔͍ͯ͠ΔʢNZQZ 'MPX 4PSCFU 1)14UBO ʣɻ
    2

    View Slide

  16. 16
    -JOUͷڭཆ
    -JOUͱ͸
    -JOUͷݕग़͢Δ໰୊
    -JOUͷߏ଄
    -JOUͷޮՌతͳ࢖͍ํ

    View Slide

  17. ςετɾϨϏϡʔҎ߱Ͱݕग़͞Ε͍ͯͨ
    ໰୊Λ-JOUͰݕग़͢Δ
    17
    -JOUͷޮՌతͳ࢖͍ํ

    View Slide

  18. 18
    ͳͥޮՌతͱओு͍ͯ͠Δͷ͔

    View Slide

  19. 19
    ߏจղੳ
    -JOUίϯύΠϧ࣌ݕࠪ
    ୯ମɾ݁߹ςετϨϏϡʔ
    γεςϜςετ
    ຊ൪؀ڥͰͷΤϥʔऩू
    Ϣʔβʔ͔Βͷ͓໰͍߹Θͤ


    Λ
    ݕ

    ͢
    Δ
    ͨ
    Ί
    ͷ


    View Slide

  20. 20
    ߏจղੳ
    -JOUίϯύΠϧ࣌ݕࠪ
    ୯ମɾ݁߹ςετϨϏϡʔ
    γεςϜςετ
    ຊ൪؀ڥͰͷΤϥʔऩू
    Ϣʔβʔ͔Βͷ͓໰͍߹Θͤ
    ্͔Βॱʹݕࠪ͞ΕΔ
    ໰୊9


    Λ
    ݕ

    ͢
    Δ
    ͨ
    Ί
    ͷ


    View Slide

  21. 21
    ߏจղੳ
    -JOUίϯύΠϧ࣌ݕࠪ
    ୯ମɾ݁߹ςετϨϏϡʔ
    γεςϜςετ
    ຊ൪؀ڥͰͷΤϥʔऩू
    Ϣʔβʔ͔Βͷ͓໰͍߹Θͤ
    ໰୊Λݕग़͢Δͱࢭ·Δ
    ໰୊9


    Λ
    ݕ

    ͢
    Δ
    ͨ
    Ί
    ͷ


    View Slide

  22. 22
    ߏจղੳ
    -JOUίϯύΠϧ࣌ݕࠪ
    ୯ମɾ݁߹ςετϨϏϡʔ
    γεςϜςετ
    ຊ൪؀ڥͰͷΤϥʔऩू
    Ϣʔβʔ͔Βͷ͓໰͍߹Θͤ
    ໰୊9 ໰୊:
    ্ͷํͷखஈͰࢭ·Δͱ
    ௿ίετͰ໰୊Λݕग़Ͱ͖Δ
    ಛघͳ໰୊͸Լͷํͷ
    खஈͰ͔͠ݕग़Ͱ͖ͳ͍


    Λ
    ݕ

    ͢
    Δ
    ͨ
    Ί
    ͷ


    View Slide

  23. 23
    ߏจղੳ
    -JOUίϯύΠϧ࣌ݕࠪ
    ୯ମɾ݁߹ςετϨϏϡʔ
    γεςϜςετ
    ຊ൪؀ڥͰͷΤϥʔऩू
    Ϣʔβʔ͔Βͷ͓໰͍߹Θͤ
    -JOU͸͜ͷҐஔ


    Λ
    ݕ

    ͢
    Δ
    ͨ
    Ί
    ͷ


    View Slide

  24. 24
    ߏจղੳ
    -JOUίϯύΠϧ࣌ݕࠪ
    ୯ମɾ݁߹ςετϨϏϡʔ
    γεςϜςετ
    ຊ൪؀ڥͰͷΤϥʔऩू
    Ϣʔβʔ͔Βͷ͓໰͍߹Θͤ
    ΋͠-JOUΛ࢖͍ͬͯͳ͍ͱɺ
    -JOUͰݕग़Ͱ͖Δ໰୊ΛΑΓ
    ߴίετͳςετ΍ϨϏϡʔͰ
    ݕग़͠ͳ͍ͱ͍͚ͳ͘ͳΔ
    ܕΤϥʔ ػೳͷޡ༻


    Λ
    ݕ

    ͢
    Δ
    ͨ
    Ί
    ͷ


    View Slide

  25. 25
    ߏจղੳ
    -JOUίϯύΠϧ࣌ݕࠪ
    ୯ମɾ݁߹ςετϨϏϡʔ
    γεςϜςετ
    ຊ൪؀ڥͰͷΤϥʔऩू
    Ϣʔβʔ͔Βͷ͓໰͍߹Θͤ
    -JOUΛ࢖͏͜ͱͰɺΑΓ
    ௿ίετͰ໰୊Λݕग़Ͱ͖Δ
    ܕΤϥʔ ػೳͷޡ༻


    Λ
    ݕ

    ͢
    Δ
    ͨ
    Ί
    ͷ


    View Slide

  26. 26
    Ͳ͏΍࣮ͬͯݱ͢Δͷ͔

    View Slide

  27. 27
    -JOUΛ࢖࣮ͬͨݱํ๏ͷྫ
    w ܕΤϥʔͷݕग़
    ‎ ੩తܕݕࠪͷͰ͖Δ-JOUΛಋೖ͢Δ
    w ίʔσΟϯάελΠϧҧ൓ͷݕग़
    ‎ -JOUͷઃఆΛڞ༗͢Δ͜ͱͰ࣮ݱͰ͖Δ
    w ϓϩδΣΫτ಺Ͱ࣮૷͞Εͨػೳͷޡ༻ͷݕग़
    ‎ -JOUͷϧʔϧΛ࣮૷࣮ͯ͠ݱͰ͖Δ

    View Slide

  28. 28
    -JOUΛ࢖࣮ͬͨݱํ๏ͷྫ
    w ܕΤϥʔͷݕग़
    ‎ ੩తܕݕࠪͷͰ͖Δ-JOUΛಋೖ͢Δ
    w ίʔσΟϯάελΠϧҧ൓ͷݕग़
    ‎ -JOUͷઃఆΛڞ༗͢Δ͜ͱͰ࣮ݱͰ͖Δ
    w ϓϩδΣΫτ಺Ͱ࣮૷͞Εͨػೳͷޡ༻ͷݕग़
    ‎ -JOUͷϧʔϧΛ࣮૷࣮ͯ͠ݱͰ͖Δ
    ͜ͷͨΊʹ͸-JOUͷ
    ߏ଄Λ஌Δඞཁ͕͋Δ

    View Slide

  29. 29
    -JOUͷڭཆ
    -JOUͱ͸
    -JOUͷݕग़͢Δ໰୊
    -JOUͷߏ଄
    -JOUͷޮՌతͳ࢖͍ํ

    View Slide

  30. 30
    -JOUͷߏ଄
    w -JOUͷߏ଄͸ͲΕ΋ࣅ௨͍ͬͯΔͷͰɺͭΛ
    ಡΊΔΑ͏ʹͳΔͱଞͷ΋ಡΊΔΑ͏ʹͳΔ
    w ॲཧͷྲྀΕ΋தؒσʔλ͕ҟͳΔ͚ͩͰ΄ͱΜͲಉ͡
    w ѻ͏ओͳதؒσʔλ͸ɿ
    w τʔΫϯྻ
    w ந৅ߏจ໦
    w ੍ޚϑϩʔάϥϑʢࠓճ͸ׂѪʣ

    View Slide

  31. 31
    -JOUͷ୅දతͳߏ଄
    ݕࠪϧʔϧΛԣஅ͢Δॲཧ
    ʢ$-*ͷఏڙɺݕࠪ༰қͳσʔλ΁ͷม׵ɺݕࠪϧʔϧͷ࣮ߦʣ
    ݕࠪ
    ϧʔϧ
    ݕࠪ
    ϧʔϧ
    ݕࠪ
    ϧʔϧ
    ݕࠪ
    ϧʔϧ
    ݕࠪϧʔϧ͝ͱʹݸผͷ
    ίϯϙʔωϯτͱ࣮ͯ͠૷͠ɺ
    ԣஅॲཧΛݕࠪϧʔϧʹ
    ґଘͤ͞ͳ͍ߏ଄͕΄ͱΜͲɻ
    ͳ͓-JOUͷίʔυΛಡΉ
    ࡍʹ͸ɺίʔυྔͷগͳ͍
    ݕࠪϧʔϧ͔Β͕͓͢͢Ίɻ
    ґ

    ݩ
    ґ


    View Slide

  32. 32
    -JOU
    ݕ͍ࠪͨ͠
    ιʔείʔυ
    ݕࠪϧʔϧ
    ͝ͱͷઃఆ
    ݕग़ͨ͠
    ໰୊ͷҰཡ
    -JOUͷॲཧͷྲྀΕ

    View Slide

  33. 33
    -JOU
    ݕ͍ࠪͨ͠
    ιʔείʔυ
    ݕࠪϧʔϧ
    ͝ͱͷઃఆ
    ݕग़ͨ͠
    ໰୊ͷҰཡ
    ίʔσΟϯάελΠϧΛݕࠪ͢Δ-JOUͷྫ
    ࣈ۟
    ղੳ
    τʔΫϯྻ
    ʢޙड़ʣ
    ݕࠪ

    View Slide

  34. 34
    ݕ͍ࠪͨ͠
    ιʔείʔυ
    ݕࠪϧʔϧ
    ͝ͱͷઃఆ
    ݕग़ͨ͠
    ໰୊ͷҰཡ
    ΑΓߴ౓ͳݕࠪΛ͢Δ-JOUͷྫ
    ߏจ
    ղੳ
    ݕࠪ
    ந৅ߏจ໦
    ʢޙड़ʣ
    -JOU

    View Slide

  35. 35
    ݕ͍ࠪͨ͠
    ιʔείʔυ
    ݕग़ͨ͠
    ໰୊ͷҰཡ
    ॲཧͷྲྀΕͷൺֱ
    ࣈ۟
    ղੳ
    ݕࠪ
    τʔΫϯྻ
    ʢޙड़ʣ
    ݕ͍ࠪͨ͠
    ιʔείʔυ
    ݕग़ͨ͠
    ໰୊ͷҰཡ
    ݕࠪ
    ந৅ߏจ໦
    ʢޙड़ʣ
    ߏจ
    ղੳ
    ͜ͷ෦෼͕ҟͳΔ͚ͩ

    View Slide

  36. 36
    -JOU
    ݕ͍ࠪͨ͠
    ιʔείʔυ
    ݕࠪϧʔϧ
    ͝ͱͷઃఆ
    ݕग़ͨ͠
    ໰୊ͷҰཡ
    ίʔσΟϯάελΠϧΛݕࠪ͢Δ-JOUͷྫ
    ࣈ۟
    ղੳ
    τʔΫϯྻ
    ʢޙड़ʣ
    ݕࠪ

    View Slide

  37. 37
    τʔΫϯྻ
    τʔΫϯྻ
    function
    helloWorld
    (
    )
    {
    console
    .
    log
    τʔΫϯͱ͸ɺιʔείʔυͷ
    จࣈྻʹग़ݱ͢ΔҙຯΛ࣋ͬͨ
    ࠷খ୯Ґͷ͜ͱ

    View Slide

  38. 38
    /** ϋϩʔϫʔϧυΛදࣔ͢Δ */
    function helloWorld() {
    console.log("Hello, World!");
    }
    τʔΫϯྻ
    τʔΫϯྻ
    function
    helloWorld
    (
    )
    {
    console
    .
    log
    ؆୯ͳ+BWB4DSJQUͷιʔείʔυ
    ͷτʔΫϯΛݟͯΈΑ͏
    ͜ͷίʔυͷઌ಄͔ΒॱʹԿ͕
    τʔΫϯʹͳΔͷ͔Λݟ͍ͯ͘

    View Slide

  39. 39
    /** ϋϩʔϫʔϧυΛදࣔ͢Δ */
    function helloWorld() {
    console.log("Hello, World!");
    }
    τʔΫϯྻ
    τʔΫϯྻ
    function
    helloWorld
    (
    )
    {
    console
    .
    log
    τʔΫϯ

    View Slide

  40. 40
    /** ϋϩʔϫʔϧυΛදࣔ͢Δ */
    function helloWorld() {
    console.log("Hello, World!");
    }
    τʔΫϯྻ
    τʔΫϯྻ
    function
    helloWorld
    (
    )
    {
    console
    .
    log
    τʔΫϯ

    View Slide

  41. 41
    /** ϋϩʔϫʔϧυΛදࣔ͢Δ */
    function helloWorld() {
    console.log("Hello, World!");
    }
    τʔΫϯྻ
    τʔΫϯྻ
    function
    helloWorld
    (
    )
    {
    console
    .
    log
    τʔΫϯ

    View Slide

  42. 42
    /** ϋϩʔϫʔϧυΛදࣔ͢Δ */
    function helloWorld() {
    console.log("Hello, World!");
    }
    τʔΫϯྻ
    τʔΫϯྻ
    function
    helloWorld
    (
    )
    {
    console
    .
    log
    τʔΫϯ

    View Slide

  43. 43
    /** ϋϩʔϫʔϧυΛදࣔ͢Δ */
    function helloWorld() {
    console.log("Hello, World!");
    }
    τʔΫϯྻ
    τʔΫϯྻ
    function
    helloWorld
    (
    )
    {
    console
    .
    log
    τʔΫϯ

    View Slide

  44. 44
    τʔΫϯྻ
    τʔΫϯྻ
    τʔΫϯͱ͸ɺιʔείʔυͷ
    จࣈྻʹग़ݱ͢ΔҙຯΛ࣋ͬͨ
    ࠷খ୯Ґͷ͜ͱ
    function
    helloWorld
    (
    )
    {
    console
    .
    log

    View Slide

  45. 45
    τʔΫϯྻ
    τʔΫϯྻ
    τʔΫϯྻͱ͸ɺιʔείʔυͷ
    จࣈྻʹग़ݱ͢ΔॱʹτʔΫϯΛ
    ฒ΂ͨ΋ͷ
    function
    helloWorld
    (
    )
    {
    console
    .
    log

    View Slide

  46. 46
    -JOU
    ݕ͍ࠪͨ͠
    ιʔείʔυ
    ݕࠪϧʔϧ
    ͝ͱͷઃఆ
    ݕग़ͨ͠
    ໰୊ͷҰཡ
    ίʔσΟϯάελΠϧΛݕࠪ͢Δ-JOUͷྫ
    ࣈ۟
    ղੳ
    τʔΫϯྻ
    ʢޙड़ʣ
    ݕࠪ

    View Slide

  47. 47
    -JOU
    ݕ͍ࠪͨ͠
    ιʔείʔυ
    ݕࠪϧʔϧ
    ͝ͱͷઃఆ
    ݕग़ͨ͠
    ໰୊ͷҰཡ
    ίʔσΟϯάελΠϧΛݕࠪ͢Δ-JOUͷྫ
    ࣈ۟
    ղੳ
    τʔΫϯྻ
    ʢޙड़ʣ
    ݕࠪ

    View Slide

  48. 48
    τʔΫϯྻ
    τʔΫϯྻ
    with
    (
    obj
    )
    {
    console
    .
    log
    XJUIจͷར༻Λݕग़͢Δ-JOUͷ
    ॲཧͷྲྀΕΛΈͯΈΑ͏

    View Slide

  49. 49
    τʔΫϯྻ
    τʔΫϯྻ
    with
    (
    obj
    )
    {
    console
    .
    log
    // ېࢭ͞Ε͍ͯΔ with จΛ࢖͍ͬͯΔ
    with (obj) {
    console.log(obj);
    }

    View Slide

  50. 50
    τʔΫϯྻ
    τʔΫϯྻ
    with
    (
    obj
    )
    {
    console
    .
    log
    // ېࢭ͞Ε͍ͯΔ with จΛ࢖͍ͬͯΔ
    with (obj) {
    console.log(obj);
    }

    View Slide

  51. 51
    τʔΫϯྻ
    τʔΫϯྻ
    with
    (
    obj
    )
    {
    console
    .
    log
    // ېࢭ͞Ε͍ͯΔ with จΛ࢖͍ͬͯΔ
    with (obj) {
    console.log(obj);
    }
    τʔΫϯྻͷઌ಄͔Βॱʹɺ
    τʔΫϯ͕XJUIΩʔϫʔυ͔
    Ͳ͏͔ௐ΂Δ͜ͱͰɺXJUIจͷ
    ࢖༻Λݕग़Ͱ͖Δ

    View Slide

  52. 52
    τʔΫϯྻ
    τʔΫϯྻ
    with
    (
    obj
    )
    {
    console
    .
    log
    // ېࢭ͞Ε͍ͯΔ with จΛ࢖͍ͬͯΔ
    with (obj) {
    console.log(obj);
    }
    XJUIΩʔϫʔυͷൃݟʹΑΓ
    XJUIจͷ࢖༻Λݕग़Ͱ͖ͨ

    View Slide

  53. 53
    ݕ͍ࠪͨ͠
    ιʔείʔυ
    ݕࠪϧʔϧ
    ͝ͱͷઃఆ
    ݕग़ͨ͠
    ໰୊ͷҰཡ
    ΑΓߴ౓ͳݕࠪΛ͢Δ-JOUͷྫ
    ߏจ
    ղੳ
    ݕࠪ
    ந৅ߏจ໦
    ʢޙड़ʣ
    -JOU

    View Slide

  54. 54
    ݕ͍ࠪͨ͠
    ιʔείʔυ
    ݕࠪϧʔϧ
    ͝ͱͷઃఆ
    ݕग़ͨ͠
    ໰୊ͷҰཡ
    ΑΓߴ౓ͳݕࠪΛ͢Δ-JOUͷྫ
    ߏจ
    ղੳ
    ݕࠪ
    ந৅ߏจ໦
    ʢޙड़ʣ
    -JOU

    View Slide

  55. 55
    ந৅ߏจ໦ͱ͸ɺݴޠ͝ͱͷنଇʹ
    ͕ͨͬͯ͠ιʔείʔυΛ
    ໦ߏ଄Ͱ͋ΒΘͨ͠΋ͷͷ͜ͱ
    ந৅ߏจ໦
    Program
    FuncDecl
    BlockStmt
    ExprStmt
    Identifier
    CallExpr
    Identifier Identifier
    MemExpr Literal

    View Slide

  56. 56
    /** ϋϩʔϫʔϧυΛදࣔ͢Δ */
    function helloWorld() {
    console.log("Hello, World!");
    }
    ؆୯ͳ+BWB4DSJQUͷιʔείʔυ
    ͷந৅ߏจ໦ΛݟͯΈΑ͏
    ந৅ߏจ໦
    Program
    FuncDecl
    BlockStmt
    ExprStmt
    Identifier
    CallExpr
    Identifier Identifier
    MemExpr Literal
    ந৅ߏจ໦Λཧղ͢Δʹ͸ɺ༿͔Β
    ରԠ͢Δ෦෼ΛΈ͍ͯ͘ͱΑ͍

    View Slide

  57. 57
    /** ϋϩʔϫʔϧυΛදࣔ͢Δ */
    function helloWorld() {
    console.log("Hello, World!");
    }
    ந৅ߏจ໦
    Program
    FuncDecl
    BlockStmt
    ExprStmt
    Identifier
    CallExpr
    Identifier
    MemExpr Literal
    Identifier

    View Slide

  58. 58
    /** ϋϩʔϫʔϧυΛදࣔ͢Δ */
    function helloWorld() {
    console.log("Hello, World!");
    }
    ந৅ߏจ໦
    Program
    FuncDecl
    BlockStmt
    ExprStmt
    Identifier
    CallExpr
    MemExpr
    Identifier
    Literal
    Identifier

    View Slide

  59. 59
    /** ϋϩʔϫʔϧυΛදࣔ͢Δ */
    function helloWorld() {
    console.log("Hello, World!");
    }
    ந৅ߏจ໦
    Program
    FuncDecl
    BlockStmt
    ExprStmt
    Identifier
    CallExpr
    Literal
    MemExpr
    Identifier Identifier

    View Slide

  60. 60
    /** ϋϩʔϫʔϧυΛදࣔ͢Δ */
    function helloWorld() {
    console.log("Hello, World!");
    }
    ந৅ߏจ໦
    Program
    FuncDecl
    BlockStmt
    ExprStmt
    Identifier
    CallExpr
    Identifier
    MemExpr
    Identifier
    Literal

    View Slide

  61. 61
    /** ϋϩʔϫʔϧυΛදࣔ͢Δ */
    function helloWorld() {
    console.log("Hello, World!");
    }
    ந৅ߏจ໦
    Program
    FuncDecl
    BlockStmt
    ExprStmt
    Identifier
    CallExpr
    Literal
    MemExpr
    Identifier Identifier

    View Slide

  62. 62
    /** ϋϩʔϫʔϧυΛදࣔ͢Δ */
    function helloWorld() {
    console.log("Hello, World!");
    }
    ந৅ߏจ໦
    Program
    FuncDecl
    BlockStmt
    ExprStmt
    Identifier
    CallExpr
    Literal
    MemExpr
    Identifier Identifier

    View Slide

  63. 63
    /** ϋϩʔϫʔϧυΛදࣔ͢Δ */
    function helloWorld() {
    console.log("Hello, World!");
    }
    ந৅ߏจ໦
    Program
    FuncDecl
    BlockStmt
    Identifier
    CallExpr
    ExprStmt
    Literal
    MemExpr
    Identifier Identifier

    View Slide

  64. 64
    /** ϋϩʔϫʔϧυΛදࣔ͢Δ */
    function helloWorld() {
    console.log("Hello, World!");
    }
    ந৅ߏจ໦
    Program
    FuncDecl
    BlockStmt
    Identifier
    CallExpr
    ExprStmt
    Literal
    MemExpr
    Identifier Identifier

    View Slide

  65. 65
    ݕ͍ࠪͨ͠
    ιʔείʔυ
    ݕࠪϧʔϧ
    ͝ͱͷઃఆ
    ݕग़ͨ͠
    ໰୊ͷҰཡ
    ΑΓߴ౓ͳݕࠪΛ͢Δ-JOUͷྫ
    ߏจ
    ղੳ
    ݕࠪ
    ந৅ߏจ໦
    ʢޙड़ʣ
    -JOU

    View Slide

  66. 66
    ݕ͍ࠪͨ͠
    ιʔείʔυ
    ݕࠪϧʔϧ
    ͝ͱͷઃఆ
    ݕग़ͨ͠
    ໰୊ͷҰཡ
    ΑΓߴ౓ͳݕࠪΛ͢Δ-JOUͷྫ
    ߏจ
    ղੳ
    ݕࠪ
    ந৅ߏจ໦
    ʢޙड़ʣ
    -JOU

    View Slide

  67. 67
    DPOTPMFMPHݺͼग़͠Λݕग़͢Δ
    -JOUͷॲཧͷྲྀΕΛΈͯΈΑ͏
    ந৅ߏจ໦
    Program
    FuncDecl
    BlockStmt
    ExprStmt
    Identifier
    CallExpr
    Identifier Identifier
    MemExpr Literal

    View Slide

  68. 68
    ந৅ߏจ໦Λਂ͞༏ઌͰ୳ࡧ͠ɺ
    ஫໨͍ͨ͠෦෼໦ͷࠜΛݟ͚ͭΔ
    ࠓճ͸ؔ਺ݺͼग़͠ʹ஫໨͍ͨ͠
    ͷͰɺ$BMM&YQSཁૉΛ୳͢
    ந৅ߏจ໦
    Program
    FuncDecl
    BlockStmt
    ExprStmt
    Identifier
    CallExpr
    Identifier Identifier
    MemExpr Literal

    View Slide

  69. 69
    ந৅ߏจ໦
    FuncDecl
    BlockStmt
    ExprStmt
    Identifier
    CallExpr
    Identifier Identifier
    MemExpr Literal
    Program
    $BMM&YQSͰͳ͍ͷͰແࢹ

    View Slide

  70. 70
    ந৅ߏจ໦
    BlockStmt
    ExprStmt
    Identifier
    CallExpr
    Identifier Identifier
    MemExpr Literal
    Program
    FuncDecl
    $BMM&YQSͰͳ͍ͷͰແࢹ

    View Slide

  71. 71
    ந৅ߏจ໦
    BlockStmt
    ExprStmt
    CallExpr
    Identifier Identifier
    MemExpr Literal
    Program
    FuncDecl
    Identifier
    $BMM&YQSͰͳ͍ͷͰແࢹ

    View Slide

  72. 72
    ந৅ߏจ໦
    ExprStmt
    CallExpr
    Identifier Identifier
    MemExpr Literal
    Program
    FuncDecl
    Identifier BlockStmt
    $BMM&YQSͰͳ͍ͷͰແࢹ

    View Slide

  73. 73
    ந৅ߏจ໦
    CallExpr
    Identifier Identifier
    MemExpr Literal
    Program
    FuncDecl
    Identifier BlockStmt
    ExprStmt
    $BMM&YQSͰͳ͍ͷͰແࢹ

    View Slide

  74. 74
    ந৅ߏจ໦
    Identifier Identifier
    MemExpr Literal
    Program
    FuncDecl
    Identifier BlockStmt
    ExprStmt
    CallExpr
    $BMM&YQSΛൃݟͨ͠

    View Slide

  75. 75
    ந৅ߏจ໦
    Identifier Identifier
    MemExpr Literal
    Program
    FuncDecl
    Identifier BlockStmt
    ExprStmt
    CallExpr
    $BMM&YQSΛൃݟͨ͠Βɺ͜ͷ
    ؔ਺ݺͼग़͕͠DPOTPMFMPHͷ
    ݺͼग़͠Ͱ͋Δ͜ͱΛ֬ೝ͢Δ
    ۩ମతʹ͸ɺݺͼग़͠ର৅͕
    DPOTPMF͔ΒMPHϓϩύςΟΛ
    ࢀর͢Δ.FN&YQSͰ͋Δ͜ͱΛ
    ֬ೝ͢Ε͹ྑ͍

    View Slide

  76. 76
    ந৅ߏจ໦
    Literal
    Program
    FuncDecl
    Identifier BlockStmt
    ExprStmt
    CallExpr
    Identifier Identifier
    MemExpr
    /** ϋϩʔϫʔϧυΛදࣔ͢Δ */
    function helloWorld() {
    console.log("Hello, World!");
    }
    ݺͼग़͠ର৅͕DPOTPMFMPHͰ͋Δ͜ͱΛ֬ೝ

    View Slide

  77. 77
    ந৅ߏจ໦
    Literal
    Program
    FuncDecl
    Identifier BlockStmt
    ExprStmt
    CallExpr
    Identifier Identifier
    MemExpr
    /** ϋϩʔϫʔϧυΛදࣔ͢Δ */
    function helloWorld() {
    console.log("Hello, World!");
    }
    DPOTPMFMPHͷؔ਺ݺͼग़͠Λݕग़Ͱ͖ͨ

    View Slide

  78. 78
    -JOUͷߏ଄ͷ͓͞Β͍
    w -JOUͷߏ଄͸ͲΕ΋ࣅ௨͍ͬͯΔͷͰɺͭΛ
    ಡΊΔΑ͏ʹͳΔͱଞͷ΋ಡΊΔΑ͏ʹͳΔ
    w ॲཧͷྲྀΕ΋தؒσʔλ͕ҟͳΔ͚ͩͰ΄ͱΜͲಉ͡
    w ѻ͏ओͳதؒσʔλ͸ɿ
    w τʔΫϯྻ
    w ந৅ߏจ໦
    w ੍ޚϑϩʔάϥϑʢࠓճ͸ׂѪʣ

    View Slide

  79. ·ͱΊ
    79

    View Slide

  80. 80
    -JOUͷڭཆ
    -JOUͱ͸
    -JOUͷݕग़͢Δ໰୊
    -JOUͷߏ଄
    -JOUͷޮՌతͳ࢖͍ํ

    View Slide