simotin13's message

simotin13といいます。記事の内容でご質問やご意見がありましたらお気軽にコメントしてください\^o^/

コンパイラ自作

Cコンパイラ作成入門をarmで試してみる

久しぶりに記事を書きます。このところ数学とか電気回路の勉強ばかりで、仕事以外でコードを書いていないので気分転換にコードを書きたい欲が強くなっていたのですが、@rui314さんがCコンパイラ作成入門という面白そうな本を書かれているそうなので自分もC言…

構文解析ハンズオン 関西出張版に参加させて頂きました

lang-impl.connpass.com参加させて頂きました。 目次 目次 良かった点 苦労した点 構文解析について思ったこと Rubyで式の構文解析をしてみた 書いてみて気づいたこと 再帰か状態遷移か 今後やってみたいこと パーサジェネレータを書く 関数型言語でパーサを…

LLVMをビルドするときのリンクエラー対応

llvmをビルドしようとしてリンクエラーでこけました。 VMWare上のLinux Mint上でビルドしているのですが、ググってみるとどうもシステムのメモリ容量が小さいから起きているようでした。 ※だいぶ前にLLVMをビルドしようとしたときにもはまったきがするので備…

C言語でbrainfuckを実装してみた

なんだかすごく今更ですが、気分的になんとなく実装してみました。 仕様把握 そもそもbrainfuckの仕様がよく把握できていないのでwikipedia等いくつかのサイトを参考にさせて頂きました。Brainfuck - Wikipedia Brainf*ckHello Worldなどいくつかサンプルコ…

Lispの電卓機能を実装してみる

冬休みということで少し時間があるのでいろいろ勉強しているのですが、なんとなくLisp処理系を書いてみたくなったのでRubyで実装してみたいと思います。Lisp処理系の実装というとshemeの仕様を理解して実装するのが一般的らしいのですが、冬休みで時間も限ら…

/*~*/ コメントアウトを除去するコードをRubyで書いてみた

タイトルの通り、C言語系の複数行 /* ~ */ コメントを除去するコードを書いてみました。 Rubyで書いていますが状態遷移が基本になるのでどの言語でも同じように書けそうです。 # コメントアウトの除去 def delete_comment_out code status = :STATUS_WAIT_S…

C言語での電卓の作り方~「コンパイラ」を読んでみた~

2019-11-02追記 yoctoのサンプルプロジェクトようにこの記事のコードを使って試していたらいくつかバグがありましたので修正しました。 具体的には本記事のコードでマイナスがうまく扱えていませんでした。 例えば、 ./calc "3 - 3 + 3" のような計算がうま…

SP会に参加させて頂きました

7月2日に東京で開催されたシステムプログラミング会(SP会)に参加させて頂きました。畏れ多くも参加させて頂きました。■目次 参加動機 敷居の高さ 内容 感想 感謝 余談 1.printfの挙動について 2.家路につくまで かなりヤバい人たちの集まりだとは理解し…