Tải bản đầy đủ (.pdf) (19 trang)

Tiểu luận môn LẬP TRÌNH SYMBOLIC VÀ ỨNG DỤNG Tìm hiểu IDE của Maple

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (582.18 KB, 19 trang )

MỤC LỤC
1. Giới thiệu lập trình Symbolic 2
2. Giới thiệu Maple 3
3. IDE của Maple 4
3.1. Chức năng Maple Project 6
3.2. Tạo mới một project 6
3.3. Chức năng Archive Explorer 8
3.4. Chức năng Refactoring 9
3.5. Chức năng Running & Debugging 10
3.6. Chức năng đổi màu cú pháp 12
3.7. Chức năng hỗ trợ nội dung 12
3.8. Khung nhìn toàn cảnh 13
3.9. Chức năng chọn mẫu phong cách viết mã 14
3.10. Kiểm tra mã nguồn 14
4. Kết luận 18
5. Tài liệu tham khảo 18








Lập trình Symbolic và TTNT GVHD: PGS.TS Đỗ Văn Nhơn
Nguyễn Thị Ngọc Thanh-CH1101132 Page 2

Tìm hiểu IDE của Maple
1. Giới thiệu lập trình Symbolic

Có ba thành phần trong lập trình: Logic – mô tả cấp cao cách giải quyết bài toán, xử lý –


làm cách nào điều khiển máy tính ở cấp thấp để tìm giải pháp, và khái niệm – xác định
các đối tượng phức tạp bằng các thuộc tính liên quan để giải quyết bài toán. Giải quyết
bài toán thực tế là giải quyết 2 vấn đề: logic và khái niệm. Tuy nhiên, do vấn đề hiệu quả,
nhiều lần biểu thức kiểm soát tường minh cần thiết. Xử lý có thể diển tả tường minh bởi
người lập trình hay ẩn bên trong việc thực thi mô hình ngôn ngữ. Biểu thức xử lý tường
minh làm các chương trình khó hiểu và khó duy trì cũng như gỡ rối.
Một qui tắc vàng là 80% phần mềm không khó khan về thời gian, và không cần hiệu quả
cấp thấp. Khi nhu cầu cho phần mềm được phát triển và phần mềm trở nên ngày càng
lớn, điều đó trở nên khẩn thiết là không thể bào trì phần mềm bằng cách sử dụng ngôn
ngữ cấp thấp như C. Có nhiều hướng tiếp cận được thực hiện bởi cộng đồng phần mềm:
dùng các thư viện lập trình có khả năng tái sử dụng cho lập trình cấp cao, lập trình hướng
đối tượng.
Các ngôn ngữ lập trình tính toán hình thức – ký hiệu (Symbolic programming languages)
hỗ trợ lập trình cấp cao theo cách nhấn mạnh đến mức logic và khái niệm: xử lý được
nhúng trong mô hình thực thi ngôn ngữ, và trong suốt với người lập trình. Mã được phát
triển theo ngôn ngữ lập trình symbolic như Lisp và Prolog rất có ý nghĩa, dễ hiểu, và dễ
bảo trì.
Đây cũng là loại ngôn ngữ phù hợp cho Trí tuệ nhân tạo, robotics, đại số máy tính, và các
hệ chuyên gia, xử lý văn bản, lúc đó Lisp và Prolog trở nên hữu dụng cho lập trình cấp
cao đặc biệt là xử lý nguyên mẫu nhanh. Ngày nay Lisp và Prolog cạnh tranh về mặt tốc
độ với các ngôn ngữ cấp thấp như C và Fortran trong việc hiệu quả thực thi không từ bỏ
Lập trình Symbolic và TTNT GVHD: PGS.TS Đỗ Văn Nhơn
Nguyễn Thị Ngọc Thanh-CH1101132 Page 3

lập trình cấp cao, và giao diện tốt với các ngôn ngữ như C, C++ và hệ điều hành như
Unix.
Lý do chính để học lập trình symbolic là suy nghĩ theo kiểu logic ở cấp cao do các hàm
(dùng trong lập trình hàm) và vị từ (dùng trong lập trình logic) là hai loại chính cho thủ
tục con đường dùng trong mọi ngôn ngữ. Bên cạnh đó, phong cách trừu tượng trong lập
trình dùng ngôn ngữ symbolic đang được mượn trong các ngôn ngữ dựa trên internet thế

