Roger Hui
Encyclopedia
Roger Hui is a computer scientist and co-developer of the J Programming Language
J (programming language)
The J programming language, developed in the early 1990s by Kenneth E. Iverson and Roger Hui, is a synthesis of APL and the FP and FL function-level languages created by John Backus....

.

He was born in Hong Kong
Hong Kong
Hong Kong is one of two Special Administrative Regions of the People's Republic of China , the other being Macau. A city-state situated on China's south coast and enclosed by the Pearl River Delta and South China Sea, it is renowned for its expansive skyline and deep natural harbour...

 and he immigrated to Canada
Canada
Canada is a North American country consisting of ten provinces and three territories. Located in the northern part of the continent, it extends from the Atlantic Ocean in the east to the Pacific Ocean in the west, and northward into the Arctic Ocean...

 with his entire family in 1966.

Education and career

In 1973, Hui entered the University of Alberta
University of Alberta
The University of Alberta is a public research university located in Edmonton, Alberta, Canada. Founded in 1908 by Alexander Cameron Rutherford, the first premier of Alberta and Henry Marshall Tory, its first president, it is widely recognized as one of the best universities in Canada...

. In his second year he took a course on Probability
Probability
Probability is ordinarily used to describe an attitude of mind towards some proposition of whose truth we arenot certain. The proposition of interest is usually of the form "Will a specific event occur?" The attitude of mind is of the form "How certain are we that the event will occur?" The...

 and Statistics
Statistics
Statistics is the study of the collection, organization, analysis, and interpretation of data. It deals with all aspects of this, including the planning of data collection in terms of the design of surveys and experiments....

 in which students were expected to learn the APL (programming language) with little or no formal instruction. He used all the time he could muster on a heavily-burdened computer, and benefited from the APL\360 User's Manual (APL Language was not published until March 1975). Because the manual was written by Adin Falkoff
Adin Falkoff
Adin D. Falkoff Born in New Jersey, a researcher and manager at IBM Research since the 1950s for over forty years before retiring. He collaborated with Ken Iverson from 1960 to 1980 on the design, development, and usage of the APL programming language and its interactive environment...

 and Kenneth E. Iverson
Kenneth E. Iverson
Kenneth Eugene Iverson was a Canadian computer scientist noted for the development of the APL programming language in 1962. He was honored with the Turing Award in 1979 for his contributions to mathematical notation and programming language theory...

, Hui thinks it reasonable to say he learned APL from Falkoff and Iverson.

As a summer student in 1975 and 1976, Hui worked at I. P. Sharp Associates
I. P. Sharp Associates
I. P. Sharp Associates, IPSA for short, was a major Canadian computer time sharing, consulting and services firm of the 1970s and 80s. IPSA is particularly well known for its work on the APL programming language, an early packet switching computer network known as IPSANET, and a powerful...

 (IPSA) in Calgary
Calgary
Calgary is a city in the Province of Alberta, Canada. It is located in the south of the province, in an area of foothills and prairie, approximately east of the front ranges of the Canadian Rockies...

, on workspaces for statistical and probability calculations. The major attraction of the job was the unlimited computer time with access to APL.

After receiving a B.Sc. degree with First Class Honors in Computing Science in 1977, Hui worked for two years as a full-time programmer
Programmer
A programmer, computer programmer or coder is someone who writes computer software. The term computer programmer can refer to a specialist in one area of computer programming or to a generalist who writes code for many kinds of software. One who practices or professes a formal approach to...

/analyst in the new Edmonton
Edmonton
Edmonton is the capital of the Canadian province of Alberta and is the province's second-largest city. Edmonton is located on the North Saskatchewan River and is the centre of the Edmonton Capital Region, which is surrounded by the central region of the province.The city and its census...

 office of IPSA, where his principal duty was to support clients in their use of APL time-sharing
Time-sharing
Time-sharing is the sharing of a computing resource among many users by means of multiprogramming and multi-tasking. Its introduction in the 1960s, and emergence as the prominent model of computing in the 1970s, represents a major technological shift in the history of computing.By allowing a large...

. He attended the APL79 conference in Rochester, New York
Rochester, New York
Rochester is a city in Monroe County, New York, south of Lake Ontario in the United States. Known as The World's Image Centre, it was also once known as The Flour City, and more recently as The Flower City...

, where Iverson gave two papers: "The Role of Operators in APL" and "The Derivative Operator". On the way, Hui stopped at IPSA in Toronto and obtained a copy of "Operators and Functions" [IBM Research Report No. 7091, 1978]. He has been studying that paper and its successors ever since.

In September 1979, Hui entered the Department of Computer Science at the University of Toronto
University of Toronto
The University of Toronto is a public research university in Toronto, Ontario, Canada, situated on the grounds that surround Queen's Park. It was founded by royal charter in 1827 as King's College, the first institution of higher learning in Upper Canada...

, and received his M.Sc. in May 1981 with a thesis on "The complexity of some decompositions in matrix algebra". Although the thesis was not directly APL related, through this experience Hui developed a feel for efficient computations, which helps explain the speed of the later language J's primitive functions.

After completing his Master's degree, Hui worked from 1981 to 1985 as an APL systems analyst
Systems analyst
A systems analyst researches problems, plans solutions, recommends software and systems, and coordinates development to meet business or other requirements. They will be familiar with multiple variety of programming languages, operating systems, and computer hardware platforms...

 and programmer for the Alberta Energy Company in Edmonton. In February 1982 Hui purchased A Source Book in APL (1981), in which the most memorable papers were "The Design of APL" (1973), "The Evolution of APL" (1978), and "Notation as a Tool of Thought" (1980). By this time Hui was reading every paper of Ken Iverson's that he could get his hands on.

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 called at the time).

J Language

In the early 1990s, Ken Iverson
Kenneth E. Iverson
Kenneth Eugene Iverson was a Canadian computer scientist noted for the development of the APL programming language in 1962. He was honored with the Turing Award in 1979 for his contributions to mathematical notation and programming language theory...

 and Roger Hui began collaboration on an advanced continuation of an APL-like language which they called J
J (programming language)
The J programming language, developed in the early 1990s by Kenneth E. Iverson and Roger Hui, is a synthesis of APL and the FP and FL function-level languages created by John Backus....

. The improvements not only were intended to fix some of the persistent character set issues that had plagued APL since its inception, but to add new advanced features such as support for parallel MIMD
MIMD
In computing, MIMD is a technique employed to achieve parallelism. Machines using MIMD have a number of processors that function asynchronously and independently. At any time, different processors may be executing different instructions on different pieces of data...

 operations. It was intended that the J language be an improvement over existing APL. The J interpreter and language continue to evolve.

External links

  • Award Roger Hui received the 1996 Kenneth E. Iverson
    Kenneth E. Iverson
    Kenneth Eugene Iverson was a Canadian computer scientist noted for the development of the APL programming language in 1962. He was honored with the Turing Award in 1979 for his contributions to mathematical notation and programming language theory...

    Award
  • JSoftware Creators of J
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK