by [ name | topic | voc ] [ glos | files | xref ] [ notation | dpans94 | syscalls ] [ bot | top ]
Text formatted for the lynx html-browser and for plain text printing, 132 chars/line|
Nomina ------ annotations: (n.i.) (yet) not implemented -?- points to something which the author isn't certain about and, whereupon any help would be very welcome: pse, mailto:l4@lxhp.in-berlin.de ( n1 := n2 ) n2 assigned to n1 (new value of n1 is n2) ( n1 = n2 ) n1 equal to n2 ( n1 == n2 ) n1 and n2 identical (same value, same storage place) ( n1 =/= n2 ) n1 not equal n2 ( n1 >/ n2 ) n1 signed greater than or equal to n2 ( n1 \< n2 ) n1 signed smaller than or equal to n2 @name content at address/variable {name} {name} Forth words in this text(s) are noted between braces {?name} abort if some test not passed {name?} ret true flag if some test was successful. <name> assembly source label, lib4th internal access, only. does{ ... } hi-level aequivalent to described action of a word. hi-level word specific to lib4th is a subroutine call by indexed uot-ref. or, by pc-relative subroutine call, where the latter applies if the rsp. call can be replaced by an indexed uot call, w/o. further adjustment. immediacy A Forth word is 'immediate' if it executes whatever semantics is defined for the actual "state", immediately after being found in the input strem, regardless of whether the system is in compiling or in interpreting state. Immediacy can temporarily be suppressed for a single word, e.g. w. {postpone}. lo-level, "primitive" word specific to lib4th is a word programmed w. directly executeable processor operations instead of subroutine calls to 4th words. letter case is consistent within words, i.e. never mixed! library supplied words are lower case, with the exception of those required to switching back from upper case and, the group of ANS defined environmentas queries and query strings. Initial input state is case independency, thus any Standard ANS Forth Program can be compiled w/o. modifications, to this respect. nos address of next item on datastack ovf "owerflow". primitive word re "lo-level", above. smudged words cannnot be found w. the usual means, e.g. {find}; the Forth word {smudge} toggles this state. stack "last in - first out" memory access method by a single pointer. Access no other than by the self maintaining "stack pointer". "top" of a stack is 1st accessible item, regardless of stack's direction of growth. Stack "bottom" is address of empty stack. tor address of top of returnstack tos refers to address of top of datastack @tos item (cell) at tos - which in lib4th is content of register eax use{ .. } short application example. words origin (4) hi-level word (4th subroutine calls vs direct op coding) those words can also serve as assembly level application programming examples. (79) 79-FORTH word (83) FORTH-83 word (a) ANS-4th word, as described in DPANS94 standard draft, e.g, (a:c) core appended 'x' is the rsp extension wordset (a:cx) core ext re above, "Wordsets", for other abbreviations. (f6) non-standard word, taken from f6 (for the 680xx) (f8) non-standard word, new w/ lib4th/F8. (fg) word from f.i.g. model forth (pre-79 'standard'). (h4) Skywave's real-time multitasking Forth for the Z80. (l4) lib4th specific (w3) Win32Forth (several "Windows" variants) words cathegories (c) constant (32bit) value (C) 'compile only' restriction (e) word whereafter in compiled code {flg} can be used to read eflags reflecting the current operation's result. (i) immediate(ly executing) word, which regardless of @state always executes. (ix) special interpreter word, not being compiled, immediate. (k) a (currently) headerless word, in library only. Meant for kernel only access - insert wordheader to "lib4words.inc" for common accessiblity. (kv) a "value" defined in L4 kernel, {to} applicable. (m) "macro": optionally compiles expanded inline code. (n.i.) (r) kernel word w/ args passed by reg or by reg ref other than @tos (s) word accessing a linux system call; ((s)) secondary call. (u) or (uninitiated) lo-level subroutine, can be run after fatal errors or before system fully initiated, i.e. not relying on pointers into user-vari or on kernel reference. (v) vectored word/data can be re-defined, e.g. { ' .s idx>xec 4th>abs (ok) ! } (w) word which in interpreting mode executes directly. (as {bye}, {create}, {evaluate}; currently no other such words) (x), ((x)) word using one or more of mmx register(s) mm0..mm3, ((x)) secondary call. those words co-exist w/o mmx regs useage in {non-mmx} vocabulary, which automatically replace the mmx-ones if __MMX compile switch in <Makefile> defined. mm4..mm7 unused by L4, left to user routines. (X), ((X)) words the non-mmx alternatives of which should be activated by the rsp. compile-switch, at <make> time. they are not accessible as an alternative, explicitely, if the mmx-variant exists (was cpl'd). memory: au, address unit consecutive group of consecutively addressable bits. byte no. of bits per address unit, dft = 8 byte order little endian, inconsistent use of big-endian cells order (but little endian bytes) in {ans-vocabulary, for standard compliance. no other words un-supposedly operate on big-endian byte/cells order. data items cells (re below), unless stated section, segment a contiguous memory section of equal assets types: data-types by virtue, i.e. Forth does not implement inherent data typing. (Most?) Forth programmers rely on the power of the conscious mind... a true address (virtual, specific to the particular Linux job) c a single character, dft = one 8-bit byte ch "channel" number, index into "channel definition table" (cdt). ccc string of characters cell group of little endian ordered 4 bytes d signed double df double floating pt number, by quad ranum, -re- "qv", "ranum". double signed integer value represented by two consecutive cells, little endian, m.s. cell @tos dv double ranum, a pair of doubles, numerator and denominator. false cell of all unset bits fd Linux file descriptor, a "channel identifier", for internal use, only. standard i/o access w/ ref to "channel" numbers and {ch-id}. ff condition not met flag (single int 0) (simplistic "logic" describes this as the {false} flag) fp, f1, f2... floating point number, represented by a double ranum (double f.p.-s represented by quad ranum) -re- "dv", "ranum". f, flg flag, any value or sequence of bits, fitting into one cell tf condition met flag (single int -1) (simplistic, binary "logic" describes this as the {true} flag) n signed single .n1..nn N .n.N counted, multi-cells sized integer ("bignum") o octet, eight cells item, may also represent a quad ranum p forth ptr, rel kernel reference (i.e, p is disp to KR = ebx) ..q quotient of an arithm. division quad signed integer value represented by four consecutive cells, little endian, m.s. cell @tos qv quad ranum, a pair of quads, numerator and denominator. ..r remainder of an arithm. division ranum rational (or "real") number, represented by pairs of sings, doubles or quads, interpretted as an (improper) fraction. -re- {rational} vocabulary for further description. sing signed integer value represented by one cell s system control item, two cells on compilestack (i.e. datastack) true cell of all set bits (though not optimal for i386) u unsigned sing ud unsigned double v sing ranum, pair of integers, numerator(@nos) denominator(@tos). ..xx.. data on respective stack depend on word(s) execution Glossary notation ----------------- wordname stack(s) source callname wordlist comment... wordname the name by which the Forth word will be found. stack the word's data flow on stack(s): ( before -- after ) if word scans for a string <ccc> following in input stream: ccc( before -- after) data flow on return-stack: (R: before -- after) on compile-stack: (C: before -- after) data-stack when interpreting 'immediate's: (X: before -- after ) source the word's semantics origin, or original description, plus 'immediacy' and other properties specific to the particular word. callname library symbol by which the word accessible at lo-level i.e. in assembly or, from other programs which call the library. callname is wordname if not explicitely given. wordlist to which the word belongs. comment (obvious...) "xec:" comment applies to executing state, "cpl:" comment applies to compiling state.
by [ name | topic | voc ] [ glos | files | xref ] [ notation | dpans94 | syscalls ] [ bot | top ]