1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài giảng ngôn ngữ lập trình cấu trúc điều khiển

58 322 3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 58
Dung lượng 289,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Cấu trúc gọi đệ qui Về mặt hiện thực gọi đệ qui khác gọi trở về đơn giản ở chỗ, với gọi đệ qui nhiều bản hoạt động của cùng 1 ctc có thể cùng tồn tại trong bộ nhớ, trong thời gian thực

Trang 1

Chương 4 CẤU TRÚC ĐIỀU KHIỂN

Trang 2

– Shared data: block structure

Trang 5

Cơ chế điều khiển

Trang 6

Cơ chế điều khiển

(A*)

Trang 7

Cú pháp của biểu thức

 Trung tố (infix): phổ biến và tự nhiên

(A + B) * (C - A)

– Chỉ dùng cho các phép toán hai toán hạng

– Cần có qui định về độ ưu tiên về thứ tự thực hiện các phép toán để giảm tính mơ hồ (ambiguity)

Trang 10

Dạng thời gian thực thi của biểu thức

 Các biểu thức ở các dạng cú pháp được dịch sang dạng thời gian thực thi trước khi được thực thi thật sự bởi phần cứng máy tính hoặc chương trình thông dịch

– Biên dịch: chuỗi các lệnh máy

– Thông dịch: cấu trúc cây, dạng tiền tố hoặc hậu tố

Trang 11

Dạng thời gian thực thi của biểu thức

 Biên dịch: chuỗi các lệnh máy sinh ra cho biểu thức ở dạng hâu

A + BCA

Trang 12

Điều khiển trình tự giữa các phát biểu

 Phát biểu GOTO

 Phát biểu ghép

 Phát biểu điều kiện

 Phát biểu lặp

Trang 13

GOTO L

JMP L

L

Trang 15

Phát biểu điều kiện

Trang 16

Phát biểu điều kiện

L3

Trang 20

Điều khiển trình tự giữa các chương trình

con

 Gọi trở về đơn giản

 Gọi đệ qui

Trang 21

Cấu trúc gọi trở về đơn giản

 Khi chương trình được thực thi, chương trình chính được

thực hiện đầu tiên Trong thời gian thực thi chương trình

chính có thể gọi các ctc thực hiện Và mỗi chương trình con này, đến lượt nó, lại có thể gọi các chương trình con khác thực hiện

 Nếu ctc A gọi ctc B, thì A gọi là chương trình gọi, B gọi là chương trình được gọi Trong thời gian thực thi B thì A tạm thời bị treo Khi sự thực thi B hoàn thành, sự thực thi A sẽ tiếp tục tại ‘điểm’ ở ngay sau nơi gọi B

Trang 22

Hạn chế của cấu trúc gọi trở về đơn giản

 Chương trình con không được đệ qui (bao gồm đệ qui trực tiếp, gián tiếp)

 Cần có các phát biểu gọi tường minh

 Chương trình con phải được hoàn thành ở mỗi lần gọi

 Điều khiển được chuyển ngay tức thời ở điểm gọi

 Trình tự thực thi đơn

Trang 23

Cấp phát bộ nhớ ctc gọi trở về đơn giản

gọi ctc có thể sử dụng chung một khối lưu trữ và khối lưu trữ này cũng được cấp phát tĩnh như khối lưu trữ phân đoạn mã

 Các đối tượng dữ liệu trong các bản ghi hoạt động hòan toàn xác định trong thời gian thực thi chương trình và có thể truy cập dễ dàng, do đó tốc độ thực thi chương trình tăng lên

 Tuy nhiên, cách lưu trữ này có nhược điểm là các ctc chiếm dụng vùng nhớ nhiều, do phải cấp phát các khối lưu trữ cho các bản ghi hoạt động của tất cả các ctc có mặt trong

chương trình Các khối này nằm trong bộ nhớ trong suốt thời

Trang 24

Cấu trúc gọi đệ qui

 Về mặt hiện thực gọi đệ qui khác gọi trở về đơn giản ở chỗ, với gọi đệ qui nhiều bản hoạt động của cùng 1 ctc có thể cùng tồn tại trong bộ nhớ, trong thời gian thực thi chương trình VD A gọi B rồi B gọi A, có tới 2 bản hoạt động của A nằm trong bộ nhớ khi B gọi A

 Để gọi đệ qui ctc phải cấp phát động khối lưu trữ cho các bản hoạt động trong thời gian thực thi chương trình

Trang 25

Cấp phát bộ nhớ cho ctc gọi đệ qui

 Việc cấp phát các khối lưu trữ thường được thực hiện theo

cơ chế chồng Các khối lưu trữ được cấp phát trong một

chồng gọi là chồng trung tâm (central stack)

 Khi thực thi chương trình, bản ghi hoạt động của chương

trình chính được cấp phát ở đáy chồng Khi một chương

