web-dev-qa-db-ja.com

静的型付けと動的型付け

趣味で暇なときに自分のプログラミング言語を開発しています。インタープリタ型言語です。現在、変数の構文は次のとおりです。

%<variable> = <value>

ここにいくつかの例があります:

%test = 10
%somevar = "Hello World"

現時点では、タイプに関係なく、上記のように変数として宣言できます。必要に応じて、プログラムを介してタイプを変更することもできます。

私はコンピュータサイエンスを勉強したことがないので、静的型と動的型の長所と短所をよく知りません。これが私の質問です:

  1. 動的型を使用してプログラミングする方が速いですか?
  2. 静的型付けを使用することに大きな利点はありますか?
  3. この構文は静的言語に適していますか?
  4. 作成時に変数の型を横に書くようにする言語で、実行時に変数の型を変更できるようにする必要がありますか?
  5. 静的型付けと動的型付けの両方を許可する必要がありますか?

構文例:

%somevar int = 10
%another str = "Hello World"

興味があれば、ここに私のGitHubへのリンクがあります: https://github.com/reedoolang/reedoo

1
Francis

あなたの質問に対する良い、明確な、決定的な回答があるかどうかはわかりません。私は助けたいと思います。

  1. 何らかの形で決定的な証拠はありません。これは、プログラマーの間での大きな議論の1つです。多くの人が型アノテーションがないためにプログラムを作成する方が速いと主張しますが、他の多くの人は「しかしそれは機能しません!静的型付けがあなたのために行うすべてのテストを書く必要があります!」と反論します。さまざまなソリューションがさまざまな問題によりよく適合し、さまざまなプログラマーがさまざまに作業するなどの理由で発生する論争もあります。
  2. はい、これは他の場所で十分にカバーされています。
  3. 承知しました?あなたは多くを含めていませんが、それが主な関心事であることが明白であるように思われます。ただし、初心者は一般的にセマンティクスよりも構文を過大評価していることに注意してください。
  4. いいえ。型アノテーションは、その変数に関する契約または保証を提供します。その契約を破ることは非常に悪いです。
  5. 多分?それはあなたの趣味です。 not両方を利用可能にすることをお勧めします。物事を単純に保つと、正しく完全に実装するのが簡単になります。
3
Telastyn