Luận văn Xây dựng trình biên dịch cho ngôn ngữ Wave

TRƯỜNG ………………….  
KHOA……………………….  
-----[\ [\----  
Báo cáo tt nghip  
Đề tài:  
XÂY DNG TRÌNH BIÊN DCH CHONGÔN NGWAVE  
MC LC  
- 1 -  
Mc lc hình v................................................................................................... 5  
Khái nim và cm tviết tt.............................................................................. 8  
CHƯƠNG 1. GII THIU .............................................................................. 9  
1. 1 Wave............................................................................................................................9  
1. 2 Các ng dng ca Wave..........................................................................................10  
1. 3 Ni dung khóa lun..................................................................................................11  
CHƯƠNG 2. NGÔN NGWAVE................................................................ 12  
2. 1 Gii thiu vNgôn ngWave.................................................................................12  
2. 2 Node, Link và Không gian phân tán : Knowledge Network (KN) ......................12  
2. 3 Tchc chung ca ngôn ngWave .......................................................................13  
2. 4 Cu trúc dliu cơ bn ca Wave .........................................................................14  
2. 5 Biến Spatial và kiu .................................................................................................14  
2. 5. 1  
2. 5. 2  
Task variables................................................................................................................15  
Environment variables ..................................................................................................15  
2. 6 Các hành động - ACTS............................................................................................15  
2. 6. 1  
2. 6. 2  
Control acts....................................................................................................................15  
Fusion acts: Các phép toán hp nht...........................................................................17  
2. 7 Rules – Các lut trong Wave ..................................................................................17  
2. 8 Wave và mô hình lp trình truyn thng ..............................................................19  
2. 8. 1  
2. 8. 2  
2. 8. 3  
Sơ đồ lung (SD) ...........................................................................................................19  
Wave và mô hình lp trình song song ..........................................................................20  
Wave và mô hình lp trình tun t...............................................................................22  
CHƯƠNG 3. XÂY DNG BINTERPRETER......................................... 28  
3. 1 Wave không có Rule ................................................................................................28  
3. 1. 1  
3. 1. 2  
Chi tiết ví dvcác bước ca Wave .............................................................................28  
Thut toán tng quát cho Wave không có Rule...........................................................30  
- 2 -  
3. 2 Wave có Rule............................................................................................................31  
3. 2. 1  
3. 2. 2  
Ví dvWave có Rule...................................................................................................31  
Thut toán tng quát cho Wave có Rule .....................................................................33  
3. 3 Hthng Track ........................................................................................................36  
3. 3. 1  
3. 3. 2  
3. 3. 3  
Rule da trên bộ điu khin Track...............................................................................36  
Thut toán cho Bxlý track ......................................................................................39  
Slan ta Track............................................................................................................40  
3. 4 Tng quan và kiến trúc ca Wave Interpreter .....................................................41  
3. 5 Các thành phn trong Wave Interpreter...............................................................42  
3. 5. 1  
3. 5. 2  
3. 5. 3  
3. 5. 4  
3. 5. 5  
3. 5. 6  
3. 5. 7  
Wave và Wave Queue....................................................................................................42  
Knowledge Network.......................................................................................................42  
Track Forest ..................................................................................................................43  
Parsing Unit...................................................................................................................44  
Excution Processor........................................................................................................51  
TrackProcessor..............................................................................................................52  
Communication Processor............................................................................................56  
3. 6 Quan hgia các thành phn trong Wave Interpreter........................................57  
3. 6. 1  
3. 6. 2  
3. 6. 3  
Lung xlý Wave..........................................................................................................60  
Lung xlý các echo và điu khin các rule...............................................................64  
Xây dng trình biên dch Wave trên ngôn ngJava...................................................67  
CHƯƠNG 4. THC HIN VÀ KT QU.................................................. 69  
4. 1 Cài đặt.......................................................................................................................69  
4. 1. 1  
4. 1. 2  
Các yêu cu vphn cng ............................................................................................69  
Các yêu cu vphn mm.............................................................................................69  
4. 2 Thnghim...............................................................................................................70  
4. 2. 1  
4. 2. 2  
Sdng chương trình...................................................................................................70  
To lưới thc địa...........................................................................................................71  
- 3 -  
4. 3 Di chuyn tdo ........................................................................................................72  
4. 3. 1  
4. 3. 2  
Di chuyn tránh chướng ngi vt.................................................................................75  
Di chuyn vòng quanh chướng ngi vt ......................................................................77  
4. 4 Di chuyn cùng nhau kiu tnh tiến........................................................................80  
4. 4. 1  
4. 4. 2  
4. 4. 3  
4. 4. 4  
Hin thhình nh 3D động bng GnuPlot...................................................................80  
Hin thhình nh 3D ca tp tin VRML......................................................................81  
Hin thhình nh 3D vi các góc nhìn khác nhau .....................................................82  
Hin thhình nh 3D VRML trên nhiu máy..............................................................83  
CHƯƠNG 5. PHLC.................................................................................. 86  
5. 1 JJTree .......................................................................................................................86  
5. 1. 1  
5. 1. 2  
Gii thiu .......................................................................................................................86  
Các kiu cu trúc cây ....................................................................................................86  
5. 2 Thc thi trên ngôn ngsimpleLang.......................................................................87  
5. 3 Xây dng bparser cho ngôn ngWave...............................................................89  
CHƯƠNG 6. TÀI LIU THAM KHO....................................................... 92  
- 4 -  
Mc lc hình vẽ  
Hình 1-1: Mô hình Wave .......................................................................................................................10  
Hình 2-1: Knowledge Network..............................................................................................................13  
Hình 2-2: Thành phn ca Spread Diagrams .........................................................................................20  
Hình 2-3: Tự động tách trong chui Wave.............................................................................................21  
Hình 2-4: Mt strường hp xlý song song.......................................................................................21  
Hình 2-5: Wave xlý song song có kèm theo Rule...............................................................................22  
Hình 2-6: Xlý tun tkhông Rule và có Rule.....................................................................................23  
Hình 2-7: Wave xlý tun tcó Rule ...................................................................................................23  
Hình 2-8: mt strường hp vi mnh đề If – else ...............................................................................24  
Hình 2-9: Mt strường hp vi mnh đề If – else...............................................................................24  
Hình 2-10: else – if vi filter..................................................................................................................25  
Hình 2-11: Else – if parallel...................................................................................................................25  
Hình 2-12: Else – if vi Rule .................................................................................................................26  
Hình 2-13: Switch ..................................................................................................................................26  
Hình 2-14: Câu lnh lp sdng Repetition..........................................................................................27  
Hình 2-15: Câu lnh lp sdng Recursion ..........................................................................................27  
Hình 3-1: Wave có Rule.........................................................................................................................31  
Hình 3-2: To track trong quá trình Wave thc thi và lan ta .................................................................1  
Hình 3-3: Trng thái và biến frontal.........................................................................................................1  
Hình 3-4: Gi echo và tng hp các kết qutrng thái, sau đó loi các Track Link, Track Node tha ..1  
Hình 3-5: Truyn Tail ti các Track Node ngoài cùng (Node )............................................................1  
Hình 3-6: Kích hot Tail trong các Node lá.............................................................................................1  
Hình 3-7. Các thành phn ca Wave Interpreter....................................................................................41  
Hình 3-8: Wave và Wave Queue..............................................................................................................1  
Hình 3-9: Knowledge Network................................................................................................................1  
Hình 3-10: Track Forest...........................................................................................................................1  
- 5 -  
Hình 3-11: Excution Processor ..............................................................................................................52  
Hình 3-12: Sau khi nhn và xlý CREATE............................................................................................1  
Hình 3-13: Sau khi nhn và xlý EXPANDH ........................................................................................1  
Hình 3-14: Sau khi nhn và xlý ACTIVATE........................................................................................1  
Hình 3-15: Sau khi nhn ECHO tcác nhánh con...................................................................................1  
Hình 3-16: Sau khi xlý ECHO nhn được ............................................................................................1  
Hình 3-17: Communication Processor .....................................................................................................1  
Hình 3-18: Quan hgia các thành phn trong Wave Interpreter ...........................................................1  
Hình 3-19: Lung xlý gia các thành phn trong Wave Interpreter ...................................................60  
Hình 3-20: Lan truyn echo lên trên ........................................................................................................1  
Hình 3-21: Gi tail cho các track con ......................................................................................................1  
Hình 4-1. Chương trình hin thkhi mi được chy..............................................................................70  
Hình 4-2. Chương trình WAVE khi bt đầu chy.................................................................................71  
Hình 4-3. Lưới 5x5................................................................................................................................71  
Hình 4-4. Ca soutput ca Netbeans...................................................................................................72  
Hình 4-5. Vtrí đầu tiên 1-1...................................................................................................................72  
Hình 4-6. Chy ngu nhiên ti vtrí tiếp theo........................................................................................73  
Hình 4-7. Các bước chy ngu nhiên tiếp theo ........................................................................................1  
Hình 4-9. Dng khi chy ti đích...........................................................................................................75  
Hình 4-8. Tiếp tc chy ngu nhiên.........................................................................................................1  
Hình 4-10. Di chuyn qua chướng ngi vt .............................................................................................1  
Hình 4-11. Vượt qua chướng ngi vt và về đến đích..............................................................................1  
Hình 4-12. Di chuyn vòng quanh chướng ngi vt ................................................................................1  
Hình 4-13. Vòng quanh chướng ngi vt 1 vòng thì dng.......................................................................1  
Hình 4-14. Di chuyn tnh tiến cùng nhau ...............................................................................................1  
Hình 4-15. Hình nh 3D trên máy thnht sdng GnuPlot..............................................................81  
Hình 4-16. Hình nh 3D trên máy thhai sdng GnuPlot..................................................................81  
Hình 4-17. Tp tin VRML được hin thsau khi được to bi KN .......................................................82  
- 6 -  
Hình 4-18. Các đối tượng hin ththeo cách khác thi thay đổi Transform............................................83  
Hình 4-19. Mt cách nhìn khác thi thay đổi Transform.........................................................................83  
Hình 4-20. Hin thị đối tượng đầu tiên trên máy 1 ................................................................................84  
Hình 4-21. Hin thị đối tượng thhai trên máy 2..................................................................................85  
- 7 -  
Khái nim và cm tviết tt  
CP  
CQ  
EU  
KN  
PU  
SD  
Communication Processor  
Communication Queue  
Execution Unit  
Knowledge Network  
Parsing Unit  
Spread Diagrams  
Set of Nodes reached  
Track Forest  
SNR  
TF  
TN  
TP  
Track Node  
Track Processor  
Track Queue  
TQ  
WI  
WQ  
Wave Interpreter  
Wave Queue  
- 8 -  
CHƯƠNG 1. GII THIU  
chương này chúng tôi trình bày tng quan vcông nghWave nhm trli các  
câu hi sau: Wave là gì? Nó khác và ưu đim hơn so vi các hthng bình thường ở  
chnào? Các ng dng viết trên Wave sdng trong lĩnh vc gì?  
1. 1 Wave  
Ngày nay, các hthng mvà mng máy tính đang phát trin rt nhanh và được  
cthế gii quan tâm. Hthng mng máy tính kết ni công vic tkhp nơi trên thế  
gii, mng máy tính cũng gimt khi lượng khng ldliu dch vvà thông tin.  
Nhng công ctương tác không chỉ để tìm kiếm thông tin, dch vhoc file ngay trên  
máy tính mà còn được mrng về địa lý, không gian… và hoàn toàn mtrên Internet.  
Mt ví dụ đin hình ở đây chính là World Wide Web. Tuy nhiên, hu hết các mô hình  
và công clp trình phân tán thiếu đi khnăng linh hot để khai thác thông tin vcu  
trúc mmt cách tự động.  
Nhng mô hình lp trình và hthng phân tán truyn thng thường da trên dữ  
liu đóng. Công vic được xlý trong các ng dng phân tán thường phi được định  
nghĩa trước hoc được gi thông qua vic kích hot thtc, phương thc. Phn ln  
vic xlý và tương tác thông qua vic trao đổi thông đip cha dliu. Ngoài ra hệ  
thng phân tán có thcung cp dliu và dch vchia s. Trong mng máy tính, dch  
vvà thông tin chnm các máy chủ ứng dng (ví dnhư vic sdng ca các tổ  
chc kinh doanh…). Tuy nhiên, phương pháp tiếp cn này vn chưa ti ưu. Do đó,  
chúng ta scn phi tích hp linh hot các máy chủ ứng dng trong mt hthng tng  
thvà có cơ shtng mhơn na.  
WAVE không chlà mt mô hình. Wave còn là công nghda trên sliên kết và  
điu khin ca các hthông ln được htrbi mng máy tính và vin thông. Wave  
cho phép linh động to các cu trúc điu khin và vic xlý mng tri thc (phân tán và  
song song) thông minh. Các cu trúc này có thcung cp khnăng ttchc, phc  
hi, to khuôn mu để kết nôai ti các hthng khác. Công nghnày da trên vic cài  
đặt nhiu tác nhân thông minh trên hthng phân tán để ti ưu hóa vic xlý dliu  
cc bthông qua vic lan ta thông tin các hthng nhvi nhau hoc hai hệ  
thng nhkhác nhau. Tt ccông vic trên đều được thông dch qua ngôn ngWave.  
đệ quy được viết tngôn ngnày có khnăng tlan ta trong không gian hệ  
thng. Không ging các hthng truyn thng, nó là mt hthng da trên slinh  
động ca chương trình có thtùy ý mrng vmt địa lý và htrnhiu máy tính  
trên mng. Trong Wave, chương trình có thcho vào trong hthng bt kchnào.  
Khi đó các chương trình này có khnăng lan ta qua mng như virus. Nhiu người sử  
dng có thể độc lp phát trin các chương trình Wave hoc liên kết trong cùng mt hệ  
thng không gian, chia sbiến cc b(biến này được liên kết vi Node) vi các biến  
khác (được kèm theo sduy chuyn ca mã Wave). Nói cách khác:  
Wave là mt ngôn ng, model đặc bit và là công nghmi cho hthng  
song song, phân tán hay kết hp các hthng đó vi nhau.  
- 9 -  
Wave ban đầu được thiết kế cho vic mô phng mng o như là mng tri  
thc (Knowledge Networks).  
Wave da trên các chương trình mà có thlan ta, mrng, chia nhvà có  
ththi đáp trong nhng mng tri thc đã được kích hot.  
Hình 1-1: Mô hình Wave  
1. 2 Các ng dng ca Wave  
Các thut toán vphân tán đã được lp trình thành công trong WAVE như các  
bài toán liên quan đến đồ thvà các vn đề lý thuyết vmng (tìm đường ngn nht,  
phân tích topology mng, các loi cây spanning…). Các hot động tphc hi đồ th,  
thtc cp nht thông tin liên lc như địa đim, đường đi…trên đin thoi di động.  
Nhng ng dng hin nay bao gm vic qun lý hthng mng máy tính tích hp vi  
hthng qun lý truyn thng vi công nghWave. Mt vài ng dng như: xlý máy  
móc, mô hình và kim soát trong mng di động, tích hp cơ sdliu phân tán. Wave  
cũng có thể được gi là “Đin thoi thông minh” vi hàng lot ng dng:  
Mô hình giao tiếp mng di động.  
Tích hp hthng cơ sdliu phân tán.  
Mô phng mng lưới giao thông, phân tích và điu khin.  
Điu khin phân tán mng lưới hàng không mt cách tự động gia các vùng,  
min.  
ng dng vào vic đo đạc địa lý mt cách tự động.  
Qun lý thông minh trong hthng vin thông và mng máy tính m.  
Điu khin trong robot.  
Các ng dng trên Wave còn được thhin chi tiết và rõ ràng trong khóa lun tt  
nghip ca các bn:  
Vũ Đức Tip và Đỗ Thế Chun hai bn đã đưa ra vn đề cth: Xây dng  
hthng mô phng và thc ti o bng ngôn ngWave.  
Phí Hng Thái và Phm Minh Ngc: Hthng phân tích mng xã hi  
Yahoo!360 da trên nn tng công nghWave.  
- 10 -  
1. 3 Ni dung khóa lun  
Trong các chương khóa lun này, chúng tôi đề cp nhng vn đề sau:  
Chương 1: Gii thiu và trình bày tng quan cũng như các ng dng ca Wave  
Chương 2: Trình bày vcú pháp, ngnghĩa cách tchc chung ca ngôn ngữ  
Wave. Ngoài ra chúng tôi còn đưa ra mt vn đề na là: Wave và các mô hình lp  
trình truyn thng (tun thoc song song).  
Chương 3: Trình bày vcách xây dng hthng Interpreter cho Wave bng cách  
tiếp cn tlý thuyết ti vic tìm hiu kiến trúc chung ca hthng, các thành phn và  
quan hgia các thành phn đó.  
Chương 4: Đưa ra các bài toán thc tế và kết quả đạt được.  
Chương 5: Phlc vJJTree  
Chương 6: Tài liu tham kho.  
- 11 -  
CHƯƠNG 2. NGÔN NGWAVE  
Trong phn này chúng tôi trình bày vcú pháp và ngnghĩa ca ngôn ngữ  
Wave. Đây là mt ngôn ngữ đặc bit cho phép to và xlý thông tin trong không gian  
mng theo hướng. Chương trình viết bng ngôn ngnày có thể được coi như nhng  
thành phn linh hot, có khnăng di động và kết hp vi các thành phn riêng l, phân  
tán khác. Trong quá trình “di chuyn”, chương trình có thmang theo dliu đồng  
thi cp nht vào dliu lưu ti mng KN. Các chương trình mc dù được xlý song  
song nhưng vn có nhng cơ chế cho phép chúng phi hp đồng bvi nhau thông  
qua hthng các lut.  
phn cui chương này chúng tôi còn đề cp ti mt vn đề na: Wave và các  
phương pháp lp trình truyn thng (lp trình tun tvà lp trình song song).  
2. 1 Gii thiu vNgôn ngWave  
Wave là mt ngôn ngữ đặc bit cung cp khnăng thc thi mm do, đa người  
dùng trên hthng phân tán. Quá trình thc thi ca ngôn ngWave ging như virus,  
tc là có khnăng nhân bn và lan ta qua mng, thc thi phân tán mà không cn bt  
ksự điu khin tp trung nào.  
Kiến trúc Wave mô tquá trình xlý phân tán qua vic tự định hướng lung  
chương trình qua không gian dliu phân tán có cu trúc như mt đồ thhay được gi  
Knowledge Network. Các node trên mng phân tán thuc vmt Wave Interpreter  
nào đấy. WI là thành phn có trách nhim thc thi trên tng bphn riêng lca  
mng, thao tác lên dliu được lưu trtrong các node.Trong khi di chuyn, nhng  
thành phn ca mã Wave có thtnhân bn, phân chia hay được chnh sa trong khi  
vn duy trì strao đổi dliu qua li ln nhau.  
2. 2 Node, Link và Không gian phân tán : Knowledge Network  
(KN)  
Định nghĩa:  
Node: Có thcoi là mt đối tượng – hay mt đim trong không gian, cha  
các biến (biến là thuc tính ca node)  
Link: Có thcoi là mt quan hgia các nút - hay mt đon, đường thng  
trong không gian. Nó cũng có các thuc tính  
Wave to và xlý KN – là tp hp các node và các link có hướng hoc vô  
hướng. Cnode và link đều có ni dung riêng ca mình (kiu giá trlà string). KN có  
thể được phân tán trong không gian mng, tn ti trên nhiu máy tính khác nhau. Mi  
máy tính có thkhông cha hoc cha nhiu node ca KN và các link có thkết ni  
ti các node trong cùng máy tính hoc vi các máy tính khác.  
Tt ccác node đều có địa chduy nht trong không gian phân tán bao gm 2  
thành phn: thành phn thnht để phân bit các node trong cùng mt máy, và thhai  
để phân bit các node gia các máy khác nhau trong không gian mng. Node có thể  
- 12 -  
được truy cp qua các node khác mt cách trc tiếp bng Content hay bng Address  
ca chúng hoc qua quá trình mrng qua các link ca KN, vic đặt tên cho link và  
node nhm phc vụ điu này. Có hai kiu nhy qua li gia các node đó là direct hop  
surface hop để thc hin vic nhy ti 1 node hay có thnhy đến tt ccác node  
khác – được dùng cho vic gi qung bá.  
Không ging vi node, link ca KN không thtruy xut trc tiếp qua tên. Dữ  
liu lưu trtrong link chcó thnhn được hoc thay đổi mt cách cc b, trong quá  
trình di chuyn qua link hay khi đứng trc tiếp ti mt node cthnào đó. Tmt  
node, cni dung và hướng ca link có thtruy xut trc tiếp.  
Ví d:  
Hình 2-1: Knowledge Network  
2. 3 Tchc chung ca ngôn ngWave  
Ngôn ngWave đặc trưng cho quá trình lan ta song song trong không gian dữ  
liu phân tán được biết là KN. Do vy cú pháp ca ngôn ngmiêu trõ quá trình hot  
động này:  
wave Æ {{move , } . }  
move Æ { data_unit act  
} | [rule] (Wave) }  
rule Æ SQ | OS | AS | AP | RP | WT | ID | CR  
unit Æ { stirng; } | N{l_d} | F{l_d} | C | A | P | S | L | T |  
act Æ # | ~ | /~ | == | / = | < | <= | + | - | * | / | ** | | | % | & | : | :: | = | ? | !  
trong đó các phn nm trong [] là tùy chn  
- 13 -  
Mt chương trình Wave hay gi đơn gin là Wave bao gm skết hp các tác  
động lên KN gi là các move – thành phn có ththc hin xlý dliu cc bti  
các Node ca KN và mrng ti các Node khác. Quá trình thc thi song song hay  
thc thi không theo thtự được tách bit bi du phy (,) phát trin mt cách độc lp  
tcùng mt Node trong KN. Tp các moves độc lp gi là zone, được tách bit nhau  
bi du chm câu (.), các thành phn này sẽ được thc thi mt cách tun t.  
Ví d:  
Ft={Fa=1;2;3}. Fa+1. ^Ft.T=Fa  
Các Rule trong Wave cung cp cho Wave khnăng mrng trong không gian  
mng, kết hp cùng vi các Wave khác. Mt ví d, các lut có thtự động tách Wave  
ra thành nhiu nhánh riêng bit ri sau đó phát trin chúng song song hoc tun tự  
trong KN, chúng có thto ra hoc mrng KN trong khi di chuyn. Các Rule sẽ  
được làm rõ hơn trong phn sau.  
Mt cách tng quát, vic thc thi phn đầu ca Wave (Wave’s Head) ti mt vài  
Node có thlà nguyên nhân dn ti quá trình lan ta ca Tail ca chui Wave (Wave’s  
Tail) ti 0 hay nhiu các Node khác– chúng ta sgi chúng là tp các Node ti được  
(SNR).  
Ví d:  
w1.w2.w3.w4 : cu trúc ca mt chương trình Wave - sni tiếp ca các  
zones  
w1,w2,w3: zone đơn lvi tp các move độc lp, tt cả đều được thc thi  
ti cùng mt Node bt đầu  
w1,w2.w3,w4: skết hp ca 2 kiu trên.  
2. 4 Cu trúc dliu cơ bn ca Wave  
Wave là ngôn ngữ được dùng cho quá trình xlý trên mng, nhưng không ging  
các ngôn ngkhác, kiu dliu cơ skhông phn ánh vic đó. Wave sdng kiu dữ  
liu cơ slà Vector: là tp các string được phân tách nhau bi du chm phy (;). Tt  
ccác hot động ca ngôn ngữ đều thc thi trên Vector. Truy cp ti thành phn ca  
Vector có ththông qua chshay chính ni dung ca các thành phn trong Vector –  
indexing và contenting. Dliu lưu trtrong Vector là động, tc có ththay đổi khi có  
sthêm bt dliu mt cách tự động.  
Ví d:  
Vector cha 1 phn t: 3  
Cha 6 phn t: 1;2;3;4;5;6  
Cha nhiu kiu dliu khác nhau: 34;NONE;25;;a;;;b  
2. 5 Biến Spatial và kiu  
Wave thao tác trên kiu biến được gi là spatial variable, chúng nm phân tán và  
thường liên quan ti dliu cc bti các Node ca KN hay có ththuc vmt  
- 14 -  
chui Wave nào đó. Biến kiu này được chia làm 2 loi: task variable và  
environment variable  
2. 5. 1  
Task variables  
Task variable bao gm: node variable và frontal variable. Các biến kiu nodal  
được lưu cc bti node ca KN, các biến kiu frontal có thể đi cùng Wave qua các  
node khác nhau trong mng. C2 loi biến này đều là tm thi.  
9 Biến Nodal: các biến loi này được khai báo bt đầu bng ký tN  
9 Biến Frontal: các biến loi này được khai báo bt đầu bng ký tF  
2. 5. 2  
Environment variables  
Biến môi trường có nhng định danh và ý nghĩa khác nhau:  
9 CONTENT (C): cha content ca Node hin thi. Giá trca C luôn là  
string, vic thay đổi ni dung ca C có thể được gán trc tiếp bng giá trị  
nào đó hoc NONE – xóa Node cùng vi các Link liên kết vi nó.  
9 ADDRESS (A): địa chca Node hin thi. Luôn trli địa chỉ đầy đủ ca  
Node nơi Wave đang đứng gm định danh ca Node trong máy và định  
danh ca Node trong mng. Đây là biến chỉ đọc.  
9 PREDECESSOR (P): biến lưu địa chca Node trước đó Wave đã đi qua.  
Nó chthay đổi khi có sdi chuyn ca Wave sang Node khác.  
9 LINK (L): cha content ca Link va mi đi qua.  
9 TERMINAL (T): mt loi biến đặc bit dùng để in ra giá trtương ng ti  
mt đầu cui nào đó.  
Ví d:  
Biến Nodal: N, Nhieu, Ntue..  
Biến Frontal: Fpath, Ftemp…  
Biến môi trường: TERMINAL, LINK, L…  
2. 6 Các hành động - ACTS  
2. 6. 1  
Control acts  
Các Act thc hin các phép toán cơ bn bên trong move, dùng để thay đổi giá trị  
các biến, thay đổi trng thái hot động ca wave. Giá trtrvgm 3 loi chính sau:  
TRUE (2): thành công và cho phép Wave tiếp sau đó thc thi ti Node hin thi.  
DONE (1): thành công nhưng không cho phép Wave thc thi tiếp ti Node hin  
thi.  
FALSE (0): tht bi, loi bWave ti Node hin thi.  
Control acts được phân loi như hop, filters, assignment, state genertator và code  
injection.  
Hop. Được thc thi bng toán hng #. Ta shiu rõ hơn cách thc thi ca Hop  
qua các Ví dsau:  
- 15 -  
DIRECT # ANY, cách viết khác @#: nhy ti tt ccác node khác trong  
KN trên cùng máy tính tmt node nào đó  
-p#b: nhy tnode hin thi theo cung đi ra (-)p ti node b  
ANY#ANY hay #: nhy qua tt ccác link ti tt chàng xóm ca mt  
node  
Và mt skiu nhy khác: x#ANY, ANY#x  
Để nhy sang 1 node máy khác ta có cu trúc: a#b$$`IP, trong đó IP là địa  
chIP ca máy đích  
Filter. Các filter gm các phép toán sau đây: ~ (thuc v), /~ (không thuc v),  
== (so sánh bng), /= (so sánh không bng), < (so sánh nhhơn), <= (so sánh nhhơn  
hoc bng), > (so sánh ln hơn), >= (so sánh ln hơn hoc bng). Giá trtrvslà  
TRUE hoc FALSE. Nếu giá trtrvlà TRUE, node hin thi strthành mt SNR  
và Wave tail stiếp tc phát trin tnode này.  
Filter ~:  
o Cú pháp: vector1 ~ vector2  
o Chc năng: kim tra các phn tca vector 1 có nm trong vector 2 hay  
không  
Ví d: a;b ~ p;q;b;a strvTRUE  
Filter /~: ngược li toán t~  
Filter ==:  
o Cú pháp: v1 == v2  
o Chc năng: kim tra 2 vector có bng nhau hay không  
o Ví d: 2;3 == 2;3 strli TRUE  
Filter /=: ngược li vi ==  
Các filter còn li: >,>=,<,<= có ý nghĩa toán hc thông thường nhưng được thc  
hin trên vector  
Nếu 1 filter trli giá trTRUE, node hin ti strthành SNR, ngược li SNR  
srng và chui Wave sdng quá trình thc thi.  
Assignment.  
Toán tgán = sgán giá trca toán hng bên phi vào toán hng bên trái. Dữ  
liu bên phi có thlà giá trs, string, biến, vector. Phép gán luôn trli kết qulà  
TRUE.  
Ví d: Na=1, Na=1;2;3, Na=Nb;2;3;Fc  
State Generator.  
Các trng thái trvề ở trên đều xy ra sau mt quá trình thc thi nào đó. Đôi khi  
ta mun trc tiếp xác định trng thái kết qutrvề để điu khin lung chương trình,  
có mt cách khác để thc hin đó là dùng State Generator gm 4 trng thái: TRUE,  
DONE, FALSE, ABORT. Cú pháp gm tên trng thái, theo sau là du !  
Ví d:  
w1.TRUE!.w2  
Trong Ví dnày w2 stiếp tc thc hin  
- 16 -  
w1.DONE.w2 hoc w1.!.w2 sdng sau khi thc hin xong w1  
Code Injection.  
Cú pháp ^Func, trong đó Func là mt chui Wave. Phép chèn mã này sbsung  
thêm vào chui Wave mt chui nm trong biến sau ^. Phép này hay được sdng  
khi gi chương trình con  
Ví d:  
Ft={Fa=1;2;3}. Fa+1. ^Ft.T=Fa  
2. 6. 2  
Fusion acts: Các phép toán hp nht  
Các phép toán shc. Bao gm các phép toán +, -, *, /. Nếu thc hin chia cho  
0, kết qutrvlà FALSE  
Ví d:  
`124.36’ + 100 có kết qu: `224.36’  
66;4;24 – 1;1;1;1;1;1;1 có kết qu: 65;3;23;-1;-1;-1;-1  
1;2;3;4;5 * 1;1;1 có kết qu: 1;2;3;0;0  
2;3;4 / 1;2 có kết qu: FALSE  
NONE * strli rng  
Các phép toán trên Vector đặc bit. Gm 1 sphép toán sau:  
&: append, ni 1 Vector vào sau 1 Vector khác  
o Ví d: v1 & v2 – v1, v2 là 2 Vector  
Toán thai chm (:) : ly giá trti 1 vtrí ca Vector  
o Ví d: Fa=3;2;3. Fa:1 strli 3  
Toán t(::):  
o Ví d: Fa=3;2;3. Fa::3 = 10. Kết quFa = 10;2;10  
|: splits, chia string toán hng bên trái thành 1 Vector các string con bi du  
phân cách toán hng bên phi  
o Ví d: `a+b+c’ | `+’ strli a;b;c  
%: join, ngược li vi | tc nó shp các Vector con li thành 1 string vi phân  
cách là toán hng bên phi  
o Ví d: a;b;c % `+’ strli a+b+c  
Gi hàm bên ngoài (External calls). Thc hin qua toán t?, gi mt hàm nào  
đó ca hthng vi đầu vào là các tham stWave truyn vào  
Ví d: 50?`sleep’ sdng chương trình 50 giây  
2. 7 Rules – Các lut trong Wave  
Wave có thphát trin độc lp, dbđược xlý song song trong không gian  
phân tán. Tuy nhiên đim mnh ca Wave là nó có hthng các RULE để qun lý và  
đồng bcác các hành động. RULE thiết lp các ràng buc trong vic lan ta chui  
Wave. Thông qua RULE, hthng có ththc thi nhiu ln mt Wave, hay tiếp tc  
lan ta Wave nếu tha mãn mt điu kin nào đó, hoc có thchm dt toàn bwave.  
- 17 -  
RULE thường “treo” phn còn li ca chui Wave (remainder) và lan ta nó ra chkhi  
chui Wave nm trong lut thc thi xong và trli trng thái TRUE.  
Các Lut RNhánh  
SEQUENCE(SQ): kích hot tt ccác nhánh mt cách tun tmà không  
cn quan tâm ti trng thái kết qutrv. SNR trên SQ là tp các SNR từ  
các nhánh con.  
Ví d: SQ(Fa=1, Fa+1).T=Fa sto ra 2 nhánh Fa=1 và Fa+1, thc hin  
tun t2 nhánh này. Kết qucui là 2  
OS_SEQUENCE: kích hot tt ccác nhánh tun tcho ti khi nó nhn  
được kết quTRUE hoc DONE trvtmt nhánh nào đó  
Ví d: OS(Fa=5.Fa>1, T=Fa) to ra 2 nhánh Fa=5.Fa>1 và T=Fa và thc  
hin tun t. Nhưng do nhánh thnht trvTRUE nên không thc hin tiếp  
nhánh th2  
AND_SEQUENCE(AS): tương tSQ nếu tt ccác nhánh đều trvTRUE  
hoc DONE, nếu 1 nhánh FALSE, trng thái toàn bAS slà FALSE  
Ví d: AS(TRUE!, FALSE!) strli FALSE  
OR_PARALLEL(OP): kích hot các nhánh và thc thi chúng song song,  
nếu 1 nhánh trvTRUE hoc DONE, OP snhn TRUE. Nếu không  
nhánh nào trvTRUE hoc DONE, OP sFALSE  
Ví d: OP(FALSE!, FALSE!, TRUE!) strli TRUE  
AND_PARALLEL(AP): như AS nhưng các nhánh thc thi song song  
Ví d: AP(TRUE!, TRUE!, FALSE!) strli FALSE  
RANDOM(RN): chn mt nhánh ngu nhiên để phát trin tiếp  
Repetition  
Lut REPEAT vi khnăng vòng lp cho phép chia Wave thành các phn nhỏ  
hơn khi di chuyn trong KN.  
Nếu kết qutrng thái trvlà TRUE hoc FALSE (SNR không rng) thì mi thành  
phn này sẽ được ghép thêm Tail ca Wave. Lúc này, tt cSNR Node đều cha  
biến Frontal (biến này được mang ti tcác Node).  
Nếu kết qutrng thái trvlà DONE (SNR không rng) thì Tail ca Wave sbloi  
b.  
Ví d: F = 1; 9; 5; 6; 7; 8; 12.  
REPEAT ( Fi +1. F : Fi /= NONE. N + ( F: Fi)).  
TERMINAL =N.  
Create  
- 18 -  
Lut CREATE(CR) cho phép Wave có khnăng mrng chính mng KN trong  
khi lan ta trong không gian. Chui Wave cha lut này vn phát trin như thông  
thường, chcó các bước nhy là bị ảnh hưởng - có ththay đổi chế độ ca chúng từ  
chế độ lan ta (navigation) sang chế độ to mi (creation). Khi đó các node và link nếu  
chưa có sẽ được to ra.  
Có rt nhiu chi tiết quan trng trong ngnghĩa ca lut CR. Nếu node ca 1 bước  
nhy tương ng bng địa chca nó – điu này có nghĩa node đó đã tn ti, tc các  
thành phn trong lut CR nếu chưa có sẽ được to ra, còn nếu đã tn ti thì quá trình  
CR skhông to ra node hoc link mi.  
Ví d:  
CR(@#a.+p#b.+q$$c`192.168.1.10’)  
Ý nghĩa: nhy trc tiếp ti node a mc dù node a chưa có nhưng do nm trong  
lut CR nên node a sẽ được to ra, sau đó to ra link có hướng +p ti node b, to  
node c và link +q ni ta đến c trên máy 192.168.1.10  
Release  
Lut RL skhi to mt Wave mi độc lp vi chui Wave ban đầu, mã ca  
Wave mi này là phn nm trong du ngoc ca RL, WE ca Wave mi chính là WE  
ca Wave ban đầu. Wave mi được to ra được đưa vào Wave Queue để chxlý.  
Phn remainder ca Wave ban đầu stiếp tc được thc hin như bình thường.  
Ví d:  
w1.RL(w2).w3  
Ý nghĩa: sau khi thc thi xong w1, gp RL chương trình Wave stách w2 cùng  
vi biến môi trường thành Wave mi cho vào hàng đợi xlý, chui Wave tiếp tc thc  
thi là w3 cùng vi biến môi trường ca nó.  
2. 8 Wave và mô hình lp trình truyn thng  
2. 8. 1  
Sơ đồ lung (SD)  
Wave là ngôn ngcó khnăng xlý cu trúc dliu không gian phân tán ln.  
Mt thuc tính quan trng ca Wave là các chương trình điu khin luôn được liên kết  
vi vtrí nào đó trong không gian dliu (trong khi dliu gia các Node lan ta, hay  
gia các SNR lan ta). Dliu ca cùng mt Node có thxut hin nhng nơi khác  
nhau trong cùng mt SNR cùng mt không gian cc b.  
- 19 -  
Hình 2-2: Thành phn ca Spread Diagrams  
Các kiu module ca Spread Diagram là  
SNR  
Move  
Rule  
Halt  
Các thành phn liên quan  
o Link  
o Biến Spatial  
2. 8. 2  
Wave và mô hình lp trình song song  
Wave biu din theo SD trong mng dliu có thể được điu khin hoàn toàn  
bi Rule. Các thành phn ca chui Wave ttách thành các nhánh trước và trong quá  
trình thc thi.  
Ví d: Tách chui Wave  
m1, m2 , m3. m4, m5 Æ  
(m1. m4, m5), (m2. m4, m5 ), (m3. m4, m5)  
- 20 -  
Hình 2-3: Tự động tách trong chui Wave  
Ngoài ra, trong quá trình Wave thc thi, các thành phn ca nó có thể được sao  
chép và thay thế mà dliu không bthay đổi (Như trong Hình 2-4: m2 được sao chép  
và thay thế mà dliu vn được ginguyên)  
m1. m2. m3 Æ  
m1. m2, m2, m2. m3 Æ  
m1.(m2. (m3, m3, m3)),  
(m2. (m3, m3, m3)),  
(m2. (m3, m3, m3))  
Hình 2-4: Mt strường hp xlý song song  
mt ví dkhác ta thy rõ hơn Rule điu khin chui Wave như thế nào (Hình 2-5).  
- 21 -  
Hình 2-5: Wave xlý song song có kèm theo Rule  
m1. OR_PARALLEL (m2, m3. m4). m5 Æ  
m1. OR_PARALLEL((m2, m4), (m3. m4)) .m5 Æ  
m1. OR_PARALLEL((m2. m4, m4, m4), ( m3. m4, m4, m4) ). m5  
2. 8. 3  
Wave và mô hình lp trình tun tự  
Vic cho phép phát trin không gian, xlý song song và tự động trong môi  
trường phân tán, Wave có thddàng mô hình hóa mt schương trình xlý tun t.  
Ging các chương trình bình thương, truyn thng cùng mt máy tính, Wave phi ở  
cùng mt đim trong không gian và chcó duy nht mt lung được xlý. Chúng ta sẽ  
bàn vvn đề này thông qua các ví dụ ở dưới đây.  
Ví d1  
s1. s2. s3. s4  
Ví d2  
SEQUENCE (s1, s2, s3, s4)  
Hai ví dtrên được thhin Hình 2-6  
- 22 -  
Hình 2-6: Xlý tun tkhông Rule và có Rule  
Ngoài ra có thví dụ ở Hình 2-7  
s1. SQ ((s2. s3), s4)  
và  
SQ (s1, (s2. SQ (s3, s4)))  
Hình 2-7: Wave xlý tun tcó Rule  
Biu thc If-else  
Biu thc điu kin “If- else” trong mô hình lp trình tun tcó cú pháp như sau:  
If (e) s1 else s2  
Mnh đề s1 thc hin và trvkết quả đúng thì mnh đề s2 sẽ được thc thi.  
Hình 2-8: mt strường hp vi mnh đề If – else: OR_SEQUENTIAL (( e. s1),  
s2)  
- 23 -  
OR_ SEQUENTIAL (AND_SEQUENTIAL ( (e. DONE  
! ) , s1). s2)  
Hình 2-8: mt strường hp vi mnh đề If – else  
Hình 2-9: Mt strường hp vi mnh đề If – else  
La chn nhiu nhánh  
o If – else vi filter  
- 24 -  
Hình 2-10: else – if vi filter  
o Else – if parallel  
Hình 2-11: Else – if parallel  
o Else – if vi Rule  
- 25 -  
Hình 2-12: Else – if vi Rule  
o Switch  
Hình 2-13: Switch  
Vòng lp  
o while ( e ) s  
o do s while ( e )  
o For (e1 ; e2 ; e3) s  
- 26 -  
Hình 2-14: Câu lnh lp sdng Repetition  
Hình 2-15: Câu lnh lp sdng Recursion  
- 27 -  
CHƯƠNG 3. XÂY DNG BINTERPRETER  
Trong chương này chúng ta bàn ti thut toán và kthut trong vic xlý tun tự  
hoc song song ca Wave trong hthng mng máy tính. Sau đó chúng ta strình bày  
tiếp vcu trúc chính trong bbiên dch và các hàm đơn vị điu khin trên cu trúc  
đó, cũng như vic thc hin chúng tng giai đon khác nhau. Tt ccác thông tin  
được trình bày trong chương này coi như vic mô tmt khuôn mu ca hthng  
Wave o, mt kiu điu khin tự động trong không gian như: xlý, mô phng hay  
điu khin trong nhng hthng ln và m.  
3. 1 Wave không có Rule  
Các chui Wave được thông dch tng bước ln lượt ttrái qua phi, các giai  
đon khác nhau. Trong tt ccác giai đon thc thi, Wave luôn được gn kết vi Node  
nm KN. Sau khi vic xlý ca Head, Tail ca Wave vn tiếp tc được hot động  
trong cùng mt Node hoc Node khác. Nhng lúc như thế, Head cũng được sao chép  
chương trình điu khin kèm theo cùng Node đó hoc Node khác.  
3. 1. 1  
Chi tiết ví dvcác bước ca Wave  
Chú ý: Simple move: là 1 Head mà Head này không thtách được thành Head  
đơn gin hơn (không có du phy trong Simple move).  
Để hiu rõ hơn vcác thc hin ca Wave không đi kèm vi Rule , ta xét mt ví dụ  
đơn gin khi thc hin Node b hin ti:  
F = 3. r # a, (s # ANY. T # z ), STAY. N+F. TERMINAL = CONTENT.  
Hay viết ngn gn: F = 3. r # a, (s # ANY. T # z ),. N+F.T = C.  
các bước thc hin khác nhau trong ví dtrên, nếu Head ca Wave không phi  
Simple move thì các Head này sẽ được tách ra thành các Simple move (các Simple  
move cách nhau bi các du phy). Sau khi Head được xlý thành các thành phn nhỏ  
hơn (cách nhau bi du phy), Tail ca Wave sẽ được gi ti Node tương ng trong  
trường hp thành phn đó là Simple move hoc Tail được sao chép và gn vi Wave  
mà Head ca Wave này là kết quca mt thành phn được chia Head trong Wave  
trước. Do đó Wave mi luôn được xđộc lp.  
Trong trường hp rt nhiu Wave được xlý cùng mt lúc, chúng sẽ được cho  
vào trong Wave Queue để chxlý.  
Ta phân tích ln lượt các bước thc hin ví dtrên  
1. Bước 1  
Head ca Wave là: F=3  
Và Tail  
r # a, (s # ANY. T # z ), N+F. TERMINAL = CONTENT  
2. Bước 2  
- 28 -  
Biến Frontal F đã được to gn vi Wave Tail cho vào cùng hàng đợi  
3. Bước 3  
Head ca Wave là: r # a, (s # ANY. T # z ), STAY  
Và Tail  
N+F.TERMINAL = CONTENT  
Vi vic tách biến Frontal đi ri, Head ca Wave mi không ththc thi  
1 cách trc tiếp mà là skết hp li t3 nhánh (mà mi nhánh cách  
nhau bi 1 du phy). Do đó chui Wave ban đầu sẽ được tách thành 3  
Wave con là  
9 Wave 1: r # a. N+F.TERMINAL = CONTENT  
9 Wave 2: s # ANY. T # z. N+F.TERMINAL = CONTENT  
9 Wave 3: N+F.TERMINAL = CONTENT  
Sau đó, biến Frontal F sẽ được ghép và xut hin 3 chui Wave con,  
chúng sẽ được để vào trong hàng đợi Wave Queue  
4. Bước 4  
Wave Queue làm vic theo cơ chế: Chui Wave nào vào trước thì được  
thc hin trước. Do đó Wave1 sẽ được thc hin trước Wave2 và Wave  
3, được tách có Head là  
r# a  
và Tail: N+F.TERMINAL = CONTENT  
vi biến Frontal đang được tách ra. Nhìn vào Head ca Wave sau khi  
được tách ta thy Head lúc này đã là 1 simple move và có thể được thc  
thi 1 cách trc tiếp (mà không qua vòng lp tách Head cho ti khi là  
simple move). Hop thc thi tNode hin ti b qua Link r ti Node a  
(Node a được cha trên máy tính khác). Tail cùng vi biến Frontal F  
được gi ti Node a và cho vào hàng đợi Wave Queue ca máy tính  
đang cha Node a này. Node b tiếp tc thc thi chui Wave 2  
5. Bước 5  
Head ca Wave 2 là  
s # ANY  
và Tail  
t # z . N+F.TERMINAL = CONTENT  
biến Frontal được tách ra. Hop trong Head sẽ được thc thi và gi ti tt  
ccác Node lin kqua Link s (trong lúc gi, Tail cũng được gi cùng).  
Tt ccác Wave mi đều được kích hot trong hàng đợi máy tính cha  
Node ca Wave đó. Wave Queue chlưu li các simple move.  
6. Bước 6  
- 29 -  
N+F.TERMINAL = CONTENT  
ở đây biến N=7 (cho trước) và F = 3 CONTENT b, lúc này ta có  
TERMINAL là: b  
3. 1. 2  
Thut toán tng quát cho Wave không có Rule  
Như trong ví dự ở trên, công vic ca trình biên dch Wave trong mi máy có thể  
được miêu tbng thut toán tng quát.  
Vòng lp:  
1. Ly Wave tWave Queue và tách biến môi trường ra.  
2. Btt các du ngoc đơn toàn bchui Wave.  
3. Phân tích chui Wave thành 2 thành phn: Head và Tail  
4. Btt cdu ngoc đơn toàn bphn Head  
5. Nếu Head là Simple move.  
a. Dng Tail tm thi  
b. Tt ccác công vic thc hin trên move này sdng Frontal, Nodal  
và biến môi trường . Các trường hp có thxy ra:  
i. Biến mi Nodal hoc Frontal được to nếu thành phn chưa  
có biến .  
ii. Nếu trong chui Wave có câu lnh CREATE ngoài, mt  
trong sact có thể được nhy ti Node khác. Trong trường  
hp này Hop strli Link mi hoc Node mi.  
iii. Head có thxóa Node hin ti hoc Link ti Node hin ti bi  
vic gán CONTENT và LINK bng NONE. Xóa btt ccác  
Node hin ti bng cách xóa các Link liên kết ti Node đó.  
c. Gi các Tail ca Wave, kèm theo biến Frontal ti Wave Queue trên  
tt ccác SNR  
Trong trường hp khác  
d. Phân tích Head ca Wave thành các thành phn riêng (các thành  
phn này cách nhau bi du phy). Nếu mi thành phn riêng này  
vn còn các thành phn trong nó nhhơn và cách nhau bi du  
phy, thì công vic tách được tiếp tc cho ti khi các thành phn nhỏ  
trthành Simple move.  
e. Thay thế và gn Tail vào mi thành phn được chia trên. Do đó  
Wave mi snhn được các Tail này.  
f. Đưa các chui Wave thu được, kèm theo biến Frontal, ti hàng đợi  
Wave Queue ca máy tính hin ti.  
- 30 -  

Tải về để xem bản đầy đủ

pdf 93 trang yennguyen 10/05/2025 150
Bạn đang xem 30 trang mẫu của tài liệu "Luận văn Xây dựng trình biên dịch cho ngôn ngữ Wave", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfluan_van_xay_dung_trinh_bien_dich_cho_ngon_ngu_wave.pdf