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

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

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

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

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

Q&A

解決済

2回答

6066閲覧

物理行と論理行とは

aaaaaaaa

総合スコア501

プログラミング言語

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

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

0グッド

0クリップ

投稿2017/04/24 10:33

たとえば、継続行にマッチさせる方法について考えてみよう。データの仕様においては、複数の物理行が使われていても、改行文字の直前がバックスラッシュになっていれば、それら全体を一つの論理行とみなすようなものがよくある。

たとえば、次のようなものだ。
SFC=array.c builtin.c eval.c field.c gawkmisc.c io.c main.c /
missing.c msg.c node.c re.c version.c

詳説正規表現172pより

この変数?らしき英文の中に物理行継続行論理行があるみたいですが、具体的にどの部分のことを言っているのでしょうか。
また論理行や物理行について調べてみると、8~12年前の情報ではありますが、論理行が、改行コードを使って改行すれば、行が一個作れて、物理行は、改行コードを使わずにエンターキーなどで改行すれば一行作れる、という風な記述がありました。
一方で定義が曖昧であると記述してあるところもあり、質問することにしました。

物理行継続行論理行とはいったい何なのでしょうか。

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

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

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

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

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

guest

回答2

0

ベストアンサー

「論理行と物理行」は様々な文脈でそれぞれ意味が異なるので、違う文脈での説明文を見ても無意味です。

文脈1:
質問でお書きのような、「(プログラミング言語などで)文法上1行で書かないといけないものを、2行に分けて書きたい」ケース。
改行文字で区切られた物が物理行で、その物理行を行継続記号で繋いだ物が、論理行です。
行継続記号は言語により色々。質問文だとバックスラッシュとのことですね。
もちろん、行継続記号が無い場合は、物理行=論理行です。
論理行が複数物理行からなるときに、2物理行目以降の物理行を、継続行と言います。

バックスラッシュを行継続記号とすると、

A=0 ・・・・1物理行目、1論理行目 B=1+ \ ・・・・2物理行目、2論理行目 2 ・・・・3物理行目、2論理行目で継続行

( ・・・以降は説明文です。実際にはバックスラッシュは行末にある。)

Cのような改行が文法上の区切りの意味を持たない言語だと、物理行・論理行・継続行という概念は無いです。

文脈2:
エディタ画面で、画面サイズ/ウィンドウサイズより長い行を折り返して表示するケース。
改行文字で区切られた物が論理行で、画面上の行が物理行です。

ウィンドウサイズが幅20文字の場合:

one two three.

このウィンドウサイズを幅10文字に変更すると、10文字で折り返されるが、改行文字がテキストに挿入されるわけでは無い。

one two th ree.

単純に幅で折り返すエディタもあるし、折り返している事が目で見えるようになっているエディタもあります。

投稿2017/04/24 14:03

otn

総合スコア84538

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

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

0

正確・厳密な定義かはわかりませんが、プログラミングに関する話題ですとテキストの行を論理的な単位と考えるプログラミング言語の場合によく出てくると思います。

物理行という用語をあまり耳にしない気がしますがそのいわんとするところは「改行文字」で区切られた行といえると思います。見た目そのままの「行」のことですね。

一方論理行は「行に文法的な意味があるような言語」で「継続行」と同時に用いられ「論理的に1行と見做せる範囲」のことをいうと思います。例えばLinuxのシェルスクリプトは1行がコマンドの区切りとなりますが、

echo a b c

とかけば、この物理行1行が論理行1行でもあり、コマンドの単位と見做して実行されるわけです。しかし行が長すぎるとき複数の物理行に対して「あたかもそれを1行に書いたように」解釈させたい場合があります。そんなときに継続行の書き方が用意されていたりします。例えばLinuxのシェルでいえば

echo a
b
c

とかくと物理行3行で論理的には1行と見做してecho a b cと書かれているかのように実行されます。
上の例でいえば物理行3行で論理行1行分、そして物理行3行分の各行を継続行というかと思います。(継続行の定義はあやしいです。最初の2行あるいは、後ろの2行のことをいう場合もあるかも知れません)

投稿2017/04/24 10:53

KSwordOfHaste

総合スコア18394

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問