Gregor Kiczales

Last updated

Gregor Kiczales
Gregor Kiczales AOSD.jpg
Born
Gregor Jean Kiczales

1961 (age 6263)
CitizenshipUnited States, Canada
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 Canadian 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

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 in 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 concept 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.

<span class="mw-page-title-main">Akinori Yonezawa</span> Japanese computer scientist

Akinori Yonezawa(born June 17, 1947) is a Japanese computer scientist. Professor Emeritus of the University of Tokyo. Received Ph.D. from the Massachusetts Institute of Technology (MIT). Currently, a senior fellow at the Chiba Institute of Technology, Software Technology and Artificial Intelligence Research Center. Former member of the Science Council of Japan. Specializes in object-oriented programming languages, distributed computing and information security. From its beginning, he contributed to the promotion and development of object-oriented programming, which is the basis of programming languages most commonly used today, and served as a program committee member and chairman of the main international conferences OOPSLA and ECOOP. At the same time, he is internationally known as a pioneer of the concepts and models of “concurrent/parallel objects". In software systems constructed based on concurrent/parallel objects, information processing and computation proceed by concurrent/parallel message passing among a large number of objects. Yonezawa's concurrent (parallel) objects are influenced by Actors, the concept of which was proposed by Carl Hewitt at MIT's AI Lab in the early 1970s and later rigorously formulated by Gul Agha. However, concurrent objects and actors are fundamentally different. An actor is an object that does not have a "state," whereas Yonezawa's concurrent (parallel) object can have a persistent state. For this reason, concurrent (parallel) objects are often used in implementing large parallel processing software systems. Large-scale software systems built and put into practical use based on concurrent (parallel) objects include an online virtual world system Second Life, social networking services such as Facebook and X (Twitter), and large-scale molecular dynamics simulation systems such as NAMD.

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.

<span class="mw-page-title-main">Carl Hewitt</span> American computer scientist; Planner programming languagedesigner (1944-2022)

Carl Eddie Hewitt was an American computer scientist who designed the Planner programming language for automated planning and the actor model of concurrent computation, which have been influential in the development of logic, functional and object-oriented programming. Planner was the first programming language based on procedural plans invoked using pattern-directed invocation from assertions and goals. The actor model influenced the development of the Scheme programming language, the π-calculus, and served as an inspiration for several other programming languages.

The Department of Computer Science 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 November 2023, it has 66 faculty, 64 staff, 259 graduate students, and 2,774 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 September 2, 2018.
  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. (June 18, 2001). 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. (September 1, 1988). "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 September 2, 2018.
  8. "Software Practices Lab - Department of Computer Science - UBC". spl.cs.ubc.ca. Retrieved September 2, 2018.
  9. "UBC CPSC 110". sites.google.com. UBC Computer Science. Retrieved September 2, 2018.
  10. "Co-Founder Of Intentional Software Has Left The Company - InformationWeek". InformationWeek. Retrieved September 2, 2018.
  11. "The AITO Dahl-Nygaard Prize Winners For 2012". www.aito.org. Retrieved September 2, 2018.
  12. "Gregor Kiczales Named 2012 ACM Fellow | Computer Science at UBC". www.cs.ubc.ca. Retrieved September 2, 2018.
  13. "Gregor Kiczales Welcomed As Executive Director, UBC Extended Learning (UBC ExL) | Vice President Academic". academic.ubc.ca. Archived from the original on November 18, 2017. Retrieved September 2, 2018.