System/Overview
System Overview
J is a high-level, general purpose programming language. The J system provides: an engine for executing J; various front ends that provide user interfaces to the J engine; a library that provides IDEs, numerous tools, utilities, demos and tutorials.
J Engine (JE)
The JE executes J sentences and maintains state information such as the definitions of verbs, the values of nouns, and the execution stack. The JE acts as a server to a J Front End that provides a user interface. All other JE interfaces with the world outside its own execution and state are through a few 'foreign conjunctions' that enable the JE to work with files, call routines in external libraries (DLLs), and access host services.
See Release Notes for details on J Engine changes in this, and earlier releases.
J Front End (JFE)
A JFE provides a user interface to the JE. Typically a JFE takes user input from the keyboard, gives it to the JE, and then displays the formatted result that the JE returns on the screen.
Jconsole
Jconsole is a command line interface to the JE. Jconsole is very similar in Windows and Unix and can be run from a host console and can be used like any other console command. The jconsole binary in Windows is called jconsole.exe and in Unix it is called jconsole.
Script Library
J definitions are stored in ASCII plain text files called scripts, which usually have a filename suffix of ijs.
profile
When a JFE starts it loads profile.ijs from the library to initialize the system.
Portability
J is portable across platforms. A J application is as close as you can get to 'write once, run anywhere'.