Ian Piumarta

1-1-1 Nojihigashi,
Kusatsu, Shiga
525-8577 Japan
tel: (+81/0)77-561-5202
email: last-name (at) gmail (dot) com

My professional/academic interests and experience include object-oriented and highly-reflective programming systems and languages, programming language implementation, metalinguistic abstraction and recursive implementation, platform-neutral code distribution, interpreters and interpretive techniques, virtual machines, runtime optimisation, highly-portable optimisation techniques, and dynamic code generation.

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.  Then, in 1995, I joined the SOR project at INRIA as an "expert engineer", where I was involved with reference-based distributed object systems and distributed garbage collection algorithms.  In 1998 I began a collaboration with the Laboratoire d'Informatique de l'Université Paris VI (LIP6)  on a novel, highly-configurable virtual virtual machine architecture intended to address the development and deployment needs of many newly-emerging application domains.  From 1999 I worked full-time on this project, as a member of the LIP6, leading the technical research and development work.  Several publications document this activity.

Early 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 almost similar lines, building a highly-dynamic execution environment intended to support systems such as Alan's Croquet, and the "$100 laptop", projects.

As a Smalltalk fanatic I created (and continue to maintain) the first non-Macintosh port of Squeak (for Unix/X11 and later Mac OS X).  I am contributing actively to the development of Squeak in my spare time, in particular to the virtual machine, remote communications facilities, and Squeak-based "turnkey" consumer appliances.  I have contributed to, edited, and typeset several published books (technical and educational) about, or based on, Squeak.

Employment and Education

2014-04 today   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.

2012-08 2013-06   JSPS Fellow and Visiting Scholar — Ritsumeikan University
Department of Computer Science, College of Information Science and Engineering.

2010-09 2011-06   Visiting Researcher — Kyoto University
Academic Centre for Computing and Media Studies.

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).

Academic Qualifications (Post-Secondary Education)

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.

Teaching Experience

Other Professional Activities

I have served as co-chair of the following conferences: I have served (or am currently serving) on the following conference, symposium and workshop programme committees:

Grants and Awards

Selected Publications

