2019-05-01から1ヶ月間の記事一覧

Compiler/Lexical Analyzer

Compiler/Lexical Analyzer コード タスク概要 シンプルなプログラミング言語用の Lexical Analyzer を作る。 実装 lex 使おうぜ、lex。と言いたくなる気も少しあるけど、真面目に実装する。そもそも C 言語じゃないしね。 正規表現のパターンに対するマッチ…

Bitmap/Write a PPM file

Bitmap/Write a PPM file コード タスク概要 Bitmap で作成したビットマップを PPM 形式でファイルに保存する。PPM は P6 が望ましい。 実装 これも特に書くことがない。ソースの write_ppm() を見て。 余談 PPM 自体は以前にも使用したことがあった。その時…

Bitmap

Bitmap コード タスク概要 他のタスクでも使えるように、 RGB ラスタグラフィックス用の型と以下の基本的な 3 つの関数を実装する。 塗りつぶし 指定したピクセルに色をセット 色を取得 実装 問題になる点は特になし。ソースを見て。 で、Rust の場合アクセ…

Execute Brain****

Execute Brain**** コード タスク概要 Brainfuck の処理系を作る。 Brainfuck は非常に小さな言語で、その仕様は Rosetta code のページ や Wikipedia にも書いてある。 それによるとプログラムコードは {'>', '<', '+', '-', '.', ',', '[', ']'} のみで構…

100 Doors

100 Doors タスクの一覧で一番最初に載っていたので、試しにやってみた。 コード 数字から始まる cargo package は作れないみたいなので "_100_doors" とした。 タスク概要 ドアが開いている時に閉じ、閉じている時には開く toggle という操作を考える。 一…

A+B

はじめに Rust が気になっている。プログラミング言語の習得には実際に何かを作ってみるのが最も良いということはわかっているが、作りたいものなど特にない。というわけで Rosetta codeとかで適当に課題をみつけて実装していこうと思う。 基本方針 全体で一…