* プログラミング言語に関するアイデア #1
-(by [[K]], 2024.05.06)

** (0) 結論
-(もしこれから新しいプログラミング言語を作るなら)文字列を表すための記号を [" ~ "] にしたらどうだろうか?

** (1)
-日本語では引用符は「」で表されます。
--たろうは「こんにちは」といった。
-日本語の引用符は簡単に入れ子にできます。
--紙に「たろうは「こんにちは」といった。」と書いてください。

-一方で、プログラミング言語で文字列を表すための " は入れ子にすることを全く想定していません。
--printf("printf("hello\n");");  ←エラーになります。
-これは不便な仕様だと私は思います。
-もちろん内側のクォテーションを¥でエスケープすれば望みの結果は得られますが、三重や四重の入れ子にしようとすると、難易度は上がります。可読性はどんどん落ちます。
-こんなことになってしまったのは、引用符の開始と終了を同じ記号にしてしまったせいです。他のかっこ類と同様に、開始と終了が別の記号だったら、こんなことにはならずに済んだはずなのです。
-しかしそうはいっても、ではどんな記号を使えばいいでしょうか。新しい文字を発明すれば実現は容易でしょうが、それはとても大変です。今使われているキャラクターセットの範囲で、なんかうまいことできないかとずっと考えていました。
-それで思いついたのが、 [" ~ "] です。
--printf(["printf(["hello\n"]);"]);
-クォテーションが2文字になったので読みやすくはないかもしれませんが、しかし入れ子にできるのは大きいです。

** (2)
-どうしてこの記号にしたのかを書きます。
-既存の記号の使われかたを考えると、1文字で解決するのは難しいだろうと思いました。
--たとえば"を引用符開始記号、$を引用符終了記号にすると、以下のようになります。
--たとえば"を引用開始記号、$を引用終了記号にすると、以下のようになります。
---printf("printf("hello\n$);$);
--私はこれは読みやすくないと感じました。
-2文字にするのなら、入れ子関係の分かりやすいかっこ類の記号と組み合わせるのが一番いいと考えました。
-そうするともう候補はわずかです。
--(" ~ ")
--[" ~ "]
--{" ~ "}
--<" ~ ">
-この中から、誤解の少なそうなものを選びました。

* こめんと欄
-掲示板をご利用ください。→[[a23_bbs]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS