I’ve been working on putting together a simpler definition for “abstraction” than I’ve been finding online that doesn’t get into other Computer Science concepts.
Here’s the conclusion I’ve come to:
There’s a few “common” meanings of the word that help to gather the full understanding of the word:
– To draw away
– To separate
– To form a general concept from consideration of particular instances
(All definitions were taken from the Chambers Dictionary)
So, if I saw chicken wrapped in a tortilla, covered in cilantro, smothered with salsa and lime and being enjoyed by the limelight of Mexican horn music, I could abstract that this is a taco.
Similarly in computer science, I don’t want to have give all those little details every time I describe something to my program, I want to just be able to say “taco” and the program would put together my cilantro, chicken, tortilla and lime programs together. Thusly, I define “taco” as meaning all of that. I have created a layer of “abstraction”. Now I can “abstract” myself further when I want to describe my dining experience by putting my taco program together with my table program and my cerveza program. Then I would define it as my “lunch program”. As a result, I now I just say “Lunch” and my program understands and creates the whole taco party.
If that’s too simple for you, I’m sorry. This wasn’t intended for you though. Check out the WikiPedia article instead.