Nguồn gốc của khai báo chức năng Công khai / Riêng tư là gì?


8

Câu hỏi

Nguồn gốc của mô hình chức năng Công cộng / Riêng tư là gì?

Lý lịch

Một câu hỏi được đưa ra trong cuộc trò chuyện về các tệp Header trong C và việc sử dụng chúng chủ yếu là để giúp trình biên dịch chứ không phải lập trình viên. Mặc dù vậy, theo sự hiểu biết của tôi, đây là cách sử dụng đầu tiên của khái niệm hàm "Riêng tư" hoặc các hàm không được tạo mẫu trong tệp tiêu đề. Nếu C không sử dụng các tệp tiêu đề để khai báo các hàm, liệu chúng ta vẫn có khái niệm hiện tại về các hàm Công khai và Riêng tư như đã thấy trong C # hoặc Java? Hoặc khái niệm này ban đầu được phát triển ở nơi khác và được triển khai đơn giản trong lược đồ C Header / Source

Câu trả lời:


10

Riêng tư / công cộng xuất phát từ ngôn ngữ OO gốc, Simula , trước C vài năm. Theo bài viết trên Wikipedia, khái niệm ban đầu được triển khai lần đầu tiên trong biến thể TOPS / 10 của Simula và được tích hợp vào tiêu chuẩn ngôn ngữ cốt lõi vào năm 1987. Tuy nhiên, nó không nói khi nào TOPS / 10 Simula được tạo ra lần đầu tiên có thể có hoặc không sớm hơn C.

Bất kể, ngay cả khi C và hệ thống tệp tiêu đề của nó không xuất hiện, các ngôn ngữ lập trình hiện đại vẫn sẽ kế thừa khái niệm đóng gói thông qua hệ thống riêng tư / công cộng từ Simula.


5
Và, tất nhiên, mã máy tính lớn từ LONG trước năm 1987 có các thói quen "biểu tượng bên ngoài" (== "công khai") và các thói quen không bên ngoài (== "riêng tư"), không có các từ khóa cụ thể.
Ross Patterson

1

Tôi nghĩ rằng ý tưởng làm cho các phần của mã của bạn trở nên riêng tư có nguồn gốc xa hơn Simula. Scheme (1975) là ngôn ngữ đầu tiên thực hiện các bao đóng, cho phép bạn đóng gói dữ liệu như lambdas. Lược đồ cũng cho phép bạn chỉ định các chức năng nội bộ bằng cách sử dụng từ khóa xác định.

Làm cho các chức năng riêng tư cho phép tích hợp nhiều hơn vào một chương trình. Xây dựng trừu tượng trong các chương trình có một lịch sử lâu dài, với các ngôn ngữ biến thể LISP như Scheme đóng góp rất nhiều cho sự phát triển của các ngôn ngữ lập trình hiện đại.

Cấu trúc và giải thích các chương trình máy tính của Abelson, Sussman là một cuốn sách tuyệt vời để tìm hiểu thêm về trừu tượng nếu bạn quan tâm đến những điều đó.


bài này khá khó đọc (tường văn bản). Bạn có phiền chỉnh sửa ing nó thành một hình dạng tốt hơn?
gnat
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.