hệ mới. Như các ngôn ngữ dựa trên internet thế hệ mới đang được phát triển theo cách
chung, và lập trình đang theo cách chung. Điều đó trở nên cần thiết rằng lập trình trở nên
đơn giản, dễ hiểu, dễ debug. Ngôn ngữ dựa trên internet tương lai sẽ mượn các đặc tính
tốt từ các ngôn ngữ symbolic cấp cao, do chúng phải than thiện người dùng, và phải dễ
dàng lập trình. Học Prolog và Scheme/Lisp sẽ giúp ta diễn tả logic chính xác và đạt được
phong cách lập trình cân bằng.
2. Giới thiệu Maple

Maple là một hệ thống tính toán trên các biểu thức đại số và minh hoạ toán học mạnh mẽ
của công ty Warterloo Maple Inc. Maple ra đời năm 1991 đến nay đã phát triển đến
phiên bản 15. Maple có cách cài đặt đơn giản, chạy được trên nhiều hệ điều hành, có cấu
trúc linh hoạt để sử dụng tối ưu cấu hình máy và có trình trợ giúp (help) rất dễ sử dụng.
Từ phiên bản 7, Maple cung cấp ngày càng nhiều các công cụ trực quan, các gói lệnh tự
học gắn liền với toán học phổ thông và đại học. Ưu điểm đó làm cho nhiều người trên
thế giới lựa chọn sử dụng Maple cùng các phần mềm toán học khác áp dụng trong dạy
học toán và các công việc tính toán đòi hỏi của thực tiễn và sự phát triển của giáo dục.
Có thể nhận thấy rằng ngoài các tính năng tính toán và minh hoạ rất mạnh mẽ bằng các
câu lệnh riêng biệt (thường chỉ cho ta kết quả cuối cùng), Maple còn là một ngôn ngữ
lập trình hướng thủ tục (procedure).
Thủ tục là một dãy các lệnh của Maple theo thứ tự mà người lập trình định sẵn để xử lí
một công việc nào đó, sẵn để xử lí một công việc nào đó, khi thực hiện thủ tục này
Lập trình Symbolic và TTNT GVHD: PGS.TS Đỗ Văn Nhơn
Nguyễn Thị Ngọc Thanh-CH1101132 Page 4

Maple sẽ tự động thực hiện các lệnh có trong thủ tục đó một cách tuần tự và sau đó trả lại
kết quả cuối cùng.
Mapple có các chức năng cơ bản sau:
• Là một hệ thống tính toán trên các biểu thức đại số.
• Có thể thực hiện được hầu hết các phép toán cơ bản trong chương trình toán đại học và
sau đại học.

• Cung cấp các công cụ minh họa hình học thuận tiện gồm: vẽ đồ thị động và tĩnh của các
đường và mặt được cho bởi các hàm tùy ý và trong các hệ tọa độ khác nhau.
• Là một ngôn ngữ lập trình đơn giản và mạnh mẽ, có khả năng tương tác với các ngôn
ngữ lập trình khác.
• Cho phép trích xuất ra các định dạng khác nhau như word, HTML…
• Một công cụ biên soạn giáo án và bài giảng điện tử, thích hợp với các lớp học tương tác
trực tiếp.
• Một trợ giáo hữu ích cho học sinh sinh viên trong việc tự học.
3. IDE của Maple

Maple IDE là công cụ lập trình linh hoạt trong việc giải quyết các bài toán trên máy tính
một cách nhanh chóng. Maple IDE bao gồm bộ soạn thảo mã Maple có nhiều đặc điểm
hữu dụng như gấp các đoạn mã lại, tô màu cú pháp, định dạng mã và dò tìm lỗi trực tiếp.
Ngoài ra Maple còn cung cấp những đặc trưng cao cấp hơn cho việc phát triển các ứng
dụng Maple như là: tạo project Maple, Khung nhìn tổng thể, các định dạng mẫu viết mã,
các công cụ gỡ rối, v.v.
Lập trình Symbolic và TTNT GVHD: PGS.TS Đỗ Văn Nhơn
Nguyễn Thị Ngọc Thanh-CH1101132 Page 5


