Cryptol_04_flow方程式/同義語/クラス/モジュール

クリプトールストリーム方程式/同義語/クラス/モジュール

学習参考資料のダウンロード:https://cryptol.net/documentation.html

流れ方程式

  1. 下図のシフトフィードバックレジスタの場合、説明コードは次のとおりです。
    ここに画像の説明を挿入します

    as = [0x3F, 0xE2, 0x65, 0xCA] # new
    where
    new = [ a ^ b ^ c | a <- as
    | b <- drop`{
          
          1} as
    | c <- drop`{
          
          3} as ]
    

シノニム

  1. C言語でのtypedefの定義に似ていますが、より強力でパラメーター化できます。

    type Word8 = [8]
    type CheckedWord = (Word8, Bit)
    type Point a  = {
          
          x : [a], y : [a]}
    

クラス// Cppのクラスは概念ではありません

  1. ==など、複数のタイプで共有される動作を説明するために使用され、単一のタイプを比較してブール値を返します。

    Cryptol> :t (==)
    (==) : {
          
          a} (Eq a) => a -> a -> Bit
    

モジュール付きのプログラム構造

  1. Verilogのモジュールの概念と同様に、ファイルに含めることができるモジュールは1つだけであり、モジュールとファイル名は同じです。

  2. ファイル内のコメントされていないコードの最初の行は次のようになります。

    module utilities where

  3. 他のモジュールを使用する場合は、次の定義を使用できます。対応するファイルが現在のディレクトリで検索されます。

    import utilities

  4. Cppと同様のプライベート変数は、独自のモジュールのデータへのアクセスを防ぎます。

    private internalDouble x = x + x
    exportedDouble = x * 2
    

説明文書を見ただけでは理解しにくいので、次のステップはコードと併せて見ることです!

おすすめ

転載: blog.csdn.net/weixin_41754258/article/details/112132830