dec 222018
 

Ik vond ergens een eenvoudige manier om forth te benchmarken. de in de vorige post beschreven GGD berekening is daar een prima hulpmiddel bij.

De benchmark bestaat uit de berekening van de GGD voor alle combinaties van getallen tussen 0 en n.

: benchmark ( n -- )  
dup  
0 do  
dup 0 do  
j i ggd drop  
loop  
loop  
drop  
;  

Het resultaat voor de getallen tussen 0 en 200:
amforth: 8 sec.
dec 222018
 

Om tijdens testen van forth code even te gluren naar de inhoud en diepte van de stack kan je zelf het volgende in amForth maken:

variable maxdepth-.s \ definieer een variabele
#50 maxdepth-.s !    \ >> Van bovenaf geteld maximaal aantal te tonen stack items

: .s ( -- ) \ toont  en de bovenste stack items
   ." <" depth 0 .r ." > " \ print aantal items
   depth 0 max maxdepth-.s @ min 
   dup 0 ?DO 
     dup i - pick .
   LOOP
   drop
  ;

Als het ‘word’ .s wordt aangeroepen resulteert dat in een regel met:
a) de diepte van de stack tussen ‘< >’, gevolgd door de daadwerkelijke items op de stack. De laatste is het bovenste item.

De inhoud van de stack wordt niet beïnvloed.

Uiteraard kan je -zoals met (bijan) alle words in forth- het word .s ook weer in nieuwe words opnemen.

dec 192018
 

Hoe bereken je de Grootste Gemene Deler (GGD) in Forth?

Dat doe je zo:

: ggd ( a b -- ggd )
begin
dup
while
swap over mod
repeat
drop
;

Zet nu twee getallen op de stack en laat ggd het werk doen. 

Na afloop staat de GGD op de stack.

nov 292018
 

Was ik eerst bezig met Raspberry Pi (hardware) in combinatie met Forth (programmeertaal), nu ben ik overgestapt naar Arduino en Forth.

Waarom?

a) De Arduino is een microcontroller die apparaten met enen en nullen of analoge signalen aanstuurt. Daardoor werk je ‘dichter op de hardware’.

b) Forth is een programmeeromgeving waarmee je heel dicht bij de hardware kan komen.

Het lijkt als het ware dus alsof ze beide voor elkaar gemaakt zijn.

Voor de Arduino maak ik gebruik van AmForth.

AmForth runs completely on the controller. It does not need additional hardware. It makes no restrictions for hardware extensions that can be connected to the controller. The default command prompt is in a serial terminal.

aug 172018
 

Ik was in mijn werkzame leven bij ‘de PTT’ een verwoed gebruiker van de programmeer-taal/omgeving FORTH (op 8080, Z80, 68000 microprocessoren). En ook in mijn vrije tijd  was het FORTH (op de 6502 microprocessor / PET 2001, de Commodore 64 en de Apple ][) wat de klok sloeg.

Op raspberrypi.org ontdekte ik dat de interesse voor FORTH weer aan het groeien is. Nu niet bij microprocessor-, maar bij Raspberry Pi gebruikers.

Dat doet mij deugd, Want FORTH is en blijft bij uitstek geschikt voor besturing van apparaten.

Omdat ik een Raspberry Pi heb was dit de aanleiding om dit mooie apparaatje weer tevoorschijn te halen.

~ Lees op Beginners Guide to Wiring Things to the GPIO hoe je met FORTH de I/O van de Raspberry Pi kan besturen.

Ik heb het geprobeerd en het werkt als een tierelier.

Enne … May the FORTH be with you