Hình 1. Giao diện Maple
Maple IDE thích hợp cho mọi tầng lớp người lập trình. Làm việc với Maple IDE sẽ dẫn
dắt một người mới lập trình vào con đưởng học ngôn ngữ lập trình Maple nhanh chóng
hơn, tập trung vào chủ đề và dung các công cụ lập trình lien quan đến Maple tiện dụng.
Các lập trình viên cao cấp có thể tìm thấy đầy đủ các công cụ cho việc lập trình chuyên
nghiệp từ bộ soạn thảo đầy đủ chức năng cho đến qui trình build cuối cùng. Không có
vấn đề gì nếu ta muốn tạo một ứng dụng nhỏ hay xây dựng hệ thống phần mềm lớn trên
Maple. Với Maple IDE ta có thể làm được tất cả. Maple IDE trông rất giống JAVA (xem
hình 2)
Lập trình Symbolic và TTNT GVHD: PGS.TS Đỗ Văn Nhơn

Nguyễn Thị Ngọc Thanh-CH1101132 Page 6


Hình 2: Maple IDE rất giống Java
3.1. Chức năng Maple Project

Hình 3: Khung project explorer
Maple Project cho phép ta nhóm ứng dụng vào trong một chổ gọi là project, cấu hình cài
đặt Maple. Đường build của Maple Project mang lại chức năng mạnh để thêm các gói
Maple đã có (các thư viện .mla), các thư mục và các Maple projects khác vào trong
Maple libname.
3.2. Tạo mới một project
Ta có thể tạo các tài nguyên mới bằng cách vào menu File -> New trên thanh menu
Studio. Từ đây ta có thể bắt đầu bằng cách tạo Maple Project như sau:
Lập trình Symbolic và TTNT GVHD: PGS.TS Đỗ Văn Nhơn
Nguyễn Thị Ngọc Thanh-CH1101132 Page 7

1. Từ thanh menu, chọn File -> New -> Project để mở wizard New Project.
2. Từ wizard New Project, chọn Maple -> Maple Project, rồi nhấn Next để khởi
động New Maple Project wizard: (xem hình 4,5)


Hình 4: Dialog New
Lập trình Symbolic và TTNT GVHD: PGS.TS Đỗ Văn Nhơn
Nguyễn Thị Ngọc Thanh-CH1101132 Page 8

3. Ở phần đặt tên của Project, gõ tên mới cho project. Không dùng các ký tự đặc biệt ở
đây.

Hình 5: New Maple Project

4. Nhấn Finish là xong
1. Click Finish when you are don
Nếu nhìn vào khung Package Explorer, ta sẽ thấy bây giờ nó chứa Maple Project mới vừa
tạo. Mở và đóng project bắng cách click vào icon cây. Project chứa các thư mục và files.
Trong phần tiếp theo ta sẽ xem cách làm việc với các file Maple.
3.3. Chức năng Archive Explorer
Lập trình Symbolic và TTNT GVHD: PGS.TS Đỗ Văn Nhơn
Nguyễn Thị Ngọc Thanh-CH1101132 Page 9


Hình 6: Khung project explorer
Maple Project cho phép ta khai thác bất cứ tập tin nén nào đã được thêm vào project.
Maple Archive Explorer cung cấp cách thức dễ dàng và nhanh chóng để tìm ký
hiệu/thành phần của Maple và mở nó trong bộ soạn thảo Maple.
3.4. Chức năng Refactoring

Hình 7: Minh họa refactor
Maple IDE cho phép tự động đổi tên hàng loạt các thành phần Maple như là mô đun, thủ
tục, v.v. Khi quen với công cụ refactoring của Maple IDE rồi thì đó là một cách thức tốt
để cải thiện hiệu quả làm việc.
Đổi tên các thành phần trong bộ soạn thảo
1. Trong bộ soạn thảo, đưa con nháy đến thành phần cần đổi tên.
Lập trình Symbolic và TTNT GVHD: PGS.TS Đỗ Văn Nhơn
Nguyễn Thị Ngọc Thanh-CH1101132 Page 10

