GNU Free Documentation License . .

( )

: ,
Forth
:

:

/

:

1971

():

.

:

gForth, pForth, kForth, SP-Forth[1], win32forth[2]

:

FORTH-79, FORTH-83, ANSI FORTH 1994 , ColorForth, RetroForth.

:

,

:

PostScript, Factor

(Forth , («» ). . . : « ». .

, , . . , , . .

[]

[]

X.  1960-  1970- . Fourth, , (. fourth) . IBM 1130 (.), , , FORTH (. forth  ). , , 1950- .[3]

1971  (.), . . (. Elizabeth Rather), -.

. , 1973 , FORTH, Inc[4], .

1970- , , FORTH Interest Group (FIG). FIG Forth Model  -, .   FIG-FORTH .

[]

. Astronomical Sciences, AST. 1977 - () , AST.01.

1978 FORTH-77, .

1979 - () FORTH-79, .

1983 , 1984 FORTH-83. -83 -79 , .

1988 ACM SIGFORTH[5]; ACM (  . . .  (-, )). SIGFORTH SIGPLAN (.).

1994 , , ANSI .[6]

[]

  , «» 1985 . , , -, , , .

OpenBoot  SPARC PowerPC.

1980-x Adobe Systems PostScript[7], PDF.

, . . ( FORTH, Inc MicroProcessor Engineering Ltd.[8]) .

(EuroForth), - (), , , , , ( ).[9]

[] -

, , . , . , , . .

«» :

  •   ( ) , .
  •   .
  •   .
  •   ( ).

: -. , . , . - , , . , , , . , -, (. threaded code),   -.

, , (. token), . , . , , , , . , compile -. ,   . , , . , , . , immediate («»), .

:

  • ;
  • ;
  • ( 1994 ).

, .

. .

.   ; , . ForthOS.[10]

() -. , , -. - . , , , -, , -.

[]

- .

, , , , , , «» . , .

, , , , . , , , pop push.

, , , , , . . , , .

-, . () , . 256 (2-, 4- 8-), .

.

  • , , , . . .
  • 256 , , . 256 64, 2- ( ).
  • , .
  • . Java, .

[]

."  "

SIGN, :

: SIGN  ( n -- )
    DUP 0> IF ."  " DROP
           ELSE 0=
             IF ." "
             ELSE ."  "
             ENDIF
           ENDIF ;

, , , .SIGN :

\   
: .SIGN ( n -- )
   ?DUP 0= IF
     ." "
   ELSE
     0> IF
     ."  "  ELSE
     ."  "  ENDIF
   ENDIF
;

, ( ):

\  ""  
: S-CONSTANT ( c-addr u "<spaces>name" -- )
   CREATE 
     DUP , 0 ?DO
       DUP C@ C, CHAR+
     LOOP DROP 0 C,
   DOES>
     DUP CELL+ SWAP @
;

name CREATE. name , . , - , («» ). , DOES>.

, . .

, (immediate-).

:

[  (, 0 STATE).

]  .

LITERAL  , , . .

, :

\     
16 CONSTANT size
 
\       
: report ( -- )
   size . ."    "
   [ size 1024 * ] LITERAL . ." "
;

[] Forth

  , «» . :

  • , «» , .
    « » , , :

:
.

  • : . , .
  • « » .
  • . , . , « » ( ).
  • . , . ,   , , , , , . . (, ! @,   C! C@), (, , ANSI FORTH 94; , , ).

:

  • , , - .
  • , , . , C++, , , , , .
  • . ( ) , , .
  • , , . , , - .
  • . . «»   . , , , (, int char C++ ( , , ) - ), , , «» .
  • . .
  • , . , (  ). , .
  • , . .
  • 16- , , 10-20 , . 32- . , .   , , . , .
  • , ,   . . , .

, « », , . (ANSI FORTH 94), , , :

  • , . , . . , .
  • . ,   . , . , - , , , - .
  • . , 2* , , « , ». ,   , . (   LSHIFT RSHIFT.)

  , -, 79 83 .

[] .

, SPF

[]

[]

[]

-