Accueil
Nouvelles
Profil
Contact
Half-Life
Musique
PCASTL
Informatique
Vidéos
Lecture
OpenGL
Éléments
sids du C64
Liens
|
Opérateurs
Types de données
Fonctions internes
Structure de l'arbre
Traitement par lots
Exemples
Interpréteur
|
PCASTL by Parent and Childset Accessible Syntax Tree Language Le PCASTL est un langage de programmation de haut niveau qui rend l'écriture de code automodifiant plus facile. Ses caractéristiques sont :
La version la plus récente est 3.5 et date du 2018-03-31. Alors, qu'est-ce qu'un arbre syntaxique? Par exemple, à l'intérieur de l'interpréteur, l'arbre ayant sa racine dans la variable fact après que ce code ait été exécuté : fact = function(x) { if (x == 1) return(1) return(x * fact(x - 1)) } est : Ci-dessous vous pouvez voir comment les mots réservés childset et parent peuvent être utilisés pour explorer cet arbre. > info(fact) [node_type] "function definition" [nb_children] 2 [parameters][0] "x" > > info(fact.childset[0]) [node_type] "list" [nb_children] 1 > > info(fact.childset[0].childset[0]) [node_type] "variable" [nb_children] 0 [name] "x" > > info(fact.childset[1]) [node_type] "list" [nb_children] 2 > > info(fact.childset[1].childset[0]) [node_type] "if statement" [nb_children] 2 > > info(fact.childset[1].childset[1]) [node_type] "function call" [nb_children] 2 [nb_args] 1 > > info(fact.childset[0].parent) [node_type] "function definition" [nb_children] 2 [parameters][0] "x" Voici des façons de modifier l'arbre: > mknode(fact.childset[1], `if (x < 1) { + print("Parameter must be greater than zero.") + abort() + }', 0) > fact(-2) "Parameter must be greater than zero." > info(fact.childset[1]) [node_type] "list" [nb_children] 3 > > info(fact.childset[1].childset[0].childset[1].childset[1]) [node_type] "function call" [nb_children] 2 [nb_args] 0 > > fact.childset[1].childset[0].childset[1].childset[1] = `return(-1)' 0x431c20 > info(fact.childset[1].childset[0].childset[1].childset[1]) [node_type] "function call" [nb_children] 2 [nb_args] 1 > > fact(-2) "Parameter must be greater than zero." -1 |
Mobile
|