ミックスナッツを食べて腹痛になったのはアレルギーが原因かもしれない

ミックスナッツを食べて腹痛になったのはアレルギーが原因かもしれない。
自分はピーナッツのアレルギーが少しあるらしい。

ミックスナッツ(カシューナッツ,アーモンド,くるみ)を時々袋買いして定期的に2年くらいずっと食べていた。
しかし、最近食べた後に謎の腹痛が起きるようになった。
Rimg0001
椿屋 業務用 ゴールド木の実 500g(Amazon)
続きを読む →

LLVM-IR(LLVM中間コード)用コンパイラの作り方 その1

LLVM-IR(LLVM中間コード)を生成するTiny BASICコンパイラを作ったという話の補足。

コンパイラを作るのは、いくつか作らなければならない部品がある。

主に、「構文解析」と「コード生成」に分けられる。
まずは構文解析について。(追記 – コード生成については「その4」から)

構文解析は、コンパイラの言語の文法のルールに沿って、入力されたソースコードを解読して、解読した結果を出力する。

これがアセンブリ言語のような単純な文法の言語ならば、構文解析のソフトは1から手作りをして作ることができる。
予約語と変数(ラベル)と定数だけで、文法の並び順も単純だからだ。
解読した結果も、基本的には1次元の配列のようなものに順番に入れていけば良い。

BASICみたいな言語の場合、構文解析は少し複雑になるが、手作りで作ることはできる。
再帰下降パーサーという作り方で、文法要素を再帰のソフトで組んでいく方法だ。
中間言語を使う方式のBASICの場合、ソースコードの1行分だけを独立してパーサーに書けて1行分のコード出力を得るというのを、行数分だけ繰り返すという作り方もできる。

C言語やPascalみたいな言語の場合、構文解析はかなり複雑になるので手作りで作るのは困難になる。
そこでyaccやbisonというようなコンパイラコンパイラを用いる。(単純なBASICみたいな言語にも用いることができる)
コンパイラを作るためのメタコンパイラだ。
コンパイラ言語の文法のルールを、それ用の記述方式でソースコードに記述してコンパイラコンパイラに掛けると、構文解析用のパーサーソフトの部分を自動生成してくれるものだ。
解析して解読した結果は構文木というツリー構造のデータに入れるとよい。

コンパイラコンパイラについては、
古い参考書だけど、yaccによるCコンパイラプログラミングという本で自分はマスターした。
→ コンパイラ「Cm」を改造してみる

—
続く

フィットログ2016 その2

毎週、自宅フィットネス運動したかどうかのチェックをする。

1/4
 腹筋マシンで腹筋運動をした。
 昼食でうどん+かき揚げを食べたのだけど胃もたれで、横になっていた。

1/5
 エアロバイク少しだけ。

1/6
 iPad2を復活させて、エアロバイクに設置。
 iOSでデレステのゲームをしながらエアロバイクをするようにした。
 スタミナ回復のタイミングで一定時間の自転車漕ぎができそうだ。

1/7
 栄のアップルストアとか久屋大通の東急ハンズに出掛けて少し歩いた。
 デレステでエアロバイク。

1/8
 旅行に出掛けた
 青春18切符で一日電車に乗ったのと、1kmくらいは歩いたので少しは運動になった
 旅行中、外食と間食で一時的に体重が増加。

1/9
 エアロバイク少しだけ。昨日食べ過ぎて増加した体重を少し戻した。
 ヨガマットでストレッチ運動を少し。
 糖尿の医者の定期検査。結果は普通。

1/10
 腹筋運動。
 デレステでエアロバイク。
 クルミを刻んで入れて作ったクッキーで体調が悪くなり、横になっていた。
 一昨日食べ過ぎて増えていた体重は一時的なものだったので、もう食べすぎる前に戻った。

有酸素運動は大目にできた。
筋トレは、腹筋のみだが2回できた。
ストレッチは、できれば毎日やりたいが出来ていない。うまく習慣付けできるように工夫をしたい。

iPad mini retina(iPad mini 2)のJailbreakしたものを初期化して入獄させた

iPad mini retina(iPad mini 2)のJailbreakしたものを初期化して入獄させた。

iPad mini retinaを2台持っている。
1台は、北米版のSIMロックフリーのiPad mini retina(WiFi+Cellular)で、
もう1台は、日本版のiPad mini retina(WiFi)だ。

WiFi版の方はJailbreakして使っていた。
64bitのARM CPUを搭載しているので、64bit ARM用のアセンブラのソフトを試したりしていた。
→ iOSのJailbreak環境で64bit ARM(AARCH64)のバイナリを試してみた

その後、いろいろと試してみたいことはあったのだけど、結局あまり触ることがなく放置してしまっていた。
断捨離の一環で、初期化して中古ショップに売って処分してしまおうと思った。
続きを読む →

iPad mini retina(iPad mini 2)のバッテリーが劣化したので、アップルストアで修理依頼して新品交換した

iPad mini retina(iPad mini 2)のバッテリーが劣化したので、アップルストアで修理依頼して新品交換した。
20160107_143032

iPad mini retinaを2台持っている。
1台は、北米版のSIMロックフリーのiPad mini retina(WiFi+Cellular)で、
もう1台は、日本版のiPad mini retina(WiFi)だ。

SIMロックフリー版の方をメインでずっと使っていて、内蔵のバッテリーがだいぶ劣化してしまっていた。
内蔵バッテリーで稼働できる時間が15分位と極端に短くなってしまったので、それを補うために外付けのバッテリージャケットとか入手した。
→ iPad mini Retina(iPad mini 2)のバッテリーが劣化したので、バッテリー付きジャケットを探してみた
しかし、それからまた内蔵バッテリーの劣化が進行して、外付けバッテリーを繋いで待機中にしておいてもバッテリー切れでiPadの電源が落ちてしまうようになった。
画面にバッテリーのアイコンの内側の残量メーターが切れてしまった表示が出て、充電をするように促している状態だ。
しかし、パワーボタンで何度か起動させようとするとOSが起動し、バッテリー残量表示が100%と表示されるという、奇妙な現象が起きていた。
続きを読む →