trình A được gọi, bản ghi hoạt động của A được bố trí ngay tiếp theo Nếu A gọi tới B thì bản ghi hoạt động của B sẽ lại được bố trí ngay tiếp vùng nhớ bản ghi hoạt động của A,

việc cấp phát cứ diễn ra tiếp tục như vậy

 Khi B kết thúc trả điều khiển cho A thì bản ghi hoạt động

Trang 26

Một số cấu trúc điều khiển khác của ctc

 Ngoại lệ và xử lý ngoại lệ

 Các trình cộng hành (coroutine)

 Chương trình con được định thời (scheduled subprogram)

 Cộng tác và sự thực thi đơn giản (đa xử lý với nhiều CPU)

Trang 27

Ngoại lệ và xử lý ngoại lệ

 Biến cố là những sự kiện xẩy ra, ngắt quãng sự thực thi bình thường của chương trình VD tràn dưới, tràn trên, nhập sai kiểu dữ liệu,…

 Trình xử lý ngoại lệ (exception handle) để xử lý ngoại lệ

 CTC xử lý ngoại lệ thường không được gọi một cách tường minh

 Điều khiển có thể không được chuyển về điểm ngay sau nơi xẩy ra ngoại lệ, sau khi CTC xử lý ngoại lệ được gọi

Trang 29

Chương trình con định thời

 Chương trình con định thời (schedule subprogram) là các ctc mà sự thực thi nó có thể không bắt đầu ngay sau khi nó đươc gọi

 Định thời theo thời gian

CALL A AT TIME = CURRENT_TIME + 10

 Định thời theo độ ưu tiên

CALL B WITH PRIORITY 7

Trang 31

4.2 Điều khiển dữ liệu

 Các khái niệm cơ bản (Basic concepts)

 Dữ liệu cục bộ và môi trường (Local data and environments)

 Dữ liệu chia sẻ: tầm vực động (Shared data: dynamic

scope)

 Dữ liệu chia sẻ: cấu trúc khối (Shared data: block structure)

 Dữ liệu chia sẻ: truyền tham số (Shared data: parameter transmission )

Trang 32

Điều khiển dữ liệu

 Các khái niệm cơ bản

 Dữ liệu cục bộ

 Dữ liệu dùng chung

 Thông số và truyền thông số

Trang 33

Các khái niệm cơ bản

Trang 34

 Tên biến

 Tên các tham số hình thức

 Tên chương trình con

 Tên kiểu dữ liệu tự định nghĩa

 Tên hằng định danh

Trang 35

Môi trường tham khảo

 Sự kết hợp (association): là sự ràng buộc giữa một danh

hiệu với một đối tượng dữ liệu

 Môi trường tham khảo là tập các sự kết hợp mà một chương trình có thể tham khảo trong thời gian thực thi chương trình con

Trang 36

Môi trường tham khảo

Trang 37

Môi trường tham khảo

 Môi trường tham khảo được phân thành các phần sau

– Môi trường cục bô (local enviroment)

– Môi trường không cục bộ (nonlocal enviroment)

– Môi trường toàn cục (global enviroment)

– Môi trường được định nghĩa trước (predefined

enviroment)

Trang 39

Môi trường không cục bộ

Trang 40

Môi trường toàn cục

Trang 41

Môi trường được định nghĩa trước

codes for

“write”

Trang 42

Tầm vực

 Tầm vực của một ràng buộc là phạm vi chương trình mà trong đó ràng buộc có ý

nghĩa, hay có hiệu lực.

 Tầm vực động: các bản hoạt động của chương trình con mà bên trong đó kết hợp

có hiệu lực.

 Tầm vực tĩnh: phần văn bản chương trình mà bên trong đó các khai báo có hiệu

lực

Trang 43

SUB2

Trang 46

SUB2

SUB4

Trang 47

Các quy tắc tầm vực tĩnh trong ngôn ngữ

X: real

Trang 48

Các quy tắc tầm vực tĩnh trong ngôn ngữ

có cấu trúc khối

2 Nếu trong một khối có tham

khảo đến một danh hiệu mà

không có khai báo cục bộ

cho danh hiệu này, thì sự

tham khảo đó sẽ liên hệ với

khai báo cho danh hiệu có ở

khối gần nhất bao khối đang

xét

MAINSUB1

SUB3

SUB2

SUB4

X: realX: integer

X := 1

Trang 49

Các quy tắc tầm vực tĩnh trong ngôn ngữ

có cấu trúc khối

3 Mọi khai báo cục bộ của một

khối và của các khối ở trong

khối đó bị che đối với tất cả

các khối bao lấy hoặc ở ngoài

khối đang xét

MAINSUB1

SUB3

SUB2

SUB4

X: real

Trang 50

Các quy tắc tầm vực tĩnh trong ngôn ngữ

có cấu trúc khối

4 Tên khối là một phần của

môi trường tham khảo

cục bộ của khối bao trực

tiếp khối đang xét.

MAINSUB1

SUB3

SUB2

SUB4

Trang 51

Dữ liệu cục bộ

 Đặc tả: dữ liệu cục bộ của một chương trình con bao gồm các

thông số hình thức, các biến cục bộ, và các chương trình con được khai báo ở đầu chương trình con đó.

 Hiện thực

– Khi dịch đến ctc, chương trình dịch sẽ tạo ra và duy trì bảng danh

hiệu, các ràng buộc giữa các danh hiệu với thông tin tương ứng được khai báo cho các danh hiệu ở đầu ctc

– Trong thời gian thực thi ctc, các dữ liệu cục bộ của ctc được lưu

trữ trong bản ghi hoạt động tương ứng và được truy suất theo công thức địa chỉ nền cộng với độ dời (offset)

– Các biến cục bộ không muốn bị xóa đi sau khi ctc kết thúc (biến

Trang 52

Tham số của ctc

 Tham số hình thức và tham số thực sự: Tham số hình thức là biến

được liệt kê trong danh sách tham số (thường nằm tại phần đầu của định nghĩa chương trình con) Còn tham số thực sự là giá trị cụ thể của biến đó tại thời gian chạy.

Trang 53

Các phương pháp truyền tham số

 Nói chung một ngôn ngữ cung cấp nhiều phương pháp

truyền tham số mà người lập trình có thể lựa chọn để xác định khai báo tham số hình thức lúc định nghĩa chương trình con và cung cấp các tham số thực tế lúc gọi thực hiện

chương trình con Các phương pháp truyền tham số chủ yếu bao gồm:

– Truyền bằng giá trị

– Truyền bằng giá trị-kết quả

Trang 54

Truyền bằng giá trị

 Tham số hình thức là tham số chỉ vào (IN-only parameters), tức là chỉ nhận giá trị vào cho chương trình con, không có nghĩa vụ trả kết quả về cho chương trình gọi Tham số hình thức được xem

như là một biến cục bộ của chương trình con và được cấp phát ô nhớ riêng

 Tham số thực tế là một biểu thức (là một biến, một hằng, một

hàm hoặc là một biểu thức thực sự)

 Phương pháp thực hiện: Tại thời điểm gọi, giá trị của tham số

thực tế được sao chép vào trong ô nhớ của tham số hình thức

Trong quá trình thực hiện chương trình con, mọi thao tác trên

tham số hình thức là sự thao tác trên ô nhớ riêng của nó, không ảnh hưởng đến tham số thực tế

 Khi chương trình con kết thúc, sự thay đổi giá trị của tham số

hình thức, không làm ảnh hưởng đến giá trị của tham số thực tế

Trang 55

Truyền tham chiếu

tức là nó có nghĩa vụ nhận giá trị vào cho chương trình con

và trả kết quả về cho chương trình gọi Tham số hình thức là một con trỏ

số thực tế được sao chép cho tham số hình thức Trong quá trình thực hiện chương trình con, mọi thao tác trên tham số hình thức là sự thao tác trên ô nhớ của tham số thực tế

Trang 56

Truyền bằng giá trị -kết quả

 Tham số hình thức là tham số vào ra (IN-OUT parameters) nhưng là một biến cục bộ của chương trình con và được cấp phát ô nhớ riêng

 Tham số thực tế phải là một biến, tức là một ĐTDL có ô nhớ

 Phương pháp thực hiện: Tại thời điểm gọi, giá trị của tham

số thực tế được sao chép vào trong ô nhớ của tham số hình thức Trong quá trình thực hiện chương trình con, mọi thao tác trên tham số hình thức là sự thao tác trên ô nhớ riêng của nó, không ảnh hưởng đến tham số thực tế

 Khi chương trình con kết thúc, giá trị cuối cùng của tham số hình thức được sao chép vào ô nhớ của tham số thực tế

Trang 57

Truyền bằng kết quả

 Tham số hình thức là tham số chỉ ra (OUT-only parameters), tức

là chỉ trả kết quả về cho chương trình gọi, không có nghĩa vụ

nhận giá trị vào cho chương trình con Tham số hình thức được xem như là một biến cục bộ của chương trình con và được cấp phát ô nhớ riêng

 Tham số thực tế phải là một biến , tức là một ĐTDL có ô nhớ.

 Phương pháp thực hiện: Giá trị của tham số thực tế không được

sử dụng trong chương trình con Tham số hình thức có thể được gán trị như đối với một biến cục bộ Trong quá trình thực hiện

chương trình con, mọi thao tác trên tham số hình thức là sự thao tác trên ô nhớ riêng của nó, không ảnh hưởng đến tham số thực

Trang 58

Ví dụ

Kết quả thực hiện với các

phương pháp truyền tham số

Truyền bằng giá trị 1010

Truyền tham chiếu 2020

Truyền bằng giá trị - kết quả 1020

Truyền bằng kết quả 1020

Ngày đăng: 27/10/2017, 11:30

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w