Post by Denis BeauregardLe 23 Mar 2008 21:08:06 GMT, BertrandB
Post by BertrandBEN fait je cherche à savoir s'il est possible en php d'étendre la
syntaxe de celui-ci en rajoutant des tokens (éléments lexicaux)
supplémentaires.
Pour l'instant je ne crois pas mais parfois cantonade est de bon conseil.
PHP est un langage interprété. Je pense que les langages où on peut
redéfinir les opérateurs comme le C++ sont toujours compilés.
<mode="pédant">
Le fait d'être "interprété" ou "compilé" (concepts qui restent par
ailleurs à préciser, cf plus bas) n'est pas le propre d'un langage
(lequel est composé d'une grammaire et d'une syntaxe) mais d'une
implémentation d'un langage. Par exemple:
- pour common lisp, il existe des implémentations compilées, des
implémentations interprétées, et même des implémentation proposant les deux
- gcj compile (au moins un sous-ensemble de) Java en code "natif"
- il existe des interpréteurs C
De plus, concernant la distinction entre "compilé" et "interprété", la
frontière est floue. Par exemple, Java, Python, et quelques autres
langages utilisent une compilation intermédiaire vers un byte-code,
lequel est "exécuté" (interprété ?) par une machine virtuelle. Dans le
cas de Python, il existe une implémentation qui compile vers un
byte-code spécifique, une implémentation qui compile vers du byte-code
pour une machije virtuelle Java, et une implémentation qui compile vers
du byte-code pour le CLR (la machine virtuelle ms.NET)...
</mode>
Accessoirement, aussi bien Ruby (actuellement - enfin, aux dernières
nouvelles en tous cas - purement interprété) que Python supportent la
surcharge des opérateurs.
Dernier point: la surcharge des opérateurs, même si elle permet de
spécialiser la sémantique des opérateurs, n'a aucun impact sur la
*syntaxe* du langage.
HTH