[r]
Trang 1L ậ p trình và ngôn
Khoa Công nghệ Thông tin
Trường ðại học Bách khoa
ðại học ðà Nẵng
2
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ể
• d b o trì, phát triể
Trang 2Ngô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
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
ñả m b ả o m ộ t toán t ử /hàm ch ỉ áp d ụ ng
Trang 3Ki ể 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++
6
ð 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
Trang 4ð 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)
ð 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
Trang 5Mô- ñ 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
10
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
Trang 6Ch ọ 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
Phong cách l ậ p trình
Cần có chương trình dễhiể
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
Trang 7Phong 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ể
chú thích
• ñầy ñủ, dễ ñọc
h n chếsửd ng cấu trúc khó hiể
• break, continue, goto
ví dụ
• quy ước lập trình C++