Qual é o oposto da abstração? [fechadas]


19

Pelo que entendi, abstração é o termo que usamos quando mais significado é criado a partir de algo mais simples sem alterá-lo. É derivado do verbo latino abstrahere (para 'afastar'). Por exemplo, o texto é apenas uma abstração de dados binários - assim como os bitmaps. Portanto, nos computadores, existem textos e bitmaps sobre (são implementados em termos de) dados binários.

Minha pergunta é: qual é o termo oposto? Se eu quiser saber as possíveis coisas mais básicas que os bitmaps poderiam ser implementados em termos de outros dados binários - coisas como blocos para mosaico ou remendos de tecido para uma colcha de retalhos - o que estou pedindo? Existe uma palavra para isso?

A abstração tem conotações de generalização e o processo oposto disso é a especialização. IDK se isso ajuda.


7
Isso pode ser mais adequado no English.SE.
Péter Török

3
Em alguns casos, simplicidade. Eu já vi muitas abstrações terríveis que só complicaram as coisas;
William

Eu acho que esse conceito não tem uma palavra satisfatória. Vamos cunhar uma coisa assim: "abstração"
Conor Cosnett 26/09

Respostas:


8

Implementação.

Abstração são palavras curtas, é o processo mental de obter um modelo (reduzido) de uma coisa do mundo real e "compactar" um conceito ou uma idéia.

Portanto, o oposto é pegar um conceito ou uma idéia e transformá-lo em algo do mundo real ;-)


2
Não sei se chamaria isso tanto de oposto quanto de um conceito complementar. Como sempre, toda vez que você tem uma abstração na programação, você também tem a implementação que a abstração está ocultando. No entanto, isso parece ser o que a pergunta está pedindo.
Jhocking

@jhocking Os freios e o acelerador de um carro são opostos, mas também complementam. Felicidades.
umlcat

"manifestação" de uma abstração etérea do reino platônico à (mera) realidade física
Conor Cosnett

41

Usualmente

Concretização - como na classe C ++ Concrete

e em alguns casos:

Especialização - Como na especialização de modelos C ++

12 de junho de 2012 adicionado : Este é um termo adorável:

Reificação - Como em várias linguagens de programação


6
Embora eu não concorde com o uso de 'concretizar' - é uma palavra meio complicada ... 'concreto' não seria melhor? thefreedictionary.com/concretion
HorusKol 09/10

1
Concretização, com certeza.
Zachary Yates

É fixado em concreto então, após a concreção? Apenas pedindo :-)
JensG

5

No contexto da programação de sua redução .

Reducionismo

Como em: "Reduzi o problema aos seus termos mais simples".


4

"Concreto" é o oposto de "abstrato", portanto, o oposto de "abstração" é logicamente "concretização". No entanto, não há exatamente um oposto significativo, pois geralmente você fala apenas sobre abstração e raramente pensa sobre isso.


3

Vamos começar do zero. Primeiro de tudo, o que de fato é abstração?

O Problema / Motivo

Quando você programa, geralmente precisa resolver problemas detalhados de maneira muito específica.

O motivo principal da abstração é quando você se encontra em uma situação em que seu programa lida com todo o problema como uma única unidade, com muitas peculiaridades discretas que requerem atenção e compreensão. O problema aqui é que é difícil para os seres humanos manipular quantidades tão grandes de dados de uma só vez.

A Solução: Abstração

Para que você possa entender exatamente o que precisa para implementar sua ideia , extraia soluções detalhadas em abstrações simplificadas .

Por exemplo, vejamos ORM (Mapeamento Relacional Objeto), onde o SQL é abstraído em objetos.

Para inserir um novo item em um banco de dados sem abstrações, um programador precisa conhecer o SQL. Portanto, para inserir um novo item, o programador precisa se lembrar da sintaxe SQL para inserir um novo item em uma tabela:

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

Mas com abstrações, o programador precisa apenas estar ciente da idéia do que ele deseja fazer. Uma abstração orientada a objetos pode se parecer com:

Item item = new Item(value1, value2)

Você pode ir um pouco além e pensar no fato de que o próprio SQL é uma grande abstração para toneladas de sofisticadas estruturas e algoritmos de armazenamento de dados, que estão ao seu alcance pelo preço de aprender uma linguagem declarativa simples.


O oposto da abstração

Com base no que agora definimos que abstração é realmente tornar suficiente conhecer apenas o conceito essencial em questão, podemos deduzir facilmente que o oposto da abstração é de fato esotérico , onde o uso ou o entendimento implica ter algum tipo de conhecimento especializado de peculiaridades do sujeito.


1

"Distração" - como no que acontece quando um pedaço de código não pode ser entendido sem estar ciente de muitos detalhes tangenciais do que realmente acontece quando é executado.


0

A abstração vem do abs-trahere e eu diria que é melhor traduzido como "draw from" (embora a tradução literal seja, portanto, de tração). Eu tentei explicar isso em um post do blog .

Abstração é o processo de extrair a essência de algo concreto. Coisas concretas são geralmente extremamente complexas. Por exemplo, se você olhar para a cadeira mais próxima que puder ver, há muitos detalhes que realmente a constituem. Seu material, sua estrutura, sua forma e assim por diante. Mas nenhuma dessas coisas é realmente essencial . O essencial é que você possa se sentar nele.
Seu "resumo" de algo é o que você vê, quando olha para ele. Quando você olha para aquela cadeira, vê uma cadeira. Um lutador pode realmente ver uma arma.

Portanto, o resultado da abstração é realmente a essência de algo de uma determinada perspectiva.

No caso de um bitmap ou de um texto, a abstração é que você pensa em um determinado valor como algo que cumpre uma finalidade específica. Dependendo da linguagem de programação em questão, você pode representar seu pensamento dentro da semântica da linguagem.
Mas para você, isso realmente não importa, se os dados subjacentes são "binários". Funcionaria tão bem se fosse lido em tempo real a partir de um rolo de papel trabalhado, que possui os dados codificados com o padrão de perfuração de 13 bits. Você realmente não se importa.
É claro que implementar um bitmap concreto usando dados binários armazenados na memória tem algumas vantagens óbvias e a maioria das pessoas prefere isso. No entanto, ainda existem várias maneiras de codificar informações de bitmap, por exemplo. E pode até fazer sentido usar abordagens diferentes lado a lado. Mas, exceto pelo pequeno pedaço de código, que escolhe a representação com base em várias restrições, você não deseja ter nenhum conhecimento sobre a natureza concreta do bitmap. Você só se importa com o que é essencial da sua perspectiva. Neste exemplo, provavelmente há vários métodos para manipular dados de pixel.

Como uma abstração é realmente, acima de tudo, uma idéia (como no modelo ideal de algo), o oposto pode ser chamado de "encarnação". Como a programação raramente é uma coisa carnal, pode-se usar "implementação", enquanto abstrações são frequentemente representadas como interfaces.
Concretização, como foi dito por @Lior, também é uma palavra muito adequada, embora se concentre mais nos meios (ou seja, tornar algo concreto - o que é inevitável) e não no objetivo real (ou seja, implementar uma idéia).


0

Abstração é o processo de remover detalhes para generalizar algo. Se a abstração é a remoção de detalhes, talvez o oposto da abstração seja a especificação.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.