パスワードを忘れた? アカウント作成
736273 journal

kubotaの日記: 番外編7: RFC320

日記 by kubota
番外編7

まずは kubota 訳から。

RFC 320: -X 形式のファイルテストのグルーピングの許可と、ファイルテストビルトインの追加
この RFC は、ちょうど Unix ユーティリティで単一文字スイッチをまとめて使うことができるように、ファイルテスト演算子を塊にすることを許可する、というものである。つまり、たとえば
-drwx $file
と書けば、それは実際には
-d $file && -r $file && -w $file && -x $file
のようなものを意味する、というもの。不運なことに、提案にあるように、この文法は端的に言って混乱の元スギ。名前つき演算子とサブルーチンを無効にできる必要があります。単項マイナスの後に空白を置くという、提案されている解決策は、面倒すぎるし反直感的すぎます。少なくとも、反文化的です。

じつは、うしろのほうは自信がありません。

ひとつずつ見ていきましょう。

  • RFC 320: Allow grouping of -X file tests and add filetest builtin
    RFC320番:-X ファイルテストと追加ファイルテストの組み込みのまとまりを許すこと
    いちばん問題なのが、and の解釈。and は等価なものふたつを結びつける役割をします。で、and の直後が add という動詞なので、and は動詞ふたつを結び付けているはず。and の前にある動詞は allow しかありません。というわけで、(allow grouping of -X file tests) and (add filetest builtin) という解釈になると思います。ところで、filetest builtin ってなんでしょう? たぶん、原文の続きを読んだら出て来るんだと思います。
  • This RFC proposes to allow clustering of file test operators much like some Unix utilities allow bundling of single character switches.
    このRFCは Unix のユーティリティに似たファイルテスト演算子の一団を許すことと、単一文字スイッチの塊を許すことを提案する。
    この解釈だと This RFC proposes to (allow ... utilities) (allow ... switches) という感じでしょうか。問題は、このふたつの並列の () () の間に and がないということと、ふたつめの allow の前に to がない、ということです。つまり、soramine さん訳になるためには、This RFC proposes (to allow ... utilities) and (to allow ... switches) でないといけないのです。ではどう解釈になるかというと、like 以下が節 (文の中に含まれる文) です。This RFC proposes {(to allow ... operators) much like (some ... switches)} です。つまり、{(some ... switches) するかのごとく (to allow ... operators) すること} をこの RFC は提案する、という感じです。
  • That is, if you say: -drwx $file it really means something like: -d $file && -r $file && -w $file && -x $file
    すなわち、もし -drwx $file と言えば、それは -d $file && -r $file && -w $file && -x $file というようなことを意味している。
    これは OK。
  • Unfortunately, as proposed, this syntax will simply be too confusing.
    不運にも、提案すると、この文法は単純に多くの混乱を引き起こす可能性がある。
    as はほんとに曲者です。have、make、put、など、単純な単語ほど、多くの意味があって、注意しないといけません。as + 形容詞 + as という構文がありますが、この後ろ側の as と同じだと思います。「~のように」という意味の接続詞で、本来、文が来るべきものです。だから、as + 形容詞 + as のあとにくるのは him や her じゃなくて he や she なんです。He is as rich as she (is rich). という感じかな。今回も、たぶん、as (it is) proposed, という感じじゃないかと思います。(まったく自信なし。でもぼくの感性はそう言ってる)。
    simply は、simple の副詞形なんで「単純に」という意味もありますが、「まったく」といった強調の意味もあります。日本語でも、「あいつはいったい何を考えてるんだ?」「いや、単に頭が悪いだけだよ」といった言い方をしますよね。ぼくはそんなニュアンスだと思ってます。
    too ~は「~すぎ」という意味です。too big は「大きすぎ」など。でも、confusing がうまく形容詞っぽい日本語にならなかったので、でびるまん的な日本語訳になってしまいました。すみません。「多くの」でもまあいいですが、too には「許容範囲を超えている」というニュアンスがあると思うので、kubota 訳では「すぎ」にこだわってみました。
  • We have to be able to negate named operators and subroutines.
    我々は名前演算子とサブルーチンを無効にすることができなければならない。
    たぶん、named operator とか named subroutine という概念が Perl にあるのだと思うのですが、分かりません。ちなみに、ここで name は動詞 (過去分詞、形容詞的に使ってる) ですが、動詞では「命名する」という意味です。過去分詞なので「命名された」「名前をつけられた」という意味で、転じて「名前がある」という意味に取りました。
    なぜそれを無効にしないといけないのか、はよく分かりません。たぶん、文法的に多義性が生じてしまうからでしょうが (たとえば、drwx という名前のサブルーチンがあったときに困る)。たぶん、この文の著者は、この記述だけで「へえ、そんな重大な問題があるのか。そりゃやばいなあ」と分かってくれる読者を想定しているのでしょう。
  • The proposed workaround of putting a space after a unary minus is much too onerous and counterintuitive, or at least countercultural.
    単項マイナスの後に一空白を入れる作業周囲の提案はとても面倒で反直観で、または少なくとも反文化である。
    workaround は、ぼくは「解決 (法)」とか「応急処置」くらいの意味かなあと思ってます。つまり、なぜかわからないけど、上記の問題はマイナス記号と drwx との間にスペースを入れると解決するらしいです。その解決法はダメっぽいんですが、最後の countercultural というのがどういう意味合いか、よくわかりません。というのは、文字通りだと反文化的、という単にけなすだけの言葉ですが、counterculture (対抗文化、反体制文化) というのが存在するので... それだと、誉め言葉にもなりえます。ハッカー文化もまた counterculture に属すと思うので、これを文字通りに訳すのはちょっと抵抗があるのですが... でも、これってけなしている意味にしか取れないですよねえ... で、kubota 訳にもそのへんのあいまいさを保存して、「反文化・的」とも「反・文化的」ともとれる「反文化的」という表記を選びました。
typodupeerror

あつくて寝られない時はhackしろ! 386BSD(98)はそうやってつくられましたよ? -- あるハッカー

読み込み中...