Bài giảng Kỹ thuật lập trình - Chương 1: Tổng quan - Vũ Đức Vượng

Kỹ Thuật lập trình  
Programming technique  
Vũ Đức Vượng  
SE-FIT-HUT  
Programming  
Languages –  
classifications and  
Program  
Development  
Nội dung  
Develop Web pages : HTML, scripting languages,  
DHTML, XML, WML, và các phần mềm tạo  
trang web  
Programming languages và  
Phân loại NNLT  
Multimedia  
authoring programs  
procedural programming languages  
visual programming languages  
6 bước của chu trình phát triển phần mềm  
Six steps in the program development cycle  
Sự khác biệt giữa structured design và  
object-oriented programming languages  
nonprocedural languages and tools  
object-oriented design  
Những cấu trúc cơ sở dùng thiết kế các giải pháp  
cho chương trình  
Next  
Chương trình máy tính và ngôn ngữ lập trình  
Computer Programs and Programming Languages  
Computer program?  
➢ Tập hợp các lệnh chỉ dẫn cho máy tính  
thực hiện nhiệm vụ  
▪ Programming language—Dùng để viết các lệnh, chỉ thị  
Next  
programming language - NNLT  
Một NNLT là 1 hệ thống các ký hiệu dùng để liên lạc , trao đổi 1 nhiệm vụ/  
thuật toán với máy tính, làm cho nhiệm vụ được thực thi. Nhiệm vụ được  
thực thi gọi là một computation, nó tuân thủ một độ chính xác và những  
quy tắc nhất quán.  
Với mỗi ngôn ngữ lập trình, ta cần nắm bắt, thấu hiểu những gì ?: Có 3  
thành phần căn bản của bất cứ 1 NNLT nào.  
Mô hình ngôn ngữ-Language paradigm là những nguyên tắc chung cơ bản,  
dùng bởi LTV để xd chương trình.  
Cú pháp - Syntax của ngôn ngữ là cách để xác định cái gì là hợp lệ trong cấu  
trúc các câu của ngôn ngữ; Nắm được cú pháp là cách để đọc và tạo ra  
các câu trong các ngôn ngữ tự nhiên, như tiếng Việt, tiếng Anh. Tuy  
nhiên điều đó không có nghĩa là nó giúp chúng ta hiểu hết ý nghĩa của  
câu văn.  
Ngữ nghĩa – semantics của 1 program trong ngôn ngữ ấy. Rõ ràng, nếu  
không có semantics, 1 NNLT sẽ chỉ là 1 mớ các câu văn vô nghĩa; như  
vậy semantics là 1 thành phần không thể thiếu của 1 ngôn ngữ.  
Có rất nhiều NNLT, khoảng 1000 ngôn ngữ ( 60’s đã có hơn 700) – phần lớn  
là các ngôn ngữ hàn lâm, có mục đích riêng hay phát triển bởi 1 tổ chức  
để phục vụ cho bản thân họ.  
Cont…  
Về cơ bản, chỉ có 4 mô hình NNLT chính:  
Imperative (Procedural) Paradigm (Fortran, Pascal, C, Ada, ....)  
Object-Oriented Paradigm (SmallTalk, Java, C++)  
Logic Paradigm (Prolog)  
Functional Paradigm (Lisp, ML, Haskell)  
Những tính chất cần có với các chương trình phần mềm là :  
• Tính mềm dẻo scalability / Khả năng chỉnh sửa modifiability  
• Khả năng tích hợp integrability / Khả năng tái sử dụng reusability  
• Tính chuyển đổi, linh hoạt, độc lập phần cứng -portability  
• Hiệu năng cao -performance  
• Độ tin cậy - reliability  
• Dễ xây dựng  
• Rõ ràng, dễ hiểu  
• Ngắn gọn, xúc tích  
HOẠT ĐỘNG CỦA 1 CHƯƠNG TRÌNH  
Computer program được nạp vào primary memory  
như là 1 tập các lệnh bằng ngôn ngữ máy, tức là  
một dãy tuần tự các số nhị phân - binary digits.  
Tại bất cứ một thời điểm nào, computer sẽ ở một  
trạng thái state nào đó.  
Đặc điểm cơ bản của trạng thái là con trỏ lệnh  
instruction pointer trỏ tới lệnh mã máy tiếp theo để  
thực hiện.  
Thứ tự thực hiện các nhóm lệnh mã máy được gọi  
là luồng điều khiển flow of control.  
MACHINE CODE  
Máy tính chỉ nhận các tín hiệu điện tử - có, không có -tương  
ứng với các dòng bits.  
1 program ở dạng đó gọi là machine code.  
Ban đầu chúng ta phải dùng machine code để viết CT:  
Quá phức tạp, giải quyết các bài toán lớn là không tưởng  
23fc 0000 0001 0000 0040  
0cb9 0000 000a 0000 0040  
6e0c  
06b9 0000 0001 0000 0040  
60e8  
ASSEMBLY LANGUAGE  
NN Assembly là bước đầu  
tiên của việc xây dựng cơ  
chế viết chương trình tiện  
lợi hơn – thông qua các  
ký hiệu, từ khóa và cả mã  
máy.  
movl #0x1,n  
compare:  
cmpl #oxa,n  
cgt end_of_loop  
acddl #0x1,n  
Tất nhiên, để chạy được các  
chương trình này thì phải  
dịch (assembled) thành  
machine code.  
bra compare  
end_of_loop:  
Vẫn còn phức tạp, cải thiện  
không đáng kể  
HIGH LEVEL LANGUAGE  
Thay vì dựa trên phần cứng (machine-oriented) cần  
tìm cơ chế dựa trên vấn đề (problem-oriented) để  
tạo chương trình.  
Chính vì thế high(er) level languages – là các ngôn  
ngữ lập trình gần với ngôn ngữ con người hơn –  
dùng các từ khóa giống tiếng anh – đã được xây  
dựng như : Algol, Fortran, Pascal, Basic, Ada, C, …  
PHÂN LOẠI THEO THỜI GIAN  
1940s : Machine code  
1950s Khai thác sức mạnh của MT: Assembler code,  
Autocodes, first version of Fortran  
1960s Tăng khả năng tính toán: Cobol, Lisp, Algol 60, Basic,  
PL/1 --- nhưng vẫn dùng phong cách lập trình cơ bản của  
assembly language.  
1970s Bắt đầu cuộc khủng hoảng phần mềm “software  
crisis”:  
1. Giảm sự phụ thuộc vào máy – Tính chuyển đổi.  
2. Tăng sự đúng đắn của CT -Structured Programming, modular  
programming và information hiding.  
Ví dụ : Pascal, Algol 68 and C.  
Continue …  
1980s Giảm sự phức tạp – object orientation, functional  
programming.  
1990s Khai thác phần cứng song song và phân tán (parallel  
và distributed) làm cho chương trình chạy nhanh hơn, kết  
quả là hàng loạt ngôn ngữ mở rộng khả năng lập trình  
parallel cũng như các NNLT chuyên parallel như occam  
được xd.  
2000s Genetic programming languages, DNA computing,  
bio-computing?  
Trong tương lai : Ngôn ngữ lt lượng tử : Quantium ?  
SOFTWARE CRISIS  
Khái niệm software crisis bao gồm hàng loạt vấn đề  
nảy sinh trong việc phát triển phần mềm trong  
hững năm 1960s khi muốn xd những hệ thống phần  
mềm lớn trên cơ sở các kỹ thuật phát triễn thời đó.  
Kết quả:  
➢ 1.Thời gian và giá thành tăng vọt tới mức không thể  
chấp nhận nổi.  
➢ 2.Năng xuất của các LTV không đáp ứng yêu cầu.  
➢ 3.Chất lượng phần mềm bị giảm, thấp.  
Để giải quyết các vấn đề kể trên , chuyên ngành  
software engineering ra đời.  
CÁC THẾ HỆ NNLT  
LANGUAGE GENERATIONS  
Generation  
Classification  
1st Machine languages  
2nd Assembly languages  
3rd Procedural languages  
4th Application languages (4GLs)  
5th AI techniques, inference languages  
6th Neural networks (?), others….  
Computer Programs and Programming Languages  
Low-level languages và high-level languages?  
Low-level  
language  
High-level  
language  
Machine-independent  
Thường không phụ thuộc phần  
cứng, có thể chạy trên nhiều loại  
máy tính khác nhau  
Machine-dependent  
Phụ thuộc phần cứng, chỉ chạy trên  
một loại máy tính  
Machine và assembly languages là  
ngôn ngữ bậc thấp low-level  
Next  
p. 664  
PHÂN LOẠI THEO MỨC ĐỘ TRỪU TƯỢNG  
Level  
Instructions Memory handling  
Low level Dạng bits – giống Truy cập và cấp phát  
các lệnh machine trực tiếp bộ nhớ  
High level Dùng các biểu thức Truy cập và cấp phát  
và các dòng điều bộ nhớ qua các lệnh,  
languages  
languages  
khiển xác định  
Very high Hoàn toàn trừu  
level tượng, độc lập  
languages phần cứng  
toán tử - operators  
Che dấu hoàn toàn việc  
truy cập và tự động  
cấp phát bộ nhớ  
Next  
DECLARATIVE và NON-DECLARATIVE  
PROGRAMMING  
Các ngôn ngữ có thể chia thành 2 nhóm : “Cái gì cần  
lưu trữ” và “Lưu trữ như thế nào”.  
Nhóm 1 gọi là declarative (tường thuật -chính là  
functional và logic languages).  
Nhóm 2 gọi là non-declarative hay procedural (tức là  
các ngôn ngữ mệnh lệnh).  
Next  
p. 666 Fig. 13-3  
Procedural Languages – Ngôn ngữ thủ tục  
Procedural language?  
Lập trình viên viết các chỉ thị  
Sử dụng hàng loạt các từ  
hướng dẫn cho máy tính cai  
giống tiếng anh để viết các  
gì cần làm và làm như thế  
chỉ thị - instructions  
nào  
Các ngôn ngữ thông dụng là  
Còn gọi là thirgeneration  
BASIC, COBOL, PASCAL,  
language (3GL)  
C,C++ và JAVA  
Click to view animation  
Next  
p. 666  
Procedural Languages  
Trình dịch - Compile
➢ Là chương  
trình thực  
hiện biên dịch  
toàn bộ  
chương trình  
nguồn thành  
mã máy trước  
khi thực hiện  
Procedural Languages  
Thông dịch - Interpreter?  
➢ Là chương trình  
dịch và thực hiện  
từng dòng lệnh của  
chương trình cùng  
lúc  
➢ Không tạo ra object  
program  
Next  
p. 667 Fig. 13-5  
Tải về để xem bản đầy đủ
ppt 68 trang Thùy Anh 19860 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kỹ thuật lập trình - Chương 1: Tổng quan - Vũ Đức Vượng", để 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:

  • pptbai_giang_ky_thuat_lap_trinh_chuong_1_tong_quan_vu_duc_vuong.ppt