La Pause Café du Forum Programmation

je pense qu’il est interprété, ce qui permet de ne pas tenir compte de l’os

J’ai toujours lu qu’il ne fallait pas utilisé “compiler” en parlant de php, je me doute qu’il ne l’est pas car un langage compilé normalement est compilé une seule fois, et c’est ce code compilé que l’on exécute, pas le script écrit dans le langage spécifié.

Mais tout de même, cela voudrait dire que lorsque que j’ouvre une page php, le script exécuté est d’abord analysé pour être interprété,

  • soit dans un langage intermédiaire, qui sera lui même interprété de nouveau avant de passer dans le processeur
  • soit d’être interprété directement en code machine pour passer dans le processeur

Je ne me rend pas compte de tout ça, car je n’ai pas de passé informatique dû à mon jeune age, mais interprété demande quand même pas mal de temps, il est vrai que les machines sont de plus en plus performantes mais si j’exécute mon script, il est interprété n fois, puis m’est renvoyé par le serveur, je trouve ça tout de même étrange.

De plus si l’on parvenait à bloquer l’interprétation d’une machine pendant qu’elle se procède, cela pourrait-il constituer une faille de sécurité majeure? Je reste bien entendu dans le théorique là. Encore uen fois j’avance des choses que j’aimerais comprendre, je dis surement du faux.

Pour le PHP, comme tout langage “script” (Batch, Bash, Perl (?), JavaScript, etc.) : le fichier est d’abord lu (analysé bloc par bloc en même temps) puis exécuté (en interne je pense que ça passe par une compilation en C/C++) avant d’être oublié.
Il me semble qu’il existe des modules/extensions pour garder la version compilée du script PHP et la re-exécuter la prochaine fois (en sautant la phase de lecture/analyse).

pour être précis, il s’agit de ByteCode, qui contient une version “compilé” (moi aussi les poils se hérissent quand j’utilise ce terme avec un langage de script :ane: ) en code natif compréhensible par le moteur Zend (le “coeur” de PHP) … c’est notemment ce que fait le Zend Guard (entre autre, vu qu’il rajoute aussi un peu de crypto) ou certains modules comme TurkMMCache ou celui sur lequel je suis en train de bosser :o [:shy] …

pour écrire en bytecode, il y’a l’extension bcompiler qui permet de faire ça … mais c’est encore du bêta :o …
Edité le 11/10/2007 à 20:46

pour toi DarKY, fan de mattez ma tique : www.break.com…

Alors le php est d’abord interprété en équivalent C/C++, qui lui même est compilé (ByteCode) avant d’être envoyé dans le processeur puis la compilation se perd (du moins ne sera pas réutilisée)? J’ai bon là?

Je la ressortirais à ma prof’ de maths, on verra si elle a de l’humour :super:

waw l’autre, sont pas assez cassants :o

bah la compilation peut-être réutilisé si tu la conserve :oui: … c’est ce que fait (entre autre) Zend Optimizer, Turk MMCache, etc … : il met en cache les fichiers compilés de façon à accélérer les scripts :neutre: …

Hum…
Une interprétation, théoriquement c’est pas justement de “traduire” bloc par bloc avec un tableau d’équivalence dans un autre langage? N’est-il possible justement de faire une équivalence directement en code machine sans sous traité en C/C++? Théoriquement ça paraît possible, mais techniquement il vaut peut-être mieux de passer par le C/C++.

Allez, bonne nuit :sommeil:

ui 'fin là on parle de PHP, pas de C/C++ hein :nexath …
si j’ai bien compris, le bytecode PHP est plus gros (en taille) que le source PHP (ce qui ne m’étonne pas), mais le bytecode peut-être compresser (gzip/bzip2), ce qui pour le coup peut occasionner un temps d’éxecution plus long …
mais vu que c’est le moteur Zend qui fait l’interface entre machine <> bytecode, je doute qu’on puisse directement chier produire un fichier directement executable par le système, à moins d’inclure dedans tout l’attirail PHP :neutre: …

ça pourrait être un projet GSOC intéressant :o [:shy]

Du bytecode plus gros que du texte brut ? A moins que le bytecode contienne toutes les fonctions natives PHP requises par le script PHP, je n’y crois pas…

:neutre:

GSOC? Google ?

Et le bytecode plus gros que le texte brut? Oui. C’est possible.

Pour le reste, y a des logiciels capables de transcrire bytecode java vers natif, il me semble. Mais ce n’est pas efficace.

yep, Google Summer Of Code :oui: …

'fin je sais pos, c’est une idée comme ça … de toute façon je suis plus étudiant, donc GSOC c’pas pour moi :o :smiley:

Bon aller dernz, bonne nuit tout le monde :slight_smile:

Aller je dernz aussi :wink:

Ce message n’était pas conforme aux règles d’utilisation du nouveau forum :

MWAHAHAHA
DERNZ

Preums :hello:

Deuz [:kramoc]