Gregor Kiczales

Last updated
Gregor Kiczales
Gregor Kiczales AOSD.jpg
Born
Gregor Jean Kiczales

1961 (age 6162)
NationalityAmerican
Alma mater Massachusetts Institute of Technology (dropped out)
OccupationComputer Scientist
Employer University of British Columbia
Known for aspect-oriented programming, AspectJ
Website www.cs.ubc.ca/~gregor/

Gregor Kiczales is an American computer scientist. He is currently a professor of computer science at the University of British Columbia in Vancouver, British Columbia, Canada. [1] He is best known for developing the concept of aspect-oriented programming, [2] and the AspectJ extension to the Java programming language, both of which he designed while working at Xerox PARC. [3] He is also one of the co-authors of the specification for the Common Lisp Object System, [4] and is the author of the book The Art of the Metaobject Protocol , along with Jim Des Rivières and Daniel G. Bobrow. [5]

Contents

Most of Kiczales' work throughout the years has been focused on allowing software engineers to create programs that look as much as possible like their design, to reduce complexity and make code maintenance easier, ultimately improving software quality.

Career

After pursuing undergraduate studies at MIT, Kiczales started his research career in 1980 at the MIT Lab for Computer Science, where he stayed until 1983. In 1984, he joined the Xerox Palo Alto Research Center software research lab as Member of Research Staff, becoming Principal Scientist in 1996. Throughout his time at PARC, Kiczales developed some of his most important research works, including aspect-oriented programming and AspectJ. He left PARC in 1999 to focus on computer science education. [6]

In 2000, he moved to Canada and joined the Department of Computer Science at the University of British Columbia as a tenured professor. [7] At UBC, Kiczales started the Software Practices Lab [8] and designed a number of courses related to software engineering and programming languages. Most importantly, he designed CPSC 110, the introductory programming course in the UBC curriculum, which students take in their first year of undergraduate studies. The course focuses on systematic program design by means of design recipes . [9]

In 2002, he co-founded Intentional Software with Charles Simonyi, but then left the company in 2003 in order to return to UBC. [10]

In 2012, he won the Senior AITO Dahl-Nygaard Prize for his work on the Common Lisp Object System, [11] and was named an ACM Fellow for his contributions to aspect-oriented programming. [12]

In July 2017, he was appointed executive director of UBC Extended Learning. [13]

See also

Related Research Articles

<span class="mw-page-title-main">Lisp (programming language)</span> Programming language family

Lisp is a family of programming languages with a long history and a distinctive, fully parenthesized prefix notation. Originally specified in 1960, Lisp is the second-oldest high-level programming language still in common use, after Fortran. Lisp has changed since its early days, and many dialects have existed over its history. Today, the best-known general-purpose Lisp dialects are Common Lisp, Scheme, Racket and Clojure.

<span class="mw-page-title-main">PARC (company)</span> Research and development company

PARC is a research and development company in Palo Alto, California. Founded in 1969 by Jacob E. "Jack" Goldman, chief scientist of Xerox Corporation, the company was originally a division of Xerox, tasked with creating computer technology-related products and hardware systems.

Gauche is an R7RS Scheme implementation. It is designed for scripting in a production environment. It is intended to allow programmers and system administrators to write scripts in support of daily operations. Quick startup, built-in system interface, native multilingual support are some of its key design goals.

<span class="mw-page-title-main">Common Lisp Object System</span>

The Common Lisp Object System (CLOS) is the facility for object-oriented programming which is part of ANSI Common Lisp. CLOS is a powerful dynamic object system which differs radically from the OOP facilities found in more static languages such as C++ or Java. CLOS was inspired by earlier Lisp object systems such as MIT Flavors and CommonLoops, although it is more general than either. Originally proposed as an add-on, CLOS was adopted as part of the ANSI standard for Common Lisp and has been adapted into other Lisp dialects such as EuLisp or Emacs Lisp.

<span class="mw-page-title-main">Bertrand Meyer</span> French computer scientist

