999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

可逆編程語言R-JAVA及其語言處理系統的設計

2017-04-13 19:28:30薛慧君
電子測試 2017年4期
關鍵詞:語言系統設計

薛慧君

(內蒙古電子信息職業技術學院,內蒙古呼和浩特,010070)

可逆編程語言R-JAVA及其語言處理系統的設計

薛慧君

(內蒙古電子信息職業技術學院,內蒙古呼和浩特,010070)

可逆編程語言是可逆計算研究中的重要內容,利用可逆編程語言編寫的程序,能夠實現正向和反向的雙向運行,從而分別實現結果獲取和恢復輸入兩方面功能。因而,可逆編程語言的研究十分必要。

可逆編程語言R-JAVA;語言處理系統;設計

0 引言

Janus是現知最早的可逆編程語言,目前流行的計算機都存在邏輯上的不可逆,在其運行計算時,會出現信息丟失等情況,且無法返回推前狀態,而理論上講,若是具備充足的存儲空間,則所有邏輯上的不可逆計算,都能夠成為可逆計算,Janus語言便是基于這一理論,所形成的可逆編程語言。其語法設計主要遵循基本語句可逆和控制結構可逆兩方面原則,而R-JAVA也是如此。

1 可逆編程語言R-JAVA設計原則

1.1 遵循基本語句可逆原則

要想實現可逆計算,必須要在軟件層次和邏輯綜合層次找到適合的可逆變換函數[1]。軟件層次上,程序中語句執行內存的變量值為動態狀態,因而,在軟件層次中,程序段賦值語句為內存狀態變換函數,即 Y = f (X ) ,其中,X為程序運行前內存的內存狀態,Y則為程序運行后的內存狀態。在可逆邏輯綜合中,n變量布爾函數 f (x

1, x2,

. .. ,xn) 要想實現可逆性,必須具備相應的性質。也就要求,n變量布爾多輸出函數必須具備可逆性。即如果輸出數等于輸入數且任一個輸出模式只有一個唯一的原象[2]?;谶@一性質,結合軟件層次函數,則以上提到的函數只要是單射函數,便具有可逆性。即 f ( a ) = f (b ) ? a = b , Y = f-1( X ) 。X能夠唯一確定Y,反之亦然。

可逆語言設計中,必須要使賦值語句作為單射的狀態變換函數。傳統語言中的賦值語句都是不可逆的,程序運行后,無法再通過內存狀態回推前狀態,因而,要想使其具備可逆性,則需要參照常用可逆邏輯門Toffoli門變換函數 f ( t1,c1,c2)= (t1⊕ ( c1? c2), c1, c2,)使賦值語句遵循 f (x , y1,y2,. ..yn) = (x ⊕ g (y1,y2,.. .yn)) 規則。其中,“ ”為異或運算,且 ⊕ ∈ { + ,- ,-} ,因所區運算符需要對公式中第一⊕參數單射。“·”為與運算,x,y1,y2,...,yn都代表內存中的變量。同時, g (y

1,y2,.. ., yn) 是對內存中變量進行任意計算的表達式,但是其中需要注意的一點是,不可以包括x,否則會影響可逆性。這一表達式無需可逆,能夠包含任何運算符,主要通過臨時變量的添加,就可以實現所有不可逆賦值語句的可逆。例如就“x=x*y+z”這一不可逆賦值表達式而言,要想使其具備可逆性,則只需要增加臨時變量t,使表達式變為 t = t-x ; x = x-( t * y + z ),在保持原本表達能力的同時,賦予其可逆性。

1.2 遵循控制結構可逆原則

結構化程序設計中,主要包括三種控制結構。第一種是順序結構,只要實現基本語句可逆,則該結構可逆。第二種是分支結構、第三種是循環結構,這兩種結構由于其執行流程圖中存在執行分支匯聚點,在實現可逆的過程中,逆向運行至匯聚點,沒有明確的指示命令其選擇哪一分支繼續運行,因而即使基本語句可逆,這兩種結構也無法實現可逆。為了解決這一情況,可以在匯聚點設置條件判斷,從而使其實現可逆。

2 R-JAVA語言處理系統設計

2.1 概要設計

R-JAVA語言處理系統輸入為R-JAVA源程序,而這一源程序既包含可逆成員函數,同時也包含普通成員函數。前者由R-JAVA編寫,后者則由JAVA編寫。其中的普通程序函數,系統會將其直接交由JDK,而可逆成員函數方面,系統則需要將其進行翻譯,使其最終成為兩個分別對應正向、反向語義的成員函數JAVA代碼。隨后,將得到的成員函數JAVA代碼與普通成員函數JAVA代碼進行合并,從而形成目標程序,并由JDK解釋運行。

該系統主要包括三個模塊,第一個模塊是詞法分析器,這一模塊相對來說較為簡單,第二個模塊是語法分析器,第三個模塊是翻譯器,這兩個模塊需要在設計中加強重視。

2.2 語法分析器設計

R-JAVA文法設計是R-JAVA語言處理系統語法分析器設計中的重要部分,文法類型與語法分析方法息息相關,因而,在語法分析器設計中,首先需要進行 R-JAVA文法設計。R-JAVA選用的遞歸下降分析法是一種易于構造的語法分析方法,要求文法屬于LL(1)型。同時,要求文法規則不可以存在左遞歸,并需要保證文法可逆,因而其設計過程存在一定的難度。另外,文法表達是不要求可逆,因而,其文法規則與傳統語言相同。R-JAVA文法中,所有的可逆成員函數都應將關鍵字“reverse”作為開頭,函數體中的變量都是類成員變量,條件語句中需包括兩個“布爾條件”,并且當型循環語句也是如此,且需要按照出現順序分別對應改造后的可逆分支結構和可逆循環結構程序中的布爾條件。同時,可逆成員函數都無形參和返回值,調用函數的過程中,若是不添加后綴“_rev”則為正向調用,若是添加則為發向調用,且賦值語句最右值可逆運算符中,僅能夠包含加、減、異或,其表達式中則能夠包含任意運算符號。

R-JAVA語言處理系統中的語法分析器,主要能夠實現可逆成員函數語法分析,并生成包含調用元語句、賦值元語句、邊界元語句等六種不同類型元語句的中間代碼-元語句組。其中,Node元語句是所有元語句的父類,BoundNode是邊界元語句的父類[3]。根據源程序中各成分向元語句類型的轉換規則可知,stmts代表語句塊,其主要包含分支語句、賦值語句、循環語句等成分,通過相應成分的調用,能夠實現其與元語句的轉換。而根據R-JAVA文法規則,能夠了解到文法中所有的非終結符在類Parser中都會進行相應的處理,語法分析器代碼也封裝在Parser類中。在處理過程中,語法分析從符號“可逆程序”出發,在遇到終結符時,會將其與Token進行對比匹配,判斷其匹配適宜性,在遇到非終結符時,則會調用與之對應的處理過程。

2.3 R-JAVA翻譯器設計

R-JAVA翻譯器能夠將元語句翻譯成等價的JAVA代碼。在R-JAVA翻譯器設計中,必須實現其對元語句組正反雙向翻譯的功能,而其中的反向翻譯難度較大,不僅遍歷順序改變,同時也需要對每條翻譯進行適當的語義反轉。按照翻譯規則,翻譯器對元語句進行正向和反向雙向逐條翻譯。反向翻譯函數back-wd()處理過程中,先將指針定位在元語句組的倒序第一條記錄,并向前遍歷至正序第一條記錄,從而實現所有元語句的反向翻譯。

3 結論

