Bài giảng ngôn ngữ lập trình chương 3 dữ liệu

74 303 1
Bài giảng ngôn ngữ lập trình chương 3 dữ liệu

Đ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

Chương DỮ LIỆU Nguyễn Thị Hạnh – Bộ môn CNPM – Khoa CNTT - ĐH SPHN 11 Nội dung     Các khái niệm Các kiểu liệu Các kiểu liệu có cấu trúc Chương trình Nguyễn Thị Hạnh – Bộ môn CNPM – Khoa CNTT - ĐH SPHN 3.1 Các khái niệm        Đối tượng liệu (Data objects) Kiểu liệu (Data types) Khai báo (Declaration) Kiểm tra kiểu (type checking) Sự tương hợp kiểu (type compatibility) Chuyển kiểu (conversion) Phép gán khởi tạo (assignment and initilisation) Nguyễn Thị Hạnh – Bộ môn CNPM – Khoa CNTT - ĐH SPHN Đối tượng liệu  Đối tương liệu đại diện cho nơi chứa giá trị liệu Đối tượng liệu đươc biểu diễn khối lưu trữ nhớ máy tính (block of storage) Giá trị liệu biểu diễn mẫu biểu thị (pattern of bits) Đối tượng liệu A: Mẫu bít giá trị liệu 17: 0 0 Đối tượng liệu A chứa 0 0 giá trị liệu 17 Nguyễn Thị Hạnh – Bộ môn CNPM – Khoa CNTT - ĐH SPHN Đối tượng liệu (tiếp)  Đối tượng liệu định nghĩa người lập trình (Programmer - defined) định nghĩa hệ thống (System - defined)  Thời gian sống (lifetime) đối tượng liệu kéo dài từ lúc khối lưu trữ đươc cấp phát để tạo đối tượng liệu (“sinh ra”) khối lưu trữ giải phóng (“chết đi”)  Đối tượng liệu (elementary data object) chứa giá trị liệu đơn, phân chia  Đối tượng liệu cấu trúc (structured data object) tạo thành từ kết hợp nhiều đối tượng liệu khác Nguyễn Thị Hạnh – Bộ môn CNPM – Khoa CNTT - ĐH SPHN Đối tượng liệu (tiếp)  Biến (variable) (constant): đối tượng liệu đặc biệt – Biến đối tượng liệu đặt tên giá trị thay đổi thời gian sống – Hằng đối tượng liệu đăt tên giá trị không thay đổi thời gian sống Nguyễn Thị Hạnh – Bộ môn CNPM – Khoa CNTT - ĐH SPHN Kiểu liệu (Data type)  Kiểu liệu lớp đối tượng liệu có tính chất  Kiểu liệu bản: đối tượng liệu  Kiểu liệu có cấu trúc: đối tượng liệu có cấu trúc  Mối ngôn ngữ trang bị sẵn kiểu liệu nguyên thủy (primitive data types) chế để định nghĩa kiểu liệu  Nghiên cứu kiểu liệu cấp độ – Cấp độ đặc tả (specification) – Cấp độ thực (implementation) Nguyễn Thị Hạnh – Bộ môn CNPM – Khoa CNTT - ĐH SPHN Đặc tả liệu  Đặc tả liệu bao gồm yếu tố sau – Các thuộc tính – Các giá trị – Các tác vụ: tác vụ nguyên thuỷ, tác vụ định nghĩa người lập trình Nguyễn Thị Hạnh – Bộ môn CNPM – Khoa CNTT - ĐH SPHN Ví dụ: Arrays  Thuộc tính: – Số chiều – Kích thước chiều – Kiểu thành phần dãy  Giá trị: giá trị hợp lệ thành phần  Tác vụ: – Đánh địa để lựa chọn thành phần – Khởi tạo – Các phép toán số học dãy Nguyễn Thị Hạnh – Bộ môn CNPM – Khoa CNTT - ĐH SPHN Hiện thực kiểu liệu  Các yếu tố việc thực kiểu liệu là: – Dạng lưu trữ (storage representation) nhớ đối tượng liệu thuộc kiểu liệu – Cách thực tác vụ kiểu liệu, thông qua giải thuật xử lý dạng lưu trữ chọn cho đối tượng liệu thuộc kiểu liệu  Các cách thực tác vụ kiểu liệu – Tác vụ phần cứng – Tác vụ phần mềm chương trình – Đoạn mã trực tiếp (in-line code) thực tác vụ chuỗi ngắn tác vụ phần cứng Nguyễn Thị Hạnh – Bộ môn CNPM – Khoa CNTT - ĐH SPHN 10 Quản lý vùng nhớ dựa stack  Dữ liệu lưu vùng nhớ stack đọc ghi theo chế last-in, first-out Không thể cấp phát giải phóng vùng nhớ cách tùy ý  Ưu điểm stack: – Cấp phát nhớ nhanh, cần thay đổi stack pointer cấp phát được, dùng heap phải duyệt danh sách liên kết để xem có vùng nhớ tự kích thước hợp lý không cấp phát – Stack tự hủy đối tượng liệu khỏi phạm vi chương trình chứa đối tượng liệu  Nhược điểm: Stack bị giới hạn kích thước trình biên dịch ngôn ngữ quy định Nếu stack chứa nhiều liệu bị tràn Nguyễn Thị Hạnh – Bộ môn CNPM – Khoa CNTT - ĐH SPHN 60 Quản lý vùng nhớ heap  Heap vùng nhớ có kích thước lớn nhiều so với stack Dữ liệu lưu heap cấp phát thu hồi thời điểm Heap dùng để cấp phát động cho liệu kiểu trỏ  Nhược điểm heap: – Cấp phát heap chậm so với stack – Đối tượng liệu cấp phát heap khả tự hủy mà người lập trình phải làm việc này người lập trình quên hủy dẫn tới phát sinh nhiều liệu rác Nguyễn Thị Hạnh – Bộ môn CNPM – Khoa CNTT - ĐH SPHN 61 3.4 Chương trình  Khái niệm CTC  Các thành phần CTC  Bản hoạt động CTC Nguyễn Thị Hạnh – Bộ môn CNPM – Khoa CNTT - ĐH SPHN 62 Khái niệm CTC  Một chương trình biểu diễn hàm toán học ánh xạ tập hợp đối số cụ thể vào tập hợp kết tương ứng  Chương trình trả tường minh kết đơn gọi hàm (function)  Chương trình trả nhiều kết sửa đổi giá trị đối số trả kết cách tường minh gọi thủ tục (procedure)  VD có khai báo sau Pascal function FUNC(X: real , Y: integer): real; procedure PROC (X: real, Y: integer, Z: real, U: boolean); Nguyễn Thị Hạnh – Bộ môn CNPM – Khoa CNTT - ĐH SPHN 63 Các thành phần CTC  Một chương trình có hai phần là: – Phần đặc tả – Phần thực  Cả hai phần xác định người lập trình Nguyễn Thị Hạnh – Bộ môn CNPM – Khoa CNTT - ĐH SPHN 64 Đặc tả  Tên chương trình  Số lượng, thứ tự kiểu liệu đối số chương trình  Số lượng, thứ tự kiểu liệu kết chương trình  Hành vi chương trình Nguyễn Thị Hạnh – Bộ môn CNPM – Khoa CNTT - ĐH SPHN 65 Hiện thực  Chương trình thực cấu trúc liệu thao tác ngôn ngữ cung cấp Sự thực chương trình xác định thân chương trình con, bao gồm: – Các khai báo liệu cục – Các phát biểu xác định công việc thực chương trình thực thi  Các khai báo phát biểu “đóng gói” lại để người sử dụng chương trình truy xuất cách riêng lẻ đến chúng Người sử dụng gọi chương trình với tập đối số cụ thể nhận lại kết tính toán Nguyễn Thị Hạnh – Bộ môn CNPM – Khoa CNTT - ĐH SPHN 66 VD dạng mẫu khai báo thân CTC Pascal function FUNC (X: real; Y: integer): real; - Đặc tả var a: array [1 10] of real; - Khai báo liệu cục Begin - Các phát biểu end; Nguyễn Thị Hạnh – Bộ môn CNPM – Khoa CNTT - ĐH SPHN 67 Định nghĩa họat động ctc  Người lập trình viết định nghĩa ctc chương trình  Trong thời gian thực thi chương trình, ctc gọi, hoạt động (activation) ctc tạo  Khi việc thực thi ctc hoàn thành hoạt động ctc tiêu hủy  Các hoạt động ctc khác lần gọi khác Nguyễn Thị Hạnh – Bộ môn CNPM – Khoa CNTT - ĐH SPHN 68 Bản hoạt động ctc  Bản hoạt động ctc tạo lệnh CALL, lệnh gọi ctc thực  Khi ctc gọi, cấp phát khối lưu trữ Khối chứa thông tin liệu điều khiển ctc tương ứng với lần gọi Khối nhớ giải phóng ctc kết thúc  Bản hoạt động ctc kết thúc lệnh return, trở nơi gọi ctc Nguyễn Thị Hạnh – Bộ môn CNPM – Khoa CNTT - ĐH SPHN 69 Bản hoạt động ctc (tiếp)  Kết trình dịch khai báo ctc chương trình dịch mẫu xác định cấu trúc hoạt động ctc đó, bao gồm phần; – Phần tĩnh: phân đoạn mã (code segment), chứa mã thực thi ctc Nội dung phần không thay đổi thời gian thực thi tất hoạt động ctc – Phần động: ghi hoạt động (activation record), chứa thông số hình thức, kết ctc hàm, liệu cục bộ, điểm trở về, …Cấu trúc phần cố định nội dung thay đổi thời gian thực thi hoạt động ctc Nguyễn Thị Hạnh – Bộ môn CNPM – Khoa CNTT - ĐH SPHN 70 VD minh họa cấu trúc hoạt động hàm Pascal function FUNC(X: real; Y: integer): real; const MAX = 20; var A: array [1 MAX] of real; N: integer; begin N:=Max; X:=2*X + A[5] end; Nguyễn Thị Hạnh – Bộ môn CNPM – Khoa CNTT - ĐH SPHN 71 Đoạn mở đầu Khối mã thực thi Mã thực thi Phân đoạn mã FUNC Đoạn kết 20 Các Điểm trở liệu hệ thống khác Bản ghi hoạt động FUNC FUNC X Y Kết hàm Các thông số hình thức A Các biến cục N Nguyễn Thị Hạnh – Bộ môn CNPM – Khoa CNTT - ĐH SPHN 72 Bản hoạt động ctc (tiếp)  Khi ctc gọi, để thiết lập ghi hoạt động, truyền thông số, tạo liên kết cho tham khảo không cục bộ, thông thường chương trình dịch thêm đoạn mã để thực hoạt động gọi đoạn mở đầu (prologue)  Khi ctc kết thúc, để trả kết ctc giải phóng khối lưu trữ ghi hoạt động, chương trình dịch thêm đoạn mã gọi đoạn kết (epilogue) vào cuối khối mã thực thi Nguyễn Thị Hạnh – Bộ môn CNPM – Khoa CNTT - ĐH SPHN 73 Chương trình chung  Một số ngôn ngữ cho phép ctc có nhiều định nghĩa khai báo khác (về số lượng, thứ tự kiểu liệu đối số khác nhau) Những trường hợp gọi ctc chung Nguyễn Thị Hạnh – Bộ môn CNPM – Khoa CNTT - ĐH SPHN 74 ... SPHN Kiểu liệu (Data type)  Kiểu liệu lớp đối tượng liệu có tính chất  Kiểu liệu bản: đối tượng liệu  Kiểu liệu có cấu trúc: đối tượng liệu có cấu trúc  Mối ngôn ngữ trang bị sẵn kiểu liệu nguyên... viết chương trình, không cần khai báo kiểu liệu kiểu ĐTDL thay đổi trình thực thi chương trình  Nhược điểm: có khả bỏ sót lỗi kiểu; yêu cầu nhớ lớn phải lưu trữ thông tin kiểu liệu trình thực chương. .. thực thi chương trình nên tiết kiệm nhớ tăng tốc độ chạy chương trình  Nhược điểm: không mềm dẻo, cụ thể người lập trình phải cân nhắc xác định kiểu cho ĐTDL cách rõ ràng  Các ngôn ngữ kiểm

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

Từ khóa liên quan

Mục lục

  • Chương 3 DỮ LIỆU

  • Nội dung

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

  • Đối tượng dữ liệu

  • Đối tượng dữ liệu (tiếp)

  • Slide 6

  • Kiểu dữ liệu (Data type)

  • Đặc tả dữ liệu

  • Ví dụ: Arrays

  • Hiện thực kiểu dữ liệu

  • Khai báo(declaration)

  • Khai báo

  • Khai báo

  • Slide 14

  • Kiểm tra kiểu

  • Kiểm tra kiểu động

  • Kiểm tra kiểu tĩnh

  • Chuyển đổi kiểu (type conversion)

  • Sự tương hợp về kiểu

  • Slide 20

Tài liệu cùng người dùng

Tài liệu liên quan