lecture5 1 Chương 5 Thực hiện chương trình con Giảng viên Ph D Nguyễn Văn Hòa Khoa KT CN MT – ðH An Giang 2 ðịnh nghĩa � Trong NNLT, tác vụ gọi “call” và trả về (return) của chương trình con ñược gọi[.]
Chương 5: Thực chương trình Giảng viên: Ph.D Nguyễn Văn Hòa Khoa KT-CN-MT – ðH An Giang ðịnh nghĩa Trong NNLT, tác vụ gọi “call” trả (return) chương trình gọi chung liên kết chương trình “subprogram linkage” Nội dung chương Giới thiệu chung ngữ nghĩa Call Return Thực chương trình đơn giản Thực chương trình với biến cục động Stack Chương trình lịng (nested Subprograms) Khối (Blocks) Cài đặt phạm vi ñộng Ngữ nghĩa việc gọi (call) trả (return) Một số tác vụ cần thiết cho việc gọi chương trình Cơ chế truyền tham số (truyền tham trị, truyền quy chiếu, truyền kết quả, ) Các biến cục static hay not static Lưu lại trạng thái hành (execution status) chương trình gọi CTC Chuyển quyền ñiều khiển cho CTC Cung cấp truy xuất ñến biến không cục Thực CTC ñơn giản: Call Chương trình ñơn giản “simple” Khơng lịng biến tĩnh (static) Các tác vụ có cần thiết Lưu trạng thực thị chương trình gọi “caller” Thực tiến trình truyền tham số Chuyển địa trả cho chương trình “callee” Chuyển quyền ñiều khiển cho chương trình “callee” Thực CTC ñơn giản: Return Nếu sử dụng truyền trị-kết quả, di chuyển giá trị hành tham số hình thức đến tham số thực tương ứng Nếu hàm, di chuyển giá trị hàm đến vị trí mà caller lấy ñược Phục hồi lại trạng thái thực thi caller Trả quyền ñiều khiển lại cho caller Thực CTC đơn giản: Parts Có phần phân biệt: phần code thực phần noncode (biến cục liệu bị thay đổi) ðịnh dạng, layout, phần noncode chương trình thực thi gọi hoạt động (activation) Một thể (instance) hoạt ñộng mẫu cụ thể hoạt ñộng (bao gồm liệu hoạt động chương trình con) Bản hoạt động chương trình đơn giản Code hoạt động chương trình với chương trình đơn giản Cài ñặt CTC với biến cục ñộng Stack Bản hoạt ñộng phức tạp Trình biên dịch phải sinh code để cấp phát giải phóng cách tường minh cho tham số cục Phải hỗ trợ ñệ qui “recursion” (tạo ñồng thời nhiều thể hoạt ñộng chương trình con) ðệ qui yêu cầu nhiều thể hoạt ñộng, thể hoạt ñộng tương ứng với lần gọi ñệ qui Mỗi thể cầu copy tham số hình thức, biến cục cấp phát động ñịa trả 10 Bản hoạt ñộng factorial 18 19 20