Điều gì ngược lại với sự trừu tượng? [đóng cửa]


19

Theo tôi hiểu, trừu tượng là thuật ngữ chúng ta sử dụng khi có nhiều ý nghĩa được tạo ra từ một cái gì đó đơn giản hơn mà không làm thay đổi nó. Nó có nguồn gốc từ động từ la tinh abstrahere (để 'rút đi'). Chẳng hạn, văn bản chỉ là một bản tóm tắt của dữ liệu nhị phân, cũng như bitmap. Vì vậy, trong máy tính, văn bản và bitmap tồn tại trên cùng (được triển khai dưới dạng) dữ liệu nhị phân.

Câu hỏi của tôi là: thuật ngữ ngược lại là gì? Nếu tôi muốn biết những điều cơ bản hơn có thể có mà bitmap có thể được thực hiện theo các khía cạnh khác ngoài dữ liệu nhị phân, những thứ như gạch cho khảm hoặc vải vá cho một tấm chăn chắp vá, tôi đang yêu cầu điều gì? Có một từ cho điều đó?

Trừu tượng có ý nghĩa khái quát hóa và quá trình ngược lại đó là chuyên môn hóa. IDK cho dù điều đó giúp.


7
Điều này có thể phù hợp hơn tại English.SE.
Péter Török

3
Trong một số trường hợp đơn giản. Tôi đã thấy rất nhiều thứ trừu tượng khủng khiếp chỉ làm cho mọi thứ trở nên phức tạp hơn; |
William

Tôi nghĩ rằng khái niệm này không có một từ thỏa đáng. Cho phép một xu như vậy: "khử trừu tượng"
Conor Cosnett

Câu trả lời:


8

Thực hiện.

Trừu tượng là những từ ngắn gọn, là quá trình tinh thần để có được một mô hình (giảm) của một điều trong thế giới thực và "thu gọn" thành một khái niệm hoặc một ý tưởng.

Vì vậy, điều ngược lại là lấy một khái niệm hoặc một ý tưởng, và biến nó, thành một thế giới tái hiện ;-)


2
Tôi không biết liệu tôi có thể gọi điều này ngược lại nhiều như một khái niệm bổ sung hay không. Như trong, mỗi khi bạn có một sự trừu tượng hóa trong lập trình, bạn cũng có sự thực thi mà sự trừu tượng đang ẩn giấu. Tuy nhiên, đó dường như là những gì câu hỏi đang yêu cầu.
jhocking

@jhocking Hệ thống phanh và chân ga của một chiếc xe hơi đối lập nhau, tuy nhiên, cũng bổ sung. Chúc mừng.
umlcat

"Biểu hiện" của một sự trừu tượng thanh tao từ cõi Platonic đến thực tế vật lý (chỉ)
Conor Cosnett

41

Thông thường

Cụ thể hoá - Như trong C ++ lớp bê tông

và trong một số trường hợp:

Chuyên môn hóa - Như trong Chuyên ngành Mẫu C ++

Đã thêm ngày 12 tháng 6 năm 2012 : Đây là một thuật ngữ đáng yêu:

Reification - Như trong một số ngôn ngữ lập trình


6
Trong khi tôi không đồng ý với việc sử dụng 'cụ thể hóa' - đó là một từ hơi rườm rà ... sẽ không 'lắng đọng' sẽ tốt hơn? thefreedictionary.com/concretion
HorusKol

1
Ngưng kết chắc chắn.
Zachary Yates

Được đặt trong bê tông sau đó, sau khi bê tông? Chỉ cần hỏi :-)
JensG

5

Trong bối cảnh lập trình giảm của nó .

Chủ nghĩa giảm

Như trong: "Tôi đã giảm vấn đề theo các thuật ngữ đơn giản nhất của nó."


4

"Bê tông" trái ngược với "trừu tượng", do đó, đối lập với "trừu tượng hóa" là "cụ thể hóa" một cách logic. Tuy nhiên, chính xác thì không có ý nghĩa ngược lại vì bạn thường chỉ nói về sự trừu tượng và hiếm khi nghĩ về điều ngược lại.


3

Hãy bắt đầu từ đầu. Trước hết, thực sự trừu tượng là gì?

Vấn đề / Động lực

Khi bạn lập trình, bạn thường phải giải quyết các vấn đề rất chi tiết cụ thể.

Động lực chính của sự trừu tượng là khi bạn có thể thấy mình trong một tình huống mà chương trình của bạn xử lý toàn bộ vấn đề như một đơn vị, với nhiều đặc thù nhỏ riêng biệt đòi hỏi sự chú ý và hiểu biết. Vấn đề ở đây là con người khó có thể xử lý lượng dữ liệu khổng lồ như vậy cùng một lúc.

Giải pháp: Trừu tượng

Để bạn có thể hiểu những gì bạn cần để thực hiện ý tưởng của mình , bạn trích xuất các giải pháp chi tiết thành các tóm tắt đơn giản hóa .

Ví dụ: chúng ta hãy xem ORM (Ánh xạ quan hệ đối tượng), trong đó SQL được trừu tượng hóa thành các đối tượng.

Để chèn một mục mới vào cơ sở dữ liệu mà không trừu tượng, lập trình viên phải biết SQL. Vì vậy, để chèn một mục mới, lập trình viên cần nhớ cú pháp SQL để chèn một mục mới vào bảng:

