Deutsch   English   Français   Italiano  
<tipae8$5pt$1@gioia.aioe.org>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!news.mixmin.net!aioe.org!ehPmoIe1VPaiJg2plNRepQ.user.46.165.242.91.POSTED!not-for-mail
From: Arachide <houten.van@orange.fr>
Newsgroups: fr.comp.sys.atari
Subject: =?UTF-8?Q?Re=3a_FORTH_s=27=c3=a9toffe_en_Maths?=
Date: Wed, 19 Oct 2022 18:59:54 +0200
Organization: Aioe.org NNTP Server
Message-ID: <tipae8$5pt$1@gioia.aioe.org>
References: <tih82e$1637$1@gioia.aioe.org> <JtD5DXvL7NDvvWKyJU07lj22UOo@jntp>
 <tilrv3$ahc$1@gioia.aioe.org> <JQCVKMMzTg9ybkeZOfHWcjYYaIA@jntp>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Info: gioia.aioe.org; logging-data="5949"; posting-host="ehPmoIe1VPaiJg2plNRepQ.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Thunderbird 680x0 for Windows powered by Atari
X-Notice: Filtered by postfilter v. 0.9.2
Content-Language: fr
Bytes: 2279
Lines: 43

Le 18/10/2022 à 22:40, OL a écrit :
> C'est assez terrible ce language et le @ il sert à quoi ? dire que l'on 
> va faire une opération avec ce qu'il y a devant et ce qu'il y a 
> derrière, c'est une vraie torture ! Je suppose qu'il y a un intérêt 
> sinon qui pourrait écrire ainsi ? A côté l'assembleur semble presque 
> simple!
> 
> Merci en tous les cas pour les explications
> 
> Olivier

En fait le choix du FORTH est l'extrême simplicité de l'interpréteur (il 
tait à l'origine destiné aux petits systèmes embarqués de pilotage 
d'engins par exemple). Donc un interpréteur utilisant peut de mémoire 
était le top.

Chaque valeur est déposée sur la pile et chaque opération agit sur le 
sommet de la pile. Il n'y a pas d'interpréteur d'expression 
mathématique, de précédence d'opérateurs, rien de tout ça. L'addition 
prendra toujours les deux valeurs du sommet et remplace par la somme.

Le signe @ a la même fonction que l'étoile en C. Elle permet de passer 
d'un pointeur (qui est une adresse) au contenu pointé. Ici, @ ramène le 
LONG pointé à l'adresse.

Donc:

x @

ramène la valeur longue pointée par x (une variable est une adresse 
finalement).

x @ 4 +

renvoie 4 + la valeur de x

mais:

x 4 + @

renvoie le LONG se trouvant à 4 octets après x.

Guillaume.