web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ
DESCRIPTION
「普段Web系だけど、低レイヤーのこともっと勉強したいんだよなあ…でも、どこから踏み出したら良いのかわからない…」という人もいるはず。 ということで、今回は主にWeb系の方々 またはコンパイラ初心者の方に向けた コンパイラのしくみと処理の流れをスライドにしました。TRANSCRIPT
![Page 1: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/1.jpg)
![Page 2: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/2.jpg)
![Page 3: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/3.jpg)
![Page 4: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/4.jpg)
![Page 6: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/6.jpg)
![Page 7: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/7.jpg)
膝の上に猫 ????????
![Page 8: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/8.jpg)
膝の上に猫 Kitty on your lap
![Page 9: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/9.jpg)
hoge = 0; ????????
![Page 10: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/10.jpg)
hoge = 0; 翻訳された言語
![Page 11: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/11.jpg)
![Page 12: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/12.jpg)
![Page 13: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/13.jpg)
hoge = 0; 翻訳された言語
プログラム コンピュータ
![Page 14: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/14.jpg)
hoge = 0; 翻訳された言語
プログラム コンピュータ
![Page 15: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/15.jpg)
hoge = 0; 翻訳された言語
プログラム コンピュータ
![Page 16: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/16.jpg)
![Page 17: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/17.jpg)
![Page 18: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/18.jpg)
![Page 19: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/19.jpg)
![Page 20: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/20.jpg)
アセンブラ言語とか機械語とかに翻訳!
アセンブラから後の処理は別のプロセスに任せるよ!
![Page 21: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/21.jpg)
中間コードに翻訳!
中間コードをメモリに入れてあとはインタプリタに任せた!
![Page 22: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/22.jpg)
別の言語に翻訳!
例えば SaSS → CSS みたいなイメージ(SaSSの内部実装知らんから何とも言えないけど)
![Page 23: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/23.jpg)
![Page 24: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/24.jpg)
![Page 25: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/25.jpg)
![Page 26: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/26.jpg)
字句解析 構文解析 記号表コード生成
![Page 27: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/27.jpg)
字句解析 構文解析 記号表コード生成
![Page 28: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/28.jpg)
字句解析
![Page 29: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/29.jpg)
字句解析
![Page 30: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/30.jpg)
字句解析dataType = If;
![Page 31: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/31.jpg)
字句解析dataType = Ident;
![Page 32: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/32.jpg)
字句解析dataType = IntNum
value = 0
![Page 33: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/33.jpg)
![Page 34: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/34.jpg)
![Page 35: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/35.jpg)
![Page 36: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/36.jpg)
構文解析字句解析 記号表コード生成
![Page 37: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/37.jpg)
![Page 38: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/38.jpg)
(参考: 知って損はない、各国語のBNF定義http://atmarksharp.com/posts/bnf-of-languages.html )
![Page 39: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/39.jpg)
![Page 40: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/40.jpg)
![Page 41: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/41.jpg)
![Page 42: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/42.jpg)
![Page 43: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/43.jpg)
字句解析 構文解析コード生成
記号表
![Page 44: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/44.jpg)
![Page 45: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/45.jpg)
![Page 46: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/46.jpg)
![Page 47: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/47.jpg)
![Page 48: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/48.jpg)
字句解析 構文解析コード生成
記号表
![Page 49: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/49.jpg)
![Page 50: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/50.jpg)
![Page 51: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/51.jpg)
アセンブラ言語とか機械語とかに翻訳!
アセンブラから後の処理は別のプロセスに任せるよ!
![Page 52: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/52.jpg)
中間コードに翻訳!
中間コードをメモリに入れてあとはインタプリタに任せた!
![Page 53: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/53.jpg)
別の言語に翻訳!
例えば SaSS → CSS みたいなイメージ(SaSSの内部実装知らんから何とも言えないけど)
![Page 54: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/54.jpg)
![Page 55: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/55.jpg)
![Page 56: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/56.jpg)
![Page 57: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/57.jpg)
![Page 58: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/58.jpg)
![Page 59: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/59.jpg)
字句解析 構文解析 記号表コード生成
![Page 60: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/60.jpg)
![Page 61: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/61.jpg)
![Page 62: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/62.jpg)
明快入門コンパイラ・インタプリタ開発
C言語とかの入門書でよく聞く林先生の参考書。只今絶賛勉強中。
![Page 63: Web系だって低レイヤーがやりたいんだよ! コンパイラことはじめ](https://reader033.vdocuments.net/reader033/viewer/2022042518/557cb613d8b42abf328b4fc9/html5/thumbnails/63.jpg)