0

我目前的項目需要讀取存儲在配置文件中的數據並從中生成硬件抽象層代碼。配置數據結構以低級方式描述數字硬件(具有寄存器/位域的組件,加電覆位值等)。從這些數據中,我需要自動生成可供其他應用程序開發人員使用的Python代碼,以便在其上編寫應用程序。就像我之前說過的,這個想法是爲更高級別的應用程序提供HAL。如何設計生成Python代碼的代碼生成器

我的問題是:你會怎樣解決這個問題?對我來說,使用Python代碼生成器感覺很自然。我不知道這個任務是否有更好的工具(yacc/bison?)。我的設計思路是讓一個靜態程序組件得到重新分配,並處理通信處理,日誌和所有通用的東西。另一個與硬件相關的組件將完全自動生成並使用靜態組件的API。

+0

嗨,歡迎來到SO。你有沒有具體的問題和相關的問題?你有沒有任何代碼(如果是這樣,請在這裏發佈)。 –

回答

0

你想要做的是使用是Program Transformation System (PTS)

這些工具/框架接受一種或多種計算機語言的描述,然後允許您編寫將一種語言映射到另一種語言的規則。在你的情況下,你想爲硬件的「配置文件」定義一種語言,並且編寫規則將各種模式的配置文件映射到Python代碼片段(可能是聲明,可能是語句,或許是函數集)所需的硬件API。

堅持使用Python的PTS將簡單地限制你選擇幾乎空集,除非你認爲你自己要建立一個PTS。那也不會發生。認爲使用解析器是一個好的步驟是對的,但它只是真正可行的解決方案的一小部分;看看我的文章Life After Parsing爲什麼你想要一個完整的PTS。