# Roger Hui

**Roger Kwok Wah Hui** (December 29, 1953 - October 16, 2021^{[1]}) was a computer scientist and co-developer of the programming language J, and later Dyalog APL. He ran and maintained the Jsoftware website.

## History

Hui's work was described at the APL85 conference in a paper, "DESIGN: A Financial Modelling System", written jointly with his supervisor, Fred Appleyard. The basic objects in the system were in "Direct Definition" (Iverson, 1976, 1980), and Falkoff and Iverson's The Design of APL was cited. Hui left Alberta Energy shortly after being promoted to a non-APL and non-programming position, and was out of work, and had no access to computers, from September 1985 to April 1986. This gave him plenty of time for intense study of Iverson's Rationalized APL (1983) and A Dictionary of the APL Language, as it was then named. In 1996, Hui received the Iverson Award for his work on the design, implementation, and commercial development of J.

## Death

Hui's death was announced by Eric Iverson on October 16, 2021.^{[1]} It was subsequently noted in various media, including Hacker News (which displayed a black banner in his honour),^{[2]} Reddit,^{[3]} Jsoftwares's chat,^{[4]}, and Dyalog news.^{[5]}

## Publications

### APL conferences

- APL85: Design: a financial modelling system. With Fred Appleyard.
- APL87: Some uses of { and }.
- APL90: APL\?. With Kenneth E. Iverson, E. E. McDonnell, and Arthur T. Whitney.
- APL91: Gerunds and representations. With Robert Bernecky.
- APL91: Tacit definition. With Kenneth E. Iverson and Eugene E. McDonnell.
- APL94: TAGS: trains, agendas, and gerunds. With Kenneth E. Iverson.
- APL95: Rank and uniformity.
- APL95: Representations of recursion. With Kenneth E. Iverson.
- APL97: Mathematical roots of J. With Kenneth E. Iverson.
- APL99: Sparse arrays in J.

### Dyalog user meetings

*Main article: Dyalog user meeting*

- Dyalog '08 05: Performance Improvements in Dyalog: A Case Study (materials)
- Dyalog '09 15: Complex Numbers Implementation Stories (materials)
- Dyalog '09 26: The Rank Operator (materials)
- Dyalog '10 P07: Hashing for Tolerant Index-Of (materials)
- Dyalog '11 D04: Introducing the Dyalog '11 Conference Edition (with John Scholes)
- Dyalog '11 D05: Rational Numbers (materials)
- Dyalog '11 D18: What is Functional Programming? (with John Scholes)
- Dyalog '12 D04: Potential Version 14.0 Language Features (materials) (with John Scholes)
- Dyalog '12 D08: Dyalog APL Benchmarks and Performance Enhancements (materials)
- Dyalog '13 D08: Rank and Friends (materials)
- Dyalog '13 D11: Primitive Performance (slides, materials) (with Morten Kromberg)
- Dyalog '14 D06: The Tuning Pipeline (materials) (with Kimmo Kekäläinen)
- Dyalog '15 D04: Core Performance (slides_JF, materials_RH) (with Jay Foad)
- Dyalog '15 D16: Future Operator Proposals: Cut, Under, Merge (materials) (with John Scholes)
- Dyalog '16 D06: New Primitive Functions and Operators (materials, demo script) (with John Scholes)
- Dyalog '16 D08: Performance: The Neverending Story (slides_JF, slides_RH) (with Jay Foad)
- Dyalog '17 D07: Index-Of on Multiple Floats (materials)
- Dyalog '17 D10: Tolerant Unique (materials)
- Dyalog '17 D15: TAO – Total Array Ordering (materials) (with John Scholes)
- Dyalog '18 D14: Inverted Tables (slides)
- Dyalog '20 D07: Rational Arithmetic (materials)

### Essays

