chibiccを読む~Cコンパイラコードリーディング~ ステップ28

トップページ jupiteroak.hatenablog.com 「低レイヤを知りたい人のためのCコンパイラ作成入門」のCコンパイラを読んでいきます。 www.sigbus.info ステップ28に該当 github.com 今回行うこと テストコード Makefile 今回行うこと ステップ28 テストをCで書…

chibiccを読む~Cコンパイラコードリーディング~ ステップ27

トップページ jupiteroak.hatenablog.com 「低レイヤを知りたい人のためのCコンパイラ作成入門」のCコンパイラを読んでいきます。 www.sigbus.info ステップ27に該当 github.com 該当ステップなし github.com 今回作成するコンパイラ 追加・修正されたコンパ…

chibiccを読む~Cコンパイラコードリーディング~ ステップ26

トップページ jupiteroak.hatenablog.com 「低レイヤを知りたい人のためのCコンパイラ作成入門」のCコンパイラを読んでいきます。 www.sigbus.info 該当ステップなし github.com ステップ26に該当 github.com 今回作成するコンパイラ 追加・修正されたコンパ…

chibiccを読む~Cコンパイラコードリーディング~ ステップ25

トップページ jupiteroak.hatenablog.com 「低レイヤを知りたい人のためのCコンパイラ作成入門」のCコンパイラを読んでいきます。 www.sigbus.info ステップ25に該当 github.com 該当ステップなし github.com 今回作成するコンパイラ 追加・修正されたコンパ…

chibiccを読む~Cコンパイラコードリーディング~ ステップ24

トップページ jupiteroak.hatenablog.com 「低レイヤを知りたい人のためのCコンパイラ作成入門」のCコンパイラを読んでいきます。 www.sigbus.info ステップ24に該当 github.com 今回作成するコンパイラ 追加・修正されたコンパイラのソースコード main関数 …

chibiccを読む~Cコンパイラコードリーディング~ ステップ23

トップページ jupiteroak.hatenablog.com 「低レイヤを知りたい人のためのCコンパイラ作成入門」のCコンパイラを読んでいきます。 www.sigbus.info ステップ23に該当 github.com 今回作成するコンパイラ 追加・修正されたコンパイラのソースコード main関数 …

chibiccを読む~Cコンパイラコードリーディング~ ステップ20, 21, 22

トップページ jupiteroak.hatenablog.com 「低レイヤを知りたい人のためのCコンパイラ作成入門」のCコンパイラを読んでいきます。 www.sigbus.info ステップ21に該当 github.com ステップ22に該当 github.com ステップ20に該当 github.com 今回作成するコン…

chibiccを読む~Cコンパイラコードリーディング~ ステップ17, 18, 19

トップページ jupiteroak.hatenablog.com 「低レイヤを知りたい人のためのCコンパイラ作成入門」のCコンパイラを読んでいきます。 www.sigbus.info ステップ18, 19に該当 github.com ステップ17に該当 github.com 今回作成するコンパイラ 追加・修正されたコ…

chibiccを読む~Cコンパイラコードリーディング~ ステップ16

トップページ jupiteroak.hatenablog.com 「低レイヤを知りたい人のためのCコンパイラ作成入門」のCコンパイラを読んでいきます。 www.sigbus.info ステップ16に該当 github.com 今回作成するコンパイラ 追加・修正されたコンパイラのソースコード tokenize…

chibiccを読む~Cコンパイラコードリーディング~ ステップ15

トップページ jupiteroak.hatenablog.com 「低レイヤを知りたい人のためのCコンパイラ作成入門」のCコンパイラを読んでいきます。 www.sigbus.info ステップ15に該当 github.com ステップ15に該当 github.com 該当ステップなし github.com 今回作成するコン…

chibiccを読む~Cコンパイラコードリーディング~ ステップ14

トップページ jupiteroak.hatenablog.com 「低レイヤを知りたい人のためのCコンパイラ作成入門」のCコンパイラを読んでいきます。 www.sigbus.info ステップ14に該当 github.com ステップ14に該当 github.com ステップ14に該当 github.com 今回作成するコン…

chibiccを読む~Cコンパイラコードリーディング~ ステップ13

トップページ jupiteroak.hatenablog.com 「低レイヤを知りたい人のためのCコンパイラ作成入門」のCコンパイラを読んでいきます。 www.sigbus.info ステップ13に該当 github.com 今回作成するコンパイラ 追加・修正されたコンパイラのソースコード tokenize…

chibiccを読む~Cコンパイラコードリーディング~ ステップ12

トップページ jupiteroak.hatenablog.com 「低レイヤを知りたい人のためのCコンパイラ作成入門」のCコンパイラを読んでいきます。 www.sigbus.info ステップ12に該当 github.com ステップ12に該当 github.com ステップ12に該当 github.com 今回作成するコン…

chibiccを読む~Cコンパイラコードリーディング~ ステップ9,10,11

トップページ jupiteroak.hatenablog.com 「低レイヤを知りたい人のためのCコンパイラ作成入門」のCコンパイラを読んでいきます。 www.sigbus.info ステップ9に該当 github.com ステップ11に該当 github.com 該当ステップなし github.com ステップ9に該当 gi…

chibiccを読む~Cコンパイラコードリーディング~ ステップ8

トップページ jupiteroak.hatenablog.com 「低レイヤを知りたい人のためのCコンパイラ作成入門」のCコンパイラを読んでいきます。 www.sigbus.info ステップ8に該当 github.com 今回行うこと コンパイラのソースコード chibicc.h main.c tokenize.c parse.c …

chibiccを読む~Cコンパイラコードリーディング~ ステップ7

