Tải bản đầy đủ (.ppt) (55 trang)

Chương 1 Lý thuyết ngôn ngữ lập trình

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (241.23 KB, 55 trang )

Trường Cao đẳng CNTT HN Việt – Hàn Khoa Khoa học máy tính
Bài giảng môn Lý thuyết ngôn ngữ lập trình
Bài giảng
Bài giảng
LÝ THUYẾT NGÔN NGỮ LẬP TRÌNH
LÝ THUYẾT NGÔN NGỮ LẬP TRÌNH


2/55
Trường Cao đẳng CNTT HN Việt – Hàn Khoa Khoa học máy tính
Mục tiêu môn học
Mục tiêu môn học

Lý thuyết: Sinh viên nắm được các kiến thức cơ bản về
ngôn ngữ lập trình, tổng quan về các loại ngôn ngữ lập
trình

Kỹ năng: Sinh viên có thể viết các chương trình đơn
giản bằng ngôn ngữ lập trình C
Sinh viên có các kiến thức cơ bản làm nền tảng
để tiếp thu, nghiên cứu các ngôn ngữ lập trình cụ
thể sau này
3/55
Trường Cao đẳng CNTT HN Việt – Hàn Khoa Khoa học máy tính
Nội dung
Nội dung

Các khái niệm về ngôn ngữ lập trình

Tiêu chuẩn đánh giá và phân loại ngôn ngữ lập trình


Giới thiệu sơ lược một số ngôn ngữ lập trình thông dụng

Giới thiệu tổng quan các giai đoạn của một quá trình biên dịch

Các khái niệm về thuật toán và lưu đồ thuật toán

Các thành phần cơ bản của ngôn ngữ lập trình C

Các vấn đề chính của ngôn ngữ lập trình:

Định nghĩa, đặc tả và cài đặt các kiểu dữ liệu

Biểu thức và phép gán

Các lệnh có cấu trúc, ngoại lệ và xử lý ngoại lệ

Chương trình con
4/55
Trường Cao đẳng CNTT HN Việt – Hàn Khoa Khoa học máy tính
Tài liệu học tập
Tài liệu học tập

Giáo trình, bài giảng

Giáo trình Lý thuyết ngôn ngữ lập trình (lưu hành nội bộ)

Bài giảng môn học Lý thuyết ngôn ngữ lập trình

Tài liệu tham khảo


Robert W.Sebesta, Concept of Programming Laguages,
Seventh Edition; Pearson International Edition, 2006
5/55
Trường Cao đẳng CNTT HN Việt – Hàn Khoa Khoa học máy tính
Nội dung môn học
Nội dung môn học
Chương 1 Mở đầu
Chương 2 Tổng quan về trình biên dịch
Chương 3 Thuật toán và lưu đồ thuật toán
Chương 4
Các thành phần cơ bản của ngôn ngữ lập trình C
Chương 5
Kiểu dữ liệu
Chương 6
Biểu thức và phép gán
Chương 7
Các lệnh có cấu trúc
Chương 8 Chương trình con

Trường Cao đẳng CNTT HN Việt – Hàn Khoa Khoa học máy tính
Bài giảng môn Lý thuyết ngôn ngữ lập trình
Chương 1
Chương 1
MỞ ĐẦU
MỞ ĐẦU
7/55
Trường Cao đẳng CNTT HN Việt – Hàn Khoa Khoa học máy tính
Nội dung Chương 1
Nội dung Chương 1
1.1. Lập trình máy tính

1.1.1. Khái niệm
1.1.2. Các lĩnh vực ứng dụng
1.2. Ngôn ngữ lập trình
1.2.1. Khái niệm
1.2.2. Vai trò và lợi ích của việc nghiên cứu ngôn ngữ lập trình
1.2.3. Tiêu chuẩn đánh giá ngôn ngữ lập trình
1.2.4. Phân loại
1.2.5. Môi trường lập trình
1.3. Giới thiệu một số ngôn ngữ lập trình thông dụng
8/55
Trường Cao đẳng CNTT HN Việt – Hàn Khoa Khoa học máy tính
1.1
1.1
Lập trình máy tính
Lập trình máy tính

Khái niệm

Lập trình máy tính là một cách nghĩ về các vấn đề

