-
Notifications
You must be signed in to change notification settings - Fork 7
Files
These descriptions are scraped from the comments in files, with some manual polishing.
Name | Description |
---|---|
a.c | Adverbs |
ab.c | Adverbs: b. bitwise functions |
af.c | Adverbs: Fix |
ai.c | Adverbs: Inverse & Identity Functions |
am.c | Adverbs: Amend |
am1.c | Adverbs: a ind}z for sparse z & ind is box a0;a1;a2;... or integer |
amn.c | Adverbs: a ind}z where z is sparse and ind is <"1 integers
|
ao.c | Adverbs: Oblique and Key |
ap.c | Adverbs: Prefix and Infix |
ar.c | Adverbs: Reduce (Insert) and Outer Product |
as.c | Adverbs: Suffix and Outfix |
au.c | Adverbs: Utilities |
c.c | Conjunctions |
ca.c | Conjunctions: Atop and Ampersand |
cc.c | Conjunctions: Cuts |
cd.c | Conjunctions: Differentiation and Integration |
cf.c | Conjunctions: Forks |
cg.c | Conjunctions: Gerunds ` and `:
|
ch.c | Conjunctions: Hypergeometric Series |
cip.c | Conjunctions: Inner Product |
cl.c | Conjunctions: L: and S:
|
cp.c | Conjunctions: Power Operator ^: and Associates |
cpdtsp.c | Conjunctions: Dyad +/ .* on Sparse Arguments |
cr.c | Conjunctions: Rank Associates |
crs.c | Conjunctions: Rank on Sparse Arrays |
ct.c | Conjunctions: Taylor's Series |
cu.c | Conjunctions: Under and Each |
cv.c | Conjunctions: Variants (!. ) |
cx.c | Conjunctions: Explicit Definition : and Associates |
d.c | Debug: Error Signalling and Display |
dc.c | Debug: Function Call Information |
dss.c | Debug: Single Step |
dstop.c | Debug: Stops |
dsusp.c | Debug: Suspension |
dtoa.c | strtod for IEEE-, VAX-, and IBM-arithmetic machines. |
f.c | Format: ": Monad |
f2.c | Format: ": Dyad |
i.c | Initializations |
io.c | Input/Output |
j.c | Global Variables |
jdlllic.c | Private Jsoftware encode/decode routines - license keys and ijl |
k.c | Conversions Amongst Internal Types |
m.c | Memory Management |
mbx.c | Memory-Mapped Boxed Arrays |
p.c | Parsing; see APL Dictionary, pp. 12-13 & 38. |
pv.c | Parsing: Tacit Verb Translator (13 : ) |
px.c | Execute and Associates |
r.c | Representations: Atomic, Boxed, and 5!:0
|
rl.c | Representations: Linear and Paren |
rt.c | Representations: Tree |
s.c | Symbol Table |
sc.c | Symbol Table: Function Call (unquote) |
sl.c | Symbol Table: Locales |
sn.c | Symbol Table: Names |
t.c | Table of Primitive Symbols |
u.c | Interpreter Utilities |
v.c | Verbs |
v0.c | Verbs: Polynomial Roots & Polynomial Evaluation |
v1.c | Verbs: Match Associates |
v2.c | Verbs: Primes and Factoring |
va1.c | Verbs: Monadic Atomic |
va2.c | Verbs: Atomic (Scalar) Dyadic |
va2s.c | Verbs: Atomic (Scalar) Dyadic Verbs on Sparse Arrays |
vamultsp.c | Verbs: "Multiplication" on Sparse Arrays |
vb.c | Verbs: Boolean-Valued |
vbang.c | Verbs: !
|
vbit.c | Verbs: Bit Type |
vcant.c | Verbs: Transpose |
vcat.c | Verbs: Catenate and Friends |
vcatsp.c | Verbs: ,. on Sparse Arguments of rank 2 or less |
vchar.c | Verbs: Character Functions u&(a.&i.) and u&.(a.&i.)
|
vcomp.c | Verbs: Comparatives |
vcompsc.c | Verbs: Comparatives |
vd.c | Verbs: Domino |
vdx.c | Verbs: Extended Precision Floating Point |
ve.c | Verbs: Elementary Functions (Arithmetic, etc.) |
vf.c | Verbs: Fill-Dependent Verbs |
vfft.c | Verbs: Fast Fourier Transform and Friends |
vfrom.c | Verbs: From & Associates. See Hui, Some Uses of { and } , APL87. |
vfromsp.c | Verbs: { on sparse arguments |
vg.c | Verbs: Grades |
vgauss.c | Verbs: Gaussian Elimination |
vgcomp.c | Verbs: Grade -- Compare |
vgranking.c | Verbs: Grade -- monad /:@/:"r on dense arguments |
vgsort.c | Verbs: Grade -- dyad /: and \: where a==w
|
vgsp.c | Verbs: Grades on Sparse Arrays |
vi.c | Verbs: Index-of |
viix.c | Verbs: Interval Index, mostly by Binary Search |
visp.c | Verbs: Index-of on Sparse Arrays |
vm.c | Verbs: "Mathematical" Functions (Irrational, Transcendental, etc.) |
vo.c | Verbs: Box & Open |
vp.c | Verbs: Permutations |
vq.c | Verbs: Rational Numbers |
vrand.c | Verbs: Random Numbers |
vrep.c | Verbs: a#"r w
|
vs.c | Verbs: $. Sparse Arrays |
vsb.c | Verbs: s:
|
vt.c | Verbs: Take and Drop |
vu.c | Unicode (2-byte unsigned characters) |
vx.c | Verbs: Extended Precision Integers |
vz.c | Verbs: Complex-Valued Scalar Functions |
w.c | Words: Word Formation |
wc.c | Words: Control Words |
wn.c | Words: Numeric Input Conversion |
ws.c | Words: Spelling |
x.c | Xenos aka Foreign: External, Experimental, & Extra |
x15.c | Xenos: DLL call driver |
xa.c | Xenos: Miscellaneous |
xb.c | Xenos: Binary Representation |
xc.c | Xenos: Custom |
xcrc.c | Xenos: CRC calculation |
xd.c | Xenos: file directory, attributes, & permission |
xf.c | Xenos: Files |
xfmt.c | Xenos: 8!:x formatting stuff |
xh.c | Xenos: Host Command Facilities |
xi.c | Xenos: Implementation Internals |
xl.c | Xenos: File Lock/Unlock |
xo.c | Xenos: File Open/Close |
xs.c | Xenos: Scripts |
xt.c | Xenos: time and space |
xu.c | Xenos: u: conversions |
Files without a description are just headers for the corresponding c file.
Name | Description |
---|---|
a.h | Adverbs: Macros and Defined-Constants (for Adverbs and Conjunctions) |
ar.h | Adverbs: f/ defns |
cip_t.h | Template for ipbx (boolean inner products) |
cr_t.h | cr.c templates |
d.h | Debug |
dtoa.h | strtod for IEEE-, VAX-, and IBM-arithmetic machines. |
j.h | Global Definitions |
ja.h | Aliases for jt |
jc.h | Character Definitions |
je.h | Extern Declarations |
jerr.h | Error Codes |
jlib.h | Interface to the j library (dll or shared object) |
js.h | SYS_ and friends |
jt.h | Definitions for jt ("jthis") |
jtype.h | Type Definitions |
jver.h | Defines JVERSION |
m.h | Memory Management |
p.h | Parsing: Macros and Defined Constants |
s.h | For Symbol Tables aka Locales |
va.h | Verbs: Macros and Defined Constants for Atomic (Scalar) Verbs |
vasm.h | Verbs: Assembly Routines for Integer + * - with Overflow |
vcomp.h | Verbs: Comparatives |
vdx.h | Verbs: Extended Precision Floating Point |
ve.h | Atomic Verbs |
vg.h | Grades |
vq.h | Rational Numbers |
vx.h | Extended Precision |
vz.h | Complex Numbers |
w.h | Words |
x.h | Xenos: Macros and Defined Constants for !:
|
The vast majority of J is taken up by defining builtin functions.
To find where a builtin function is defined, check t.c, which is a
table containing the C function corresponding to every J primitive.
For instance, if we want to look at the code for monad i.
, we search
for it in t.c and see the line:
/* i. */ pdef(CIOTA, VERB, jtiota, jtindexof,1, RMAX,RMAX);
The rows are (Symbol name, part of speech, monad, dyad, monad rank, dyad rank 1, dyad rank 2).
Thus jtiota
is the C function which performs monad i.
. There are
three parts in its definition:
- An entry in je.h,
extern F1(jtiota);
, so that the function can be used in other files (in particular, t.h). - An entry in ja.h,
#define iota(x) jtiota(jt,(x))
(some spaces omitted).jt
is the structure containing J's state; it is passed between all functions. So that the programmer doesn't have to typejt
a million times, these definitions are used for every function that has it as an argument. - The actual definition, in this case in v.c. What goes in this function will be described elsewhere.
Because the foreign conjunction has so many cases, its implementation is
split across many files, each having a name that starts with x. The master
function, which can be found with a look in t.c as usual, is jtforeign
,
in x.c. This function is itself essentially an extension of t.c, indexed
by left and right argument rather than symbol. The rows and meaning are
the same.