[發明專利]C語言程序設計中基于對象編程的方法及系統無效
| 申請號: | 201210537010.X | 申請日: | 2012-12-11 |
| 公開(公告)號: | CN102981885A | 公開(公告)日: | 2013-03-20 |
| 發明(設計)人: | 肖波 | 申請(專利權)人: | 中國工程物理研究院流體物理研究所 |
| 主分類號: | G06F9/45 | 分類號: | G06F9/45 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 621900 四*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 語言程序設計 基于 對象 編程 方法 系統 | ||
一、技術領域
本發明涉及對C語言程序設計中基于對象編程的方法,通過該方法能實現在C語言程序設計中基于對象編程的方便性、安全性、和高效性。
二、背景技術
C語言具有語法簡明、貼近計算機底層的優點。一個剛剛接觸C語言學生經過短暫的學習后,就能用C語言編寫高效率的一般計算程序。所以,C語言被最為廣泛地選擇為高校的程序設計教學語言,具有最為廣泛的知熟群體。絕大部分的編程人員都懂得C語言。
但是,在解決復雜問題時,如窗口程序設計、網絡程序設計、大型的科學計算程序設計等,C語言的使用率則大大降低。其中一個很重要的原因是,復雜問題中具有各種各樣的復雜對象,例如一個窗體、一副圖片,而用C語言直接處理對象具有很大的不方便性。在C語言中處理對象時,需要大量地將結構體、指針、內存申請和釋放函數結合起來使用,這樣的使用往往讓一個C語言新手遭遇堆棧溢出、內存泄漏、效率低、野指針、隱蔽的計算錯誤等等煩惱,對這些問題的調試往往花費編程者大量的時間和精力。另外,不同編程者的對象的實現方式上也各式各樣,不便于共享。最終,人們用C語言編寫的復雜對象程序往往失去了C語言應有的簡潔。
為了方便地處理復雜對象,人們發明了更高級的程序設計語言,其中最為有名的語言有C++和Java。C++堪稱是最為復雜的語言,它雖然保留了C語言的貼近計算機底層的特性,但它同時也引入了許多復雜的概念。C++的復雜性所帶來的較高學習成本使得越來越多的程序設計學習者轉向其它的語言。另外,C++中實際上依然存在指針和內存問題。Java具有和C語言一樣的語法簡明的優點,所以吸引了大批的使用者。但遺憾的是,它所依賴的內存托管機制會帶來程序運行效率和內存使用效率的降低,所以Java主要用于網絡編程,在科學計算等應用中用得很少。
三、發明內容
本發明的目的在于提供一種C語言程序設計中基于對象編程的方法及系統,使得人們能夠使用C語言這門簡單、擁有最廣泛知熟群體的語言來編寫簡潔、安全、高效的基于對象的程序。
本發明的基本思路是:提供一個基于對象編程的底層系統,該系統包括地址棧和地址棧操作函數庫、對象定義模板、和對象操作函數定義模板。基于地址棧和地址棧操作函數庫,當一個函數在返回一個對象類型的返回值時,將該對象同時注冊到地址棧頂部。當其它函數接收該函數的返回對象作為自己的輸入參數時,能夠根據地址棧頂部元素信息來判斷出該參數是一個函數返回對象。利用這個重要的判斷,在接收該對象的函數內部可以對該對象進行恰當的資源回收或者高效利用,從而達到內存安全和高效的目的。對象定義模板和對象操作函數則對對象的回收或高效利用這些技術細節進行了規范的包裝,使得編程者可以不用關心這些細節而方便地編寫安全、高效的程序。
本發明解決其技術問題所采用的具體技術方案是:
一種C語言程序設計中基于對象編程的底層系統,其中包括:存儲函數返回對象的地址棧以及地址棧的操作函數庫;對象定義模板;對象操作函數定義模板。
該系統提供兩種使用模式,調試模式和發行模式。在調試模式下,模板能夠在編譯和運行時刻檢查不符合模板規定的程序編寫方式,提供改正意見。在發行模式下,模板不進行規則檢查,而是以最大效率運行。
地址棧的操作函數庫包括:入棧函數,用于將一個函數返回對象的首地址壓入地址棧頂部;出棧函數,用于將一個函數返回對象的首地址從地址棧中取出;判斷函數,用于判斷一個對象的首地址是否在地址棧中;保護函數,用于在地址棧頂部壓入一個結點,以保護嵌套調用;去保護函數,用于取出地址棧頂部的結點,以解除保護;接收函數,用于接收一個沒有其它函數來接收的函數返回對象;回收函數,用于在函數體內部回收屬于函數返回對象的函數參數。外部程序只允許通過地址棧操作函數訪問地址棧。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國工程物理研究院流體物理研究所,未經中國工程物理研究院流體物理研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210537010.X/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:基于GPU的粒子系統優化
- 下一篇:一種利用谷歌地球進行小流域劃分的方法





