Вы находитесь на странице: 1из 8

UNIVERSIDAD MARIANO GALVEZ GUASTATOYA EL PROGRESO

CATEDRATICO:

RENE ALVARADO

CATEDRA:

COMPILADORES

TAREAS VARIAS

ROBERTO MIGUEL MERIDA S.

CARNE: 1890-06-16724

5TO. SEMESTRE
EJERCICIO: 1.1.1

1. Cuál es la diferencia entre un compilador y un intérprete:

Es un programa fuente que puede leer un programa en un lenguaje y traducirlo en un programa


equivalente a un lenguaje, mientras que un intérprete nos da la apariencia de ejecutar
correctamente las especificaciones en un programa de origen.

2. Cuáles son las ventajas de

a) ¿ventajas de un compilador sobre un intérprete?


Un compilador es más rápido que un intérprete al momento de asignar las entradas a las
salidas.

b)¿ventajas de un intérprete sobre un compilador?


Puede ofrecer mejores diagnósticos de error que un compilador, ya que ejecuta el programa
fuente instrucciones por instrucciones.

3. Que ventajas hay para un sistema de procesamiento de lenguajes en el cual el compilador


produce lenguaje ensamblador en vez de lenguaje máquina.

El programa puede producir un programa destino en ensamblador como salida, ya que es más fácil
producir el lenguaje ensamblador como salida y es más fácil su depuración.
Es mucho más rápido.
Requiere menos tiempo.

4. A un compilador que traduce un lenguaje de alto nivel a otro lenguaje de alto nivel es el
llama traductor de source- source. ¿Qué ventajas hay en el uso de C como lenguaje
destino para un compilador.

¿??????????????

5. Describa alguna de la tareas que necesita realizar un ensamblador

raducir un programa en lenguaje de ensamblador al código correspondiente en el lenguaje de


maquina en esencia,
Convertir los códigos a su código equivalente en lenguaje máquina.
Convertir los operando simbólicos en las direcciones correspondientes de los operando
Construir las instrucciones en lenguajes de maquina en el formato apropiado.
Procesar las directrices al ensamblador.
3.1.1 DIVIDE EL SIGUIENTE PROGRAMA EN C++:

Float cuadroLimitado(x) float x {


/* devuelve x al cuadro, pero nuna más de 100 */
Return (x<=-10.0 ||x>=10.0)?100:x*x;
}

TOKEN DESCRIPCION
Float Palabra reservada
X Id
() Llamada funcion
<> Op. comparacion
|| Op. OR
10.0 Numeral
{} Id
* Operador
¿? Operador nulo

EJERCICIO: NO. 3.2

3.1.2 Lenguajes indecidibles como HTML con muchas etiquetas. Sugiera como
dividir el siguiente documento en HTML en los lexemas apropiados.

He aquí una foto de <B>mi casa <B/>:


<P><IMG SCR =”casa.gif” ><BR>
Vea <A HREF =”masimgs.html”>Mas imagines </A> si
Le gusto esa. <P>
TOKEN DESCRIPCION
He aquí una foto de Cadena de caracteres
<B> Inicializacion etiqueta
negrilla
<B/> Finalizacion etiqueta en
negrilla
<P> Etiqueta parrafo
IMG SCR Identificador
= Operador de
comparacion
”casa.gif” Literal
<BR> Etiqueta salto de linea
Vea Cadena de caracteres
”masimgs.html” literal
Mas imagines Cadena de caracteres
<P> Etiqueta parrafo

EJERCICIO 3.3.2

3.3.2 Describa los lenguajes denotados para las siguientes expresiones


denotadas

 a(a|b)*a.
a ε a…a , a ε b…a
 ((ε|a)b*)*.
ε b… …,
 (a|b)*a(a|b)(a|b).
a… ε aaa, b…abb,
 (aa|bb)*((ab|ba)(aa|bb)* (ab|ba)(aa|bb)*)*

ε aa…abaa…abaa… …, bb… babb… babb… …


EJERCICIO 3.3.3

3.3 En una cadena de longitud n, ¿Cuántos de los siguientes hay?

a) Prefijos
b) Sufijos
c) Prefijos propios
d) Subcadenas
e) Subsecuenticas

Prefijo de n: una cadena que se obtiene eliminando cero o más símbolos desde derecha de la
cadena n.

Sufijo: de n: una cadena que se forma suprimiendo cero o más símbolos desde la izquierda de una
cadena n por ejemplo era es un sufijo de bandera.