Biên dịch thành những chỉ thị để máy tính thực thi

Sản phẩm là các chương trình

Chương trình

Một chương trình trong tin học là một tập hợp riêng biệt các
hoạt động có thứ tự cho một máy tính thực hiện

Chương trình bao gồm một chuỗi các chỉ thị lần lượt mà máy

tính phải tuân theo

Máy tính nhận một chỉ thị và thực thi, rồi nhận chỉ thị tiếp theo
9/55
Trường Cao đẳng CNTT HN Việt – Hàn Khoa Khoa học máy tính
1.1 Lập trình máy tính (tt)
1.1 Lập trình máy tính (tt)

Các lĩnh vực ứng dụng

Đa dạng: từ điều khiển các thiết bị năng lượng hạt nhân đến
cung cấp trò chơi trên máy điện thoại di động

Theo Robert W.Sebesta, có thể chia thành các lĩnh vực ứng
dụng:

Khoa học

Kinh doanh

Trí tuệ nhân tạo

Lập trình hệ thống

Phần mềm web
10/55
Trường Cao đẳng CNTT HN Việt – Hàn Khoa Khoa học máy tính
1.2 Ngôn ngữ lập
trình


Khái niệm

Máy tính gồm

Phần cứng: các thiết bị điện tử

Phần mềm: các chương trình được tạo ra bằng ngôn ngữ lập trình

Ngôn ngữ lập trình (NNLT) là ngôn ngữ dùng để viết các
chương trình cho máy tính

Là một hệ thống được ký hiệu hóa để mô tả những tính toán
(qua máy tính) trong một dạng mà cả con người và máy đều
có thể đọc và hiểu được

Tính chất

Có từ vựng

Có cú pháp và ngữ nghĩa
11/55
Trường Cao đẳng CNTT HN Việt – Hàn Khoa Khoa học máy tính
1.2 Ngôn ngữ lập trình (tt)

Hai điều kiện cơ bản:

Dễ hiểu và dễ sử dụng đối với người lập trình

Mô tả một cách đầy đủ và rõ ràng các tiến trình


Lập trình

Thao tác nhằm kiến tạo nên các chương trình máy tính thông
qua các ngôn ngữ lập trình

Còn gọi là quá trình mã hoá thông tin tự nhiên thành ngôn
ngữ máy

Quá trình này còn được gọi là là "viết mã“
12/55
Trường Cao đẳng CNTT HN Việt – Hàn Khoa Khoa học máy tính
1.2 Ngôn ngữ lập trình (tt)

Mã nguồn của chương trình:

Những chỉ thị góp phần tạo nên chương trình được gọi là mã
nguồn của chương trình

Mỗi NNLT cũng chính là một chương trình, được dùng để tạo
nên các chương trình khác

Biên dịch

Thao tác chuyển từ mã nguồn thành chuỗi các chỉ thị máy
tính

Có hai loại: Phần mềm thông dịch và phần mềm biên dịch
13/55
Trường Cao đẳng CNTT HN Việt – Hàn Khoa Khoa học máy tính
1.2 Ngôn ngữ lập trình (tt)


Phần mềm thông dịch

Là một chương trình phần mềm

Đọc hiểu mã nguồn của một ngôn ngữ ban đầu

Ra lệnh cho máy tính tiến hành các tính toán dựa theo cú
pháp của ngôn ngữ này

Phần mềm biên dịch

Là một chương trình phần mềm

Đọc hiểu mã nguồn của một ngôn ngữ ban đầu

Chuyển dịch mã nguồn này sang dạng mã mới thuộc về
ngôn ngữ cấp thấp hơn
14/55
Trường Cao đẳng CNTT HN Việt – Hàn Khoa Khoa học máy tính
1.2 Ngôn ngữ lập trình (tt)

Ngôn ngữ cấp thấp nhất (ngôn ngữ máy)

Chuỗi các chỉ thị máy tính có thể được thực hiện trực tiếp bởi
chính máy tính

Các chỉ thị được viết dưới dạng mã nhị phân (0 hoặc 1)

Lời chú thích


Mã của chương trình nguồn thường gây khó khăn cho người
đọc

Nên dùng các chú thích trong lúc lập trình

