Quiero saber cómo crear un lenguaje como PHP. ¿Cómo sabe el servidor cómo traducir un archivo PHP? ¿Como funciona? Quiero hacer esto con fines educativos. Un lenguaje sencillo con funciones básicas como eco, etc.¿Cómo puedo crear un lenguaje como PHP y cómo funciona?
Respuesta
Fundamentalmente, cuando el servidor web obtiene la solicitud para procesar el archivo php, se traduce esta solicitud al procesador php, podría ser un módulo (como php.so en apache) o servicio (como php-cgi). El servicio o el módulo compila el script php en código máquina, lo ejecuta y le da al servidor el resultado de su trabajo. Puede descargar el código fuente de php desde http://php.net. El código fuente incluye analizador, thanslator, compilador y otros componentes necesarios para ejecutar el script php como código de máquina
¿Cómo sabe el servidor web de forma automática? Esta petición. – liamzebedee
Throu config file. Por ejemplo, en apache config AddHandler php5-script .php AddType text/html .php – Vadyus
Esto está mal. La versión de PHP en php.net se compila en bytecode para su ejecución por Zend VM. PHP generalmente se interpreta o se compila en código intermedio. La compilación de códigos de máquina es posible pero no la regla. –
Esta es una gran pregunta. Y no uno que realmente puede ser respondida aquí, pero algunas sugerencias para ayudarle a empezar ...
PHP expone algunos de sus funcionamientos internos - si usted tiene un vistazo a:
<?php
$srctokens=token_get_all(file_get_contents(__FILE__));
print "<pre>\n";
foreach ($srctokens as $tok) {
print token_name($tok[0]) . ' -> ' . $tok[1];
}
?>
podrás ver que divide el código en 'palabras' y asigna metadatos a cada uno (es un nombre de función, una variable, un operador ...).
Luego construye esto en una estructura de árbol, p. una instrucción 'if' podría tener tres nodos secundarios: una expresión para evaluar (que a su vez tendría nodos secundarios), algún código para evaluar si la expresión es verdadera y algún código para evaluar si la expresión es falsa.
Normalmente utilizará un conjunto de funciones integradas para leer datos del exterior y enviar datos al mundo exterior.
Wikipedia o google son generalmente buenos puntos de partida para descubrir cosas que no conoce.
Vale la pena señalar que, debido a que es un lenguaje interpretado, es sencillo crear código ejecutable a partir de estructuras de datos PHP utilizando eval() o create_function() (o simplemente usando archivos temporales). De hecho, incluso podría implementar un sistema de reescritura estructurado para que los datos originales no se parezcan en nada al código PHP. p.ej. lolcode
Pero debe tener mucho cuidado de no exponer este mecanismo a alguien que pueda abusar de él.
HTH
Dividir la tarea en al menos dos partes, de nivel superior:
PHP como cualquier otro lenguaje de programación - se necesita un analizador léxico, analizador e intérprete.
Las bibliotecas y módulos para servidores web prefieren Apache/TomCat para interactuar con PHP.
3) un módulo cgi-bin (o alternativas) o un módulo apache – Quamis
También podría escribirlo en PHP, como BobX. Tenga en cuenta que BobX es en realidad un ejemplo de lo que NO hacer.
Eso trae recuerdos ... –
- 1. ¿Cómo crear un lenguaje de programación .Net?
- 2. ¿Cómo funciona PHP? - Literatura
- 3. Lua como lenguaje web
- 4. ¿Cómo puedo crear un nuevo operador en PHP?
- 5. ¿Cómo puedo alojar un gadget de Google? ¿Como funciona?
- 6. PHP como un lenguaje de programación de escritorio
- 7. ¿Cómo aprender R como lenguaje de programación?
- 8. ¿Cómo puedo crear un sistema seguro de "recordarme" usando PHP?
- 9. HTML: cómo crear un botón "guardar como"?
- 10. ¿Cómo crear un widget en php y javascript?
- 11. ¿Cómo puedo "otorgar crear usuario" como usuario no root?
- 12. Crear un lenguaje de scripting
- 13. ¿Cómo funciona PHP con Apache?
- 14. Cómo crear un lenguaje de programación en Python
- 15. Javascript como un lenguaje funcional
- 16. ¿Cómo crear un archivo PDF con PHP?
- 17. ¿Cómo puedo crear un vector perezoso-ss
- 18. cómo funciona el autocargador php
- 19. ¿Cómo funciona PHP PDO internamente?
- 20. ¿Cómo puedo ejecutar varios scripts PHP desde un script PHP (como un archivo por lotes)?
- 21. ¿Cómo crear archivos .php usando php?
- 22. Cómo crear un protocolo proxy como UIAppearance
- 23. ¿cómo puedo crear un sistema de etiquetado usando php y mysql?
- 24. ¿Cómo puedo crear un sitio en php y hacer que genere una versión estática?
- 25. ¿Cómo puedo implementar el algoritmo de unificación en un lenguaje como Java o C#?
- 26. ¿Cómo puedo crear un entorno seguro Lua?
- 27. ¿Cómo puedo crear una extensión PHP en Windows?
- 28. ¿Cómo puedo crear un NSMutableArray de estructuras?
- 29. ¿Cómo puedo crear un singlete IEnumerable?
- 30. ¿Cómo puedo crear un botón flotante usando jQuery y CSS?
No es una respuesta completa, pero puede descargar el código fuente de PHP desde php.net. Está escrito en C –
http://stackoverflow.com/questions/366998/good-resources-on-programming-language-design da algunas sugerencias sobre cómo diseñar un lenguaje de programación –