Modifications

Sauter à la navigation Sauter à la recherche
284 octets ajoutés ,  25 janvier 2015 à 19:37
Ligne 145 : Ligne 145 :  
** Le code natif avec type natif vois sont byte code décomposé en code machine et suppose que les entiers font moins de de 31 bits (ce qui permet d'utiliser des instructions machines simples pour des opérations sur les entiers et les pointeurs). Vous pouvez penser à cela comme "syntaxe Python, sémantique C". Pour les boucles effectuant des opération arithmétiques et manipulations de bit, l'exécution est presque aussi rapide qu'un programme en C.
 
** Le code natif avec type natif vois sont byte code décomposé en code machine et suppose que les entiers font moins de de 31 bits (ce qui permet d'utiliser des instructions machines simples pour des opérations sur les entiers et les pointeurs). Vous pouvez penser à cela comme "syntaxe Python, sémantique C". Pour les boucles effectuant des opération arithmétiques et manipulations de bit, l'exécution est presque aussi rapide qu'un programme en C.
 
** L'emission d'assembleur inline utilise la grammaire Python mais interprète une liste d'instruction code machine. L'assembleur Inline peut être appelé depuis un code Python normal avec des entiers et pointeurs comme arguments.
 
** L'emission d'assembleur inline utilise la grammaire Python mais interprète une liste d'instruction code machine. L'assembleur Inline peut être appelé depuis un code Python normal avec des entiers et pointeurs comme arguments.
* Python exceptions are handled using a variant of setjmp/longjmp.  This reduces the amount of flash and RAM needed to implement exceptions.
+
* Les exceptions Python sont gérées en utilisant une variante de setjmp/longjmp.  Cela réduit la quantité mémoire Flash et RAM nécessaire pour implémenter les exceptions.
* A function (byte code, native or inline assembler) can be called on an interrupt long as it does not allocate heap memory (since it can be called while a garbage collection is taking place). In practice this is not a big restriction, as you can do a lot of things using only memory on the stack.  For example, you can make loops with while/for, do integer arithmetic and bitwise operations (but no bignums), call other functions and access and overwrite elements of collections like bytearrays (but not create new ones).
+
* Une fonction (byte code, native ou assembleur inline) peut être appelé sur une interruption pour autant qu'il n'alloue pas de mémoire sur la heap (le ''Tas'', étant donné qu'une interruption ne peut pas être appelée durant une phase de collecte garbage collecteur). Dans la pratique, cela ne représente pas une grande restriction étant donné qu'il est possible beaucoup de choses uniquement en utilisant la mémoire accessible sur la stack (la ''pile'')Par exemple, vous pouvez faire des boucles avec while/for, réaliser des opérations arithmétiques entière et manipulations booléennes (mais pas des grands nombres), appeler d'autres fonctions, accéder et écraser des éléments d'une collection tels que bytearrays (mais pas en créer un nouveau).
    
=== MicroPython sur PC ===
 
=== MicroPython sur PC ===
29 917

modifications

Menu de navigation