Giúp người khác đọc và hiểu được các mã nguồn
15/55
Trường Cao đẳng CNTT HN Việt – Hàn Khoa Khoa học máy tính
1.2 Ngôn ngữ lập trình (tt)

Các giai đoạn xây dựng phần mềm (công nghệ phần
mềm):

Xác định

Hiểu rõ các yêu cầu của khách hàng

Kết quả là mô hình thế giới thực được phản ánh thông qua một tài liệu
đặc tả yêu cầu

Phân tích

Xác định chính xác hệ thống sẽ làm những gì

Kết quả là một tài liệu đặc tả chức năng

Thiết kế

Xác định chính xác hệ thống sẽ làm việc như thế nào


Kết quả là một tài liệu đặc tả thiết kế. Người thực hiện sẽ căn cứ vào
đó để tạo ra phần mềm
16/55
Trường Cao đẳng CNTT HN Việt – Hàn Khoa Khoa học máy tính
1.2 Ngôn ngữ lập trình (tt)

Các giai đoạn xây dựng phần mềm (tt):

Cài đặt

Thực hiện cách giải quyết vấn đề đã được đề xuất bằng một NNLT

Kết quả là một chương trình máy tính

Tích hợp và kiểm thử

Ghép nối các bộ phận của hệ thống và kiểm tra xem hệ thống có được
thực hiện đúng theo thiết kế không

Chấp nhận

Do các chuyên viên tin học cùng với khách hàng tiến hành, nhằm xác
nhận hệ thống bảo đảm các yêu cầu của người sử dụng

Vận hành khai thác

Hệ thống được triển khai để sử dụng
17/55
Trường Cao đẳng CNTT HN Việt – Hàn Khoa Khoa học máy tính

1.2 Ngôn ngữ lập trình (tt)

Lợi ích của việc nghiên cứu NNLT

Tăng khả năng diễn đạt các ý tưởng

“Độ sâu” tư duy bị ảnh hưởng bởi năng lực diễn đạt của ngôn ngữ

Ngôn ngữ lập trình bị giới hạn trong các kiểu của cấu trúc điều khiển,
cấu trúc dữ liệu và sự trừu tượng hoá

Các hình thức của thuật toán xây dựng cũng đều có giới hạn tương tự

Tạo nền tảng để lựa chọn NNLT phù hợp với một dự án

Java cho các dự án lập trình truyền thông

Lập trình logic cho các dự án về trí tuệ nhân tạo …

Dễ dàng hơn khi học một NNLT mới

Rất nhiều ngôn ngữ có chung cú pháp (khác nhau về cách viết)

Có chung các kiểu dữ liệu (khác nhau về tên gọi)
18/55
Trường Cao đẳng CNTT HN Việt – Hàn Khoa Khoa học máy tính
1.2 Ngôn ngữ lập trình (tt)

Lợi ích của việc nghiên cứu NNLT (tt)


Hiểu sâu sắc hơn ý nghĩa của các cài đặt bên trong NNLT

Các ngôn ngữ nói chung đều cung cấp những công cụ đặc biệt để tạo
ra các tiện ích cho lập trình viên

Sử dụng không đúng đắn có thể gây ra sai lầm lớn

Ví dụ: Có thể cài đặt một giải thuật đẹp và hiệu quả bằng đệ quy,
nhưng nếu dùng không đúng sẽ gây lãng phí thời gian

Tăng vốn kinh nghiệm cho lập trình viên

Tạo tiền đề cho việc nghiên cứu và thiết kế một NNLT mới
19/55
Trường Cao đẳng CNTT HN Việt – Hàn Khoa Khoa học máy tính
1.2 Ngôn ngữ lập trình (tt)

Tiêu chuẩn đánh giá NNLT

Tính dễ đọc

Tính dễ viết

Độ tin cậy

Chi phí

Tính dễ đọc: là sự dễ dàng đọc hiểu một chương trình

Tính giản dị: Ngôn ngữ có ít các thành phần cơ sở


Cấu trúc điều khiển: Cho phép viết các chương trình sáng
sủa, dễ đọc, dễ hiểu

Kiểu và cấu trúc dữ liệu: Góp phần đánh giá một ngôn ngữ
có dễ đọc hay không

