-1

間隔、行のインデントなど、スタイルについて心配する時間がなくなります。

プロジェクト間で異なるスタイルに適応する時間がなくなります。

なぜ言語はこの点で柔軟になっているのですか?非常に厳密なフォーマットを要求しないのはなぜですか?

4

2 に答える 2

2

まあ、良い教訓的な例は、パスカルと;コマンドセパレーターで何が起こったのかを見ることです.

Nicklaus Wirth (Pascal の設計者) が思いついたルールは;、ブロック内のステートメントを区切るために を使用するというものでした。これは、あいまいさを解決するために構文要素が厳密に必要とされる唯一の状況であるため、コンパイラの観点からは賢明です。さらに、それは一般的にコンマで既に行われているため、それを処理するコードがそこにあります。

問題は、それが奇妙なルールであり、人間のコーダーが頭を悩ませるのが難しいことです。また、変化に直面しても安定していません。ブロックの最後に行を追加または削除する場合は、セミコロンを取得しない行を変更する必要があります。ほとんどの Pascal ユーザーは、すべてのコーディング/デバッグ サイクルで最終的に、セミコロンが正しくなるまでコンパイラがエラーを吐き出すまでのすべてのフェーズに行き着きました。彼らはそれを嫌うようになり、ひいてはパスカルを嫌っていました。

これを、Pascal とその子孫が導入した比較的新しい強い型付けの概念と組み合わせると、非常に気難しい開発者が何人かいます。彼らは Pascal とその同類の束縛言語と規律言語を呼び始め、C のようなより寛容な言語に引き寄せられました。これは多くの優れた言語の成長を遅らせる効果がありました。これはすべて、優れた理論的概念を持つ誰かが彼の言語を PITA にしたためです。使用する。

後に設計された言語では、ニクラウス ワースは教訓を学び、セミコロンをセパレータではなくコマンドターミネータとして定義しました。もちろん、C の設計者はさらに一歩進んで、追加のセミコロンを有効な (ただし無視される) 構文要素にすることができました。

于 2011-05-17T15:39:33.617 に答える
0

おそらく、ユーザーが独自のスタイルを定義するオプション (これが一部のエディター規則によって強制されるかどうか) は、構文の一部として特定のスタイルを強制する言語よりも望ましいものです。ただし、特定のルールに関しては、一部の言語はわずかに厳密です。たとえば、Haskell には「機能」があり、特定の行を関連する前の行よりもさらにインデントする必要があります (この特定の言語機能の名前を忘れてしまいましたが、誰かが知っていると確信しています)。

于 2011-05-17T15:33:36.610 に答える