本文對可逆編程語言R-JAVA進行了簡要介紹,并分析其設計原則,設計了可逆編程語言R-JAVA語言處理系統。該系統能夠實現R-JAVA源文件向JAVA目標文件的轉換,既能夠獲取正向運行結果,也能夠實現逆向運行恢復輸入。

[1]高官濤,鄭小盈,李明齊.面向R語言的分布式流處理系統設計與實現[J].科學技術與工程,2016,2(2):208-213.

[2]衛麗華.可逆編程語言相關理論及實踐研究[J].軟件導刊,2015,2(2):62-65.

[3]朱鵬程,管致錦.可逆乘除法指令的設計與仿真[J].計算機工程與設計,2015,7(7):1800-1807.

Design of reversible programming language R-JAVA and its language processing system

Xue Huijun
(Inner Mongolia Electronic Information Vocational Technical College, Inner Mongolia Hohhot,010070)

reversible programming language is the important content in the research of reversible computing, using reversible programming language program, to achieve two-way running forward and reverse, which respectively obtain and recover the input function two. Therefore, it is necessary to study the reversible programming language.

reversible programming language R-JAVA; language processing system; design

猜你喜歡
語言系統設計
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
語言是刀
文苑(2020年4期)2020-05-30 12:35:30
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
讓語言描寫搖曳多姿
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
累積動態分析下的同聲傳譯語言壓縮
主站蜘蛛池模板: 91人妻在线视频| 国产白浆一区二区三区视频在线| 好吊色妇女免费视频免费| 免费国产黄线在线观看| 伊人福利视频| 久久精品视频一| 8090成人午夜精品| 欧美日本一区二区三区免费| v天堂中文在线| 国产精品一区二区在线播放| 国产在线视频二区| 欧美天堂久久| 大陆国产精品视频| 国产精品自在在线午夜区app| 天天色综网| 中文字幕波多野不卡一区| 99热这里只有免费国产精品| 日韩在线第三页| 99精品视频播放| 国产激情国语对白普通话| 国产亚洲精品资源在线26u| 亚洲成人一区二区| 91国内在线观看| AV不卡国产在线观看| 伊人久久大香线蕉综合影视| 91网红精品在线观看| 99久久性生片| 国产精品蜜芽在线观看| 久久成人免费| 国产毛片一区| 制服丝袜一区二区三区在线| 国产在线精品香蕉麻豆| 亚洲精品va| 久久精品人人做人人爽97| 婷婷伊人久久| 日本三级黄在线观看| 精品福利一区二区免费视频| 国产精品亚欧美一区二区| 免费jizz在线播放| 国产一级毛片yw| 国产激情第一页| 91精品国产丝袜| 亚洲精品无码久久毛片波多野吉| 亚洲色婷婷一区二区| 日韩美女福利视频| 男人天堂亚洲天堂| 国产精品视频猛进猛出| 精品国产一二三区| 国产精品专区第1页| 91视频青青草| 香蕉视频国产精品人| 色婷婷综合在线| 成人无码区免费视频网站蜜臀| 91麻豆国产精品91久久久| 亚洲无限乱码一二三四区| 天堂岛国av无码免费无禁网站| 伊人大杳蕉中文无码| P尤物久久99国产综合精品| 日韩在线影院| 无码AV动漫| 狠狠干综合| 91麻豆精品国产91久久久久| 久久久久青草线综合超碰| 午夜无码一区二区三区在线app| 国产免费网址| 国产女人在线| 欧美日韩高清在线| 五月天久久婷婷| 国产婬乱a一级毛片多女| 综合色婷婷| 无码人妻免费| 久久永久免费人妻精品| 无码专区国产精品一区| 久久精品人人做人人综合试看| 精品久久香蕉国产线看观看gif| 亚洲欧美h| 国产特一级毛片| 少妇精品网站| 午夜视频免费一区二区在线看| 日韩在线播放中文字幕| 国产成年女人特黄特色毛片免 | 亚洲aⅴ天堂|