タグ付けされた質問 「theory」

理論的な質問は、一般にすぐには実用的ではないトピックを扱います。このタグを使用するときは注意してください。質問は、コンピューターサイエンススタック交換サイトに適している場合があります。

6
CPUはどのくらいの頻度で計算エラーを起こしますか?
ダイクストラの構造化プログラミングに関するノートでは、コンピュータープログラムの抽象的なエンティティとしての証明可能性について多くのことを語っています。当然の結果として、彼はテストでは不十分であると述べています。たとえば、xとyの全範囲にわたってxとyの大きな値に対して乗算関数f(x、y)= x * yをテストすることは不可能であるという事実を指摘しています。私の質問は彼のその他に関するものです。「お粗末なハードウェア」に関するコメント。エッセイはコンピューターハードウェアの信頼性が低い1970年代に書かれたものであることを知っていますが、コンピューターはまだ完璧ではないため、計算ミスをすることがあります。誰がこれが起こる頻度を知っていますか、またはこれに関する統計がありますか?
22 theory  cpu 

4
Pythonブロックのコロンは技術的に必要ですか?
これは実際には、Pythonの初心者がもっと理解したいという理論上の質問です。 Pythonのブロック初期ステートメントの後、コロンを忘れ続けます。それらは私が意味するものです: for <variable> in <sequence>: if <blah blah>: 私の考えでは、忘れがちな理由の1つは、それらが事実上の暗黙的であるということです。コロンであるかどうかにかかわらず、ステートメントはその行で終わります。 私の質問-私はPythonの構文がどのように機能するかを学ぶために尋ねます-コロンが本当に不要かどうかです?コロンが不要になるようにPython構文を変更しましたが、何かが壊れるでしょうか?それはいくつかのステートメントを曖昧にするか不可能にするでしょうか?
19 python  syntax  theory 

6
計算上不可能なビジネス上の問題の例は何ですか?
私は、チューリングマシン(および拡張によりフォンノイマンマシン)が、次のような停止問題を解決できないという現実を受け入れることを拒否する同僚がいます。 あなたは十分な時間とお金で何でもできます。 彼はまた、次のことを主張する理論的な問題を嫌います。 私たちの分野では、これらの質問に出くわすことは決してありません。私たちは理論科学者ではなく、アプリケーション開発者です。 彼にこのことを納得させるために使用できる計算上不可能なビジネス上の問題の良い例はありますか?

4
なぜCem Kanerはテストがバグを明らかにしないと時間の無駄だと考えるのですか?
肯定的なテストで機能を確認し、機能していることを証明するのはどうですか?時間の無駄だと言えますか?この引用の背後にある概念は何ですか? 失敗したテスト、つまりエラーを見つけられないテストは時間の無駄です。 Web Engineering:Cem Kanerを引用したWebアプリケーションの体系的開発の規律。
15 testing  theory 

5
アルゴリズムリフレッシャー。ヒープソートが分類アルゴリズムであるのはなぜですか?
ヒープソートがインプレースソートアルゴリズムと見なされる理由がわかりません。 つまり、並べ替えられる配列の要素(つまりヒープ)が追加された追加のデータ構造を使用して、最小値の抽出と並べ替えプロセスを支援します。 ここでインプレースの定義を誤解しているのではないでしょうか? しかし、たとえば挿入ソートは、インプレースアルゴリズムである、つまり要素に余分なメモリが必要ないことは明らかです。 それで、なぜそれはインプレースと見なされますか?

