リアルとは?
なぜなら、Realはインタープリターの定義にすぎません。
マンダリンは英語よりも本物ですか?
- 確かに北京語は英語を話す人にとって特に有用ではありません
- 同様に、英語は北京語を話す人にとってはとてもナンセンスです
- 彼らが両方を話さない限り。
したがって、リアルは問題ではありません。言い換えましょう:
形式言語の代わりに疑似コードが使用されるのはなぜですか?
単純なVENNダイアグラムは問題を簡単に強調できます。英語および北京語話者であるすべての人間のセットは、英語または北京語話者のサブセットです。どの言語でも習熟するのに努力が必要なため、共通部分は通常、共用体よりもはるかに小さくなります。
プログラミングの教科書では、少なくとも1つの自然言語(教科書が書かれている言語)を理解していると想定できます。それ以外の場合は、より読みやすい別の教科書が選択されているため、これを想定しても安全です。結局のところ、1つの言語を学ぶことは十分に難しいです-2つはより難しいです。
これは、疑似コードを使用する最初の理由です。それは本を簡単に読むことができる聴衆を最大にします。これは、自然言語ですでに見られる確立された言語規則に従うことによって行われます。料理、数式などからレシピを言ってください。ギャップは、自然言語による簡単な説明で埋めることができます。または、写真付きの視覚システムへの最後の頼りにしないこともできます。
なぜ共通言語がプログラミング言語になれないのかについては。おなじみのプログラミング言語の例を使って書かれたプログラミングに関する本を読んで、どのくらいマンダリン(またはまだ話せていない言語)を学んだかを考えてみましょう。
教科書が達成するもの
2番目の理由については、教科書が達成しなければならないことを考慮してください。
- 彼らが自然言語を使用するだけでなく、外国語を学ぶのに煩わしい理由を説明します。
- 外国人の言語を読者が自分で話せるように説明する。
なぜプログラム
本のほとんどは、なぜあなたがこの外国語や類似の言語を学び、使用したいのかについてあなたを納得させる必要があります。これは、プログラミング自体の本質を議論することを意味します。
- どのように問題を特定しますか
- どのように問題を分解しますか
- データをどのように構築するか
- プロセスをどのように設計しますか
- 依存関係をどのように管理しますか
- 障害をどのように特定しますか
- もっと
これのほとんどは、マシン自体とは何の関係もありませんが、主に、プログラムを実現するためにミートウェアがどのように動作すべきかについての議論です。人間の宇宙の目標をリンクして、宇宙の問題をプログラムし、解決するために努力する理由を示す必要があるため、これはかなり複雑です。
プログラムの説明
2番目の教科書の成果は、言語の説明です。現在、ほとんどのプログラミング言語は、文法といくつかの意味規則で記述できます。浅い端には、JSONのような言語があり、3ページ程度でかなり完全に定義できます。より複雑な言語にはより大きな仕様が必要ですが、役立つために大部分は完全に理解する必要はありません。ただし、これらの説明は疑似コードです。彼らは自然言語の観点から正式な言語を指定します。違いは、これらの疑似コードが事前に指定されていることです。
正式言語でさえ、それ自体が(実行可能)疑似コードであることを考えると、アルゴリズムを説明するときに最も重要なのは何でしょうか。次に大きいコンテキスト。
- アルゴリズムには、そのコンテキストで妥当な目標があります。
- そのコンテキストにはいくつかの制約があります
- アルゴリズムは、目標を達成しながらこれらの制約を処理する方法の説明です。
どの時点でも、アルゴリズムが記述されている言語は重要ではありません。どちらかと言えば、アルゴリズムの成功にとって重要な操作はほんのわずかです。したがって、質問は次のようになります。
- アルゴリズムを理解するために、C ++ / C#/ Python / etcなどの形式言語の完全な仕様を解釈できるミートウェアプログラムについて説明する方が良いですか?
- または、アルゴリズムを理解するために必要な4つ程度のプリミティブを定義するだけです。
言語の学習が難しいことを考えると、読者はアルゴリズムを理解するために言語を学習/学習している必要があります。教科書の著者として、読者に何を尋ねればよいですか。