㈠ 偽代碼是什麼意思
偽代碼是一種非正式的,類似於英語結構的,用來描述模塊結構圖的語言。它是半形式化、不標準的語言,可以將整個演算法運行過程的結構用接近自然語言的形式(可以使用任何一種熟悉的文字,關鍵是把程序的意思表達出來)描述出來。
使用偽代碼的目的是使被描述的演算法可以容易地以任何一種編程語言(Pascal,C,Java等)實現。因此,偽代碼必須結構清晰、代碼簡單、可讀性好,並且類似自然語言。 介於自然語言與編程語言之間。以編程語言的書寫形式指明演算法職能。使用偽代碼, 不用拘泥於具體實現。
簡單示例:輸入3個數,列印輸出其中最大的數。可用如下的偽代碼表示:
Begin(演算法開始)
輸入 A,B,C
IF A>B 則 A→Max
否則 B→Max
IF C>Max 則 C→Max
Print Max
End (演算法結束)
(1)偽編譯器是什麼擴展閱讀
偽代碼應用領域
偽代碼中常被用於技術文檔和科學出版物中來表示演算法,也被用於在軟體開發的實際編碼過程之前表達程序的邏輯。偽代碼不是用戶和分析師的工具,而是設計師和程序員的工具。計算機科學在教學中通常使用虛擬碼,以使得所有的程序員都能理解。當考慮演算法功能(而不是其語言實現)時,偽代碼常常得到應用。
偽代碼只是像流程圖一樣用在程序設計的初期,幫助寫出程序流程。如果把全部的程序流程寫下來必定可能會浪費很多時間,那麼這個時候可以採用偽代碼方式。
簡單地說,偽代碼是讓人便於理解的代碼,是不依賴於語言的,用來表示程序執行過程,而不一定能編譯運行的代碼。
㈡ 編譯器是什麼意思,是做什麼的
編譯器
編譯器是一種特殊的程序,它可以把以特定編程語言寫成的程序變為機器可以運行的機器碼。我們把一個程序寫好,這時我們利用的環境是文本編輯器。這時我程序把程序稱為源程序。在此以後程序員可以運行相應的編譯器,通過指定需要編譯的文件的名稱就可以把相應的源文件(通過一個復雜的過程)轉化為機器碼了。
下面我們看看它是如何工作的。首先編譯器進行語法分析,也就是要把那些字元串分離出來。然後進行語義分析,就是把各個由語法分析分析出的語法單元的意義搞清楚。最後生成的是目標文件,我們也稱為obj文件。再經過鏈接器的鏈接就可以生成最後的可執行代碼了。有些時候我們需要把多個文件產生的目標文件進行鏈接,產生最後的代碼。我們把一過程稱為交叉鏈接。
有一個稱為LCC的編譯器,還挺不錯的;還有一個用於分析其規則的小工具;
㈢ 編譯器是什麼
簡單講,編譯器就是將「一種語言(通常為高級語言)」翻譯為「另一種語言(通常為低級語言)」的程序。一個現代編譯器的主要工作流程:源代碼 (source code) → 預處理器 (preprocessor) → 編譯器 (compiler) → 目標代碼 (object code) → 鏈接器 (Linker) → 可執行程序 (executables)
高級計算機語言便於人編寫,閱讀交流,維護。機器語言是計算機能直接解讀、運行的。編譯器將匯編或高級計算機語言源程序(Source program)作為輸入,翻譯成目標語言(Target language)機器代碼的等價程序。源代碼一般為高級語言 (High-level language), 如Pascal、C、C++、Java、漢語編程等或匯編語言,而目標則是機器語言的目標代碼(Object code),有時也稱作機器代碼(Machine code)。
對於C#、VB等高級語言而言,此時編譯器完成的功能是把源碼(SourceCode)編譯成通用中間語言(MSIL/CIL)的位元組碼(ByteCode)。最後運行的時候通過通用語言運行庫的轉換,編程最終可以被CPU直接計算的機器碼(NativeCode)。
編譯是從源代碼(通常為高級語言)到能直接被計算機或虛擬機執行的目標代碼(通常為低級語言或機器語言)的翻譯過程。然而,也存在從低級語言到高級語言的編譯器,這類編譯器中用來從由高級語言生成的低級語言代碼重新生成高級語言代碼的又被叫做反編譯器。也有從一種高級語言生成另一種高級語言的編譯器,或者生成一種需要進一步處理的的中間代碼的編譯器(又叫級聯)。
典型的編譯器輸出是由包含入口點的名字和地址, 以及外部調用(到不在這個目標文件中的函數調用)的機器代碼所組成的目標文件。一組目標文件,不必是同一編譯器產生,但使用的編譯器必需採用同樣的輸出格式,可以鏈接在一起並生成可以由用戶直接執行的EXE,
所以我們電腦上的文件都是經過編譯後的文件。
㈣ 編譯器是什麼意思
gcc(gnu compiler collection,gnu編譯器集合),是一套由 gnu 開發的編程語言編譯器。以及大部分unix系統的程序庫和工具。
gnu是「gnu's not unix」的遞歸縮寫。
㈤ 偽指令的作用是什麼 偽指令是否在程序運行時執行
偽指令是用於代碼編譯的,硬體並不認識匯編語言,它們只認機器語言(機器語言是純數字的,人看起來,太不直觀了),這就產生了,程序的運行涉及由高級語言匯編成匯編語言,再由匯編語言編譯成機器語言,最後由硬體執行機器語言。編譯過程中,偽指令起作用,但偽指令不產生目標代碼,只是幫助編譯器准確的把其他指令編譯出來罷了。舉例子來說,匯編語言里的跳轉,程序員可以自己定義一個名字來代表跳轉的位置,這個名字就是一條偽指令,它指示了跳轉的位置,這樣編譯成機器語言的時候,編譯器就可以根據這個偽指令知道程序怎樣跳轉的,然後在機器語言中使用數字來標示跳轉關系(這些數字跟寄存器位置相關,不再是那些與寄存器無關的自定義出來的名字了)。所以,偽指令在代碼編譯過程中起作用,在程序運行時偽指令已經不存在了,因為代碼是編譯好後才執行的。
㈥ 編譯器是什麼意思
簡單講,編譯器就是將「一種語言(通常為高級語言)」翻譯為「另一種語言(通常為低級語言)」的程序。一個現代編譯器的主要工作流程:源代碼 (source code) → 預處理器 (preprocessor) → 編譯器 (compiler) → 目標代碼 (object code) → 鏈接器 (Linker) → 可執行程序 (executables)
高級計算機語言便於人編寫,閱讀交流,維護。機器語言是計算機能直接解讀、運行的。編譯器將匯編或高級計算機語言源程序(Source program)作為輸入,翻譯成目標語言(Target language)機器代碼的等價程序。源代碼一般為高級語言 (High-level language), 如Pascal、C、C++、Java、漢語編程等或匯編語言,而目標則是機器語言的目標代碼(Object code),有時也稱作機器代碼(Machine code)。
對於C#、VB等高級語言而言,此時編譯器完成的功能是把源碼(SourceCode)編譯成通用中間語言(MSIL/CIL)的位元組碼(ByteCode)。最後運行的時候通過通用語言運行庫的轉換,編程最終可以被CPU直接計算的機器碼(NativeCode)。
㈦ 編譯器是什麼
一個現代編譯器的主要工作流程如下:源代碼(sourcecode)→預處理器(preprocessor)→編譯器(compiler)→匯編程序(assembler)→目標代碼(objectcode)→連接器(Linker)→可執行程序(executables)編譯語言與解釋語言對比:許多人將高級程序語言分為兩類:編譯型語言和解釋型語言。然而,實際上,這些語言中的大多數既可用編譯型實現也可用解釋型實現,分類實際上反映的是那種語言常見的實現方式。(但是,某些解釋型語言,很難用編譯型實現。比如那些允許在線代碼更改的解釋型語言。)編譯器是一種特殊的程序,它可以把以特定編程語言寫成的程序變為機器可以運行的機器碼。把一個程序寫好,這時利用的環境是文本編輯器。這時我程序把程序稱為源程序。在此以後程序員可以運行相應的編譯器,通過指定需要編譯的文件的名稱就可以把相應的源文件(通過一個復雜的過程)轉化為機器碼了。
㈧ 偽指令的原理
不要感到迷惑,偽指令是幫助編譯程序編譯而設置的指令,作用五花八門。
比如段描述符可以指定段起始邊界值,段模塊化組合屬性。數據和變數定義也是用到的偽指令。
這分兩個方面,一是我們的程序不只存在機器碼,它必須有一些人為規定的文件格式信息,程序之中用到的數據和變數,這些CPU並不執行的東西,然而又是程序所必須的。
還有一個方面,就是編譯器在編譯的時候需要知道一些預處理命令。不要認為編譯器是萬能的,實際上寫編譯器極其復雜,國內也沒有幾個公司做外包編譯器的。編譯器經過幾遍詞法掃描,句法分析等等,中間還要經過臨時用堆棧和表格存儲,最終才將編譯完成。為什麼規定匯編立即數的第一個數不能為字母?因為這樣可以讓編譯器省很多事情。
至於assume,也許只有閱讀masm的幫助文檔才能真正知道它在編譯中起到的作用。一個段假如 assume es:XX
那麼在這個段里 mov ax,[bx]實際上就會自動編譯成mov ax,es:[bx]
如果你有興趣,著名的《編碼的奧秘》和《編譯原理》兩本書將使你茅塞頓開。
我以為難得休息夠早了,沒想到各位居然。。。
㈨ 關於匯編語言的偽指令
偽指令是在匯編程序轉換成機器指令的時候就處理了的
就相當於那個C語言裡面的宏一樣,宏都在編譯的時候就處理了的
㈩ 什麼是編譯器
簡單講,編譯器就是將「一種語言(通常為高級語言)」翻譯為「另一種語言(通常為低級語言)」的程序。一個現代編譯器的主要工作流程:源代碼 → 預處理器 → 編譯器 → 目標代碼 → 鏈接器→ 可執行程序。