El documento describe el lenguaje de programación Perl. Perl fue diseñado por Larry Wall en 1987 y toma características de otros lenguajes como C, shell, AWK, Lisp. Perl es multiparadigma y dinámico, y fue ampliamente adoptado por su habilidad para procesar texto. El documento también describe el análisis léxico y sintáctico de Perl así como sus estructuras de control como bucles y condicionales.
2. Perl Lenguaje de programación diseñado por Larry Wall en 1987que toma características del lenguaje C, del lenguaje interpretado shell (sh), AWK, sed, Lisp y, en un grado inferior, de muchos otros lenguajes de programación. Estructuralmente, Perl está basado en un estilo de bloques como los del C o AWK, y fue ampliamente adoptado por su destreza en el procesado de texto y no tener ninguna de las limitaciones de los otros lenguajes de script.
3. Carateristicas Paradigma Multiparadigma, Funcional, Imperativa, Orientado a Objetos (basado en clases), Reflexiva Apareció en 1987 Diseñado y Desarrollado por Larry Wall Última versión estable 5.14.0 (14 de mayo de 2011) Última versión en prueba 5.15.0 (15 de mayo de 2011) Tipo de Dato Dinámico Implementaciones Perl, mod_perl, embperl Dialectos Perl 5, Perl 6 Influido por AWK, Smalltalk 80, Lisp, C, C++, Pascal, sed, Unix shell Ha influido a Python, PHP, Ruby, ECMAScript, LPC, Windows PowerShell, JavaScript, Falcon Sistema Operativo Multiplataforma, muchos (más de 100) Licencia de software GPL, Licencia Artística Web:www.perl.org
4. Análisis Lexicográfico Esta fase se encarga de verificar si todas las cadenas pertenecen o no al lenguaje. Es decir realiza un análisis símbolo por símbolo indicando el token por cada uno de los elementos reconocidos o el error en caso de no reconocer. Este análisis no logra detectar muchos errores por su característica.
5. Identificadores Identificadores Variables Escalares $ Scalars Listas @ Arrays Hashes % Hashes Identificadores Constantes Perl implemente un conversar de datos a bits ANALISIS LEXICOGRAFICO
6.
7. Operadores -> ++ -- ** ! ~ > =~ !~ * / % x + - . << >> < > <= >= lt gt le ge == != <=> eq ne cmp & | ^ && || .. … ?: = += -= *= , => not and or xor ANALISIS LEXICOGRAFICO
9. Analizador Sintactico El análisis sintáctico convierte el texto de entrada en otras estructuras (comúnmente árboles), que son más útiles para el posterior análisis y capturan la jerarquía implícita de la entrada. Un analizador léxico crea tokens de una secuencia de caracteres de entrada y son estos tokens los que son procesados por el analizador sintáctico para construir la estructura de datos, por ejemplo un árbol de análisis o árboles de sintaxis abstracta.
10. Estructura del Programa Todo programa en Perl debe comenzar en la primera línea con: #! /usr/bin/perl Esta parte es fundamental si se quiere correr Perl en su sistema ANALISIS SINTACTICO
11. Estructura de Control Perl tiene varias clases de estructuras de control. CONTROL DE CICLOS do, while, for, foreach, continue CONTROL DE SENTENCIAS if, else, unless, until, elsif CONTROL DE FLUJO goto, elsif, next, last, redo, return ANALISIS SINTACTICO Estructura del Programa
12. Tiene estructuras de control orientado al bloque, similar a los lenguajes de programación C y Java CONDICIONESestán rodeadas por paréntesis ( ) BLOQUES rodeados por llaves { } EXPRESIONES OPCIONALESpor corchetes cuadrados [] ETIQUETASdeben llevar al final dos puntos ':'; ANALISIS SINTACTICO Estructura del Programa Estructura de Control para Varias Sentencias
16. Estructura de Control para una Sola Sentencias Cuando se controla a una sola declaración, los modificadores de declaración proporcionan una sintaxis más ligera DECLARACIÓN ifCONDICIÓN DECLARACIÓN unless CONDICIÓN DECLARACIÓN whileCONDICIÓN DECLARACIÓN untilCONDICIÓN DECLARACIÓN foreachLISTA Donde DECLARACIÓN es una instrucción, llamada a alguna función, etc. y en estos casos la CONDICIÓN en vez de estar rodeado por paréntesis requiere un punto y coma al final de la condición. ANALISIS SINTACTICO Estructura del Programa
17. Estructura de Control para Operadores Lógicos Los operadores lógicos se utilizan para construir la CONDICIÓN en una estructura de control EXPRESION1 and EXPRESION2; EXPRESION1 or EXPRESION2; EXPRESION1 && EXPRESION2; EXPRESION1 || EXPRESION2; EXPRESION1 eq EXPRESION2; EXPRESION1 == EXPRESION2; Donde EXPRESION1 y EXPRESION2 son variables a comparar o “expresiones” booleanas(verdadero o falso) según el contexto en que se use ANALISIS SINTACTICO Estructura del Programa
18. Creación Árbol Sintáctico Análisis Bottom-Up Optimizador de arriba hacia abajo Optimizador de Tirilla Generación de código ANALISIS SINTACTICO
20. Análisis Semantico Perl se ahorra el desarrollo de este análisis ya que no trabaja con tipos definidos de variables, sino que trabaja con bits directamente, esto es posible a través de marshalling