⑴ 0x800A03EA 編譯器錯誤
腳本編譯器錯誤(0x800A03EA)---語句格式錯誤(只有else,找不到if)
關於Microsoft VBScript 編譯器錯誤比較多,我給你一一詳解.
ActiveServerPages,ASP0126(0x80004005)-->找不到包含文件
(0x80040E21)-->sql語句出錯(數據類型不匹配或表名(欄位名)錯誤或表處於編輯狀態,或表不存在於conn打開的資料庫中)
(0x80040E14)-->sql語句出錯(欄位名錯誤,或數據類型不匹配)
(0x80040E07)-->sql語句出錯(要插入或更新的欄位的類型與變數數據類型不匹配)
(0x80040E57)-->sql語句出錯(要插入或更新的數據溢出)
(0x80040E10)-->sql語句出錯(update欄位名或要更新的數據類型錯誤)
(0x80004005)-->sql語句出錯(要插入或更新的欄位的數值不能為空值)
(0x80004005) -->打開資料庫出錯,沒有在指定目錄發現資料庫
(0x80040E37)-->沒有發現表
MicrosoftVBscript運行時錯誤(0x800A000D)-->錯誤引用rs變數(rs對像已關閉或未定義)
MicrosoftVBscript運行時錯誤(0x800A01C2)-->vbscript腳本錯誤(vbscript語句出錯)
MicrosoftVBscript運行時錯誤(0x800A0006)-->vbscript腳本錯誤(溢出錯誤)
MicrosoftVBscript編譯器錯誤(0x800A040E)-->缺少loop
MicrosoftVBscript編譯器錯誤(0x800A03EA)-->缺少if或endif
MicrosoftVBscript編譯器錯誤(0x800A03EE)--> 語句未結束(缺少")")
MicrosoftVBscript編譯器錯誤(0x800A03F6)-->if語句出錯(缺少endif)
MicrosoftVBscript運行時錯誤(0x800A005B)-->缺少set
MicrosoftVBscript運行時錯誤(0x800A0005)-->變數未定義
MicrosoftVBscript編譯器錯誤(0x800A03F9)-->if語句缺少then
MicrosoftVBscript編譯器錯誤(0x800A0411)-->dim語句定義錯誤
MicrosoftVBscript編譯器錯誤(0x800A0408)-->sql語句錯誤(?????????????????)
Microsoft VBScript 運行時錯誤 (0x800A01B6)錯誤原因:set rs=server.create......你少了 set
ADODB.Recordset(0x800A0BB9)-->sql語句出錯(sql語句或conn語句未定義或對一個rs屬性進行賦值時發生錯誤)
ADODB.Recordset(0x800A0CC1)-->rs對像出錯(rs對像本身不存在或錯誤地引用了一個不存在的欄位名)
ADODB.Recordset(0x800A0BCD)-->rs對像出錯(記錄集中沒有記錄卻對記錄集進行操作)
ADODB.Recordset(0x800A0E78)-->rs對像出錯(記錄集不存在,缺少rs.open語句)
ADODB.Recordset(0x800A0CC1) -->rs對像出錯(引用了一個不存在的欄位名)
ADODB.Recordset(0x800A0E7D)-->conn定義錯誤
ADODB.Recordset(0x800A0CB3)-->資料庫以只讀方式打開,無法更新數據
如果 VBScript 語句結構違反了一個或多個 VBScript 腳本語言語法規則,就會產生 VBScript 語法錯誤。
錯誤通常在執行程序前,編譯程序時產生。 以下是53個語法錯誤:
錯誤編號 描述
十進制 十六進制 說明
1001 800A03E9 內存不足
1002 800A03EA 語法錯誤
1003 800A03EB 缺少「:」
1005 800A03ED 需要 '('
1006 800A03EE 需要 ')'
1007 800A03EF 缺少「]」
1010 800A03F2 需要標識符
1011 800A03F3 需要 '='
1012 800A03F4 需要 'If'
1013 800A03F5 需要 'To'
1014 800A03F6 需要 'End'
1015 800A03F7 需要 'Function'
1016 800A03F8 需要 'Sub'
1017 800A03F9 需要 'Then'
1018 800A03FA 需要 'Wend'
1019 800A03FB 需要 'Loop'
1020 800A03FC 需要 'Next'
1021 800A03FD 需要 'Case'
1022 800A03FE 需要 'Select'
1023 800A03FF 需要表達式
1024 800A0400 需要語句
1025 800A0401 需要語句的結束
1026 800A0402 需要整數常數
1027 800A0403 需要 'While' 或 'Until'
1028 800A0404 需要 'While,'、 'Until,' 或語句未結束
1029 800A0405 需要 'With'
1030 800A0406 標識符太長
1031 800A0407 無效的數
1032 800A0408 無效的字元
1033 800A0409 未結束的串常量
1034 800A040A 未結束的注釋
1037 800A040D 無效使用關鍵字 'Me'
1038 800A040E 'loop' 沒有 'do'
1039 800A040F 無效 'exit' 語句
1040 800A0410 無效 'for' 循環控制變數
1041 800A0411 名稱重定義
1042 800A0412 必須為行的第一個語句
1043 800A0413 不能賦給非Byval參數
1044 800A0414 調用 Sub 時不能使用圓括弧
1045 800A0415 需要文字常數
1046 800A0416 需要 'In'
1047 800A0417 需要 'Class'
1048 800A0418 必須在一個類的內部定義
1049 800A0419 在屬性聲明中需要 Let , Set 或 Get
1050 800A041A 需要 'Property'
1051 800A041B 參數數目必須與屬性說明一致
1052 800A041C 在類中不能有多個預設的屬性/方法
1053 800A041D 類初始化或終止不能帶參數
1054 800A041E Property Let 或 Set 至少應該有一個參數
1055 800A041F 不需要的 'Next'
1056 800A0420 只能在 『Property』 或 』Function』 或 』Sub』 上指定 』Default』
1057 800A0421 說明 'Default' 必須同時說明 'Public' "
1058 800A0422 只能在 Property Get 中指定 'Default'
VBScript 運行時錯誤
如果 VBScript 腳本執行系統無法實施的操作,則會產生 VBScript 運行時錯誤。只有在運行腳本、為變數表達式賦值或
分配內存時,才會產生 VBScript 運行時錯誤。 以下是65個運行時錯誤:
錯誤編號 描述
十進制 十六進制 說明
5 800A0005 無效過程調用或參數
6 800A0006 溢出
7 800A0007 內存不足
9 800A0009 下標越界
10 800A000A 該數組為定長的或臨時被鎖定
11 800A000B 被零除
13 800A000D 類型不匹配
14 800A000E 字元串空間溢出
17 800A0011 無法執行請求的操作
28 800A001C 堆棧溢出
35 800A0023 未定義 Sub 或 Function
48 800A0030 載入 DLL 錯誤
51 800A0033 內部錯誤
52 800A0034 壞文件名或數
53 800A0035 文件未找到
54 800A0036 壞文件模式
55 800A0037 文件已經打開
57 800A0039 設備I/O錯誤
58 800A003A 文件已經存在
61 800A003D 磁碟空間已滿
62 800A003E 輸入超出文件尾
67 800A0043 文件太多
68 800A0044 設備不可用
70 800A0046 許可權禁用
71 800A0047 磁碟未准備好
74 800A004A 不能用不同的驅動器重新命名
75 800A004B 路徑/文件訪問錯誤
76 800A004C 路徑未找到
91 800A005B 未設置對象變數
92 800A005C For 循環未初始化
94 800A005E 非法使用 Null
322 800A0142 不能建立所需臨時文件
424 800A01A8 需要對象
429 800A01AD ActiveX 部件無法創建對象
430 800A01AE 類不支持自動化
432 800A01B0 在自動化操作中未找到文件名或類名
438 800A01B6 對象不支持該屬性或方法
440 800A01B8 Automation錯誤
445 800A01BD 對象不支持此操作
446 800A01BE 對象不支持指定的參數
447 800A01BF 對象不支持當前的區域設置
448 800A01C0 未找到命名參數
449 800A01C1 參數不可選
450 800A01C2 錯誤的參數個數或無效的參數屬性值
451 800A01C3 對象不是一個集合
453 800A01C5 指定的dll函數未找到
455 800A01C7 代碼源鎖錯誤
457 800A01C9 這個鍵已經是本集合的一個元素關聯
458 800A01CA 變數使用了一個 VBScript 中不支持的自動化(Automation)類型
462 800A01CE 遠程伺服器不存在或不能訪問
481 800A01E1 無效圖片
500 800A01F4 變數未定義
501 800A01F5 違法的分配
502 800A01F6 腳本對象不安全
503 800A01F7 對象不能安全初始化
504 800A01F8 對象不能安全創建
505 800A01F9 無效的或不合格的引用
506 800A01FA 類未被定義
507 800A01FB 發生異常
5016 800A1398 需要正則表達式對象
5017 800A1399 正則表達式中的語法錯誤
5018 800A139A 錯誤的數量詞
5019 800A139B 在正則表達式中需要 ']'
5020 800A139C 在正則表達式中需要 ')'
5021 800A139D 字元集越界
32811 800A802B 元素未找到
祝你好運!!!!!!!!!!!!!!!
⑵ 設計一個(15,11)系統漢明碼的生成矩陣G,再設計一個由g(x)=1+x+x^4 生成的(15,11)循環漢明碼的編譯器。
x15 + 1 = g(x)h(x):
h(x) = x11 + x8 + x7 + x5 +x3+ x2 + x + 1
例:已知 (7,3) 循環碼的g(x)=x 4 +x 3 +x 2 +1,試求其標准生成陣,一致校驗陣及全部 碼字 。 舉例:求 (7,3) 循環碼的生成 多項式 。
解: v分解多項式 x7 +1,取其 4 次因式作生成多項式 vx7+1= ( x +1) ( x 3 + x 2 +1) ( x 3 + x +1) v 可將一次和任一個三次因式的乘積作為生成多項式,因而可取 g 1 ( x )= ( x +1) ( x 3 + x 2 +1) = x 4 + x 2 + x +1 或 g 2 ( x )= ( x +1) ( x 3 + x +1) = x 4 + x 3 + x 2 +1。
(2)編譯器循環控制器擴展閱讀:
給出(7,4)循環碼,由於循環碼是線性分組碼的一種,所以它也具有封閉性,任意兩個碼字相加之和必是另一碼字。所以它的最小碼距也就是非零碼字的最小碼重。
在表1給出的(7,4)循環碼中,dmin=3。而且根據定義,任一碼字的每一循環移位的結果都是(7,4)循環碼的一個碼字。但某一碼字的循環移位,並不能生成所有的碼字。對於一個循環碼來說,可以同時存在多個循環圈。
⑶ C語言中,如果編譯的程序是無限循環的,系統會如何處理
一直運行啊,如下:
main()
{
int i=1 ;
while(i>0)
printf("死循環\n");
}
就是一直運行,CPU應付這點點循環還搓搓有餘。。。
不過有的會報錯,
⑷ 面向過程語言的特點是什麼
特點
嚴格的語法
面向過程語言中每一條語句的書寫格式都有著嚴格的規定。
與計算機硬體結構無關
面向過程語言中語句的設計目標有兩個:一是能夠使得用語句描述完成運算過程的步驟和運算過程涉及的原始數據的過程得到簡化;二是使得用面向過程語言編寫的程序具有普適性,能夠轉換成不同的機器語言程序。因此,面向過程語言是與計算機硬體無關的。
語句接近自然表達式
機器語言程序之所以極其復雜和晦澀難懂,一是用二進制數表示機器指令的操作碼和存放操作數的存儲單元地址。二是每一條機器指令只能執行簡單運算。面向過程語言要達到簡化程序設計過程的目的,需要做到:一是使語句的格式盡量接近自然語言的格式:二是能夠用一條語句描述完成自然表達式運算過程的步驟。因此,語句的格式和描述運算過程步驟的方法與自然表達式接近是面向過程語言的一大特色。
提供大量函數
為了做到與計算機硬體無關,通過提供輸入輸出函數實現輸入輸出功能。另外.大量復雜的運算過程,如三角函數運算過程等,即使用由四則運算符連接的自然表達式來描述運算過程的步驟,其過程也是極其復雜的,通過提供實現這些復雜運算過程的函數,使得面向過程語言的程序設計過程變得相對簡單。
適合模塊化設計
一個程序可以分解為多個函數,通過函數調用過程,使得可以用一條函數調用語句實現函數所完成的復雜運算過程。這種方法使得可以將一個復雜問題的解決過程分解為較為簡單的幾個子問題的解決過程。首先通過編寫函數用語句描述解決每一個子問題的解決過程的步驟,然後可以用一條函數凋用語句描述解決某個予問題的過程的步驟,最後在一個主程序中用多條函數調用語句描述解決分解為多個子問題的復雜問題的解決過程的步驟。
不同硬體結構對應不同的編譯器
雖然面向過程語言與計算機硬體結構無關,但用於將面向過程語言程序轉換成機器語言程序的編譯器是與計算機硬體有關的,每一種計算機有著獨立的用於將面向過程語言程序轉換成該計算機對應的機器語言程序的編譯器。因此,一種計算機只有具備了將面向過程語言程序轉換成對應的機器語言程序的編譯器,面向過程語言程序才能在該計算機上運行。同一面向過程語言程序,只要經過不同計算機對應的編譯器的編譯過程,就可在不同計算機上運行,這種特性稱為程序的可移植性。
設計問題解決過程中的步驟
面向過程語言中每一條語句的功能雖然比機器指令和匯編指令的功能要強得多,但是無法用一條語句描述完成復雜運算過程所需的全部步驟,仍然需要將完成復雜運算的過程細化為一系列步驟,使得每一個步驟可以用一條語句描述;面向過程語言程序設計過程就是用一系列語句描述問題解決過程中的一系列步驟的過程。
⑸ C語言的特點有哪些
C語言是一個有結構化程序設計、具有變數作用域以及遞歸功能的過程式語言。
C語言傳遞參數均是以值傳遞,另外也可以傳遞指針。
不同的變數類型可以用結構體組合在一起。
只有32個保留字,使變數、函數命名有更多彈性。
部份的變數類型可以轉換,例如整型和字元型變數。
通過指針,C語言可以容易的對存儲器進行低級控制。
預編譯處理讓C語言的編譯更具有彈性。
(5)編譯器循環控制器擴展閱讀:
C語言是一門面向過程的計算機編程語言,與C++,Java等面向對象的編程語言有所不同。其編譯器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
⑹ 什麼是編譯器
編譯器
編譯器是一種特殊的程序,它可以把以特定編程語言寫成的程序變為機器可以運行的機器碼。我們把一個程序寫好,這時我們利用的環境是文本編輯器。這時我程序把程序稱為源程序。在此以後程序員可以運行相應的編譯器,通過指定需要編譯的文件的名稱就可以把相應的源文件(通過一個復雜的過程)轉化為機器碼了。
[編輯]編譯器工作方法
首先編譯器進行語法分析,也就是要把那些字元串分離出來。然後進行語義分析,就是把各個由語法分析分析出的語法單元的意義搞清楚。最後生成的是目標文件,我們也稱為obj文件。再經過鏈接器的鏈接就可以生成最後的可執行代碼了。有些時候我們需要把多個文件產生的目標文件進行鏈接,產生最後的代碼。我們把一過程稱為交叉鏈接。
一個現代編譯器的主要工作流程如下:
* 源程序(source code)→預處理器(preprocessor)→編譯器(compiler)→匯編程序(assembler)→目標程序(object code)→連接器(鏈接器,Linker)→可執行程序(executables)
工作原理
編譯是從源代碼(通常為高級語言)到能直接被計算機或虛擬機執行的目標代碼(通常為低級語言或機器言)。然而,也存在從低級語言到高級語言的編譯器,這類編譯器中用來從由高級語言生成的低級語言代碼重新生成高級語言代碼的又被叫做反編譯器。也有從一種高級語言生成另一種高級語言的編譯器,或者生成一種需要進一步處理的的中間代碼的編譯器(又叫級聯)。
典型的編譯器輸出是由包含入口點的名字和地址以及外部調用(到不在這個目標文件中的函數調用)的機器代碼所組成的目標文件。一組目標文件,不必是同一編譯器產生,但使用的編譯器必需採用同樣的輸出格式,可以鏈接在一起並生成可以由用戶直接執行的可執行程序。
編譯器種類
編譯器可以生成用來在與編譯器本身所在的計算機和操作系統(平台)相同的環境下運行的目標代碼,這種編譯器又叫做「本地」編譯器。另外,編譯器也可以生成用來在其它平台上運行的目標代碼,這種編譯器又叫做交叉編譯器。交叉編譯器在生成新的硬體平台時非常有用。「源碼到源碼編譯器」是指用一種高級語言作為輸入,輸出也是高級語言的編譯器。例如: 自動並行化編譯器經常採用一種高級語言作為輸入,轉換其中的代碼,並用並行代碼注釋對它進行注釋(如OpenMP)或者用語言構造進行注釋(如FORTRAN的DOALL指令)。
預處理器(preprocessor)
作用是通過代入預定義等程序段將源程序補充完整。
編譯器前端(frontend)
前端主要負責解析(parse)輸入的源程序,由詞法分析器和語法分析器協同工作。詞法分析器負責把源程序中的『單詞』(Token)找出來,語法分析器把這些分散的單詞按預先定義好的語法組裝成有意義的表達式,語句 ,函數等等。 例如「a = b + c;」前端詞法分析器看到的是「a, =, b , +, c;」,語法分析器按定義的語法,先把他們組裝成表達式「b + c」,再組裝成「a = b + c」的語句。 前端還負責語義(semantic checking)的檢查,例如檢測參與運算的變數是否是同一類型的,簡單的錯誤處理。最終的結果常常是一個抽象的語法樹(abstract syntax tree,或 AST),這樣後端可以在此基礎上進一步優化,處理。
編譯器後端(backend)
編譯器後端主要負責分析,優化中間代碼(Intermediate representation)以及生成機器代碼(Code Generation)。
一般說來所有的編譯器分析,優化,變型都可以分成兩大類: 函數內(intraproceral)還是函數之間(interproceral)進行。很明顯,函數間的分析,優化更准確,但需要更長的時間來完成。
編譯器分析(compiler analysis)的對象是前端生成並傳遞過來的中間代碼,現代的優化型編譯器(optimizing compiler)常常用好幾種層次的中間代碼來表示程序,高層的中間代碼(high level IR)接近輸入的源程序的格式,與輸入語言相關(language dependent),包含更多的全局性的信息,和源程序的結構;中層的中間代碼(middle level IR)與輸入語言無關,低層的中間代碼(Low level IR)與機器語言類似。 不同的分析,優化發生在最適合的那一層中間代碼上。
常見的編譯分析有函數調用樹(call tree),控制流程圖(Control flow graph),以及在此基礎上的變數定義-使用,使用-定義鏈(define-use/use-define or u-d/d-u chain),變數別名分析(alias analysis),指針分析(pointer analysis),數據依賴分析(data dependence analysis)等等。
上述的程序分析結果是編譯器優化(compiler optimization)和程序變形(compiler transformation)的前提條件。常見的優化和變新有:函數內嵌(inlining),無用代碼刪除(Dead code elimination),標准化循環結構(loop normalization),循環體展開(loop unrolling),循環體合並,分裂(loop fusion,loop fission),數組填充(array padding),等等。優化和變形的目的是減少代碼的長度,提高內存(memory),緩存(cache)的使用率,減少讀寫磁碟,訪問網路數據的頻率。更高級的優化甚至可以把序列化的代碼(serial code)變成並行運算,多線程的代碼(parallelized,multi-threaded code)。
機器代碼的生成是優化變型後的中間代碼轉換成機器指令的過程。現代編譯器主要採用生成匯編代碼(assembly code)的策略,而不直接生成二進制的目標代碼(binary object code)。即使在代碼生成階段,高級編譯器仍然要做很多分析,優化,變形的工作。例如如何分配寄存器(register allocatioin),如何選擇合適的機器指令(instruction selection),如何合並幾句代碼成一句等等。