II. Lịch sử phát triển ngôn ngữ lập trình
10. Bắt đầu trừu tượng hóa dữ liệu: SIMULA
Được thiết kế chủ yếu cho việc mô phỏng hệ thống ở Na Uy bởi Nygaard và Dahl. Dựa trên ALGOL 60 và SIMULA I.
Có những điểm chính như
- Có cấu trúc lớp (bắt đầu hình thành khái niệm trừu tượng hóa dữ liệu)
Nguyên tắc chuyển sang chiều khác: Thông thường mối quan hệ giữa một chương trình con gọi một chương trình khác và một chương trình con bị gọi là mối quan hệ “chủ-tớ”. Còn mối quan hệ giữa coroutine gọi và coroutine được gọi thì ngang hàng hơn. Coroutine là một thể loại đặc biệt của chương trình con. Thông thường các conroutine được tạo ra trong một ứng dụng bởi một đơn vị chương trình gọi là đơn vị chủ (không phải là một coroutine). Khi được tạo ra, các coroutine thực hiện các đoạn mã khởi tạo của chúng và sau đó trả quyền điều khiển cho đơn vị chủ. Khi toàn bộ các coroutine được khởi tạo, chương trình chủ “resume” một coroutine nào đó, và các coroutine sẽ “resume” lẫn nhau theo một thứ tự nào đó của công việc. Đến khi công việc hoàn thành các coroutine sẽ trả quyền điều khiển cho đơn vị chủ. Lúc này có thể các coroutine sẽ bị chấm dứt hay tiếp tục vẫn chạy tùy theo chương trình. Một ví dụ về vấn đề này là mô phỏng trò chơi đánh bài. Giả sử rằng trò chơi này có bốn người chơi. Một đơn vị chương trình chủ sẽ tạo ra bốn coroutine. Chương trình chủ sẽ khởi động chương trình mô phỏng bằng cách “resume” một coroutine của người chơi nào đó. Khi người này xong lượt thì sẽ “resume” đến coroutine của người kế tiếp, và tiếp tục như vậy cho đến kết thúc trò chơi.
Nguyên tắc đồng nhất: nhờ có sự đồng nhất sự trình bày, và thao tác trên các đối tượng thành kiểu dữ liệu được trừu tượng hóa mà làm cho sự thay đổi biểu diễn dữ liệu hay mã thực thi không làm cho mã người dung thay đổi. Ngoài ra trừu tượng hóa dữ liệu còn giúp đóng gói dữ liệu để bảo vệ dữ liệu không bị truy xuất trực tiếp bởi mã người dùng.