1

実装ではなく、基本的にプログラムの動作を説明するプログラミング言語を人々がどのように説明するのかを尋ねたかったのです。実装の問題を無視する言語(たとえば、他の言語が同じことを異なる方法で行う異なるクラスまたは関数を持つ可能性がある単一のクラスまたは関数のみを持つ)、代わりに完全に自動化された最適化に依存する言語。

「宣言型」は正しい用語ですか?多分「意図的」?「目標志向」も同様の意味を持っているようです。多分何か他のもの。私がデザインしているLimaと呼ばれる言語がこの説明に当てはまるので、疑問に思っています(http://www.btetrud.com/Lima/Lima-Documentation.html)。Stack Overflowは答えのあるものが好きなので、答えは最も洞察に満ちたコメントを持っている人に行きます。

私はまた、このアイデアがポール・グレアムの百年言語のアイデアにどれほど近いと人々が考えているのか疑問に思っています:http: //www.paulgraham.com/hundred.html。文字列を文字のリストとして扱い、より一般的な「ハッシュテーブル」(つまり連想配列)を優先して配列を取り除くことで彼が提案することは、私が最初にそれを思いついたときにリマでしたことです。

リマの背後にある基本的な考え方は次のとおりです。

  1. 値ベースのプログラミング-値の「タイプ」を気にするロジックを取り除きます。リマにはタイプはなく、値は単なる値です。型は言語にまだ存在しますが、変数が取ることができる値を制限するためだけです-呼び出すマルチメソッドを変更することはできず、値のメモリフットプリントを指示しません。

  2. 記述的プログラミング-コード自体でコードを最適化する必要性(そして実際には能力)を捨てるプログラミング言語について私が上で説明したこと(むしろ最適化は自動化されたオプティマイザーで行われます)

  3. 総合的な言語拡張性-言語自体の言語で任意の構成を書き込む機能(たとえば、「sin」関数を書き直すだけでなく、「if」ステートメント、ループステートメントを書き直し、使用可能なカスタムDSLを作成することもできます言語内および他のDSL内。

4

1 に答える 1

1

私はそれを仕様と呼んでいます。だから私はそれを指定言語として分類すると思います。

しばらく前に、 Prologでいくつかのプログラムを開発する必要がありました。Prolog では、関数が何を解決する必要があるかを指定するだけで、エンジンがコードを生成します。嫌だったけど。

于 2011-08-17T19:11:58.313 に答える