Nial
Nial (from "Nested Interactive Array Language") is an array programming language developed in the 1980s by Trenchard More and Mike Jenkins, with ongoing development by John Gibbons and others. Alongside NARS, Dyalog APL, and APL2, it was one of the first programming languages to employ the nested array model common in modern APLs, and it remains one of the few non-APL languages with this model. Its syntax differs from APL, and uses a left-to-right evaluation order and ASCII character set, with words for builtins and primitive functions. Nial also features some support for working with functions, including a form of function array called an "atlas".
Nial is based on Trenchard More's "array theory", which in APL is known as the nested array model. More worked on this theory with Ziad Ghandour and others at IBM's Philadelphia Scientific Center in the 1970s. His work directly influenced Jim Brown and thus APL2, as well as Bob Smith and NARS, so that these dialects have much in common with Nial, but Nial itself did not have a strong influence on APL development.
History
To create Nial, More worked with Mike Jenkins, professor of computing and information science at Queen's University at Kingston, who had developed an interest in nested array theory through the APL Implementer's Workshop at Minnowbrook and begun publishing on the topic.[1][2] They drew on the structured programming of ALGOL and function-level programming of FP, as well as LISP implementation concepts. Jenkins also contributed ideas on how to build an interactive programming system.[3]
Initial work on Nial from 1979 to 1982 was supported collaboratively by Queen's University and IBM Cambridge Scientific Center, with a prototype in VS APL developed by Jenkins.[4][5] The portable interpreter Q'Nial was built by Jenkins's team at Queen's, and released in 1983. Implemented in C, it initially targetted Unix, and could run on both the IBM PC and IBM mainframes. Jenkins formed Nial Systems Ltd. in 1982; the company licensed Q'Nial from Queen's University and marketed it widely, and Jenkins continued work on both the design and implementation of Nial.
In 2006, Jenkins released Version 6.3 of Q'Nial as an open source project to encourage continued development of Nial. He started working with John Gibbons in 2014 to develop a 64-bit version and to add capabilities that Gibbons needed for his work. They decided to target Unix-based platforms and release Q'Nial on GitHub. A new website for the QNial7 repository with documentation was made in 2021.[3]
External links
References
- ↑ Mike Jenkins. Array Theory and the Design of Nial (pdf). Preface. 2013.
- ↑ Walter Gull and Mike Jenkins. Recursive data structures and related control mechanisms in APL at APL76.
- ↑ 3.0 3.1 Nial contributors. QNial7 README.
- ↑ M. A. Jenkins. A development system for testing array theory concepts at APL81.
- ↑ Fl. Schmidt and M. A. Jenkins. Array diagrams and the Nial approach at APL82.
APL dialects [edit] | |
---|---|
Maintained | APL+Win ∙ APL2 ∙ APL64 ∙ APL\iv ∙ Aplette ∙ April ∙ Co-dfns ∙ Dyalog APL ∙ Dyalog APL Vision ∙ dzaima/APL ∙ GNU APL ∙ Kap ∙ NARS2000 ∙ Pometo ∙ TinyAPL |
Historical | A Programming Language ∙ A+ (A) ∙ APL# ∙ APL2C ∙ APL\360 ∙ APL/700 ∙ APL\1130 ∙ APL\3000 ∙ APL.68000 ∙ APL*PLUS ∙ APL.jl ∙ APL.SV ∙ APLGOL ∙ APLX ∙ Extended Dyalog APL ∙ Iverson notation ∙ IVSYS/7090 ∙ NARS ∙ ngn/apl ∙ openAPL ∙ Operators and Functions ∙ PAT ∙ Rowan ∙ SAX ∙ SHARP APL ∙ Rationalized APL ∙ VisualAPL (APLNext) ∙ VS APL ∙ York APL |
Derivatives | AHPL ∙ BQN ∙ CoSy ∙ ELI ∙ Glee ∙ I ∙ Ivy ∙ J ∙ Jelly ∙ K (Goal, Klong, Q) ∙ KamilaLisp ∙ Lang5 ∙ Lil ∙ Nial ∙ RAD ∙ Uiua |
Overviews | Comparison of APL dialects ∙ Timeline of array languages ∙ Timeline of influential array languages ∙ Family tree of array languages |