Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 26 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
26
Dung lượng
292,67 KB
Nội dung
B
Ộ GIÁO DỤC VÀ ĐÀO TẠO
ĐẠI HỌC ĐÀ NẴNG
TRẦN THỊ OANH KHUYÊN
MÔ PHỎNGLẬPTRÌNHHƯỚNGĐỐITƯỢNG
TRONG LẬPTRÌNHHÀM
Chuyên ngành : KHOA HỌC MÁY TÍNH
Mã số : 60.48.01
TÓM TẮT LUẬN VĂN THẠC SĨ KỸ THUẬT
ĐÀ NẴNG - 2011
Công trình
ñược hoàn thành tại
ĐẠI HỌC ĐÀ NẴNG
Người hướng dẫn khoa học: PGS.TS. Phan Huy Khánh
Phản biện 1 : PGS.TS. Lê Văn Sơn
Phản biện 2 : TS. Trương Công Tuấn
Luận văn ñược bảo vệ trước Hội ñồng chấm Luận văn tốt
nghiệp thạc sĩ kỹ thuật họp tại Đại học Đà Nẵng vào ngày 16
tháng 10 năm 2011
Có thể tìm hiểu luận văn tại:
- Trung tâm Thông tin - H
ọc liệu, Đại học Đà Nẵng
- Trung tâm Học liệu, Đại học Đà Nẵng.
3
CHƯƠNG 1.
MỞ ĐẦU
1. Lý do chọn ñề tài
Ngành công nghiệp phần mềm ñã chuyển sang một kỷ
nguyên mới. Ngày nay, các phần mềm không ñược phát triển nhỏ lẻ
mà thường là những hệ thống lớn, tập trung, phức tạp. Đó là sự kết
hợp của nhiều thành phần dưới dạng thư viện, gói, dịch vụ,…ñược
phát triển trên những nền tảng chuyên biệt, ñảm nhận những chức
năng và nhiệm vụ khác nhau. Do ñó những mô hình lậptrình cũ trở
lên bất cập, thiếu linh ñộng, phức tạp,…
Sự ra ñời của lậptrìnhhướng ñối tượng ñánh dấu một sự
phát triển nhảy vọt tronglậptrình máy tính.
Lập trìnhhướng ñối tượng ra ñời như một bước tiến hóa của
tư duy thiết kế phần mềm. Mô hình ñó cho phép chúng ta kết hợp tri
thức bao quát về quá trình với những khái niệm trừu tượng ñược sử
dụng trong máy tính. Phỏng theo một ñối tượngtrong thế giới thực,
các ñối tượngtrong phần mềm ñược tạo xác ñịnh chính xác những
ñặc trưng, thành phần, hành vi, khả năng, mối quan hệ dữ
liệu,…Chúng ta có thể tạo ra một hoặc nhiều ñối tượng từ một khuôn
hình cài ñặt sẵn với dữ liệu mới, ñộc lập [18].
Lập trìnhhướng ñối tượng (Object-Oriented Programming,
viết tắt là OOP) là một phương pháp mới trên bước ñường tiến hóa
của việc lậptrình máy tính, nhằm làm cho chương trình trở nên linh
hoạt, tin cậy và dễ phát triển.
Ngôn ngữ lậptrìnhhướng ñối tượng không chỉ ñơn thuần là
ng
ữ pháp ngôn ngữ, trình biên dịch hay toàn bộ môi trường phát
triển ứng dụng mà nó bao gồm rất nhiều những thư viện quan trọng
trợ giúp việc thiết kế, sử dụng ñối tượng tốt hơn. Lậptrìnhhướng
4
ñối tượng có thể ñược hỗ trợ bởi bất cứ ngôn ngữ lậptrình nào. Hiện
nay hầu hết các ngôn ngữ thông dụng ñều hỗ trợ lậptrìnhhướng ñối
tượng.
Trong logic toán học và khoa học máy tính, phép tính
lambda (tiếng Anh:lambda calculus) hay còn ñược viết là λ-calculus,
là một hệ thống hình thức dùng trong việc ñịnh nghĩa hàm số, ứng
dụng hàm số và ñệ quy. Phép tính lambda ñược Alonzo Church ñề
xuất vào những năm 193x như là một phần của một nghiên cứu về
các nền tảng toán học. Hệ thống nguyên thủy ñã ñược chứng minh là
xung khắc logic vào năm 1935 khi Stephen Kleene và J. B. Rosser
phát triển nghịch lí Kleene–Rosser. Phép tính lambda sau ñó ñã ñược
phát triển ñể trở thành một công cụ quan trọngtrong việc nghiên cứu
các vấn ñề lý thuyết tính toán và lý thuyết ñệ quy, và hình thành nên
nền tảng cơ bản của mô hình lậptrìnhhàm
Lập trìnhhàm là phong cách lậptrình dựa trên ñịnh nghĩa
hàm sử dụng phép tính lambda (λ-calculus). Lậptrìnhhàm không sử
dụng các lệnh gán biến và không gây ra hiệu ứng phụ như vẫn gặp
trong lậptrình mệnh lệnh. Trong các ngôn ngữ lậptrình hàm, hàm
(thủ tục, chương trình con) ñóng vai trò trung tâm, thay vì thực hiện
lệnh, máy tính tính biểu thức. Đã có rất nhiều ngôn ngữ hàm ñược
phát triển và ứng dụng như Miranda, Haskell, ML, các ngôn ngữ họ
Lisp : Scheme, Common Lisp
Ngôn ngữ Scheme có tính sư phạm cao, giải quyết thích hợp
các bài toán học và xử lý ký hiệu.Scheme có cú pháp ñơn giản, dễ
lập trình. Một chương trình Scheme là một dãy các ñịnh nghĩa hàm
góp l
ại ñể ñịnh nghĩa một hoặc nhiều hàm phức tạp hơn. Scheme làm
việc theo chế ñộ thông dịch, tương tác với người sử dụng.
5
Đề tài này mô phỏnglậptrìnhhướng ñối tượngtronglập
trình hàm (Scheme).
2. Mục tiêu và nhiệm vụ của ñề tài
Mục tiêu
Mô phỏng ñược ngôn ngữ lậptrìnhhướng ñối tượngtrong
lập trình hàm.
Nhiệm vụ
Khái quát lại lậptrìnhhướng ñối tượng.
Nghiên cứu cơ sở lậptrìnhhàm và ứng dụng.
Nghiên cứu khả năng mô phỏnglậptrìnhhướng ñối tượng
trong lậptrình hàm.
Thực hiện mô phỏnglậptrìnhhướng ñối tượngtronglập
trình hàm .
3. Đốitượng và phạm vi nghiên cứu
Nghiên cứu về lậptrình hàm, lậptrìnhhướng ñố tượng, các
ñặc trưng cơ bản.
Mô phỏnglậptrìnhhướng ñối tượng sử dụng lậptrình hàm.
Cài ñặt, thử nghiệm: ñưa ra bài toán xử lý hình 2D giải quyêt
bằng phương pháp lậptrìnhhướng ñối tượng sử dụng lậptrình hàm.
4. Phương pháp nghiên cứu
Thu thập, tìm hiểu và phân tích các tàiliệu và thông tin bằng
tiếng Việt và tiếng Anh liên quan ñến luận văn.
Đưa ra bài toán thuộc lĩnh vực trí tuệ nhân tạo ñể giải quyết
theo phương pháp lậptrìnhhướng ñối tượngtronglậptrìnhhàm sử
dụng ngôn ngữ Scheme.
5. Ý ngh
ĩa khoa học và thực tiễn của ñề tài
Về mặt lý thuyết
6
Nghiên cứu chuyên sâu về khả năng trừu tượng hóa dữ liệu
trong lậptrìnhhàm
Tổng hợp ñược các nguyên lý mô phỏnglậptrìnhhướng ñối
tượng tronglậptrìnhhàm dựa trên khả năng trừu tượng hóa dữ liệu
lập trìnhhàm
Ý nghĩa thực tiễn
Mô phỏnglậptrìnhhướng ñối tượngtronglậptrìnhhàm mở
rộng phạm vi ứng dụng thực tiễn của lậptrìnhhàm
Mô phỏng thành công một bài toán xử lý hình 2D ñơn giản
là tiên ñề ñể thực hiện mô phỏng ñầy ñủ tập các bài toán xử lý hình
2D nhằm giúp cho việc xử lý hình cần thiết trong các bài toán hoặc
ứng dụng ñến lĩnh vực tri thức nhân tạo.
6. Bố cục luận văn
Chương 1. Tìm hiểu về lậptrìnhhướng ñối tượng và lậptrình
hàm
Ở chương ñầu tiên này, tôi trình bày khái quát về ngôn ngữ lập
trình, các phong cách lậptrình phổ biến. Trong ñó, tôi tập trung
nghiên cứu cơ sở của hai phong cách lập trình: hướng ñối tượng và
lập trìnhhàm nhằm phục vụ cho nội dung chính của luận văn là mô
phỏng lậptrìnhhướng ñối tượngtronglậptrình làm. Bên cạnh ñó,
ngôn ngữ Scheme là ngôn ngữ lậptrìnhhàm ñược chọn ñể nghiên
cứu phục vụ cho việc cài ñặt mô phỏng.
Chương 2. Mô phỏnglậptrìnhhướng ñối tượngtronglập
trình hàm.
Trong chương này, tôi nghiên cứu khả năng mô phỏnglập
trình h
ướng ñối tượngtronglậptrình hàm; khả năng trừu tượng hóa
dữ liệutrong ngôn ngữ lậptrình Scheme, ñồng thời phát biểu ñược
7
bài toán xử lý hình 2D, thực hiện việc giải quyết theo phong cách lập
trình hướng ñối tượng và thực hiện mô phỏngtronglậptrình hàm.
8
Chương 3. Cài ñặt và ñánh giá kết quả thử nghiệm
Trong chương này, tôi mô tả lại việc cài ñặt bài toán theo hai
phong cách lậptrình và ñánh giá kết quả thử nghiệm của việc mô
phỏng lậptrìnhhướng ñối tượngtronglậptrình hàm.
9
CHƯƠNG 1. TÌM HIỂU LẬPTRÌNHHƯỚNGĐỐITƯỢNG VÀ
LẬP TRÌNHHÀM
Ở chương ñầu tiên này, tôi trình bày khái quát về ngôn ngữ lập
trình, các phong cách lậptrình phổ biến. Trong ñó, tôi tập trung
nghiên cứu cơ sở của hai phong cách lập trình: hướng ñối tượng và
lập trìnhhàm nhằm phục vụ cho nội dung chính của luận văn là mô
phỏng lậptrìnhhướng ñối tượngtronglậptrình hàm. Bên cạnh ñó,
ngôn ngữ Scheme là ngôn ngữ lậptrìnhhàm ñược chọn ñể nghiên
cứu phục vụ cho việc cài ñặt mô phỏng.
1.1. Khái quát ngôn ngữ lậptrình và phong cách lậptrình
1.1.1. Khái quát ngôn ngữ lậptrình
1.1.1.1. Khái niệm về ngôn ngữ lậptrình
Như chúng ta ñã biết, máy tính bao gồm phần cứng là các
thiết bị ñiện tử trong ñó thông tin ñược biểu diễn dưới dạng số nhị
phân và phần mềm bao gồm các chương trình ñược tạo ra bằng cách
sử dụng các ngôn ngữ lập trình. Như vậy ngôn ngữ lậptrình là ngôn
ngữ dùng ñể viết các chương trình cho máy tính. Cũng như các ngôn
ngữ thông thường, Ngôn ngữ lậptrình cũng có từ vựng, cú pháp và
ngữ nghĩa.
1.1.1.2. Lựa chọn ngôn ngữ lậptrình
1.1.2. Phong cách lậptrình
1.1.2.1. Định nghĩa phong cách (paradigm)
1.1.2.2. Các phong cách lậptrình chính
a. Phong cách hướng mệnh lệnh
b. Phong cách hướng chức năng
c. Phong cách h
ướng logic
d. Phong cách hướng ñối tượng
10
1.1.3. Xu thế lậptrình
1.1.3.1. Yêu cầu về chất lượng
1.1.3.2. Khả năng ñọc của mã nguồn
1.1.3.3. Độ phức tạp của thuật toán
1.1.3.4. Các phương pháp
1.1.3.5. Tần suất sử dụng ngôn ngữ
1.1.3.6. Tìm lỗi (debugging)
1.1.3.7. Môi trường phát triển tích hợp (IDE)
1.2. Lậptrìnhhướng ñối tượng
1.2.1. Lậptrìnhhướng ñối tượng OOP là gì ?
Lập trìnhhướng ñối tượng (Object-Oriented Programming,
viết tắt là OOP) là một phương pháp mới trên bước ñường tiến hóa
của việc lậptrình máy tính, nhằm làm cho chương trình trở nên linh
hoạt, tin cậy và dễ phát triển. Tuy nhiên ñể hiểu ñược OOP là gì,
chúng ta hãy bắt ñầu từ lịch sử của quá trìnhlậptrình – xem xét
OOP ñã tiến hóa như thế nào [2],[16].
1.2.1.1. Sự trừu tượng hóa dữ liệu
1.2.1.2. Lậptrìnhhướng ñối tượng
Khái niệm hướng ñối tượng ñược xây dựng trên nền tảng
của khái niệm lậptrình có cấu trúc và sự trừu tượng hóa dữ liệu.
Lập trìnhhướng ñối tượng (Object Oriented Programming -
gọi tắt là OOP) hay chi tiết hơn là Lậptrình ñịnh hướng ñối tượng,
chính là phương pháp lậptrình lấy ñối tượng làm nền tảng ñể xây
dựng thuật giải, xây dựng chương trình. Thực chất ñây không phải là
một phương pháp mới mà là một cách nhìn mới trong việc lập trình.
Để phân biệt, với phương pháp lậptrình theo kiểu cấu trúc mà chúng
ta quen thuộc trước ñây, hay còn gọi là phương pháp lậptrìnhhướng
thủ tục (Procedure-Oriented Programming), người lậptrình phân tích
[...]... P TRÌNH HƯ NG Đ I TƯ NG TRONG L P TRÌNHHÀMTrong chương này, tôi nghiên c u kh năng mô ph ng l p trình hư ng ñ i tư ng trong l p trình hàm; kh năng tr u tư ng hóa d li u trong ngôn ng l p trình Scheme, ñ ng th i phát bi u ñư c bài toán x lý hình 2D, th c hi n vi c gi i quy t theo phong cách l p trình hư ng ñ i tư ng và th c hi n mô ph ng trong l p trìnhhàm 2.1 Kh năng l p trình hư ng ñ i tư ng trong. .. trong l p trìnhhàm 2.1.1 Khái quát Như chúng ta ñã bi t, trong l p trình hư ng ñ i tư ng, tr u tư ng hóa d li u là ý tư ng quan tr ng nh t ñ phát tri n ngôn ng l p trình hư ng ñ i tư ng Nên vi c nghiên c u ñ mô ph ng l p trình hư ng ñ i tư ng trong l p trìnhhàm chính là vi c nghiên c u kh năng tr u tư ng hóa d li u trong l p trìnhhàm Đ ñ nh nghĩa ñư c ki u d li u tr u tư ng trong l p trình hàm, chúng... c u ñư c nguyên lý mô ph ng l p trình hư ng ñ i tư ng trong l p trìnhhàm thông qua kh năng tr u tư ng hóa d li u trong l p trìnhhàm Vi c th c hi n gi i quy t bài toán x lý hình 2D (xác ñ nh ñư ng tròn ngo i ti p tam giác) trong ngôn ng l p trình hư ng ñ i tư ng và mô ph ng trong l p trìnhhàm thành công 2 H n ch Trong quá trình tìm hi u, nghiên c u và th c hi n ñ tài, dư i s giúp ñ t n tình c a th... cũng như năng l c, ñ tài này ch m i gi i quy t ñư c m t bài toán x lý hình 2D trong vi c mô ph ng l p trình hư ng ñ i tư ng trong l p trìnhhàm 3 Ph m vi ng d ng c a lu n văn V m t lý thuy t Nêu b t ñư c nguyên lý mô ph ng l p trình hư ng ñ i tư ng trong l p trìnhhàm V m t th c ti n Vi c mô ph ng l p trình hư ng ñ i tư ng ñ gi i quy t các bài toán x lý hình 2D trong l p trìnhhàm 4 Đ nh hư ng phát... tên các bi n, tương t trong các ngôn ng l p trình m nh l nh như C, Pascal V i nh ng kh năng nêu trên, nh n th y r ng, hoàn toàn có th mô ph ng l p trình hư ng ñ i tư ng trong l p trìnhhàm d a trên vi c tr u tư ng hóa d li u Trong ñó, ‘d li u’ là các l p, thành ph n cơ b n c a l p trình hư ng ñ i tư ng 2.2 Mô ph ng l p trình hư ng ñ i tư ng trong scheme Trong quá trình th c hi n ñ tài này, tôi ch n Racket... tri n c a lu n văn Đ tài ch t p trung nghiên c u mô ph ng l p trình hư ng ñ i tư ng trong l p trìnhhàm Mô ph ng ho c tích h p l p trìnhhàmtrong l p trình hư ng ñ i tư ng cũng ñang ñư c các chuyên gia nghiên c u nghiêm túc ñ t n d ng kh năng h tr m nh c a các ngôn ng l p trình hàm, ñ c bi t như m t s ngôn ng Scheme, Haskell, Scala hay Clojure 26 M r ng ñ tài ñ mô ph ng l p trình x lý bài toán 3D... thành công ngôn ng l p trìnhhàm Đã cài ñ t và th c hi n các ch c năng theo yêu c u, so sánh ñư c nh ng ưu và như c ñi m hai phong cách l p trình: hư ng ñ i tư ng và l p trìnhhàm Đ c bi t ñ tài ñã gi i thích ñư c kh năng ñ c t ki u d li u tr u tư ng ADT, ñưa ra ñư c nguyên lý l p trình hư ng ñ i tư ng trong l p trìnhhàm 25 K T LU N VÀ HƯ NG PHÁT TRI N 1 Đánh giá k t qu ñ t ñư c Đ tài ñã nghiên c u ñư... 1.3.3 K thu t x lý hàm 1.3.3.1 S d ng hàm Cho ñ n lúc này, ta ñã s d ng define ñ ñ nh nghĩa bi n và hàm Scheme như sau (define v s) trong ñó : v (variable) là m t bi n s là m t bi u th c (define (f L) s) trong ñó : L dãy t 0 n bi n, f là tên hàm hay tên bi n, 14 s là bi u th c ñóng vai trò thân c a hàm M t hàmtrong Scheme ñư c xem như m t ki u d li u hay m t s-bi u th c, do ñó, hàm có th ñư c dùng... trình hư ng ñ i tư ng L p trình hư ng ñ i tư ng là m t phương pháp l p trình có các tính ch t chính sau: a Tính tr u tư ng (abstraction) b Tính ñóng gói (encapsulation) và che gi u thông tin (information hiding) c Tính ña hình (polymorphism) d Tính k th a (inheritance) 1.3 1.3.1 L p trìnhhàm Nguyên lý l p trìnhhàm 1.3.1.1 Tính khai báo c a các ngôn ng hàmTrong các ngôn ng m nh l nh, m t chương trình. .. xác ñ nh các ñ i tư ng c n ñ c t trong h th ng và các phương th c tính toán liên quan, ngư i vi t th c hi n ñ c t trong theo hai phong cách l p trình: hư ng ñ i tư ng và l p trìnhhàm 2.3.3 Đ c t bài toán trong l p trình hư ng ñ i tư ng Trên c s phát bi u c a bài toán, danh sách các l p ñư c phân tích và li t kê trong mô hình l p bên dư i 21 2.3.3.1 Đ c t trong l p trình hư ng ñ i tư ng Java a L p . khả năng mô phỏng lập trình hướng ñối tượng
trong lập trình hàm.
Thực hiện mô phỏng lập trình hướng ñối tượng trong lập
trình hàm .
3. Đối tượng và phạm. MÔ PHỎNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
TRONG LẬP TRÌNH HÀM
Trong chương này, tôi nghiên cứu khả năng mô phỏng lập
trình hướng ñối tượng trong lập trình hàm;