質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Q&A

解決済

4回答

12714閲覧

コンテキストとは

aaaaaaaa

総合スコア501

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

0グッド

0クリップ

投稿2017/05/08 10:28

英単語では、文脈を意味する言葉ですが、情報処理においてはどのような意味合いを持ちますか。文脈と言われても情報処理の世界に置き換えて考えるには難しいです。
一応、"状況に応じて異なる動作を行うもの"を指す、という説明を見かけたことがありました。しかし、このような理解で大丈夫なのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

こんにちは。

それこそ「コンテキスト」と言う言葉が使われている文脈によります。

(プログラミング)言語理論には、文脈依存文法等の定義があり、この分野ではコンテキストの意味が厳密に定義してあったと思います。

スレッド等が動作している時についても、コンテキストと言う用語が使われます。コンテキスト・スイッチと言う言葉が有ります。学術用語ではないのであまり厳密には定義されていないと思います。

後、冒頭で述べたように普通に自然言語で表現する「その単語の意味は文脈による」等もありますね。

取り敢えずこの3種類に思い当たりました。(他にもあると思いますが、パッとは出てきません。)

投稿2017/05/08 10:46

編集2017/05/08 10:48
Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aaaaaaaa

2017/05/10 11:02

ご回答有難うございます。申し訳ありません。コンテキストとは直接関係はありませんが、スレッドというのは、シングルスレッドやマルチスレッドと呼ばれるようなタスクやプロセスより細かい処理単位のことを指しますか。
Chironian

2017/05/10 11:35

その通りです。
guest

0

ベストアンサー

大変重要な疑問です。
ですが「コンテキスト」は様々な局面で使われる意味の広い言葉です(全体的に通じる根底の意味はもちろん共通していますが)。どういう文脈の中で出てきて解釈に悩んだのか、もう少し詳しく書いていただけると、あるいは納得のいく説明ができるかもしれません(といいつつ「文脈」という言葉を使ってしまいました)。

--
(追記)
具体例その1:
プログラムをコンパイラが読み進んでいく際、同じ記述が出てきた場所によって全然違う意味になることがあります。
例えば(C言語やその仲間の言語のことはわかりますか?) ';'は文の終わりを意味することもありますし、for文のカッコの中では3つあるセクションの区切りを意味します。これは、コンパイラが読み進むときに「for文のカッコの中」というコンテキストを意識していて、「今はfor文の中だからこれはセクション区切り」と判定しているということです。

具体例その2:
シェルでコマンドを打つとき、今カレントディレクトリがどこだかによってコマンドの実行結果は変わってきます。言うなればカレントディレクトリは(その他にログインユーザー名だとか環境変数だとか、実行結果に影響を与えるすべての背景情報は)コンテキストです。

具体例その3:
文の実行が背景情報の影響を受けるのはシェルで打つコマンドだけでなく、プログラムコードの中の文も同じです。
例えばWindowsのデスクトップアプリを書いている場合など、UIの操作のほとんどはメインスレッド以外で実行するとあまりよろしくない結果になります。ということは、このメソッドがいまどのスレッドで実行されているか、というのは重要なコンテキスト情報だということになります。

以上のような実例、どれかかすっていたでしょうか。

投稿2017/05/08 10:49

編集2017/05/08 13:40
yuba

総合スコア5568

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aaaaaaaa

2017/05/10 11:00

ご返答有難うございます。質問文にある通り、てっきり汎用的な意味があるのかと思っておりました。特に情報処理の分野においては。しかし回答を拝見するとこんなにたくさんの意味を持っていたのですね。 質問に至った経緯は、詳説正規表現第三版の176頁にて、DFAエンジンと比較しNFAエンジンが対応している機能をいくつか説明している表の脚注に “NFAエンジンは、DFAがサポートできないさまざまな機能をサポートできる。特に重要なものを挙げておくと、次のようになる。 <中略> ●先後読みなどのゼロ幅マッチ ※ <中略> ※脚注※lexは後続コンテキストをサポートする。これは、正規表現の末尾にゼロ幅の肯定の先読みを付けるのと同じことだが、一般化して組み込みの先読み機能として使うことはできない。” と記述してあって、正規表現のコンテキストってなんなんだ、というところから始まりました。
yuba

2017/05/10 11:02

では実例1に該当しますね。 肯定先読みのことはわかりますか?
aaaaaaaa

2017/05/10 11:07

ご返答有難うございます。肯定否定の先後読みは、学んでおります。 なるほど、1に該当するのですね。
guest

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

英文中で「give me a bit more context to understand it well」などと私も使ったりしますが、しっくりくる日本語がないなぁと思いました。「本筋のまわりを流れている情報群」といったイメージです。

データベースへの接続要求時のコンテキストであれば「接続したいのは分かるけどあんた誰でどのインスタンスにつなぎたいのよ?」といったデータベース側からみて状況を把握するための情報群。SSLでデータ通信時のコンテキストであれば確認した証明書や合意した暗号化形式等の今までの経緯が詰まった情報群。

私の理解はそんな感じです。

投稿2017/05/09 00:58

YouheiSakurai

総合スコア6142

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問