Quan sát các bài viết trước, bạn cũng có thể nhận ra rằng một procedure cũng được sử dụng như là một thành phần trong việc tạo ra các procedure phức tạp hơn. Không chỉ được xem là một tập hợp các thao tác cụ thể mà còn là tính trừu tượng hóa của procedure. Có thể bỏ qua chi tiêt thực thi của thủ tục và cũng có thể thay thế procedure đó bằng procedure khác với cùng hành vi ứng xử. Nói cách khác, chúng ta có thể tạo các abstraction tách biệt hoàn toàn cách procedure được sử dụng trong chi tiết mà procedure thực thi tối ưu hơn khi so với các procedure nguyên thủy. Tương tự như dữ liễu phức hợp được gọi là data abstraction. Trừu tượng hóa dữ liệu (data abstraction) là một phương pháp cho phép chúng ta tách biệt cách sử dụng một đối tượng dữ liệu phức hợp với các chi tiết về cách nó được xây dựng từ các đối tượng dữ liệu nguyên thủy hơn. ( Chỉ sử dụng mà không cần quan tâm chi tiết bên trong)
Ý tưởng cơ bản của việc trừu tượng hóa dữ liệu là cấu trúc các chương trình sử dụng các đối tượng dữ liệu phức hợp để chúng hoạt động trên “dữ liệu trừu tượng”. Đó là, các chương trình của chúng ta nên sử dụng dữ liệu theo cách không đưa ra những giả định về dữ liệu không thực sự cần thiết cho việc thực hiện nhiệm vụ hiện tại. Đồng thời, cách biểu diễn dữ liệu “cụ thể” được xác định độc lập với các chương trình sử dụng dữ liệu. Giao tiếp giữa hai phần này trong hệ thống của chúng ta sẽ là một tập hợp các thủ tục, được gọi là bộ chọn và hàm tạo, thực hiện dữ liệu trừu tượng dưới dạng biểu diễn cụ thể. Để minh họa kỹ thuật này, chúng ta sẽ xem xét cách thiết kế một tập hợp các thủ tục để thao tác với các phân số.