源程序過(guò)程分析與數據分析 源程序過(guò)程分析與數據分析

源程序過(guò)程分析與數據分析

  • 期刊名字:電腦編程技巧與維護
  • 文件大?。?78kb
  • 論文作者:林榕慧
  • 作者單位:仰恩大學(xué)計算機與信息學(xué)院
  • 更新時(shí)間:2020-09-25
  • 下載次數:次
論文簡(jiǎn)介

實(shí)用第一/智慧密集源程序過(guò)程分析與數據分析林榕慧(仰恩大學(xué)計算機與信息學(xué)院,泉州福建362000)摘要: 源程序分析的實(shí)質(zhì)是程序的過(guò)程分析和數據分析,目的是提供一種程序閱讀的方法,實(shí)現程序理解。方法是詳細分析復雜程序的執行過(guò)程,關(guān)鍵語(yǔ)句的結構與功能,建立變量、數組、二維數組或者輔助數組3個(gè)層次的程序數據的處理架構,并且用數據行和一維數據集合表示。源程序分析的5個(gè)規范使過(guò)程分析和數據分析有章可循。程序的功能分析是更進(jìn)一步的分析方法,發(fā)現源程序的具有不可分割性的功能塊,以此建立程序的功能結構,掌握高級編程方法。關(guān)鍵詞:過(guò)程分析與數據分析;程序數據;數組;輔助數組;原子功能if(b>c) {t=b;b=c;c=t;//比較語(yǔ)句31概述print(%5.2f,%5.2f,%5.2f ,a,b,c);}源程序分析與現有的程序分析不同?,F有程序分析分為靜{a,b,c}元素的組合(a,b) , (a,c) , (b,e) 是全部有效的對比態(tài)分析和動(dòng)態(tài)分析兩類(lèi),作用是(1)發(fā)現程序語(yǔ)句的錯誤;數,經(jīng)過(guò)3次比較和交換,得到三元組。(2)精煉程序流程圖,例如:路徑分析; (3) 編譯,可稱(chēng)為數據分析與過(guò)程分析,如表1所示。代碼分析; (4) 代碼查詢(xún),分析程序的結構和元素值,當作表1比較 3個(gè)數程序的數據分析與過(guò)程分析中間結果供查詢(xún),屬于動(dòng)態(tài)分析。此外,動(dòng)態(tài)分析還包括按代變量對關(guān)鍵語(yǔ)句(3個(gè)if語(yǔ)句)目標數據:碼段執行,輸出變量值等。(m1.m2)a>ba>eb>cMinSecond源程序分析目的是用數據分析和過(guò)程分析的方法,使人們(a,b)a能很好地實(shí)現“程序理解",程序員則能夠發(fā)現關(guān)鍵語(yǔ)句、程序ae;數據處理架構、程序的主要結構。過(guò)程分析選擇關(guān)鍵語(yǔ)句,記,e)b錄程序數據在程序執行過(guò)程中的完整存在形式。程序數據有3個(gè)層次:變量、數組、二維數組或者存儲數組與輔助數組的組程序2:在[100,200]區間選擇素數合。數據分析在點(diǎn)、一維、二維程序數據空間的標識遵循相同main(){int m,k,n=0;的規則。1. for(m= 101;m<200;m=m+2)2源程序數據分析與過(guò)程分析2. { k=sqr(m); :3.for(i=2;i<=k;i++)源程序分析技術(shù)以數據驅動(dòng)為最基本特征。程序處理的數4.if(m%i==0) break;據有變量、數組、矩陣(= 維數組),稱(chēng)為程序數據。稀疏矩陣//第2層for循環(huán)的存儲結構用存儲數組data []與輔助數組的組合表示,輔助5.if(>=k+1){ printf(" %d" m); n=n+1;數組cpot[、num []、rpos 0表示稀疏矩陣的層次結構。在這if(n% 10==0)? pritf(" ");}3個(gè)數據層次的基礎上,展開(kāi)程序數據分析和過(guò)程分析的進(jìn)8. }/第一層for循環(huán)結束化,形成5個(gè)初步的規范形式。9. printf(" ");2.1 程序數據是變量t10.}這一類(lèi)程序大致上是實(shí)現在- -定條件下對變量的選擇。程序2是兩層循環(huán)語(yǔ)句構成。第一層for循環(huán)判斷程序變程序1:比較3個(gè)數的大小作者簡(jiǎn)介:林榕慧(1973-), 碩士,教師,研究方向:高等數main){float a,b,c,t;學(xué)計算文法、功能式程序設計方法,英語(yǔ)結構文法、分布與緊scanf(" %f, %f, %f" ,&a,&b,&c);致并存的高性能計算系統、全功能結點(diǎn)與分層調度方法、數字if(a>b) {t=a;a=b;b=;/比較語(yǔ)句1電路系統設計的數理決極理入出笛tn網(wǎng)絡(luò )與通信數據高速同if(a>c) {t=a;a=c;=://比較語(yǔ)句2步傳輸網(wǎng)。中國煤化工YHCNMHG40電腦鵝核萬(wàn)與維護動(dòng)2014. 11...AABASE量m是否在100到200之間,循環(huán)邊界[01,199]。 第二層循程序3部分數組逆置環(huán)判斷每--個(gè)數m是不是素數。設置第二層循環(huán)依據素數的void resort(int arraylI,int where,int amount)數學(xué)算法,循環(huán)的判斷范圍是[2, sqrt (m)]。{ int *p1,*p2,temp;p1=&array[where-1]; /p1 是首指針過(guò)程分析與數據分析如表2所示。p2=&larraylwhere- 2+amount;表2求素數程序 的數據分析與過(guò)程分析//p2是尾指針for(;p1<8arraylwhere-1]+amount/2;p1++;p2--)程序數據第-層循環(huán)第二層循環(huán)循環(huán)結果輸出格式//用首尾指針的方式,實(shí)現swap。mm<200[2sqnt (m)]i>=k+1n%10==0{temp=*p1;100*p1=*p2;1*p2=temp;103p1=&array [where-1], 是首指針,p2=&array [where -2+200amount],是尾指針。用首尾指針的方式,實(shí)現swap。輸人數據的元素:從表2可知:678 910111213 1415(1)程序2的兩層循環(huán)語(yǔ)句用數據表的2、3兩列表示。第where=6;二個(gè)循環(huán)語(yǔ)句的循環(huán)體有條件語(yǔ)句,因此需要設置循環(huán)語(yǔ)句的amount=10;值,為0表示沒(méi)有在[2sqnt (m)的數被整除,則m是素數;為根據規范形式2,數組元素6~11排列在第一列,指針1表示m不是素數。第4列i>=k+1是判斷第二個(gè)循環(huán)的結果,*p1= [6,11] ,*p2= [15,10] 表示交換操作,將數組元素15~10不可省略。n%10==0僅僅設置輸出格式,可選。對應排列在第4列。第-行的p1, p2表示指針初始值。p1++,準定義1循環(huán)語(yǔ)句的值p2--另起一行,表示指針的工作方法。循環(huán)語(yǔ)句用條件表達式在源程序數據分析與過(guò)程分析中,邏輯值{0,1} 表示循環(huán)表示,必須列出,如表3所示。語(yǔ)句的值,為1表示循環(huán)語(yǔ)句得到與目標相同的結果,為0表表3部分數組逆置的過(guò)程 分析和數據分析示沒(méi)有得到目標結果。用循環(huán)語(yǔ)句的上下兩個(gè)邊界作為所在列的判斷標志。操作數1雙操作數操作操作數2循環(huán)停止的 條件(2) 每-一個(gè)程序變量m對應一個(gè)數據行。若只看數據行,PIpI<&array [5] +5當m=101時(shí),有數據集合{m=101,1,0,1,0。PI=&array [5] P2=&array [14]1:規范形式1根據數據驅動(dòng)的原則,將變量的全部值設置P1++p2-在第一列。變量的每-一個(gè)值有一個(gè)數據行,表示程序目標功能PI=&aray [6] p2=larray [13]| 14的- -次執行。數據行包括變量值、關(guān)鍵語(yǔ)句。數據行的值用數PI=array [7] p2-8aray [12]| 13據集合表示。程序目標功能的一次執行,用以實(shí)現編程的目標,可用數Pl=&aray [8] p2-=&aray [11]| 12據行標識。例如:求素數程序功能的- -次執行,能判斷- -個(gè)數P=&array [9] p2-array [10] 1m是否符合素數的定義。11PI=&array [10] p2=&array [9](3)源程序數據分析與過(guò)程分析對條件語(yǔ)句的路徑選擇并不重視,重視的是程序目標功能的一次執行的完整表示,與現main)程序4簡(jiǎn)單選擇排序有程序分析的條件語(yǔ)句路徑分析不同。int al,jk,x;2.2程序數據是數組printf('Input 8 numbers: ");數組的操作有(1) 數組元素的交換,用在數組逆置運算、for(i=1;i<9;i++)簡(jiǎn)單選擇排序等程序。(2) 數組遍歷。(3) 有選擇地對元素scanf("%d",&ali);printf(" ");用表達式賦值。for(i=1;i<8;++)規范形式2當程序數據是數組元素時(shí),將數組元素構成{ k=i;第- -列。 若程序的操作是雙操作數,則將數組元素分成兩列,for(j=i+ 1中國煤化工另一列放在操作語(yǔ)句的右邊,與第-列對應。/比較ali-MHCNM HG2014. 11電腦納技巧與維護41)實(shí)用第一/智慧密集if(a[j]MAXSIZE) returm ERROR;16. Q.data[Q.tu]=(arow,col,templcoll);的一個(gè)值,因此遵守了一個(gè)數組元素只有一-個(gè)數據行, - -個(gè)數}/if據行標識程序目標功能的一次執行的原則。}//for arrow第一列的i表示比較次數,標識第- -層循環(huán)語(yǔ)句for (i=1;i<9;i++),而且是數組的下標。它的右邊對應的輸人數組元素,是每一次比較的驅動(dòng)元素。在選擇排序過(guò)程中,輸人數組因交}//MultSMatrix換發(fā)生變更,第三列標識新的輸人數組的元素a [i]。a [i] ~a稀疏矩陣的并行乘法算法關(guān)鍵是游標之間的關(guān)系,用3個(gè)[8]表示第二層循環(huán)語(yǔ)句的比較范圍。k記錄最小值的下標,表達式說(shuō)明,如表5所示。第7列表示a問(wèn)和a[k]交換,正確的a [k]保存在存儲單元表5稀疏矩陣并行乘法的數據分析和過(guò)程分析a[i]中。矩陣M的行矩陣N的行計算線(xiàn)索四元組計算結果目標元素規范形式3在輸出單元素的數組程序中,每一個(gè)數組元M行數組M.data [.]N.data [..4] (rowp.prow.w Clemp (co]Q.daa [1.].素對應- -個(gè)數據行,用數據行的一個(gè)項表示產(chǎn)生目標數據的主可.3). ( 1.1.1.1)(1-51)9.2)(.2.)"[2] =3*2+0 |[1]= (1.2.6)結構循環(huán),而且循環(huán)中的全部數據元素排列在單個(gè)數據集中。(2].-1) (1] ,1)(23.2.2川=-1 [2] = (.1.-1)程序4的{k,a [k])} 表示第二層循環(huán)的數據集合,而第二[1] ,2)_(3.4.1,1)[2]=2*2 [31 = (3.2.4)層循環(huán)是選擇排序程序的主結構循環(huán)。中國煤化工規范形式1.1數組的元素等價(jià)-個(gè)變量的值,當輸入數組元brow=MYHCNMHG2014.11電腦體疆技巧與維護氣實(shí)用第一/智慧密集} FRAME_ QUEUE ;定顯存地址,如果已知顯存地址,也可以將該地址直接作為寫(xiě)4.2播放器工作機制顯存數據的起始地址來(lái)使用。播放器軟件啟動(dòng)后,首先初始化各種數據結構,然后分別(2)控制區啟動(dòng)播放器任務(wù)和解碼器任務(wù)。播放器任務(wù)和解碼器任務(wù)通過(guò)點(diǎn)擊“播放"按鈕后,先獲得視頻文件的大小信息,再清信號量同步??詹シ牌鞯木彌_區,然后向解碼器發(fā)送解碼信號量。初始化工作包括:創(chuàng )建信號量,填充播放器數據結構,初點(diǎn)擊“暫?!卑粹o后,將播放器狀態(tài)設置為暫停狀態(tài),使始化幀隊列,設置輔助時(shí)鐘定時(shí)器等。播放器暫停向緩存輸出幀圖像,同時(shí)阻塞解碼器解碼。播放器任務(wù)的工作機制為:等待輔助時(shí)鐘釋放信號量,點(diǎn)擊“停止”按鈕后,將播放器狀態(tài)設置為停止狀態(tài),然然后從幀隊列中獲取幀,并在屏幕上顯示釋放信號量給解后銷(xiāo)毀播放器的幀緩沖區。碼器。點(diǎn)擊“快放”則減小向顯卡緩存輸出幀圖像的時(shí)間間隔,4.3播放器界面點(diǎn)擊“慢放”則增大向顯卡緩存輸出幀圖像的時(shí)間間隔,點(diǎn)擊播放器包括視頻顯示區和控制區。如圖1所示?!盎謴驼!卑粹o后,則進(jìn)行正常播放。通過(guò)拖動(dòng)“播放進(jìn)度條”亮塊,可以實(shí)現視頻的定位播放。5結語(yǔ)通過(guò)將通用的移植MPEG4視頻解碼源碼移植到VxWorks的方法實(shí)現了對Mpeg4視頻的解碼;通過(guò)C語(yǔ)言編程實(shí)現了播放器功能函數和數據結構的設計,并在VxWorks自帶的WindMl的基礎上,進(jìn)一步編程完成視頻播放器的界面設計;使用互斥信號量來(lái)編寫(xiě)同步程序實(shí)現Mpeg4解碼器和視頻播放器的協(xié)同工作。在本視頻播放器的基礎上進(jìn)行擴展,通過(guò)較小改動(dòng)就可將其應用與其他基于UNIX的操作系統上。圖1播放器播放界面設計圖(1)視頻顯示區參考文獻考慮到VxWorks實(shí)時(shí)操作系統下WindMl圖形庫的局限[1] Wind River Systems Ine. WindMLSDK pg:pdf .2002.性,在播放器顯示區設計中,采用將解碼后的幀圖像直接寫(xiě)顯2] Wind River Systems Ine. WindMLDDK_ pg.pdf. 2002.存的方式來(lái)實(shí)現,該方法既節省了系統資源,又提高了視頻播[3] 動(dòng)態(tài)圖像專(zhuān)家組. ISO-IEC- 14496-2, 1999.放程序的實(shí)時(shí)性。[4] 孔祥營(yíng),柏桂枝.嵌人式實(shí)時(shí)操作系統VxWorks及其開(kāi)發(fā)要將解碼后的圖像放入顯存中顯示,首先要確定顯存的起環(huán)境Tomado.中國電力出版社,2002.始地址。根據顯卡型號,可以采用顯存起始地址檢測函數來(lái)確(收稿日期: 2014-02-10)女業(yè)縣絲華華女業(yè)業(yè)姚業(yè)姚姚姚姚姐業(yè)姚業(yè)女業(yè)業(yè)業(yè)業(yè)與業(yè)奴業(yè)業(yè)處業(yè)業(yè)她馳業(yè)業(yè)業(yè)業(yè)業(yè)業(yè)姚姚業(yè)姚業(yè)姚姚(上接第43頁(yè))分析和數據分析讀懂復雜程序,依據5個(gè)規范形式,構造程序表7圖的層次優(yōu)先遍 歷的原子功能與程序原語(yǔ)數據的分析過(guò)程。原子功能程序原語(yǔ)1.建立鄰接點(diǎn)隊列(圖的首結點(diǎn)、連通子圖的首結點(diǎn))1.1, 1.2. 1.3[1] 譚浩強. C程序設計[M] .清華大學(xué)出版社,1999.2.回潮(出隊)2.1, 2.2[2]嚴蔚敏,吳偉民.數據結構(C 語(yǔ)言版) [M]. 清華大學(xué)3.擴展鄰接點(diǎn)的索引結構(鄰接點(diǎn)隊列)3.1出版社,2007.3] 馮樹(shù)樁,徐六通.程序設計方法學(xué)[M]. 浙江大學(xué)出版4結語(yǔ)社,1988.高級語(yǔ)言課程首先是掌握程序閱讀的方法。用源程序過(guò)程(收稿日期: 2014-02-15)中國煤化工MYHCNM HG2014. 11電腦納技巧與雄護與

論文截圖
版權:如無(wú)特殊注明,文章轉載自網(wǎng)絡(luò ),侵權請聯(lián)系cnmhg168#163.com刪除!文件均為網(wǎng)友上傳,僅供研究和學(xué)習使用,務(wù)必24小時(shí)內刪除。
欧美AAAAAA级午夜福利_国产福利写真片视频在线_91香蕉国产观看免费人人_莉莉精品国产免费手机影院