Gregor Kiczales profesor informatyki na Uniwersytecie Kolumbii Brytyjskiej w Kanadzie.
Programowanie aspektowe (ang. aspect-oriented programming, AOP) to paradygmat tworzenia programów komputerowych wspomagający separację zagadnień i rozdzielenie programu na części w jak największym stopniu niezwiązane funkcjonalnie.
Autorem koncepcji jest Gregor Kiczales i jego zespół w firmie Xerox PARC. Stworzyli oni również pierwsze i wciąż najbardziej popularne aspektowe rozszerzenie dla języka Java - AspectJ.
Pierwsza publiczna wersja powstała w 2001 roku - datę tą oficjalnie uznaje się za początek jego istnienia.
W języku Java, oraz w innych obiektowych językach programowania podstawową jednostką modularności jest klasa.
Programy w AspectJ składają się z klas
reprezentujących tradycyjna strukturę modularna oraz aspektów przecinających strukturę klas.