Cú pháp: Ảnh hưởng đến sự dễ đọc hiểu của chương trình
20/55
Trường Cao đẳng CNTT HN Việt – Hàn Khoa Khoa học máy tính
1.2 Ngôn ngữ lập trình (tt)

Ví dụ: So sánh hai đoạn chương trình in ra màn hình 10
số tự nhiên đầu tiên
Viết bằng BASIC
10 i=1;
20 IF i>10 THEN GOTO 60;
30 PRINT i ;
40 i=i+1;
50 GOTO 20;
60 PRINT “In xong”;
Viết bằng C

for (i =1; i<=10; i++ )
printf (“%d”,i);

21/55
Trường Cao đẳng CNTT HN Việt – Hàn Khoa Khoa học máy tính
1.2 Ngôn ngữ lập trình (tt)


Tính dễ viết: Là khả năng sử dụng ngôn ngữ để viết một
chương trình cho một vấn đề nào đó một cách dễ dàng
hay không

Sự giản dị: Nếu một ngôn ngữ có quá nhiều cấu trúc thì một
số người lập trình sẽ không quen sử dụng hết tất cả chúng

Hỗ trợ trừu tượng: Là khả năng định nghĩa và sử dụng các
cấu trúc hoặc các phép toán phức tạp cho phép bỏ qua các chi
tiết. Trừu tượng hóa làm cho chương trình sáng sủa hơn

Khả năng diễn đạt: Cung cấp cho người lập trình những công
cụ để có thể nghĩ sao thì viết chương trình như vậy
22/55
Trường Cao đẳng CNTT HN Việt – Hàn Khoa Khoa học máy tính
1.2 Ngôn ngữ lập trình (tt)

Độ tin cậy: Là khả năng của ngôn ngữ hỗ trợ người lập
trình tạo ra các chương trình đúng đắn

Kiểm tra kiểu: Là kiểm tra lỗi về kiểu dữ liệu của chương trình
trong giai đoạn dịch hoặc trong khi thực hiện

Xử lý ngoại lệ (Exception Handing): Cho phép phát hiện lỗi
trong thời gian thực hiện, sửa chữa và tiếp tục thực hiện mà
không phải dừng chương trình

Sự lắm tên (Aliasing): Có hai hay nhiều tên cùng liên kết tới
một ô nhớ. Sự lắm tên có thể làm giảm độ tin cậy
23/55

Trường Cao đẳng CNTT HN Việt – Hàn Khoa Khoa học máy tính
1.2 Ngôn ngữ lập trình (tt)

Chi phí cũng thường được quan tâm như một tiêu
chuẩn để đánh giá ngôn ngữ, được hiểu là cả tiền bạc
và thời gian

Chi phí đào tạo lập trình viên sử dụng ngôn ngữ: phụ thuộc
vào sự giản dị của ngôn ngữ

Chi phí cài đặt chương trình: phụ thuộc vào tính dễ viết của
ngôn ngữ

Chi phí dịch chương trình

Chi phí thực hiện chương trình

Chi phí bảo trì chương trình

Chi phí mua trình biên dịch
24/55
Trường Cao đẳng CNTT HN Việt – Hàn Khoa Khoa học máy tính
1.2 Ngôn ngữ lập trình (tt)

Phân loại NNLT

Theo tiến trình lịch sử phát triển

Ngôn ngữ máy, Hợp ngữ, Ngôn ngữ cấp cao, Ngôn ngữ cấp rất cao


Theo mục tiêu của ngôn ngữ

Đa dụng, Nhúng, Lập trình web, …

Theo cách thức

Mã máy, Thông dịch, Lai

Theo phương pháp

Lập trình tuyến tính, Lập trình có cấu trúc, Lập trình hướng đối tượng,
Lập trình trực quan, Lập trình logic, …
25/55
Trường Cao đẳng CNTT HN Việt – Hàn Khoa Khoa học máy tính
1.2 Ngôn ngữ lập trình (tt)

Phân loại NNLT theo tiến trình lịch sử phát triển

Ngôn ngữ máy (machine language)

Hợp ngữ (assembly language)

Ngôn ngữ cấp cao (HLL - High level language)

Ngôn ngữ cấp rất cao (VHLL – Very High Level Language)

×