今週のまとめ (2017/4/21)
今週のまとめのリンクは iCloud のメモ帳で管理しています。iPhone からの保存が楽なので…
プログラミング言語
cmacro – Lisp macros for C
C言語で高機能な衛生的マクロを実現する(前)処理系。記法は sweet.js (JSにマクロを導入するもの) ( の以前のバージョン *1 ) のものに近い。
Why ML/OCaml are good for writing compilers?
Why ML/OCaml are good for writing compilers
なぜ ML や OCaml でコンパイラが書かれているかの理由についての投稿。1998年の文章だが、2017年の今でもそれらコンパイラの実装言語としてよく使われており、その理由はここに書かれているものとほとんど変わらないと考える。
目次?: 1. ガベージコレクション 2. 末尾再帰の最適化 3. MLのデータ型はコンパイル処理において扱いやすい。 4. MLのデータコンストラクタは AST の扱いを楽にする。 5. 安全性 6. MLは再帰的構造が特徴である問題領域(定理証明等)に対して設計された 7. 例外 8. 型推論 9. 構文解析器ツールキットの存在 (yacc/lex/burg) *2 10. 実行速度 11. サポート *3 12. ライブラリ 13. モジュールシステム
Ruby 2.4 のハッシュテーブル高速化を理解する
Ruby 2.4 のハッシュテーブル高速化を理解する // Speaker Deck
題意の通り。ハードウェアでのデータの局所性に着目し高速化を行ったとのこと。
機械学習
Paperspace Machine Learning
機械学習(主に深層学習)に特化したクラウド計算サービスで、GPUを提供している。時間毎課金。競合として AWS [pg]2.xlarge との比較表が載っている。*4
インフラ
aws-fpga
AWS には FPGA を提供する F1 インスタンス ( https://aws.amazon.com/jp/ec2/instance-types/f1/ ) がある。これはそのための HDK (Hardware Development Kit) と SDK。合成の部分は vivado を使っているのでライセンス?が必要。
AWS Codestar
New- Introducing AWS CodeStar – Quickly Develop, Build, and Deploy Applications on AWS | AWS Blog
AWS 上でのアプリケーションに対する統合された コード管理 & CI サービス。
- EC2, Lambda などのいろいろなサービス・言語に対応
- Django や Express (Node) などの blueprint からすぐにアプリケーションを作れる。
- AWS上でのコード管理、テスト、デプロイの一元管理が可能。
- Eclipse や VS、JIRA との連携。
が注目すべき点。
アルゴリズム
500 Data structures and Algorithms interview questions and their solutions
500 Data structures and algorithms interview qu... - Techie Delight - Quora
プログラマの採用面接で聞かれるような、アルゴリズムとデータ構造に関する一問一答集。それぞれの問いには、時間・空間計算量別に複数の回答(C/Java)が載っている。
Competitive Programmer’s Handbook
Competitive Programmer's Handbook
IOI や ICPC に出場する学生に向けた競技プログラミングの無料 e-book。グラフアルゴリズムが三章のうち一章まるごと割かれている。
類似した競技プログラミングの本(で無料に手に入るもの)としては、 Competitive Programming Book Companion Website がある。(一部有料)
その他
Nintaco - NES Emulator
NESエミュレータ。C, C#, Java, Lua, Python の API が提供され、メモリや入出力などが制御できる。例えば、ゲームのAIを作るなどの用途が考えられる。
Kakoune Code Editor
VimにインスパイアされたTUIのエディタ。Sublime Text にあるような Multiple Selection や 複数人で編集する Collaborative edit などが主な機能となる。Vim のモードの概念や hjkl による移動等の一部のキーバインドなどが継承されている。今後少しずつ使ってみて慣れてきたら記事を上げたいと思う。