IT戦記

プログラミング、起業などについて書いているプログラマーのブログです😚

C++

駄文 - C 言語難しいなあ

C++

これを理解するのに数時間を要したよ orz 推移閉包を求める。 下半分は、無限ループ回避。←違った。もっかい読む 下半分は、グラフがループしている場合にそのループ内のノードは同じ bitset を持つことになるので、ループ内の全ノードに bitset をコピーし…

空のルールがあるとき、どうしよう

C++

こんなやつがあったら maybe_space: /* Empty */ | maybe_space WHITESPACE ; どうしようどうしよう。 考えながら書く 使うときは hoge: maybe_space fuga | piyo ; fuga: '1'; piyo: '0'; みたいな感じ たとえば パーサの状態が以下のような感じだったら . …

yacc

C++

ほげほげ ちょっとメモしますよ 定義 %% add: mul | add '+' mul | add '-' mul ; mul: una | mul '*' una | mul '/' una ; una: pri | '+' una | '-' una ; pri: '1' | '(' add ')' ; ルール ルールには $accept: add $end が追加される。(%start がないか…

CSS の構文解析と @-webkit-*** ルールの意味

はじめに あのDan Kogai 氏にも好評な噂の名著「Jythonプログラミング」がついに発売されるわけですが、皆様いかがお過ごしでしょうか。今日は Jython にちなんで、 CSS の構文解析のお話をしたいと思います。(関係ない) 知ってますか? Safari(などの We…

Mac のバイナリファイルについて調べる

ユニバーサルバイナリとは 今の理解は、 PPC 用のバイナリと Intel 用のバイナリをくっつけたバイナリファイルの形式。 こういう複数のアーキテクチャのコードを含むバイナリを「FAT バイナリ」や「マルチアーキテクチャバイナリ」という。 つまり、ユニバー…

上野氏++

C++

sysenter と int 0x80 の違いを詳しく教えてもらった! あと、タスクの切り替えの頻度の話とか、コンテキストスイッチの話とか。 みんな若いのにすげーなああ!

mmap の話

C++

今のところの理解 int fd; char * addr; fd = open("/Users/amachang/hoge", O_RDONLY); addr = mmap(0, size, PROT_READ|PROT_WRITE, MAP_FILE|MAP_PRIVATE, fd, 0); close(fd); こんな感じでやると、 hoge っていうファイルと addr から始まるメモリがちょ…

gdb の list コマンドの使い方がやっと分かった

C++

今まで (gdb) n 261 if(argc <= 1) (gdb) l 256 arch_flags = NULL; 257 narch_flags = 0; 258 all_archs = FALSE; 259 use_member_syntax = TRUE; 260 261 if(argc <= 1) 262 usage(); 263 264 /* 265 * Parse the arguments. (gdb) 「こんなちょっとのコー…

main の第三引数

C++

gcc や vc では main の第三引数って環境変数が入ってくるんですね #include <stdio.h> int main (int argc, char **argv, char **envp) { char **ptr; for (ptr = envp; *ptr != NULL; ptr++) { puts(*ptr); } return 0; } こうすると、環境変数が出力されます。知ら</stdio.h>…

C 言語の配列について

C++

僕の理解も相当間違ってたみたいですね 「 *s 」と「 s[] 」の違い - IT戦記 書いてよかった>< 書かぬは一生の恥になるところでしたね! ありがたい突っ込みありがとうございます>< 404 Blog Not Found:c - *sとs[]の違い http://d.hatena.ne.jp/PyTest/…

「 *s 」と「 s[] 」の違い

C++

沖林さんがんばれ! なんか、かわいそうになってきた><がんばってください! C/C++のポインタの機能--配列との関係 - builder by ZDNet Japan ところで 僕はちゃんと説明できるかな>< 少しでも言葉や概念が変だったら教えてください>< *s char *s = "h…

ruby のハッシュで使われている st_hash とは

C++

ここを見て hash関数 - 初学者の箸置 Ruby で使われている st.c ってなんなんだろうと思って調べてみた いろいろ使われてる ちょっとググったら、いろいろと使われているみたいですね Ruby Syck Oniguruma CPAN の File::MMagic::XS モジュール ライセンス …

駄文 - C 言語の勉強

C++

C で Hash table を作ってみた。 22 時から 4 時までの 6 時間でやっと完成。 orz 300 行くらい。まだまだ LL 脳が抜けない。 昔、仕事で使ってたんだけどなー。おっかしーなー gdb のプロになりたい。 C 言語はエラー処理が大変、あとデータのインスペクト…

C 言語をアセンブリ言語に変換する

C++

他にいい方法があるかもしれませんが 今はこうやってます。 $ `gcc -print-prog-name=cc1` sample015.c

マシン語やりたい!

C++

マシン語やりたいよおお! だって、普段パソコン使ってるけどパソコンのこと全然分かってないもん。 Windows も Mac も Linux も同じ CPU で動かせるのに、なんでバイナリが違うの?マシン語 = バイナリじゃない? ハードディスクを管理してるのは、OS なの…