From ac4d782add00015682d9daf98be4ad5511a4d4c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20A=2E=20Ortega=20Froysa?= Date: Thu, 27 Oct 2022 20:51:12 +0200 Subject: [PATCH] Add PHP history assignment. --- .../t3-ej1-php-history/t3-ej1-php-history.pdf | Bin 0 -> 28179 bytes .../t3-ej1-php-history/t3-ej1-php-history.tex | 77 ++++++++++++++++++ .../t3-ej1-php-history/t3-ej1-php-history.toc | 5 ++ 3 files changed, 82 insertions(+) create mode 100644 2/IAW/assignments/t3-ej1-php-history/t3-ej1-php-history.pdf create mode 100644 2/IAW/assignments/t3-ej1-php-history/t3-ej1-php-history.tex create mode 100644 2/IAW/assignments/t3-ej1-php-history/t3-ej1-php-history.toc diff --git a/2/IAW/assignments/t3-ej1-php-history/t3-ej1-php-history.pdf b/2/IAW/assignments/t3-ej1-php-history/t3-ej1-php-history.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e48d2c8c1f21210833853817b708741fc05dabbc GIT binary patch literal 28179 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 literal 0 HcmV?d00001 diff --git a/2/IAW/assignments/t3-ej1-php-history/t3-ej1-php-history.tex b/2/IAW/assignments/t3-ej1-php-history/t3-ej1-php-history.tex new file mode 100644 index 0000000..2fefe83 --- /dev/null +++ b/2/IAW/assignments/t3-ej1-php-history/t3-ej1-php-history.tex @@ -0,0 +1,77 @@ +\documentclass[12pt,a4paper,titlepage]{article} +\usepackage[spanish]{babel} +\usepackage{hyperref} +\usepackage{graphicx} +\usepackage{subcaption} + +\title{Historia de PHP} +\author{Nicolás A. Ortega Froysa} + +\begin{document} +\maketitle + +\tableofcontents +\pagebreak + +\section{Introducción} + +PHP es un lenguaje de programación que se usa en el ámbito de desarrollo web +{\it backend}. Originalmente las siglas significaban {\it Personal Home Page}, +mas en 1997 se cambió el nombre a unas siglas recursivas, {\it PHP: Hypertext +Preprocessor}. + +\section{Orígenes} + +PHP fue creado por Ramsus Lerdorf en 1993. En este momento estaba escribiendo +CGIs en C para su página web personal, hasta desarrollar una implementación +capaz de interactuar con formularios web y bases de datos. A esta implementación +la nombró {\it Personal Home Page/Forms Interpreter} (o PHP/FI). + +Su sintaxis original era diferente a la actual. Como diferencia principal, los +bloques de código se escribían dentro de los bloques de comentario HTML. + +\begin{verbatim} + + +

Home Page

+

Hello, World!

+ + +\end{verbatim} + +No fue intención de Lerdorf crear un lenguaje de programación, sino que fue una +evolución orgánica de su proyecto personal conforme a sus necesidades. No fue +hasta la versión 3 en 1997 que Zeev Suraski y Andi Gutmans reescribieron el +parseador. Esto dio lugar a la evolución de PHP que conocemos hoy en día. + +\section{Versiones} + +\begin{itemize} + \item {\bf PHP/FI 1-2}: versiones originales creadas más bien como proyecto + personal. + \item {\bf PHP 3-4}: elaboración y desarrollo profesional, usando {\it Zend + Engine} como core. + \item {\bf PHP 5}: incorporación de {\it Zend Engine II} y soporte para + programación orientado a objetos. + \item {\bf PHP 6}: inclusión de uso nativo de {\it Unicode}, y muchos + problemas. + \item {\bf PHP 7}: refactorización del código para resolver los errores de la + versión 6 y optimizar el código. + \item {\bf PHP 8}: rompiendo algunas cosas con las versiones anteriores, + incorpora un {\it just-in-time compiler} para mejorar el rendimiento. + \item {\bf PHP 8.1}: enumeraciones\ldots{} que de verdad no sé por qué no se + incorporaron hasta ahora. +\end{itemize} + +\pagebreak + +\section{Derechos de Autor y Licencia} + +\noindent +Copyright \copyright\ \the\year\ Nicolás A. Ortega Froysa + \\ +\\ +Este documento se distribuye bajo los términos y condiciones de la licencia +Creative Commons Attribution No Derivatives 4.0 International. + +\end{document} diff --git a/2/IAW/assignments/t3-ej1-php-history/t3-ej1-php-history.toc b/2/IAW/assignments/t3-ej1-php-history/t3-ej1-php-history.toc new file mode 100644 index 0000000..ecf9104 --- /dev/null +++ b/2/IAW/assignments/t3-ej1-php-history/t3-ej1-php-history.toc @@ -0,0 +1,5 @@ +\babel@toc {spanish}{} +\contentsline {section}{\numberline {1}Introducción}{2}{section.1}% +\contentsline {section}{\numberline {2}Orígenes}{2}{section.2}% +\contentsline {section}{\numberline {3}Versiones}{2}{section.3}% +\contentsline {section}{\numberline {4}Derechos de Autor y Licencia}{4}{section.4}%