J 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, written in J, that provides an IDE (interactive development environment), numerous tools, utililties, demos, tutorials; and online documention.
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 is a command line JFE and Jwd is a GUI based JFE that implements wd.
wd (window driver)
wd is a command processor implemented in a JFE that executes commands that create and manage forms, controls, events, etc. The JE passes wd arguments to the JFE for execution and the JFE returns command results as well as calls the JE with event information for user actions such as button presses and menu command selection. wd extends J so that the J programmer can create GUI interfaces to J programs. wd is portable and provides the same capabilities in Windows and Unix.
Jwd is a JFE that implements wd. Jwdp, the portable Jwd, is implemented in Java and runs in Unix and Windows. Jwdw, the Windows specific Jwd, is implemented in C++ with the Win32 API and supports the standard wd commands as well as additional Windows specific features..
See Starting J for details on running Jwd.
Jconsole is a command line interface to the JE. It does not implement wd. 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.
See Starting J for details on running Jconsole.
J definitions are stored in ASCII plain text files called scripts. J scripts usually have a filename suffix of ijs. The system includes an extensive script library and related files that include an IDE, tutorials, demos, tools, and utilities.
When a JFE starts it loads profile.ijs from the library to initialize the system. The Jwd profile uses wd to create a complete IDE.
Interactive Development Environement
The same Jwd IDE is available in Windows and Unix. The IDE is written in J/wd and is implemented in library scripts. It is open and available for study and modification.
J is portable across platforms. An application written for Jconsole or Jwd is as close as you can get to 'write once, run anywhere'. The JE is as identical as possible and wd, except for a few Windows specific features, is portable.
A Jwd application developed in Unix will run in Windows on either Jwdw or Jwdp.
A Jwd application developed in Windows in either Jwdp or Jwdw will run in Unix as long as the Windows specific features of Jwdw are not used.