Aspect-oriented (AO) programming is a direct outgrowth of object-oriented programming research done at Xerox PARC (Palo Alto Research Center) from 1972 until the mid-1980s. The purpose of, and need for, AO is to address the crosscutting concerns and information structuring issues that occur in many medium, and all large, non-trivial, computer programs; the sort of problems that require what is called "comb" code: repeating lines of code that are almost identical, but have some small difference in each line.