Slide 1

Slide 1 text

ఀࢭੑ໰୊ͱ਺ !IJHIXJEF Y෺ޠୈY໷ ʮ਺ʯ

Slide 2

Slide 2 text

ϓϩάϥϜͷ ఀࢭੑ໰୊ ͱ͸

Slide 3

Slide 3 text

ʮϓϩάϥϜʹσʔλΛ༩͑ͯಈ ͔ͨ͠ͱ͖ɺ༗ݶ࣌ؒ಺ʹಈ࡞͕ ఀࢭ͢Δ͔Ͳ͏͔ʯΛ൑ఆ͢Δͱ ͍͏໰୊ ݁৓ߒʮϓϩάϥϚͷ਺ֶʯ1

Slide 4

Slide 4 text

͜Ε࣮͸ ʮܭࢉෆೳʯͱ ূ໌͞Ε͍ͯΔ

Slide 5

Slide 5 text

ূ໌

Slide 6

Slide 6 text

ఀࢭ͢Δ͔Ͳ͏͔ ൑ఆ͢Δ ϓϩάϥϜ IBMU ͕ ॻ͚ͨͱԾఆͯ͠ def halt?(program, data) # 真に驚くべき実装を発見したが、 # ここに記すには余白が狭すぎる [true, false].sample end

Slide 7

Slide 7 text

IBMU ͕USVFͳΒಈ͖ଓ͚ͯ GBMTFͳΒఀࢭ͢ΔॲཧΛॻ͘ def self_check(program) result = halt?(program, program) puts "The result of 'halt?' is #{result}" if result while true puts "Never halting!!" end else puts "Just halting" end end

Slide 8

Slide 8 text

def halt?(program, data) # 真に驚くべき実装を発見したが、 # ここに記すには余白が狭すぎる [true, false].sample end def self_check(program) result = halt?(program, program) puts "The result of 'halt?' is #{result}" if result while true puts "Never halting!!" end else puts "Just halting" end end self_check($stdin) ϓϩάϥϜ શମ૾

Slide 9

Slide 9 text

% ruby halt_checker.rb < halt_checker.rb ࣗ෼ࣗ਎Λ ධՁ͢ΔͱͲ͏ͳΔʁ

Slide 10

Slide 10 text

The result of 'halt?' is true Never halting!! Never halting!! Never halting!! Never halting!! Never halting!! Never halting!! Never halting!! Never halting!! Never halting!! Never halting!! --snip-- The result of 'halt?' is false Just halting ໃ६͢Δ

Slide 11

Slide 11 text

Αͬͯ ʮఀࢭ͢Δ͔൑ఆ͢Δ ϓϩάϥϜ͕ॻ͚Δʯ ͱ͍͏Ծఆ͸ޡΓ എཧ๏

Slide 12

Slide 12 text

ࠓճͷςʔϚͱ ؔ܎ͳͦ͞͏ ʘ ?P? ʗ

Slide 13

Slide 13 text

ࠓճͷ ςʔϚ

Slide 14

Slide 14 text

ʮ਺ʯ

Slide 15

Slide 15 text

ಈࢺԽ

Slide 16

Slide 16 text

਺͑Δ

Slide 17

Slide 17 text

< >DPVOU

Slide 18

Slide 18 text

਺͑ΒΕΔ

Slide 19

Slide 19 text

<શͯͷ੔਺>DPVOU

Slide 20

Slide 20 text

਺͑ΒΕΔ

Slide 21

Slide 21 text

ʲ਺͑ʳʲΒΕΔʳ DPVOUBCMF

Slide 22

Slide 22 text

<શͯͷ੔਺>͸ DPVOUBCMF͔

Slide 23

Slide 23 text

DPVOUBCMF USVF

Slide 24

Slide 24 text

Χ΢ϯλϒϧͱ͸ ʮू߹ͷཁૉ͕༗ݶݸͰ͋Δ͔ɺ·ͨ͸ू ߹ͷ͢΂ͯͷཁૉΛҎ্ͷ੔਺ͱҰରҐஔ ʹରԠ෇͚ΒΕΔʯͱ͖ɺͦͷू߹͸Χ΢ ϯλϒϧ DPVOUBCMF Ͱ͋Δͱఆٛ͠·͢ɻ ݁৓ߒʮϓϩάϥϚͷ਺ֶʯ1

Slide 25

Slide 25 text

શͯͷ੔਺͸൪߸Λ͚ͭΒΕΔ ੔਺ ൪߸

Slide 26

Slide 26 text

<ੈͷதʹଘࡏ͢Δ શͯͷϓϩάϥϜ>͸ DPVOUBCMF͔ʁ

Slide 27

Slide 27 text

ϓϩάϥϜͰ࢖͑Δจࣈ͸ DPVOUBCMFͰ͋Δ a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 ! " # % & ' ( ) + , - . / : ; < = > ? [ \ ] ^ _ ` { | } ~

Slide 28

Slide 28 text

/छྨͷจࣈΛ Oࣈ෼࢖ͬͯ࡞ΕΔ ϓϩάϥϜͷ૯਺͸/?Oݸ

