回覆列表
  • 1 # 何以笙丶丶

    你問的應該是怎麼識別程式語言的吧。 這屬於編譯器原理方面。

    每一種架構的計算機都有對應的指令集,為二進位制指令碼(CPU指令),計算機能夠直接執行的便是這些指令。為了便於記憶,人們用匯編碼助記並與之一一對應。

    一般的編譯器就是一種把一種語言編譯成計算機可直接執行的CPU指令的程式。

    一個現代編譯器的主要工作流程如下:

    源程式(source code)→預處理器(preprocessor)→編譯器(compiler)→彙編程式(assembler)→目標程式(object code)→聯結器(連結器,Linker)→可執行程式(executables])

    工作原理

    翻譯是從原始碼(通常為高階語言)到能直接被計算機或虛擬機器執行的目的碼(通常為低階語言或機器言)。然而,也存在從低階語言到高階語言的編譯器,這類編譯器中用來從由高階語言生成的低階語言程式碼重新生成高階語言程式碼的又被叫做反編譯器。也有從一種高階語言生成另一種高階語言的編譯器,或者生成一種需要進一步處理的的中間程式碼的編譯器(又叫級聯)。

    典型的編譯器輸出是由包含入口點的名字和地址以及外部呼叫(到不在這個目標檔案中的函式呼叫)的機器程式碼所組成的目標檔案。一組目標檔案,不必是同一編譯器產生,但使用的編譯器必需採用同樣的輸出格式,可以連結在一起並生成可以由使用者直接執行的可執行程式。

    機器程式碼的生成是最佳化變型後的中間程式碼轉換成機器指令的過程。現代編譯器主要採用生成彙編程式碼(assembly code)的策略,而不直接生成二進位制的目的碼(binary object code)。即使在程式碼生成階段,高階編譯器仍然要做很多分析,最佳化,變形的工作。例如如何分配暫存器(register allocatioin),如何選擇合適的機器指令(instruction selection),如何合併幾句程式碼成一句等等。

    編譯器的工作原理:

    詞法分析,語法分析,中間程式碼生成,最佳化,目的碼生成。

  • 中秋節和大豐收的關聯?
  • 職業規劃一般從哪幾個方面來說?