タグ

2011年1月12日のブックマーク (4件)

  • もしも、コンパイラ専門書が読めたなら……(1/4) - @IT

    前回は字句解析について解説し、字句解析プログラムをいくつか作成しました。今回は、字句解析の結果取得できる字句リストを解析して構文木を生成する構文解析と、その結果を使ってオブジェクトコードを生成する方法について解説をします。 「構文解析」とは、いったい何なのか? 連載第4回で、プログラミング言語S1sはBNFを使って次のように定義しました。 <program> ::= main '{' <expression> '}' <expression> ::= <term>{ <opeas> <term> } <term> ::= <factor>{ <opemd> <factor> } <factor> ::= <number>|( <expression> ) <number> ::= <digit>{<digit>} <opeas> ::= + | - <opemd> ::= * | / <d

    もしも、コンパイラ専門書が読めたなら……(1/4) - @IT
  • Charming Python: Functional programming in Python, Part 3

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    Charming Python: Functional programming in Python, Part 3
    yohei-a
    yohei-a 2011/01/12
    "dlsym:dlopen されたオブジェクト・ファイルに含まれるシンボルのアドレスを取得する"
  • いやなブログ: リンクと同名のシンボル

    リンクと同名のシンボル C や C++ のプログラムで同じ名前のグローバルなシンボルが 2つ以上存在するとどうなるでしょうか。 Debian GNU/Linux sarge + GCC 3.3.5 での動作を見てみます。 静的リンクの場合 まず、次のようなファイル a.c があります。 a.c ではグローバルな関数 func() を定義しています。 #include <stdio.h> void func() { printf("func() in a.c\n"); } 次に、 b.c でも同様に func() を定義しています。a.c のものとよく似ていますが、 printf で表示されるメッセージは異なります。 #include <stdio.h> void func() { printf("func() in b.c\n"); } 最後に、 main.c では func() を呼び出

    yohei-a
    yohei-a 2011/01/12
    "動的共有オブジェクトを使ったプログラムでは、別々の .so ファイルに同名のシンボルの定義が含まれていてもプログラムは正常にリンク・実行できます。"
  • ホスト変数 - オラクル・Oracleをマスターするための基本と仕組み

    ホスト変数 SQL*Plus におけるホスト変数とは、ホスト環境に保管されている変数の事で PL/SQLSQL*Plus の双方から参照できる。 ここでのホストとは「ゲスト」と「ホスト」の位置づけにすると理解しやすい。 SQL*Plus を実行している環境における「ホスト」とは SQL*Plus というクライアントプログラムのコマンド・プロセッサになり、 ホスト変数は SQL*Plus が稼動しているローカルマシンのメモリ中に存在する。 SQL*Plus 上で実行される SQL コマンド、PL/SQL ブロックは データベースサーバーの処理言語(ゲスト)となる。 ゲスト変数 (注) ゲスト変数とは、ホスト変数と対比させるために作った造語ですから誰にも通じないです。 (検索エンジンにもヒットしません) ゲスト変数(ゲスト環境の変数)とは、SQL*Plus に招かれた?ゲスト言語環境にお

    yohei-a
    yohei-a 2011/01/12
    "SQL*Plus を実行している環境における「ホスト」とは SQL*Plus というクライアントプログラムのコマンド・プロセッサ"