タイトル/名前 | 更新者 | 更新日 |
---|---|---|
読書メモ/"The Old New Thing" | msakamoto-sf | 2010-12-30 23:13:30 |
読書メモ/"Linkers & Loaders" | msakamoto-sf | 2010-12-30 09:32:07 |
Java/IOストリームメモ | msakamoto-sf | 2010-12-25 10:15:17 |
C言語系/呼び出し規約/x86/fortran | msakamoto-sf | 2010-12-24 16:10:10 |
技術/括弧の呼び方(プログラマ向け) | msakamoto-sf | 2010-12-24 10:16:54 |
C言語系/memos/構造体の初期化, enumリストの末尾カンマ関連 | msakamoto-sf | 2010-12-23 16:36:38 |
読書メモ/「オペレーティングシステム入門」(CQ出版社) | msakamoto-sf | 2010-12-23 15:04:02 |
読書メモ/「プログラマのための文字コード技術入門」 | msakamoto-sf | 2010-12-22 18:36:42 |
読書メモ/「Perlプログラミング救命病棟」("Perl Medic") | msakamoto-sf | 2010-12-21 19:20:03 |
読書メモ/"Perl Testing : A Developer's Notebook" | msakamoto-sf | 2010-12-21 12:35:21 |
MSDNのBlog, "The Old New Thing" のコラムをまとめた書籍で、電車に乗ってるときとかちまちまと読み進め、ようやく読了しました。「なんでWindowsの○○という機能やAPIは○○じゃないの?」という疑問に対して、歴史を絡めて丁寧に解説してくれています。邦訳の方は「Windowsプログラミングの極意」とタイトルに冠していますが、どちらかというとWindowsAPIや内部動作のトリビア集です。「へぇ~、こんな経緯があったんだ」と頷いたり、「あ~・・・なるほどねぇ」とニヤリとしたり・・・読んでて楽しい本でした。
書籍化された後も、Blogの更新は続いています。書籍に掲載されていないトピックも沢山ありますので、英語の技術系Blogが苦手でなければぜひ一度訪れてみてください。
UNIX a.out/ELF, Windows COFF/PE を中心としたオブジェクトフォーマット、それを作成するリンカ、ロードするローダの仕組みがまとめられている。
サポートサイト:
2010年現在、OpenWatcomでサポートされている。
2010年の時点のMSDNによると、現在は "__fortran" 呼び出し規約はサポートされていない。(obsoleted)
ただし、サポートされていないのはあくまでも "__fortran" という宣言であり、次のMSDNを見る限りでは "__stdcall" と "__cdecl" が Fortran <> C,C++ との間で使えるようである。
"__cdecl", "__stdcall" 共に引数を渡す順序は "右→左" である。ではFortran <> C,C++間はそれでOKかと思いきや、以下の記事では「"__pascal"呼び出し規約と同じ」とあり、これだけ見ると「左→右」の順序と読み取れる。
MSDNの記事の場合は"Visual Studio 6.0"時代の内容であるし、"The Old New Thing"とともにFortran処理系を特に指定していない。従って、実際にどのFortranでどの呼び出し規約をC,C++との間で使えるのかは、手持ちの資料だけでは正確には何も言えない。
2010-12-24追記:
"The Old New Thing"からFORTRANとCの相互運用について新しい記事が登場した。FORTRANでは関数の引数をリファレンス渡しにする必要があったり、配列のインデックスが1始まりになっていたり、複素数の扱い方などが紹介されている。
プログラマ向けに、英語での括弧の呼び方を簡単にまとめてみた。
・丸括弧
() parenthesis, parentheses(複数) (略称)paren round brackets Unicode : LEFT(U+0028)/RIGHT(U+0029) PARENTHESIS
・角括弧
[] bracket square bracket Unicode : LEFT(U+005B)/RIGHT(U+005D) SQUARE BRACKET
・波括弧
{} brace curly brace curly bracket Unicode : LEFT(U+007B)/RIGHT(U+007D) CURLY BRACKET
"curly"が頭に付くと"brace"/"bracket"両方使える。検索キーワードに使うときは注意。
・山括弧
<>
これだけ要注意。見た目が似ているけどUnicodeコードポイントが異なる文字があるので。
大なり・小なり(greater-than/less-than):
U+003C < less-than sign U+003E > greater-than sign
プログラマとしては、プログラミングのソースコードで使うのはless-than/greater-than signがメインになる。ただし、洋書など英語圏の資料に目を通していると以下に示すように "angle bracket" と表記している場合もある。"<"や">"の演算子について英語圏の資料をWebで検索するなら、"less-than" "greater-than"のキーワードに加え、"angle bracket"のキーワードも試してみると良いだろう。
例:
"perl less than greater than" "perl angle bracket operator"
数学向け(大なり・小なりとは別):
U+27E8 ⟨ mathematical left angle bracket U+27E9 ⟩ mathematical right angle bracket
英語圏での強調や引用などに使われる"chevron":
U+2329 〈 left pointing angle bracket (deprecated, see U+3008) U+232A 〉 right pointing angle bracket (deprecated, see U+3009)
日本語・東アジア向け:
U+3008 〈 left angle bracket (JISX0213, 1-1-50, 始め山括弧) U+3009 〉 right angle bracket (JISX0213, 1-1-51, 終わり山括弧)
構造体の初期化, enumリストの末尾カンマ関連のメモ集。
C99で追加された機能が含まれているため、GCCでは使えるがVC++で使えなかったりする。(VC++2010時点でC99未対応)
ある程度OSの中身やアセンブラ、CPUアーキテクチャ等の基礎知識を有する読者向けに、OSの役目や仕組みについてざっくりと総括したまとめ本。副題に「最新のLinuxカーネルを題材に読み解く組み込みシステム開発の常識」とあり、全9章の内、7~9章がLinuxカーネル2.6.8におけるデータ構造・メモリ・プロセス管理や起動処理について紹介されている。
CQ出版社のサイト:
前半の1~5章はOSの基礎やOSが管理する対象について解説されているが、Linuxなど特定のOSに特化しておらず、マイコンや組み込みシステムも視野に入れた一般的な解説となっている。組み込みシステムなどでOSをスクラッチで作る必要がある場合などに、メモリ・プロセス管理のアイデアを拝借するネタ元として使えるだろう。
i386アーキテクチャ上のUNIXやWindows系OSしか知らない読者にとっても、性能・機能が限定された組み込み環境向けのアイデアに触れることで視野を広げることができる。
先日購入し、読み終えました。符号化文字集合はJISX0208, JISX0213を中心に、文字符号化方式はShift_JIS, EUC-JP, UTF-8を中心として、濃密にかつコンパクトにまとめられています。またプログラミング言語における実装例としてJavaとRuby1.8/1.9を代表例として取り上げ、内部処理についても紹介されています。波線(WAVE DASH)や0x5C問題など、実際のシステム開発で突き当たる問題についてもその原理から解説されており、2010年現在、文字コードを学ぶにあたり「手許に置いておきたいお得な一冊」です。
EBCDICなどメインフレーム系の世界については取り上げられていない点だけ注意してください。
2006-7年頃に購入し、ずっと本棚で埃をかぶっていましたが、ようやく読み終えました。サンプルコードを打ち込んで学ぶというよりは、現場で手垢にまみれたPerlコードを引き継ぐときの心得や、最新のPerlへ対応させるときのポイント、注意点などがユーモアを交えて紹介された読み物になっています。
2007年に購入し、ずっと本棚で埃をかぶっていましたが、ようやく読み終えました。短いけどすぐに動かせるサンプルコードも豊富で、ページ数も多くなく、サクサク読み進めることが出来ました。