右上↗

プログラミングに関するメモをのこしていきます

2015-01-01から1年間の記事一覧

コンパイラ内部の AST 表現について

コンパイラは大体,ソースコードを構文解析し,AST を作り,意味解析,コード生成という流れで実装されると思います. さて,AST は単純に書くと type expr = | Int of int | Add of expr * expr | Apply of expr * expr list | ... みたいな感じに書けると…

Boost.Spirit.X3 で簡易電卓を実装 1

agtn.hatenablog.com agtn.hatenablog.com 引き続き,Boost.Spirit.X3 です. 今回は,前回までの知識をつかって,簡易電卓を実装してみます. 仕様 今回定義する電卓は, + - * / の 4 つの演算と単項の - をサポートします. また,整数型のみを扱うものと…

Boost.Spirit.X3 の練習 2

Boost.Spirit.X3 の練習1 - プログラミングのメモ帳➚に引き続き,Boost.Spirit.X3 のお勉強メモです. セマンティックアクション 構文解析にはセマンティックアクションというのがつきものです. yacc や parsec など有名な構文解析のためのツール/ライブラ…

Boost.Spirit.X3 の練習1

Boost.Spirit.X3 の練習1 Boost.Spirit.X3 という C++ のための パーサコンビネータライブラリを使ってみています. Boost.Spirit というと, C++ の黒魔術の塊みたいなイメージがあります. ちなみに Boost.Spirit.Qi が安定版のパーサコンビネータライブラ…

Sokoban.nim を書いてみた

Sokoban.nim を書いてみた Nim という言語を使って倉庫番を書いてみました. sokoban-nim sokoban-rs に影響されました. といっても SDL ド素人なので見た目は恐ろしく質素です. Nim の練習のつもりで書いてみました. 動作 動作としては,コマンドライン引…

Golang での文字列連結に関するベンチマーク

まず結論 append しよう. bytes.Buffer はそんなに速くない. きっかけ こんな記事を見かけました. Goでは文字列連結はコストの高い操作 - Qiita buf += "abc" はコストが高いよーっていうお話ですね. これは golang にかぎらず, Javaとかでもよく話題になる…

Golangでechoサーバ

最近 golang が気になります golang の特徴はもはやわざわざここに書くまでも無いことだと思うので書きませんが, 気になっている理由を書いてみます. バイナリ(しかもポータビリティが非常に高いバイナリ)にコンパイルされること C/C++ には及ばずとも実行が…

Haskellでechoサーバ

はいどうもー 引き続きHaskellの話題です. ちょっとHaskellでTCPソケットを使ってみたくなったので, まず簡単なものから実装してみます. TCPソケットのチュートリアルといえばechoサーバですね!クライアントからの入力をそのまま返すサーバです. せっかくな…

HaskellのConcurrentについて調べてまとめる (MVar編)

どうもこんにちは. 前回(HaskellのConcurrentについて調べてまとめる (IORef編) - プログラミングのメモ帳➚)の続きです. 今回はスレッド間協調のためにMVarを使う方法について調べたので, まとめたいと思います. MVar Haskellにかかわらず, 最近の並行処理は…

HaskellのConcurrentについて調べてまとめる (IORef編)

こんばんは. Haskell(GHC)で並行処理を必要とするアプリケーションを書いてみようと思ったのですが, 並列処理に関するいろいろについてよくわかっていない部分が多かったので, 調べたついでにまとめておこうと思います. もし間違い等ありましたらコメントい…

yukicoder 2015/05/08

yukicoderさんのコンテストに出てきましたー ★から★★★までの四問ということでもしかしたら完答いけるんじゃないかとか甘いことを考えていたのですが...ww 結果 3完で19位でしたー4問目はTLEの連発で...解法全く思いつけませんでしたねー ただ前よりはちょ…

yukicoder 2015/05/03

今週は土日共に予定があってAtCoderさんもyukicoderさんも出場したかったのですが出来ず... AtCoder - ARC 今週のAtCoderさんはABCはなかった?ぽくて, ARCに挑むにはまだちょっと力不足かなと思うので, 一旦保留します yukicoder というわけでyukicoderさん…

【yukicoder】yukicoder open 2015 small - 3完

yukicoder open 2015 small に挑戦してきました! yukicoderさん主催のコンテストに初挑戦してきました! 人生二回目のコンテストということで昨日よりは緊張もなく楽しめたかな? 言い訳になりますがちょっと同時並行でやらなきゃいけないことがあったので…

【AtCoder】ABC022 - 競技プログラミング初挑戦!

AtCoder ABC022に挑戦! 人生で初めて競技プログラミングのコンテスト(オンライン)に出場してみました! 使用言語はC++にしようかと思ったのですが、どっちかというとD言語のほうがすきだし、Dlangも十分競技プログラミングに向いているっぽかったのでD言語…