GGG

プログラミング言語やソフトウェア開発について思ったことを書いてます

algorithm

並列化の効用

並列化をすることで処理時間を短縮するなどのパフォーマンス改善を行う場合 アムダールの法則(Amdahl's law)というものがよく使われるそうだ。 知らなかった自分に残念。 この法則の観点としては、下記のことが考えられると思う。 ・プロセッサ数を増やし続…

【書籍感想】言語実装パターン

言語実装パターン ―コンパイラ技術によるテキスト処理から言語実装まで 購入の経緯 コンパイラ技術について興味を持ち 実装レベルでどのようにコードを書けば良いのか学習するため。 期間 1か月程度で1回目読み終わった。 主に通勤時間と週末を利用。 紹介 …

C++ 四則演算を再帰下降構文解析する

C++で再帰下降構文解析してみた。 オブジェクト指向はしてない。STL使いたかっただけ。 四則演算をどうやって解析して出力するのかよく分かっていなかった。 基本中の基本・・のはず。お勉強のためのメモ。 メモ 文脈自由文法(CFG)であれば、BMF記法で表現で…

Haskell 変換:中置記法 -> 後置記法

1 + 2 * 3 のような中置記法を後置記法へ変換するコードを書いてみた。 +,-,*,/,^ に対応。 () は未対応。()はそのうち対応したい。 数値は正の整数しか対応できていないので、この辺をもっと柔軟にできないかな。 正規表現使えれば簡単なんだが、Haskellで…

Haskell 逆ポーランド記法

どうやらもっと簡潔に書けるようですが・・・。 逆ポーランド記法をHaskellで書いてみた。 畳み込み(fold)を使いこなせるようになると もっと簡潔に書けるみたい。 Haskellで自分で考えて書いたのは初なので、こんなものですかね。 動くものが作れるってやっ…