Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Важная особенность Форта — использование стека для передачи параметров между словами, такая конструкция позволяет очень гибко и просто реализовывать сложные концепции.
Distinctive for its use of 2 push-down stacks. The Return stack is used for subroutine return addresses, as usual. The Data stack holds parameters for and results of subroutine calls. This distinction between control and data minimizes the cost of subroutine calls. As a result, Forth code is typically highly factored into many tiny subroutines, called words. Referencing a word causes its code to be executed.
( ipcalc stager 29.04.05 )
: .bin ( word ) 10 swap 2 base ! u. base ! ;
: / ( a b c d word ) swap 256 * + swap 256 256 * * + swap 256 256 256 * * * + ;
: (hosts) ( /mask hosts ) 32 swap - 2 swap ** 2 - ;
: mask ( /mask word ) 32 swap - 1- 1 swap 0 do 2* 1+ loop not ;
: (naddr) ( word /mask word ) mask and ;
: (faddr) ( word /mask word ) mask and 1+ ;
: (baddr) ( word /mask word ) dup (hosts) rot rot (faddr) + ;
: (laddr) ( word /mask word ) (baddr) 1- ;
: .addr ( word ) 256 u/mod 256 /mod 256 /mod . ." ." . ." ." . ." ." u. ;
: bin.addr ( word ) 256 u/mod 256 /mod 256 /mod
.bin ." ." .bin ." ." .bin ." ." .bin ;
: net over over (naddr) ." net work: " .addr ;
: first over over (faddr) ." first addr: " .addr ;
: last over over (laddr) ." last addr: " .addr ;
: bcast over over (baddr) ." broadcast: " .addr ;
: hosts over over (hosts) ." hosts: " u. drop ;
: bin dup cr bin.addr ;
: ipcalc cr net cr first cr last cr bcast cr hosts ;
10 17 28 16 / 28 ipcalc
net work: 10 .17 .28 .16
first addr: 10 .17 .28 .17
last addr: 10 .17 .28 .30
broadcast: 10 .17 .28 .31
hosts: 14 ok
192 168 233 91 / 30 ipcalc
net work: 192 .168 .233 .88
first addr: 192 .168 .233 .89
last addr: 192 .168 .233 .90
broadcast: 192 .168 .233 .91
hosts: 2 ok
10 233 16 40 / 10 ipcalc
net work: 10 .192 .0 .0
first addr: 10 .192 .0 .1
last addr: 10 .255 .255 .254
broadcast: 10 .255 .255 .255
hosts: 4194302 ok
255 255 255 240 / bin
11111111 .11111111 .11111111 .11110000 ok
10 17 28 16 / bin
1010 .10001 .11100 .10000 ok
В языке программирования Форт принята т. н. "постфиксная нотация" (ее еще иногда называют "обратной польской записью"). Это означает, что знак операции (логической или арифметической) в нем располагается после чисел
Специально для тех, кто хочет побольше узнать о Фоpте, автор nnCron пеpевел в "электpонный" вид книжку Leo Broudie Starting Forth (Лео Бpоуди "Hачальный куpс пpогpаммиpования на языке Фоpт"). Это очень доступный текст на pусском языке - http://www.nncron.ru/download/sf.chm (1,5Mb).
Настоятельно советую всем, кто интересуется Фортом, скачать краткий справочник по основным словам SP-Forth (http://www.nncron.ru/download/spf_help.z…) исходники nnCron (http://www.nncron.ru/download/src.rar) и SP-Forth 3.75 (http://www.enet.ru/win/cherezov/sp-forth…) - в них хорошо документированы большинство слов, которые вам могут понадобиться.
Язык программирования Форт