[英]Is the Dafny to Python code certified? If so, why does not Python have native pre-post options? If not, why translate it?
我最近開始使用 Dafny 測試 Python 編譯器dafny build --target:py A.dfy
在其最新版本中提供。 我不確定它是否“運行良好”,因為它不會生成我在 Dafny 中擁有的所有功能(這正常嗎?)。
但是,關於將 Dafny 文件轉換為 Python 文件的用途,我有一個相當“哲學”的問題。 本質上,Dafny 代碼是一種“認證”代碼,因為它保證函數滿足它們的屬性(如果是pre
,則post
); 我的問題是,Python 代碼是否滿足同樣的要求?
如果答案是肯定的,那么問題是:為什么Python中沒有寫“認證”代碼? 我的意思是為什么 Python 沒有某種原生的pre
, post
和assert
(不是 Python 的assert
)。 如果答案是否定的,那么問題是:將“認證”代碼轉換為“非認證”代碼有什么意義?
只編譯可執行代碼,不編譯規范。 function
不是,而function method
是。 查看參考手冊以獲取更多詳細信息。 如果您發現記錄在案的工作與您的體驗不符,請考慮開工單。
翻譯成 Python 是為了保留程序的語義。 由於此過程未經驗證,因此無法知道它在所有情況下都會這樣做。 用必要的合同結構擴展像 Python 這樣的語言並為整個語言編寫驗證器聽起來像是一項艱巨的任務,但這最終是 Python 社區的問題,而不是我們。 編譯的要點是它可以讓你運行你的 Dafny 程序。 如果我們將編譯為匯編,您可能不會擔心保留規范。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.