- Hilbert Matrix
- Covert Representation
- Extremal Arguments
- Chinese Remainder Theorem
- Reflexive
- Non-Overlapping Substrings
- Huffman Coding
- Multiplicative Order
- Krypto
- Mertens Function
- Knight's Tour
- Attribute-Value Processing
- Capped Fork
- Bibliography
- Substring Replacement
- Pascal's Ladder
- Triangular Matrix Inverse
- Semiprimes
- 99 Bottles of Beer
- Symmetries of the Square
- Quicksort
- Bernoulli Numbers
- Inverted Table
- Kakuro
- Power Set
- RNG
- Extended Precision Functions
- Linear Recurrences
- Roman Numerals
- Pascal's Triangle
- Timestamp Extension
- Complete Tensor
- Insert
- LU Decomposition
- Primality Tests
- Permutation Index
- Hook Conjunction?
- Levenshtein Distance
- Continued Fractions
- Partitions
- Factorings
- Under
- Square Root
- Prime APVs
- 4 Queens Problem
- Tree Display
- Combinations
- Minors
- Trains
- Nurikabe
- Negative Rank
- Cayley's Theorem
- Boxed Array Display
- Kronecker Product
- Order Statistics
- Memo
- Queens and Knights
- Symmetric Array
- Sum of a Bit Array
- Bitwise Functions on Characters
- Matrix Inverse
- Large Exponent Real Arithmetic
- Ackermann's Function
- Hamming Number
- The Monty Hall Problem
- Mobius Function
- Sine
- Fibonacci Sequence
- Euclidean Algorithm
- Chudnovsky Algorithm
- From APL to J
- Landau's Function
- Sudoku
- APL's Birthday
- Unforgettable Numbers
- Newton's Method
- Inverse Permutation
- moo
- Goldbach Conjecture
- Index in Nub
- Incunabulum
- Self-Upgrading Permutations
- Birthday Problem
- Tolerant Comparison
- Vier Neun
- QR Decomposition
- Do While
- Determinant
- Set Game
- 9 Queens Problem
- The TAO of J
- Repeated Squaring
- Linear Congruential Generator
- Block Matrix Inverse
- Compositions
- Word Formation on Lines
- Normal CDF
- Progressive Index-Of
- Binary GCD Algorithm
- Combination Sums
- Sort Times
- Histogram
- Chi Squared CDF
- Indeterminate
- Permutations
- Number in Words
- Josephus Problem
- Tree Sum
- Fibonacci Sums
- Combination Index
- Boolean Array Size
- N Queens Problem
- Self-Downgrading Permutations
- Tower of Hanoi
- Gray Code
- Next Binary String
- Egyptian Fraction
- Parentheses Matching
- Euler's Identity
- Odometer
- Collatz Conjecture
- Cholesky Decomposition
- Extended H
- Minimal Spanning Tree
- KenKen
- Stirling's Approximation
- Stirling Numbers
- IEEE Floating-Point Numbers
- 2^64
- The Ball Clock Problem
- Totient Function
- t-Distribution CDF
- Fibonacci Index
- Bisection Method
- Key
- English Grammar
- Roll on BIGINTs
- Divisors
- Sorting versus Grading
- Scalars
- In-Place Operations
- Gaussian Integers
- Primes Less Than n
- Text Formatting
- Transpose

### Other talks

- Functional Conf 2016: A Tour de Force of APL in 16 Expressions
- Functional Conf 2017: Tests, Derivations, Proofs
- HOPL IV: APL Since 1978 (paper)

## External links

- Roger Hui
- Jsoftware website
- ACM Digital Library
- Memorial website
- Dyalog blog posts by Roger Hui
- Dyalog Forum posts by Roger Hui

## References

- ↑
^{1.0}^{1.1}Eric Iverson. Roger Hui - 1953 - 2021. Jsoftware programming forum. 2021-10-17. - ↑ Hacker News. Roger hui has died. 2021-10-17.
- ↑ Reddit. Roger Hui (1953 - 2021). apljk subreddit. 17 Oct 2021.
- ↑ Raul Miller. Roger Hui - 1953 - 2021. Jsoftware chat forum. 2021-10-17.
- ↑ Dyalog Ltd. Roger Hui. Dyalog news. 2021-10-18.