INSERT INTO Items (field1, field2) VALUES (value1, value2)

Nhưng với sự trừu tượng, lập trình viên chỉ cần nhận thức được ý tưởng về những gì anh ta muốn làm. Một sự trừu tượng hướng đối tượng có thể trông giống như:

Item item = new Item(value1, value2)

Bạn thậm chí có thể đi xa hơn một chút và suy nghĩ về thực tế rằng chính SQL là một sự trừu tượng hóa rất lớn đối với hàng tấn cấu trúc và thuật toán lưu trữ dữ liệu tinh vi, hoàn toàn nằm trong tầm tay bạn với giá học ngôn ngữ khai báo đơn giản.


Đối diện của sự trừu tượng

Dựa trên những gì chúng ta đã định nghĩa rằng sự trừu tượng thực sự là tất cả về việc làm cho nó đủ để chỉ biết khái niệm tinh túy trong tay, chúng ta có thể dễ dàng suy ra rằng sự đối lập của sự trừu tượng trong thực tế là bí truyền , trong đó việc sử dụng hoặc hiểu biết đòi hỏi phải có một số kiến ​​thức chuyên ngành về đặc thù của chủ đề.


1

"Phân tâm" - như trong những gì xảy ra khi một đoạn mã không thể hiểu được mà không nhận thức được nhiều chi tiết tiếp tuyến về những gì thực sự xảy ra khi nó được chạy.


0

Sự trừu tượng không đến từ abs-trahere và tôi muốn nói nó được dịch tốt nhất là "rút ra từ" (mặc dù bản dịch theo nghĩa đen vì thế sẽ bị mất sức kéo). Tôi đã cố gắng giải thích điều đó trong một bài đăng trên blog .

Trừu tượng là quá trình rút ra bản chất từ một cái gì đó cụ thể. Những thứ cụ thể thường rất phức tạp. Ví dụ, nếu bạn nhìn vào chiếc ghế gần nhất bạn có thể thấy, có rất nhiều chi tiết, thực sự cấu thành nó. Vật liệu của nó, cấu trúc của nó, hình dạng của nó, và như vậy. Nhưng không có những thứ này thực sự là thiết yếu . Điều cần thiết là, bạn có thể ngồi trên nó.
"Trừu tượng" của bạn về một cái gì đó là những gì bạn nhìn thấy, khi bạn nhìn vào nó. Khi bạn nhìn vào chiếc ghế đó, bạn thấy một chiếc ghế. Một đô vật thực sự có thể nhìn thấy một vũ khí thay thế.

Vì vậy, kết quả của sự trừu tượng thực sự là bản chất của một cái gì đó từ một quan điểm nhất định.

Trong trường hợp của một bitmap hoặc một văn bản, sự trừu tượng là, bạn nghĩ về một giá trị nhất định là một cái gì đó đáp ứng một mục đích cụ thể. Tùy thuộc vào ngôn ngữ lập trình trong tay, bạn có thể thể hiện suy nghĩ của mình trong ngữ nghĩa ngôn ngữ.
Nhưng đối với bạn, điều đó không thực sự quan trọng, cho dù dữ liệu cơ bản là "nhị phân". Nó sẽ hoạt động tốt như vậy nếu nó được đọc trong thời gian thực từ một cuộn giấy được nướng, có dữ liệu được mã hóa với mẫu đục lỗ 13 bit. Bạn không thực sự quan tâm.
Tất nhiên việc thực hiện một bitmap cụ thể bằng cách sử dụng dữ liệu nhị phân được lưu trữ trong bộ nhớ có một số lợi thế rõ ràng và hầu hết mọi người sẽ thích điều đó. Tuy nhiên, vẫn còn một số cách để thực sự mã hóa thông tin bitmap chẳng hạn. Và thậm chí có thể có ý nghĩa khi sử dụng các cách tiếp cận khác nhau cùng nhau. Nhưng ngoại trừ đoạn mã nhỏ, chọn cách biểu diễn dựa trên một số ràng buộc, bạn không muốn có bất kỳ kiến ​​thức nào về bản chất cụ thể của bitmap. Bạn chỉ quan tâm đến những gì thiết yếu từ quan điểm của bạn. Trong ví dụ này, có lẽ một số phương pháp để thao tác dữ liệu pixel.

Bởi vì một sự trừu tượng thực sự là đầu tiên và trước hết là một ý tưởng (như trong một mô hình lý tưởng của một cái gì đó), điều ngược lại có thể được gọi là "hóa thân". Vì lập trình hiếm khi là một thứ xác thịt, người ta có thể đi với "thực hiện", trong khi trừu tượng thường được biểu diễn dưới dạng giao diện.
Cụ thể hóa như đã nói bởi @Lior, cũng là một từ rất phù hợp, mặc dù nó tập trung nhiều hơn vào các phương tiện (nghĩa là đưa ra một cái gì đó cụ thể - tất nhiên là không thể tránh khỏi) hơn là mục tiêu thực tế (nghĩa là thực hiện một ý tưởng).


0

Trừu tượng là quá trình loại bỏ các chi tiết cụ thể để khái quát một cái gì đó. Nếu sự trừu tượng là loại bỏ các chi tiết cụ thể, thì có lẽ điều ngược lại với sự trừu tượng hóa là đặc điểm kỹ thuật.

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.