6
有限状態マシンの故障から回復する方法は?
私の質問は非常に科学的に思えるかもしれませんが、よくある問題だと思います。経験豊富な開発者やプログラマーは、タイトルで言及した問題を回避するためのアドバイスを希望します。ところで、私が以下で説明するのは、iOSプロジェクトで積極的に解決しようとしている真の問題です。 有限状態マシンとは、これを意味します>いくつかのボタン、そのUIに関連するいくつかのセッション状態、およびこのUIが表すものがあるUIがあり、UIに値が部分的に表示されるデータがあり、いくつかの外部トリガーを受信して​​処理します(センサーからのコールバックで表されます)。状態図を作成して、そのUIとアプリケーションで望ましい、必要なシナリオをより適切にマップしました。ゆっくりとコードを実装するにつれて、アプリはより適切に動作し始めます。ただし、十分な堅牢性があるとは確信がありません。私の疑問は、自分自身の思考と実装プロセスが進行するのを見ることです。私はすべてをカバーしていると確信していましたが、UIでいくつかのブルートテストを行うだけで十分であり、動作にまだギャップがあることにすぐに気付きました..それらにパッチを適用しました。しかしながら、各コンポーネントは、他のコンポーネントからの入力、ユーザーまたは特定の外部ソースからの特定の入力に基づいて動作し、一連のイベント、状態変更などをトリガーします。複数のコンポーネントがあり、それぞれが入力で受信したトリガーのように動作します->トリガーとその送信者が分析->分析に基づいて何か(メッセージ、状態変化)を出力します 問題は、これは完全に自己完結型ではなく、私のコンポーネント(データベース項目、セッション状態、ボタンの状態)...イベントチェーンの範囲外で変更、影響、削除、またはその他の方法で変更される可能性があることです望ましいシナリオ。(電話がクラッシュし、バッテリーが突然空になります)これにより、システムが無効になり、システムが回復できなくなる可能性があります。アップルストアにある競合他社のアプリの多くで、これが見られます(これは問題だと人々は認識していませんが)、顧客は次のように書きます>「3つのドキュメントを追加しました。たとえそれらを見たとしても。」または「毎日ビデオを録画しましたが、あまりにログの多いビデオを録画した後、それらのキャプションをオフにすることはできません。キャプションのボタンはありません」 これらは単なる短縮例であり、顧客はしばしばそれをより詳細に説明します。それらに記載されている説明と動作から、特定のアプリにFSMの内訳があると思います。 究極の問題は、これをどのように回避でき、システムがそれ自体をブロックするのを防ぐ方法ですか? 編集>私は電話で1つのviewcontrollerのビューのコンテキストで話している、私はアプリケーションの一部を意味します。MVCパターンを理解し、機能ごとに個別のモジュールを用意しています。説明するものはすべて、UIの1つのキャンバスに関連しています。

9
理論的にバグのないプログラム
私は、コードにバグがないことはできないと述べている多くの記事を読んでおり、彼らはこれらの定理について話している: 停止問題 ゲーデルの不完全性定理 ライスの定理 実際、ライスの定理は停止問題の含意のように見え、停止問題はゲーデルの不完全性定理と密接な関係にあります。 これは、すべてのプログラムが少なくとも1つの意図しない動作をすることを意味しますか?それとも、それを検証するコードを書くことができないということですか?再帰チェックはどうですか?2つのプログラムがあると仮定しましょう。どちらにもバグがありますが、同じバグを共有していません。それらを同時に実行するとどうなりますか? そしてもちろん、ほとんどの議論はチューリング機械について話しました。線形境界の自動化(実際のコンピューター)はどうですか?
12 bug  theory 

5
ソフトウェアテストの形式化された/数学的な理論はありますか?
グーグルの「ソフトウェアテスト理論」は、言葉のソフトな意味での理論を与えるようだ。数学、情報理論、またはその他の科学分野の意味で、理論として分類できるものを見つけることができませんでした。 私が探しているのは、テストとは何か、使用される概念、テストケースとは何か、テストの実行可能性、テストの実用性、テストの範囲、正式な定義/説明コードカバレッジなど 更新:また、正式な検証と私が尋ねたものとの関係について、直感的にはわかりませんが、明らかに何らかの関係があります。

4
完全な機能を備えたアプリケーションを構築するか、必要最低限​​のアプリケーションを構築してから、徐々に機能を追加する必要がありますか?
私は、製造現場のスケジューリングプログラムの作成をITに任せている製造工場で働いています(これは非常に必要です)。他の経験に基づいて、より少ない時間で利用可能な基本的なフレームワークを構築し、機能を追加することでその上に構築するか、完全に実装されたソリューションをすぐに作成して開始する方が良いでしょうか?私は約1年しかデベロッパーではなく、このサイズのアプリの初期作成の経験はあまりありません。私は、ある種のデジタルスケジュールが非常に必要なため、ベアボーンアプリが最初に行く方法であるという考えに傾いてきましたが、事実の後にランダムな機能を追加すると少し厄介になる可能性があります。あなたが同じ状況にあった場合、あなたはどの道に向かって傾くでしょうか?

