㈠ 電腦跑程序……這是啥意思
計算機程序或者軟體程序(通常簡稱程序)是指一組指示計算機每一步動作的指令,通常用某種程序設計語言編寫,運行於某種目標體系結構上。
簡介:
計算機程序(英語:Computer program),也稱為軟體(英語:software),簡稱程序(英語:Program)是指一組指示計算機或其他具有信息處理能力裝置每一步動作的指令,通常用某種程序設計語言編寫,運行於某種目標體系結構上。打個比方,一個程序就像一個用漢語(程序設計語言)寫下的紅燒肉菜譜(程序),用於指導懂漢語和烹飪手法的人(體系結構)來做這個菜。
腳本程序
通常,計算機程序要經過編譯和鏈接而成為一種人們不易理解而計算機理解的格式,然後運行。未經編譯就可運行的程序通常稱之為腳本程序。
程序運行
為了一個程序運行,計算機載入程序代碼,可能還要載入數據,從而初始化成一個開始狀態,然後調用某種啟動機制。在最低層上,這些是由一個引導序列開始的。
在大多數計算機中,操作系統例如Windows等,載入並且執行很多程序。在這種情況下,一個計算機程序是指一個單獨的可執行的映射,而不是當前在這個計算機上運行的全部程序。
體系結構
在一台基於最常見的馮諾依曼體系結構(又稱Harvard Architecture)的計算機上,程序從某種外部設備,通常是硬碟,被載入到計算機里。 如果計算機選擇馮諾依曼體系結構,那麼程序就被載入入內存。指令序列順序執行,直到一條跳轉或轉移指令被執行,或者一個中斷出現。所有這些指令都會改變指令寄存器的內容。
基於這種體系計算機如果沒有程序的支持將無法工作。一個計算機程序是一系列指令的集合。
程序里的指令都是基於機器語言;程序通常首先用一種計算機程序設計語言編寫,然後用編譯程序或者解釋執行程序翻譯成機器語言。 有時,程序也可以用匯編語言編寫,匯編語言實質就是表示機器語言的一組記號-在這種情況下,用於翻譯的程序叫做匯編程序(Assembler)。
㈡ 單片機內部基本原理 bin文件如何跑起來 編譯器做了什麼
無論是單片機還是cpu內部主要有三種部件 ALU 控制器 寄存器。
這個要從編譯器開始講起,編譯器會給你編寫的軟體增加一個頭部,無論是MDK還是IAR等等,這個頭部是做了什麼工作那?頭部主要利用單片機寄存器上電後從FLASH將全局變數以及全局未初始化變數搬移倒RAM,增加堆棧 復位 中斷向量表 才開始從flash讀取你編寫的程序,因為編譯器已經把程序整個編碼為機器碼放在flash,有不太了解機器碼的可以再去了解,機器碼主要是運算加減搬移的那些操作,只不過單片機它就認識了。
單片機內部的控制器讀取flash的機器碼,通過內部R0-R15做數據中轉和RAM交換數據,通過ALU做運算,ALU非常擅長做邏輯的運算,寄存器是存放需要暫存處理的數據,使得它跑了起來。
編譯器----編譯器的程序----bin文件----機器碼----運行
㈢ flash里的編譯器錯誤是什麼意思啊
當發生錯誤時,flash里的編譯器就會產生錯誤代碼,每個代碼代表不同的錯誤原因。
以下是不同錯誤代碼表示的錯誤原因:
1000 對 _ 的引用不明確。
1003 不允許將訪問說明符與命名空間屬性結合使用。
1004 找不到命名空間,或者命名空間不是編譯時常量。
1006 super 表達式只能在類實例方法的內部使用。
1007 super 語句只能在類實例構造函數的內部使用。
1008 屬性無效。
1010 override 屬性只能在類的屬性定義中使用。
1011 virtual 屬性只能在類的屬性定義中使用。
1012 static 屬性只能在類內部的定義中使用。
1013 private 屬性只能在類的屬性定義中使用。
1014 不再支持 intrinsic 屬性。 ActionScript 3.0 does not support the intrinsic keyword.
1016 基類為 final 類。 無法擴展超類,因為它標記為 final。
1017 找不到基類 _ 的定義。
1018 類的定義 _ 重復。
1020 標記為 override 的方法必須覆蓋其它方法。
1021 函數的定義重復。 在同一個范圍內,不能使用相同的標識符名稱聲明多個函數。
1022 不能覆蓋 final 存取器。
1023 覆蓋不兼容。
1024 覆蓋沒有標記為 override 的函數。
1025 不能重新定義 final 方法。 不能擴展該方法,因為它在基類中標記為 final。
1026 構造函數必須是實例方法。
1027 函數不能同時為 static 和 override 函數。
1028 函數不能同時為 static 和 virtual 函數。
1029 函數不能同時為 final 和 virtual 函數。
1030 必須指定變數參數數組的名稱。
1033 不支持 virtual 變數。
1034 變數不能是 native。
1035 變數不能同時為 final 和 virtual。
1037 不能嵌套包。
1038 找不到 break 語句的目標。
1039 找不到 continue 語句的目標。
1040 標簽的定義重復。
1041 屬性是不可調用的。
1042 this 關鍵字不能在 static 方法中使用。
1043 命名空間未定義。
1044 介面方法 _(屬於命名空間 _)未經類 _ 實現。
1045 找不到介面 _。
1046 找不到類型,或者類型不是編譯時常量 _。
1047 參數的初始值未知,或不是編譯時常量。
1048 方法不能用作構造函數。
1049 對指定為常量的變數的賦值非法。
1050 不能賦給非引用值。
1051 返回值必須是 undefined。
1052 常量的初始值未知,或不是編譯時常量。
1053 存取器類型必須匹配。
1054 setter 定義的返回類型必須是 unspecified 或 void。
1058 屬性是只寫的。
1059 屬性是只讀的。 此屬性通過 getter 函數定義,因此,可以檢索該屬性的值。
1061 調用可能未定義的方法 _(通過靜態類型為 _ 的引用來調用)。 所要調用的方法未定義。
1063 無法打開文件 _。
1064 元數據無效。 無法識別此元數據。
1065 元數據的屬性不能包含多個元素。
1067 將 _ 類型的值隱式強制為無關 _ 類型。
1068 無法打開包含的文件 _。
1069 語法錯誤:應有定義或指令。 Check the syntax in the line.
1071 語法錯誤:定義關鍵字(如 function)應在屬性 _ 之後,而不是 _ 之後。
1072 語法錯誤:命名空間之前應有 xml。 正確的語句語法是 default xml namespace = ns。
1073 語法錯誤:應有 catch 或 finally 子句。
1075 語法錯誤:如果沒有「in」運算符,則不允許使用「each」關鍵字。
1076 語法錯誤:標識符之前應有左括弧。
1077 應有 CaseLabel。 在 switch 塊中,編譯器此時應該執行 case 語句。
1078 標簽必須是一個簡單的標識符。
1079 super 表達式必須具有一個操作數。
1080 應有遞增或遞減運算符。
1082 括弧內應有一個表達式。
1083 語法錯誤:遇到意外的 _。 代碼行缺少某些信息。在下面的示例中,最後一個加號的後面必須帶有某個表達式。
1084 語法錯誤:應有 _(_ 之前)。 此處不需要該表達式。
1086 語法錯誤:_ 之前應有分號。
1087 語法錯誤:程序結束之後找到額外的字元。
1093 語法錯誤。
1094 語法錯誤:字元串文字必須在換行符之前終止。
1095 語法錯誤:字元串文字必須在換行符之前終止。
1097 語法錯誤:輸入已在到達字元串文字的右引號之前結束。
1099 語法錯誤。
1100 語法錯誤:XML 沒有匹配的開始和結束標簽。
1102 不能刪除超級後代。
1103 命名空間的定義重復。 已多次定義該命名空間。請刪除或修改重復的定義。
1105 賦值的目標必須是引用值。 可以給變數賦值,但是不能將一個值賦給另外一個值。
1106 遞增操作數必須是引用。 操作數必須是變數、數組中的元素或對象的屬性。
1107 遞增操作數無效。 操作數必須是變數、數組中的元素或對象的屬性。
1108 遞減操作數無效。 操作數必須是變數、數組中的元素或對象的屬性。
1109 應有表達式。 代碼的一部分缺少表達式。例如,下面的代碼會生成此錯誤(if 語句中缺少某項條件):
1110 缺少 XML 標簽名稱。
1112 可能會出現無限遞歸問題,因為此文件包含 _。
1113 在 _ 中檢測到循環類型引用。 類正在嘗試擴展超類。
1114 public 屬性只能在包的內部使用。
1115 internal 屬性只能在包的內部使用。
1116 用戶定義的命名空間屬性只能在頂級的類定義中使用。
1118 將靜態類型為 _ 的值隱式強制為可能無關的類型 _。
1119 訪問可能未定義的屬性 _(通過靜態類型為 _ 的引用來訪問)。
1121 getter 定義不能包含參數。
1122 setter 定義只能包含一個參數。
1123 setter 定義不能包含可選參數。
1124 getter 定義的返回類型不能為 void。 getter 函數模擬變數。
1125 介面中定義的方法不能包含方法體。
1126 函數沒有函數體。
1127 已多次指定屬性 _。 在同一語句中多次指定了某個屬性。
1129 介面的定義 _ 重復。 請更改或刪除重復的定義。
1130 構造函數不能指定返回類型。
1131 不能嵌套類。
1132 final 屬性只能在類中定義的方法內使用。
1133 native 屬性只能與函數定義結合使用。
1134 dynamic 屬性只能與類定義結合使用。
1135 語法錯誤:_ 不是有效類型。
1136 參數數目不正確。數目應為 _。 函數需要的參數數目與提供的參數數目不同。
1137 參數數目不正確。不應超過 _ 個。
1138 可選參數之後不允許有必需的參數。
1139 不允許在介面中聲明變數。
1140 如果參數是在 ...rest 參數定義關鍵字之後指定的,則只能是 Array 數據類型。
1141 一個類只能擴展另外一個類,而不能擴展介面。
1142 一個介面只能擴展另外一個介面,但 _ 是一個類。 正在試圖使用介面擴展類。
1143 override 屬性只能在類中定義的方法內使用。
1144 介面方法 _(屬於命名空間 _)使用類 _ 中不兼容的簽名進行實現。
1145 Native 方法不能包含方法體。 不能使用 native,因為它是一個保留關鍵字。
1146 構造函數不能是 getter 或 setter 方法。
1147 未指定 AS 源文件。
1149 return 語句不能在靜態初始化代碼中使用。
1150 protected 屬性只能在類的屬性定義中使用。
1151 定義 _(屬於命名空間 _)存在沖突。
1152 繼承的定義 _(屬於命名空間 _)存在沖突。
1153 只能將構造函數聲明為公共函數。
1154 只能在定義中指定 public、private、protected 或 internal 之一。
1155 不能在其它函數的內部嵌套存取器。
1156 不能使用新運算符實例化介面。
1157 介面成員不能聲明為 public、private、protected 或 internal。
1158 語法錯誤:函數體之前缺少左大括弧 ({)。
1159 return 語句不能在包的初始化代碼中使用。
1160 native 屬性不能在介面定義中使用。 不能使用 native,因為它是一個保留關鍵字。
1162 每個定義中只能使用一個命名空間屬性。
1163 方法 _ 與從介面 _ 繼承的定義沖突。
1165 介面屬性 _ 無效。
1166 Namespace declarations are not permitted in interfaces.
1167 類 _ 多次實現介面 _。 該類多次實現同一個介面。
1168 Illegal assignment to function _. 正在試圖重新定義函數。
1169 不允許在介面方法中使用命名空間屬性。
1170 函數沒有返回值。 如果返回類型不是 void,函數中每個可能的控制流都必須返回值。
1171 命名空間初始值必須是文字字元串或其它命名空間。
1172 找不到定義 _。
1173 標簽定義無效。
1176 將靜態類型為 _ 的值與可能無關的類型 _ 進行了比較。 在嚴格模式下會生成此錯誤。
1177 return 語句不能在全局初始化代碼中使用。
1178 嘗試訪問不可訪問的屬性 _(通過靜態類型為 _ 的引用)。
1180 調用可能未定義的方法 _。 僅當編譯器在嚴格模式下運行時,才會出現這種錯誤。
1181 轉發對基類 _ 的引用。
1182 包不能用作值 _。
1184 使用了類型 _ 的不兼容默認值,但是應為 _。
1185 switch 包含多個默認值,但是只能使用一個默認值。
1188 對類 _ 的賦值非法。
1189 試圖刪除固定屬性 _。只能刪除動態定義的屬性。 delete 會從對象中動態刪除定義的屬性。
1190 找不到基類,或基類不是編譯時常量。
1191 找不到介面,或介面不是編譯時常量。
1192 不允許在命名空間定義中使用 static 屬性。
1193 不能在類或其它介面定義中嵌套介面定義。
1194 prototype 屬性無效。
1195 試圖訪問不可訪問的方法 _(通過靜態類型為 _ 的引用)。
1196 語法錯誤:throw 之後應有表達式。
1197 類 _ 不能擴展 _,因為二者都與庫符號或主時間軸關聯。
1198 不允許在包的定義中使用屬性。
1199 內部錯誤:_。
1200 語法錯誤:for-in 初始值無效,只能有 1 個表達式。
1201 this、super、return 或 throw 語句之後不能出現 super 語句。
1202 訪問未定義的屬性 _(屬於包 _)。 正在試圖訪問包中未定義的變數。
1203 在基類 _ 中未找到默認構造函數。 如果有 1 個或多個必選參數,則必須使用 super() 語句顯式調用基類的構造函數。
1204 /* 無對應匹配項 */ . 發現了指示注釋開始位置的字元「/*」,但未發現指示注釋塊結束位置的對應字元「*/」。
㈣ 編譯器是什麼意思
gcc(gnu compiler collection,gnu編譯器集合),是一套由 gnu 開發的編程語言編譯器。以及大部分unix系統的程序庫和工具。
gnu是「gnu's not unix」的遞歸縮寫。
㈤ 編譯器是什麼
電腦是不會直接讀取你的程序的,就算是匯編也不會,它只會讀010101,而編譯器就承擔了把你的程序轉換成二進制,也就是電腦看的懂得樣子,有些編譯器還允許設置中間語言,比如,我把c++的程序編譯,中間語言是匯編語言,它會先轉換成匯編語言,再轉換成機器語言,不求採納,點個贊就好了
㈥ 編譯程序是什麼意思編譯是什麼意思
編譯程序(Compiler,compiling program)也稱為編譯器,是指把用高級程序設計語言書寫的源程序,翻譯成等價的機器語言格式目標程序的翻譯程序。
解釋程序是一種語言處理程序,在詞法、語法和語義分析方面與編譯程序的工作原理基本相同,但在運行用戶程序時,它直接執行源程序或源程序的內部形式(中間代碼)。
(6)編譯器跑了是什麼意思擴展閱讀:
結構:
編譯過程分為分析和綜合兩個部分,並進一步劃分為詞法分析、語法分析、語義分析、代碼優化、存儲分配和代碼生成等六個相繼的邏輯步驟。這六個步驟只表示編譯程序各部分之間的邏輯聯系,而不是時間關系。
編譯過程既可以按照這六個邏輯步驟順序地執行,也可以按照平行互鎖方式去執行。在確定編譯程序的具體結構時,常常分若干遍實現。對於源程序或中間語言程序,從頭到尾掃視一次並實現所規定的工作稱作一遍。每一遍可以完成一個或相連幾個邏輯步驟的工作。
可以把詞法分析作為第一遍;語法分析和語義分析作為第二遍;代碼優化和存儲分配作為第三遍;代碼生成作為第四遍。反之,為了適應較小的存儲空間或提高目標程序質量,也可以把一個邏輯步驟的工作分為幾遍去執行。
㈦ 什麼叫程序跑飛
程序跑飛是指系統受到某種干擾後,程序計數器PC的值偏離了給定的唯一變化歷程,導致程序運行偏離正常的運行路徑.程序跑飛因素及後果往往是不可預計的.在很多情況下,程序跑飛後系統會進入死循環而導致死機。
計算機程序(Computer Program),港、台譯做電腦程式。計算機程序是一組計算機能識別和執行的指令,運行於電子計算機上,滿足人們某種需求的信息化工具。
它以某些程序設計語言編寫,運行於某種目標結構體繫上。打個比方,程序就如同以英語(程序設計語言)寫作的文章,要讓一個懂得英語的人(編譯器)同時也會閱讀這篇文章的人(結構體系)來閱讀、理解、標記這篇文章。一般的,以英語文本為基礎的計算機程序要經過編譯、鏈接而成為人難以解讀,但可輕易被計算機所解讀的數字格式,然後放入運行。
程序是一個指令序列。
如果您在一個符合大多數的計算機上,操作系統例如Windows、Linux等,載入並執行很多的程序,在這種情況下,每一個程序是一個單獨的映射,並不是計算機上的所有可執行程序。
它是指為了得到某種結果而可以由計算機等具有信息處理能力的裝置執行的代碼化指令序列,或者可以被自動轉換成代碼化指令序列的符號化指令序列或者符號化語句序列。同一計算機程序的源程序和目標程序為同一作品。
㈧ 編譯器中run是什麼意思
就是運行的意思啊:
IDE中命令最終都是轉換成命令行中的命令執行的:
gcc -c test.c #也就是IDE中的compile
gcc -o test test.o #也就是IDE中的build,其實還有ld進行的鏈接工作
./test #這就是那個run對應的操作
㈨ 編譯器是什麼意思
簡單講,編譯器就是將「一種語言(通常為高級語言)」翻譯為「另一種語言(通常為低級語言)」的程序。一個現代編譯器的主要工作流程:源代碼 (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)。
㈩ 編譯器是什麼意思,是做什麼的
編譯器
編譯器是一種特殊的程序,它可以把以特定編程語言寫成的程序變為機器可以運行的機器碼。我們把一個程序寫好,這時我們利用的環境是文本編輯器。這時我程序把程序稱為源程序。在此以後程序員可以運行相應的編譯器,通過指定需要編譯的文件的名稱就可以把相應的源文件(通過一個復雜的過程)轉化為機器碼了。
下面我們看看它是如何工作的。首先編譯器進行語法分析,也就是要把那些字元串分離出來。然後進行語義分析,就是把各個由語法分析分析出的語法單元的意義搞清楚。最後生成的是目標文件,我們也稱為obj文件。再經過鏈接器的鏈接就可以生成最後的可執行代碼了。有些時候我們需要把多個文件產生的目標文件進行鏈接,產生最後的代碼。我們把一過程稱為交叉鏈接。
有一個稱為LCC的編譯器,還挺不錯的;還有一個用於分析其規則的小工具;