Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Develop to Survive - YAPC::Hakodate 2024 Keynote
Search
moznion
October 07, 2024
Technology
10
16k
Develop to Survive - YAPC::Hakodate 2024 Keynote
YAPC::Hakodate 2024のキーノートスライドです。
moznion
October 07, 2024
Tweet
Share
More Decks by moznion
See All by moznion
Simple組み合わせ村から大都会Railsにやってきた俺は / Coming to Rails from the Simple
moznion
3
4.8k
AIレシート読み取り機能をRuby on Rails on AWSで実現するLLMにまつわるアレコレ / AI-based receipt reading function powered by LLM on Ruby on Rails on AWS
moznion
3
200
これはPerl? それともRuby? クイズ〜〜〜〜〜!!!- Perl or Ruby Quiz
moznion
3
2.6k
Perl 5 OOP機構30年史 - Perl 5's OOP Mechanism over the past 30 years
moznion
1
1k
RuboCopのカスタムCopを書いてContributionしてみる - Contributing a Custom Cop to RuboCop: A Hands-on Experience
moznion
0
79
AWS上に構築する メンテ容易なElasticsearch System / Maintainable Elasticsearch system on AWS
moznion
2
3.9k
PROXY Protocol aware Proxy Server on Node.js
moznion
2
2.5k
Perl meets AWS Lambda
moznion
0
4.7k
ソフトウェア開発における 「設計」と「パフォーマンス」の相互作用 / Interaction Between Design and Performance on Software Development
moznion
12
6.9k
Other Decks in Technology
See All in Technology
遷移の高速化 ヤフートップの試行錯誤
narirou
6
1k
OPENLOGI Company Profile for engineer
hr01
1
20k
PHPカンファレンス名古屋-テックリードの経験から学んだ設計の教訓
hayatokudou
2
540
データベースの負荷を紐解く/untangle-the-database-load
emiki
1
440
いまからでも遅くない!コンテナでWebアプリを動かしてみよう!コンテナハンズオン編
nomu
0
130
LINE NEWSにおけるバックエンド開発
lycorptech_jp
PRO
0
180
What's new in Go 1.24?
ciarana
1
100
AIエージェント元年@日本生成AIユーザ会
shukob
0
140
Exadata Database Service on Cloud@Customer セキュリティ、ネットワーク、および管理について
oracle4engineer
PRO
2
1.5k
Pwned Labsのすゝめ
ken5scal
1
310
AIエージェント入門
minorun365
PRO
30
16k
1行のコードから社会課題の解決へ: EMの探究、事業・技術・組織を紡ぐ実践知 / EM Conf 2025
9ma3r
8
3.3k
Featured
See All Featured
Code Review Best Practice
trishagee
67
18k
Building Adaptive Systems
keathley
40
2.4k
Documentation Writing (for coders)
carmenintech
67
4.6k
Scaling GitHub
holman
459
140k
Into the Great Unknown - MozCon
thekraken
35
1.6k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
570
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
10
1.3k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
40
2k
4 Signs Your Business is Dying
shpigford
182
22k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Transcript
Develop to Survive :"1$)BLPEBUF,FZOPUF !NP[OJPO
Taiki Kawakami @moznion PAUSE ID: MOZNION Software Engineer at SmartBank,
inc. വؗࢢग़ ͖ͳPerlͷػೳ: wantarray built-in: do, kill, die
EBOUIFRVFTUJPOXFMDPNF
0QFOUIF'VUVSFʂʂʂʂʂʂ
ίʔυॻ͍ͯ·͔͢ʂʂʂʂ
ιϑτΣΞϓϩμΫτΛ <Δ> ͱ͍͏͜ͱ ίʔυΛॻ͚ͩ͘Ͱͳ͍ ίʔυΛॻ͚ͩ͘Ͱཱ͠ͳ͍ ͔͠͠ίʔυΛॻ͔ͳ͍ͱ࣮ݱෆՄೳ ͭ·ΓίʔυΛॻ͔Ͷବ
ιϑτΣΞϓϩμΫτΛ <Δ> ͱ͍͏͜ͱ ίʔυΛॻ͚ͩ͘Ͱͳ͍ ίʔυΛॻ͚ͩ͘Ͱཱ͠ͳ͍ ͔͠͠ίʔυΛॻ͔ͳ͍ͱ࣮ݱෆՄೳ ͭ·ΓίʔυΛॻ͔Ͷବ ͱ͍͏ͷݐલͰɺݸਓతʹ୯ʹίʔυΛॻ͍ͯ
ϞϊΛ࡞Δͷ͕͖ Ϗδωεͷ͕ແ͍Θ͚Ͱͳ͍
ίʔυΛॻ͘ͱ͍͏ߦҝͷݪମݧ
ίʔυΛॻ͘ͱ͍͏ߦҝͷݪମݧ
ίʔυΛॻ͘ͱ͍͏ߦҝͷݪମݧ ͭ·Γͩͯ͜ະདྷେֶͷ։ֶ ͋ͨΓ ࣌খֶੜ ࠓͰݴ͏ϩʔίʔυͰήʔϜ࡞ΓϫʔΫγϣοϓΈ͍ͨͳͷ͕͋ͬͨ
ͦ͜ͰͷήʔϜ ͷΑ͏ͳͷ ࡞Γ͕ίʔσΟϯάͷݪମݧ
৭ʑ͋Γവؗߴઐೖֶ ͦ͏ͨ͠ݪମݧ͕͋ͬͨͨΊവؗߴઐใֶՊʹೖֶ ͱ͍͏ͷΛ៉ྷʹܨ͛ΔͨΊͷϑΟΫγϣϯ ຊػցֶՊʹೖͬͯΤϯδϯΛΔͭΓͩͬͨ ༮ೃછ͕ʮ͜Ε͔Βύιίϯʯͱݴ͍ͬͯͨͷͰӨڹ͞Εͯ ใֶՊग़ئมߋ
ͦͦະདྷେͰͷϫʔΫγϣοϓͷ͜ͱ͔ͬ͢ΓΕ͍ͯͨ
വؗߴઐͷ͓͔͛Ͱϝγ͕৯͍͑ͯΔ 𝓑𝓲𝓰 𝓣 𝓱𝓪𝓷𝓴𝓼 ిࢠճ࿏ɺϋʔυΣΞɺιϑτΣΞɺωοτϫʔΫΛ ମܥతʹֶͨ
ಛʹຊ֨తͳϓϩάϥϛϯάͱͷग़ձ͍େ͖͔ͬͨ ݁ہ͜ΕͰࠓ·ͰͳΜͱ͔৯͍͑ͯΔ ͋ͱιϑτΣΞֶͱϢʔβʔΠϯλʔϑΣʔε
ߴઐࡏֶ࣌ͷ༷ࢠ ΓιϑτΣΞ͖ͩͬͨͷͰ৭ʑͱ࡞͍ͬͯͨ 8JOͷ5XJUUFS$MJFOUΛ+BWBXJUI4XJOHͰ࡞ͬͨΓ͍ͯͨ͠ ͋ͱαϯϓϥʔΞϓϦΛ࡞ͬͨΓͱ͔ ͜ͷ࣌ͱ͘ʹΦʔϓϯιʔεͱ͍͏ͷΛΒͣ
ͦͦϥΠϒϥϦͱ͍͏ͷΛཧղ͍ͯ͠ͳ͔ͬͨ
৭ʑ͋Γटେֶ౦ژฤೖ ֶඅͱ༡ͿΧωΛՔ͙ඞཁ͕ग़͖ͯͨ ༡ͿΧωཉ͠͞ʹۀ༻ػցΛ࡞ΔձࣾͰόΠτΛ࢝ΊΔ
ಥવͷ1FSMͷ֮Ί
ಥવͷPerlͷ։؟ ࣌͋ͨΓ 8FCܥͷϓϩάϥϛϯάΛ΄΅Βͳ͍ঢ়گ ͳ͔ͥʮ͜Β͔Βͷ࣌1FSMͩʂʂʯͱͳΔ ஶऀ͜ͷ࣌ɺطʹ3VCZPO3BJMTW͕ੈͷதʹग़͍ͯΔ
4/.1.*#ͷղऍثͳͲΛ1FSMͰΰϦΰϦॻ͘ʑ
Hachioji.pmͱͷᬍ टେֶ ࡏീԦࢠ ɺͦͯ͠1FSMͱ͘Εʜʜ )BDIJPKJQNͱग़ձ͏ͷඞવ *5ษڧձΧϨϯμʔͷ͓͔͛Ͱ͋Δ
࣌Βͳ͔ͬͨ8FCۀքͷݟΛζϧζϧٵ͑ͨ ࣌)BDIJPKJQNͰ1FSMͰνϟοτπʔϧΛࣗ࡞͍ͯͨ͠ IUUQTHJUIVCDPNV[VMMBZBODIB ͦΕͰίϛϡχέʔγϣϯ͍ͯͨ͠ߗͳूஂ
Hachioji.pmͱͷᬍ टେֶ ࡏീԦࢠ ɺͦͯ͠1FSMͱ͘Εʜʜ )BDIJPKJQNͱग़ձ͏ͷඞવ *5ษڧձΧϨϯμʔͷ͓͔͛Ͱ͋Δ
࣌Βͳ͔ͬͨ8FCۀքͷݟΛζϧζϧٵ͑ͨ ࣌)BDIJPKJQNͰ1FSMͰνϟοτπʔϧΛࣗ࡞͍ͯͨ͠ IUUQTHJUIVCDPNV[VMMBZBODIB ͦΕͰίϛϡχέʔγϣϯ͍ͯͨ͠ߗͳूஂ
ϥΠϒϥϦॻ͖࢝Ί ͜ͷ͋ͨΓ͔ΒϥΠϒϥϦΛॻ͍ͯެ։͢ΔΑ͏ʹͳͬͨ ͪΌΜͱ(JU)VCΛ͍͡ΊΔΑ͏ʹ $1"/ʹͪΒ΄ΒΞοϓϩʔυͯͨ͠Γ͍ͯͨ͠ ͜ͷ࣌Ͱʮଞਓ͕ศརʹ͑Δʯͱ͍͏͜ͱಛʹߟ͓͑ͯΒͣ
ࣗݾදݱɾࣗݾຬͷΑ͏ͳ׆ಈʹཹ·͍ͬͯͨ
ͯͳΠϯλʔϯ2013
ͯͳΠϯλʔϯ2013 िؒʹΔαϚʔΠϯλʔϯ લिؒ࠲ֶ 8FCͷجຊɺ1FSMɺJ04"QQɺ%#ɺࣗવݴޠॲཧͳͲΛ ͔ͬ͠Γͱڭ͑ͯ͘ΕΔΧϦΩϡϥϜ ޙिؒϓϩμΫγϣϯίʔυΛ৮Δ0+5ܗࣜ
ͯͳϒϩά"UPN1VC"1*Λ࡞ͬͨ IUUQTIBUFOBDPKQJOUFSOQSPKFDUTJOEFYIUNM
ͯͳΠϯλʔϯ2013 ༻Ͱಈ͘8FCΞϓϦΛ৮ΕΔوॏͳମݧ ͦͯ͠3'$ΛಡΈͳ͕Β࣮͢Δॳͷମݧ ञΛҿΈ͍͚͗ͯ͢ͳ͍ͱ͍͏͜ͱΔ ͯͳΠϯλʔϯ࠷ߴʂʂʂʂʂʂ
ΈΜͳߦ͜͏
-*/&ฤ
LINEͰΞϧόΠτΛ࢝ΊΔ 1FSM͕ॻ͚Δਓؒͱ͍͏͔͠͞Β͔-*/&ʹόΠτͰޏΘΕΔ ϓϩμΫγϣϯͰಈ͍͍ͯΔڊେ8FC"QQΛ৮Δମݧ ޙʹઌʹ͋ͷنͷ1FSMͷ"QQΛ৮ͬͨ͜ͱͳ͍
৭ʑ͋ΓLINEʹब৬ ͱʹ͔͘৭ʑͳαʔϏεͷ্ཱͪ͛ʹؔΘͬͨ ͪΖΜͦͷޙͷӡ༻ ͪΌΜͱۀͰ ͭ·Γଞਓͷ ʹཱͭϥΠϒϥϦ ϛυϧΣΞͷॏཁੑΛڧ͘ೝࣝ࢝͠ΊΔ
͜ͷ͋ͨΓ͔Β࡞෩͕एׯมΘͬͯ͘Δ ศརͰ͋ΕখཻͰϥΠϒϥϦπʔϧʹ͢Δͱ͍͏ελΠϧ
Perl::Lint HPDDZ͞Μ͕࣌࡞ΒΕ͍ͯͨ$PNQJMFS-FYFSΛόοΫΤϯυʹ ͨ͠ ࣌Ͱ ߴͳ1FSMͷ-JOUFSΛ։ൃ͍ͯͨ͠ IUUQTHJUIVCDPNNP[OJPO1FSM-JOU 5IF1FSM'PVOEBUJPOͷ4QPOTPSFE1SPKFDUʹͳͬͨ
ݴ͍ͰεϙϯαʔϑΟʔΛ֫ಘͰ͖Δͷ͕ͩʜʜ ࠓߟ͑ΔͱͰਃͨ͠ͷ͓͔͔ͬͨ͠ͷͰʁʁʁʁʁ
Perl::LintͰYAPC::EUߦ͘ 1FSM-JOUΛͻͬ͛ͯ͞:"1$&6(SBOBEBߦͬͨ ࣌ͬ͞ͺΓӳޠ͕Ͱ͖ͣ MFTUSSBU͞Μʹॿ͚ͯΒͬͨ ͔͠͠ӳޠͰϓϨθϯ͠ͳ͖ΌͩΊͩͬͨͷͰ͜͜ؾ߹Ͱ
ࢥ͍ͷ΄͔ϓϨθϯͷέ͕Α͔ͬͨͷ͔ɺ"GUFS1BSUZͰ ৭ʑͳਓʹΛ͔͚ͯΒͬͨ ͜ͷΜͰएׯւ֎Ͱͷ׆ಈʹର͢Δڵຯ͕ग़ͯ͘Δ
Perl::LintͰYAPC::EUߦ͘ 1FSM-JOUΛͻͬ͛ͯ͞:"1$&6(SBOBEBߦͬͨ ࣌ͬ͞ͺΓӳޠ͕Ͱ͖ͣ MFTUSSBU͞Μʹॿ͚ͯΒͬͨ ͔͠͠ӳޠͰϓϨθϯ͠ͳ͖ΌͩΊͩͬͨͷͰ͜͜ؾ߹Ͱ
ࢥ͍ͷ΄͔ϓϨθϯͷέ͕Α͔ͬͨͷ͔ɺ"GUFS1BSUZͰ ৭ʑͳਓʹΛ͔͚ͯΒͬͨ ͜ͷΜͰएׯւ֎Ͱͷ׆ಈʹର͢Δڵຯ͕ग़ͯ͘Δ
LINE ͱʹ͔͘τϥϑΟοΫ͕ΰπ͔ͬͨ UPLVIJSPNʮ8FCαʔϏεͷ໘ന͞τϥϑΟοΫͷྔʹൺྫ͢Δʯ ΞυςΫʹ৮ΕΒΕͨͷوॏͳମݧ ۀن͕͍͢͝
ࡏ੶தʹ্͢Δͱ͍͏Πϕϯτ͋ͬͨ
ιϥίϜฤ
ελʔτΞοϓͰΓ͍ͨཉ ͕ࣗΕΔ͜ͱશ෦Γ͍ͨͱ͍͏ؾ࣋ͪ ߴʹۀ͞Εͨ৫ͦΕͦΕͰྑ͍Ұํ ࠷దԽͷ݁Ռ ྗࢼ͠ʹࣅͨײ֮ʁ
ͪΖΜҰൃͯͨ͋ͬͨ͞
ιϥίϜʹస৬ ೖࣾʹ,%%*ʹങऩ͞ΕΔ Ұൃ͕௵͞Εͨܗʹ ϛογϣϯΫϦςΟΧϧͳγεςϜ ܞଳిίΞωοτϫʔΫ ͕ "84্Ͱߏங͞Ε͍ͯΔͱ͍͏ઌӶతͳڥ
8FCٕज़ͱηϧϥʔٕज़ͷ༥߹ͱ͍͏ܗ
ελʔτΞοϓϚΠϯυ (ͱʹ͔͘Δ) 8FCٕज़ͷԠ༻ ϨϕϧωοτϫʔΫ ࢹվળɺӡ༻վળ ৽ػೳɾ৽αʔϏε࡞Γ·͘Γ
ίΞωοτϫʔΫ։ൃ (ϓϩτίϧελοΫ։ൃ ඪ४༷ΛಡΈͳ͕ΒͷίʔσΟϯάܦݧ͕͜͜Ͱ׆͖͖ͯͨ +BWB$BSE ͳͲͳͲʜʜ
ถ ৭ʑͳࣄ͕͋Γ4PSBDPN(MPCBM *ODग़ ΞϝϦΧ߹ऺࠃϫγϯτϯभγΞτϧҠॅ ίϩφਅͬΓͷλΠϛϯάͰͷҠॅͰΧΦεʂʂʂ ։ൃۀΛͭͭ͠ݱͷΧελϚʔαϙʔτతͳ͜ͱΛͨ͠Γ
ςΫχΧϧηʔϧεͱڠۀͨ͠Γ
ؼࠃɺͦͯ͠స৬ ͘Β͍ΞϝϦΧͰੜ׆ͯ͠ຊؼࠃ ্ͦͯ͢͠Δͱ͍͏Πϕϯτ͕͋ͬͨ ্λΠϛϯάͰࣾΛܦͯݱ৬4NBSU#BOLస৬
ࠓʹࢸΓɺ༷ʑࢥ͏͜ͱ
ιϑτΣΞϓϩμΫτ࡞ΓνʔϜϫʔΫ ͦΕͦ͏ ྫ֎͋Δ νʔϜϫʔΫͳͯ͘͠ޭͳ͍ ྫ֎͋Δ
͕ͩνʔϜΛνʔϜͨΒ͠Ί͍ͯΔͷݸਓ ͜͜࠷ۙνʔϜʹର͢ΔϑϨʔϜϫʔΫʹয͕ͨΓ͕ͪʹ ͳ͓ͬͯΓɺݸਓʹϑΥʔΧε͞Εͳ͍͜ͱʹएׯҧײ ͦΕ͘Β͍ख़ͨ͠ۀքʹͳ͖ͬͯͨͱ͍͏ݟํͰ͖Δ
ݸਓٕʹΑΔߩݙ ݸਓͷڧ͍ٕྔɺϞνϕʔγϣϯͦͯ͠ύογϣϯ͕ϓϩδΣΫτΛ ਪਐ͢ΔέʔεΛΑ͘ݟ·ͤΜ͔ʁ ݸਓٕΛຏ͘͜ͱʹΑΓϓϩμΫτ͕ྑ͘ͳΔͱ͍͏ͷਅͩͱࢥ͏
ݸਓٕʹΑΔߩݙ ຏ͔Εͨݸਓٕ͕ू·Δ͜ͱʹΑΔνʔϜϫʔΫͲ͏͔ʁ ࢍ൱྆͋Δ ͦ͏Ͱͳ͍ঢ়گͰͳΜͱ͔͢Δͷ͕ιϑτΣΞֶͰʁʁ ݸਓٕΤϯδχΞϦϯάͷΈʹݶΒͳ͍
ڵຯυϦϒϯͰݸਓٕΛຏ͘ ະͷٕज़υϝΠϯͷࢿྉجຊతʹಡΊಡΉ΄Ͳʹ͘ शಘͨ͠ͿΜ७ਮʹྗʹͳΔ ಡ·ͳ͍ͱʹ͔ͳ͍ ಡΈΒͳͯ͘ྑ͍
ΩϟϦΞઙΊͷ͜ΖʹಡΜͩຊ͕ࠓͷ݂ʹͳ͍ͬͯΔ࣮ײ͕͋Δ ࣮ࡍɺ࣌Θ͔Βͳ͍ͱ͜Ζଟ͋ͬͨ͘
ͱʹ͔͘େྔʹ࡞ͬͨ ೖΕͨࣝΛ্ͬͨͰखΛಈ͔ͯ͠େྔʹϞϊΛ࡞ͬͨ ࣄͰ͏ͱ͍͏ΑΓझຯͰΔ͜ͱ͕ଟ͔ͬͨ ࠷ॳશવବବͩͬͨΑ͏ʹࢥ͏ ࣍ୈʹίπ͕௫Ί͖ͯͯԠ༻͕ޮ͘Α͏ʹͳ͖ͬͯͨ
ྔ͕࣭ʹసԽ͢Δ ࡞ͬͨΒ֎ʹग़͢ͱ͍͏ͷॏཁ ϨϏϡʔ͞ΕΔ উखʹఴä
ͱʹ͔͘େྔʹ࡞ͬͨ ͱʹ͔͘࡞Δ͜ͱͰࣄΛղܾ͠Α͏ͱ͍ͯͨ͠ ͋Δ͍ຬͨ͞ΕΑ͏ͱ͍ͯͨ͠ ࠶ൃ໌্ʂʂʂʂ ࠶ൃ໌͔ΒಘΒΕΔݟ͕ଟʑ͋Δ ઌਓͷܙ
ྺ࢙తܦҢ ݱͷٕज़ʹΑΔผղ
ࣗͨͪͷͨΊͷେྔੜ࢈ Ռʹର͢Δ֬ೝΛ͍͍͍ͪͪͬͯΔͱͦ͜Ͱ͢Δ ͦ͜ͰಉظΛऔΔͱՄॲ͕࣌ؒ݁ՌతʹݮΔ ඞཁʹͳΓͦ͏ͳϞϊɾύλʔϯՄೳͳݶΓશ෦࡞ͬͯΈΔ ͦͷஈ֊Ͱ֬ೝΛऔͬͯෆཁͳͷࣺͯΔͱ͍͏ελΠϧ
ࢍ൱྆͋Δ
ࣗͨͪͷͨΊͷେྔੜ࢈ େྔੜ࢈ʹ׳Εͯ͘Δͱ࡞Δεϐʔυ্͕͍ͬͯ͘ ߴʹϞϊΛ࡞ΕΔͱ͍͏ͷͦΕ͚ͩͰϝϦοτ ࢼߦճΛ७ਮʹ૿͢͜ͱ͕Ͱ͖Δ ࣭ͱྔ͕ಉډ͢Δ
͋Δਓ [୭?] ݴ͍·ͨ͠ 4IVUUIF VQBOEXSJUFTPNFDPEF ӵΈਓΒͣ ͱʹ͔͘खΛಈ͔ͯ͠࡞Δͷ͕ඒಙͱ͍͏ελΠϧ
ଟ͘ͷ߹ʮͦ͜ʹ͋Δͷʯ͔͠৴͡ΒΕͳ͍ ϕʔεϥΠϯͱͳΔͷ͕͋Δͱ͔ͦ͜Β͕ٞͰ͖Δ ࡞ΔࣺͯΔ·͔ͣͦ͜Β
ݸਓٕͷ্࠶ݱ͢Δͷ͔ʁ ҃ΔҰఆ·Ͱ࠶ݱͤ͞Δํ๏͋Δͱࢥ͏ ͦΕʮڭҭʯͦͷͷͰʁ ͔݁͠͠ՌΛ͍·͍ͪଌΓʹ͍͘ͱ͍͏ͷ͕͍͠ϙΠϯτ ϋʔυεΩϧΑΓιϑτεΩϧͷൺॏ͕ڧ͍ʁ
30ࡀ·ͰͳΜͰΔϚΠϯυ ࡀ·ͰͳΜͰΖ͏ͱࢥ͍ͬͯͨ ιϑτΣΞΤϯδχΞϦϯάʹݶΒͣ Ұ࣌ظηʔϧεʹ͍͍ͬͭͯͨ͘͜ͱ͋Δ ͦͷҰͱͯ͠ʮւ֎Ͱಇ͘ʯͱ͍͏ͷ͋ͬͨ
ίϯϑΥʔτκʔϯ͔Βग़ଓ͚Δͱ͍͏ੜଘઓུ
ίϯϑΥʔτκʔϯ͔Βग़ଓ͚Δ αοΧʔຊදकాӳਖ਼બख ͕ࣗҰ൪Լखͩͱࢥ͏ڥͷ΄͏͕͖ ΤϦοΫɾΫϥϓτϯ εςʔδʹ্͕ͬͨΒ͕ࣗҰ൪্ख͍ͱࢥ͑ɻ εςʔδΛ߱ΓͨΒ͕ࣗҰ൪Լखͩͱࢥ͑ɻ
ͱ͍͑
;Δ͞ͱ͕͋Δͱྑ͍
;Δ͞ͱ͕͋Δͱྑ͍ Γ1FSM͕ࣗͷ৺ͷ;Δ͞ͱ ͜͏͍ͬͨ;Δ͞ͱ͕͋ΔͱͦΕΛࣗͷՁج४ʹͰ͖Δ ൺֱ Ԡ༻
ͭ·Γ:"1$;Δ͞ͱ ҬͷίϛϡχςΟͱ͔Ͷ വؗ;Δ͞ͱɺΑ͔ͬͨͰ͢Ͷ
ݴ͍͔ͨͬͨ͜ͱ·ͱΊ ݸਓٕͷ࣌ͩ<ཁग़య> ͱʹ͔͘࡞Γ·͘Δ͜ͱͰҰఆղܾ͕Ͱ͖Δ ͦͯ͠ྔ͕࣭ʹసԽ͢ΔλΠϛϯά͕ͯདྷΔ ࡞ͬͨͷΛࣺͯΔͷѱ͍͜ͱͰͳ͍ ͱࢥ͏
৺ͷ;Δ͞ͱ Ձج४ ͕͋ΔͱΒ͕͠๛͔ʹͳΔ ͱʹ͔͘खΛಈ͔͢ਓ͕Ұ൪ΧοίΠΠʂ
͍͖ͬͯ·͠ΐ͏