2011-01-05 16 views
15

Ok: He editado mi pregunta: oí en alguna parte que el lenguaje PHP está escrito en C.¿Es el lenguaje PHP resultante C?

Así que lo que sucede por ejemplo cuando se ejecuta una función en php como date("Ymd"); o file_get_contents("file.txt");?

¿Transfiere ese código a C y lo solicita al servidor o lo hace php?

Y si lo traduce y lo solicita, eso significa que básicamente es C?

+1

PHP está escrito en C, C++ no. ¿Por qué no echas un vistazo al código fuente de PHP y lo ves por ti mismo? – BoltClock

+0

no, no traduce nada en C++, aunque Facebook desarrolló un compilador que sí traducía PHP en código C, y luego en lenguaje de máquina, llamado hiphop o algo así. – dqhendricks

+1

El intérprete de PHP se escribió en C. Una llamada 'date()' en realidad se ejecuta por una biblioteca interna compilada que se escribió en C. –

Respuesta

22

Eso es incorrecto.

Si se refiere al lenguaje en el que se implementa PHP, es C, no C++; consulte PHP wikipedia page, en Idioma de implementación.

Eso no significa, sin embargo, que "traduzca" el código a C; PHP es un lenguaje interpretado.

Mientras se ejecuta el código, por supuesto tiene que usar funciones escritas en C, ya que él mismo está utilizando C. Sin embargo, no se produce una "traducción" en C; el código es simplemente analizado por el lenguaje PHP y el lenguaje luego llama, en sí mismo, lo que es apropiado.

Es posible que desee leer more on interpreted languages, que debe darle una mejor comprensión.

+0

Pregunto, ¿por qué? ¿Dónde está la ventaja? ¿No es más útil codificar directamente en C? – Francesco

+1

@Francesco La ventaja es que puede desarrollarse más fácil y más rápido. Ese es el objetivo del lenguaje interpretado. Pero sí, puedes codificar perfectamente tu sitio web en C ... si tienes tiempo ... – AnonBird

0

En cualquier lenguaje interpretado la sintaxis del lenguaje es sólo un envoltorio de funciones y construcciones implementado en el lenguaje del lenguaje interpretado está escrito en.

1

PHP original es un intérprete muy trivial que no realiza ninguna generación de código. Pero hay una implementación alternativa, un PHP a C++ compilador HipHop:

https://github.com/facebook/hiphop-php