簡體   English   中英

Dafny 到 Python 代碼是否經過認證? 如果是這樣,為什么 Python 沒有原生的前置選項? 如果不是,為什么要翻譯?

[英]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 沒有某種原生的prepostassert (不是 Python 的assert )。 如果答案是否定的,那么問題是:將“認證”代碼轉換為“非認證”代碼有什么意義?

只編譯可執行代碼,不編譯規范。 function不是,而function method是。 查看參考手冊以獲取更多詳細信息。 如果您發現記錄在案的工作與您的體驗不符,請考慮開工單。

翻譯成 Python 是為了保留程序的語義。 由於此過程未經驗證,因此無法知道它在所有情況下都會這樣做。 用必要的合同結構擴展像 Python 這樣的語言並為整個語言編寫驗證器聽起來像是一項艱巨的任務,但這最終是 Python 社區的問題,而不是我們。 編譯的要點是它可以讓你運行你的 Dafny 程序。 如果我們將編譯為匯編,您可能不會擔心保留規范。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM