オープンソース・ツールを用いた形式検証を行いたくて、いろいろチュートリアルを読んでいる。 例えば、以下の記事で書いてあるようなBRAMの形式検証を行ってみたい。 zipcpu.com デザインとしては以下をそのまま利用してみる: github.com デザインの本体: always @(posedge w_clk) begin if(w_en) bram[w_addr] <= w_data; end always @(posedge r_clk) begin if(r_en) r_data <= bram[r_addr]; end Formalのassertionの部分 assume()によって、探索の範囲を小さくする: symbiyosys.readthedocs.io // set data variable to whats in the bram initial begin ass
このページは Software Foundations の日本語翻訳版「ソフトウェアの基礎」です。 「ソフトウェアの基礎(Software Foundations)」シリーズでは、高信頼ソフトウェアに関する広範囲の数学的基礎を学びます。 このシリーズの特徴は、取り扱う内容がすべて形式化されて、さらに機械によって確かめられることです。 これは、それぞれのテキストがCoqのスクリプトファイルそのものとなっていることで実現されています。 読者は、学部生から博士課程の学生や研究者に至るまでの広範囲を想定しています。 論理学やプログラミング言語についての知識は仮定しませんが、ある程度の数学的素養は理解に有用です。 1学期分の講義として、論理の基礎に加えて、プログラミング言語の基礎または検証済み関数型アルゴリズム、あるいは両方の一部を扱うように設計されています。
nilaway どんなもの? nil パニックによるランタイムエラーになる箇所を指摘してくれる静的解析ツール スタンドアロンで動く。golangci-lintで使用するにはカスタマイズが必要。 先行技術やツールと比べてどこがすごい? 標準パッケージに同梱されているnilness[1]ではチェックできないnil パニックとなりうる箇所を指摘する 関数やパッケージの境界を跨いでnilフローを追跡 nil インターフェース値を報告 例えば以下のコードでは、nilnessはエラーを報告してくれないが、nilawayはnilパニックを報告してくれる。 var p *P if someCondition { p = &P{} } print(p.f) // nilness reports NO error here, but nilaway does. 技術のキモはどこ? Our main idea
Rust言語を、人命に関わるような決定的に安全性が重要なシステムに使用することをサポートする「Safety-Critical Rust Consortium」設立 Rust言語を推進する「The Rust Foundation」は、人命や財産に関わるような安全性が決定的に重要になるシステムのためにRust言語を責任を持ってサポートするためのコンソーシアム「Safety-Critical Rust Consortium」の設立を発表しました。 Rust言語は、C言語のように低レイヤのシステム開発向けに作られたプログラミング言語です。 不正なメモリ領域を指すポインターなどを許容しない安全なメモリ管理や、マルチスレッド実行においてデータ競合を排除した高い並列性を実現している点などの特長を備えているため、安全かつ高速なアプリケーション開発を実現します。 セーフティ・クリティカルとは? 「セーフティ
May 22, 2024 In response to a recent Boats article, I mentioned that Rust’s type system drastically changes things for verification. This comment seems to have aroused a lot of interest, so I figured I’d expand on it, explaining how Rust simplifies formal verification and why this had the verification community excited for a while now. I assume that most of you reading this post won’t be experts i
Miri is an Undefined Behavior detection tool for Rust. It can run binaries and test suites of cargo projects and detect unsafe code that fails to uphold its safety requirements. For instance: Out-of-bounds memory accesses and use-after-free Invalid use of uninitialized data Violation of intrinsic preconditions (an unreachable_unchecked being reached, calling copy_nonoverlapping with overlapping ra
Building a static analyzer into the C compiler offers several advantages over having a separate tool, because the analyzer can track what the compiler and assembler are doing intimately. As a Red Hat employee, I work on GCC, the GNU Compiler Collection. Our static analyzer is still experimental but is making big strides in interesting areas, including a taint mode and an understanding of assembly-
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く