|
I am a professor at Kyoto University of Advanced Science.
My professional and academic interests include highly-reflective and recursive systems, metalinguistic abstraction, virtual machines, dynamic code generation, and reconfigurable software and hardware. At Ritsumeikan I have also contributed to research work on collaborative systems and non-invasive wi-fi monitoring for estimating population behaviour.
I graduated (with honours) in Computer Science in May 1987 at the University of Manchester (UK). In October 1992 I received a Ph.D. in Computer Science from the same institution for my work on code generation techniques for dynamic languages. During my eight years at Manchester I was involved with the design and development of a wide range of programming systems, from low-level assembly language development tools for the PDP-11 through to implementations of high-level languages such as Scheme and Smalltalk.
I worked for one year on the implementation of the Dylan language, at Harlequin in Cambridge and IRCAM in Paris. From 1995 until 2004 I worked in France at INRIA, on reference-based distributed object systems and garbage collection algorithms, and at the Laboratoire d'Informatique de l'Université Paris VI (LIP6), on a highly-configurable virtual virtual machine.
In 2004 I moved from Paris to Palo Alto to join Alan Kay's Advanced Software Research Group at Hewlett-Packard Laboratories. My work continued along similar lines, building a highly-dynamic execution environment intended to support systems such as Alan's Croquet. During that time I spent two years in Japan, first as a visiting researcher at Kyoto University then as a research fellow with the IPSJ based at Ritsumeikan University.
A few more details of my research, teaching and background can be found here.
2019-04 | – | today |
Professor — Kyoto University of Advanced Science Department of Mechanical and Electrical Systems Engineering. |
||||||||
2014-04 | – | 2019-03 |
Associate Professor — Ritsumeikan University College of Information Science and Engineering. |
||||||||
2007-01 | – | 2014-03 |
Senior Computer Scientist — Viewpoints Research Institute Searching for computing's equivalent of the Bose-Einstein Condensate. Two questions occupy most of my thoughts: how can we eliminate the accidental complexity that is stifling computing (and put some of the beauty back into the discipline), and how small (physically and conceptually) can a self-describing, self-bootstrapping, self-hosting, self-sustaining computing system be? The two questions are intimately related. This work was an integral part of a five-year, multi-million dollar research project funded by the National Science Foundation. | ||||||||
| |||||||||||
2005-12 | – | 2006-12 |
Senior Computer Scientist — Foundation Systems
(consulting full-time for Viewpoints Research Institute) See above. |
||||||||
2004-04 | – | 2005-12 |
Senior Systems Software Engineer — Hewlett-Packard Laboratories I was a member of Alan Kay's Advanced Software Research Group at HP Labs, building a VVM-like runtime architecture to support the needs of the Croquet project. In contrast to earlier work more emphasis is being placed on integration (header-level compatibility with platform libraries and OS services) and configurable resource utilisation characteristics (multiple interoperable execution paradigms, pluggable garbage collectors, etc.) to better support both high-end and resource-constrained target platforms. C++ has also been removed entirely from the VVM-inspired portions of the work, eliminating the remaining barrier to late-bound behaviour at all levels within the system by making the "kernel" language support both static and dynamic compilation models within a single execution model. The entire self-describing universe can (at long last) be created from nothing. |
||||||||
1999-07 | – | 2004-03 |
Researcher — Laboratoire d'Informatique de l'Université Paris 6 My research activities were centred around highly-configurable virtual machine architectures that can be dynamically reconfigured to support different bytecoded (or other) languages. Such architectures offer solutions to many of the design, deployment and maintenance problems of distributed/agent-based/highly-interoperable systems, "smart card" applications, and embedded systems. The research issues cover a wide range of disciplines: Unification of interpreted and compiled implementation techniques, dynamic optimisation, language-neutral data and program representation, programming language semantics, security and behavioural verification, and real-time/extensible operating systems, etc. |
||||||||
1995-02 | – | 1999-06 |
Expert Engineer — INRIA Rocquencourt I was a member of the SOR project (Systèmes d'Objets Répartis) working on distributed object systems in the context of the SSP Chains project, sponsored by the CNET (Centre National d'Etudes des Télécommunications, the research arm of France Telecom). SSP Chains use reference-tracking for distributed object location and management, incorporating RPC-based remote invocation and a precise, distributed garbage collector. |
||||||||
1993-12 | – | 1995-01 |
Software Engineer — Harlequin I was a member of the Symbolic Processing Division, working on compiler back-end technology for a Dylan compiler, based at IRCAM in Paris and Harlequin in Cambridge. I was also involved with collaborative research in the context of the ESPRIT "OMI/GLUE" project, with particular interest in the development of ANDF (the OSF's Architecture Neutral Distribution Format which grew from work on TDF by the UK Defence Research Agency) as a delivery vehicle for Dylan. As part of this work I contributed to the evolution of the ANDF specification (developing its support for functional languages), and developed a Dylan "producer" for ANDF. |
||||||||
1992-03 | – | 1993-11 |
Research Associate — University of Manchester I was a member of the Medical Informatics Group working on GALEN, a European AIM (Advanced Informatics in Medicine) project. Our work centred on a novel terminological (semantic) network (written in Smalltalk) for representing medical terminology for use in diverse applications such as translation between different medical coding schemes, conversion of structured medical data into natural language, and data-driven dynamic generation of information entry forms for medical applications. My contributions included a graphical browser for semantic network content, and a comprehensive GUI toolkit designed primarily to support program-generated interfaces. A reduced version of this toolkit is available from: ftp://st.cs.uiuc.edu/Smalltalk/MANCHESTER/manchester/4.1/interactors/. I also contributed a "scripting" language for integrating the various components of the GALEN
architecture. This led to an extensible Lisp-like "kernel" running within Smalltalk.
The framework, along with example implementations of Scheme and a subset of Common Lisp, is
available from ftp://st.cs.uiuc.edu/Smalltalk/MANCHESTER/manchester/4.1/lisp/. |
||||||||
1991-01 | – | 1992-02 |
Research Associate — University of Manchester I was a member of a small project investigating object-oriented support for multimedia applications. I developed a language-independent object model, a scheme for shared object locking in distributed applications, and contributed to the design of a reference-tracking object location service. |
||||||||
1987-09 | – | 1991-01 |
Ph.D. Student — University of Manchester My Ph.D. work began by investigating compilation strategies for Smalltalk on the MUSHROOM (Manchester University Software and Hardware Realisation of an Object-Oriented Machine) architecture - a RISC-based platform with various hardware peculiarities designed to better support dynamic, object-oriented languages. The lack of hardware (and a fast emulator) dissuaded me from going too far in that direction. I decided to investigate the compilation of Smalltalk directly to 68020 native code instead. This led to the invention of delayed code generation, a technique for efficiently generating high-quality native code in single-pass compilers. My Smalltalk compiler generated 68020 code that outperformed the contemporary Xerox PARC (PS2.3) implementation (which also used dynamic translation to native code) by a factor of 3.5 on the standard Smalltalk "Green Book" benchmark suite. |
||||||||
1989-05 | – | 1989-11 |
Research Assistant — University of Manchester I took a six-month break from my Ph.D. to work as a full-time research assistant, implementing Scheme for the REKURSIV architecture. The compiler generated bytecodes that were either interpreted (by a portable virtual machine written in C) or implemented directly in microcode (on the REKURSIV hardware). This project was terminated prematurely with the demise of Linn Smart Computing, the company responsible for the REKURSIV chipset. |
||||||||
1987-06 | – | 1987-09 |
Summer Intern — University of Manchester I populated and debugged a prototype PCB for a 68010-based microcomputer. I then took an existing "monitor" program that I had previously developed for a home-made 68010 machine, and added a disassembler and other debugging utilities to it for use in the prototype. |
||||||||
1985-06 | – | 1985-09 |
Summer Intern — University of Manchester As part of the first year undergraduate course in Computer Science, the University taught assembly language programming on an old PDP-11/70 supporting 16 users, each having a "satellite" LSI-11 machine. To improve the situation I spent 6 weeks designing and implementing a standalone editor and assembler which ran within the LSI-11s, leaving the central PDP-11 responsible only for providing filestore and printing services. The system that I developed was used for undergraduate teaching during the following three years. |
||||||||
1984-09 | – | 1987-05 |
Undergraduate Student — University of Manchester A considerable component (3 months) of the third year was devoted to project work. I worked with two other students to design and implement a 32-bit, microprogrammable CPU with configurable word size and byte order. Our "vision" was a single piece of hardware that could be a 6502, a PDP-11 or a 68000, depending on the phase of the moon. The CPU was wire-wrapped on three triple-size eurocards using AMD bit-slice components. I also wrote the microassembler for this machine, in C running under AT&T Unix on a MicroVAX, and built the front-end interface (that connected the entire CPU to a 6502-based personal computer, as a "slave" processor). |
2001-03 | – |
Qualification aux fonctions de maître de conférences A formal qualification conferring the right to assume a position of Assistant Professor within the French university system. |
1992-10 | – |
Ph.D. in Computer Science - University of Manchester (UK) Dissertation: Delayed Code Generation in a Smalltalk-80 Compiler |
1987-05 | – |
B.Sc. in Computer Science - University of Manchester (UK) Class 2(i), with honours. |
1984-06 | – |
S-Level qualifications Physics, grade 1. |
1984-06 | – |
A-Level qualifications Physics, grade A. Computer Science, grade A. General Studies, grade B. Further Mathematics (Pure and Applied), grade D. |
1983-06 | – |
A-Level qualifications Mathematics (Pure and Applied), grade A. (Examination taken one year early.) |
1982-03 | – |
Miscellaneous Royal Schools of Music certificate in Classical Guitar Grade 5 (intermediate), 133 points out of 135 possible, with distinction. |
Notes: A-Level ("advanced") examinations are usually taken at the age of 17 or 18, and are prerequisites for entrance to a British university. Grades run from "A" (best) to "E" (worst) with "F" being fail. S-Level ("special") examinations are taken at the same time, are purely voluntary, and cover material beyond that taught in A-Level courses (corresponding to first-year university level). Grades run from 1 (best) to 4 (worst) with "F" being fail.
I have contributed more then twenty software projects to the community. Several of them are linked from Wikipedia. Others have been adopted into popular software distributions; for example:
I am fluent in English and French.
I am interested in all aspects of science but in particular physics, astronomy, and cosmology.
I enjoy any and all forms of music that are in some way original. When time permits I enjoy playing classical guitar and have played electric guitar in several folk and rock groups since the age of 15.
I am fascinated by all aspects of aviation (private and
commercial) and ATC operations. I hold a private pilots's license
(single-engine land and sea) to which I am slowly adding additional
endorsements and ratings. Most of my primary training was done at Palo Alto before moving to
LA. I now fly out of Santa
Monica airport and have logged approximately 200 hours. |
Current and recent research and development activities: | Dr. Alan Kay | alan.kay@vpri.org | ||||
Prior research, development and teaching: | Professor Bertil Folliot | bertil.folliot@lip6.fr |