2. Từ menu ngữ cảch (right-click) chọn Rename hay nhấn Alt-Shift-R. Toàn bộ sự
xuất hiện của thành phần được đóng khung và Refactor popup được hiển thị.


Hình 8: Minh họa rename

3. Gõ tên mới của thành phần vào. Toàn bộ tên thành phần sẽ đồng loạt cập nhật
4. Nhấn Enter để thực thi chuyển đổi. Một hộp thoại hiện ra nhắc nhở ta cần lưu file
trước khi chuyển đổi.
5. Chọn 'Always save all modified resources automatically prior to refactoring' để hộp
thoại sẽ không hiển thị lại.
6. Click OK.
7. Thành phần sẽ được đổi tên và toàn bộ các thể hiện cũng được đổi tên theo.
3.5. Chức năng Running & Debugging
Lập trình Symbolic và TTNT GVHD: PGS.TS Đỗ Văn Nhơn
Nguyễn Thị Ngọc Thanh-CH1101132 Page 11


Hình 9: Minh họa running &debugging

Maple IDE cho phép chạy ứng dụng Maple dễ dàng bằng cách sử dụng Launching
Wizards có khả năng tùy biến cao. Cách đơn giản nhất để thực thi ứng dụng Maple là
chạy nó dùng cấu hình Maple launch. Ta có thể chạy Maple files để kiểm tra cú pháp
dùng Maple Mint Syntax Checking.
Kiểm tra Syntax
1. Mở bộ soạn thảo Maple và chọn file để kiểm tra hay chọn file trên phần
Package Explorer.
2. Từ pop-up menu của file (right-click), chọn biểu tượng Check Syntax hay
click vào biểu tượng lá bạc hà trên thanh công cụ.

Lập trình Symbolic và TTNT GVHD: PGS.TS Đỗ Văn Nhơn
Nguyễn Thị Ngọc Thanh-CH1101132 Page 12

3. Trong khung Console, Maple Mint thực hiện và toàn bộ kết quả sẽ xuất hiện ở
đây.


3.6. Chức năng đổi màu cú pháp

Hình 10: Minh họa đổi màu cú pháp

Bộ soạn thảo Maple hỗ trợ đổi màu cú pháp dựa trên cấu trúc từ vựng và dữ liệu ngữ
nghĩa của mã Maple giúp ta có thể thấy những phần khác của mã như là các từ khóa
(module, proc, for, if etc.), chuỗi, chú thích, số và v.v. Người dùng tự do tùy biến theo
cách của mình.
3.7. Chức năng hỗ trợ nội dung
Lập trình Symbolic và TTNT GVHD: PGS.TS Đỗ Văn Nhơn
Nguyễn Thị Ngọc Thanh-CH1101132 Page 13


Hình 11: Minh họa hỗ trợ

Chức năng hỗ trợ nội dung có thể chọn và chèn các thành phần mã đã có để hoàn thành
đoạn mã đã gõ chưa hoàn chỉnh. Chức năng này hiện ra một cửa sổ pop-up với các từ
khóa, câu lệnh, và các mẫu có khả năng. Chức năng hỗ trợ nội dung tang năng suất làm
việc của lập trình viên.
3.8. Khung nhìn toàn cảnh

Hình 12: Minh họa khung nhìn

Khung nhìn toàn cảnh được thiết kế để cung cấp tổng quan cấu trúc về mã Maple. Khung
nhìn toàn cảnh trình bày mã Maple theo dạng cây các thành phần có cấu trúc như là mô
Lập trình Symbolic và TTNT GVHD: PGS.TS Đỗ Văn Nhơn
Nguyễn Thị Ngọc Thanh-CH1101132 Page 14

