KỸ THUẬT LẬP TRÌNH 3102015 1 TỔNG QUAN VỀ KỸ THUẬT LẬP TRÌNH Mục tiêu Cung cấp kiến thức tổng thể và cơ bản về các phương pháp, kỹ thuật lập trình; quy trình xây dựng chương trình; ngôn ngữ lập trìn. Nói về tất cả những điều cơ bản nhất, những cú pháp câu lệnh hàm phương thức của python trong kỹ thuật lập trình ,
Trang 1TỔNG QUAN VỀ KỸ THUẬT LẬP
TRÌNH Mục tiêu: Cung cấp kiến thức tổng thể và cơ
bản về các phương pháp, kỹ thuật lập trình;
quy trình xây dựng chương trình; ngôn ngữ lập
trình; môi trường lập trình; quy ước lập trình B
Nội dung
• Tổng quan
• Các nguyên tắc cơ bản của lập trình
• Vấn đề tối ưu hóa chương trình
• Phương pháp lập trình
• Các mức ngôn ngữ lập trình
• Môi trường và công cụ lập trình
• Tổng kết
2
Tổng quan
• Chương trình
– Chuỗi lệnh + dữ liệu
– Cấu trúc dữ liệu + giải thuật được bao hàm trong chuỗi
lệnh
• Chương trình là một thể hiện cụ thể của một giải thuật trên một
ngôn ngữ lập trình nào đó cùng với những mô tả về cấu trúc dữ
liệu mô tả đầu vào, đầu ra của bài toán
– Thực hiện một chức năng, nhiệm vụ hay giải quyết một
vấn đề cụ thể
• Phần mềm
– Chuỗi lệnh + dữ liệu + tài liệu liên quan
– Phần mềm thực hiện chức năng bằng cách gửi các câu lệnh
trực tiếp đến phần cứng hoặc yêu cầu thực hiện bởi một
phần mềm khác
Phần mềm = chương trình + tài liệu
3
Tổng quan
• Lập trình
– Là quá trình cài đặt các thuật toán có liên quan với nhau bằng một hoặc nhiều ngôn ngữ lập trình để tạo
ra một chương trình
• Lập trình phần mềm
– Là lập trình tạo ra một phần mềm – Phần mềm được thực thi bởi CPU
• Lập trình phần cứng
– Là quá trình cài đặt thuật toán theo một mạch phần cứng
– Thiết kế, chế tạo mạch phần cứng để giải quyết bài toán
4
Tổng quan
• Kỹ thuật lập trình (phần mềm)
– Là kỹ thuật thực thi một giải pháp phần mềm (cấu
trúc dữ liệu + giải thuật) dựa trên nền tảng một
phương pháp luận (methodology) và một hoặc nhiều
ngôn ngữ lập trình phù hợp với yêu cầu đặc thù của
ứng dụng
• Kỹ thuật lập trình
= Tư tưởng thiết kế + Kỹ thuật mã hóa
= Cấu trúc dữ liệu + Giải thuật + Ngôn ngữ lập
trình
Tổng quan
• Phương pháp: là cách thức tiến hành công việc để
có hiệu quả cao
• Phương pháp luận: là một tập các phương pháp được sử dụng hoặc một bộ môn khoa học nghiên cứu các phương pháp đó
• Trong phát triển phần mềm, phương pháp luận được sử dụng trong:
– Phân tích – Thiết kế – Lập trình – Kiểm thử, …
Trang 2Tổng quan
• Thế nào là lập trình tốt
– Đúng/chính xác
• Thỏa mãn đúng các nhiệm vụ đặt ra
– Ổn định và bền vững
• Chạy ổn định
• Ít lỗi
• Khả năng chịu lỗi cao (mức độ lỗi nhẹ có thể chấp nhận)
– Khả năng chỉnh sửa cao
• Dễ chỉnh sửa
• Dễ thay đổi, nâng cấp
– Khả năng tái sử dụng
7
Tổng quan
• Thế nào là lập trình tốt
– Độ tương thích: khả năng tương thích với các môi trường khác nhau
– Hiệu suất
• Nhỏ, gọn, sử dụng ít bộ nhớ
• Tốc độ nhanh, sử dụng ít thời gian CPU – Hiệu quả
• Thời gian lập trình ngắn
• Khả năng bảo trì dễ dàng
• Giá trị tái sử dụng lớn
• Đơn giản, thân thiện, nhiều tiện ích
8
Tổng quan
• Làm sao để lập trình tốt
– Học cách tư duy và phương pháp lập trình
• Tư duy toán học, tư duy logic, tư duy có cấu trúc, tư duy
hướng đối tượng, tư duy tổng quát
• Tìm hiểu về cấu trúc dữ liệu và giải thuật
– Hiểu sâu về máy tính
• Tương tác giữa CPU, chương trình và bộ nhớ
• Cơ chế quản lý bộ nhớ
– Nắm vững ngôn ngữ lập trình
• Biết rõ các khả năng và hạn chế của ngôn ngữ
• Cần học sâu, bản chất một ngôn ngữ lập trình
– ƒ Tự rèn luyện trên máy tính
• Hiểu sâu được các điểm nêu trên
• Rèn luyện kỹ năng lập trình
• Thúc đẩy sáng tạo
9
Tổng quan
• Ngôn ngữ lập trình – Là ngôn ngữ dùng để viết chương trình – Bao gồm: bộ ký tự, từ tố (tên, từ khóa), cú pháp, ngữ nghĩa
• Công cụ lập trình – Công cụ soạn thảo, chương trình dịch, công cụ gỡ lỗi, công cụ mô phỏng
• Môi trường phát triển tích hợp (IDE) – Bộ phần mềm tích hợp các công cụ lập trình
10
Tổng quan
• Chương trình dịch
– Chuyển chương trình nguồn sang chương trình
đích
• Trình biên dịch
– Dịch toàn bộ chương trình nguồn thành chương
trình đích rồi sau đó mới thực hiện
• Trình thông dịch
– Dịch và thực hiện từng câu lệnh
– Thường không tạo ra chương trình đích
11
Tổng quan
• Quá trình xây dựng chương trình để giải bài toán trên máy tính
1 Mô tả bài toán
2 Xác định, xây dựng cấu trúc dữ liệu
3 Xây dựng thuật toán
4 Soạn thảo, kiểm tra và hoàn thiện chương trình
• Bài toán tổng quát
Input => Output
– Input: là giả thiết, điều kiện ban đầu, thông tin đã cho – Output: là kết quả, là mục tiêu cần đạt hoặc cái phải tìm
– => là thuật toán: suy luận, giải pháp được biểu diễn bằng
chuỗi các thao tác cần thực hiện để có được Output từ Input
12
Trang 3Các nguyên tắc cơ bản của lập trình
• Một thuật toán có các tính chất sau
– Tính chính xác: để đảm bảo kết quả tính toán hay các thao
tác mà máy tính thực hiện được là chính xác
– Tính rõ ràng: Thuật toán phải được thể hiện bằng các câu
lệnh minh bạch; các câu lệnh được sắp xếp theo thứ tự
nhất định
– Tính khách quan: Một thuật toán dù được viết bởi nhiều
người trên nhiều máy tính vẫn phải cho kết quả như nhau
– Tính phổ dụng: Thuật toán không chỉ áp dụng cho một bài
toán nhất định mà có thể áp dụng cho một lớp các bài toán
có đầu vào tương tự nhau
– Tính kết thúc: Thuật toán phải gồm một số hữu hạn các
bước tính toán
13
Vấn đề tối ưu hóa chương trình
• Tối ưu hiệu năng – Thường tập trung vào tốc độ thực thi
• Tối ưu bộ nhớ – Giảm thiểu kích thước chương trình
• Tối ưu điện năng – Giảm thiểu điện năng tiêu thụ của chương trình
• Tối ưu đa mục tiêu – Cân bằng giữa các mục tiêu tối ưu
14
Phương pháp lập trình
• Lập trình tuần tự
– Phương pháp cổ ₫iển nhất, bằng cách liệt kê các lệnh
kế tiếp, mức trừu tượng thấp
– ƒ Kiểm soát dòng mạch thực hiện chương trình bằng
các lệnh rẽ nhánh, lệnh nhảy, lệnh gọi chương t rình
con (subroutines)
– ƒ Ví dụ:
• Ngôn ngữ máy,
• ASSEMBLY
• IL (Instruction List), STL (Statement List)
• LD, LAD (Ladder Diagram)
15
Phương pháp lập trình
• Lập trình cấu trúc
– Cấu trúc hóa dữ liệu (xây dựng kiểu dữ liệu) và cấu trúc hóa chương trình để tránh các lệnh nhảy
– ƒ Phân tích và thiết kế theo cách từ trên xuống (top-down)
– ƒ Thực hiện từ dưới lên (bottom-up) – Yêu cầu của chương trình có cấu trúc: chỉ sử dụng các – Cấu trúc điều khiển tuần tự, lựa chọn (if else), lặp (while)
– ƒ Ví dụ:
• PASCAL, ALGO, FORTRAN, C,
• SFC (Sequential Funtion Charts)
• ST (Structured Text)
16
Phương pháp lập trình
• Lập trình mô-đun (Module)
– Là một dạng cải tiến của lập trình có cấu trúc
– Chương trình được cấu trúc nghiêm ngặt hơn, dùng
đơn vị cấu trúc là mô-đun
– ƒ Mô-đun:
• Là một đơn vị cấu trúc độc lập, được chuẩn hóa để tạo lập
một hệ thống
• Mỗi mô-đun gồm phần giao diện (công khai) và phần thực
thi (che giấu)
• Các mô-đun giao tiếp với nhau thông qua các giao diện được
đặc tả chính xác
– Vídụ:
• Modula-2
Phương pháp lập trình
• Lập trình hướng đối tượng (OOP)
– Xây dựng chương trình ứng dụng theo quan điểm dựa trên các cấu trúc dữliệu trừu tượng (lớp), các thể hiện của các cấu trúc ₫ó (₫ối tượng) và quan hệ giữa chúng (quan hệ lớp, quan hệ ₫ối tượng)
– ƒ Nguyên lý cơ bản:
• Trừu tượng (abstraction)
• Đóng gói dữliệu (data encapsulation)
• Thừa kế (inheritance)
• Đa hình (polymorphism)
– ƒ Ví dụ:
• C++ (lai, cả OOP và cấu trúc), C#
• Java,
• ADA
Trang 4Phương pháp lập trình
• Lập trình tổng quát (generic programming)
– Một tư duy lập trình mở, trên quan điểm tổng
quát hóa tất cả những gì có thể nhằm đưa ra một
khuôn mẫu giải pháp cho nhiều bài toán
– ƒ Ưu điểm:
• Giảm tối đa lượng mã nguồn
• Tăng khả năng tái sử dụng
• Tính khả chuyển cao
– Các ngôn ngữ hỗ trợ:
• C, C++
• Java
• C#
19
Phương pháp lập trình
• Lập trình thành phần (Component Based Programming)
– Phương pháp xây dựng phần mềm dựa trên các thành phần có sẵn, hoặc tạo ra các thành phần đó
– ƒ Tiến hóa từ lập trình hướng đối tượng – ƒ Hầu hết các ứng dụng Windows và ứng dụng Internet ngày nay được xây dựng theo phương pháp luận này – ƒ Các ngôn hỗ trợ
• C/C++,C#
• Delphi, Visual Basic
• Script, HMTL, XML,
20
Phương pháp lập trình
• Các phương pháp lập trình khác
– Lập trình phân tán
• Tạo ra các ứng dụng phân tán trên các node tính toán
khác nhau
• Có nhiều kỹ thuật thực hiện theo các mức trừu tượng
khác nhau
– Lập trình thời gian thực
• Xây dựng phần mềm đáp ứng tính năng thời gian thực
của hệ thống
– Lập trình lôgic (Prolog)
21
Các loại ngôn ngữ lập trình
• Ba loại: ngôn ngữ máy, hợp ngữ và ngôn ngữ cấp cao
• Ngôn ngữ máy (machine language):
– Là các chỉ thị dưới dạng nhị phân, can thiệp trực tiếp vào trong các mạch điện tử
– Thực hiện ngay, không cần qua bước trung gian nào
• Hợp ngữ (assembly language)
• Ngôn ngữ cấp cao (High level language)
22
Các bước phát triển chương trình
23
Môi trường và công cụ phát triển
• IDE (Integrated Development Environment)
– Hỗ trợ toàn bộ các bước phát triển chương trình – Vídụ: MS Visual C++, Borland C++ (Builder), Keil-C
• ƒ Các công cụ cần thiết trong môi trường
– Trình soạn thảo(Editor) – Trình biên dịch (Compiler) – Trình liên kết (Linker) – Trình nạp (Loader) – Trình gỡ rối (Debugger) – Trình quản lý dự án (Project Manager)
24
Trang 5Tổng kết
• Các khái niệm, vấn đề cốt yếu về
– Phần mềm, chương trình, lập trình, kỹ thuật lập
trình, phương pháp, biên dịch, thông dịch
– Lập trình tốt, làm sao để lập trình tốt
• Các nguyên tắc cơ bản trong lập trình
• Các bước phát triển chương trình
• Các phương pháp lập trình phổ biến
• Môi trường và công cụ
25