Refereed conference and workshop papers

  1. Tadashi Inoue, Ian Piumarta, and Hideyuki Takada. Collaborative Web Search Using Tablet Terminals on a Virtual Tabletop Environment. 8th International Conference on Collaboration Technologies and Social Computing (CollabTech), Kanazawa, Japan, September 14–16, 2016. Published as Communications in Computer and Information Science 647, pp.159–173, Springer Science&Business Media, 2016. DOI: 10.1007/978-981-10-2618-8 13

  2. Naoto Ito, Hideyuki Takada, and Ian Piumarta. Effectiveness of Tabletop Interaction Using Tablet Terminals in a Shared Virtual Workspace. 22nd International Conference on Collaboration and Technology (CRIWG), Kanazawa, Japan, September 14–16, 2016. Published as Lecture Notes in Computer Science 9848, pp.98–114, Springer, 2016. DOI: 10.1007/978-3-319-44799-5 8

  3. Thongtat Oransirikul, Ryo Nishide, Ian Piumarta and Hideyuki Takada. Feasibility of Analyzing Wi-Fi Activity to Estimate Transit Passenger Population 30th IEEE International Conference on Advanced Information Networking and Applications (AINA), 2016. DOI: 10.1109/AINA.2016.68

  4. Chengguang Shen, Ryo Nishide, Ian Piumarta, Hideyuki Takada and Wenxin Liang. Influence Maximization in Signed Social Networks. In Proceedings of Web Information System Engineering (WISE), 2015.

  5. Siwan Chen, Chengguang Shen, Ryo Nishide, Ian Piumarta and Hideyuki Takada. Ranking friends’ posts on Facebook using hypernyms and tf-idf based on cosine similarity. 77th IPSJ National Convention, 2015.

  6. Thongtat Oransirikul, Ryo Nishide, Ian Piumarta, and Hideyuki Takada. Measuring Bus Passenger Load by Monitoring Wi-Fi Transmissions from Mobile Devices. Procedia Technology, Volume 18, pp.120–125, 2014.

  7. Thongtat Oransirikul, Ryo Nishide, Ian Piumarta, and Hideyuki Takada. Measuring Bus Passenger Load by Monitoring Wi-Fi Transmissions from Mobile Devices. International workshop on Innovations in Information and Communication Science and Technology (IICST), 3–5 September 2014, Warsaw, Poland.

  8. K.Hayashi, I.Piumarta, H.Ogawa, V.Kryssanov. A BCI-controlled Attention Training Game. International workshop on Innovations in Information and Communication Science and Technology (IICST), 3–5 September 2014, Warsaw, Poland.

  9. T.Koike, I.Piumarta, H.Ogawa, V.Kryssanov. BCI-enabled browsing for the Web. International workshop on Innovations in Information and Communication Science and Technology (IICST), 3–5 September 2014, Warsaw, Poland.

  10. Ian Piumarta. Open, extensible composition models. In Proceedings of the 1st Workshop on Free Composition (FREECO) 2011. ACM, New York, NY. DOI~10.1145/2068776.2068778

  11. Ian Piumarta. An association-based model of dynamic behaviour. In Proceedings of the 1st Workshop on Free Composition (FREECO) 2011. ACM, New York, NY. DOI 10.1145/2068776.2068779

  12. Ian Piumarta. PEG-based transformer provides front-, middle- and back-end stages in a simple compiler. In Proceedings of the 2nd International Workshop on Self-Sustaining Systems (S3) 2010. ACM, New York, NY. ISBN 978-1-4503-0491-7 DOI~10.1145/1942793.1942796

  13. Ian Piumarta and Alessandro Warth. Open, Extensible Object Models. In Proceedings of the 1st International Workshop on Self-Sustaining Systems (S3) 2008. Published as Lecture Notes in Computer Science, Volume 5146, Springer, October 2008. ISBN 978-3-540-89274-8

  14. Alessandro Warth and Ian Piumarta. OMeta: an object-oriented language for pattern matching. In Proceedings of the 2007 ACM Symposium on Dynamic Languages (DLS 2007). ISBN 978-1-59593-868-8

  15. Ian Piumarta. The virtual processor: fast, architecture-neutral dynamic code generation. In Proceedings of the 3rd USENIX Virtual Machine Research and Technology Symposium (VM'04), pp. 97-110, San Jose, CA, USA, 2004.

  16. Frédéric Ogel, Gaël Thomas, Bertil Folliot and Ian Piumarta. Application-level concurrency management. In proceedings of the NATO Advanced Research Workshop on Concurrent Information Processing and Computing (CIPC 2003), pp. 193-201, Sinaia, Romania, July 2003.

  17. Frédéric Ogel, Simon Patarin, Ian Piumarta and Bertil Folliot. A Self-Adapting Web Proxy Cache. In Proc. 5th Annual Workshop on Autonomic Computing, HPDC 12, Seattle, Washington, 25 June 2003.

  18. Frédéric Ogel, Simon Patarin, Ian Piumarta and Bertil Folliot. C/SPAN: a Self-Adaptive Web Proxy Cache. In the Proceedings of the 5th International Workshop on Active Middleware Services (AMS 2003), Seattle, Washington, June 2003.

  19. Frédéric Ogel, Bertil Folliot and Ian Piumarta. On Reflexive and Dynamically-Adaptable Environments for Distributed Computing. In Proc. 3rd International Workshop on Distributed Auto-adaptive and Reconfigurable Systems, ICDCS'2003, IEEE, Providence, Rhode Island, May 2003.

  20. Ian Piumarta. YNVM - an implementation engine for runtime support. OOPSLA'02 Workshop on Language-Agnostic Runtime Support, Seattle, Washington, 4 November 2002.

  21. Bertil Folliot, Ian Piumarta, Lionel Seinturier, Carine Baillarguet, Christian Khoury, Arthur Léger and Frédéric Ogel. Beyond flexibility and reflection: the virtual virtual machine approach. NATO Advanced Research Workshop on Environments, Tools and Applications for Cluster Computing. LNCS 2326, Springer-Verlag, pp. 17-26, 2002.

  22. Gaël Thomas, Bertil Folliot and Ian Piumarta. Les documents actifs basés sur une machine virtuelle. In Actes de la conf. Journées des Jeunes Chercheurs en Systèmes, Chapitre français de l'ACM-SIGOPS, pages 441-447, Hammamet, Tunisie, April 2002.

  23. Christian Khoury, Bertil Folliot and Ian Piumarta. AAN: An Highly-Reflective Active Network. In Proc. 20th IASTED Conference on Applied Informatics, Innsbruck, Austria, February 2002.

  24. Ian Piumarta. YNVM: dynamic compilation in support of software evolution. In Proc. Engineering Complex Object-Oriented System for Evolution, OOPSLA, Tampa Bay, Florida, October 2001.

  25. Ian Piumarta, Frédéric Ogel, Carine Baillarguet and Bertil Folliot. Applying the VVM Kernel to Flexible Web Caches. In Proc. IEEE Workshop on Hot Topics in Operating Systems, HOTOS-VIII, Schloss Elmau, RFA, pp. 155, May 2001.

  26. Bertil Folliot, Damien Cailliau, Ian Piumarta and Remi Bellenger. PLERS: Plateforme Logicielle Reconfigurable pour Satellites - Application au satellite COROT In Proc. Rencontres Francophones du Parallélisme (RenPar2000), Besancon, France, June 2000.

  27. Ian Piumarta, Bertil Folliot, Lionel Seinturier and Carine Baillarguet. Highly-configurable operating systems: the VVM approach. In Proc. ECOOP'2000 Workshop on Object Orientation and Operating Systems, Cannes, June 2000.

  28. Bertil Folliot, Ian Piumarta and Lionel Seinturier. Reflective and Middleware Features of the Virtual Virtual Machine. In Proc. Workshop on Reflective Middleware, IFIP/ACM International Conference on Distributed Systems Platforms and Open Distributed Processing, Middleware'2000, New York, USA, pp. 8-9, April 2000.

  29. Ian Piumarta. CCG - A Tool for Writing Dynamic Code Generators. OOPSLA'99 Workshop on Performance and Portability in Virtual Machines, Denver, Colorado, 2 November 1999.

  30. Carine Baillarguet and Ian Piumarta. An Highly-Configurable, modular system for mobility, interoperability, specialization, and reuse. 2nd ECOOP Workshop on Object-Orientation and Operating Systems, Lisbon, Portugal, June 1999.

  31. Bertil Folliot, Ian Piumarta and Fabio Riccardi. A Dynamically-Configurable, Multi-Language Execution Platform. In Proc. ACM/SIGOPS European Workshop, Sintra, Portugal, September 1998.

  32. Ian Piumarta and Fabio Riccardi. Optimizing direct-threaded code by selective inlining. In Proc. 1998 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'98), 17-19 June 1998, Montreal, Canada.

  33. Fabrice Le Fessant, Ian Piumarta and Marc Shapiro. An implementation of complete, asynchronous, distributed garbage collection. In Proc. 1998 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'98), 17-19 June 1998, Montreal, Canada.

  34. Fabrice Le Fessant, Ian Piumarta and Marc Shapiro. A detection algorithm for distributed cycles of garbage. OOPSLA'97 Workshop on Garbage Collection and Memory Management, October 1997, Atlanta, USA.

  35. Bertil Folliot, Ian Piumarta and Fabio Riccardi. A Virtual Virtual Machine. In Proc. 4th Cabernet Radicals Workshop, Crete, September 1997.

  36. Ian Piumarta. SSP Chains. OOPSLA'96 Workshop on Support for Distributed Objects, San Jose, October 1996.

  37. Aline Baggio and Ian Piumarta. Mobile Host Tracking and Resource Discovery. Seventh ACM SIGOPS European Workshop on Systems Support for Worldwide Applications, 9-12 September 1996, Connemara, Ireland.

  38. Ian Piumarta. SSP Chains - from Mobile Objects to Mobile Computing. ECOOP'95 Workshop on Mobility and Replication, Aarhus, Denmark, August 1995.

  39. Ian Piumarta. Delayed Code Generation. OOPSLA'94 Workshop on Object-Oriented Compilation, Portland, Oregon, October 1994.

Journal and other articles

  1. Tsuyoshi Donen, Shingo Otsubo, Ryo Nishide, Ian Piumarta and Hideyuki Takada. Network traffic reduction mechanism for collaborative web activities. International Journal of Web Information Systems, 2017.

  2. Thongtat Oransirikul, Ryo Nishide, Ian Piumarta, and Hideyuki Takada. Measuring Bus Passenger Load by Monitoring Wi-Fi Transmissions from Mobile Devices. Procedia Technology, Volume 18, pp.120–-125, 2014.

  3. Fréderic Ogel, Gaël Thomas, Bertil Folliot and Ian Piumarta. Application-level concurrency management. In A. Nicolau and D. Grigoras (editors), Concurrent Information Processing and Computing, volume 195, pp. 19-30. NATO Science Series III, 2005.

  4. Gaël Thomas, Frederic Ogel, Antoine Galland, Bertil Folliot and Ian Piumarta. Building a flexible Java runtime upon a flexible compiler. In Jean-Jacques Vandewalle, David Simplot-Ryl and Gilles Grimaud (editors), Special Issue on Systems & Networking for Smart Objects, IASTED International Journal on Computers and Applications, volume 27, pp. 28-47. ACTA Press, 2005.

  5. Frédéric Ogel, Gaël Thomas, Ian Piumarta, Antoine Galland, Bertil Folliot and Carine Baillarguet. Towards active applications: the virtual virtual machine approach. In Mitica Craus, Dan Gâlea and Alexandru Valachi (editors), New Trends in Computer Science and Engineering, POLIROM Press, 2003. ISBN 973-9476-40-6

  6. Ian Piumarta. Porting the Squeak Virtual Machine. In Mark Guzdial and Kim Rose (eds.), Squeak - Open Personal Computing and Multimedia, Prentice Hall, 2002. ISBN 0-13-028091-7

  7. Ian Piumarta. Is there life after Corba? Object Expert, April 1996.

Technical Reports and Whitepapers

  1. Ian Piumarta. An association-based model of dynamic behaviour VPRI Technical Report TR-2011-003.

  2. Ian Piumarta. Open,extensible composition models" VPRI Technical Report TR-2011-002.

  3. Ian Piumarta. Chains of meaning in the STEPS system VPRI Research Memo, M-2009-011.

  4. Ian Piumarta. COLA Kernel Abstraction VPRI Research Memo, M-2009-007.

  5. Ian Piumarta. Quantum Object Dynamics VPRI Research Memo, M-2009-002.

  6. Alan Kay, Ian Piumarta, Kim Rose, Dan Ingalls, Dan Amelang, Ted Kaehler, Yoshiki Ohshima, Charles Thacker, Scott Wallace, Alex Warth, Takashi Yamamiya. STEPS Toward The Reinvention of Programming. First annual report of the STEPS project.

  7. Ian Piumarta. Efficient Sideways Composition in COLAs via 'Lieberman' Prototypes Viewpoints Research, Research Memo RM2007-002-A.

  8. Ian Piumarta and Alessandro Warth. Open, Reusable Object Models Viewpoints Research, Research Note RN-20060003-A.

  9. Alan Kay, Dan Ingalls, Yoshiki Ohshima, Ian Piumarta, Andreas Raab. Proposal to NSF Granted on August 31, 2006 STEPS Project proposal to the NSF.

  10. Ian Piumarta. Accessible Language-Based Environments of Recursive Theories. A white paper inciting pogrammers to widespread unreasonable behavior.

  11. Ian Piumarta. Description and evaluation of the initial Dylan producer and runtime. ESPRIT project 6062 deliverable 4.2.2b, April 1994.

Invited Presentations

  1. To trap a better mouse. Invited talk, Tokyo Institute of Technology, Tokyo, Japan, May 2013.

  2. Introduction to embedded computing. Invited talk, Joint research seminar with Prof. UESHIMA (Kansai University), Ritsumeikan University, Kusatsu, Japan, December 2012.

  3. ICT and Education. Invited talk, Fifth FAST Smalltalk Conference (Smalltalks 2011), Quilmes, Argentina, November 2011.

  4. To trap a better mouse. Keynote talk, Fifth FAST Smalltalk Conference (Smalltalks 2011), Quilmes, Argentina, November 2011.

  5. Monsters of the IT: what has IT done for education? Keynote talk (with Kim Rose of VPRI), Fifth FAST Smalltalk Conference (Smalltalks 2011), Quilmes, Argentina, November 2011.

  6. ICT and Education. Invited talk, National Taiwan University, Taipei, Taiwan, March 2011.

  7. ICT and Education. Invited lecture, TIDE lecture series, Kyoto University, Kyoto, Japan, January 2011.

  8. Power to the People: why closed technology becomes irrelevant. Invited talk, Research Environment for Global Information Sociery (ReGIS) Forum, Tokyo, Japan, March 2011.

  9. A high-level model of programming language implementation. Invited talk, Kyoto University, Kyoto, Japan, November 2010.

  10. Late-bound object-lambda architectures. Keynote talk, First Workshop on Self-Sustaining Systems (S3), Potsdam, Germany, May 2008.

  11. Steps Toward the Reinvention of Programming. Invited talk, Kyoto University, March 10 2008, Japan.

  12. Steps Toward the Reinvention of Programming. Keynote talk, 10th Workshop on Programming and Programming Languages (PPL), March 2008, Sendai, Japan.

  13. Building your own dynamic language is fun and easy! Invited talk, Stanford University Computer Systems Colloquium Series, February 2007, Stanford, California.

  14. Open, extensible dynamic programming systems. Keynote talk, Dynamic Languages Symposium 2006, Portland, Oregon, 23 October 2006.

  15. Making COLAs with Pepsi and Coke - implementing dynamic, open programming systems. Sun Microsystems Laboratories, Menlo Park, California, 11 November 2005.

  16. Pepsi et Coke - vers une vers une théorie intègrale des COLAs. University of Paris 6, Paris, France, 29 June 2005.

  17. Extremely-Late Binding - why syntax, semantics and pragmatics should be first-class values. Keynote speech, 11th ESUG Smalltalk Conference, Bled, Slovenia, 23-29 August 2003.

  18. On Reflection, Intercession and Implementation as a First-Class Property. Sun Microsystems Laboratories, Mountain View, California, 10 June 2003.

  19. La VPU, un compilateur dynamique omniprésent. Laboratoire PRiSM, Université de Versailles, 31 May 2002.

  20. Conception et implémentation d'un compilateur dynamique polyvalent. IRISA/INRIA Rennes, Rennes, France, 25 October 2002.

  21. Reflexive, Adaptive and Virtual Virtual Machines. Laboratoire d'Informatique de l'Université Paris 6, Paris, France, 27 April 2000.

  22. Optimising the interpretation of bytecoded languages. Vrije Universiteit Brussel, 2 December 1998, Brussels, Belgium.

  23. Squeak! Vrije Universiteit Brussel, 1 December 1998, Brussels, Belgium.

  24. Machines Virtuelles2. Institut de recherche en informatique et systèmes aléatoires (IRISA/INRIA Rennes), Rennes, France, 16 November 1998.

  25. An introduction to Squeak and its implementation. 6th ESUG Smalltalk Conference, Brescia, Italy, September 1998.

  26. SSP Chains: lightweight, distributed objects. Laboratoire d'Informatique de l'Université Paris VI (LIP6), June 1997, Paris, France.

  27. SSP Chains: a protocol for reliable remote references. OMG Technical Conference, Stresa, Italy, May 1997.

  28. Making Smalltalk with a Lisp. 3rd ESUG Smalltalk Conference, Utrecht, Netherlands, August 1995.

  29. Interfacing Smalltalk with the Real World. 3rd ESUG Smalltalk Conference, Utrecht, Netherlands, August 1995.

  30. Delayed Code Generation: a technique for producing near-optimal code in recursive descent compilers and tree-walking code generators. Department of Computer Science, University of Manchester, 23 November 1992.

  31. Performance of the Smalltalk-80 User-Primitive Interface. 1st ESUG Smalltalk Conference, Paris, France, February 1991.

Published Software

I published my first software in 1985, a utility ROM for the BBC Model B computer. A copy of this ROM and its user manual are now part of the collection of the Center for Computing History in Cambridge, UK.

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:

Selected Areas of Technical Expertise

Personal Information, Non-Professional Skills and Selected Interests

I was born in Devizes, Wiltshire (UK), on 7 July 1966.  I am an European citizen holding: a British passport, driving licenses in California and France, a recreational boating license in Australia, and a pilot's license in the USA. My personality type (according to Myers-Briggs and Keirsey) is (a somewhat extreme) INTP.

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 have been intrigued by the art and science of high-fidelity audio reproduction for at more than twenty-five years. Dissatisfied with almost all commercial, so-called "audiophile", products I have now turned to designing and building my own high-end audio equipment. I am convinced of the superiority of analogue over many forms of digital media, and am as much a fan of "vacuum state" as I am of properly-designed "solid state" electronics. None of this is due to "Luddite" prejudice but rather an absolute refusal to abandon quality in the name of convenience, profit-driven technological "progress", or the economic interests of mass marketeers.

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

Current and Previous Employers' Addresses

Viewpoints Research Institute, 1209 Grand Central Avenue, Glendale, CA 91201, USA

Hewlett-Packard Laboratories, 1501 Page Mill Road, Palo Alto, CA 94304, USA

Université Pierre et Marie Curie (Paris 6), 4, place Jussieu, 75252 Paris Cedex 05, France

INRIA Rocquencourt, B.P. 105, 78153 Le Chesnay Cedex, France

Harlequin Ltd., Barrington Hall, Barrington, Cambridge, CB2 5RG, United Kingdom

IRCAM, 1, place Igor Stravinsky, 75004 Paris, France

University of Manchester, Oxford Road, Manchester, M13 9PL, United Kingdom