希哲13年3月15日

描主宇田川浩行K#F85E
上描き希哲13年(2019年)
03月16日 03:11
下描き希哲13年(2019年)
03月15日 00:11
利承
ライセンス
希哲館普通利承(KULクール

15時頃から2時間ほど散歩をした。

今日も良い閃きがあった。

一覧

=}{*}

情報技術用語って,初学者にとっては「抽象度が掴み辛い」というのが壁になりがちなので,「名前空間」を「名称空間」にするだけのことにも意義はあるのだと思う。

=}{*}

そういえば昔,「名間域 」(なまいき)とか「名前守蔽子」(なめえすぺいす,江戸っ子風に)とかまで考えたことがあったな。

=}{*}

よし,試しに希哲館では〈namespace〉の訳語として「名称空間」を採用してみよう。

=}{*}

訳語「名前空間」が気持ち悪いのは,「なまえ」という柔らかく日常的な大和言葉と,「空間」という漢語にちぐはぐ感があるからだと思う。導入がぬるっとしているというか,後のせサクサク感があるというか。「名称空間」だと平坦に非日常的な語感でまとまる。

=}{*}

もっと意訳していいなら,「名称域」とかにしたいくらいなのだが,流石に変え過ぎると読み替えが難しくなるので,まずは「名称空間」くらいで良いんじゃないかと思う。

=}{*}

これ,神経質なようだが,これからの情報技術教育を考えると馬鹿に出来ない問題だ。これまでのように,国語が苦手な技術者が触れるだけなら「名前空間」みたいなこそばゆい訳語でも構わないが,例えば普通の学校で子供たちに「名前空間」なんて言葉を教えたら,絶対に拒絶反応を起こすと思う。

=}{*}

ただ,「名前解決」とか,論組(プログラミング)のみならず普及しているし,これを是正するべきなのかどうか。希哲館の翻訳体系をこれから普及させていくことを考えると,ついでに改訳してしまうべきなのか。「名前」と「名称」,読み替えは容易だし混乱するというほどのことでもない。

=}{*}

ところで,「名前空間」という用語,すっかり定着してしまっているが,昔から結構気持ち悪い。たぶん,「なまえ」というのが大和言葉で,機械的な表現に調和していないからだと思う。「名称空間」ならちょっとマシになる。

=}{*}

似たようなことを繰り返し言うが,std:: を常に付けた方が間違いがないというのも,いちいち std:: を付けた C++ 交度(コード)は冗長で汚ないというのも,どちらも「まともな感覚」だ。それをトレードオフにしているのは紛れもなく C++ そのものの欠陥だ。

=}{*}

最後に :: を付けるのは単なる目印。例えば,台録(ディレクトリ)を表す時は dir/,函数を表す時は fn() などと一定の記号を付けた方が一目で分かりやすいし,dir 台録,fn 函数などと書くより簡潔になる。こういう記号を私は「知符」(tip)と総称している。

=}{*}

おととい「C++std:: を前に付けたところで実は全然厳格じゃない」と書いてから似たような話題が Twitter でも出てるな。std:: と ::std:: の違いって相対表記と絶対表記,場筋(パス)で言えば std/ と /std/ の違い。だから私は名前空間について厳密に言及するときは ::std:: という表記をしている。

=}{*}

色々な応司(OS)で動く仮想機の上で論組(プログラミング)言語を動かそうという人は多いが, のように,そもそも仮想機応司にしてしまえばいいという発想で作られた言語はまだ少ない。

=}{*}

std:: を付けないと紛らわしい,std:: を付けると面倒臭い。実はどちらも間違っていない。つまりこのジレンマから永遠に抜け出せないのが C++ の運命で,残酷かもしれないが,それこそ C++ を捨てるべき理由だと私は思っている。

=}{*}

C++ における std:: 付加問題は,理論上はともかく,実践上は可読性・記述性にかなりの悪影響を及ぼしている問題だと考えてきて, では「通称」という命名規約を導入したりして記述を大きく簡略化することに成功しているのだが,これから語彙が増えていくと名前の衝突は無視できない問題になる。その懸念はこの技術で上手く回避出来そう。

=}{*}

これは例えば,

#include <xtd+>

using namespace 相当機能の有効化

#include <xtd->

で無効化,さらに上位階層の設定は下位階層に引き継がれ,必要なら個別に指定出来るというもの。例えば,最初の例で原則有効化した後,

#include <xtd.net->

などとすることで部分的に無効化することも出来る。

=}{*}

昨日,Cμ 換配(コンパイラ)にシンボルテーブルから輪結(リンク)すべきライブラリを探索する機能(自動輪結)を加える,と書いたが,今日は魔法引括マジックインクルード)における名前空間制御の仕様がまとまった。

=}{*}

久しぶりに使って再確認したが,「参派」(さんぱ,サードパーティ)は我ながら名訳だと思う。 参加・参入の参と三の大字をかけて,音的にもぴったりで,カタカナ語の3分1以下に文字数を短縮するという。非の打ち所がない。

=}{*}

恥ずかしい話,似たような機能は換配(コンパイラ)の undefined reference to... 違了(エラー)を検出して再換配するという雑な実装をしたことがあった。

=}{*}

pragma でリンク指定する奴の問題は,書き手と換配(コンパイラ)に依存していることなので,この手法はむしろミュージアム外の参派(サードパーティ)ライブラリにこそ有効なんじゃないか。

=}{*}

というか,辞書的なものを作って,登録してあるシンボルを判定条件に自動的に付加すべきライブラリを検出するの,普通にあって良さそうだな。最初はミュージアム用のつもりだったのだが,後々汎用化出来るように設計しておくか。

=}{*}

Cμ 換配(コンパイラ)に,nm を使ってライブラリの自動選択をする機能を加えることにした。実装は明日。

=}{希哲13年3月15日のツイスト}

=}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}{*}
出力論組プログラム虎哲*イチ 1.01
制作・運営:希哲社
© K1-13 (2007-2019) KiTetuSha