đun, mũi tên, thủ tục, biến, v.v. Lợi ích thực tế là khi làm việc trong các file lớn, ta có thể
dễ dàng định vị chương trình. Công cụ này giúp có có thể quản lý được tài liệu lớn.

3.9. Chức năng chọn mẫu phong cách viết mã

Hình 13: Minh họa chọn mẫu

Mẫu phong cách viết mã cho phép ta nhanh chóng sinh các mã đã từng sử dụng phổ biến
như là các vòng lặp for và while, câu lệnh if và tất cả được lặp lại mỗi ngày làm việc.
Mẫu phong cách viết mã tiết kiệm thời gian và giảm số lỗi gõ lệnh.
3.10. Kiểm tra mã nguồn

Hình 14: Minh họa kiểm tra mã nguồn
Lập trình Symbolic và TTNT GVHD: PGS.TS Đỗ Văn Nhơn
Nguyễn Thị Ngọc Thanh-CH1101132 Page 15


Phân tích mã, như dò tìm lỗi, cho phép tìm kiếm lỗi trong mã Maple. Chức năng này tìm
các lỗi thông thường và các cảnh báo như là các toán tử hay câu lệnh không đầy đủ.
Khi trình Debugger được gọi, nó hiển thị một biểu thức (trừ khi câu lệnh của debugger
trước đó được xác định bằng dấu 2 chấm), câu lệnh tiếp theo được thi hành, và một dấu
nhắc debug (hay dấu nhắc trong cửa sổ debug).
Khi trình Debugger được gọi, nó hiển thị một biểu thức (trừ khi câu lệnh của debugger
trước đó được xác định bằng dấu 2 chấm), câu lệnh tiếp theo được thi hành, và một dấu
nhắc debug (hay dấu nhắc trong cửa sổ debug).
Nếu trình Debugger được gọi bằng điểm nhìn trên một biến (dùng lệnh stopwhen hay
stopwhenif), biểu thức là một đẳng thức, bên trái là tên biến được xem, bên phải là giá trị
được gán cho biến.
Nếu trình Debugger được gọi bằng điểm nhìn trên một thông điệp lỗi (dùng lệnh
stoperror), biểu thức là thông điệp lỗi.
Các câu lệnh
Tại dấu nhắc debug, có thể dùng được các câu lệnh sau. Những phần nằm trong dấu nháy
là tùy chọn optional

cont [N]
Tiếp tục thi hành cho đến khi gặp điểm ngắt hoặc điểm xem, hay thi hành kết thúc theo
thông thường. Nếu N là số nguyên dương, thì thi hành tiếp tục cho đến khi gặp điểm ngắt
thứ N tiếp theo.
next [N]
Thi hành câu lệnh tiếp theo tại mức lồng hiện hành. Nếu câu lệnh là cấu trúc điều khiển
(ví dụ, "if"), nó được thi hành toàn bộ trước khi việc thi hành bị ngưng lại. Tương tự như
vậy, nếu câu lệnh chứa lời gọi hàm, chúng cũng được thi hành toàn bộ. Nếu N nguyên
dương được xác định, việc thi hành tiếp tục cho N câu lệnh tại mức lồng hiện hành.
Lập trình Symbolic và TTNT GVHD: PGS.TS Đỗ Văn Nhơn
Nguyễn Thị Ngọc Thanh-CH1101132 Page 16

