タグ

*プログラム参考とpythonに関するmzpのブックマーク (4)

  • スペル修正プログラムはどう書くか

    Peter Norvig / 青木靖 訳 先週、2人の友人(ディーンとビル)がそれぞれ別個にGoogleが極めて早く正確にスペル修正できるのには驚くばかりだと私に言った。たとえば speling のような語でGoogleを検索すると、0.1秒くらいで答えが返ってきて、もしかして: spelling じゃないかと言ってくる(YahooMicrosoftのものにも同様の機能がある)。ディーンとビルが高い実績を持ったエンジニアであり数学者であることを思えば、スペル修正のような統計的言語処理についてもっと知っていて良さそうなものなのにと私は驚いた。しかし彼らは知らなかった。よく考えてみれば、 別に彼らが知っているべき理由はないのだった。 間違っていたのは彼らの知識ではなく、私の仮定の方だ。 このことについてちゃんとした説明を書いておけば、彼らばかりでなく多くの人に有益かもしれない。Google

  • inforno � PythonによるNESエミュレータ開発1

    正月だというのにひたすらCPUの命令を実装・・・。ここはひたすら地道な作業が続く。やっぱりこういう単純作業は苦手だ・・・ 実装の際には InfoNES や 6502 Emulation Package のソースコード、そして NES on FPGACPUのページ に大変お世話になりました。特にNES on FPGAのページは非常に分かりやすくまとめられていて助かりました。 実装方針は前にも書いたとおり「できるだけPythonっぽく」。着々とエミュレーターっぽくないソースが出来上がってきています(笑 エミュレータのソースコードというとそれはもう、C言語でマクロ全開、register指定、inline(もしくはstatic)で出力されるコードを極限まで速く、なんて感じですが全く逆です。分かりやすさ優先。とりあえず書いてみて、ダメそうなら諦めるか頑張ってチューニングするか考えよう。 今日までで

  • inforno :: PythonによるNESエミュレータ開発2

    実は既に結構挫折気味。 やっぱりPythonではちょっと厳しいかもしれない。 とりあえず一番ややこしいPPU周りの情報を調べて、ちょろちょろ書き始めたあたりでいったんCPU部分のパフォーマンスを調べてみました。 かなり厳しいものがあります。CPU部分のコードはPython的な書き方で書いてたんですが、これじゃ話にならない。まず、アクセサなんてものはつかっちゃいけないのだ。 以下環境はOS:WinXP,CPU:Athlon64 3000+,Memory:1G,Python2.4です。 CPUのレジスタ関連の実装 NESのCPUである6502のレジスタはPCは16bit、それ以外は8bit。8bitの値なんてものはCならunsigned charで一発なんだけど、Pythonにはそんなものない。足し算したらどんどん大きくなるし、引き算したらどんどん小さくなる。ので 1class Py6502(

  • PEP 263 – Defining Python Source Code Encodings | peps.python.org

    PEP 263 – Defining Python Source Code Encodings Author: Marc-André Lemburg <mal at lemburg.com>, Martin von Löwis <martin at v.loewis.de> Status: Final Type: Standards Track Created: 06-Jun-2001 Python-Version: 2.3 Post-History: Table of Contents Abstract Problem Proposed Solution Defining the Encoding Examples Concepts Implementation Phases Scope References History Copyright Abstract This PEP pro

    PEP 263 – Defining Python Source Code Encodings | peps.python.org
  • 1