トップページ jupiteroak.hatenablog.com 「低レイヤを知りたい人のためのCコンパイラ作成入門」のCコンパイラを読んでいきます。 www.sigbus.info ステップ7に該当 github.com 今回作成するコンパイラ コンパイラのソースコード 追加・修正されたコンパイラ…

chibiccを読む~Cコンパイラコードリーディング~ ステップ6

トップページ jupiteroak.hatenablog.com 「低レイヤを知りたい人のためのCコンパイラ作成入門」のCコンパイラを読んでいきます。 www.sigbus.info ステップ6に該当 github.com 今回作成するコンパイラ コンパイラのソースコード 追加・修正されたコンパイラ…

chibiccを読む~Cコンパイラコードリーディング~ ステップ5

トップページ jupiteroak.hatenablog.com 「低レイヤを知りたい人のためのCコンパイラ作成入門」のCコンパイラを読んでいきます。 www.sigbus.info ステップ5に該当 github.com 今回作成するコンパイラ コンパイラのソースコード 追加・修正されたコンパイラ…

chibiccを読む~Cコンパイラコードリーディング~ ステップ4

トップページ jupiteroak.hatenablog.com 「低レイヤを知りたい人のためのCコンパイラ作成入門」のCコンパイラを読んでいきます。 www.sigbus.info ステップ4に該当 github.com 今回作成するコンパイラ コンパイラのソースコード 追加・修正されたコンパイラ…

chibiccを読む~Cコンパイラコードリーディング~ ステップ3

トップページ jupiteroak.hatenablog.com 「低レイヤを知りたい人のためのCコンパイラ作成入門」のCコンパイラを読んでいきます。 www.sigbus.info ステップ3に該当 github.com 今回作成するコンパイラ コンパイラのソースコード 追加・修正されたコンパイラ…

chibiccを読む~Cコンパイラコードリーディング~ ステップ2

トップページ jupiteroak.hatenablog.com 「低レイヤを知りたい人のためのCコンパイラ作成入門」のCコンパイラを読んでいきます。 www.sigbus.info ステップ2に該当 github.com 今回作成するコンパイラ コンパイラのソースコード コマンドライン引数の個数を…

chibiccを読む~Cコンパイラコードリーディング~ ステップ1

トップページ jupiteroak.hatenablog.com 「低レイヤを知りたい人のためのCコンパイラ作成入門」のCコンパイラを読んでいきます。 www.sigbus.info ステップ1に該当 github.com 今回作成するコンパイラ コンパイラのソースコード コマンドライン引数の個数を…

chibiccを読む~Cコンパイラコードリーディング~ ステップ0

はじめに 記事一覧 読んでみた所感 はじめに www.sigbus.info github.com Cコンパイラを作るのを挫折している人は単にソースコードを読んでない気がする。本がお題でコードが答えというクイズみたいな構成ではなく、コードが本文でその解説が本です。どちら…

プロセス1実行編⑪(ユーザモード) init.c (Xv6を読む~OSコードリーディング~)

前回 jupiteroak.hatenablog.com トップページ jupiteroak.hatenablog.com init.c https://github.com/mit-pdos/xv6-public/blob/master/init.c // init: The initial user-level program #include "types.h" #include "stat.h" #include "user.h" #include …

プロセス1実行編⑩(システムコール) trapret (Xv6を読む~OSコードリーディング~)

前回 jupiteroak.hatenablog.com トップページ jupiteroak.hatenablog.com trapasm.S https://github.com/mit-pdos/xv6-public/blob/master/trapasm.S#L20 #include "mmu.h" # vectors.S sends all traps here. .globl alltraps alltraps: ... # Call trap(t…

プロセス1実行編⑨(システムコール) int exec(char *path, char **argv) (Xv6を読む~OSコードリーディング~)

前回 jupiteroak.hatenablog.com トップページ jupiteroak.hatenablog.com exec.c https://github.com/mit-pdos/xv6-public/blob/master/exec.c int exec(char *path, char **argv) { char *s, *last; int i, off; uint argc, sz, sp, ustack[3+MAXARG+1]; s…

プロセス1実行編⑧(システムコール) int sys_exec(void) (Xv6を読む~OSコードリーディング~)

前回 jupiteroak.hatenablog.com トップページ jupiteroak.hatenablog.com sysfile.c https://github.com/mit-pdos/xv6-public/blob/master/sysfile.c#L396 int sys_exec(void) { char *path, *argv[MAXARG]; int i; uint uargv, uarg; if(argstr(0, &path) …

プロセス1実行編⑦(システムコール) void syscall(void) (Xv6を読む~OSコードリーディング~)

前回 jupiteroak.hatenablog.com トップページ jupiteroak.hatenablog.com syscall.c https://github.com/mit-pdos/xv6-public/blob/master/syscall.c#L131 void syscall(void) { int num; struct proc *curproc = myproc(); num = curproc->tf->eax; if(num…

プロセス1実行編⑥(システムコール) void trap(struct trapframe *tf) (Xv6を読む~OSコードリーディング~)

前回 jupiteroak.hatenablog.com トップページ jupiteroak.hatenablog.com trap.c(一部抜粋) https://github.com/mit-pdos/xv6-public/blob/master/trap.c#L36 void trap(struct trapframe *tf) { if(tf->trapno == T_SYSCALL){ if(myproc()->killed) exit()…

プロセス1実行編⑤(システムコール) alltraps (Xv6を読む~OSコードリーディング~)

前回 jupiteroak.hatenablog.com トップページ jupiteroak.hatenablog.com trap.asm(一部抜粋) https://github.com/mit-pdos/xv6-public/blob/master/trapasm.S#L5 #include "mmu.h" # vectors.S sends all traps here. .globl alltraps alltraps: # Build t…