Bài giảng Công nghệ phần mềm - Chương 8: Lập trình và ngôn ngữ lập trình - Nguyễn Thanh Bình

Lꢀp trình và ngôn  
ngꢁ lꢀp trình (8)  
Nguyꢀn Thanh Bình  
Khoa Công nghꢁꢂThôngꢂtin  
Trưꢃng ðꢄi hꢅc Bách khoa  
ðꢄi hꢅc ðà Nꢆng  
Lꢀp trình  
ꢀ
ꢀ
ꢀ
kꢂꢃnăngꢃcá nhân  
ꢁ
năng lꢄc cá nhân  
ꢁ
hiꢅu biꢆt các công cꢇ lꢀp trình  
lꢀp trình viên cꢈn  
ꢁ
nguyên tꢉc lꢀp trình  
ꢁ
kinh nghiꢊm  
lꢀp trình viên tꢋt  
ꢁ
viꢆt chương trình  
• ñúng ñꢉn  
• dꢌ hiꢅu  
• dꢌ bꢍo trì, phát triꢅn  
2
1
Ngôn ngꢁ lꢀp trình  
ꢀ
ꢀ
Có nhiꢎu phương pháp lꢀp trình khác nhau  
nhiꢎu ngôn ngꢁ lꢀp trình khác nhau  
ꢁ
ðiꢅm chung cꢏa các ngôn ngꢁ lꢀp trình  
(NNLT)  
ꢁ
ꢁ
ꢁ
dꢌ diꢌn ñꢐt  
dꢌ hiꢅu  
dꢌ thꢄc thi trên máy tính  
ꢀ
Mꢑt sꢋ tính chꢒt cꢏa NNLT  
ꢁ
kiꢅu và kiꢅm tra kiꢅu  
mô-ñun hóa  
ꢁ
3
Kiꢅu  
ꢀ
Hꢈu hꢆt các NNLT ñꢎu có khái niệm  
kiểu  
ꢁ
kiꢅu sꢋ, kiꢅu lô-gíc...  
mꢑt biꢆn có kiꢅu dꢁ liꢊu xác ñꢓnh  
ꢁ
ꢀ
ꢀ
Kiểm tra kiểu  
ꢁ
ñꢍm bꢍo mꢑt toán tꢔ/hàm chꢕ áp dꢇng  
cho nhꢁng toán tꢔ/tham sꢋ có kiꢅu  
cho phép  
4
2
Kiꢅu  
ꢀ
Ngôn ngꢁꢃñꢓnh kiꢅu (types languages)  
ꢁ
có hꢊ thꢋng kiꢅu  
ꢁ
cho phép kiꢅm tra sꢔ dꢇng kiꢅu phù hꢖp mà  
không cꢈn thꢄc thi chương trình  
• kiꢅm tra tĩnh  
ꢀ
ꢀ
Ngôn ngꢁꢃñꢓnh kiꢅu cho phép  
phát hiꢊn sꢗm mꢑt sꢋ lꢘi liên quan ñꢆn kiꢅu  
Ngôn ngꢁꢃñꢓnh kiꢅu  
C, Java, C++...  
ꢁ
ꢁ
5
ða hình  
ꢀ
Ưu ñiꢅm cꢏa hꢊ thꢋng kiꢅu và kiꢅm tra kiꢅu  
ꢁ
chꢙt chꢚ  
ꢁ
dꢌ kiꢅm tra  
ꢀ
Tuy nhiên  
hꢊ thꢋng kiꢅu phꢍi mꢎm dꢚo trong sꢔ dꢇng  
ꢁ
• ña hình  
6
3
ða hình  
ꢀ
Mꢑt sꢋ tình huꢋng ña hình  
ꢁ
Viꢆt hàm áp dꢇng cho các mꢍng có sꢋ phꢈn  
tꢔ khác nhau  
• kiꢅu mꢍng ñưꢖc kiꢅm tra khi biên dꢓch  
• sꢋ phꢈn tꢔ cꢏa mꢍng ñưꢖc kiꢅm tra khi thꢄc thi  
ꢁ
Áp dꢇng hàm cho các kiꢅu dꢁ liꢊu khác  
nhau  
• xây dꢄng nhiꢎu phiên bꢍn cꢏa hàm tương ꢛng vꢗi  
các kiꢅu khác nhau  
• hoꢙc chꢕ xây dꢄng mꢑt phiên bꢍn cꢏa hàm, xꢔ lý  
khác nhau ñưꢖc thꢄc hiꢊn khi thꢄc thi  
• template (C++), generic (Java)  
7
ða hình  
ꢀ
Mꢑt sꢋ tình huꢋng ña hình  
ꢁ
Viꢆt hàm áp dꢇng cho các mꢍng có sꢋ phꢈn tꢔ khác  
nhau  
• kiꢅu mꢍng ñưꢖc kiꢅm tra khi biên dꢓch  
• sꢋ phꢈn tꢔ cꢏa mꢍng ñưꢖc kiꢅm tra khi thꢄc thi  
ꢁ
Áp dꢇng hàm cho các kiꢅu dꢁ liꢊu khác nhau  
• xây dꢄng nhiều phiên bản của hàm tương ꢛng vꢗi các  
kiꢅu khác nhau  
• hoꢙc chꢕ xây dꢄng một phiên bản của hàm, xꢔ lý khác  
nhau ñưꢖc thꢄc hiꢊn khi thꢄc thi  
•
template (C++), generic (Java)  
• hoꢙc sꢔ dꢇng kiểu con/lớp con  
ña hình trong ngôn ngꢁ lꢀp trình hưꢗng ñꢋi tưꢖng  
•
8
4
Mô-ñun hóa  
ꢀ
ꢀ
Xuꢒt hiꢊn vào nhꢁng năm 70  
ðóng vai trò quan trꢜng ñꢅ tꢐo ra phꢈn  
mꢎm chꢒt lưꢖng  
ꢀ
Thiꢆt kꢆꢃhưꢗng mô-ñun  
ꢁ
phꢈn mꢎm = tꢀp hꢖp các mô-ñun và quan  
hꢊ giꢁa chúng  
ꢀ
Hꢈu hꢆt các NNLT ñꢎu hꢘ trꢖꢃmô-ñun hóa  
9
Mô-ñun hóa  
ꢀ
Mꢑt mô-ñun gꢝm hai phꢈn  
ꢁ
Phꢈn giao diꢊn  
• giao tiꢆp vꢗi bên ngoài mô-ñun ay mô-  
ñun khác  
ꢁ
Phꢈn thân  
• nꢑi dung cꢏa mô-ñun  
• cꢇc bꢑꢃñꢋi vꢗi mꢘi mô-ñun, che dꢒu ñꢋi  
vꢗi mô-ñun khác  
10  
5
Mô-ñun hóa  
ꢀ
Các mô-ñun chꢕꢃtraoꢃñꢞi dꢁ liꢊu qua phꢈn  
giao diꢊn  
ꢁ
không sꢔ dꢇng biꢆn toàn cꢇc  
ꢀ
Nꢆu thay ñꢞi phꢈn thân thì ít ꢍnh hưꢟng  
(hoꢙc không ꢍnh hưꢟng)ꢃñꢆn các mô-ñun  
khác  
ꢀ
ꢀ
Trong ngôn ngꢁ lꢀp trình cꢒu trúc  
ꢁ
mô-ñun = hàm  
Trong ngôn ngꢁ lꢀp trình hưꢗng ñꢋi tưꢖng  
mô-ñun = lꢗp /ꢃphươngꢃthꢛc  
ꢁ
11  
Các phương pháp lꢀp trình  
cơ bꢍn  
ꢀ
Lꢀp trình thꢏ tꢇc/cꢒu trúc (procedural  
programming)  
ꢀ
Lꢀp trình hưꢗng ñꢋi tưꢖng (object-oriented  
programming)  
ꢀ
ꢀ
Lꢀp trình hàm (functional programming)  
Lꢀp trình lô-gíc (logic programming)  
12  
6
Lꢀp trình thꢏ tꢇc  
ꢀ
ꢀ
ꢀ
ñưꢖc sꢔ dꢇng phꢞ biꢆn  
lꢀp trình có cꢒu trúc  
phù hꢖp vꢗi thiꢆt kꢆꢃhưꢗng chꢛc  
năng  
ꢀ
NNLT thꢏ tꢇc  
ꢁ
Fortran, Ada, Pascal, C...  
13  
Lꢀp trình hưꢗng ñꢋi tưꢖng  
ꢀ
khái niꢊm cơ bꢍn  
ꢁ
ꢁ
ꢁ
ꢁ
ñꢋi tưꢖng, lꢗp  
ñóng gói  
thꢠa kꢆ  
ña hình  
ꢀ
ꢀ
xu hưꢗng phát triꢅn cꢏa các NNLT hiꢊn ñꢐi  
NNLT hưꢗng ñꢋi tưꢖng  
ꢁ
Smalltalk, C++, Java, Delphi...  
14  
7
Lꢀp trình hàm  
ꢀ
tính toán các biꢅu thꢛc  
ꢁ
hàm tính toán dꢄa trên các giá trꢓ cꢏa tham  
sꢋ  
ꢀ
ꢀ
thao tác trên danh sách  
áp dꢇng  
ꢁ
lĩnh vꢄc tính toán  
trí tuꢊ nhân tꢐo  
ꢁ
ꢀ
NNLT hàm  
LISP, Scheme...  
ꢁ
15  
Lꢀp trình lô-gíc  
ꢀ
thꢄc hiꢊn các biꢅu thꢛc lô-gíc  
ꢁ
khái niꢊm hꢖp giꢍi (resolution)  
• tìm kiꢆm giá trꢓ cꢏa các biꢆn sao cho biꢅu thꢛc lô-  
gíc có giá trꢓꢃñúng  
ꢀ
ꢛng dꢇng  
ꢁ
xây dꢄng hꢊ chuyên gia  
xꢔ lý ngôn ngꢁ tꢄ nhiên  
ꢁ
ꢀ
NNLT lô-gíc  
Prolog  
ꢁ
16  
8
Chꢜn NNLT  
ꢀ
quyꢆt ñꢓnh quan trꢜng trong phát triꢅn  
phꢈn mꢎm  
ꢁ
ꢁ
ꢁ
giꢍm chi phí  
mã nguꢝn chꢒt lưꢖng  
dꢌ bꢍo trì, phát triꢅn  
17  
Chꢜn NNLT  
ꢀ
dꢄa vào nhiꢎu yꢆu tꢋ (1)  
ꢁ
ꢁ
ꢁ
ꢁ
yêu cꢈu cꢏa khách hàng  
• khách hàng tꢄ bꢍo trì sꢍn phꢡm  
chương trình dꢓch  
• cꢈn cóꢃchươngꢃtrình dꢓch có chꢒt lưꢖng tꢋt  
công cꢇ hꢘ trꢖ  
• dꢌ dàng quá trình lꢀp trình, bꢍo trì  
kinh nghiꢊm cꢏa lꢀp trình viên  
• chꢜn NNLT mà lꢀp trình làm chꢏ  
18  
9
Chꢜn NNLT  
ꢀ
dꢄa vào nhiꢎu yꢆu tꢋ (2)  
ꢁ
yêu cꢈu tính khꢍ chuyꢅn (portability)  
• thꢄc hiꢊn trên nhiꢎu máy tính/plaform khác nhau  
ꢁ
lĩnh vꢄc ꢛng dꢇng  
• hꢊ thꢋng nhúng: C, Assembly...  
• hꢊ thꢋng quꢍn lý: .NET, VB, C++...  
• hꢊ chuyên gia: Prolog  
• mꢐng: Java, .NET...  
• website: PHP, ASP...  
• không tꢝn tꢐi ngôn ngꢁꢃñaꢃnăngꢃchoꢃmꢜi ꢛng  
dꢇng  
19  
Phong cách lꢀp trình  
ꢀ
Cꢈn cóꢃchươngꢃtrình dꢌ hiꢅu  
ꢁ
phꢇ thuꢑc vào ñꢙc ñiꢅm NNLT  
phong cách cꢏa ngưꢢi lꢀp trình  
ꢁ
ꢀ
Phong cách lꢀp trình không do lꢀp trình viên tꢄꢃñꢙt ra  
mà do tꢞ chꢛc/doanh nghiꢊp/dꢄ án ñꢙt ra  
ꢁ
các luꢀt lꢀp trình  
ꢁ
các quy ưꢗc lꢀp trình  
ꢀ
Mꢇc ñích  
ꢁ
mã nguꢝn dꢌ hiꢅu, dꢌ kiꢅm thꢔ, dꢌ bꢍo trì  
ít lꢘi  
ꢁ
20  
10  
Phong cách lꢀp trình  
ꢀ
Mꢑt sꢋ nguyên tꢉc lꢀp trình  
ꢁ
ꢁ
ꢁ
ꢁ
ñꢙt tên  
• có ý nghĩa, gꢖi nhꢗ  
trình bày  
• rꢣ ràng, dꢌ hiꢅu  
chú thích  
• ñꢈy ñꢏ, dꢌꢃñꢜc  
hꢐn chꢆ sꢔ dꢇng cꢒu trúc khó hiꢅu  
• break, continue, goto...  
ꢁ
ví dꢇ  
• quy ưꢗc lꢀp trình C++  
21  
11  
pdf 11 trang baolam 18200 Free
Bạn đang xem tài liệu "Bài giảng Công nghệ phần mềm - Chương 8: Lập trình và ngôn ngữ lập trình - Nguyễn Thanh Bình", để 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:

  • pdfbai_giang_cong_nghe_phan_mem_chuong_8_lap_trinh_va_ngon_ngu.pdf