Slide 29

Slide 29 text

จࣈͰ࡞ΕΔϓϩάϥϜ/ݸ จࣈͰ࡞ΕΔϓϩάϥϜ/?ݸ จࣈͰ࡞ΕΔϓϩάϥϜ/?ݸ ݁ہશͯͷϓϩάϥϜʹ ൪߸Λ෇͚ΒΕΔ

Slide 30

Slide 30 text

<ੈͷதʹଘࡏ͢Δ શͯͷϓϩάϥϜ>͸ DPVOUBCMFͩͬͨ

Slide 31

Slide 31 text

DPVOUBCMFͰ ͳ͍΋ͷͱ͸ʁ

Slide 32

Slide 32 text

< Ҏ্ҎԼͷ શͯͷ࣮਺>͸ DPVOUBCMF͔

Slide 33

Slide 33 text

GBMTF

Slide 34

Slide 34 text

ূ໌

Slide 35

Slide 35 text

ͷ܁ฦ͠ ͷ܁Γฦ͠ ˽ʸ ͷ܁Γฦ͠ ϥϯμϜ ʙͷશͯͷ࣮਺ྻΛ ༻ҙͨ͠ͱԾఆͯ͠

Slide 36

Slide 36 text

͜͜ʹଘࡏ͠ͳ͍ ࣮਺Λ࡞Δʹ͸ʁ

Slide 37

Slide 37 text

ͷ܁ฦ͠ ͷ܁Γฦ͠ ˽ʸ ͷ܁Γฦ͠ ϥϯμϜ ֤ྻͷ֤ܻΛର֯ઢʹ૸ࠪͯ͠ ͍ͯ͘͠ͱඞͣ৽͍࣮͠਺͕Ͱ͖Δ

Slide 38

Slide 38 text

ͳͥͳΒ શͯͷྻͱ ඞͣͲ͔ܻ͕͜ ҧ͏ͨΊ

Slide 39

Slide 39 text

ΑͬͯԾఆ͸ޡΓ <Ҏ্ҎԼͷ શͯͷ࣮਺>͸ DPVOUBCMFͰ͸ͳ͍

Slide 40

Slide 40 text

Χϯτʔϧͷର֯ઢ࿦๏ ͱ͍͏Β͍͠ (FPSH'FSEJOBOE 
 -VEXJH1IJMJQQ$BOUPS (FSNBOZ

Slide 41

Slide 41 text

͛͢ʔ

Slide 42

Slide 42 text

͔͜͜Β͕ ຊ୊

Slide 43

Slide 43 text

ϓϩάϥϜͷ ఀࢭੑ໰୊ͷূ໌͸ Χϯτʔϧͷର֯ઢ࿦๏Λ ࣮͸ར༻͍ͯͨ͠ͱ͍͏࿩

Slide 44

Slide 44 text

ର֯ઢ࿦๏ͱ͸ͭ·Γ ͜͏͍͏͜ͱ

Slide 45

Slide 45 text

9Λू߹ͱ͠ɺ9Λ9ͷ΂͖ू߹ͱ͢Δɻ ͞ΒʹСΛ9͔Β9΁ͷࣸ૾ͱ͢Δɻ9ͷ ෦෼ू߹:Λ XJLJQFEJBʮΧϯτʔϧͷର֯ઢ࿦๏ʯ {x 2 X : x / 2 (x)} ʹΑΓఆٛ͢ΔͱɺС Y :ͱͳΔY㱨9͸ଘ ࡏ͠ͳ͍ɻ

Slide 46

Slide 46 text

ू߹ࣗવ਺ ΂͖ू߹ʙͷ੔਺ͷྻ ࣸ૾DPVOU͢Δ ର֯ઢ্ʹ૸ࠪͯ͠৽͍͠ྻΛ࡞Δ ࣸ૾Ͱ͖ͳ͍ DPVOUBCMFͰͳ͍

Slide 47

Slide 47 text

ఀࢭੑ໰୊ʹ ద༻͢Δͱ

Slide 48

Slide 48 text

ू߹શͯͷϓϩάϥϜ ˺ࣗવ਺ ΂͖ू߹ϓϩάϥϜΛೖྗ஋ͱͨ͠ϓϩ άϥϜಉ࢜ͷ૊Έ߹Θͤ ࣸ૾ఀࢭ͢Δ͔൑ఆ͢Δ ఀࢭ͢Δͱ൑ఆͨ͠Β ఀࢭ͠ͳ͍ϓϩάϥϜΛ࡞Δ ఀࢭ൑ఆͰ͖ͳ͍ DPVOUBCMFͰͳ͍

Slide 49

Slide 49 text

ͪͳΈʹ ͜͏΍ͬͯఀࢭੑ໰୊Λ ূ໌ͨ͠ͷ͸͜ͷਓ "MBO.BUIJTPO5VSJOH 6,

Slide 50

Slide 50 text

͛͢ʔ

Slide 51

Slide 51 text

͓͠·͍