Está en la página 1de 19

Camilo Gallego Ortiz

Julian Alberto Restrepo Aguirre


Lenguaje de programacin diseado por Larry
Wall en 1987 que toma caractersticas del
lenguaje C, del lenguaje interpretado shell (sh),
AWK, sed, Lisp y, en un grado inferior, de
muchos otros lenguajes de programacin.
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.
Paradigma
Multiparadigma, Funcional, Imperativa, Dialectos
Orientado a Objetos (basado en clases), Perl 5, Perl 6
Reflexiva
Influido por
Apareci en 1987 AWK, Smalltalk 80, Lisp, C, C++, Pascal,
sed, Unix shell
Diseado y Desarrollado por Larry
Wall Ha influido a
Python, PHP, Ruby, ECMAScript, LPC,
ltima versin estable 5.14.0 (14 de Windows PowerShell, JavaScript, Falcon
mayo de 2011)
Sistema Operativo
ltima versin en prueba 5.15.0 (15 Multiplataforma, muchos (ms de 100)
de mayo de 2011)
Licencia de software
Tipo de Dato GPL, Licencia Artstica
Dinmico Web: www.perl.org
Implementaciones
Perl, mod_perl, embperl
Esta fase se encarga de verificar si todas las
cadenas pertenecen o no al lenguaje. Es decir
realiza un anlisis smbolo por smbolo
indicando el token por cada uno de los
elementos reconocidos o el error en caso de
no reconocer. Este anlisis no logra detectar
muchos errores por su caracterstica.
Identificadores Variables
Escalares $ Scalars
Listas @ Arrays
Hashes % Hashes

Identificadores Constantes
Perl implemente un conversar de datos a bits

ANALISIS LEXICOGRAFICO
Palabras Reservadas
abs fork print m
chmod hex uc post
chop Int ucfirst s/
chown lc y/ study
defined oct qq/STRING/ log
delete reverse ord sin
die sex index each
eof rindex q/STRING/
exit sprintf length
exp substr crypt
fileno tr/ chr
ANALISIS LEXICOGRAFICO
-> / <= ne =
++ % >= cmp +=
-- x lt & -=
** + gt | *=
! - le ^ ,
~ . ge && =>
> << == || not
=~ >> != .. and
!~ < <=> or
* > eq ?: xor
ANALISIS LEXICOGRAFICO
$ ]
% #
@ #!
; \n

{
}
[
ANALISIS LEXICOGRAFICO
El anlisis sintctico convierte el texto de entrada en
otras estructuras (comnmente rboles), que son
ms tiles para el posterior anlisis y capturan la
jerarqua implcita de la entrada. Un analizador
lxico crea tokens de una secuencia de caracteres de
entrada y son estos tokens los que son procesados
por el analizador sintctico para construir la
estructura de datos, por ejemplo un rbol de anlisis
o rboles de sintaxis abstracta.
Todo programa en Perl debe comenzar en la
primera lnea con:
#! /usr/bin/perl

Esta parte es fundamental si se quiere correr


Perl en su sistema

ANALISIS SINTACTICO
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

Estructura del Programa ANALISIS SINTACTICO


Tiene estructuras de control orientado al bloque,
similar a los lenguajes de programacin C y Java

CONDICIONES estn rodeadas por parntesis ( )

BLOQUES rodeados por llaves { }

EXPRESIONES OPCIONALES por corchetes cuadrados []

ETIQUETAS deben llevar al final dos puntos ':';

Estructura del Programa ANALISIS SINTACTICO


[ETIQUETA] while CONDICION BLOQUE [continue BLOQUE ]

[ETIQUETA] until CONDICION BLOQUE [continue BLOQUE ]

[ETIQUETA] foreach [VARIABLE] (LISTA) BLOQUE [continue BLOQUE]

[ETIQUETA] for (EXPRESION_1;EXPRESION_2;EXPRESION_3) BLOQUE


Donde EXPRESION_1 es la expresin inicial, EXPRESION_2 la condicin y la
EXPRESION_3 es la expresin incremental.

if CONDICION BLOQUE [[elsif BLOQUE] else BLOQUE] unless CONDICION BLOQUE [else BLOQUE]

Estructura del Programa ANALISIS SINTACTICO


Cuando se controla a una sola declaracin, los modificadores de
declaracin proporcionan una sintaxis ms ligera
DECLARACIN if CONDICIN

DECLARACIN unless CONDICIN

DECLARACIN while CONDICIN

DECLARACIN until CONDICIN

DECLARACIN foreach LISTA

Donde DECLARACIN es una instruccin, llamada a alguna funcin, etc. y en estos


casos la CONDICIN en vez de estar rodeado por parntesis requiere un punto y coma
al final de la condicin.

Estructura del Programa ANALISIS SINTACTICO


Los operadores lgicos se utilizan para construir la CONDICIN 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) segn el contexto en que se use

Estructura del Programa ANALISIS SINTACTICO


1. Anlisis Bottom-Up

2. Optimizador de arriba hacia abajo

3. Optimizador de Tirilla

4. Generacin de cdigo
ANALISIS SINTACTICO
Ejemplo

$a=-($b+$c)

ANALISIS SINTACTICO
Perl se ahorra el desarrollo de este anlisis ya
que no trabaja con tipos definidos de
variables, sino que trabaja con bits
directamente, esto es posible a travs de
marshalling

También podría gustarte