中文編程語言(或者稱為中文編程)是指使用中文來書寫的程式設計語言,其目的是為了英語普及不高的地區降低C語言學習難度,降低程序設計的門檻,使程序員將精力更多地集中在程序設計上,并且便于程序交流和代碼維護,并降低開發及維護成本。
中文名中文編程語言
外文名Chine Programming
別稱中文編程
解釋用中文來書寫的程式設計語言
舉例易語言、習語言、雅奇MIS
優勢漢語使用者數量范圍大
特點實現最小處理單位是雙字或者多字,而拋棄字或者字節。再就是設計新的雙字倍數的編碼體系,讓簡陋的ASCII編碼支持新編碼體系的子集。
1、編程環境支持基于漢語字、詞編程的、全可視化的、跨主流操作系統平臺的編程工具環境;
2、自主開發高質量編譯器,中文源代碼被直接編譯為CPU指令,運行效率高,安全可信性高;
3、有專用輸入法,支持中文語句快速錄入,解決中文輸入慢的問題;
4、適應中國人的思維習慣,提供了適合中國國情的命令,如中文格式日期和時間處理、漢字發音處理、全半角字符處理、人民幣金額的處理等。
5、上手難度低,易學易用,短時期內便可以開發出像樣的軟件。
舉例中文編程語言有:
易語言易語言是一門計算機編程語言。以“易”著稱,以中文作為程序代碼表達的語言形式。易語言的創始人是吳濤。早期版本的名字為E語言。易語言最早的版本的發布可追溯至2000年9月11日。可以說,創造易語言的初衷是進行用中文來編寫程序的實踐。從2000年至今,易語言已經發展到一定的規模:功能上、用戶數量上、資源豐富度上都十分可觀。
1.易語言功能強大實用,現已具有數十個各種應用范圍支持庫、上百個數據類型和界面組件、近萬條支持命令,支持現今所有數據庫,功能絲毫不比其它同類產品差。
2.全自主知識產權,易語言系統全部自行設計開發。
3.自由編譯器。所編譯目的程序運行速度快,且沒有安全隱患。
4.自帶小型數據庫,減少開發項目投入成本,且容易學習。
5.跨操作系統平臺編程。同時支持Windows和Linux的程序開發。(Linux下的程序有局限性)
6.中文本地化支持。支持中文格式日期和時間處理、漢字發音處理、全半角字符處理、人民幣金額處理、農歷日期轉換等。
7.和其它編程語言互溶互通,學習掌握易語言對掌握其它編程語言具有橋梁作用。
8.編程理念互通。支持完全面向對象的程序開發技術和面向事件的程序驅動技術。
9.功能調用互通。可以和其它編程語言之間相互調用功能模塊。
10.充分利用已有資源。支持OCX組件、TypeLib類型庫、操作系統API、JAVA類等。
11多語言支持。現已有簡繁中文、英文等多種語言版本,英文版本稱作EPLSW,最新版本為4.0,對應中文版本的5.11,僅僅是語言和輸入方式上存在不同。
習語言習語言即中文版的C語言,由一套完備的編程語法和相配套的工具組成,旨在將計算機及軟件編程大眾化,普及化,中文化,提高程序的維護性而誕生。適合國人使用,尤其適合作為初學者的入門學習工具。
作為一種中文編程語言,習語言中所有的關鍵字和函數都為中文。習語言已經完全支持匯編和C語言,并向windows圖形處理發展。
歷史經驗證明,英文寫的代碼時間久了大部分都會遺忘的。而習語言則避免了這一點,中文瀏覽下就可以回憶起來,真正符合漢語言特色。而且支持全角標點符號,編程時輸入符號類時不用頻繁切換中英文輸入。
中文C(習)語言中文編程系統(簡稱:習語言):是一款主要用于教育和學習的中文編程軟件系統。基于現有C語言系統實現并有擴充。其特點如下:
1、完全兼容現有的C語言系統,在設置好頭文件路徑的條件下,可以編譯現存大部分C代碼。
2、完全支持全中文編程,自帶大量中文函數。
3、綜合了PASCAL和C的優點實現,支持“開始”“結束”擴起語句塊。支持注釋方法,方便程序組織。
4、支持多字節字直觀表示。如'我','abcd'都可以作為字符看待。
5、支持中文標點符號,中文標點符號和英文標點符號可以混合使用。
6、支持文章式的程序組織,中文文章中嵌入程序,直接編譯。
7、支持中文運算符,支持全角,半角混合使用。
8、體積小巧,簡單使用情況下只需單一接口文件,降低使用難度。
用途:
1、開發底層軟件如操作系統等。
2、寫控制臺程序(俗稱DOS程序)。
3、寫純圖形界面程序(通常的WINDOWS程序)。
4、寫控制臺和圖形界面同時存在的混合程序。
5、編寫游戲程序(opengl)。
雅奇MIS無代碼編程的領先者。
創新LOGOCX-LOGO語言獨創的流程圖工作方式和過程庫的建立,可方便的使用“搭積木”的方法,構建“知識”,使學習更容易、操作更簡便,學生只需簡單的學習就可以操作。
O匯編語言顧名思義O匯編語言也是一門匯編語言,它具有傳統匯編語言的基本特點,也有與它們諸多不同之處。O匯編語言一個最大顯著的特點是支持語言配置,使得它可以支持所有你想支持的語言,當然,O匯編語言的初衷是為了支持中文,所以它可以非常好的支持中文匯編。
如果你已經習慣了其它英文的匯編模式,比如你喜歡用EAX、EBP類似這樣的方式來命名寄存器,不要緊,只需要修改一下語言配置文件,這可以輕松做到。
O匯編語言另一個顯著的特點是指令使用非常直觀和人性化,在不缺失匯編語言靈活性的情況下,使匯編語句的語意可以很直觀地表現出來,這主要得益于用了一些象征性的符號,使得匯編語句不再是千篇一律的(指令寄存器,內存操作數)這樣的格式,而是更像(寄存器操作符內存操作數)這樣的格式,不但容易理解,而且便于記憶,使匯編語言不再那么枯燥,使人一團霧水。
搭建之星原名“發燒積木”屬于搭建式的編程工具,完全可視化編程,有各種各樣的構件,用拖放的方式拼成程式的流程。
特點:1.安裝簡單、迅速,純中文界面。構件豐富,設計過程直觀、自由;無需掌握電腦語言,所有編程構件化、命令化、可視化。2.交互式開發,只需要四種類型的“命令”,便可建立各種構件之間的聯系;象搭積木一樣簡單,并可快速的搭建出具有專業水平的軟件作品。3.微解釋執行,命令解釋量小,執行速度快。可以和編譯后的可執行文件相媲美。
基本功能:多媒體軟件制作,支持多種聲音、動畫、圖像、視頻文件格式。有關教學構件,平面直角坐標系、表達式、變量組、函數圖像、函數列表、樹形瀏覽等;另外還新了動態流程圖、瀏覽器構件、軟件服務號等。提供打包工具,使您即刻將自制軟件安裝到其它機器上運行;自動對開發項目加密;使您的項目,在未經授權下,別人無法“瀏覽、修改”項目的構件關系與搭建方法
相關疑問對漢語編程存在的一些疑問
1.中文輸入真的比英文慢嗎?
很多專家學者,認為國外已有很多成熟的編程系統了,中國再搞漢語編程系統沒有必要。主要理由之一還在于:中文輸入比英文慢。在漢語編程中以大連易語言公司出品的“易語言”為最有特色的代表,也是漢語編程中的技術領先者。
易語言解決了很多技術上的難題。例如:輸入“信息框”,易語言只要輸入“xxk”(xxk是“信息框”的首拼)即可,而不必要象英文“msgbox”這樣輸入6個字母。而且熟悉英語的編程者也可以用自己熟悉的英語輸入。因此我們作研究,不能以點概全,應該親自使用一下,多去了解調查,才能有發言權。
2.學習英文編程只要了解十幾個關鍵字?
有人認為英文編程的關鍵字只有那么十幾個,記憶量不大,而且僅僅是符號而已,編程人員不用花大力氣學習英文編程。但他們僅僅是想當然,學習過編程的人都知道,隨著編程的深入,會越來越多地接觸到英文,很多資料都需要翻譯大量的英文資料。
因此有很多職業培訓學校一開始都是進行外語方面的培訓,有的甚至職業學習的前一兩年都要進行的相關英語的培訓,學校認為如果語言不過關,這些學生后繼的編程學習一定學不好,學不好就不能找到工作。
學習成本高,也就意味著資源的浪費,要花更多的金錢進行學習深化,與中國的“多、快、好、省”地培養人才創造節約型社會的目標相去甚遠,如果能省去學習英語的第一步,直接用母語進行思考,那么就更有可能在中國發展真正有創造能力的人才。
中國的“信息技術”教科書中,大多教現成的軟件如何使用,如WORD、FLASH、3DSMAX,PHOTOSHOP等,這些還不能稱之為信息技術,這些只是學習了現成的流行軟件,學生不能成為這些固化軟件的學習工具,他們長大后可以用極短的時間學會,而我們信息技術教育工作者的任務是激發學生們的創造能力。
易語言漢語編程系統非常適合于在教育系統推廣,學生中不是每個孩子的學習外語資質都好,每個人都有不同的學習興趣與能力,外語的環境也不是人人都可得,不能強求大家都學英語編程。
易語言經過多年的發展和成熟,已經形成了自己的語編標準,成為真正意義上的編程語言了,而不是一個簡單的工具,她就象礦石一樣,通過冶煉可以造出各種工具。學習編程可讓孩子們去思考解決問題的辦法,即算法,讓學生用自己的母語實現自己的想法,編程語言只是工具而已。筆者欣喜地看到,“易語言”已初步在國內的教育系統中推廣了,老師與學生們的反饋都非常好。
一個漢語編程語言一定是博大的,是融合的,可以與其他語言互通互融,學習一種語言后,由于思想相通,因此可以很方便地轉而學習其他語言,不存在學習漢語編程后再學習其他語言不行的情況,因為上期文章也說了,就是關鍵字是類似的,僅是思想的符號而已。
3.其他國家怎么沒有法語編程、德語編程?
西方國家對東方國家的高科技是封鎖的,而歐洲國家卻可輕易得到。中國人學習英語要比西方國家付出更多成本,東西方文化是不同的。
印度模式確實已給了我們很大的啟示,印度的官方語言是英語,因此他們的這個優勢只是表面現象。前兩年華為公司在印度建立分公司之后,深入調研才發現,印度外包發展地好不僅是語言的問題,而在于印度人已普遍接受了西方的文化思想,他們的思維習慣都是西方的,因此能很好地寫出適合于西方的軟件作品,人力資源的成本也低,西方國家也更愿意與他們進行合作。因此編程語言之爭的焦點還在于文化之爭,中國人有自己的思維習慣,因此大部分人都還在用中國的文化思想進行思考問題。
4.嵌入式系統難以應用漢語嗎?
嵌入式系統大多數人已接觸到了,打個現實的比方,手機功能已越來越接近電腦了,很多電腦有的功能,手機都有,而且上面所運行的可以是WINCE、Mobile、Linux系統,有的甚至可以用英文寫段JAVA代碼直接運行了。因此,強求用指令集用漢語確實沒有什么優勢,但從編程這點考慮,漢語實現嵌入式系統的編程不是沒有可能,既然英語可以直接轉換為機器碼,漢語也可以直接轉換為機器碼,可以通過漢語直接調用指令集的辦法實現。
總之,一個新生事物,可能會暫時存在一些缺點,普及和應用漢語編程還有很長的路要走,中國要想成為軟件大國,就一定要普及大眾化,象打乒乓球一樣,人人都能寫程序,都可以用自己的母語編程,形成廣大的用戶基礎,就不愁軟件行業不發展。筆者不會引用很資深的專家學者的話樹立權威,希望大家共同思考這個問題。我相信,在中國人的努力下,一定會開創一個更美好的未來。
分類漢語編程不只是英文程序設計語言的簡單漢化,或是為某個軟件創造一個中文環境,而是以漢語為基礎的、從計算機底層入手的計算機程序設計語言,作為擁有自主知識產權的漢語編程,在中國已經產生了較好的運用價值,并且對未來的計算機運用將產生重大影響。[1] 據筆者所知,用漢語進行編程是中國軟件界的一個新生事物,目前國內的漢語編程大體分為五類:
一類是漢化了其他編程語言而形成的,如:“中蟒”,就是漢化了Python語言;“易樂谷”是漢化了的LOGO語言;“丙正正”是漢化了的C++,“EMS”就是漢化了的Visia Compiler。
第二類就是自主研發了漢語內核的,如:“易語言”,“易語言.飛揚”等,漢語可被直接編譯為機器碼;“易腳本”、“世寶腳本”是自主開發的腳本語言。國產自主研發語言,還有其中的O語言,組合語言,習語言是C語言的漢化,支持漢語編寫。
另一類是以漢語為基礎,搭建式或區別于傳統編程的工具。如:搭建之星,網站搭建者,華羅庚(MISD),雅奇990等。
第四類是中國人寫的英文編程,可以稱之為國產編程語言,嚴格的話不能劃為漢語編程,但漢語化應該不成問題,也在這里給大家了解一下。
第五類是中國人編寫的程序語言翻譯軟件,包括正向翻譯(將中文代碼翻譯成標準英文代碼)反向翻譯(將標準英文代碼翻譯成中文代碼),屬于應用級編程輔助軟件。是一款專門針對程序語言的翻譯軟件。如:十十視程序語言翻譯軟件。
特點用什么語言來表達編程思路其實是一回事,英語可以編程,漢語同樣可以編程,而且漢語編程作為計算機語言更符合自然語言。
1.打破了英文編程語言的壟斷,可以有效減少信息技術對英文的依賴,對形成全面的信息產業獨立體系有巨大推動作用。
2.中國人用自己的編程語言,才更有利于各種程序的編寫。不但簡化學習過程,而且提高了編程效率。
3.漢語編程從根本上可以解決信息技術化發展的問題,只要會寫漢字,就可以學習編程,而且漢語編程所編的軟件可以很好地解決方方面面的問題。
4.用什么語言來表達編程思路其實是一回事,英語可以編程,漢語同樣可以編程,英語的關鍵字只是表意符號而已,漢語也可以作為表達編程的語言之一,只是有一些技術上的問題需要克服。我們可以看到,“易語言”把漢字輸入比英文輸入更有優勢表現的淋漓盡致。
詳細O語言是一組支持中文的計算機語言套件,目前它包括了界面描述、中間語言、中文匯編及中文反匯編,并且擁有一個友好的開發環境。它是支持計算機最底層的二進制指令語言,為了便于學習和使用,中間語言的語法大量借鑒了C的語法格式,并且支持了C的標準庫,因此可以說它是一個中文C,但也有與C明顯不同的地方。
比如指針的使用,在C中指針是用類型加星號表示,在中間語言中增加了一個地址類型用來表示指針,如果要表示地址類型可以類似這樣地址<整數>整數變量;以下詳細介紹了中間語言。
中間語言是低級匯編語言的抽象,匯編語言是針對硬件開發的語言,它對硬件有高度的依賴性,一種匯編語言只能對一種硬件進行操作,而且是完全的操作。
由于不同硬件架構的處理器之間的指令不能相互通用,但是在功能上又有很多一致的地方,都能對一定長度的二進制數進行各種運算操作,比如加法指令,在x86硬件系統中有,在MIPS硬件系統中也有,雖然具體的硬件實現上有所不同,指令的二進制代碼也不同,但對人們而言作用是共同的,于是我們把這些相同的功能進行抽象,并制定相應的一套語法系統,讓編譯器能把一組相同的代碼針對不同的硬件編譯出不同的二進制代碼,就開發出了當前的中間語言。概括地說中間語言是不同匯編語言的共同功能的抽象語法集。
中間語言與C語言有什么不同
一、在設計理念上有所不同
我們知道C語言是可以在不同硬件平臺移植的,這里用了移植的概念,也就是說在最開始設計C語言的時候并沒有考慮到所有硬件平臺的問題,只是后來C語言流行以后,在不同平臺上都按C語言的語法規范開發出了編譯器,于是在一個平臺上的代碼可以直接拿到另一個平臺上進行編譯,這就有了移植的可能。而中間語言是直接在硬件上相同功能指令的抽象,不存在移植的問題,本身它實現的功能都是不同硬件所具有的功能。
二、在語法設計上有所不同
C語言的語法是以語句為單位的,一條語句會被編譯成一條或多條匯編指令,以實現語句的功能。而中間語言是匯編語言的抽象,它以指令為單位的,一條中間語言的指令對應的簡短的一條或幾條相同功能的匯編指令。只是為了使用方便和編譯器功能的增加,能夠將多條中間語言的指令連起來寫,表面上看起來有點類似于C語言的語句。
如何寫注釋文本
O中間語言的注釋與C語言注釋文本方式相同,行注釋為兩個英文右斜杠//塊注釋為/**/
//這是行注釋
/*這是塊注釋
中間語言有哪些指令語句
一、運算指令
目前中間語言共實現了下列格式的指令
變量A=變量B賦值指令
變量A+=變量B加法指令
變量A++自加1指令
變量A-=變量B減法指令
變量A--自減1指令
變量A*=變量B乘法指令
變量A/=變量B除法指令
變量A%=變量B求模指令
變量A&=變量B與操作指令
變量A|=變量B或操作指令
變量A^=變量B異或操作指令
變量A@=變量B取地址指令
變量A>>=變量B位右移指令
變量A<<=變量B位左移指令
變量A~求反指令
變量A<=>變量B互換指令
其中:
變量A可以是8位、16位和32位數據變量
變量B既可以是8位、16位和32位數據變量,也可以用立即數代替(除互換指令外),比如:
變量A+=0×1234
二、條件語句
下面介紹的條件語句中的<條件>可以是:
(變量A==變量B)
(變量A!=變量B)
(變量A>變量B)
(變量A<變量B)
(變量A>=變量B)
(變量A<=變量B)
(變量A!>變量B)
(變量A!<變量B)
多個條件可以用或者符號||并且符號&&進行聯接,比如:
(((變量A==變量B)||(變量C>變量D))&&(變量E<=變量F))
如果語句
如果(<條件>)
//語句塊
類似C/C++的if語句。
如果條件成立就執行語句塊,也可以寫成:
若(<條件>)
//語句塊
否則如果語句
否則如果(<條件>)
//語句塊
類似C/C++的elif語句。
如果條件成立就執行語句塊,必須與前一個語句為“如果”語句或“否則如果”語句匹配使用,也可以寫成:
又若(<條件>)
//語句塊
否則語句
否則
//語句塊
類似C/C++的el語句。
必須與前一個語句為如果語句或否則如果語句匹配使用,也可以寫成:
則//語句塊
循環語句
循環(<條件>)
//語句塊
跳出;//break
繼續;//continue
類似C/C++的while語句。
如果條件成立則執行{}中的代碼,再判斷條件,滿足則繼續執行語句塊,直到不滿足才跳出。循環中可以在任何地方使用“跳出;”來跳出循環(不管是否滿足)。也可以使用“繼續;”語句直接進入下一次條件判斷。
執行…當語句
執行
//語句塊
跳出;//break
繼續;//continue
}當(<條件>)
類似C/C++的do,while語句。
與循環語句相似,只是判斷條件在語句塊之后,也就是說語句塊至少會被執行一次。
設語句
設(語句1;<條件>;語句3)
//語句塊
跳出;//break
繼續;//continue
類似C/C++的for循環。
整數i,j=0;
設(i=0;i<=100;i++)
j++;
i和j將循環100次
先執行語句1,再判斷條件語句,滿足,執行語句3,再執行{}中的語句,再判斷(注意不再執行語句1),滿足,繼續,如此循環,直到不滿足語句2為止。
三、標簽與跳轉語句
標簽標簽A:
跳到標簽A;
跳到語句與C語言的goto語言作用相同,在函數內直接跳轉到標簽所定義的位置執行。
五、返回語句
函數可以有多個返回值,這必須在函數定:
有多個函數值時必須使用括號()
函數函數名(整數32,整數32)=>(整數32,整數32,結構體名)
//函數體
返回(0×1234,變量A,結構A);
要接收返回值
如果只有一個返回值可以用
變量A=函數名(1,2);或者函數名(1,2)=>變量A;
如果有多個返回值則必須用下列格式:
函數名(1,2)=>(變量A,變量B);
中間語言支持哪些數據類型
一、基本數據類型
O中間語言對應C語言基本數據類型
整數8char
正數8unsignedchar
整數16short
正數16unsignedshort
整數32int
正數32unsignedint
小數32float
小數64double
基本的數據類型表示用這個這類型來定義一個變量時,這個變量長度為類型后面數據所指的長度,比如整數8表示定義的一個長度為8位變量,其它以此類推,而正數表示的是定義一個無符號數。
定義變量的格式是:類型名稱變量名;
舉例:
整數32變量A;//定義了一個類型為整數32的變量,變量名為“變量A”
無符號數是指變量的最高位不表示符號,而表示數據本身,比如一個8位的變量如果是有符號數,那么它真實的數值只有7位最高位表示符號位,而如果是無符號數,那么8位都表示的是數值。比如:11001100這個二進制數
如果是有符號數則表示最高位是1表示是負的,真實的數值是1001100,那么這個數值就為:-52(以補碼的形式計算而得)
如果是無符號的數則8位都是數值,其值為204
由此可得出:
整數8的取值范圍是-128~+127,
正數8的取值范圍是0~255
整數16的取值范圍是-32768~32767
正數16的取值范圍是0~65535
整數32的取值范圍是-2147483648~2147483647
正數32的取值范圍是0~4294967295
二、地址類型
地址類型有兩種,一種是變量地址,另一種是函數地址。地址類型變量的取值范圍與正數32相同,地址類型的變量可以與基本數據類型的變量一樣使用進行各種運算。地址類型在C語言中被稱作指針。
一個變量地址變量定義格式如下:
地址<變量類型>地址變量名;
其中<變量類型>可以省略,則可以簡單定義為:
地址地址變量名;
如果地址變量在定義時有指定變量類型,,則可以使用:
取數值地址變量名
來得到這個地址向指向的數據。
如果變量類型是下面所指出的復合數據類型,則可以使用:
地址變量名->成員名稱
來對地址所指向的復合類型變量的成員進行操作。
一個函數地址變量定義格式如下:
函數類型類型名(整數32參數1,整數32參數2)=>整數32;
類型名函數變量;
當把函數變量賦值后,就可以把它當然一個函數來調用了:
函數變量(1,2);
三、復合數據類型(結構體、聯合體、枚舉體)
結構結構體名
整數32變量A;
整數32變量B;
聯合聯合體名
整數32變量A;
整數32變量B;
結構體與聯合體的區別:
結構體的變量空間為所有子成員空間的總和,比如上面那個結構的變量空間為兩個整數32長度相加為8個字節長度。
聯合體的變量空間為最大子成員的變量空間,所有子成員共享這一空間,一個成員值改變可能會影響其它變量值的改變。比如上面那個聯合體的變量空間是一個整數32的長度為4個字節。
枚舉枚舉體名//枚舉體名可以省略
星期一;
星期二;
枚舉體的成員不需要設置變量類型,只需要直接給出成員名稱,所有的成員都默認為整數32類型。并且這些成員的變量可以直接使用,并被默認初始化為第一個成員為0,后一個成員的值為前一個成員自動增1,也可以用等號“=”對成員變量進行初始化賦值。
四、數據類型重定義
除了上面介紹的數據類型外,還可以對現有的數據類型名稱進行重定義,其定義格式如下:
現有的類型名稱類定義新的類型名稱
舉例:
整數32類定義自定義整數
讀著整數32被類型重定義為自定義整數
如何定義變量
一、全局變量
全局變量是被定義在函數外面的變量,全局變量的作用域是本文件內被定義之后的所有代碼。下面的藍色為全局變量A的作用域。
//全局變量定義
整數32全局變量A;
函數函數名()
//文件結束
二、局部變量
局部變量是被定義在函數內部的變量,局部變量的作用域是在語句塊內,變量被定義之后。
函數函數名()
//局部變量定義
整數32局部變量A;
局部變量A=1;
如果(局部變量A>0)
整數32局部變量B
//其它代碼
//函數結束
上面藍色(包括紫色部分)為局部變量A的作用域,紫色部分為局部變量B作用域。
三、外部變量
外部變量的定義與全局變量定義相同,只是在最前面加“外部的”關鍵字進行修飾。
外部的整數32變量A;
也可以在引用段中定義一個外部變量:
引用段
整數32變量A;
外部變量只作用為變量引用而不在本文件中真實定義這么一個變量,這個變量必須在其它的文件中進行定義。
如何定義函數
一、自定義函數
定義函數以“函數”關鍵字開始,后面按順序是函數調用類型、函數名、輸入參數列表、返回類型列表,最后是函數體:
函數[調用類型]函數名(整數32參數1,整數32參數2)=>(整數32,整數32)
//函數體
其中調用類型是可選項,指明函數被調用的類型,可以是O調用、C調用和標準調用,O調用與標準調用基本相同,只是多了對擁有多個返回值的處理。如果不寫調用類型則默認為O調用。
C調用是參數從右到左壓棧,調用者進行堆棧平衡
O調用與標準調用都是參數從右到左壓棧,函數退出之前進行堆棧平衡。
如果函數沒有返回值則不需要=>后面的內容
如果函數只有一個返回值則可以省略返回值列表的括號,直接=>返回類型
如果函數有多個返回值則必須要使用括號=>(多個返回值類型用逗號分格)。
如果函數有返回值類型,則在函數退出之前必須使用返回語句進行值返回。
二、入口函數
入口函數屬于自定義函數,這個函數的關鍵字是“入口”而不是“函數”,這個函數不能擁有參數,程序將從這個函數開始執行。如:
入口主函數()
一個程序只能擁有一個入口函數。
DLL程序的入口與這個有所不同,請參照“如何編寫一個動態鏈接庫程序”小節。
三、外部函數
外部函數是已經生成的只需要有函數定義就可以直接調用的函數,這個函數的函數體代碼一般在庫文件中。比如系統的API,C語言庫及其它函數庫。
要使用這樣的函數必須在對函數進行定義,定義的格式與定義一般函數相同,只是不需要在函數體,并在最后加分號表示語句結束。并且外部函數與外部變量一樣,必須用“外部的”關鍵字進行修飾,或者在引用段中定義。比如:
引用段
函數獲取模塊句柄(整數32)=>整數32;
外部的函數畫直線(整數32x1,整數32y1,整數32x2,整數32y2);
可以有參數名,也可以省略參數名。
你還必須在你的代碼里添加對這個函數所在庫的引用,引用庫的語法格式如下:
.引用庫<庫名稱>
中間語言關鍵字
.包含文.引用庫引用段外部的
宏定義取消宏定義類定義取地址取數值取大小
入口函數結構聯合枚舉
如果否則如果否則循環跳出繼續返回
若又若則執行當設標簽跳到
對于若為其它
C調用標準調用O調用
整數8正數8
整數16正數16
整數32正數32
小數32
小數64
地址
函數類型
界面描述
參考資料本文發布于:2023-06-02 02:45:32,感謝您對本站的認可!
本文鏈接:http://m.newhan.cn/zhishi/a/92/189681.html
版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。
本文word下載地址:中文編程語言(計算機形式語言).doc
本文 PDF 下載地址:中文編程語言(計算機形式語言).pdf
| 留言與評論(共有 0 條評論) |