私のプログラミングの友人は、HTMLがマークアップ言語であり、C ++がプログラミング言語であるといつも言っています。私は彼らに違いは何であるかを尋ねると、彼らは私に合理的な答えを与えることはありません。
何がC ++をプログラミング言語と呼び、HTMLはそうではないのでしょうか?
私のプログラミングの友人は、HTMLがマークアップ言語であり、C ++がプログラミング言語であるといつも言っています。私は彼らに違いは何であるかを尋ねると、彼らは私に合理的な答えを与えることはありません。
何がC ++をプログラミング言語と呼び、HTMLはそうではないのでしょうか?
回答:
プログラミング言語は、命令をマシンに渡すように設計された表記法です。その定義では、C ++とHTMLの両方がプログラミング言語であり、Joseph Marie Jacquardが1801年に織機をプログラムするために使用した表記法も同様です。
しかし、データの構造化や記述に使用される言語の急増に伴い、プログラミング言語の定義は、アルゴリズムを表現できる言語のみを含むように移行しました。これは現在、より一般的な定義であり、HTMLやXMLなどの言語を除外しています。
現在の定義の中心にあるのは、チューリング完全性の概念です。ほとんどのプログラミング言語はチューリング完全であり、チューリング完全性は、プログラミング言語を他のコンピューター言語から分離する1つの重要な特性としてしばしば引用されます。これは一般的な経験則としては十分ですが、完全に正確ではありません。
コンテキストに応じて、必要な定義を選択できます。
編集:
さらに知られているように、言語の実装は言語自体に特性を与えません。たとえば、言語の仕様はチューリング完全言語を定義するかもしれません。ただし、この実装が完全にチューリングされていないということは、言語自体が完全にチューリングされていないことを意味しません(むしろ、実装が非準拠であることを意味します)。言語の詳細と言語の特定の実装の詳細は別々のものとして認識されるべきです。これが、解釈またはコンパイルされた言語などを呼び出すのが不正確な理由です。
「見ればわかる」というフレーズは、話者が観察可能な事実または出来事を分類しようとする口語表現ですが、カテゴリは主観的であるか、明確に定義されたパラメータを欠いています。この言葉は、ジャコベリスv。オハイオ(1964)でのわいせつに対するしきい値テストを説明するために、アメリカ合衆国最高裁判所のポッタースチュワートによって有名に使用されました。
わいせつなように、私たちはプログラミング言語を見たとき、それを知っていると思います。あなたはすでにC ++がプログラミング言語であり、HTMLがプログラミング言語ではないと判断したので、明らかにOPはそうです。
それでは、正式な定義を追求する目標は正確には何ですか?ヤニスは、最も人気のある定義であるチューリング完全性に欠陥がある理由をすでに大雑把に説明しています。「見たときにわかる」テストに反する分類につながります。
あなたが思いつく定義は、プログラミング言語ではないと感じるいくつかの言語につながることをあなたに伝えます。「プログラミング」言語はそうであると分類されます。または我々はすべての感触は、いくつかの言語にある「プログラミング」言語は以下のように分類されないようにされて。
なぜあなたの腸と一緒に行かないのですか?私は単純なヒューリスティックを使用します。プログラミング言語とは、私の意見では、私の意見では、プログラムを書くことを主な目的とする言語です。コンテンツをマークアップしないでください。XMLを変換しない。汎用プログラムを作成します。正式な定義を明確にしようとするよりも、見たときにそれを知っているだけで、そのような定義を試みることで得られる真の価値はありません。