Prefijos propios: cualquier cadena no vacía x que sea respectivamente, un prefijo, sufijo o
subcadena de n tal que n = x

Subcadenas de n: una cadena que se obtiene suprimiendo un prefijo y un sufijo de n, por ejemplo
ande es una subcadena de bandera.

EJERCICIO: 3.3.4

La mayoría de los lenguajes son sensible a mayúsculas y minúsculas por lo que la palabra clave
solo pueden escribirse de una forma y las expresiones regulares que describen su lexema son muy
simples. No obstante, algunos lenguajes como SQL son insensibles a mayúsculas y minúsculas, por
lo que una palabra clave puede escribirse en minúsculas o en mayúsculas, o en cualquier mescla
de ambas. Por lo que una palabra clave puede escribirse en minúsculas o en mayúsculas, o en
cualquier mescla de ambas. Por ende, la palabra clave SELECT de SQL también puede escribirse
como select, Select, o sELEct o sELEcT. Muestre como escribir una expresión regular para una
palabra Clave en un lenguaje insensible a mayúsculas y minúsculas. Ilustre la idea escribiendo la
expresión “select”

((S)(s)(E)(e)(L)(l)(E)(e)(C)(c)(T)(t))

S[eleCt]* = SeleCt

s[ElecT]* = sElecT
EJERCICIO 3.3.5

Escriba definiciones regulares para los siguientes lenguajes:

a) Todas las cadenas de letras en minúsculas que contengan las cinco vocales en orden.
(a,e,i,o,u)* = {aeiou, aeeiou, aeiiiou ,aeiooou, aeiouuu}

b) Todas las cadenas de letras en minúsculas, en las que las letras se encuentren en orden
lexicográfico ascendente.
(a*b*)* = {aa,aaa,ab,abb,bb}

c) Comentarios, que consistan de una cadena rodeada por /* y */, sin un */ entre ellos, a
menos que se encierre entre dobles comillas (“).

L*=(anita,lava,la,tina) ={anita,anita,anitalava,anitala,anitatina…}

d) Todas las cadenas de dígitos sin dígitos repetidos. Sugerencia: Pruebe este problema
primero con unos cuantos dígitos, como {0,1,2}.
[0|1,5] [6|7,9]

e) Todas las cadenas de dígitos que tengan por lo menos un digito repetido
2(3|4*) (5|6*)7

f) Todas las cadenas de as y bs con un número par de as y un número impar de bs.


(2|3)*={2,3,23,223,2223,…}

g) El conjunto de movimientos de Ajedrez, en la notación informal, como p-ka o kbp x qn.

Inciso G

a,h = Torre

b,g = caballo

c,f = arfil

d = rey

e = Dama
Posición 7= piones

a b c d e f g h
8 8
7 7
6 6
5 5
4 4
3 3
2 2
1 1
a b c d e f g h

1.e4 e5 2.f4 exf4 3.Bc4 Qh4+ 4.Kf1 b5 5.Bxb5 Nf6 6.Nf3 Qh6 7.d3 Nh5 8.Nh4
Qg5
9.Nf5 c6 10.g4 Nf6 11.Rg1 cxb5 12.h4 Qg6 13.h5 Qg5 14.Qf3 Ng8 15.Bxf4 Qf6
16.Nc3 Bc5 17.Nd5 Qxb2 18.Bd6 Bxg1 19.e5 Qxa1+ 20.Ke2 Na6 21.Nxg7+ Kd8
22.Qf6+ Nxf6 23.Be7# 1-0

h) Todas las cadenas de as y bs que no contengan la subcadena abb.


(a*b) (b|a*)

i) Todas las cadenas de as y bs que no contengan las subsecuencia abb.


a|a*b
EJERCICIO: 3.3.6

a) Las primeras diez letras (hasta “j”), ya sea en mayúsculas o en minúsculas

|(a..A), (a..b),(a..C),(A..D),(a..e),(A..f),(a..G),(A..H),(a..i),(A..j)|

b) Las consonantes en minúsculas

(b|c|d|f|g|h|j|k|l|m|n|ñ|p|q|r|s|t|v|w|x|y|z)

c) Los dígitos en un numero hexadecimal ( elija mayúsculas o minúsculas para los


dígitos mayor a 9.

(1|2|3|4|5|6|7|8|9|A|B|C|D|E|F)

d) Los caracteres que pueden aparecer al final de una oración legitima en inglés (por
ejemplo, el signo de admiración)

(…|.|?|!|$|*)