Lien Uxn - La machine virtuelle de 100 lignes qui fait tourner des apps sur votre Game Boy



Le langage FORTH, inventé par Charles Moore dans les années 1960, pourrait facilement laisser penser qu'il est devenu totalement désuet : en effet, sa dernière version officielle, FORTH 2012, date de 2014, et il en va de même pour son implémentation libre la plus avancée, GNU FORTH (gforth 0.7.3), qui remonte également à la même année.
Qu'en est-il ?
Dans les faits, il semble effectivement un peu passé de mode, et ne possède évidemment pas l'engouement actuel pour Python ou (…)

Hello.
Depuis maintenant quelques années, j'utilise pas mal le mind-mapping pour organiser mes idées. Je suis assez satisfait de cette méthode (bien que de mon point de vue, celle-ci nécessite un certain temps d'adaptation et présente quelques faiblesses, mais c'est un autre débat).
Je voulais utiliser le mind mapping pour organiser les idées afin d'écrire une petite page d'introduction à Forth, et je me suis servi de l'outil freeplane. Sous Ubuntu, je peux avoir une version native, et une version (…)



Uxn est un écosystème applicatif complet, destiné au développement de petits outils et jeux, sous forme d'une machine virtuelle programmable dans un langage assembleur dédié (uxntal) et possédant seulement 32 instructions, sur le principe d'une machine forth, dont il garde d'ailleurs la syntaxe postpositionnée (postfix), la pile (stack) et la capacité de produire une solution à partir de composants simples et basiques.
Uxn peut être vu comme un processeur, et le reste des périphériques (audio, écran, clavier, souris) est géré (…)
Salut à tous. Voici un portage de TapTempo en Forth.
5 set-precision
6 Constant steps
: now utime drop ;
: calc-tempo steps 60 1000 1000 * * * s>f drop now swap - s>f f/ ;
: print-tempo ." Tempo: " f. ." bpm" cr ;
: restart now steps ;
: main
." Appuyer sur la touche entrée en cadence (q pour quitter)." cr
restart
begin
key 113 <> while 1- dup 0 = if calc-tempo print-tempo restart (…)
Bonjour
donc voilà le code en GFORTH capable d'interpréter du BrainFuck
: array create 0 do 0 , loop does> swap cells + ;
0 value str
0 value size
variable pos
30000 array mem
variable cur
\ helpers
: incr 1 swap +! ;
: decr -1 swap +! ;
: goto 1- pos ! ;
: cur-char str pos @ + c@ ;
: mem-null? cur @ mem @ 0= ;
: end-of-loop? cur-char [char] ] = ; (…)