Según tengo entendido, abstracción es el término que usamos para cuando se crea más significado a partir de algo más simple sin alterarlo. Se deriva del verbo latino abstrahere (para 'alejarse'). Por ejemplo, el texto es solo una abstracción de datos binarios, al igual que los mapas de bits. Entonces, en las computadoras, el texto y los mapas de bits existen además de (se implementan en términos de) datos binarios.
Mi pregunta es: ¿cuál es el término opuesto? Si quiero saber las posibles cosas más básicas que los mapas de bits podrían implementarse en términos distintos a los datos binarios, como mosaicos para un mosaico o parches de tela para una colcha de retazos, ¿qué estoy pidiendo? hay una palabra para eso?
La abstracción tiene connotaciones de generalización y el proceso opuesto es la especialización. IDK si eso ayuda.
fuente
Respuestas:
Implementación.
La abstracción son palabras cortas, es el proceso mental de obtener un modelo (reducido) de una cosa del mundo real, y "compactar" en un concepto o una idea.
Entonces, lo opuesto es tomar un concepto o una idea y convertirla en una cosa del mundo real ;-)
fuente
Generalmente
Concretización : como en la clase de hormigón C ++
y en algunos casos:
Especialización : como en C ++ Template Specialization
Agregado el 12 de junio de 2012 : este es un término encantador:
Reificación : como en varios lenguajes de programación
fuente
En el contexto de la programación, su reducción .
Reduccionismo
Como en: "He reducido el problema a sus términos más simples".
fuente
"Concreto" es lo opuesto a "abstracto", por lo que lo opuesto a "abstracción" es lógicamente "concretización". Sin embargo, no existe exactamente un opuesto significativo, ya que generalmente solo se habla de abstracción y rara vez se piensa en lo contrario.
fuente
Comencemos desde cero. En primer lugar, ¿qué es realmente la abstracción?
El problema / motivo
Cuando programa, a menudo tiene que resolver problemas muy específicos y detallados.
El motivo principal para la abstracción es cuando puede encontrarse en una situación en la que su programa maneja todo el problema como una sola unidad, con muchas pequeñas peculiaridades discretas que requieren atención y comprensión. El problema aquí es que es difícil para los seres humanos manejar grandes cantidades de datos a la vez.
La solución: abstracción
Para que pueda comprender exactamente lo que necesita para implementar su idea , extraiga soluciones detalladas en abstracciones simplificadas .
Por ejemplo, echemos un vistazo a ORM (mapeo relacional de objetos), donde SQL se abstrae en objetos.
Para insertar un nuevo elemento en una base de datos sin abstracciones, un programador debe conocer SQL. Entonces, para insertar un nuevo elemento, un programador debe recordar la sintaxis de SQL para insertar un nuevo elemento en una tabla:
Pero con las abstracciones, el programador solo necesita ser consciente de la idea de lo que desea hacer. Una abstracción orientada a objetos podría verse así:
Incluso puede ir un poco más allá y pensar en el hecho de que el SQL en sí mismo es una gran abstracción para toneladas de estructuras y algoritmos sofisticados de almacenamiento de datos, que están completamente a su alcance por el precio de aprender un lenguaje declarativo simple.
El opuesto de la abstracción
Con base en lo que definimos ahora que la abstracción se trata realmente de hacer que sea suficiente solo conocer el concepto por excelencia en cuestión, podemos deducir fácilmente que lo contrario de la abstracción es de hecho esotérica , donde el uso o la comprensión implica tener algún tipo de conocimiento especializado de Las peculiaridades del sujeto.
fuente
"Distracción": como en lo que sucede cuando un fragmento de código no se puede entender sin tener en cuenta muchos detalles tangenciales de lo que realmente sucede cuando se ejecuta.
fuente
La abstracción proviene de abs-trahere y yo diría que se traduce mejor como "dibujar de" (aunque la traducción literal sería, por lo tanto, de-tracción). He tratado de explicar eso en una publicación de blog .
La abstracción es el proceso de extraer la esencia de algo concreto. Las cosas concretas suelen ser enormemente complejas. Por ejemplo, si miras la silla más cercana que puedes ver, hay muchos detalles que realmente la constituyen. Su material, su estructura, su forma, etc. Pero ninguna de estas cosas es realmente esencial . Lo esencial es que te puedes sentar en él.
Tu "resumen" de algo es lo que ves cuando lo miras. Cuando miras esa silla, ves una silla. Un luchador podría ver un arma en su lugar.
Entonces, el resultado de la abstracción es realmente la esencia de algo desde una perspectiva dada.
En el caso de un mapa de bits o un texto, la abstracción es que usted piensa en un valor dado como algo que cumple un propósito específico. Dependiendo del lenguaje de programación disponible, puede representar su pensamiento dentro de la semántica del lenguaje.
Pero para usted, realmente no importa, si los datos subyacentes son "binarios". Funcionaría igual de bien si se leyera en tiempo real a partir de un rollo de papel duro, que tiene los datos codificados con un patrón de perforación de 13 bits. Realmente no te importa.
Por supuesto, implementar un mapa de bits concreto utilizando datos binarios almacenados en la memoria tiene algunas ventajas obvias y la mayoría de las personas preferirán eso. Sin embargo, todavía hay varias formas de codificar información de mapa de bits, por ejemplo. E incluso podría tener sentido utilizar diferentes enfoques uno al lado del otro. Pero a excepción del pequeño fragmento de código, que elige la representación en función de una serie de restricciones, no desea tener ningún conocimiento sobre la naturaleza concreta del mapa de bits. Solo te importa lo que es esencial desde tu perspectiva. En este ejemplo, es probable que haya varios métodos para manipular datos de píxeles.
Debido a que una abstracción es en primer lugar una idea (como en un modelo ideal de algo), lo contrario podría llamarse "encarnación". Dado que la programación rara vez es algo carnal, uno podría ir con la "implementación", mientras que las abstracciones a menudo se representan como interfaces.
La concretización, como dijo @Lior, también es una palabra muy adecuada, a pesar de que se centra más en los medios (es decir, hacer algo concreto, que por supuesto es inevitable) en lugar del objetivo real (es decir, implementar una idea).
fuente
La abstracción es el proceso de eliminar detalles para generalizar algo. Si la abstracción es la eliminación de detalles, entonces tal vez lo contrario de la abstracción sea la especificación.
fuente