8
データベースに保存されているタスクの優先リスト
私は次のことをするための最良の方法を考えています: データベースに保存されているタスクのリストがあります。タスクには優先度が割り当てられています。タスクの優先度を変更して、実行する順序を並べ替えることができます。 Pivotal Trackerに非常によく似たものを考えています。 次のように想像してください。 1 Task A 2 Task B 3 Task C 4 Task D 5 Task E Eが最も重要なタスクであると判断します 1 Task E 2 Task A 3 Task B 4 Task C 5 Task D 5つのタスクすべてを更新して、新しい優先順位を付ける必要があります。 タスクBがより重要になると、AIは 1 Task E 2 Task B 3 Task A 4 Task C …

3
より多くのコード=より多くのバグ
大学に戻ったとき、クラスでコンピューターサイエンスの法則の1つを教えている教授を覚えています。彼は「より多くのコードはより多くのバグを意味する」のようなものを言って、それに名前(Whatchamacallitの法則)を与え、それを誰かに起因させた。 この「法則」がどこから来たのか、誰が言ったのか、それが元の言葉であるのは誰か知っていますか?

2
分岐予測の最適化に適したコードはどれですか?
分岐予測、およびコンパイラー最適化の影響を考えると、どのコードが優れたパフォーマンスを提供する傾向がありますか? bRareExceptionPresentはまれな状態を表すことに注意してください。ロジックの通常のパスではありません。 /* MOST COMMON path must branch around IF clause */ bool SomeFunction(bool bRareExceptionPresent) { // abort before function if(bRareExceptionPresent) { return false; } .. function primary body .. return true; } /* MOST COMMON path does NOT branch */ bool SomeFunction(bool bRareExceptionPresent) { if(!bRareExceptionPresent) { .. function primary …

7
検証と検証はテストプロセスの一部ですか?
多くのソースに基づいて、私はテストの目的ができるだけ多くのバグを見つけることであるとは信じていません-私たちはそれが機能するか機能しないかを確認するためにテストします。例えばfollowintはISTQBからのテストの目標です: (ソフトウェア製品)が指定された要件を満たしていることを確認します(その検証だと思います) (ソフトウェア製品)が目的に適合していることを示す(これは検証だと思います) 欠陥を検出する テストは検証、検証、欠陥検出であることに同意します。あれは正しいですか?

5
正規表現なしの字句解析
私はさまざまな上位レベルの言語(とりわけPython、PHP、Javascript)でいくつかのレクサーを調べてきましたが、それらはすべて何らかの形で正規表現を使用しているようです。正規表現がおそらくこれを行うための最良の方法であると確信していますが、正規表現なしで基本的な字句解析を達成する方法、おそらく何らかの直接文字列解析などがあるのか​​と思っていました。 ですから、どのような形でも正規表現を使用せずに、高水準言語*である種の基本的な字句解析を実装することは可能ですか? * Perl / PHP / Python / Javascriptなどの高レベル言語。Cでそれを行う方法は確かにあります

6
パフォーマンスと再利用性
パフォーマンスを犠牲にすることなく再利用可能な関数を作成するにはどうすればよいですか?関数を再利用可能にする方法で関数を記述したい(たとえば、データ環境について仮定しない)状況に繰り返し直面していますが、プログラムの全体的な流れを知っているので、最も効率的ではありません。方法。たとえば、株式コードを検証するが再利用可能な関数を記述したい場合、レコードセットが開いているとは限りません。ただし、関数が呼び出されるたびにレコードセットを開いたり閉じたりすると、数千行をループするときにパフォーマンスに大きな影響が出る可能性があります。 だからパフォーマンスのために私は持っているかもしれません: Function IsValidStockRef(strStockRef, rstStockRecords) rstStockRecords.Find ("stockref='" & strStockRef & "'") IsValidStockRef = Not rstStockRecords.EOF End Function しかし、再利用性のためには、次のようなものが必要になります。 Function IsValidStockRef(strStockRef) Dim rstStockRecords As ADODB.Recordset Set rstStockRecords = New ADODB.Recordset rstStockRecords.Open strTable, gconnADO rstStockRecords.Find ("stockref='" & strStockRef & "'") IsValidStockRef = Not rstStockRecords.EOF rstStockRecords.Close Set rstStockRecords = Nothing End Function 数千行/レコードにわたるループ内から呼び出されたときに、そのレコードセットを開いたり閉じたりするパフォーマンスへの影響は深刻ですが、最初の方法を使用すると、関数の再利用性が低下するのではないかと心配です。 …

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