如果我有一個「宿主」應用程序在某個時刻執行並知道某些代碼的位置。那會是什麼叫如果然後閱讀代碼的實時,然後做如在此代碼創建一個窗口的正確響應:什麼是編程語言,如果它不被解釋或編譯
int main()
{
create magical mystical window()
}
我知道,如果一個語言直接編譯的代碼轉換成二進制它會被稱爲編譯語言,並且如果一種語言將該代碼轉換成另一種語言,它將被稱爲解釋型語言。
如果我有一個「宿主」應用程序在某個時刻執行並知道某些代碼的位置。那會是什麼叫如果然後閱讀代碼的實時,然後做如在此代碼創建一個窗口的正確響應:什麼是編程語言,如果它不被解釋或編譯
int main()
{
create magical mystical window()
}
我知道,如果一個語言直接編譯的代碼轉換成二進制它會被稱爲編譯語言,並且如果一種語言將該代碼轉換成另一種語言,它將被稱爲解釋型語言。
其實,你錯了什麼,你知道。
然而,事情並不那麼簡單。例如,Java被解釋,但它動態地編譯它運行的一些代碼,但是,我們仍然稱它爲解釋型語言。 C被稱爲編譯語言,但許多編譯器會將C轉換爲彙編器,然後將其彙編成處理器將運行的字節碼。因此,C實際上是一種編譯語言,但我們把它稱爲一種編譯語言,而且一些現代編譯器(不幸地)繞過了彙編語言的步驟。
因此,對於很多語言,它們是通過約定來確定的,以及它是如何使用的。但是,正如大衛·施瓦茨在他自己的答案評論這個問題只是說:
真的,這不是來描述執行過程作爲語言的屬性特別好的主意。
好的,謝謝。我會改變接受的答案,因爲它更詳細,並提到它被稱爲我不知道的「譯員」,並有很好的例子。 – Hyden
我知道編程語言讀取代碼並將其轉換爲另一種語言,然後編譯它將被稱爲解釋型語言。
不,這是帶有額外步驟的編譯語言。
你所描述的是一種解釋型語言,解釋者計算出每行代碼在運行時意味着什麼。
好的,謝謝。所以,爲了確保一種語言變成另一種語言,然後編譯出來仍然是一種編譯語言,而我所描述的是一種解釋語言? – Hyden
@Hydra是的。我應該指出,儘管C通常被認爲是一種編譯語言,但如果你願意的話,你可以創建一個C解釋器。同樣,可以爲大多數解釋型語言編譯編譯器。真的,將執行過程描述爲語言屬性並不是一個好主意。 –
如果代碼被轉換成另一種語言,它是一個「反編譯器」,而不是一個解釋器......「解釋器」正是你想要的。 –
謝謝,我現在明白,一種轉換爲另一種語言的語言稱爲反編譯語言,編譯成二進制語言的語言稱爲編譯語言,應用程序實時編譯的語言稱爲解釋語言。 – Hyden