updated 04 Nov. 2003
「コンピュータ用語の哲学」の恥かき
1.リファクタリング
英語refactoringが日本語カタカナ語「リファクタリング」になったとき、語義の視野狭窄が起きているようです。詳しくは、後日。
いや、英語世界でも今、refactoringは、単なるプログラミング〜コーディングのレベルで、変数名を変えるとか、クラスの階層やアクセス修飾を変える、そしてそれらの手直しのソース全体への正しい反映・伝播を指しているようだ。とくに、IDE(統合開発環境)製品の方面で。
リファクタリングの語義の、近年のこのような矮小化に伴い、新装版「アンチパターン」ではあえて、「再構想」という訳語をそのまま残しました。それは。ソフトウェアシステムの、アーキテクチャのレベル〜基本設計のレベルにおける、すべてを白紙に戻しての、文字通り再構想です。
2.カレントシェル/サブシェル
コマンドプロンプトに対しシェルスクリプトの名前(たとえばssc)をコマンドいたしますと:
ssc[Enter]
新たなシェルが起動されて、そのシェルがsscファイルに書かれているコマンドを実行します。これが、サブシェル(subshell,子シェル)です。sscというコマンドを受け付けたシェル、サブシェルを起動したシェルが、カレントシェル(current shell, 現在のシェル)です。
そこでたとえば、頻繁に使う長いcdコマンドをシェルスクリプト化したとします:
【シェルスクリプトsscの内容】
cd /usr/local/doc/mydoc/aug2002/funnybook
しかし、
ssc[Enter]
とコマンドしても、残念ながら、期待したcdは実現しません。このcdコマンドは、サブシェルの層で実行されるからです。
sscファイルに書かれているコマンドを、カレントシェルのレベルで実行させるためには、ドットコマンドというものを使います:
. ssc[Enter]
こうすれば、期待したcdが見事に実現します。
カレントシェルをcdさせてかつ、ドットの要らない、シェルスクリプトの書き方はないのでしょうか?。現在私は、模索中です。ご存じのかたは、教えてください。
3.ベースバンド/ブロードバンド
純粋な技術用語としては、ブロードバンド(broadband)はベースバンド(baseband)の対語です。そしてベースバンドとは、つねに一つの信号のみを(多くの場合無変調で)送る通信線です。家庭や会社内のコンピュータを、ほかの機器やほかのコンピュータと結んでいる通信線/通信帯域(LANの配線など)は、典型的にベースバンドの通信施設です。対してブロードバンドは、変調方式の工夫により、同時に複数の信号を送ります。
4.アリティ(arity)
今日のデータベースの圧倒的な主流は、関係データベース(relational database, リレーショナルデータベース)であり、それは次のような、ありふれた、二次元の表の集まりだ:
個人番号 氏名 性別 住所 電話番号 メールアドレス 生年月日 趣味
----------------------------------------------------------------------------------------------------------
1 山田 太郎 M 東京都世田谷区奥沢9-99-9 03-3333-4444 taro@mynet.com 26 Feb 1966 ハッカー行為
2 鈴木 花子 F 大阪市北区梅田1234-5 06-7777-8888 hanako@wador.com 03 Oct 1982 ハッカー狩り
3 中村 錦 F 札幌市手稲区大麻団地A234-5 011-111-0000 nisikin@mudo.ne 12 Apr 1979 ハッカー妨害
このような情報表現形式は、われわれの日常語では:
表(table)
行(row)
列(column)
欄(cell)
行数/項目数(number of rows)
のような言葉で説明する。
同じことを、データ構造の専門用語では:
データ集合(data set)
レコード(record)
属性/属性値(attribute/attribute values)
フィールド(field)
レコード数(number of records)
のように言い表す。
そして1970年代にCodd博士がうち立てた関係データベースの理論では、次のような言葉(集合論ゆずりの用語)を使う:
リレーション(relation)
タプル(tuple)
ドメイン(domain)
コンポーネント(component of a tuple)
アリティ(arity)
すなわち、アリティとは、一つのリレーションのタプルの数であり、たとえば上の表ならば、アリティ3のリレーション、あるいは、3タプルのリレーション、と言う。なお、日本語の文献の中には、タプルを「組」、アリティを「要素数」と訳しているものがあるが、いずれも一般的に普及している訳語ではない(と思われる)。
第一回(最終決定)と(030425)と第二回(公聴中,030807現在)(030805)のうち、適切でないと思われるものを、以下に列挙しておきたい(コンピュータ/ネットワーク用語に限定)。
アクセス | 接続 | ファイルに接続する?? |
インタラクティブ | 双方向的 | 双方向的な立ち上げ過程?? |
コミット | 確約する | データベースの更新を確約する?? |
| かかわる | データベースの更新をかかわる?? |
コンテンツ | 情報内容 | 情報内容配布システム?? |
(情報内容は、実体名詞になりえていない。) |
スキーム | 計画 | データベースの計画を変更する?? |
プロトタイプ | 原型 | 顧客にソフトの原型を見せる?? |
ライフサイクル | 生涯過程 | サーバ上のサーブレットの生涯過程は?? |
オンライン | 回線接続 | このソフトの回線接続マニュアルを見よ?? |
グローバル | 地球規模 | このcustomerID変数は地球規模に接続される??(アクセス->接続、を利用) |
コミュニティ | 地域社会,共同体 | それはLinux共同体の中で話題になっている?? |
タスク | 課題 | マルチ課題システム?? |
データベース | 情報集積体,情報庫 | 顧客情報を情報集積体で管理する?? |
フォーラム | 公開討論会,交流広場 | WebサイトにはJavaプログラミングに関する公開討論会/交流広場がある?? |
マルチメディア | 複合媒体 | ?? |
ユビキタス | 時空自在 | ?? |
ライブラリ | 図書館,資料館 | C言語の標準図書館関数?? |
リアルタイム | 即時,同時進行 | Linuxを即時OSとして使う?? |
ログイン | 接続開始 | rootとしてLinuxに接続開始する?? |
6.グリッド(grid), グリッドコンピューティング(grid computing)
ネットワークで結ばれた複数のコンピュータが、共同してひとつの処理を行う状態。それらのコンピュータの接続トポロジーは、必ずしもグリッド(格子状)であるとは限らない。
グリッドコンピューティングを狭義にとらえた場合には、ある種の複雑膨大な科学計算ぐらいしか用途が思い浮かばないが、逆に、インターネットのようなグローバルネットワークの上で、そのほぼ全メンバをグリッドとして構成する単一の最上位的超汎用的ネットワークアプリケーションが動いている、と想像すると、それはきわめてエキサイティングな未来的テーマとなる。もう、個々のクライアント/サーバアプリケーションや、それらを支える個々のプロトコルは要らなくなるのだ。全グリッドが統一総合サーバとして動き、個々のコンピュータはサーバ役の一端ならびにクライアントとしてグリッドの構成に参加する。極端な言い方をすると、誰もが自分自身にアクセスし、しかも世界全体にアクセスする。個は、部分であると同時に全体のビューである。
ここでは、Javaに関する詳しい説明は省略するが、そのようなグローバルな汎用グリッド構造は、JavaのJINIとJXTAを上位統合するシステムとしてもイメージできそうだ。
参考URL: http://www-106.ibm.com/developerworks/grid/
====end of contents===