ISAQuery 類別

ISA 列舉樹中所有節點的抽象基底類別。

列舉節點定義了從架構出發並經 ISA 轉換(如錯誤更正方案)修改的 ISA 搜尋空間結構。 它們可以用像(sum)和+(product)這類*運算子組合,建立複雜的列舉策略。

建構函式

ISAQuery()

方法

bind

建立一個以該節點為元件的 BindingNode。

範例:

enumerate

產生由此枚舉節點所代表的所有 ISA 實例。

populate

用來自此節點的指令填充來源圖。

與 enumerate不同,這不會產生 ISA 物件。 每個轉換都會查詢圖中符合需求的帕累托最優指令,並直接將產生的指令加入圖中。

bind

建立一個以該節點為元件的 BindingNode。

範例:

bind(name: str, node: ISAQuery) -> _BindingNode

參數

名稱 Description
name
必要

綁定元件的名稱。

node
必要

子列舉節點,可能包含 ISARefNodes。

傳回

類型 Description

一個以 self 為元件的 BindingNode。

enumerate

產生由此枚舉節點所代表的所有 ISA 實例。

abstract enumerate(ctx: ISAContext) -> Generator[ISA, None, None]

參數

名稱 Description
ctx
必要

包含共享狀態的列舉上下文,例如存取底層架構。

populate

用來自此節點的指令填充來源圖。

與 enumerate不同,這不會產生 ISA 物件。 每個轉換都會查詢圖中符合需求的帕累托最優指令,並直接將產生的指令加入圖中。

populate(ctx: ISAContext) -> int

參數

名稱 Description
ctx
必要

該列舉上下文將被填入來源圖。

傳回

類型 Description
int

此子樹所貢獻指令的起始節點索引。 消費者用來讓圖域查詢只看到來源節點。