78

最近まで考えたことはありませんが、なぜ文字列と呼ぶのかわかりませんstrings。私は.NETプログラマーですが、文字列の概念は事実上すべてのプログラミング言語に存在すると思います。

stringプログラミング以外では、単語や文字を説明するために使用される単語を聞いたことがないと思います。「Define:string」の簡単なグーグルは、文字、単語、またはプログラミングに関連する性質の概念とは何の関係もない一連の定義を生成します。

私の推測では、当時、文字列は実際には特定の長さの文字の配列であり、多くの場合、末尾に区切り文字がありました。しかし、「文字配列」から。への自然な遷移は見られませんstring

誰かが私たちが文字列と呼ぶ理由についていくつかの洞察を提供できますかstrings

4

10 に答える 10

39

私の仮定は常に、プログラミング用語は「文字列」という単語の次の定義(メリアム・ウェブスターから)に由来するというものでした。

(1):一列に並べられた一連のもの<車の列><名前の列>

(2):一連の同様のアイテム(ビット、文字、または単語として)

プログラミングでの文字列は単に文字の順序付けられたシーケンスであるため、これを「文字列」(または単に「文字列」)と呼ぶことが最も可能性の高い起源のように思われます。

于 2009-05-18T22:59:21.943 に答える
33

このリファレンスから:

1971年のOED(p。3097)は、1898年1月11日のミルウォーキーセンチネル(セクション3、p。1)の出典について、1891年の世紀の辞書を引用しています。プリンタは、生成したテキストを長い文字列に貼り付けます。(おそらく、彼らは言葉ではなく、足で支払われました!)引用は、コンポジターが1時間あたり1500(文字?)以上を作成することは珍しいことではなかったと述べています。

于 2009-05-18T23:02:14.340 に答える
14

ACMの参考文献を検索すると、1960年代に、文字列という単語がコンピュータサイエンスでその意味を獲得したようです。最初の文字列は、一般的な種類のシーケンスまたはリストです。たとえば、1958年の記号の文字列を処理するためのコマンド言語です。

この記事では、1964年の「文字列」について明示的に言及しています。

残念ながら、料金所の裏にある全文にアクセスできません。

于 2009-05-19T07:31:21.920 に答える
12

「文字列」は、プログラミング言語で採用されるずっと前から数学者によって使用されていたと私は推測していました。チューリングマシンは弦を効果的に操作します。チューリングはこの用語を使用していなかったかもしれませんが、数十年前にオートマトンの教科書の至る所で使用されています。

私が見つけた最初の参考文献は、AMSの会報の論理学者EmilPostによる1944年の記事「帰納的可算の正の整数のセットとその決定問題」のGoogleブックスの断片でした。幸いなことに、AMSは完全な記事のオンラインアーカイブを無料でダウンロードできます。リンクは次のとおりです:http://www.ams.org/journals/bull/1944-50-05/S0002-9904-1944-08111-1/S0002-9904-1944-08111-1.pdf

彼がコンピュータサイエンスで使用されている従来の意味での「文字列」を使用していることは疑いの余地がないと思います。P. 286「作業目的で、文字bを導入し、11b1bb1などの1とbの「文字列」を考慮します。「b1bPはP1bb1を生成します」などの文字列に対する操作は、通常の操作と呼ばれます。この特定の通常操作はb1bで始まる文字列にのみ適用可能であり、派生文字列は、最初に最初のb1bを削除し、最後に1bb1をタックすることによって、指定された文字列から取得されます。したがって、b1bbはb1bb1になります。

于 2011-06-22T00:12:14.860 に答える
7

これは、元々はデータ値のシーケンスを意味していたためだstringと思います。「これらをつなぎ合わせるだけです」など。これらの値は文字である必要はありませんでした。この一般的な概念の非常に一般的な使用法の1つは、たまたま文字のシーケンスであり、これが単語の一般的な意味として引き継がれました。

于 2009-05-18T23:00:05.407 に答える
7

コンピューティングで私が見つけた最初のリファレンスは、1963年3月のMETEOR: MITのAIラボのDanielG.Bobrowによる文字列変換のためのLISPインタプリタです。

ただし、定義15d。オックスフォード英語辞典には次のようなものがあります。

計算レコードまたはデータの線形シーケンス。

...そして1956年のJournalofthe Association for Computing Machineryからの最初の引用:

完全にソートされたシーケンスが取得されるまで、制御フィールドのストリングを前後にシャトルするための領域が確保されます。

この使用法は、当然、定義15cに続くものです。

算数。、など。明確な順序での一連の記号または言語要素。

...そしてClarenceIrvingLewisとCooperHaroldLangfordSymbolicLogic(1932)で最初に使用されました:

命題は、偶然を除いて、一連のマークや一連の音ではありません。

これは、他の多くの、はるかに初期の行の定義に続くものです。

于 2011-05-30T20:07:23.510 に答える
3

この単語は元々、要素の特定の順序が重要ではない値のセット(たとえば、測定値のランダムなサンプルのセット)と、順序も保持されている場合にのみ意味を保持できる別の値を区別するために使用されていました。元々、文字列は任意の種類の値のセットである可能性がありますが、メインフレーム後の時代には文字列が最も一般的な種類であるため、値が文字であるという事実が「デフォルト」になりました。

于 2009-05-18T23:18:31.763 に答える
1

Javascriptの歴史についての講演で、ダグラス・クロックフォードは「誰も知らない」と言って、いくつかの選択肢を示してい ます。http ://www.youtube.com/watch?v=RO1Wnu-xKoY#t=2989

その中に、コンピュータの歴史の中で「文字列」としての一連の文字への最初の参照があるとされるレポートを見つけました。pdfの4ページの右上の列にあると思います。番号は47です。

http://web.eecs.umich.edu/~bchandra/courses/papers/Naure_Algol60.pdf

于 2013-11-07T11:56:11.883 に答える
1

文字列は、個別のオブジェクトのシーケンスです(通常はchar)。

それを考えると、おそらく「真珠の糸」に関連する比喩に関係しているのではないかと思います。文字列の各ビーズは1文字です。

于 2014-07-26T02:10:52.150 に答える
-2

これは、実際にはchar型要素の配列であるため、文字列と呼ばれます。

そうは言っても、それらはこの配列を介して「つなぎ合わされている」(またはつなぎ合わされている)ので、「ひも」になります。

于 2009-05-18T22:58:37.983 に答える