How does the J programming language improve upon the syntax of APL?

The J programming language, developed in the early 1990s by Kenneth E. Iverson and Roger Hui,[5][6] is an array programming language based primarily on APL (also by Iverson).

To avoid repeating the APL special-character problem, J uses only the basic ASCII character set, resorting to the use of the dot and colon as inflections[7] to form short words similar to digraphs. Most such primary (or primitive) J words serve as mathematical symbols, with the dot or colon extending the meaning of the basic characters available. Also, many characters which in other languages often must be paired (such as [] {} "" `` or <>) are treated by J as stand-alone words or, when inflected, as single-character roots of multi-character words.

J avoids using the special characters required in APL by instead using only ASCII symbols and combining them with dot and colon. This makes it a lot easier to type on a standard keyboard.