Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Gua 6
2015-I
Lenguajes Recursivos
Objetivos de aprendizaje
1. Especificar un lenguaje recursivo
Pag. 1/8
LENGUAJES Y TRADUCTORES
2015-I
Introduccin
Antes de planear el programa, debe realizarse una revisin de la necesidad para la
existencia del programa y definirse de alguna forma los objetivos que desean
lograrse a travs del programa (requerimientos). El proceso de plantacin de un
programa tiene como finalidad lograr el diseo de un programa que cumpla con los
requerimientos. Generalmente es conveniente disear primero la estructura general
del programa y trabajar luego la lgica detallada.
La actividad de programar comienza con la resolucin de problema en cuestin,
en donde debe de priorizarse la actividad de diseo y de razonamiento frente a la
depuracin mediante ejecucin.
Recursin
Una funcin es recursiva cuando es efectivamente computable. Es decir cuando
existe un procedimiento efectivo( u algoritmo) que la computa. El procedimiento
debe ser finito, sin embargo no se impone limitacin previa al espacio de
memoria del que se dispone para realizar el clculo.
Los orgenes de la teora clsica de la recursin pueden hallarse en Dedeking,
cuando en 1988 introduce el estudio de las funciones definibles sobre conjuntos
de los nmeros naturales usando ecuaciones y recurrentemente, la induccin
sobre los nmeros naturales que el haba formulado y precisado. Por lo que
respecta a su estadio presente, cuyo radio de accin cubre la totalidad de las
funciones efectivamente computables, los orgenes hay que buscarlos en el grupo
de Princeton; empez con Church(1903-1995), pero si hay que atribuirle un
padre, este es Kleene. El fue quien la impulso, defini y acoto. Suyos son los
teoremas de la forma normal y el de recursin.[Manzano]
En la primera mitad del siglo XX la lgica se aplico mayormente a la
fundamentacin de la matemtica. En la segunda mitad jugo un papel decisivo en
la creacin y desarrollo de la informtica y de los lenguajes de programacin,
hasta el extremo de poderse caracterizar a la informtica as:
Informtica = Lgica +ingeniera electrnica
La recursin se puede usar en muchos casos
Pag. 2/8
LENGUAJES Y TRADUCTORES
2015-I
Definicin de Fractales
Expresiones regulares
R
RR
E / E
E /E/( E ) /p
R/R / ( R ) / R *
Pag. 3/8
LENGUAJES Y TRADUCTORES
Fig
Esquema
2015-I
de
llamadas
recursivas
LENGUAJE RECURSIVO LR
Consideremos la sintaxis de un lenguaje recursivo LR. La caracterstica de la
mayora de los lenguajes de programacin son las definiciones recursivas
[Pea,1998].
Definamos un lenguaje funcional LR, que prescinda de:
Concepto de procedimiento o accin
Parmetros de E/S
Instrucciones iterativas
Composicin de secuencial de instrucciones
Instrucciones de asignacin
Instrucciones de E/S
El lenguaje LR podr definir e invocar funciones, escribir instrucciones
condicionales y de utilizar recursividad.
PROG
PARFORM
PARM
LISTAID
EXP
PARACT
OP
CONDIC
CASOS
UNCASO
Caso
DECLAR
EXP
EXP
Ejemplo 1
Hallar an
Pag. 4/8
LENGUAJES Y TRADUCTORES
2015-I
Fun Id
PARM
( PARFORM )
Dev (
PARFORM
ListaId : Id
PARM
ListaId , Id
ListaId : Id
Id
Id
PARFORM )
PARM
Inicio
EXP
Fin
PARFORM
Ejemplo 2
Hallar la suma dicotomica de los elementos de un vector
FUN Suma(a : V ; i , j : entero) DEV (s : entero)
Inicio
ENCASO
Caso
i>j
0
Otrocaso
i=j
a[i]
OtroCaso
i<j
Sea m = (i+j) DIV 2
en Suma(a,i,m) + Suma(a,m+1,j)
FINCASO
Fin
Ejemplo 3
Hallar la suma lineal de un vector
Se explora el vector de izquierda a derecha, sumando uno a uno sus elementos
Pag. 5/8
LENGUAJES Y TRADUCTORES
2015-I
7
4
3
7
Ejemplo 4
Hallar la suma lineal de un vector
Se explora el vector de derecha a izquierda, sumando uno a uno sus elementos
5
3
7
Pag. 6/8
LENGUAJES Y TRADUCTORES
2015-I
Fin
Ejemplo 5
Hallar el mximo comn divisor de dos enteros a y b
FUN MAXCD(a,b:entero) DEV (m:entero)
Incio
completar
Fin
Ejercicios Propuestos
a)
b)
c)
d)
e)
f)
g)
h)
i)
Referencias Bibliogrficas
[1] [AHO 1990] Aho A.,Sethi,Ullman Compiladores, principios, tcnicas y
herramientas; Addison-Wesley1990, Wilmington-Delaware EUA.
[2]
[3]
[4]
[5]
Pag. 7/8
LENGUAJES Y TRADUCTORES
[6]
2015-I
[7]
[CORTEZ 2011] Augusto .Cortez Vsquez. Matemticas Discretas, Edit San
Marcos Lima 2011.
[8]
[CORTEZ 2009] Augusto .Cortez Vsquez, Procesamiento del lenguaje natural. Revista RISI
Vol 6 N 2 2009 , Pg 45-54 ISSN 1815-0268 Lima Per www.openjournal.unmsm.edu
[9]
Compiladores,
Conceptos
Pag. 8/8