真面目なノート

こまめにその日の進捗などをメモしておく。

7時前に起きて生活習慣改善の兆しが見えた。

計算機アーキテクチャと構成方式(中澤喜三郎)

第5章. addressingを読了。

  • addressは主記憶(main memory)の番地
    read/fetch、writeに用いる。
    • addressingの単位によって分類分けされるが、byte addressがよく用いられる。
    • あるaddressにより一様にアクセスできる記憶領域をaddress spaceという。

addressを馬鹿正直に主記憶に一対一で対応させていてはアドレスの長さが足りないので、いろいろな工夫を凝らしている。

base register address方式

base registerを起点にしてアドレスを決定する。
effective addressの求め方は二種類あり、

  • 加算方式
  • つなぎ合わせ方式

という。

index mofdification

stored program方式の特徴として命令自体の書き換えが可能であることが述べられていたが、それはあまり推奨されておらず。
index register を介することでaddressを変更するようにする。

メモ

基礎的な部分について触れているだけなので、この本の内容が間違っていることはそうそう無いだろうが、かなり古い本である。
余裕があればもう少し新しい情報を学びたい。(噂のパタヘネとか)

Effective Python

Item24. @classmethod を使おう

要約

中身

コンストラクタが一種類しか定義できないと、例えばインスタンス複数作成する時なんかに、後からの変更箇所が大きくなりがち。
継承とクラスメソッドを使うことでいい感じにしよう。

NotImplementedError

絶対オーバーライドするメソッドに対して記述しておく。
こんなん。

 class InputData():
     def read(self):
         raise NotImplementedError

クラスメソッド

第一引数に自身のクラスを与える。
下のように、引数に与えられたリストから自身のインスタンスのリストを返す、みたいなメソッドを実装できる。

     @classmethod
     def from_list(cls,namelist):
         return [cls(name) for name in namelist]

これらを用いて、Effective Pythonでは各クラスのジェネレータを作成し、多態性を確保する、みたいな例を書いていた。
人工知能の課題で作った群知能系のアルゴリズムとかは、これを使えばもっとよかった気がする。

メモ

なにかひとつくらいそれなりに得意な言語を身につけねばと思って買ったEffective Python英語版)、読んでなかった。
そうこうしているうちに和訳版がでやがったので、春休みのうちに読み終わりたい。

すごいH本

モナドについてのあれこれ。
リストモナドによる非決定性計算とか、do記法とモナドの関係とか、リストモナドとリスト内包表記の関係とか、いろいろと学びの多い部分なのだけれど、如何せん難しいため完全に理解できていない。
すごいHaskellはもう一周するか、これから読みたいと思っているHaskell系の本を読む時に折に触れて見直すことになりそうだ。

Unity(五月祭)

2Dunityちゃんがうごくようになりました……
unity、かなりモチベーション低い。

obenkyo

時間がね、ありませんでした。

趣味

デッサン(というか、写真の模写)の練習は2時間くらいできました。
Pythonのprivate変数周りについての不勉強がわかったので、それを調べながら描くことになった。
あんまり集中できなかったかも。
Pythonはドキュメントちゃんと読まずに「使っとけば覚えるよね」ってやってきてしまったので、あんまりよくない……

明日

すごいHかアーキテクチャあたりをちょっと減らしてバイトをやります。