Bertrand Meyer is a French academic, author, and consultant in the field of computer languages. He created the Eiffel programming language and the idea of design by contract.

Interlisp is a programming environment built around a version of the programming language Lisp. Interlisp development began in 1966 at Bolt, Beranek and Newman in Cambridge, Massachusetts with Lisp implemented for the Digital Equipment Corporation (DEC) PDP-1 computer by Danny Bobrow and D. L. Murphy. In 1970, Alice K. Hartley implemented BBN LISP, which ran on PDP-10 machines running the operating system TENEX. In 1973, when Danny Bobrow, Warren Teitelman and Ronald Kaplan moved from BBN to the Xerox Palo Alto Research Center (PARC), it was renamed Interlisp. Interlisp became a popular Lisp development tool for artificial intelligence (AI) researchers at Stanford University and elsewhere in the community of the Defense Advanced Research Projects Agency (DARPA). Interlisp was notable for integrating interactive development tools into an integrated development environment (IDE), such as a debugger, an automatic correction tool for simple errors, and analysis tools.

In computer science, a metaobject is an object that manipulates, creates, describes, or implements objects. The object that the metaobject pertains to is called the base object. Some information that a metaobject might define includes the base object's type, interface, class, methods, attributes, parse tree, etc. Metaobjects are examples of the computer science concept of reflection, where a system has access to its own internal structure. Reflection enables a system to essentially rewrite itself on the fly, to alter its own implementation as it executes.

<span class="mw-page-title-main">Dan Ingalls</span> American computer scientist

Daniel Henry Holmes Ingalls Jr. is a pioneer of object-oriented computer programming and the principal architect, designer and implementer of five generations of Smalltalk environments. He designed the bytecoded virtual machine that made Smalltalk practical in 1976. He also invented bit blit, the general-purpose graphical operation that underlies most bitmap computer graphics systems today, and pop-up menus. He designed the generalizations of BitBlt to arbitrary color depth, with built-in scaling, rotation, and anti-aliasing. He made major contributions to the Squeak version of Smalltalk, including the original concept of a Smalltalk written in itself and made portable and efficient by a Smalltalk-to-C translator.

Ralph E. Johnson is a Research Associate Professor in the Department of Computer Science at the University of Illinois at Urbana-Champaign. He is a co-author of the influential computer science textbook Design Patterns: Elements of Reusable Object-Oriented Software, for which he won the 2010 ACM SIGSOFT Outstanding Research Award. In 2006 he was awarded the Dahl–Nygaard Prize for his contributions to the state of the art embodied in that book as well.

Richard P. Gabriel is an American computer scientist known for his work in computing related to the programming language Lisp, and especially Common Lisp. His best known work was a 1990 essay "Lisp: Good News, Bad News, How to Win Big", which introduced the phrase Worse is Better, and his set of benchmarks for Lisp, termed Gabriel Benchmarks, published in 1985 as Performance and evaluation of Lisp systems. These became a standard way to benchmark Lisp implementations.

<span class="mw-page-title-main">Programming language theory</span> Branch of computer science

Programming language theory (PLT) is a branch of computer science that deals with the design, implementation, analysis, characterization, and classification of formal languages known as programming languages. Programming language theory is closely related to other fields including mathematics, software engineering, and linguistics. There are a number of academic conferences and journals in the area.

<span class="mw-page-title-main">Luca Cardelli</span> Italian computer scientist

Luca Andrea Cardelli is an Italian computer scientist who is a research professor at the University of Oxford, UK. Cardelli is well known for his research in type theory and operational semantics. Among other contributions, in programming languages, he helped design the language Modula-3, implemented the first compiler for the (non-pure) functional language ML, defined the concept of typeful programming, and helped develop the experimental language Polyphonic C#.

CommonLoops is an early programming language which extended Common Lisp to include Object-oriented programming functionality and is a dynamic object system which differs from the OOP facilities found in static languages such as C++ or Java. Like New Flavors, CommonLoops supported multiple inheritance, generic functions and method combination. CommonLoops also supported multi-methods and made use of metaobjects. CommonLoops and New Flavors were the primary ancestors of CLOS. CommonLoops was supported by a portable implementation known as Portable CommonLoops (PCL) which ran on all Common Lisp implementations of the day.

