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

このタグは、特定のプログラミング言語に依存しないプログラミングの質問に使用します。

2
レクサーの作成の基本はどこで学ぶことができますか?
レクサーの書き方を学びたいです。私の大学のコースには、パーサー(およびそれに合わせてレクサー)を作成する必要があるという課題がありましたが、これは(マークを超えて)指示やフィードバックなしで私たちに与えられたので、私はそれからあまり学びませんでした。 このトピックを検索した後、私は自分がいる場所よりも数歩進んでいると感じる分野に焦点を当てたかなり高度な記事しか見つけることができません。より複雑な言語のトークン化を調査するための基礎として使用できる、非常に単純な言語の字句解析プログラムの作成の基本について説明したいと思います。 この段階では、ベストプラクティスや最適化手法にはあまり興味がありませんが、代わりに基本事項に焦点を当てることを好みます。私を始めるための良いリソースは何ですか?

10
大文字と小文字
大文字と小文字を区別しない比較を行う場合、文字列を大文字または小文字に変換する方が効率的ですか?それも重要ですか? このSOの投稿では、「Microsoftがそのように最適化した」ため、ToUpperの方がC#の方が効率的であることが示唆されています。しかし、ToLowerとToUpperの変換は、文字列に含まれる内容に依存し、通常、文字列には小文字が多く含まれるため、ToLowerがより効率的になるというこの引数も読みました。 特に、私は知りたいです: ToUpperまたはToLowerを最適化して、一方が他方よりも高速になるようにする方法はありますか? 大文字または小文字の文字列間で大文字と小文字を区別しない比較を行う方が高速ですか。その理由は何ですか。 あるケースが他のケースよりも明らかに優れているプログラミング環境(C、C#、Pythonなど)はありますか?その理由は何ですか?

11
浮動小数点の比較はどのようにすればよいですか?
私は現在、次のようなコードを書いています。 double a = SomeCalculation1(); double b = SomeCalculation2(); if (a < b) DoSomething2(); else if (a > b) DoSomething3(); そして他の場所では私は平等をする必要があるかもしれません: double a = SomeCalculation3(); double b = SomeCalculation4(); if (a == 0.0) DoSomethingUseful(1 / a); if (b == 0.0) return 0; // or something else here つまり、浮動小数点演算がたくさん行われているので、条件についてさまざまな比較を行う必要があります。この文脈ではそのようなことは無意味なので、私はそれを整数数学に変換することはできません。 このようなことが起こる可能性があるため、浮動小数点の比較は信頼できない可能性があることを前に読みました。 double …

9
Math.pow(0、0)=== 1なのはなぜですか?
私たちは皆、000が不定であるは。 しかし、javascriptは次のように述べています。 Math.pow(0, 0) === 1 // true およびC ++は同じことを言います: pow(0, 0) == 1 // true どうして? そんなこと知ってる: >Math.pow(0.001, 0.001) 0.9931160484209338 しかし、なぜMath.pow(0, 0)エラーをスローしないのですか?または多分NaNより良いでしょう1。

15
コードを書く前に、アプリケーションのアーキテクチャをどのように計画しますか?[閉まっている]
クローズ。この質問はもっと焦点を合わせる必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てるようにします。 5年前に閉鎖されました。 この質問を改善する 私が苦労していることの1つは、コードを書く前にアプリケーションのアーキテクチャを計画することです。 アプリケーションが何をする必要があるかを絞り込むための要件を収集することを意味するのではなく、クラス全体、データ、およびフロー構造をレイアウトするための良い方法を効果的に考え、それらの考えを繰り返して、信頼できる計画を立てることを意味します。 IDEを開く前にアクションを念頭に置いてください。現時点では、IDEを開いて空白のプロジェクトを作成し、ビットとボブの作成を開始して、そこからデザインを「成長」させるのは簡単です。 私はUMLを収集することはこれを行う1つの方法ですが、私はそれを経験したことがないので、ちょっと曖昧に思えます。 コードを書く前に、アプリケーションのアーキテクチャをどのように計画しますか?UMLが進むべき道である場合、小さなアプリケーションの開発者に簡潔で実用的な紹介をお勧めできますか? ご意見ありがとうございます。


