Boost.Variant、Boost.Spirit.Qi、Boost.Spirit.Phoenixを使って簡単な中置記法の計算するための抽象構文木(AST)を作って、そのASTをllvm言語に変換するというのを作ってみました。コード書き殴り。 BoostでASTが割とすっきりと書け、そこからllvm言語に変換することも割と簡単に出来ます。 コードと出力結果はGistのほうに置いておきます。 コード https://gist.github.com/LNSEAB/5335399 出力結果 https://gist.github.com/LNSEAB/5335412 雑ですが説明。 ASTの表現 Boost.VariantでASTを表します。 namespace ast { struct add; struct sub; struct mul; struct div; template <cl
AmazonのHDMIドングル型端末「Amazon TV Stick」が到着しました。早速使ってみたのですが、これがなかなか良いので紹介します。 開封レビュー 開封から接続まで 同封品一式が下のとおり。本体とリモコン、HDMI延長ケーブル、電源コードと非常にシンプル。素材はチープですが、シンプルなデザインなので安っぽい印象はありません。 ChromeCast(上)とfireTV stick(下)との比較。fireTV stickの方がシンプルな形状。TVのHDMI端子周りは色々なケーブルが挿さっているので、Chromecastの出っ張りのある形状は邪魔になる場合もあったと思います。その点、fireTV Stickはすっきりしていますね。 が、使用中のディスプレイのHDMI端子には、fireTV stickが長すぎて上手く挿すことができませんでした。結局、延長ケーブルを使って接続。Chrom
コマンドを入力後、[Enter]キーを押すとLinux(今回はUbuntu)のインストールが始まります。1時間弱かかるので、Chromebookがスリープ状態にならないように注意しましょう。 インストールの最後に、Ubuntuで利用するユーザー名とパスワードを聞いてきます。ユーザー名とパスワードを入力し、[Enter]キーを押します。なお、パスワードは2回(入力と確認)入力する必要があります。また、画面上に表示されないのでミスのないように注意しましょう。 これでUbuntuのインストールは完了です。 「chronos@localhost / $」に続いて次のように入力し、[Enter]キーを押すとUbuntuが起動します。 chronos@localhost / $ sudo startunity 無事、Ubuntuが起動しました。 4. Ubuntuの日本語表示化 インストールされたUb
一番の違いはCPU 新旧モデルを比較すると、タッチパネルの有無やUSB3.0ポートの数(2→1に減ってる)などいろいろありますが、最も大きな違いはCPUです。Celeron2955U(1.4GHz)からCeleronN2840(2.58GHz)になりました。 動作クロックが上がり一見速くなったように感じますが、これが残念なことに性能ダウンです。 旧モデルに使用されている2955UはHaswell(第4世代Core i系)廉価版であり、この正常進化モデルはBroadwell(第5世代Core i系)です。一方、N2840は同じCeleronでもBayTrail(Atom系)で完全に格下です。 例えばCPU-MONKYのベンチマークテストの結果では、いずれの項目も2955Uが高速である結果になっています。 CPUBossやCPU-Worldの比較でも、消費電力の項目以外で新モデルに搭載されるN
一昨日ブログに書いたPicricというScheme処理系について、プログラミングしたときの方針とか、そのへんをまとめてみます。 Scheme(Lisp)の処理系は実装が簡単簡単と言われる割にその実装方法についてまとめられたサイトがほとんどなくて、僕自身調べるのにかなり苦労しました。もうこれ以上僕みたいな犠牲者を出したくありません。 とはいえいろいろ間違ってる箇所もあるかと思いますので気づいた方はコメントをおねがいします。 まずPicricについて。 実は昔々(今年春)NLispというものを作った。 Pythonで実装されたSchemeのサブセット。 継続が実装されていなかった。 今度こそは継続を!pythonからも脱脚して一人前になりたい! そんな動機で開発を始める。 名前の由来はピクリン酸。 ピクリン酸はそのやたら可愛い名前にも関わらず実はものすごい爆薬。 そういう「意外とすごい」インタ
Ruby Twitter Gemでとりあえずログインしてツイートを取ってくるところまで解説します。 インストール $ gem install twitter -v 5.16.0 (環境によっては sudo gem 〜) 以下の解説はtwitter gem 5.16.0で確認していますが、もっと新しいバージョンでも動くかもしれません。 リンク 公式サイト:http://sferik.github.io/twitter/ github:https://github.com/sferik/twitter リファレンス:http://www.rubydoc.info/gems/twitter/5.16.0 例 require 'twitter' client = Twitter::REST::Client.new do |config| config.consumer_key = "(1)" co
2016年11月に購入したThinkPad X250。メモリやSSDの増設、LCDパネル交換を行い、永らく愛用してきましたが、さすがに非力に感じる場面も出始めたので、いまさらThinkPad T480 ...
いわゆるプログラミング学習で、初心者にとっての本当の壁とは何か。 「書いてある言葉の意味がわからない……」「パソコンがないと勉強を始められない……」「覚えることが多そうに見える……」このような問題をサポートしてくれるアプリが人気を集めている。 9月1日にリリースされた、『Pocket Programming - Ruby/Rails編 -』は、現在アジアや欧米など全世界約50カ国で利用されているプログラミングの初心者を対象とした学習アプリだ。11月2日には、『Pocket Programming(ポケットプログラミング) - Android/Java編 -』がリリースされたばかり。『Ruby/Rails編』は、新着有料教育カテゴリで米国・オーストラリア・イギリス・日本で1位を獲得している。 「プログラミングって楽しそう”と思えた人の、次のステップに」 昨今プログラミング学習の重要性は世界的
マシン語の体験が終わったので、高速に足し算するプログラムをつくってみましょう! プログラムをひとつひとつマシン語対応表を見て、2進数列にして打ち込んでいくことをハンドアセンブルといいます。手(ハンド)で組み立てる(アセンブル)ので、ハンドアセンブル、てづくりですねっ! IchigoJamのマシン語では、レジスタというBASICで使う変数のようなものが使えます(ひとまず安全に使えるのは、R0-R3の4つ)。レジスタに値をいれたり、レジスタ同士で計算して、その結果によって分岐(BASICでいうGOTO)することで、プログラムを組み立てます。 まずは、指定した数字までを足し算するマシン語プログラムをつくってみます。 BASICから渡される数は、レジスタR0に入っていて、RETした時に同じくレジスタR0に入っている数がUSRコマンドの値となります。 まずは実験 R0=R0+1 をハンドアセンブルし
使う局面が多いのでメモ。 1. 変更中のファイルのうち、一部のみstashする方法 git stash -p git add -pと同じく、差分のうちどれをstashするかを選択する。 2. 複数の変更中のファイルのうち、特定のファイルのみstashする方法 1 に示す方法だと、 「(git add [ファイル名]のように)A.txt, B.txt, C.txtのうちB.txtの変更だけ全部stashしたい!」 という要望の時はA.txt, C.txtの差分も逐一選択しないといけなくてめんどくさかったり。 その場合、個人的にはこんな方法で対処してます。 # A.txt, B.txt, C.txtのうち、B.txtだけstashしたいという場合 # (1) stashしたいファイル以外をコミット(ローカルだけ) git add A.txt git add C.txt git commit -
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く