Jay Foad: Difference between revisions
(Created page with "'''Jay Foad''' is a software developer and programming language implementor. He worked at Dyalog Ltd. from April 2010 to May 2019 on the implementation of Dyalog APL,...") |
m (→Contributions) |
||
Line 11: | Line 11: | ||
== Contributions == | == Contributions == | ||
Foad's bytecode compiler (invoked with <source lang=apl inline>400⌶</source>) for Dyalog was included in [[Dyalog APL 14.0|version 14.0]] and on, although work on the compiler almost entirely stopped by [[Dyalog APL 17.0|version 17.0]]. On leaving Dyalog Foad remarked that he no longer thought his purely compiled approach was the best method for APL, and expressed enthusiasm for hybrid interpreter-compiler techniques.<ref name="goodbye"></ref> He also did significant work on Dyalog's interpreter, in particular optimising [[Maximum]], [[Minimum]], and [[Plus]] [[Reduce|reductions]] using [[vector | Foad's bytecode compiler (invoked with <source lang=apl inline>400⌶</source>) for Dyalog was included in [[Dyalog APL 14.0|version 14.0]] and on, although work on the compiler almost entirely stopped by [[Dyalog APL 17.0|version 17.0]]. On leaving Dyalog Foad remarked that he no longer thought his purely compiled approach was the best method for APL, and expressed enthusiasm for hybrid interpreter-compiler techniques.<ref name="goodbye"></ref> He also did significant work on Dyalog's interpreter, in particular optimising [[Maximum]], [[Minimum]], and [[Plus]] [[Reduce|reductions]] using [[vector instructions]] on x86 and POWER platforms. He also developed a technique for transposing [[Boolean]] matrices with multiple-of-8 dimensions, which was later extended to arbitrary dimensions by [[Marshall Lochbaum]] with help from Foad.<ref>Lochbaum, Marshall. [https://dyalog.tv/Dyalog17/?v=2KnrDmZov4U "Moving Bits Faster in Dyalog 16.0"].</ref> | ||
Foad was involved in designing several extensions to Dyalog primitives, including high-rank [[Unique]] in [[Dyalog APL 17.0]] and the decision to allow duplicate left argument cells in [[Interval Index]] in [[Dyalog APL 17.1|17.1]]. | Foad was involved in designing several extensions to Dyalog primitives, including high-rank [[Unique]] in [[Dyalog APL 17.0]] and the decision to allow duplicate left argument cells in [[Interval Index]] in [[Dyalog APL 17.1|17.1]]. |
Revision as of 15:24, 22 November 2019
Jay Foad is a software developer and programming language implementor. He worked at Dyalog Ltd. from April 2010 to May 2019 on the implementation of Dyalog APL, and was appointed CTO in January 2016. Foad's contributions include a bytecode compiler for Dyalog APL and improvements in the language design and implementation.
Career
Before joining Dyalog and learning APL, Foad worked for ten years at Tao Group. His responsibilities as Senior Developer included maintaining a JIT compiler for Java. Foad was hired by Dyalog Ltd. on 26 April, 2010 as Software Developer, with the goal of speeding up APL's implementation. He expressed interest in applying JIT compilation to APL. His bytecode compiler for Dyalog was first released in version 14.0.[1]
Foad was promoted to Dyalog CTO in January 2016, replacing Morten Kromberg, who took the role of CXO.[2][3] By this time Foad had begun participating not only in the implementation of Dyalog APL but in its design as well, working with John Scholes and Roger Hui in this capacity.
Foad left Dyalog on 29 May, 2019 to work on GPU compiler technology for AMD.[4]
Contributions
Foad's bytecode compiler (invoked with 400⌶
) for Dyalog was included in version 14.0 and on, although work on the compiler almost entirely stopped by version 17.0. On leaving Dyalog Foad remarked that he no longer thought his purely compiled approach was the best method for APL, and expressed enthusiasm for hybrid interpreter-compiler techniques.[4] He also did significant work on Dyalog's interpreter, in particular optimising Maximum, Minimum, and Plus reductions using vector instructions on x86 and POWER platforms. He also developed a technique for transposing Boolean matrices with multiple-of-8 dimensions, which was later extended to arbitrary dimensions by Marshall Lochbaum with help from Foad.[5]
Foad was involved in designing several extensions to Dyalog primitives, including high-rank Unique in Dyalog APL 17.0 and the decision to allow duplicate left argument cells in Interval Index in 17.1.
Foad was involved in the design of Dyalog's total array order along with Roger Hui and Adám Brudzewsky, and the development of tolerant hashing for real and complex vector searches.[6] He implemented hashed arrays using 1500⌶
after participating in their design. With Marshall Lochbaum, he worked on the design of magic arrays, a Dyalog APL feature which is still under development.
Foad helped improve testing while at Dyalog, including the use of fuzz testing to identify crashes in obscure statements.
Publications
- "TAO Axioms" (with Roger Hui and Adám Brudzewsky).
Dyalog user meetings
- Dyalog '11 D11: "Focus on Performance"
- Dyalog '11 D07: "Parallel Language Features in Version 14.0" (with Morten Kromberg)
- Dyalog '13 D10: "Reducing Interpreter Overhead"
- Dyalog '15 D04: "Core Performance" (with Roger Hui)
- Dyalog '15 D15: "Compilation and Bytecode Execution" (slides)
- Dyalog '16 D03: "Technical Road Map: Under The Covers" (with Morten Kromberg)
- Dyalog '16 D08: "Performance: The Neverending Story" (with Roger Hui)
- Dyalog '17 D03: "Technical Road Map: Under The Covers" (with Morten Kromberg)
- Dyalog '18 D03: "Technical Road Map: Under The Covers" (with Morten Kromberg)
References
- ↑ Dyalog Ltd. "May We Introduce Jay Foad".
- ↑ Kromberg, Morten. "Happy New Year from the CXO!"
- ↑ Foad, Jay. "A message from the CTO".
- ↑ 4.0 4.1 Foad, Jay. "Goodbye".
- ↑ Lochbaum, Marshall. "Moving Bits Faster in Dyalog 16.0".
- ↑ Hui, Roger. "Hashing for Tolerant Index-Of".
APL community [edit] | |
---|---|
Activities | Conferences ∙ User groups and meetups ∙ Iverson Award ∙ Exercises |
Chat rooms and forums | APL Farm ∙ APL Orchard ∙ APL Wiki |
People | Phil Abrams ∙ Brian Becker ∙ Bob Bernecky ∙ Larry Breed ∙ Charles Brenner ∙ Jim Brown ∙ Adám Brudzewsky ∙ Gitte Christensen ∙ Peter Donnelly ∙ John Earnest ∙ Adin Falkoff ∙ Garth Foster ∙ Lib Gibson ∙ Aaron Hsu ∙ Roger Hui ∙ Ken Iverson ∙ Morten Kromberg ∙ Dick Lathwell ∙ Marshall Lochbaum ∙ Eugene McDonnell ∙ Roger Moore ∙ Trenchard More ∙ Alan Perlis ∙ Raghu Ranganathan ∙ Henry Rich ∙ Al Rose ∙ John Scholes ∙ Ian Sharp ∙ Bob Smith ∙ Geoff Streeter ∙ Joey Tuttle ∙ Arthur Whitney |
Other | APL Trust ∙ APL Quote Quad ∙ Blogs ∙ Books ∙ Case studies ∙ Famous APL users ∙ Humour ∙ Jobs ∙ Merchandise ∙ Papers ∙ Podcasts ∙ TryAPL ∙ Try It Online ∙ Video channels |