step [N]
Thực thi câu lệnh tiếp theo tại bất cứ mức nào. Việc thi hành ngừng trước câu lệnh theo
sau, nhắm vào liệu đó là mức lồng hiện hành, trong phần than của cấu trúc điều khiển (ví
dụ, "if"), hay trong hàm được gọi. Nếu N nguyên dương được xác định, việc thi hành tiếp
tục cho N câu lệnh tại bất cứ mức nào.
into [N]
Giữa lệnh next và step. Thi hành lệnh next. Việc thi hành ngưng trước câu lệnh tiếp sau
trong hàm hiện hành, quan tâm đến liệu đó là nó ở tại mức lồng hiện hành hay ở phần
than cấu trúc điều khiển. Việc thực thi sẽ không dừng trong một hàm được gọi. Nếu N
nguyên dương được xác định, việc thực thi tiếp tục cho N câu lệnh tại bất cứ mức nào
trong câu lệnh hiện hành.
outfrom [N]
Việc thực thi tiếp tục cho đến khi chuỗi lệnh hiện hành đã hoàn tất thi hành, hay đến khi
gặp điểm ngắt hay điểm nhìn. Nếu lệnh outfrom được thi hành trong khi ngừng trong một
vòng lặp, việc thi hành tiếp tục cho đến khi chỉ trước câu lệnh đầu tiên được thi hành sau
từ khóa đóng end do. Lưu ý là nếu cùng điểm ngắt làm cho việc thi hành ngưng trong
vòng lặp xảy ra lại trong lần lặp tiếp theo, việc thi hành lại ngưng. Nếu lệnh outfrom
được thi hành trong khi ngừng trong phân than của câu lệnh if, việc thi hành tiếp tục đến

trước khi vừa gặp câu lệnh đầu tiên để được thi hành sau từ khóa đóng end if. Nếu N
nguyên dương được xác định, việc thi hành tiếp tục cho đến khi N cấp của các câu lệnh
lồng đã thi hành xong.
return [N]
Thi hành tiếp tục đến khi câu lệnh đầu tiên được thi hành sau khi thủ tục thi hành hiện
hành trả về. Nếu N nguyên dương được xác định, việc thi hành tiếp tục cho đến khi N thủ
tục đã thi hành xong.
quit, done, hay stop
Lập trình Symbolic và TTNT GVHD: PGS.TS Đỗ Văn Nhơn
Nguyễn Thị Ngọc Thanh-CH1101132 Page 17

Việc thi hành kết thúc hoàn toàn, và người dùng được quay về mức cao nhất của Maple
(đó là, lệnh nhắc).
Ví dụ debug đoạn chương trình sau theo câu lệnh:

>
f := proc(x,y) local a; global b;
if x < y then
a := x; b := y + a;
else
a := y; b := x + a;
end if;
a + b + x + y
end proc:
>


(1)
>


f:
1* if x < y then

else

end if;
DBG> stopwhen b
[b]
f:
1* if x < y then

else

end if;
DBG> cont
b := 5
f:
6 a+b+x+y
DBG> showstat
f := proc(x, y)
local a;
global b;
Lập trình Symbolic và TTNT GVHD: PGS.TS Đỗ Văn Nhơn
Nguyễn Thị Ngọc Thanh-CH1101132 Page 18

1* if x < y then
2 a := x;
3 b := y+a
else
4 a := y;

5 b := x+a
end if;
6 ! a+b+x+y
end
DBG> quit
Warning, computation interrupted



4. Kết luận

IDE là môi trường phát triển phần mềm có tích hợp nhiều công cụ hỗ trợ làm tiện ích cho
quá trình viết mã. Vì vậy tìm hiều IDE là một công việc với người tập trình trước khi tiếp
cận một ngôn ngữ lập trình nào đó.
Maple IDE có một số công cụ tiện ích cơ bản như:
 Chức năng quản lý project
 Chức năng Debug
 Và các chức năng khác
Maple IDE có tích hợp luôn cả SDK (Software Develeopent Kits) và có thể soạn thảo
biên dịch độc lập. Maple IDE tương đối đầy đủ để cho các người lập trình từ bắt đầu cho
đến chuyên nghiệp sử dụng để lập trình tính toán trong các bài toán thuộc lĩnh vực khoa
học tự nhiên. Maple nói riêng là môi trường trung gian giữa khoa học máy tính và khoa
học tự nhiên.
5. Tài liệu tham khảo

Lập trình Symbolic và TTNT GVHD: PGS.TS Đỗ Văn Nhơn
Nguyễn Thị Ngọc Thanh-CH1101132 Page 19

[1] Tập tài liệu giảng dạy môn Lập trình Symbolic cho Trí tuệ nhân tạo của PGS.TS Đỗ
Văn Nhơn – Đại học Công nghệ thông tin – Đại học Quốc gia TP.HCM.

[2] , .
[3] Mục Help của chương trình



×