プログラミング言語が正式なプログラミング言語であるとはどういう意味ですか? また、どの言語が正式なプログラミング言語ですか? また、非公式のプログラミング言語はどれですか?
私はまだ良い説明を見つけていません。
プログラミング言語が正式なプログラミング言語であるとはどういう意味ですか? また、どの言語が正式なプログラミング言語ですか? また、非公式のプログラミング言語はどれですか?
私はまだ良い説明を見つけていません。
すべてのプログラミング言語は形式言語であるため、「形式プログラミング言語」について話すことは私にはあまり意味がありません。(または、誰かが非公式のプログラミング言語を知っていますか?)
形式言語は、数学的に正確な構文規則を持つ言語です。または、より正確には、それはいくつかのアルファベット上の単語のセットです。たとえば、文字とa
、で構成されるアルファベットを使用する場合、このアルファベットの形式言語はセット{、、、}になります。もちろん、そのような言語はあまり役に立ちません。重要なのは、適切な一連の構築ルールを使用して、CやPostScriptなどの言語を作成できるということです。b
c
a
aa
aba
ca
「構築ルール」については、形式文法(CSSの文法を参照)、正規表現(RFC 822で定義されている電子メールアドレスのこの豪華な正規表現を参照)、オートマトン、または一般的なアルゴリズムのいずれかです。
少しでも理解できないと感じても、絶望しないでください。これはあまり良い説明ではありません:-)形式言語の概念の背後には多くの考え方があります。ウィキペディアのエントリを消化して、さらにチュートリアルや本を探すことをお勧めします。楽しく、コンパイラの背景、正規表現、チューリングマシン、その他のデジタル人類の驚異について多くを学ぶことができます。
フォーマルとは、明確に定義されていることを意味します。実行可能プログラムの定義に使用できるすべてのプログラミング言語は、マシンが理解できるように適切に定義する必要があります。
それは「形式言語」ではなく、プログラミングの形式的な方法です: Wikipedia . 特定の言語である必要はなく、仕様を記述してコードを検証する方法が必要です。
形式言語は、整形式であることだけを考慮した言語です。つまり、十分かつ必要な条件は、その規則を遵守することです。ルールの例:
たとえば。10 進数の言語を {x | 先行ゼロのない有限の数字のセット}。(簡単に言えば、小数は一連の数字を意味します。)
したがって、上記の規則を含む言語が形式的である場合は、指定された規則に従う必要があります。
しかし、実際の使用法では、言語が 001 を 10 進数として扱う場合、プログラミング言語は形式的ではないと結論付けることができます。これは、プログラミング言語が定義する規則セットに厳密に従っていないためです。
通常、言語パーサーはこれらのルールをチェックします。したがって、正式な言語は常に整形式でなければなりません (独自の規則に厳密に従う)。
ウィキペディアからの抜粋です
「John C. Reynolds は、形式仕様言語は、実行を目的とした言語と同じくらいプログラミング言語であると強調しています。また、コンピュータの動作に影響を与えるテキストやグラフィカルな入力形式でさえもプログラミング言語であると主張しています。通常、チューリング完全ではなく、プログラミング言語の概念を知らないことが、入力形式の多くの欠陥の理由であると述べています。」