① 計算機執行高級語言源程序的方法有哪些並分析不同方法的區別和處理過程。
高級語言程序經過編譯和解釋,變成目標程序。下面是高級語言程序執行的內部全過程:
高級語言程序→預處理程序→源程序→編譯程序→目標匯編語言→匯編程序→可再裝配的機器代碼→裝配、連接一個編輯程序(添加可再裝配目標文件)→絕對機器代碼
這就是方法。
② 高級語言、低級語言、偽代碼、編譯程序、匯編程序、解釋程序、機器語言、自然語言、流程圖
高級語言是相對於低級語言說的,低級語言官方名稱為匯編語言,就是計算機的硬體能直接識別並執行的語言,高級語言不能被計算直接識別必須由計算轉換成匯編語言才能執行。
偽代碼是編寫者為了方便、減化程序,讓程序更加簡捷、明了、直觀的編寫程序,方便自己和讀者讀懂程序自己定義一的指令,就像為了方便稱乎你而不用描述你長什麼樣、穿什麼衣服等等給你起的名字一樣。
編譯程序是編寫程序的過程,就像你把中文翻譯成英文的過程就叫翻譯一樣,只不過那個叫編譯,因為它不只是要翻譯,還要編寫。
匯編程序是由匯編語言直接編寫的一段完整的代碼,能夠表達編寫者的意圖、目的一段代碼,就如同游戲程序一樣,能夠執行的就像你要做一個程序算出一個值一樣,必須完整的才叫程,不完整的只能叫一段匯編代碼,因為它不能執行或不能完整的表達作者的意圖。
解釋程序就是了解編寫者的目的、意圖對其編寫好的程序逐行分析並加以解釋。
機器語言就是比匯編更加基礎的一類語言,就是二進制代碼比如說不得010111000011001之類的語言,能直接被計算執行,其實計算是讀不懂匯編語言的,必須由內存中事先存好的機器語言對匯編語言的定義,比如說啊move這個是匯編語言中的移動指令,咱人能讀懂是因為事先有人把這個語言存在人的大腦里了,但計算機不懂啊,所以必須轉化為機器語言再執行。
自然語言就是自然話了,就是人能讀懂的語言,電腦不一定明白的話,就象中國話一樣。
流程圖是編寫者為了方便編寫程序或直觀的分析程序上下句之間的過程,自己畫的一個流程圖,就象你要去吃飯,但不知怎麼去吃飯的地方,這樣給你畫一個路線圖就明白了。
③ 高級語言和匯編語言翻譯成機器語言的過程要經過什麼過程
編譯程序將高級語言編寫的程序翻譯成機器語言程序需要執行下列選項中的那三個步驟?(多選)
A、翻譯 B、編譯 C、連接 D、裝入
選BCD
編譯程序進行編譯生成目標文件,然後是連接成鏈接文件,最後就是裝入
④ 高級語言的編譯過程,經過哪幾個步驟
開發C程序有四個步驟:編輯、編譯、連接和運行。
任何一個體系結構處理器上都可以使用C語言程序,只要該體系結構處理器有相應的C語言編譯器和庫,那麼C源代碼就可以編譯並連接到目標二進制文件上運行。
1、預處理:導入源程序並保存(C文件)。
2、編譯:將源程序轉換為目標文件(Obj文件)。
3、鏈接:將目標文件生成為可執行文件(EXE文件)。
4、運行:執行,獲取運行結果的EXE文件。
(4)高級語言的編譯過程和解釋過程流程圖擴展閱讀:
將C語言代碼分為程序的幾個階段:
1、首先,對源代碼文件進行測試。以及相關的頭文件,比如Stdio。H.CPP預處理為。我的文件。預編譯。該文件不包含任何宏定義,因為所有宏都已展開,且包含的文件已插入。我提起。
2、編譯過程是對預處理後的文件進行詞法分析、語法分析、語義分析和優化,生成相應的匯編代碼文件。這個過程通常是整個程序的核心部分,也是最復雜的過程之一。
3、匯編程序不直接輸出可執行文件,而是輸出目標文件。匯編程序可以調用LD來生成可運行的可執行程序。也就是說,您需要鏈接到大量文件以獲得最終可執行文件「a.out」。
4、在鏈接過程中,其他目標文件中定義的函數調用指令需要重新調整,而其他目標文件中定義的變數也存在同樣的問題。
⑤ 計算機高級語言特點是什麼常見的語種有哪些
計算機語言(Computer Language)指用於人與計算機之間通訊的語言。計算機語言是人與計算機之間傳遞信息的媒介。計算機系統最大特徵是指令通過一種語言傳達給機器。為了使電子計算機進行各種工作,就需要有一套用以編寫計算機程序的數字、字元和語法規劃,由這些字元和語法規則組成計算機各種指令(或各種語句)。這些就是計算機能接受的語言。
一、計算機高級語言特點
高級語言是從人類的邏輯思維角度出發的計算機語言,抽象程度大大提高,需要經過編譯成特定機器上的目標代碼才能執行,一條高級語言的語句往往需要若干條機器指令來完成。高級語言獨立於機器的特性是靠編譯器為不同機器生成不同的目標代碼(或機器指令)來實現的。
二、計算機高級語言分類
分類方法:程序的執行方式
類別:編譯型語言和解釋型語言
1.編譯型語言:
使用專門的編譯器針對特點平台將高級語言一次性翻譯成可被該平台硬體執行的機器碼,並包裝秤該平台可識別的可執行程序的格式,該過程叫編譯Compile,可執行程序可以脫離開發環境,在特定平台獨立運行。
有些程序編譯結束後,還可能需要對其他目標代碼進行連接,將多個目標代碼模塊組成最終的可執行程序。
優點:可以脫離開發環境獨立運行,執行效率比較高;
缺點:可執行程序不能跨平台;
2.解釋型語言:
使用解釋器對源代碼逐行解釋成特定平台的機器碼並執行,相當於把編譯型語言中的編譯和解釋過程混合在一起同時完成。
缺點:每次執行該語言的程序都需要進行一次編譯,效率低,不能脫離解釋器獨立運行;
優點:可實現跨平台執行;
三、計算機常見語種
常見語言
1.C語言
C語言是Dennis Ritchie在七十年代創建的,它功能更強大且與ALGOL保持更連續的繼承性,而ALGOL則是COBOL和FORTRAN的結構化繼承者。C語言被設計成一個比它的前輩更精巧、更簡單的版本,它適於編寫系統級的程序,比如操作系統。在此之前,操作系統是使用匯編語言編寫的,而且不可移植。C語言是第一個使得系統級代碼移植成為可能的編程語言。
優點:有益於編寫小而快的程序。很容易與匯編語言結合。具有很高的標准化,因此其他平台上的各版本非常相似。
缺點:不容易支持面向對象技術。語法有時會非常難以理解,並造成濫用。
移植性:C語言的核心以及ANSI函數調用都具有移植性,但僅限於流程式控制制、內存管理和簡單的文件處理。其他的東西都跟平台有關。比如說,為Windows和Mac開發可移植的程序,用戶界面部分就需要用到與系統相關的函數調用。這一般意味著你必須寫兩次用戶界面代碼,不過還好有一些庫可以減輕工作量。
2.C++
C++語言是具有面向對象特性的C語言的繼承者。面向對象編程,或稱OOP是結構化編程的下一步。OO程序由對象組成,其中的對象是數據和函數離散集合。有許多可用的對象庫存在,這使得編程簡單得只需要將一些程序「建築材料」堆在一起(至少理論上是這樣)。比如說,有很多的GUI和資料庫的庫實現為對象的集合。
優點:組織大型程序時比C語言好得多。很好的支持面向對象機制。通用數據結構,如鏈表和可增長的陣列組成的庫減輕了由於處理低層細節的負擔。
缺點:非常大而復雜。與C語言一樣存在語法濫用問題。比C慢。大多數編譯器沒有把整個語言正確的實現。
移植性:比C語言好多了,但依然不是很樂觀。因為它具有與C語言相同的缺點,大多數可移植性用戶界面庫都使用C++對象實現。
3.匯編語言
匯編是第一個計算機語言。匯編語言實際上是你計算機處理器實際運行的指令的命令形式表示法。這意味著你將與處理器的底層打交道,比如寄存器和堆棧。如果要找的是類英語且有相關的自我說明的語言,這不是你想要的。 特別注意:語言的名字叫「匯編」。把匯編語言翻譯成真實的機器碼的工具叫「匯編程序」。把這門語言叫做「匯編程序」這種用詞不當相當普遍,因此,請從這門語言的正確稱呼作為起點出發。
優點:最小、最快的語言。匯編高手能編寫出比任何其他語言能實現的快得多的程序。你將是利用處理器最新功能的第一人,因為你能直接使用它們。
缺點:難學、語法晦澀、堅持效率,造成大量額外代碼—不適於心臟虛弱者。
移植性:接近零。因為這門語言是為一種單獨的處理器設計的,根本沒移植性可言。如果使用了某個特殊處理器的擴展功能,你的代碼甚至無法移植到其他同類型的處理器上(比如,AMD的3DNow指令是無法移植到其它奔騰系列的處理器上的)。
4.Pascal語言
Pascal語言是由NicolasWirth在七十年代早期設計的,因為他對於FORTRAN和COBOL沒有強制訓練學生的結構化編程感到很失望,「空心粉式代碼」變成了規范,而當時的語言又不反對它。Pascal被設計來強行使用結構化編程。最初的Pascal被嚴格設計成教學之用,最終,大量的擁護者促使它闖入了商業編程中。當Borland發布IBMPC上的TurboPascal時,Pascal輝煌一時。集成的編輯器,閃電般的編譯器加上低廉的價格使之變得不可抵抗,Pascal編程了為MS-DOS編寫小程序的首選語言。然而時日不久,C編譯器變得更快,並具有優秀的內置編輯器和調試器。Pascal在1990年Windows開始流行時走到了盡頭,Borland放棄了Pascal而把目光轉向了為Windows編寫程序的C++。TurboPascal很快被人遺忘。
基本上,Pascal比C簡單。雖然語法類似,它缺乏很多C有的簡潔操作符。這既是好事又是壞事。雖然很難寫出難以理解的「聰明」代碼,它同時也使得一些低級操作,如位操作變得困難起來。
優點:易學、平台相關的運行(Dephi)非常好。
缺點:「世界潮流」面向對象的Pascal繼承者(Mola、Oberon)尚未成功。語言標准不被編譯器開發者認同。
.移植性:很差。語言的功能由於平台的轉變而轉變,沒有移植性工具包來處理平台相關的功能。
5.VisualBasic
優點:整潔的編輯環境。易學、即時編譯導致簡單、迅速的原型。大量可用的插件。雖然有第三方的DirectX插件,DirectX7已准備提供VisualBasic的支持。
缺點:程序很大,而且運行時需要幾個巨大的運行時動態連接庫。雖然表單型和對話框型的程序很容易完成,要編寫好的圖形程序卻比較難。調用Windows的API程序非常笨拙,因為VB的數據結構沒能很好的映射到C中。有OO功能,但卻不是完全的面向對象。
移植性:非常差。因為VisualBasic是微軟的產品,你自然就被局限在他們實現它的平台上。
6.Java
Java是由Sun最初設計用於嵌入程序的可移植性「小C++」。在網頁上運行小程序的想法著實吸引了不少人的目光,於是,這門語言迅速崛起。事實證明,Java不僅僅適於在網頁上內嵌動畫—它是一門極好的完全的軟體編程的小語言。「虛擬機」機制、垃圾回收以及沒有指針等使它很容易實現不易崩潰且不會泄漏資源的可靠程序。
雖然不是C++的正式續篇,Java從C++中借用了大量的語法。它丟棄了很多C++的復雜功能,從而形成一門緊湊而易學的語言。不像C++,Java強制面向對象編程,要在Java里寫非面向對象的程序就像要在Pascal里寫「空心粉式代碼」一樣困難。
優點:二進制碼可移植到其他平台。程序可以在網頁中運行。內含的類庫非常標准且極其健壯。自動分配合垃圾回收避免程序中資源泄漏。網上數量巨大的代碼常式。
缺點:使用一個「虛擬機」來運行可移植的位元組碼而非本地機器碼,程序將比真正編譯器慢。有很多技術(例如「即時」編譯器)很大的提高了Java的速度,不過速度永遠比不過機器碼方案。早期的功能,如AWT沒經過慎重考慮,雖然被正式廢除,但為了保持向後兼容不得不保留。越高級的技術,造成處理低級的機器功能越困難,Sun為這門語言增加新的「受祝福」功能的速度實在太慢。
移植性:最好的,但仍未達到它本應達到的水平。低級代碼具有非常高的可移植性,但是,很多UI及新功能在某些平台上不穩定。
7.創作工具
多數創作工具有點像VisualBasic,只是它們工作在更高的層次上。大多數工具使用一些拖拉式的流程圖來模擬流程式控制制。很多內置解釋的程序語言,但是這些語言都無法像上面所說的單獨的語言那樣健壯。
優點:快速原型—如果你的游戲符合工具製作的主旨,你或許能使你的游戲跑得比使用其他語言快。在很多情況下,你可以創造一個不需要任何代碼的簡單游戲。使用插件程序,如Shockware及IconAuthor播放器,你可以在網頁上發布很多創作工具生成的程序。
缺點:專利權,至於將增加什麼功能,你將受到工具製造者的支配。你必須考慮這些工具是否能滿足你游戲的需要,因為有很多事情是那些創作工具無法完成的。某些工具會產生臃腫得可怕的程序。
移植性:因為創作工具是具有專利權的,你的移植性以他們提供的功能息息相關。有些系統,如Director可以在幾種平台上創作和運行,有些工具則在某一平台上創作,在多種平台上運行,還有的是僅能在單一平台上創作和運行。[5]
8.C#
C#是一種精確、簡單、類型安全、面向對象的語言。其是.Net的代表性語言。什麼是.Net呢?按照微軟總裁兼首席執行官Steve Ballmer把它定義為:.Net代表一個集合,一個環境,它可以作為平台支持下一代Internet的可編程結構。
C#的特點:
1.完全面向對象。
2.支持分布式。
3.自動管理內存機制。
4.安全性和可移植性。
5.指針的受限使用。
6.多線程。和Java類似,C#可以由一個主進程分出多個執行小系統的多線程。
C#是在Java流行起來後所誕生的一種新的程序開發語言。
⑥ 為什麼高級語言中存在編譯和解釋兩種編譯方式
編譯方式:事先編好的一個叫做編譯程序的機器語言程序放在計算機中。當高級語言編的源程序輸入計算機時,編譯程序就把源程序自動整個地翻譯成用機器指令表示的目標程序。
解釋方式:事先編好的一個叫做解釋程序的機器語言程序放在計算機中,當高級語言源程序輸入計算機後,解釋程序自動地逐句翻譯源程序,譯一句執行一句。
因此往往需要特定的平台,由於程序執行的是編譯好的二進制文件,這種編譯一旦完成,那麼就只能在特定平台上運行了:編譯是指將源語言轉化為目標計算機的可執行二進制代碼兩者互有優劣,因此速度比較快(相對下面的解釋)。
解釋方式:事先編好的一個叫做解釋程序的機器語言程序放在計算機中,當高級語言源程序輸入計算機後,解釋程序自動地逐句翻譯源程序,譯一句執行一句。 可以這么理解,編譯的結果是另外一種語言,而解釋的就是一種中間語言。
⑦ 高級語言的編譯過程,經過哪幾個步驟
1
.此法分析器!2
。語法分析器
3
語義分析器
4中間代碼生成
5.代碼優化器
6.代碼生成器
7。目標程序
再看看別人怎麼說的。
⑧ 高級程序設計語言的編譯程序和解釋程序屬於_________。
本題選D;高級程序設計語言的編譯程序和解釋程序屬於系統軟體
一般我們分為系統軟體和應用軟體。
1.系統軟體:
操作系統(win7,xp,Linux等等),語言編譯程序(VC,VS,eclipse等),資料庫管理(oracle,MySQL,sqlite3等)。。
2.應用軟體:
這個就很普遍了,比如游戲軟體,繪圖軟體。。。
(8)高級語言的編譯過程和解釋過程流程圖擴展閱讀:
編譯程序與解釋程序的區別
1.編譯和解釋是語言處理的兩種基本方式。編譯過程包括詞法分析、語法分析、語義分析、中間代碼生成、代碼優化和目標代碼生成等階段,以及符號表管理和出錯處理模塊。解釋過程在詞法、語法和語義分析方面與編譯程序的工作原理基本相同,但是在運行用戶程序時,它直接執行源程序或源程序的內部形式。
2.在編譯方式下,機器上運行的是與源程序等價的目標程序,源程序和編譯程序都不再參與目標程序的執行過程;而在解釋方式下,解釋程序和源程序(或其某種等價表示)要參與到程序的運行過程中,運行程序的控制權在解釋程序。解釋器翻譯源程序時不產生獨立的目標程序,而編譯器則需將源程序翻譯成獨立的目標程序。
參考資料:網路-系統軟體
⑨ 程序的編譯過程和解釋過程是怎樣的
【編譯程序】:把用高級程序設計語言書寫的源程序,翻譯成等價的計算機匯編語言或機器語言的目標程序的翻譯程序。
【解釋程序】:對源程序邊解釋翻譯成機器代碼邊執行的高級語言程序。
高級語言的程序的執行的途徑:
1)源程序(高級語言)->【編譯程序】->目標程序(匯編語言)->【匯編程序】->目標程序(機器語言)->計算結果
2)源程序(高級語言)->【編譯程序】->目標程序(機器語言)->計算結果
3)源程序(高級語言)->【解釋程序】(逐條讀出源程序中的語句並解釋執行,即在解釋程序的執行過程中並不產生目標程序)->計算結果