Qual è l'opposto dell'astrazione? [chiuso]


19

A quanto ho capito, astrazione è il termine che usiamo quando si crea più significato da qualcosa di più semplice senza alterarlo. Deriva dal verbo latino asstrahere (per "disegnare via"). Ad esempio, il testo è solo un'astrazione di dati binari, come lo sono le bitmap. Quindi, nei computer, testo e bitmap esistono sopra (sono implementati in termini di) dati binari.

La mia domanda è: qual è il termine opposto? Se voglio sapere le possibili cose più basilari che le bitmap potrebbero essere implementate in termini diversi dai dati binari - cose come tessere per un mosaico o patch di tessuto per una trapunta di patchwork - cosa sto chiedendo? C'è una parola per quello?

L'astrazione ha connotazioni di generalizzazione e il processo opposto di ciò è la specializzazione. IDK se questo aiuta.


7
Questo potrebbe essere più adatto a English.SE.
Péter Török,

3
In alcuni casi semplicità. Ho visto molte astrazioni terribili che hanno solo complicato le cose;
William,

Penso che questo concetto non abbia una parola soddisfacente. Lascia una moneta così: "de-astrazione"
Conor Cosnett il

Risposte:


8

Implementazione.

L'astrazione è una parola breve, è il processo mentale per ottenere un modello (ridotto) di una cosa del mondo reale e "compatta" in un concetto o un'idea.

Quindi l'opposto è prendere un concetto o un'idea e trasformarlo in una cosa del mondo reale ;-)


2
Non so se lo definirei così tanto l'opposto piuttosto che un concetto complementare. Come in, ogni volta che hai un'astrazione nella programmazione, hai anche l'implementazione che l'astrazione sta nascondendo. Tuttavia, questo sembra essere ciò che la domanda sta ponendo.
jhocking

@jhocking I freni e l'acceleratore di un'auto sono anche opposti. Saluti.
Umlcat,

"manifestazione" di un'astrazione eterea dal regno platonico alla (pura) realtà fisica
Conor Cosnett,

41

Generalmente

Concretizzazione - Come in C ++ classe concreta

e in alcuni casi:

Specializzazione - Come nella specializzazione dei modelli C ++

Aggiunto il 12 giugno 2012 : questo è un termine adorabile:

Reificazione - Come in molti linguaggi di programmazione


6
Anche se non sono in disaccordo con l'uso di "concretizzare", è un po 'ingombrante parola ... "concrezione" sarebbe meglio? thefreedictionary.com/concretion
HorusKol

1
Concretezza di sicuro.
Zachary Yates,

È messo in cemento allora, dopo la concrezione?
Chiedo

5

Nel contesto della programmazione della sua riduzione .

Il riduzionismo

Come in: "Ho ridotto il problema ai termini più semplici".


4

"Calcestruzzo" è l'opposto di "astratto", quindi l'opposto di "astrazione" è logicamente "concretizzazione". Non esiste esattamente un contrario significativo, poiché generalmente si parla solo di astrazione e raramente si pensa al contrario.


3

Partiamo da zero. Prima di tutto, cos'è davvero l'astrazione?

Il problema / motivo

Quando programmi, spesso devi risolvere problemi molto dettagliati.

Il motivo principale per l'astrazione è quando potresti trovarti in una situazione in cui il tuo programma gestisce l'intero problema come una singola unità, con molte piccole peculiarità discrete che richiedono attenzione e comprensione. Il problema qui è che è difficile per gli esseri umani gestire una così grande quantità di dati contemporaneamente.

La soluzione: astrazione

Affinché tu possa capire esattamente ciò che è necessario per implementare la tua idea , estrai soluzioni dettagliate in astrazioni semplificate .

Ad esempio, diamo un'occhiata a ORM (Object-Relational Mapping), in cui SQL viene estratto in oggetti.

Per inserire un nuovo elemento in un database senza astrazioni, un programmatore deve conoscere SQL. Quindi per inserire un nuovo elemento un programmatore deve ricordare la sintassi SQL per inserire un nuovo elemento in una tabella:

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

