欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

在計算機內采用無標志的漢字機內碼時防止錯譯而便利用戶的方法

文檔序號:89629閱讀:490來源:國知局
專利名稱:在計算機內采用無標志的漢字機內碼時防止錯譯而便利用戶的方法
在使用英文計算機處理漢字的工作中,經常遇到原計算機的軟件或硬件對輸入字符有限制的問題。例如PDP-11機的屏幕編輯程序,和Solar機的所有軟件和硬件,都不允許字節(jié)的最高位為1;Cyber機則連小寫字母都不行。此外,幾乎所有的程序語言對其標識符(包括變量名、子程序名、語句標志等)的構成都有更為嚴格的規(guī)定。因此,當用漢字的國標碼(GB2312)來代表漢字進入主機時,往往不能被接受。解決此問題的途徑通常有二一是修改主機的系統(tǒng)軟件。對于微型機可以這么做,但對稍大規(guī)模的系統(tǒng)軟件、修改就有困難,甚至不可能。在此情況下,就得采取另一途徑,就是改變機內碼的形式,使其能為主機所接受。
這種經改變而能為多數計算機接受的漢字內碼大多只用大寫字母或數字組成。由于允許使用的字符數少,組成的漢字機內碼都不免偏長(有達4個甚至6個字節(jié)者),而且必需使用指定的符號(區(qū)分符)加在漢字字串的開始和結束,或加在每個漢字代碼的起頭,以免與英文相混。在漢字字串的前后加區(qū)分符(如同括號),對于字串的分解、聯(lián)結,或插入、刪改等操作是不利的。然而,在每一個漢字代碼的前面都加區(qū)分符就更增加了代碼的長度,對系統(tǒng)資源的利用更為不利。此外,所選區(qū)分符如在大寫字母與數字以外,也可能正恰是主機不能接受的;如徑用大寫字母或數字做區(qū)別符,則造成問題更多。
82年秋,北京大學毛德行在中文信息研究會于承德召開的漢字系統(tǒng)學術會議上提出一個大膽的根本不用區(qū)分符的方法-通過折算使國標碼變?yōu)槿齻€英文大寫字母,如與COBOL的保留字有沖突,則順推作些修正;漢字串代碼的字符數必需是三的整倍數,不得與其他英文或數字串相連(詳見毛德行“中文信息與COBOL語言的聯(lián)接”,上述會議論文)。這個方法的明顯特點是突破了一向認為必需區(qū)分符的框框,但其實際辦法卻有缺點,最主要的是①要為每一種語言都編制一個不同的修正表,同一漢字經由不同的語言,產生的機內碼將不相同。②用戶如需輸入英文字串,必需提防哪些英文是有可能被誤譯成漢字的,例如,僅對國標CB2312的區(qū)號1及2共188個漢字的范圍,就有gib,gig,gigmanity…giving…GMT,gnomon,gnomon-ics…god,…got…GPU(按《新英漢詞典》)共54個字或縮寫可能被誤譯。要求用戶避免使用正常的英文,必然會遭到強烈的反對。
本人鑒于毛德行方法的優(yōu)點和缺點,進一步研究出一個新的方法,就是把三個字母中的第二字母換成數字,就可避免上述兩個缺點。1983年5月本人送交中國科學院的科學基金申請書(課題名為《全兼容硬拷貝漢字終端和廉價漢字電傳的原理試驗》)中述及的G9A碼,是本人提出新方法的最早書面見證。因為當時我國沒有專利法可予保護,所以后來陸續(xù)有些單位已使用了相似的方法。例如84年福建計算機研究所宣布研制成漢字終端和個人計算機,其中所用漢字代碼的第一字節(jié)是G~Z,第二字節(jié)是數字,第三字節(jié)則是數字或字母均可。此法與本人的G9A碼相似。(該法已用于批量生產,投放市場,故已失去新穎性)期刊《微型電腦》1984年第3期上也刊登了湖南大學周有文的文章《具有最短長度的漢字西化碼》、所謂“漢字西化碼”,除第一字節(jié)是A~Z外,其余兩字節(jié)和福建計算機研究所完全相同。
上述福建與湖南兩種做法,都是在第三字節(jié)上允許使用數字。這造成漢字與英數字串混淆的可能性極大。例如在計算機程序中,象K23,L12這樣的標識符是很常用的;微機芯片Z80極普遍;電路元器件R12,U23,則更多見。如把這樣的英數字串輸入計算機,按上述兩做法,都將被錯譯成漢字。為了防止被錯譯,用戶必需謹慎提防并避免使用常見形式的英數字串,這是不受歡迎的。
本說明書下面所述的方法,可使用戶在輸入通常一般的英數字串時都不必小心提防或避免什么。
一般地說,因為在英文中(隨之在各高級語言的保留字中)有大量的冗余度(redundency),故可推斷,要找到一種不與任何保留字發(fā)生沖突的漢字代碼形式是可能的。例如,不用A,E,I、O、U、Y六個母音字母,只用其余20個子音字母來組成漢字代碼(三位共8000個組合),就不可能與任何保留字沖突。(按毛德行的原意,只求與COBOL的保留字不沖突)。但在實際中,除高級語言外,還時常要用到匯編語言(需用到助記符如JMP,HLT等),在用戶輸入的字符串數據中還常可能夾有英文縮寫(如BCD,TTL等),這就使問題棘手起來。
經調查后發(fā)現(xiàn),一般匯編語言的助記符(mnemonics)都不帶數字。因此在漢字代碼中夾用數字可避免相混。但又因此可能與16進制數相混,所以又需對字母作些限制,即需在某一位上避免使用A~F,共有以下六種代碼形式可供選用GA9、AG9、GG9、G9A、A9G及G99-其中A代表字母A~Z,G代表G~Z,9則代表數字0~9。這6種形式都能避免與一般計算機系統(tǒng)里的高級語言保留字、匯編助記符、或16進制數相混,但不能保證與用戶可能輸入的各種英數字串相混。
如果用戶輸入的只是英文單字(詞),則因漢字代碼中必有數字而自然區(qū)分。問題是用戶經常要使用帶數字的英文標識符(包括變量名)如STRING2、LOOP3等,這就不宜使用GA9,AG9、或GG9形式的代碼。此外,用戶很可能要輸入各種產品型號(如C-5A銀河式飛機,PC-100C熱印機),醫(yī)學代號(如白細胞血型HLA-B15,大腸桿菌K12株),幾何說明(如直線A1C1、角BOC),線路元件號(如集成電路U23,電阻R12,插口J2),甚至如照象機光圈大小必需說是F8~F11等等。這些都有可能與所述漢字代碼相混。實際中以各種產品型號較常見。下表為上述幾種代碼正恰被各種型號含納的統(tǒng)計
由此可見,只有A9G形式的代碼與各種型號發(fā)生混淆的可能最小,所以只應該采用A9G碼或其字集。(在本人實際研制的設備中用的是A9I碼,I=I~Z)。但因仍不能完全避免混淆,所以還需另設制約。在前述毛德行的辦法中,要求漢字串的代碼長度必需是三的整倍數。那一制約所起的作用是很弱的,因為有很多英文字串正恰是三的倍數。這里提出的極為有效的方法是采用如下的約定①漢字與數字可以任意連接(指在漢字碼與相連數字之間無需間隔)。因而連成“漢字數字串”的長度不拘;漢字與一般英數字串也可隨意連結(除下述例外),因而連成“漢字英數字串”的長度也不拘。
②在任一“漢字英數字串”中,除連續(xù)為漢字的情況外,凡遇連續(xù)兩個大寫字母,即認為從這兩個字母開始,以后均為英數字,直到遇到非大寫字母并且非數字為止。
按此約定,非但上述表中A9G碼尚存混淆已全部排除,而且迄今為止,尚未在任何其他方面發(fā)現(xiàn)有被誤譯可能的實例。(舉例說,曾發(fā)現(xiàn)匯編程序ASM-86中還有FYL2X和FYL2XPI兩個保留字,某一軟件的代號為MZ2Z006E等,都因有上述約定而不致誤譯)。
實際上,按此約定,反而有可能漏譯漢字。例如字串“MX導彈”,如在MX和導彈之間沒有空格,就會把“導彈”的代碼誤作英數字串而不譯。再如字串“U3芯片”、如在U3和芯片之間沒有空格,也會導致誤譯。這兩種可能發(fā)生的混淆,是可以由機器程序來自動檢測、自動防止的凡由輸入英數字態(tài)轉入漢字態(tài)時,機器即自動檢測此前已輸入的英數字與后隨的漢字代碼有無發(fā)生混淆可能,如有,即自動插入一個空格,(沒有就不插入)。因此,對于用戶來說,就象任意英數字串都可以和漢字相連一樣,使用時可以完全放心而方便。
為了完善,還應讓機器自動執(zhí)行如下的監(jiān)測。因為,盡管所述漢字代碼按照相應的約定與英數字串發(fā)生混淆的可能性已經極小,但仍不能說已絕對不可能。這種極小的但總歸存在的可能也可用自動監(jiān)測的方法來徹底排除。就是讓機器自動對英數字狀態(tài)的輸入字符進行不斷的監(jiān)測,凡遇形如A9G而在此前沒有連續(xù)兩個大寫字母的,就自動在第三字節(jié)前插入一個短橫(hyphen)。例如輸入“3J5M”會自動成為“3J5-M”。這樣就可100%保證絕不會發(fā)生誤譯的事。
上例3J5M如是產品型號,在插入短橫后,仍只可能被認為是型號。然而,如有計算機操作命令形如A9G,卻是不允許在其中插入短橫的。所幸的是,所有的操作命令在計算機按命令執(zhí)行之后都自行消失(不進入文件),所以也不存在是否會誤譯的問題。所以當編輯、調試程序時,可以按鍵命令不進行監(jiān)測。而當連續(xù)輸入大量數據時,所述監(jiān)測將可完全防止誤譯。
A9G碼或G9A碼各自可能組合(應稱“碼字”codeword)總數都只有5200個。對于一級字已足夠了,但不足以包括二級字。在A9G和G9A這兩個集之間(即兩者之交)有4000個碼字是相同的。同時用兩個集,而減除重復部分(用兩者之并),也只6400個碼字,仍不夠。因此,對于二級字及基本集以外的字,應該采用四位碼,其形式為A9GX、G9AX、A9IX,其中X為字母或數字均可。三位碼與四位碼混用是不會發(fā)生分不開的問題的。例如在本人實際研制的設備中,凡以A~X開始的都是三位碼,而以Y、Z開始的即認為四位碼。因為根據統(tǒng)計,二級字的總使用率還不到0.2%,所以雖用四位,但與一級字一起實際使用的平均碼長仍低于3.002字節(jié)。由于不需要區(qū)分符,這比一切需用區(qū)分符的方法要短許多。
權利要求
當采用沒有區(qū)分符的漢字機內碼時,采用本方法可使用戶覺察不到系統(tǒng)對于輸入英數字串的形式有限制,并可保證不會發(fā)生機器誤譯的事。本方法有如下特征1、限制機內碼的構成,除第一位必需為大寫字母、第二位必需為數字外,在第三位上仍必需為大寫字母,不得用數字。碼字總數不夠時,可加用第四位的字母或數字。2、使用如下的由機器執(zhí)行的約定除了連續(xù)為漢字,凡遇連續(xù)兩個大寫字母,即認為從這兩個字母開始,以后都是英數字,直到遇見非大寫字母而且非數字為止。3、采用如下的自動檢測當機器處于輸入英數字態(tài)時,它將自動對輸入字符進行不斷的檢查,凡遇形如規(guī)定的漢字代碼而在此前沒有連續(xù)兩個大寫字母的,就自動在第三個字符之前插入一個短橫;而當機器每次由輸入英數字態(tài)轉為漢字態(tài)時,它也進行一次檢查,如此前字符與后隨的漢字代碼相連后有發(fā)生混淆可能,即自動插入一個空格。請求對上述方法給予保護。
專利摘要
近年來出現(xiàn)了一種完全不需要區(qū)分標志(或稱區(qū)分符、引導符)的漢字機內碼。這種機內碼通常由三個大寫字母和數字組成,其主要優(yōu)點是能適用于任何計算機,并且可用于程序中的標識符(包括變量名)。但有一個缺點用戶在輸入英數字串時將受到明顯的限制,稍一不慎就被機器誤譯成漢字。本方法旨在克服這一缺點。在采用本法之后,將使用戶覺察不出有什么限制,而且能保證不會發(fā)生誤譯的事。
文檔編號G06F11/28GK85100956SQ85100956
公開日1986年7月23日 申請日期1985年4月1日
發(fā)明者錢文浩 申請人:中國軟件技術公司導出引文BiBTeX, EndNote, RefMan
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
石狮市| 仁布县| 鞍山市| 上高县| 大理市| 珲春市| 新竹县| 乌鲁木齐市| 镇江市| 清苑县| 鞍山市| 磐安县| 卢龙县| 松滋市| 乌海市| 巴里| 德钦县| 珠海市| 临海市| 蒙山县| 临洮县| 桂平市| 方山县| 萨嘎县| 扬中市| 黄平县| 高唐县| 和龙市| 佛教| 吉水县| 永康市| 新密市| 新乡市| 瑞昌市| 河池市| 东阳市| 阜平县| 惠东县| 北票市| 新化县| 达州市|