Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 93 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
93
Dung lượng
4,29 MB
Nội dung
- 1 - TRƯỜNG …………………. KHOA………………………. [\[\ Báo cáo tốt nghiệp Đề tài: XÂYDỰNGTRÌNHBIÊNDỊCH CHONGÔN NGỮWAVE MỤC LỤC - 2 - Mục lục hình vẽ 5 Khái niệm và cụm từ viết tắt 8 CHƯƠNG 1. GIỚI THIỆU 9 1. 1 Wave 9 1. 2 Các ứng dụng của Wave 10 1. 3 Nội dung khóa luận 11 CHƯƠNG 2. NGÔNNGỮWAVE 12 2. 1 Giới thiệu về NgônngữWave 12 2. 2 Node, Link và Không gian phân tán : Knowledge Network (KN) 12 2. 3 Tổ chức chung của ngônngữWave 13 2. 4 Cấu trúc dữ liệu cơ bản của Wave 14 2. 5 Biến Spatial và kiểu 14 2. 5. 1 Task variables 15 2. 5. 2 Environment variables 15 2. 6 Các hành động - ACTS 15 2. 6. 1 Control acts 15 2. 6. 2 Fusion acts: Các phép toán hợp nhất 17 2. 7 Rules – Các luật trong Wave 17 2. 8 Wave và mô hình lập trình truyền thống 19 2. 8. 1 Sơ đồ luồng (SD) 19 2. 8. 2 Wave và mô hình lập trình song song 20 2. 8. 3 Wave và mô hình lập trình tuần tự 22 CHƯƠNG 3. XÂYDỰNG BỘ INTERPRETER 28 3. 1 Wave không có Rule 28 3. 1. 1 Chi tiết ví dụ về các bước của Wave 28 3. 1. 2 Thuật toán tổng quát choWave không có Rule 30 - 3 - 3. 2 Wave có Rule 31 3. 2. 1 Ví dụ về Wave có Rule 31 3. 2. 2 Thuật toán tổng quát choWave có Rule 33 3. 3 Hệ thống Track 36 3. 3. 1 Rule dựa trên bộ điều khiển Track 36 3. 3. 2 Thuật toán cho Bộ xử lý track 39 3. 3. 3 Sự lan tỏa Track 40 3. 4 Tổng quan và kiến trúc của Wave Interpreter 41 3. 5 Các thành phần trong Wave Interpreter 42 3. 5. 1 Wave và Wave Queue 42 3. 5. 2 Knowledge Network 42 3. 5. 3 Track Forest 43 3. 5. 4 Parsing Unit 44 3. 5. 5 Excution Processor 51 3. 5. 6 TrackProcessor 52 3. 5. 7 Communication Processor 56 3. 6 Quan hệ giữa các thành phần trong Wave Interpreter 57 3. 6. 1 Luồng xử lý Wave 60 3. 6. 2 Luồng xử lý các echo và điều khiển các rule 64 3. 6. 3 XâydựngtrìnhbiêndịchWave trên ngônngữ Java 67 CHƯƠNG 4. THỰC HIỆN VÀ KẾT QUẢ 69 4. 1 Cài đặt 69 4. 1. 1 Các yêu cầu về phần cứng 69 4. 1. 2 Các yêu cầu về phần mềm 69 4. 2 Thử nghiệm 70 4. 2. 1 Sử dụng chương trình 70 4. 2. 2 Tạo lưới thực địa 71 - 4 - 4. 3 Di chuyển tự do 72 4. 3. 1 Di chuyển tránh chướng ngại vật 75 4. 3. 2 Di chuyển vòng quanh chướng ngại vật 77 4. 4 Di chuyển cùng nhau kiểu tịnh tiến 80 4. 4. 1 Hiển thị hình ảnh 3D động bằng GnuPlot 80 4. 4. 2 Hiển thị hình ảnh 3D của tệp tin VRML 81 4. 4. 3 Hiển thị hình ảnh 3D với các góc nhìn khác nhau 82 4. 4. 4 Hiển thị hình ảnh 3D VRML trên nhiều máy 83 CHƯƠNG 5. PHỤ LỤC 86 5. 1 JJTree 86 5. 1. 1 Giới thiệu 86 5. 1. 2 Các kiểu cấu trúc cây 86 5. 2 Thực thi trên ngônngữ simpleLang 87 5. 3 Xâydựng bộ parser chongônngữWave 89 CHƯƠNG 6. TÀI LIỆU THAM KHẢO 92 - 5 - Mục lục 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 phần của Spread Diagrams 20 Hình 2-3: Tự động tách trong chuỗi Wave 21 Hình 2-4: Một số trường hợp xử lý song song 21 Hình 2-5: Wave xử lý song song có kèm theo Rule 22 Hình 2-6: Xử lý tuần tự không Rule và có Rule 23 Hình 2-7: Wave xử lý tuần tự có Rule 23 Hình 2-8: một số trường hợp với mệnh đề If – else 24 Hình 2-9: Một số trường hợp với mệnh đề If – else 24 Hình 2-10: else – if với filter 25 Hình 2-11: Else – if parallel 25 Hình 2-12: Else – if với Rule 26 Hình 2-13: Switch 26 Hình 2-14: Câu lệnh l ặp sử dụng Repetition 27 Hình 2-15: Câu lệnh lặp sử dụng Recursion 27 Hình 3-1: Wave có Rule 31 Hình 3-2: Tạo track trong quá trìnhWave thực thi và lan tỏa 1 Hình 3-3: Trạng thái và biến frontal 1 Hình 3-4: Gửi echo và tổng hợp các kết quả trạng thái, sau đó loại các Track Link, Track Node thừa 1 Hình 3-5: Truyền Tail tới các Track Node ngoài cùng (Node lá) 1 Hình 3-6: Kích hoạt Tail trong các Node lá 1 Hình 3-7. Các thành phần của 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 - 6 - Hình 3-11: Excution Processor 52 Hình 3-12: Sau khi nhận và xử lý CREATE 1 Hình 3-13: Sau khi nhận và xử lý EXPANDH 1 Hình 3-14: Sau khi nhận và xử lý ACTIVATE 1 Hình 3-15: Sau khi nhận ECHO từ các nhánh con 1 Hình 3-16: Sau khi xử lý ECHO nhận được 1 Hình 3-17: Communication Processor 1 Hình 3-18: Quan hệ giữa các thành phần trong Wave Interpreter 1 Hình 3-19: Luồng xử lý giữa các thành phần trong Wave Interpreter 60 Hình 3-20: Lan truyền echo lên trên 1 Hình 3-21: Gửi tail cho các track con 1 Hình 4-1. Chương trình hiển thị khi mới được chạy 70 Hình 4-2. Chương trìnhWAVE khi bắt đầu chạy 71 Hình 4-3. Lưới 5x5 71 Hình 4-4. Cửa sổ output c ủa Netbeans 72 Hình 4-5. Vị trí đầu tiên 1-1 72 Hình 4-6. Chạy ngẫu nhiên tới vị trí tiếp theo 73 Hình 4-7. Các bước chạy ngẫu nhiên tiếp theo 1 Hình 4-9. Dừng khi chạy tới đích 75 Hình 4-8. Tiếp tục chạy ngẫu nhiên 1 Hình 4-10. Di chuyển qua chướng ngại vật 1 Hình 4-11. Vượt qua chướng ngại vật và về đến đích 1 Hình 4-12. Di chuyển vòng quanh chướng ngại vật 1 Hình 4-13. Vòng quanh chướng ngại vật 1 vòng thì dừng 1 Hình 4-14. Di chuyển tị nh tiến cùng nhau 1 Hình 4-15. Hình ảnh 3D trên máy thứ nhất sử dụng GnuPlot 81 Hình 4-16. Hình ảnh 3D trên máy thứ hai sử dụng GnuPlot 81 Hình 4-17. Tệp tin VRML được hiển thị sau khi được tạo bởi KN 82 - 7 - Hình 4-18. Các đối tượng hiển thị theo cách khác thi thay đổi Transform 83 Hình 4-19. Một cách nhìn khác thi thay đổi Transform 83 Hình 4-20. Hiển thị đối tượng đầu tiên trên máy 1 84 Hình 4-21. Hiển thị đối tượng thứ hai trên máy 2 85 - 8 - Khái niệm và cụm từ viết tắt CP Communication Processor CQ Communication Queue EU Execution Unit KN Knowledge Network PU Parsing Unit SD Spread Diagrams SNR Set of Nodes reached TF Track Forest TN Track Node TP Track Processor TQ Track Queue WI Wave Interpreter WQ Wave Queue - 9 - CHƯƠNG 1. GIỚI THIỆU Ở chương này chúng tôi trình bày tổng quan về công nghệ Wave nhằm trả lời các câu hỏi sau: Wave là gì? Nó khác và ưu điểm hơn so với các hệ thống bình thường ở chỗ nào? Các ứng dụng viết trên Wave sử dụng trong lĩnh vực gì? 1. 1 Wave Ngày nay, các hệ thống mở và mạng máy tính đang phát triển rất nhanh và được cả thế giới quan tâm. Hệ thống mạng máy tính kết nối công việc từ khắp nơi trên thế giới, mạng máy tính cũng giữ một khối lượng khổng lồ dữ liệu dịch vụ và thông tin. Những công cụ tương tác không chỉ để tìm kiếm thông tin, dịch vụ hoặc file ngay trên máy tính mà còn được mở rộng về địa lý, không gian… và hoàn toàn m ở trên Internet. Một ví dụ điển hình ở đây chính là World Wide Web. Tuy nhiên, hầu hết các mô hình và công cụ lập trình phân tán thiếu đi khả năng linh hoạt để khai thác thông tin về cấu trúc mở một cách tự động. Những mô hình lập trình và hệ thống phân tán truyền thống thường dựa trên dữ liệu đóng. Công việc được xử lý trong các ứng dụng phân tán thường phải được định nghĩa trước hoặc được gọ i thông qua việc kích hoạt thủ tục, phương thức. Phần lớn việc xử lý và tương tác thông qua việc trao đổi thông điệp chứa dữ liệu. Ngoài ra hệ thống phân tán có thể cung cấp dữ liệu và dịch vụ chia sẻ. Trong mạng máy tính, dịch vụ và thông tin chỉ nằm ở các máy chủ ứng dụng (ví dụ như việc sử dụng của các tổ chức kinh doanh…). Tuy nhiên, phương pháp tiếp cận này vẫn ch ưa tối ưu. Do đó, chúng ta sẽ cần phải tích hợp linh hoạt các máy chủ ứng dụng trong một hệ thống tổng thể và có cơ sở hạ tầng mở hơn nữa. WAVE không chỉ là một mô hình. Wave còn là công nghệ dựa trên sự liên kết và điều khiển của các hệ thông lớn được hỗ trợ bởi mạng máy tính và viễn thông. Wavecho phép linh động tạo các cấu trúc điều khiển và việ c xử lý mạng tri thức (phân tán và song song) thông minh. Các cấu trúc này có thể cung cấp khả năng tự tổ chức, phục hồi, tạo khuôn mẫu để kết nôai tới các hệ thống khác. Công nghệ này dựa trên việc cài đặt nhiều tác nhân thông minh trên hệ thống phân tán để tối ưu hóa việc xử lý dữ liệu cục bộ thông qua việc lan tỏa thông tin ở các hệ thống nhỏ với nhau hoặc ở hai hệ thống nhỏ khác nhau. T ất cả công việc trên đều được thông dịch qua ngônngữ Wave. Mã đệ quy được viết từ ngônngữ này có khả năng tự lan tỏa trong không gian hệ thống. Không giống các hệ thống truyền thống, nó là một hệ thống dựa trên sự linh động của chương trình có thể tùy ý mở rộng về mặt địa lý và hỗ trợ nhiều máy tính trên mạng. Trong Wave, chương trình có thể cho vào trong hệ thống bất kỳ chỗ nào. Khi đ ó các chương trình này có khả năng lan tỏa qua mạng như virus. Nhiều người sử dụng có thể độc lập phát triển các chương trìnhWave hoặc liên kết trong cùng một hệ thống không gian, chia sẻ biến cục bộ (biến này được liên kết với Node) với các biến khác (được kèm theo sự duy chuyển của mã Wave). Nói cách khác: • Wave là một ngôn ngữ, model đặc biệt và là công nghệ mới cho hệ thống song song, phân tán hay kết hợp các hệ thống đ ó với nhau. - 10 - • Wave ban đầu được thiết kế cho việc mô phỏng mạng ảo như là mạng tri thức (Knowledge Networks). • Wave dựa trên các chương trình mà có thể lan tỏa, mở rộng, chia nhỏ và có thể tự hồi đáp trong những mạng tri thức đã được kích hoạt. Hình 1-1: Mô hình Wave 1. 2 Các ứng dụng của Wave Các thuật toán về phân tán đã được lập trình thành công trong WAVE như các bài toán liên quan đến đồ thị và các vấn đề lý thuyết về mạng (tìm đường ngắn nhất, phân tích topology mạng, các loại cây spanning…). Các hoạt động tự phục hồi đồ thị, thủ tục cập nhật thông tin liên lạc như địa điểm, đường đi…trên điện thoại di động. Những ứng dụng hiện nay bao gồm việc quả n lý hệ thống mạng máy tính tích hợp với hệ thống quản lý truyền thống với công nghệ Wave. Một vài ứng dụng như: xử lý máy móc, mô hình và kiểm soát trong mạng di động, tích hợp cơ sở dữ liệu phân tán. Wave cũng có thể được gọi là “Điện thoại thông minh” với hàng loạt ứng dụng: • Mô hình giao tiếp mạng di động. • Tích hợp hệ thống cơ sở dữ liệ u phân tán. • Mô phỏng mạng lưới giao thông, phân tích và điều khiển. • Điều khiển phân tán mạng lưới hàng không một cách tự động giữa các vùng, miền. • Ứng dụng vào việc đo đạc địa lý một cách tự động. • Quản lý thông minh trong hệ thống viễn thông và mạng máy tính mở. • Điều khiển trong robot. Các ứng dụng trên Wave còn được thể hiện chi tiết và rõ ràng trong khóa luận tốt nghiệ p của các bạn: ‐ Vũ Đức Tiệp và Đỗ Thế Chuẩn hai bạn đã đưa ra vấn đề cụ thể: Xâydựng hệ thống mô phỏng và thực tại ảo bằng ngônngữ Wave. ‐ Phí Hồng Thái và Phạm Minh Ngọc: Hệ thống phân tích mạng xã hội Yahoo!360 dựa trên nền tảng công nghệ Wave. [...]... Nội dung khóa luận Trong các chương ở khóa luận này, chúng tôi đề cập những vấn đề sau: Chương 1: Giới thiệu và trình bày tổng quan cũng như các ứng dụng của Wave Chương 2: Trình bày về cú pháp, ngữ nghĩa cách tổ chức chung của ngônngữWave Ngoài ra chúng tôi còn đưa ra một vấn đề nữa là: Wave và các mô hình lập trình truyền thống (tuần tự hoặc song song) Chương 3: Trình bày về cách xâydựng hệ thống... các luật Ở phần cuối chương này chúng tôi còn đề cập tới một vấn đề nữa: Wave và các phương pháp lập trình truyền thống (lập trình tuần tự và lập trình song song) 2 1 Giới thiệu về NgônngữWaveWave là một ngônngữ đặc biệt cung cấp khả năng thực thi mềm dẻo, đa người dùng trên hệ thống phân tán Quá trình thực thi của ngônngữWave giống như virus, tức là có khả năng nhân bản và lan tỏa qua mạng, thực... Interpreter choWave bằng cách tiếp cận từ lý thuyết tới việc tìm hiểu kiến trúc chung của hệ thống, các thành phần và quan hệ giữa các thành phần đó Chương 4: Đưa ra các bài toán thực tế và kết quả đạt được Chương 5: Phụ lục về JJTree Chương 6: Tài liệu tham khảo - 11 - CHƯƠNG 2 NGÔNNGỮWAVE Trong phần này chúng tôi trình bày về cú pháp và ngữ nghĩa của ngônngữWave Đây là một ngônngữ đặc biệt cho phép... trong quá trình di chuyển qua link hay khi đứng trực tiếp tại một node cụ thể nào đó Từ một node, cả nội dung và hướng của link có thể truy xuất trực tiếp Ví dụ: Hình 2-1: Knowledge Network 2 3 Tổ chức chung của ngônngữWaveNgônngữWave đặc trưng cho quá trình lan tỏa song song trong không gian dữ liệu phân tán được biết là KN Do vậy cú pháp của ngônngữ miêu tả rõ quá trình hoạt động này: wave {{move... của Wave mới chính là WE của Wave ban đầu Wave mới được tạo ra được đưa vào Wave Queue để chờ xử lý Phần remainder của Wave ban đầu sẽ tiếp tục được thực hiện như bình thường Ví dụ: w1.RL(w2).w3 Ý nghĩa: sau khi thực thi xong w1, gặp RL chương trìnhWave sẽ tách w2 cùng với biến môi trường thành Wave mới cho vào hàng đợi xử lý, chuỗi Wave tiếp tục thực thi là w3 cùng với biến môi trường của nó 2 8 Wave. .. w1,w2.w3,w4: sự kết hợp của 2 kiểu trên 2 4 Cấu trúc dữ liệu cơ bản của WaveWave là ngônngữ được dùngcho quá trình xử lý trên mạng, nhưng không giống các ngônngữ khác, kiểu dữ liệu cơ sở không phản ánh việc đó Wave sử dụng kiểu dữ liệu cơ sở là Vector: là tập các string được phân tách nhau bới dấu chấm phẩy (;) Tất cả các hoạt động của ngônngữ đều thực thi trên Vector Truy cập tới thành phần của Vector có... cũng được gửi cùng) Tất cả các Wave mới đều được kích hoạt trong hàng đợi ở máy tính chứa Node của Wave đó Wave Queue chỉ lưu lại các simple move 6 Bước 6 - 29 - N+F.TERMINAL = CONTENT ở đây biến N=7 (cho trước) và F = 3 và CONTENT là b, lúc này ta có TERMINAL là: b 3 1 2 Thuật toán tổng quát choWave không có Rule Như trong ví dự ở trên, công việc của trìnhbiêndịchWave trong mỗi máy có thể được... FALSE - 33 - Repetition: Nếu Head của Wave được dùng bởi luật REPEAT: 1 Tạm dừng chuỗi Wave 2 Tách biến Frontal từ Wave 3 Với luật khác nhau ta tách được các chuỗi Wave từ Head của Wave ban đầu 4 Ghép các biến Frontal được lấy ra từ Wave, từ đó nhận được Wave mới 5 Kích hoạt Wave mới và cho vào hàng đợi trong máy tính hiện tại và đợi kết quả cuối cùng trả về (nơi mà Wave có thể lan rộng ra các máy khác)... các Tail của Wave và ghép các biến Frontal được lấy từ Node hiện tại với chúng f.Kích hoạt Wave mới trong Node hiện tại bằng cách đưa chúng vào trong hàng đợi Wait Nếu Head của Wave được dùng bởi luật WAIT: 1 Tách các biến Frontal từ Wave 2 Lây chuỗi Wave từ Head và tạm dừng Tail 3 Ghép các biến Frontal vào Wave (Wave này lấy từ Head) Wave mới) ta nhận được 4 Kích hoạt Wave mới bằng cách cho chúng vào... Kích hoạt Wave mới bằng cách cho vào hàng đợi - 35 - 3 3 Hệ thống Track Hệ thống điều khiển của Track có thể tự nhân bản, sao chép hoặc được tạo trong suốt quá trìnhWave thực thi và di chuyển Tín hiệu echo sẽ được trả lại cho các Track này Hệ thống Track này được coi như là hệ thống cốt lõi trong việc điều khiển của ngônngữWave Nó có khả năng tự tạo ra các “cây Track” tương ứng mỗi lần Wave được . thành phần trong Wave Interpreter 57 3. 6. 1 Luồng xử lý Wave 60 3. 6. 2 Luồng xử lý các echo và điều khiển các rule 64 3. 6. 3 Xây dựng trình biên dịch Wave trên ngôn ngữ Java 67 CHƯƠNG. tham khảo. - 12 - CHƯƠNG 2. NGÔN NGỮ WAVE Trong phần này chúng tôi trình bày về cú pháp và ngữ nghĩa của ngôn ngữ Wave. Đây là một ngôn ngữ đặc biệt cho phép tạo và xử lý thông tin trong. chức chung của ngôn ngữ Wave Ngôn ngữ Wave đặc trưng cho quá trình lan tỏa song song trong không gian dữ liệu phân tán được biết là KN. Do vậy cú pháp của ngôn ngữ miêu tả rõ quá trình hoạt động