Ma con le astrazioni, il programmatore deve solo essere consapevole dell'idea di ciò che desidera fare. Un'astrazione orientata agli oggetti potrebbe apparire come:

Item item = new Item(value1, value2)

Puoi anche andare un po 'oltre e pensare al fatto che SQL stesso è un'enorme astrazione per tonnellate di sofisticate strutture e algoritmi di archiviazione dei dati, che sono completamente a portata di mano per il prezzo dell'apprendimento di un semplice linguaggio dichiarativo.


L'opposto dell'astrazione

Sulla base di ciò che abbiamo ora definito che l' astrazione è davvero tutto per rendere sufficiente conoscere solo il concetto per antonomasia a portata di mano, possiamo facilmente dedurre che l'opposto dell'astrazione è in realtà esoterica , in cui l'uso o la comprensione comportano avere una sorta di conoscenza specializzata di le peculiarità del soggetto.


1

"Distrazione" - come in ciò che accade quando un pezzo di codice non può essere compreso senza essere a conoscenza di molti dettagli tangenziali di ciò che accade realmente quando viene eseguito.


0

L'astrazione proviene da abs-trahere e direi che è meglio tradotta come "trarre da" (sebbene la traduzione letterale sarebbe quindi de-trazione). Ho provato a spiegarlo in un post sul blog .

L'astrazione è il processo di trarre l' essenza da qualcosa di concreto. Le cose concrete di solito sono enormemente complesse. Ad esempio, se guardi la sedia più vicina che riesci a vedere, ci sono molti dettagli che la costituiscono effettivamente. Il suo materiale, la sua struttura, la sua forma e così via. Ma nessuna di queste cose è davvero essenziale . L'essenziale è che ci si possa sedere sopra.
Il tuo "astratto" di qualcosa è ciò che vedi, quando lo guardi. Quando guardi quella sedia, vedi una sedia. Un lottatore potrebbe invece vedere un'arma.

Quindi il risultato dell'astrazione è davvero l'essenza di qualcosa da una determinata prospettiva.

Nel caso di una bitmap o di un testo, l'astrazione è che tu pensi a un dato valore come a qualcosa che soddisfa uno scopo specifico. A seconda del linguaggio di programmazione a portata di mano, puoi rappresentare il tuo pensiero all'interno della semantica del linguaggio.
Ma per te, non importa, se i dati sottostanti sono "binari". Funzionerebbe altrettanto bene se fosse letto in tempo reale da un rotolo di carta lavorata, con i dati codificati con un modello di perforazione a 13 bit. Non ti interessa davvero.
Ovviamente l'implementazione di una bitmap concreta utilizzando dati binari archiviati in memoria presenta alcuni ovvi vantaggi e la maggior parte delle persone preferirà questo. Tuttavia, ci sono ancora diversi modi per codificare effettivamente le informazioni bitmap, ad esempio. E potrebbe anche avere senso usare approcci diversi l'uno accanto all'altro. Ma ad eccezione del piccolo pezzo di codice, che sceglie la rappresentazione in base a una serie di vincoli, non si desidera avere alcuna conoscenza della natura concreta della bitmap. Ti preoccupi solo di ciò che è essenziale dal tuo punto di vista. In questo esempio è probabilmente una serie di metodi per manipolare i dati pixel.

Poiché un'astrazione è in realtà prima di tutto un'idea (come in un modello ideale di qualcosa), il contrario potrebbe essere chiamato "incarnazione". Dal momento che la programmazione è raramente una cosa carnale, si potrebbe andare con "implementazione", mentre le astrazioni sono spesso rappresentate come interfacce.
Anche la concretizzazione, come affermato da @Lior, è una parola molto adatta, anche se si concentra maggiormente sui mezzi (ovvero rendere concreto qualcosa - che ovviamente è inevitabile) piuttosto che sull'obiettivo reale (cioè implementare un'idea).


0

L'astrazione è il processo di rimozione dei dettagli per generalizzare qualcosa. Se l'astrazione è la rimozione di specifici, forse l'opposto dell'astrazione è la specifica.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.