ひょう‐めい〔ヘウ‐〕【表明】
表明 (プログラミング)
(表明 から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/02/07 08:17 UTC 版)
表明(ひょうめい、英: assertion)とは、プログラミングにおける概念のひとつであり、そのプログラムの前提条件を示すのに使われる。アサーションとも呼ばれる。表明は、プログラムのその箇所で必ず真であるべき式の形式をとる。多くの言語ではそのような前提条件のチェックに表明を使用するが、設計上の判断を文書化するのに使う場合もある。表明が偽となった場合、プログラムにバグが潜在していることを示している。これを「表明違反; assertion failure」と呼ぶ。表明を言語構文や標準ライブラリとしてサポートするプログラミング言語も存在する。
- ^ C.A.R. Hoare, An axiomatic basis for computer programming, Communications of the ACM, 1969.
- ^ assert - cppreference.com (C)
- ^ assert - cppreference.com (C++)
- ^ assert - cpprefjp C++日本語リファレンス
- ^ Conditional Compilation - D Programming Language, §Static Assert
- ^ Jon Jagger, Compile Time Assertions in C, 1999.[リンク切れ]
- ^ GCC 4.3 Release Series — Changes, New Features, and Fixes - GNU Project
- ^ Predefined Macros | Microsoft Docs (Visual C++ 2008)
- ^ Predefined Macros | Microsoft Docs (Visual C++ 6.0)
- ^ コンパイル時アサート - boostjp
- ^ Alan Turing, Checking a Large Routine, 1949
- ^ quoted in C.A.R Hoare, "The Emperor's Old Clothes", 1980 Turing Award lecture.
- 1 表明 (プログラミング)とは
- 2 表明 (プログラミング)の概要
- 3 エラー処理との比較
- 4 歴史
表明
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/02 04:43 UTC 版)
Node.jsはコアモジュール assertにより表明(assertion)に対応している。表明違反時にはassert.AssertionErrorインスタンスがスローされる。 const assert = require('assert').strict;assert.deepEqual(1, 2);// Thrown:// AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal:// // 1 !== 2
※この「表明」の解説は、「Node.js」の解説の一部です。
「表明」を含む「Node.js」の記事については、「Node.js」の概要を参照ください。
表明
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/10/12 07:43 UTC 版)
「SystemVerilog」の記事における「表明」の解説
SystemVerilog は表明記述言語を内包しており、Property Specification Language に似ている。表明は、各時点での設計上の特性を照合するのに使う。 SystemVerilog の表明は sequence(シーケンス)と property(属性)から構成される。属性はシーケンスの上位概念であり、シーケンスは属性としても扱うことが可能である。ただし、それが必ずしも有益というわけではない。 シーケンスには、時相演算子を使ったブーリアンの式を指定する。最も単純な時相演算子 ## は連結を意味する: sequence S1;@(posedge clk)req ##1 gnt;endsequence このシーケンスでは、gnt 信号が req 信号が High となった1クロック後に High となることを表明している。このようにシーケンス型の表明は常にクロックと同期している。 これ以外にも様々な時相演算子がある。これらを使うとコンポーネント間の設計上の複雑な関係を表現することができる。 1つの表明は、あるシーケンスや属性の状態を連続的に監視し、表明に記述したことに反する動作をするとエラーとなる。上記のシーケンスは req が Low であった場合に失敗する。gnt に続いて req が High になるということを正確に表現するには属性表明が必要となる: property req_gnt;@(posedge clk)req |=> gnt;endpropertyassert_req_gnt: assert property (req_gnt) else $error("req not followed by gnt."); この例では含意演算子 |=> を使っている。含意の左辺は antecedent(先行事項)と呼ばれ、右辺は consequent(結果事項)と呼ぶ。含意の評価は、まず先行事項を繰り返し評価することから開始する。先行事項が成功すると、結果事項を評価する。表明全体として成功するかどうかは結果事項の評価結果に依存する。この例では結果事項は req が High になるまで評価せず、gnt がその1クロック後にHighにならない場合にこの属性表明に失敗する。 表明のほかに、SystemVerilog は属性の「仮定; assumptions」と「カバレッジ; coverage」に対応している。仮定とは、形式論理証明ツールで必ず真となる条件を記述するものである。表明は真であることが証明されなければならない属性を指定する。シミュレーションでは、表明と仮定は並行して検査する。属性のカバレッジは、表明が正確に設計を監視しているかどうかを検証するためのものである。
※この「表明」の解説は、「SystemVerilog」の解説の一部です。
「表明」を含む「SystemVerilog」の記事については、「SystemVerilog」の概要を参照ください。
表明
「表明」の例文・使い方・用例・文例
- 出馬表明した立候補者
- 反対を表明する
- その計画への反対を表明した
- 感謝の表明
- 首相は贈賄事件に遺憾の意を表明した
- 委員たちは不信を表明した
- 彼が決意を表明した
- Xに参加者が懸念を表明しました
- 彼がXを内外に表明した
- その大学は日本で初めて「ゲイフレンドリー」という方針を表明した。
- 彼は政府の計画に不信感を表明した。
- その党は国のイスラム化政策をストップすべきだと表明した。
- 私はEDINETで意見表明報告書を読んだ。
- 表明保証は英米の契約形式に由来している。
- 私たちは決意表明をした。
- 私たちはその意向を表明する。
- 私は既に彼の参加表明を取り付けています。
- その選手は今季で引退すると表明した。
- 彼は次の総裁選に立候補することを表明した。
- 彼らは彼を受け入れることを表明している。
固有名詞の分類
品詞の分類
- >> 「表明」を含む用語の索引
- 表明のページへのリンク