タグ付けされた質問 「language-design」

プログラミング言語の設計と構造に関する質問。

6
xmlベースのプログラミング言語
私はウィキペディア-Category:XMLベースのプログラミング言語を見ていました。 言語を設計するために誰かがこのアプローチを取るのはなぜですか それの利点は何ですか? 私はデメリットしか考えられません。 維持するのが難しい 読みにくい 書くのが難しい

3
なぜGOTOはPHP 5に含まれていたのですか?[閉まっている]
ここで何が尋ねられているのかを知るのは難しい。この質問は、あいまいで、あいまいで、不完全で、過度に広い、または修辞的であり、現在の形では合理的に回答することができません。再開できるようにこの質問を明確にするヘルプについては、ヘルプセンターに アクセスしてください。 7年前休業。 GOTOコントロールキーワードがPHP 5.3.0で導入されたことを少し前に発見しました。 http://php.net/manual/en/control-structures.goto.php なぜそれが起こったのですか? この背後にある言語設計の目標は何ですか? PHP開発者コミュニティはそれを求めましたか?

1
JavaのBigIntegerクラスに、数値リテラルを取得できるコンストラクターがないのはなぜですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、専門知識によって裏付けられると期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 JavaのBigIntegerクラスに、数値リテラルを取得できるコンストラクターがないのはなぜですか?私はBigIntegerを使用するたびに、そして多くの場合、それらについて単に考えているだけで、これは不思議に思います。 Javaの設計者は、存在するはずの1つの圧倒的な便利さにもかかわらず、1つを除外しなければならなかったのはなぜでしょうか。

4
「プライベート」インターフェースの使用例?
インターフェイスがクラスのパブリックプロパティと関数を定義する方法と同様の方法で、クラスの特定の内部プロパティと関数を適切に定義できる有効なユースケースがあるかどうか疑問に思いました。 人間を説明するクラスを構築する必要があるタスクを想像してみてください。 明らかに、各人間はヒューマノイドクリーチャーですが、すべてのヒューマノイドクリーチャーが人間であるとは限らないため、おそらく次のような機能を持つインターフェースIHumanoidがあります(ボディプランをクラスにハードコードすることは役に立たないため)。 public interface IHumanoid { function get head():IHead; function get torso():ITorso; function get leftArm():IArm; function get rightArm():IArm; function get leftLeg():ILeg; function get rightLeg():ILeg; } さらに、そして明らかに、各人間は哺乳動物ですが、すべての哺乳動物が人間であるとは限らないため、どこかに浮かぶ男性と女性の2つの定義を持つ別のインターフェイスIMammalがおそらくあります。 public interface IMammal { function procreate(partner:IMammal):void; } public interface IMaleMammal extends IMammal { function inseminate(female:IFemaleMammal):void; } public interface IFemaleMammal extends IMammal { function …

2
不等式演算子に= / =を使用する言語はありますか?
ウィキペディアは言う: 等しくない 不等式を表すために使用される記号(項目が等しくない場合)は、スラッシュの等号 "sign"(Unicode 2260)です。 ほとんどのプログラミング言語は、ASCII文字セットに制限されており、〜=、!=、/ =、= / =、または<>を使用してブール式の不等式演算子を表します。 これらの演算子のすべてがで見つけることができます。この表離れてから、=/=。私はこのequals-slash-equals をプレーンテキストでフォーマットする方法として使用できますが、プログラミング言語では使用できません。 =/=プログラミング言語の不等式演算子として使用されていますか?

11
インターフェースがメンバーよりもメソッドを必要とするのはなぜですか?
...これにより、ゲッターとセッターを作成する必要が生じますが、実際にはまったく無関係です。ほとんど(すべて?)の言語のインターフェイスで、メンバーフィールドがインターフェイス仕様を満たすことを許可しないのは、言語設計上の理由がありますか? ほとんどの現存する言語では、メンバーはメソッドとは根本的に異なる方法で扱われますが、これは当てはまりますか?理論的な言語では、(a)引数なしのメソッドをゲッターとして指定し、読み取り可能なメンバーをそのインプリメンターとして受け入れ、(b)単一引数のメソッドをセッターとして指定したが受け入れられたインターフェイスはありませんでしたか?変数の宣言時に変数への直接アクセス制御の指定をサポートする言語が与えられた場合、その実装者としての書き込み可能なメンバーフィールド 複数の継承を許可するプロトタイプ言語(一部の回答者が作成した非常に有効なポイントに対処するため)は、このようなものに最適です。 このようなものがすでに存在する場合はお知らせください。

3
プログラミング言語でのマクロサポートは有害と見なされますか?
Cで私の頭に浮かぶ最初の乱用は: #define if while しかし同時に、正しく使用すると非常に便利で強力です。 Common Lispマクロでも同様のことが起こります。 すべてのプログラミング言語がこのようなマクロをサポートしていないのはなぜですか? 彼らは有害だと考えられていますか?

2
プログラミング言語、位置言語、自然言語
アセンブリ言語のように、一部のプログラミング言語はマシンコードをモデルにしています。他の言語は自然言語である英語をモデルにしています。その他は、マシンコードまたは自然言語のどちらにもモデル化されていません。たとえば、PROLOGなどの言語はどちらのモデルにも従いません。 私はこのPerlモジュールLingua :: Romana :: Perligataに出くわしました。これにより、ラテン語によく似た構文を使用してプログラムを記述できます。 位置構文が少ないプログラミング言語はありますか? フランス語、ヘブライ語、ペルシア語など、他の自然言語に触発された構文で記述できる他の言語またはモジュールはありますか?ウィキペディアには非常に長いリストがありますが、それらのプロジェクトのほとんどは死んでいます。 StackOverflowに関連する質問があります。受け入れられた答えは「グーグルを使う」です。

5
偽の友人?C ++、C#、Javaと比較したCのキーワード「静的」
私にとって、staticC でのキーワードの使用、およびC#やJavaなどの言語の使用は、"to be"(英語)や "bekommen"(ドイツ語)(=英語で "to get")などの「偽の友達」です。 C staticでは、関数または変数には、同じソースファイル内の関数を介してのみアクセスできます。これはprivate、C ++、Java、およびC#の関数とメンバーに相当します。 C ++では、JavaとC#staticは、メソッドがクラスインスタンスのメンバーではないことを意味しますが、事実上、C関数と名前空間に似ています。 私見これら2つの概念はかなり異なるので、なぜC ++以降のJavaおよびC#の設計者はstaticその動作のキーワードを選択したのですか?見落としている論理的な接続はありますか? 編集 私は知っstaticていprivateます、CではC ++ と同様の方法でアクセシビリティを管理しませんが、そのように使用できます、https://stackoverflow.com/a/1479639/124983を参照してください

7
通常のソースコード(WinFormsなど)ではなく、XMLベースの構文(XAMLなど)を使用する利点を説明してください。[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 4年前休業。 まず、この質問はWPFとWinFormsに関するものではないことに注意してください。 マイクロソフトがXAMLを発明して、コンパイル可能なC#コードを生成する「古い」アプローチを採用するようになった最高の利点は何ですか。 私の印象では、他の開発者は多くの欠点を見つけているようですが、Microsoftはそれを受け入れました。つまり、私には見られない利点があるということです。私が行方不明になっていることを説明してください。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.