簡體   English   中英

如果編譯Python的exec和eval?

[英]If Python's exec and eval were compiled?

eval和exec的等價物是否可以用編譯語言存在? 如果是這樣,他們將如何編譯(粗略地說)?

當然,各種Lisp環境已有數十年的能力。 Lisp編譯器通常基於每個函數工作,編譯器和運行時系統協同工作。

當被要求eval某些內容時,Lisp運行時環境會將列表(數據結構)傳遞給編譯器進行編譯。 編譯器可以生成機器代碼(或者可能是字節碼,具體取決於系統),然后該函數將在機器級別調用,就像程序中的每個其他函數一樣。

對於初學者來說,python 一種編譯語言,它只是在運行時進行編譯。 話雖這么說,在任何其他編譯語言中實現eval所需要做的就是能夠運行編譯器(並動態加載目標代碼) - 你可以很容易地用Python(和一連串其他語言)來做這件事,因為編譯器是運行時的組成部分。 從技術上講,沒有什么可以阻止用C編寫的程序調用編譯器並在運行時加載結果(使用dlopen ),這不常見,因為C運行時不需要編譯器,因此大多數用戶沒有。

暫無
暫無

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

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