?? bianchenzhenyan.txt
字號(hào):
取值規(guī)則:當(dāng)p和q均為假時(shí)為假,否則為真
所以它有如下形式
以上這種形式為P∨q的同或形式
它的真值表還有一種情形
這種形式為P∨q的異或形式,通常用p⊕q來表示
p∧q為命題p和q的合取,是p和q用邏輯連接詞’且’連起來的結(jié)果
取值規(guī)則:當(dāng)p和q都為真時(shí)為真,否則為假
所以它有如下形式
p->q為命題p到q的蘊(yùn)含,所以它是一種有順序的連接形式
因?yàn)閜->q是概念上’有p則有q’的這樣一種邏輯形式,因此僅當(dāng)”有p而沒有q”時(shí)它為假
所以它的取值規(guī)則為:當(dāng)p為真而q為假時(shí)蘊(yùn)含為假,否則為真
P Q P∨q
真 假 真
假 真 真
真 真 真
假 假 假
P Q P∨q
真 假 真
假 真 真
真 真 假
假 假 假
P Q p∧q
真 假 假
假 真 假
真 真 真
假 假 假
編程新手真言 - GameRes.com 頁碼,19/101
mhtml:file://F:\Cpp\編程新手真言.mht 2008-7-30
如何理解當(dāng)p為假,q不論取什么值蘊(yùn)含都會(huì)為真呢?
這可把它理解為一種契約,p是義務(wù),q是權(quán)利,只有當(dāng)p得到成立,q才能得到成立,換言之,當(dāng)p不成立,它并不影
響q(假設(shè)部分為假對(duì)整個(gè)蘊(yùn)含的真值沒有影響 - 此時(shí)蘊(yùn)含一律為真)
p->q可理解為 當(dāng)p,則q,(q當(dāng)p,或者q每當(dāng)p) p是q的充分條件,只要p就有q,即要得到q,具備p這個(gè)條件就足夠
充分了
又有p->q<=>q<-p可得到q<-p (<=>表示p->q, q<-p這二者邏輯等價(jià))
q<-p 為p->q的等價(jià)變形形式(p僅當(dāng)q),q是p的必要條件,即q對(duì)于p的成立是必要的,沒有q成立就沒有p的成
立,
‘當(dāng)’,‘僅當(dāng)’這二個(gè)詞的意義是不一樣的,用僅當(dāng)或當(dāng)敘述二命題時(shí)結(jié)果和條件位置按說法而定
注意以上說法,條件 僅當(dāng) 結(jié)果(p是q的充分條件),結(jié)果 每當(dāng) 條件(q是p的必要條件)
注意,以上p->q,q<-p是同一命題(的二種說法),并不產(chǎn)生新的命題,涉及到一個(gè)蘊(yùn)含的逆蘊(yùn)含和雙蘊(yùn)含時(shí)才產(chǎn)
生新的命題,這些新的命題自然有不同于p->q的真值
逆蘊(yùn)含:q->p, q僅當(dāng)p,
雙蘊(yùn)含:p<->q,p當(dāng)且僅當(dāng)q
?? 函數(shù)的高級(jí)性質(zhì)
高等數(shù)學(xué)(而非高等代數(shù),注意代數(shù)是一個(gè)很廣泛的概念)主要研究函數(shù)的分析性質(zhì)也即高級(jí)性質(zhì),主要包
括函數(shù)的微分
?? 線代與矩陣
?? 數(shù)據(jù)庫與關(guān)系代數(shù)
關(guān)系代數(shù)是一個(gè)代數(shù)系統(tǒng),就跟線性代數(shù)一樣,它有著有限的運(yùn)算數(shù)集與運(yùn)算符集
?? 數(shù)論與加密
數(shù)論主要研究整數(shù)的性質(zhì),
P Q p->q
真 假 假
假 真 真
真 真 真
假 假 真
編程新手真言 - GameRes.com 頁碼,20/101
mhtml:file://F:\Cpp\編程新手真言.mht 2008-7-30
?? 方程的近似求解
計(jì)算方法學(xué)包括數(shù)值微分,數(shù)值積分,
?? 函數(shù)插值
一次插值被稱為線性插值
?? 計(jì)數(shù)原理與概率
?? 拓樸圖論
拓樸圖論研究與線長,點(diǎn)位無關(guān)的圖形組合,它被各個(gè)行業(yè)各個(gè)分支所引用,如動(dòng)態(tài)規(guī)劃,等
?? 真正的計(jì)算模型
計(jì)算機(jī)是一個(gè)離散結(jié)構(gòu),因?yàn)樗挠?jì)算模型是屬于離散數(shù)學(xué)的,但是有人會(huì)問了,我們現(xiàn)在在使用的計(jì)算機(jī)
跟圖靈機(jī)有什么聯(lián)系,錯(cuò),還是圖靈機(jī),因?yàn)楝F(xiàn)在計(jì)算機(jī)是在圖靈機(jī)上構(gòu)建的更高層抽象(我很慶幸你在
第一章的抽象思想沒忘),就像馮諾依曼思想一樣,它還是現(xiàn)代計(jì)算機(jī)體系結(jié)構(gòu)的基礎(chǔ),請(qǐng)大膽發(fā)散你的思
維!
計(jì)算模型就是用戶跟計(jì)算機(jī)交流的抽象(如果這個(gè)抽象被解決了,我們就完全不管它而去干其它事,因此你
感覺不到它的存在),當(dāng)然我們希望不僅僅是表層的交流,但是只要實(shí)現(xiàn)了與計(jì)算機(jī)的交流,,這之后的處
理我們就不用管了(因?yàn)檫@并不屬于計(jì)算模型學(xué)的內(nèi)容)
用計(jì)算機(jī)來識(shí)別的語言只能是形式語言而非我們的自然語言,自然語言是一種形式語言的超形式,因?yàn)樗?可以被解析為形式語言,并且?guī)в兴鳛樽匀徽Z言的非機(jī)器解析元素
形式語言是嚴(yán)格的(不符合條件就出錯(cuò)),自然語言是活拔的(出錯(cuò)范圍小并不影響信息的傳達(dá))
計(jì)算機(jī)作為一種機(jī)器,給計(jì)算機(jī)設(shè)計(jì)它能識(shí)別的語言就是指明計(jì)算機(jī)進(jìn)行識(shí)別我們給他的輸入的模型(任何
語言都是一個(gè)形式上的模型,供識(shí)別和基于識(shí)別之上的高級(jí)功能比如交流用,并且這個(gè)語言可用于后來的
編程以給計(jì)算機(jī)下達(dá)指令(用語言進(jìn)行編程給計(jì)算機(jī)下達(dá)命令是跟計(jì)算機(jī)的一種交流)后來計(jì)算機(jī)對(duì)我們
的輸入進(jìn)行計(jì)算(注意這個(gè)“計(jì)算”的范圍是廣的不只是數(shù)值處理)這里說到的計(jì)算機(jī)對(duì)它能識(shí)別的語言表
達(dá)的輸入(是一些指令)進(jìn)行處理,處理已經(jīng)走過語言的范疇了,雖然是基于語言識(shí)別之上但不屬于語言的
范疇),,
語言和文法
語言分為語言具體和語言形式,語言具體即最終由終止符構(gòu)成的串,而語言形式即不一定最終由終止符構(gòu)
成的串(它可以是語言具體和語言形式的雜合體)
那么什么叫串呢?
語言有組成它的最小單位即詞(較大的單位有句子,段落,文章,卷等等,這些更大一級(jí)的單位又是由詞或
其它單位構(gòu)成的,,包括詞在內(nèi),這些語言單位構(gòu)造的語言具體或語言形式統(tǒng)統(tǒng)稱為串,語言的最終目的就
是得出語言的一個(gè)一個(gè)串),和語言單位進(jìn)行組合(產(chǎn)生串)的規(guī)則即文法產(chǎn)生式,任何語言最終都是具體語
言材料即詞匯和具體語言規(guī)則即文法的組合
串是語言材料的模板(串代表一個(gè)一個(gè)的語言具體或語言形式),,而文法產(chǎn)生式是語言規(guī)則的模板(文法
產(chǎn)生式產(chǎn)生文法)
編程新手真言 - GameRes.com 頁碼,21/101
mhtml:file://F:\Cpp\編程新手真言.mht 2008-7-30
語言具體或語言形式的產(chǎn)生是通過串與串的等價(jià)替換得出來的(這是串與文法關(guān)生聯(lián)系的地方與手段),,
如果存在w0->w1,即串w0可以替換w1,這個(gè)串間替換的規(guī)則就是“文法產(chǎn)生式”,,用來產(chǎn)生文法
以上到底什么意思?相信現(xiàn)在不難理解了
?? 正則表達(dá)式與有限自動(dòng)機(jī)
有限自動(dòng)機(jī)是一種抽象的識(shí)別裝置
?? 函數(shù)增長與算法復(fù)雜性
?? 真正的遞歸
遞歸是一種思想,只要問題本身滿足遞歸你才能,遞歸涉及到三個(gè)概念,回溯
?? 真正的迭代
提供
?? 查找遍歷算法
?? 排序算法
機(jī)器,平臺(tái)與網(wǎng)絡(luò)
最小的東西都不會(huì)那么簡單,因?yàn)樗鼈兌际桥c其它東西關(guān)系的,但也不會(huì)那么復(fù)雜,因?yàn)樗鼈兌际菍儆谀?個(gè)領(lǐng)域的!
?? 真正的保護(hù)模式
8086/8088有20根地址線,寄存器為16位
寄存器的位數(shù),16位表示決定了計(jì)算機(jī)的字長,即一次性能處理的數(shù)據(jù)總長度(16個(gè)位,始終記住,位是
計(jì)算用來表示存儲(chǔ)單元和數(shù)據(jù)長度的最小單位,無論是外存或內(nèi)存都一樣),因此在程序中只能定義至多
16位長的變量,因?yàn)橹荒芏x16長的數(shù)值(變量),故(寄存器大小)它也決定了計(jì)算機(jī)能表示的數(shù)值的大小,
即2的16決方(1048576),這種數(shù)值至多能用來表示的存儲(chǔ)單位是1048576個(gè),,或者說1048576個(gè)位,而這正
是一個(gè)16位的數(shù)值變量所能達(dá)到的最大值,因此這種寄存器為十六位的CPU只能表示至多1024kb個(gè)內(nèi)存
位,雖然可能計(jì)算機(jī)本身不止這么多內(nèi)存,雖然有時(shí)地址線不止尋址這么點(diǎn)的空間,但16位的寄存器只能
編程新手真言 - GameRes.com 頁碼,22/101
mhtml:file://F:\Cpp\編程新手真言.mht 2008-7-30
看見并尋址這么多的內(nèi)存(因?yàn)榈刂肪€是CPU引腳線,是CPU的概念),寄存器的位數(shù)理論上決定了CPU
能"表示"的最大的內(nèi)存范圍或外存范圍(當(dāng)然,連CPU表示都無法表示的內(nèi)存范圍那就沒有意義了),而地
址線決定了計(jì)算機(jī)實(shí)際能存取訪問尋址到的內(nèi)存范圍,即1M,不包括CPU連看都無法看見的那部分,(當(dāng)然
如果你的計(jì)算機(jī)都沒有這么多的內(nèi)存也是枉說)一個(gè)是16位,一個(gè)是20位,CPU是怎么樣產(chǎn)生數(shù)值用來表
示地址線所能尋址到的1M地址的各個(gè)單元的地址的呢???,(這里以字節(jié)來說)1M可以分為64k個(gè)64b,這
樣,寄存器用來存放地址,80286有24地址線,寄存器為32位
因?yàn)榧拇嫫魇谴嬖谟贑PU中的,因此說是CPU的尋址,又為什么說CPU對(duì)內(nèi)存的尋址呢,為什么我們?cè)谶@
里口口聲聲地說CPU對(duì)內(nèi)存的尋址呢,這有什么意義呢?這當(dāng)然是為了計(jì)算機(jī)能正確執(zhí)行指令而準(zhǔn)備的,
這是計(jì)算機(jī)工作的本質(zhì)啊(而為了執(zhí)行指令,CPU能對(duì)內(nèi)存進(jìn)行尋址是首先必須要辦到的,因?yàn)槌绦蜃罱K從
外存到內(nèi)存中才能被CPU執(zhí)行,CPU和內(nèi)存都是靠電工作的,CPU提供執(zhí)行指令的本領(lǐng),而內(nèi)存提供存儲(chǔ)指
令的本領(lǐng),這是馮儀曼說的,成功完全指令必須是CPU和內(nèi)存一起工作完全的,而外存是靠磁來工作的,CPU
只能執(zhí)行內(nèi)存RAM內(nèi)的指令,外存用來永久存放文件,稱為持久化),程序要從外存被加載到內(nèi)存中才能形成
指令
(指令在程序的CODE段中,EXE文件被加載到其進(jìn)程空間時(shí)------這個(gè)過程術(shù)語叫映射到其進(jìn)程空間,
它的代碼段就在物理內(nèi)存中了,因?yàn)橹挥写a段才包含指令,這部分要首先映射到物理內(nèi)存中來,程序的
指令用到的數(shù)據(jù)------這通常表現(xiàn)為程序中的變量常量存在data中,數(shù)據(jù)段部分被開辟成堆或棧的方式被映
射到EXE的進(jìn)程空間中來(分段機(jī)制),形成EXE的編譯器不同開辟模式不同,像Delphi的編譯器實(shí)現(xiàn)的exe
進(jìn)程空間只有堆沒有棧這種內(nèi)存模式,堆和棧是系統(tǒng)級(jí)運(yùn)用內(nèi)存管理器進(jìn)行分配內(nèi)存的動(dòng)作后(是系統(tǒng)級(jí)的
作用)形成的特殊內(nèi)存塊,這些內(nèi)存塊被映射到EXE的進(jìn)程空間,這有點(diǎn)像EXE的DLL模塊的映射模式,dll
文件被映射到其宿主EXE的進(jìn)程空間時(shí),不像EXE一樣一開始就把代碼段實(shí)際加載到物理內(nèi)存中去了而是
在EXE實(shí)際調(diào)用到它時(shí)才到實(shí)際的物理內(nèi)存中去(分頁機(jī)制),跟EXE的DATA段一樣屬于一開始就映射到
EXE進(jìn)程空間而不實(shí)際形成內(nèi)存的部分,EXE,DLL被加載到內(nèi)存后,它所占據(jù)的內(nèi)存塊就叫模塊是靜態(tài)
的,而進(jìn)程是一個(gè)執(zhí)行體的實(shí)例是活動(dòng)的,線程是一個(gè)進(jìn)程的某個(gè)執(zhí)行單元,所以我們說程序被映射到到
其進(jìn)程空間而不直接說映射到物理內(nèi)存中,只是需要執(zhí)行的代碼段(注意此段非實(shí)模式彼段,后面會(huì)談到)
才被進(jìn)入到物理內(nèi)存,但不需執(zhí)行的那部分不需立即加載到內(nèi)存(就像DATA和DLL)不得不說的是,進(jìn)程空
間并非物理內(nèi)存,前面一再強(qiáng)調(diào)"程序被映射到到其進(jìn)程空間而不直接說映射到物理內(nèi)存中",而且更準(zhǔn)確地
來說,它們二者是完全沒有關(guān)系的,4GB虛擬地址空間整個(gè)兒壓根兒就是虛擬的(這個(gè)道理就像你玩一個(gè)客
戶端為2G的游戲時(shí),你啟動(dòng)客戶端的時(shí)候已經(jīng)把整個(gè)客戶端的2G資源都加載到4GB空間去了,但是只要
這2GB中需要當(dāng)前調(diào)用的那部分資源才進(jìn)入內(nèi)存,分段機(jī)制開避四GB任務(wù)空間,分頁機(jī)制把需要用到的數(shù)
據(jù)動(dòng)態(tài)加載到進(jìn)程空間,任務(wù)空間就是進(jìn)程空間,然后通過這些資源在程序中的自動(dòng)變量表示離開內(nèi)存),
它只是能表示4GB空間的虛擬地址而已,并不是實(shí)際的物理內(nèi)存,僅僅根據(jù)32位寄存器能表示那么多的內(nèi)
存來設(shè)置的那樣一個(gè)機(jī)制,這種機(jī)制成全了將進(jìn)程空間隔離的好處(所以四GB的說法是進(jìn)程的一個(gè)概念通
常說4GB是進(jìn)程的空間),而不像整個(gè)六四KB都可以,windows的虛擬內(nèi)存管理器(保護(hù)模式下)會(huì)負(fù)責(zé)適當(dāng)
的時(shí)候把需要的,映射到進(jìn)程空間的內(nèi)存搬到物理內(nèi)存中去(分頁機(jī)制),現(xiàn)在來解釋"注意此段非實(shí)模式彼
段,后面會(huì)談到"這句話,在FLAT下,已經(jīng)沒有段segment了,,在Flat模式下就無所謖code段跟data段的
了,因?yàn)樵緦?shí)模式CS,DS意義下所指向的段全都在一個(gè)4GB大的虛擬地址空間中,實(shí)模式下段的意義
不存了,是段選擇子,F(xiàn)LAT內(nèi)存模式下,CS,DS根本就不實(shí)際用來指向段,即不實(shí)際用來指向一段內(nèi)存
(而是存儲(chǔ)一個(gè)稱為段選擇符的數(shù)據(jù)結(jié)構(gòu)),F(xiàn)LAT下說的代碼段是指EXE頭定義的段,是RAW FILE(RAW
指沒有分配實(shí)際內(nèi)容的內(nèi)存)里定義的段而非實(shí)模式下CPU段寄存器指向之"段",模擬原本的段取而代之正
是EXE頭的節(jié)的意義,程序員無須知道這些段的實(shí)際的物理內(nèi)存地址而只須知道虛擬地址,(我們知道在
32位寄存器,在RAW FILE里才有節(jié)section,有了PE文件的頭中的這樣段定義,當(dāng)EXE被加載到內(nèi)存中
來,就相當(dāng)一個(gè)跟內(nèi)存數(shù)據(jù)段一樣的數(shù)據(jù)結(jié)構(gòu),雖然平址模式下無所謂代碼段數(shù)據(jù)段,但PE文件的格式間
接實(shí)現(xiàn)了它,就像XML文件它本身就像一個(gè)數(shù)據(jù)結(jié)構(gòu)一樣所以它被很多程序語言的IDE用來持久化,被很
多程序用來保存信息如3D網(wǎng)格信息也會(huì)用xml文件格式)
編程新手真言 - GameRes.com 頁碼,23/101
mhtml:file://F:\Cpp\編程新手真言.mht 2008-7-30
?? 真正的二進(jìn)制
請(qǐng)注意,人們說JAVA在語言級(jí)就實(shí)現(xiàn)了它的多線程,這句話與我們平常說的多線程是不一樣的,,它的
多線程是針對(duì)JVM的多線程,而非具體針對(duì)我們?nèi)粘J褂玫哪硞€(gè)平臺(tái),,比如WIN32的線程
另外JAVA也不需要指針(雖然它提供了仿指針),這是因?yàn)镴AVA一般不用于對(duì)本地編程(即它不面向
CPU,,也不面向運(yùn)行它的某個(gè)OS編程),,因此指針都變得可有
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -