1. Trang chủ
  2. » Hoá học lớp 12

Bài giảng môn học Trình biên dịch - Chương 7: Quản lí bộ nhớ trong thời gian thực thi

10 8 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 98,61 KB

Nội dung

Söï phaân chia boä nhôù trong thôøi gian thöïc thi cho vuøng maõ cuûa chöông trình vaø vuøng döõ lieäu. Khoâng phaûi taát caû caùc ngoân ngöõ laäp trình ñeàu duøng stack ñieàu khieån vaø[r]

(1)

CHƯƠNG 7

QUẢN LÝ BỘ NHỚ TRONG THỜI GIAN THỰC THI

7.1 Các phần tử yêu cầu cấp phát nhớ thời gian thực thi Tất phần tử cần cấp phát nhớ, bao gồm:

1 Đoạn mã chương trình biên dịch

2 Các chương trình hệ thống cần thiết thời gian thực thi Cấu trúc liệu người sử dụng định nghĩa

4 Các điểm trở chương trình Môi trường tham khảo

6 Các vị trí nhớ tạm cho việc tính trị biểu thức Nhập, xuất đệm

8 Các bảng, trạng thái thông tin

Ngồi liệu chương trình biên dịch, tác vụ cần nhớ:

1) Gọi chương trình tác vụ trở 2) Khởi tạo hủy bỏ cấu trúc liệu

(2)

7.2 Các vấn đề ngơn ngữ nguồn Chương trình con

Mơ 7.1 Chương trình Pascal đọc xếp thứ tự các số nguyên (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12)

program sort (input, output);

var a: array [0…10];

procedure readarray;

var i: integer;

begin

for i := to read (a [1]);

end;

function partition (y, z: integer): integer;

var i, j, x, v: integer;

begin

end;

(3)

(13) (14) (15) (16) (17) (18) (19) (20) (21) (22) (23) (24) (25)

var i: integer;

begin

if (n > m) then begin

i := partition (m, n);

quicksort (m, i – 1); quicksort (i + 1, n);

end;

end;

begin

a[0] := -9999; a[10] := 9999; readarray;

quicksort (1, 9);

(4)

Cây hoạt động (activation tree)

Cây hoạt động dùng để miêu tả đường mà điều khiển vào khỏi hoạt động chương trình Một số tính chất

cây hoạt động:

1 Mỗi nút tượng trưng cho hoạt động chương trình

2 Nút gốc (root) tượng trưng cho hoạt động chương trình Nút a cha nút b dòng điều khiển từ hoạt động a sang hoạt động b

(5)

Mô 7.2 Các phát biểu in chương trình mơ 7.1 miêu tả thực thi nó.

Sự thực thi chương trình bắt đầu vào readarray

ra khỏi readarra

vào quicksort (1,9) vào partition (1,9) khỏi partition (1,9)

vào quicksort (1,3) ……

ra khỏi quicksort (1,3) vào quicksort (5,9) ……

(6)

Thí dụ 6.1

s: viết tắt cho sort p: viết tắt cho partition r: viết tắt cho readarray q: viết tắt cho quicksort

S q(1,9) q(1,3) r

q(5, 9)

p(1,9) q(7,9)

p(5,9) q(5,5)

p(7,9) q(7,7) q(2,3)

p(1,3)

q(1,0)

q(3,3) p(2,3) q(2,1)

(7)

Stack điều khiển (Control stack) S

r q(1,9)

p(1,9)

q(1,3)

p(1,3) q(2.3)

q(1,0)

(8)

Tầm vực khai báo

Khai báo tường minh, Var I: integer khai báo ngầm Fortran, ta dùng tên biến i mà không khai báo, Fortran hiểu i biến nguyên Tầm ảnh hưởng khai báo quy tắc tầm vực định

Sự ràng buộc tên

Môi trường tên hàm, ánh xạ tên đến vị trí nhớ trạng thái hàm ánh xạ từ vị trí nhớ đến trị mà lưu giữ

tên vị trí nhớ trị

Hình 7.3 Phép chiếu hai mức từ tên đến trị

(9)

Bảng 7.1 Các khái niệm tĩnh động chương trình con

7.3 Tổ chức ký ức

Sự phân chia nhớ thời gian thực thi

Trong thời gian dịch, trình biên dịch tính tốn kích thước nhớ dành cho chương trình đối tượng, bao gồm:

1 Mã chương trình đối tượng Các đối tượng liệu

3 Một phần stack điều khiển (stack trung tâm) lưu giữ ghi hoạt động chương trình

Khái niệm tĩnh Bản động

Định nghĩa chương trình Sự hoạt động chương trình Khai báo tên Sự ràng buộc tên với vị trí nhớ

(10)

Mơ 7.2 Sự phân chia nhớ thời gian thực thi cho vùng mã chương trình vùng liệu.

Khơng phải tất ngơn ngữ lập trình dùng stack điều khiển heap, Pascal C dùng hai

Bản ghi hoạt động (Activation record) 1 Vùng giá trị khứ hồi

2 Vuøng thông số

3 Đường liên kết động 4 Đường liên kết tĩnh 5 Các trạng thái máy 6 Vùng liệu cục bộ 7 Vùng nhớ tạm

Mã chương trình đối tượng Dữ liệu tĩnh

Ngày đăng: 10/03/2021, 14:24

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN