System/Overview

From J Wiki
Jump to navigation Jump to search

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'.