Compilacion Perl

1,345
-1

Published on

Presentacion realizada para mostrar el proceso de compilacion que se lleva a cabo en el lenguaje de programacion Perl

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,345
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
26
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Compilacion Perl

  1. 1. PerlCompilador<br />Camilo Gallego Ortiz<br />Julian Alberto Restrepo Aguirre<br />
  2. 2. Perl<br />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.<br />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.<br />
  3. 3. Carateristicas<br />Paradigma<br />Multiparadigma, Funcional, Imperativa, Orientado a Objetos (basado en clases), Reflexiva <br />Apareció en 1987 <br />Diseñado y Desarrollado por Larry Wall <br />Última versión estable 5.14.0 (14 de mayo de 2011) <br />Última versión en prueba 5.15.0 (15 de mayo de 2011) <br />Tipo de Dato<br />Dinámico <br />Implementaciones<br /> Perl, mod_perl, embperl<br />Dialectos<br />Perl 5, Perl 6 <br />Influido por<br />AWK, Smalltalk 80, Lisp, C, C++, Pascal, sed, Unix shell<br />Ha influido a<br />Python, PHP, Ruby, ECMAScript, LPC, Windows PowerShell, JavaScript, Falcon <br />Sistema Operativo<br />Multiplataforma, muchos (más de 100) <br />Licencia de software<br />GPL, Licencia Artística <br />Web:www.perl.org<br />
  4. 4. Análisis Lexicográfico<br />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.<br />
  5. 5. Identificadores<br />Identificadores Variables<br />Escalares $ Scalars<br />Listas @ Arrays<br />Hashes % Hashes<br />Identificadores Constantes<br />Perl implemente un conversar de datos a bits<br />ANALISIS LEXICOGRAFICO<br />
  6. 6. Identificadores<br /><ul><li>Palabras Reservadas</li></ul>abs<br />chmod<br />chop<br />chown<br />defined<br />delete<br />die<br />eof<br />exit<br />exp<br />fileno<br />fork<br />hex<br />Int<br />lc<br />oct<br />reverse<br />sex<br />rindex<br />sprintf<br />substr<br />tr/<br />print<br />uc<br />ucfirst<br />y/<br />qq/STRING/<br />ord<br />index<br />q/STRING/<br />length<br />crypt<br />chr<br />m<br />post<br />s/<br />study<br />log<br />sin<br />each<br />ANALISIS LEXICOGRAFICO<br />
  7. 7. Operadores<br />-><br />++<br />--<br />**<br />!<br />~<br />><br />=~<br />!~<br />*<br />/<br />%<br />x<br />+<br />-<br />.<br /><<<br />>><br /><<br />><br /><=<br />>=<br />lt<br />gt<br />le<br />ge<br />==<br />!=<br /><=><br />eq<br />ne<br />cmp<br />&<br />|<br />^<br />&&<br />||<br />..<br />…<br />?:<br />=<br />+=<br />-=<br />*=<br />,<br />=><br />not<br />and<br />or<br />xor<br />ANALISIS LEXICOGRAFICO<br />
  8. 8. Caracteres Especiales<br />$ <br />%<br />@<br />;<br />“<br />‘<br />{<br />}<br />[<br />]<br />#<br />#!<br />n<br />ANALISIS LEXICOGRAFICO<br />
  9. 9. Analizador Sintactico<br />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.<br />
  10. 10. Estructura del Programa<br />Todo programa en Perl debe comenzar en la primera línea con:<br />#! /usr/bin/perl<br />Esta parte es fundamental si se quiere correr Perl en su sistema<br />ANALISIS SINTACTICO<br />
  11. 11. Estructura de Control<br />Perl tiene varias clases de estructuras de control.<br />CONTROL DE CICLOS<br />do, while, for, foreach, continue<br />CONTROL DE SENTENCIAS<br />if, else, unless, until, elsif<br />CONTROL DE FLUJO<br />goto, elsif, next, last, redo, return<br />ANALISIS SINTACTICO<br />Estructura del Programa<br />
  12. 12. Tiene estructuras de control orientado al bloque, similar a los lenguajes de programación C y Java<br />CONDICIONESestán rodeadas por paréntesis ( ) <br />BLOQUES rodeados por llaves { }<br />EXPRESIONES OPCIONALESpor corchetes cuadrados []<br />ETIQUETASdeben llevar al final dos puntos ':';<br />ANALISIS SINTACTICO<br />Estructura del Programa<br />Estructura de Control para Varias Sentencias<br />
  13. 13. Estructura de Control para Varias Sentencias<br />[ETIQUETA] while CONDICION BLOQUE [continue BLOQUE ]<br /><ul><li>[ETIQUETA] until CONDICION BLOQUE [continue BLOQUE ]
  14. 14. [ETIQUETA] foreach [VARIABLE] (LISTA) BLOQUE [continue BLOQUE]
  15. 15. [ETIQUETA] for (EXPRESION_1;EXPRESION_2;EXPRESION_3) BLOQUE</li></ul>Donde EXPRESION_1 es la expresión inicial, EXPRESION_2 la condición y la EXPRESION_3 es la expresión incremental.<br /><ul><li>if CONDICION BLOQUE [[elsif BLOQUE] else BLOQUE] unless CONDICION BLOQUE [else BLOQUE]</li></ul>ANALISIS SINTACTICO<br />Estructura del Programa<br />
  16. 16. Estructura de Control para una Sola Sentencias<br />Cuando se controla a una sola declaración, los modificadores de declaración proporcionan una sintaxis más ligera<br />DECLARACIÓN ifCONDICIÓN<br />DECLARACIÓN unless CONDICIÓN <br />DECLARACIÓN whileCONDICIÓN<br />DECLARACIÓN untilCONDICIÓN<br />DECLARACIÓN foreachLISTA<br />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.<br />ANALISIS SINTACTICO<br />Estructura del Programa<br />
  17. 17. Estructura de Control para Operadores Lógicos<br />Los operadores lógicos se utilizan para construir la CONDICIÓN en una estructura de control<br />EXPRESION1 and EXPRESION2;<br />EXPRESION1 or EXPRESION2;<br />EXPRESION1 && EXPRESION2;<br />EXPRESION1 || EXPRESION2;<br />EXPRESION1 eq EXPRESION2;<br />EXPRESION1 == EXPRESION2;<br />Donde EXPRESION1 y EXPRESION2 son variables a comparar o “expresiones” booleanas(verdadero o falso) según el contexto en que se use<br />ANALISIS SINTACTICO<br />Estructura del Programa<br />
  18. 18. Creación Árbol Sintáctico<br />Análisis Bottom-Up <br />Optimizador de arriba hacia abajo <br />Optimizador de Tirilla<br />Generación de código<br />ANALISIS SINTACTICO<br />
  19. 19. Ejemplo<br />$a=-($b+$c)<br />ANALISIS SINTACTICO<br />
  20. 20. Análisis Semantico<br />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<br />
  21. 21. Gracias<br />
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×