タグ

ブックマーク / alohakun.blog7.fc2.com (10)

  • ホワット・ア・ワンダフル・ワールド 人間が情報を与えるか,機械が推論して情報を増やすかという違い

    型宣言と型推論とか,手動メモリ管理と GC とか,要するに全部,人間が手で情報を与えるか,機械が推論するかということに一般化できると思う. んでまぁ,一般にうれしいのは,最初のプロトタイプは人間が不必要なことまで考えなくても動いてくれて,後々必要になってきたらボトルネック部分に情報を追加してあげると,さらに最適なコードが出る,ということをインクリメンタルにやっていけるようなモデルだと思う. その点,手続き型言語ってのは,細かいところまでを最初からいきなり全部指定しないといけないから,人間の脳に対する負荷がデカいし,柔軟性も失われてしまうし,機械がプログラムの意味を変えないで最適化できる余地も無くなってしまう.というようなことは,これまでにも散々書いてきたことなので,まぁ良いとして. いろいろ気になった記事があったので,単なるメモ. lethevert is a programmer のコメ

    yuiseki
    yuiseki 2009/04/19
  • ホワット・ア・ワンダフル・ワールド kzm-arm11-01 のシリアル通信プログラムの ROM 化

    会社の kzm-arm11-01 という現役のボードを触っていました。 これは freescale の i.MX31 (arm1136 core) という、マニュアルだけで 2400 ページぐらいある多機能な石 (巨大 PDF 注意) を積んでいて、ペリフェラルも HDD とかカメラとかタッチパネルとか SD カードとか AUDIO とかいろいろ付いてる高機能評価ボードで、パソコンがそのままマイコンチップになったようなものなので、シリアルポートを使えるようにするだけでもえらい大変でしたが、ようやく ROM 化まで漕ぎ着けました。 最低限のハードウェアの初期化 (クロックとか DRAM とか) と、UART1 につながっているシリアルポートの初期化しかしてません。今回は .data セクションが空 (.bss セクションしか使ってない) だったので、ROM から RAM への転送さえやってま

    yuiseki
    yuiseki 2008/12/21
  • ホワット・ア・ワンダフル・ワールド ゲーデルと 20 世紀のロジック vol.1

    ゲーデルと20世紀の論理学(ロジック)〈1〉ゲーデルの20世紀 だいたい読み終わりました.だいたいというのは,最後の 7 ページ 「計算可能実数と計算可能(不)連続関数」のところが,解析学さっぱり人間の私にはちゃんとフォローできなかったという (苦笑) vol.4 の集合論とプラトニズムは未だにさっぱり読めてないんですが,これは 20 世紀のロジックの歴史についての巻なので,それほどテクニカルな部分は無くて,私でも普通に読めました. Lion's Book もそうなんですが,現在では正確無比なところまで磨き上げられた巨大システムである UNIX やロジックの体系なども,その初期は,いろんな人が悩んだり間違えたり誤解したり試行錯誤して作ってきた,人間が作ったものなんだなぁ,という感慨を得ることができるです. 日にゲーデルの業績が導入されてきたあたりの話など,昔は当に海外の情報や論文を得

    yuiseki
    yuiseki 2008/08/20
  • ホワット・ア・ワンダフル・ワールド セマンティクス

    soutaroにっき 2008-05-30 ■セマンティクス ひげぽん OSとか作っちゃうかMona- 2008/05/30 セマンティクスって? セマンティクスを議論するためには,計算モデルを決めないといけません. 計算モデルが決まれば,状態の表現方法が決まり,「計算」という概念が決まります. 計算というのは,状態変化の列のことです. 計算が決まれば,計算とプログラムの対応関係を決定することができます. その,対応関係のことが 「意味論 (semantics)」だと思います. 任意のプログラム空間 P 内のプログラム p ∈ P と,任意の計算空間 C 内の計算(状態の変化列) c ∈ C の組 <p, c> が意味論という気がします (いや,メチャクチャテキトーで,個人的なイメージですけど) ここらへんを真面目に考えているのは,たぶん等価変換計算モデル(Equivalent Trans

    yuiseki
    yuiseki 2008/06/01
  • ホワット・ア・ワンダフル・ワールド Debian GNU/linux 上で win32api プログラミング

    wine と mingw-gcc パッケージで簡単にできるんですね. # apt-get install mingw32 mingw32-binutils mingw32-runtime こんな感じのコードが普通にコンパイル,実行できました. /* 文字コード cp932  で保存 */ #include <windows.h> int WINAPI WinMain(HINSTANCE hInstance,                    HINSTANCE hPrevInstance,                    PSTR lpCmdLine,                    int nCmdShow) {   MessageBox(NULL, "こんにちは,Win32API!", "タイトル", MB_OK);   return 0; } $ i586-mingw

    yuiseki
    yuiseki 2008/04/14
  • ホワット・ア・ワンダフル・ワールド アルゴリズミックデバッギング

    研究グループの内輪の研究会がありまして,ET プログラムの自動デバッギングの話が面白かったです. (人間が頭で考えて,直接ルール (プログラム) を手書きした場合用.また,原理的に,形式的仕様記述から自動生成されたプログラムは,仕様に対しては 100 % バグが無いわけですが,それとは別のレイヤーとして,生成されたプログラムが「人間の直感的意図 (ここはインフォーマル)」と異なる挙動を示した時には,仕様のデバッグが必要になってくるので,さらに高度な研究が必要になってくる) その研究自体の詳細は (私の研究ではないので) 書けないのですが.既存研究との比較として挙げられていた,サーベイペーパーが,これまた興味深かったです. Josep Silva, "A Comparative Study of Algorithmic Debugging Strategies", 2007 論理プログラムや

    yuiseki
    yuiseki 2008/03/22
  • ホワット・ア・ワンダフル・ワールド 2 つの原理と文化

    最近のいまさら過ぎる Y コンビネータネタとかが 100 近いブクマを集めている様子とかには,正直辟易していたのですが. (あんたらもしかして,ポール・グレアムの VC (http://ycombinator.com/) の名前の由来とかを,今まで知らなかったの ? とか.Web 2.0 プログラマ (?) 向けの VC のような気がするのに… これで,VC の面接の質問の一番最初が 「我々の名前の意味を知ってますか ?」 とかだったら皮肉過ぎる w まぁ,MIT とかスタンフォードとかの計算機科学部を出てれば 100 % 知ってるだろうし,そういう人たち対象なのでしょうが) 2005 年とかにも話題になって,sumii さんとかが同じようにネタにしてたんですよね.Y コンビネータとか,基礎的な計算機科学の概念を勉強する最大の価値は,何度も定期的に繰り返されるブームに踊らされないで済むとい

    yuiseki
    yuiseki 2008/01/31
  • ホワット・ア・ワンダフル・ワールド VIM-LaTeX 良いかも

    LaTeX の入力支援環境と言えば,Emacs の YaTeX (Yet Another LaTeX mode for Emacs ; 野鳥(作者は,日人の方らしいです)) が非常に有名で,普段は VI 使いでも,LaTeX する時だけは Emacs + YaTeX (Windows な人ならば xyzzy + KaTeX でしょうか?)だなぁ,という人も多いはず. しかし私は,VIM 以外ではあまり文章を書く気にならないので,どうしたもんかなぁ… と悩んでいたところ,VIM-LaTeX という,VIM のマクロ集を知りました. # Emacs は,確かに高機能で凄いと思うのですが,何かゴテゴテした感じがして,生理的にあまり好きではありません… エディタはエディタ,と割り切りたいのです (^ _ ^;) # VI 系の,使えば使うほど手に馴染み,最小の動作で大概のことができるようになると

    yuiseki
    yuiseki 2008/01/23
  • ホワット・ア・ワンダフル・ワールド 変態的なマクロと自己書き換え

    革命の日々! : alternative マクロと自己修正コード C 言語で,っていうか,アセンブリ言語で自己書き換えプログラミングしてますよ,奥さん w 実行時に,自分自身を置き換えて最適化を行う機械語列 w 萌える w どうだろう? 思ったよりも、ややこしかったのではないだろうか? 元を正せばマルチプロセッサ同期命令などという基的な命令を P6, Pentium4などという超最近に追加するIntelが悪いのだが、 素直にコンパイルオプションなぞにしてしまったら、ディストリビュータはきっと Pentium4をOFFにしたGenericカーネルを配布しだして遅くなるし 条件分岐命令なんぞいれた日にゃあ、目も当てられない速度になるのは請け合い。 ってことで、かなり強引な手法がとられている。 普通のLinuxでは実行コードは書き換え不可なので、自己修正コードをつくるのはかなり難儀なのだが、そ

    yuiseki
    yuiseki 2006/12/17
  • ホワット・ア・ワンダフル・ワールド 質問です.C 言語はだいたいマスターしたつもりです.次はどんな言語を学べば良いでしょうか ? できれば C 言語に近く,かつ近代的な機能も加わっ��

    凡庸な回答 : やはり C++Java でしょうか ? ([どうでもいい] 0 ポイント) 普通の回答 : AWK か Perl をお勧めします.C 風シンタックスで,C では面倒な仕事が簡単に片付けられるようになりますよ ([参考になる] 10 ポイント) 先進的な回答 : C 言語にこだわらず,思考の幅を拡げるためにも,なるべくいろいろな言語をためした方が良いですよ.今なら ML か Haskell をお勧めします.日語のも出ましたし ([参考になる] 15 ポイント) 模範回答 : Alef か limbo をお勧めします.ついでに OS も,Linux とか BSD とか Windows みたいな古くてつまんないのは捨てて,plan9 か Inferno にしましょう ( [素晴らしい回答] -100 ポイント) Plan9 / Alef ってのは,UNIX / C を作

    yuiseki
    yuiseki 2006/09/03
    それPla
  • 1