將高級語言程序翻譯成機器語言程序的軟件稱為翻譯程序
翻譯程序有兩種,一種是編譯程序,一種是解釋程序
1編譯程序是將高級語言程序(如pascal ,fortran,c等)源代碼作為輸入,直接進行翻譯生成出機器語言的目標程序,然后再讓計算機執行這個目標程序,得到計算結果
編譯程序工作時,先分析,后綜合,從而得到目標程序,
分析指的是詞法分析和語法分析,綜合指的是代碼的優化,存儲的分配和代碼的生成
為了完成分析綜合任務,編譯程序對源程序進行一次甚至多次的掃描,每次掃描完成一項或多項任務,也有可能一項任務唄分成多次掃描才能完成,
eg:進行一項4次掃描的翻譯
(1)第一遍掃描做詞法分析
(2)第二遍掃描做語法分析
(3)第三遍掃描做代碼優化和存儲分配,
(4)第四遍掃描做代碼生成
另外,大多數掃描直接生成機器語言的目標代碼,但是有的也生成匯編語言的目標代碼,進而在轉化為機器語言的目標代碼
2解釋程序
同樣將源代碼(如basic語言)的程序作為輸入,解釋一句就提交計算機執行一次,並不形成目標文件,就想口語交際的中翻譯,說出一句翻譯一句,或者是終端的dos窗口,在終端輸入一條命令語句,解釋程序立刻返回給終端若干句;
這種只是適用於小型機器的計算問題,解釋程序的執行速度較慢,如果出現循環,也是重復着提交那么一句
在日常生活中,如果需要大量的計算,建議使用招待速度較快的編譯程序,雖然編譯程序較為復雜,但是一旦生成目標文件。以后就可以多次使用。對於小型的計算,就多采用解釋性的回話高級語言