<i>The Art of the Metaobject Protocol</i>

The Art of the Metaobject Protocol (AMOP) is a 1991 book by Gregor Kiczales, Jim des Rivieres, and Daniel G. Bobrow on the subject of metaobject protocol.

The Dahl–Nygaard Prize is awarded annually to a senior researcher with outstanding career contributions and a younger researcher who has demonstrated great potential. The senior prize is recognized as one of the most prestigious prizes in the area of software engineering, though it is a relatively new prize.

The UBC Computer Science department at the University of British Columbia was established in May 1968. UBC CS is located at the UBC Point Grey campus in Vancouver, British Columbia, Canada. As of September 2022, it has 65 faculty, 62 staff, 248 graduate students, and 2,763 undergraduates.

<span class="mw-page-title-main">Aspect weaver</span> Software programming utility

An aspect weaver is a metaprogramming utility for aspect-oriented languages designed to take instructions specified by aspects and generate the final implementation code. The weaver integrates aspects into the locations specified by the software as a pre-compilation step. By merging aspects and classes, the weaver generates a woven class.

<span class="mw-page-title-main">James Noble (computer scientist)</span>

James Noble was the 2016 winner of the Dahl-Nygaard Prize. He was Professor of Computer Science at the Victoria University of Wellington, in Wellington, New Zealand until February 2022.

References

  1. "Gregor Kiczales | Computer Science at UBC". www.cs.ubc.ca. Retrieved 2018-09-02.
  2. Kiczales, Gregor; Lamping, John; Mendhekar, Anurag; Maeda, Chris; Lopes, Cristina; Loingtier, Jean-Marc; Irwin, John (1997), "Aspect-oriented programming", ECOOP'97 — Object-Oriented Programming, Springer Berlin Heidelberg, pp. 220–242, doi:10.1007/bfb0053381, ISBN   9783540630890, S2CID   18357295
  3. Kiczales, Gregor; Hilsdale, Erik; Hugunin, Jim; Kersten, Mik; Palm, Jeffrey; Griswold, William G. (2001-06-18). An Overview of AspectJ. Springer-Verlag. pp. 327–353. ISBN   3540422064.
  4. Bobrow, Daniel G.; DeMichiel, Linda G.; Gabriel, Richard P.; Keene, Sonya E.; Kiczales, Gregor; Moon, David A. (1988-09-01). "Common Lisp Object System specification". ACM SIGPLAN Notices. 23 (SI): 1–142. doi: 10.1145/885631.885632 . ISSN   0362-1340. S2CID   27580105.
  5. Kiczales, Gregor; Des Rivières, Jim; Bobrow, Daniel G. (1991). The art of the metaobject protocol. Cambridge, Mass.: MIT Press. ISBN   0262111586. OCLC   23650336.
  6. Kiczales, Gregor (January 19, 2003). "Gregor Kiczales' CV" (PDF). UBC Department of Computer Science.
  7. "New tech aces boost UBC's profile" . Retrieved 2018-09-02.
  8. "Software Practices Lab - Department of Computer Science - UBC". spl.cs.ubc.ca. Retrieved 2018-09-02.
  9. "UBC CPSC 110". sites.google.com. UBC Computer Science. Retrieved 2018-09-02.
  10. "Co-Founder Of Intentional Software Has Left The Company - InformationWeek". InformationWeek. Retrieved 2018-09-02.
  11. "The AITO Dahl-Nygaard Prize Winners For 2012". www.aito.org. Retrieved 2018-09-02.
  12. "Gregor Kiczales Named 2012 ACM Fellow | Computer Science at UBC". www.cs.ubc.ca. Retrieved 2018-09-02.
  13. "Gregor Kiczales Welcomed As Executive Director, UBC Extended Learning (UBC ExL) | Vice President Academic". academic.ubc.ca. Retrieved 2018-09-02.