Builderscon 2019 の発表資料です。 ライブコーディングでフルスクラッチでコンパイラを書くというのをやりました。 コンパイラのソースコードはこちらです https://github.com/DQNEO/HowToWriteACompiler
入力について 普通は fmt.Scan で問題ないのですが,高速な入力が要求される問題では fmt.Scan だと遅すぎることがあります。fmt.Scan では 3*106 個の整数の入力に10秒以上かかりました。 高速な入力のためには bufio を使います。bufio を使った方法では 3*106 個の整数の入力にかかる時間は0.1秒以下でした。bufio.Scanner の Scan() と Text() の組み合わせで多くの場合は事足りるのですが,これにも少し問題があります。Scan() で読み取れるトークンの最大長は MaxScanTokenSize という定数で定義されており,Go 1.8 では 64*1024 でした。これでは 105 や 106 程度の長さの文字列の処理を要求する問題に対応することができません。Buffer([]byte, int) でバッファの大きさを変え
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く