1

少し前にSoftware Abstractionsの第 2 版を入手しましたが、関数名の綴りについて記憶を新たにする必要があったとき、elems「ああ、よかった、判読しにくい手書きの文字を読もうとする代わりに、新しい版を確認できる」と思いました。初版の見返しにある注記。」

しかし、インデックスに「seq」や「elems」、その他のヘルパー関数の名前が見つかりません。またseq、付録 B の言語リファレンスでキーワードについての言及も見当たりません。

次の 1 つまたは複数に該当する可能性があります。どれの?

  • 私は何かが欠けています。(なに? どこ?)
  • このキーワードは、他の単項演算子のseqように厳密にはキーワードではないため、付録 B ではカバーされていません。set(説明してください!)
  • シーケンスのサポートは、第 2 版が発行された後に Alloy 4 に追加されたため、クイック ガイドの Alloy 4 の新機能の説明とWeb サイトの Alloy 4 の文法を参照して、本を補足する必要があります。(ああ、わかりました。ページは遅く、ビットは高速です。)
  • 他の ...

ここで一般的に役立つ質問をしようとすると、私は尋ねていると思います: Alloy Analyzer 4.2 (または任意の 4.*) によって実装された言語とソフトウェア抽象化第 2 版で定義された言語との間の関係は正確には何ですか?

4

1 に答える 1

3

現在の実装は、このオンライン ドキュメントに対応しています。

シーケンスは実際には言語の一部ではありません。x: seq Aのシンタックス シュガーと見なすことができx: Int -> A、すべてのユーティリティ関数 ( 、firstlastなどelems) はライブラリで定義されています ( 内util/sequence)。実際の実装はもう少し複雑ですが (ユーザーに like を書かせ、x.elems同時に型チェッカーを満足させることができるようにするためです)、概念的にはそうです。

于 2013-05-29T23:52:18.393 に答える