4
ネストされたキャプチャグループは、正規表現でどのように番号付けされますか?
正規表現がネストされた括弧のキャプチャ動作をどのように処理するかについて定義された動作はありますか?より具体的には、異なるエンジンが最初の位置で外側の括弧をキャプチャし、後続の位置でネストされた括弧をキャプチャすることを合理的に期待できますか? 次のPHPコードを検討してください(PCRE正規表現を使用) <?php $test_string = 'I want to test sub patterns'; preg_match('{(I (want) (to) test) sub (patterns)}', $test_string, $matches); print_r($matches); ?> Array ( [0] => I want to test sub patterns //entire pattern [1] => I want to test //entire outer parenthesis [2] => want //first inner [3] => to …

14
コードゴルフ:テトリスをする
ロックされています。この質問とその回答は、質問がトピックから外れているが歴史的に重要であるため、ロックされています。現在、新しい回答ややり取りは受け付けていません。 基礎: 次のテトロミノと空の競技場を考えてみましょう。 0123456789 IOZTLSJ [] [] ### ## ####### [] ### #### ### [] ### ## [] #[] [==========] 競技場の寸法は固定されています。上部の数字は、列番号を示すためにここにあります(入力も参照してください)。 入力: 1。すでに部分的にテトロミノで埋めることができる特定の競技場(上記に基づく)が与えられます(これは別のファイルにあるか、stdinを介して提供できます)。 サンプル入力: [] [] [] [] [###] [## ######] [==========] 2。どのテトロミノをどの列に挿入(およびドロップダウン)するかを説明する(スペースで区切る)文字列が与えられます。テトロミノは回転させる必要はありません。入力はstdinから読み取ることができます。 サンプル入力: T2 Z6 I0 T7 入力は「整形式」であると想定できます(または、そうでない場合は未定義の動作を生成します)。 出力 結果のフィールドをレンダリングし(「完全な」行は消える必要があります)、スコアカウントを出力します(ドロップされた行ごとに10ポイントを占めます)。 上記のサンプル入力に基づくサンプル出力: [] [] [] [####] [####] [##### ####] [==========] …

4
差分実行はどのように機能しますか?
Stack Overflowでこれについていくつか言及しましたが、ウィキペディア(関連するページは削除されました)とMFC動的ダイアログのデモを見つめても何もわかりませんでした。誰かがこれを説明できますか?根本的に異なる概念を学ぶのはいいですね。 答えに基づいて:私はそれについてより良い感じを得ていると思います。初めてソースコードを注意深く見ていなかったと思います。この時点で、実行の差異についてはさまざまな感情があります。一方では、特定のタスクをかなり簡単にすることができます。一方、それを起動して実行する(つまり、選択した言語で設定する)のは簡単ではありません(私がそれをよりよく理解していればそうなると確信しています)...私はそれのためのツールボックスを推測しますが一度作成するだけで、必要に応じて拡張できます。それを本当に理解するためには、おそらく別の言語で実装してみる必要があると思います。

2
バッファ付きIOとバッファなしIO
プログラムのI / Oはデフォルトでバッファリングされていること、つまり、一時ストレージから要求元のプログラムに提供されることを学びました。バッファリングによってIOパフォーマンスが向上することを理解しています(おそらくシステムコールを減らすことによって)。setvbufCのように、バッファリングを無効にする例を見てきました。2つのモードの違いは何ですか。また、どちらをいつ使用する必要がありますか。

6
オブジェクト指向プログラミングの代替案?
OOPは、おそらく今日のソフトウェア設計で最も使用されているプログラミングパラダイムです。私の質問は、他にどのようなパラダイムがそれと競合し、OOPの代わりに立つことができるかということです。その質問を明確にするために、私は他にどのようなパラダイムがあるかについて質問していません。たくさんありますが、どれがいいのか知りたい… 理論だけでなく、実際に使用されてきました。 OOPと競合できるため、大規模なプロジェクトで最小限の労力で使用できます。 ビジネスロジック、データベースなどを備えたデスクトップアプリの開発に使用できます。 OOPと一緒に使用されるのではなく、OOPの代わりとして使用されます。 そして、もしあれば、それの長所/短所は何ですか、それがOOPよりも良い/悪い理由、それを使用するのに最適な言語は何ですか、人気のある言語でそれを使用するのはどうですか、それはどんなデザインパターンを持っていますか、そしてそれはできますかOOPを完全に置き換えますか?

9
赤黒木とAVL木の違い
これら2つのデータ構造の主な違いを誰かが説明できますか?相違点/類似点を強調するソースをオンラインで見つけようとしていますが、あまり有益なものは見つかりませんでした。どのような場合に一方が他方よりも優先されますか?どのような実際的な状況で、一方を他方よりも「使いやすく」しますか?

5
符号付きの値よりも符号なしの値を使用するのはいつですか?
符号付き変数よりも符号なし変数を使用するのが適切なのはいつですか?何約forループ? これについてはたくさんの意見を聞いており、コンセンサスに似たものがあるかどうかを知りたいと思いました。 for (unsigned int i = 0; i < someThing.length(); i++) { SomeThing var = someThing.at(i); // You get the idea. } 私はJavaは符号なしの値を持っていない知っている、それが上の意識の決断だったに違いないSun Microsystemsの'の部分。

15
同じファイルに複数のクラスを含めるのは悪い習慣ですか?
以前は、1つのファイルに対して1つのクラスがありました。たとえば、car.csにはクラスcarがあります。しかし、もっと多くのクラスをプログラムするので、それらを同じファイルに追加したいと思います。たとえば、car.csにはクラスcarとdoorクラスなどがあります。 私の質問は、Java、C#、PHP、またはその他のプログラミング言語に適しています。同じファイルに複数のクラスを含めないようにする必要がありますか、それとも問題ありませんか?

6
長方形から長方形への高速交差
2つの長方形が交差しているかどうかをテストする簡単な方法は何ですか? インターネットで検索してこのワンライナー(WOOT!)を思いついたのですが、Javascriptで書く方法がわかりません。C++の古い形式で書かれているようです。 struct { LONG left; LONG top; LONG right; LONG bottom; } RECT; bool IntersectRect(const RECT * r1, const RECT * r2) { return ! ( r2->left > r1->right || r2->right < r1->left || r2->top > r1->bottom || r2->bottom < r1->top ); }

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.