33m2

29
MANUAL DE INGENIERÍA EN SISTEMAS COMPUTACIONALES PLAN ISIC-2010 LENGUAJES Y AUTOMATAS II SCD-1016

Transcript of 33m2

Page 1: 33m2

MANUAL DE PRÁCTICAS

INGENIERÍA EN SISTEMAS COMPUTACIONALES

PLAN ISIC-2010

LENGUAJES Y AUTOMATAS II

SCD-1016

Page 2: 33m2

ÍndiceINTRODUCCIÓN----------------------------------------------------------------------------------------------------------------1

PRÁCTICA 1Arboles de Expresiones----------------------------------------------------------------------------------------------------4

PRÁCTICA 2Convertir expresiones mediante el uso de notaciones prefijas--------------------------------------------5

PRÁCTICA 3Convertir expresiones mediante el uso de notaciones infijas----------------------------------------------7

PRÁCTICA 4Convertir expresiones mediante el uso de notaciones postfijas.------------------------------------------11

PRÁCTICA 5 Saber cuántos recursos y cuánto tiempo consume cada instrucción de código intermedio----14

LISTA DE MATERIAL, EQUIPO O REACTIVO A UTILIZAR-------------------------------------------------------17

LISTA DE BIBLIOGRAFÍA REQUERIDA--------------------------------------------------------------------------------17

CONTROL DE CAMBIOS DEL MANUAL DE PRÁCTICAS--------------------------------------------------------18

Page 3: 33m2

Lenguajes y Autómatas II [SCD-1016]

INTRODUCCIÓN

Desde su nacimiento, la teoría de autómatas ha encontrado aplicación en muy diversos campos.

Esto se debe a que resulta muy natural considerar, tanto los autómatas como las máquinas secuenciales, sistemas capaces de transmitir (procesar) Información.

En definitiva, esto es equiparable a cualquier sistema existente en la naturaleza, que recibe señales de su entorno, reacciona ante ellas y emite así nuevas señales al ambiente que le rodea.

Algunos De los campos donde ha encontrado aplicación la teoría de autómatas son:

– Teoría de la Comunicación– Teoría de Control– Lógica de los circuitos secuenciales– Ordenadores

Teoría lógica de los sistemas evolutivos y auto- Reproductivos– Reconocimiento de patrones– Fisiología del sistema nervioso– Traducción automática de lenguajes

Lenguajes y autómatas:

Un autómata resuelve un problema mediante el cálculo de una función de una forma autónoma: Recibe unos datos y, cuando termina su trabajo, da un resultado. El mismo problema puede recibir otra colección de datos distinta (‘instance’-ejemplar) yda un resultado correcto en cada caso mediante el cálculo de la misma función.

Un ejemplar se puede ver como una palabra de un lenguaje. El conjunto de ejemplares de entrada para los que el problema tiene solución es un lenguaje. El problema tiene solución cuando existe un autómata que calcula el resultado correctamente. Hay lenguajes que no requieren autómatas tan complejos como las las máquinas de Turing para resolver los problemas que se plantean sobre ellos. Más simples son los autómatas finitos y los autómatas con pila. Cada tipo de autómatas reconoce una clase de lenguajes.

Datos Autómata Resultado

Los algoritmos de generación de lenguajes se llaman gramáticas. Estos mecanismos fueron propuestos por Chomsky para definir estructuras sintácticas en el estudio del lenguaje natural (1950). Las partes del lenguaje natural libres de contexto tienen una estructura definida por gramáticas incontextuales y los lenguajes incontextuales son reconocidos por autómatas con pila. La Informática aprovechó rápidamente estos estudios sobre el lenguaje natural aplicándolos a la construcción de analizadores sintácticos, imprescindibles en compilación.

Hay una jerarquía de lenguajes formales, a la que corresponde una jerarquía de autómatas:

Lenguajes regulares Lenguajes incontextuales Lenguajes contextuales

Autómatas finitos Autómatas con pila Máquinas de Turing.

Todo ello se corresponde con el nivel de abstracción requerido para resolver los tipos de problemas asociados a un determinado lenguaje con las herramientas más sencillas posible, en aras de la eficiencia.

Fecha de Actualización 07/04/2014 Página 1

Page 4: 33m2

Lenguajes y Autómatas II [SCD-1016]

Práctica 1

ARBOLES DE EXPRESIÓNObservaciones: Esta práctica cubre la Práctica # 2 del temario que dice “Realizar arboles de expresiones en casos de estudio”.

1.- OBJETIVOImplementación del árbol binario y su uso para almacenar expresiones matemáticas en

memoria

2.- MARCO TEÓRICO

ÁRBOLES DE EXPRESIÓN

Los árboles de expresiones representan el código de nivel del lenguaje en forma de datos. Los datos se almacenan en una estructura con forma de árbol. Cada nodo del árbol de expresión representa una expresión, por ejemplo, una llamada al método o una operación binaria, como x < y.

REGLAS PARA LA CONSTRUCCIÓN DE ÁRBOLES DE EXPRESIÓN

Para construir el árbol de expresiones que represente nuestra expresión matemática es necesario construir primero la misma expresión pero en la notación polaca correspondiente y a partir de esta es que se construye el árbol. El algoritmo usado para transformar una expresión infija a prefija es explicado a continuación.

Sea A una expresión infija cualquiera, formada por operadores, paréntesis (izquierdos y derechos) y operados, también se usará una pila para los operadores. El procedimiento seguido es el siguiente:

Se lee un elemento de A, si este es un operador o un paréntesis izquierdo, entonces se actúa según la regla I y si es un operando entonces se envía directamente a la expresión de notación polaca.

Si el elemento leído de A es un paréntesis derecho, entonces se desopilarán elementos de la pila de operadores hasta encontrar el correspondiente paréntesis izquierdo.

Cada elemento desopilado pasa a formar parte de la notación polaca, excepto los paréntesis.

Fecha de Actualización 07/04/2014 Página 2

Page 5: 33m2

Lenguajes y Autómatas II [SCD-1016]

Cuando no queden elementos en A, entonces se desopilan operadores de la pila, hasta que esta quede vacía.

REGLA I:

Existe un orden de prioridad para los operadores, que de menor a mayor es el siguiente: suma (+) y resta (-), multiplicación (*) y división (/), exponenciación (^), operadores unarios.

El paréntesis izquierdo lo trataremos como un operador (aunque no lo es) cuyo orden de prioridad es el mayor de todos cuando se quiera apilar y el menor de todos cuando esté en la cima de la pila.

Cuando se intente apilar algún operador se hará lo siguiente:

Si es un operador unario entonces se apila, si es un operador binario, se comparará su prioridad con el último insertado en la pila (el de la cima), si su prioridad es mayor, entonces se apilará. Si ocurre lo contrario (su prioridad es menor o igual) entonces el operador de la cima de la pila se desopilará y pasará a formar parte de la notación polaca. Se volverá a intentar apilar el operador

Siguiendo la misma regla, hasta que se pueda apilar, si la pila queda vacía también se apila. El paréntesis izquierdo siempre se apilará y no podrá ser desopilado por ningún operador y por tanto no formará parte de la notación polaca inversa.

CONSTRUCCIÓN DEL ÁRBOL BINARIO DE EXPRESIONES

El algoritmo usado para construir el árbol no usa como tal la expresión postfija ya conformada, sino que el árbol se va construyendo usando las mismas reglas con las que se construye la notación postfija, una pila para los operadores y otra para los nodos del árbol, ambas no son necesitadas al terminar el árbol. El algoritmo es el siguiente:

Se siguen las mismas reglas expuestas anteriormente usando la pila de operadores, pero cuando se encuentra un operando o un operador es desopilado, entonces se crea el nodo correspondiente y se actúa según la regla II. Al finalizar el algoritmo solo debe quedar un nodo apilado en la pila de nodos, el que constituye el nodo raíz de nuestro árbol de expresiones.

Regla II.

Si el nodo corresponde a un operando, entonces se apila. Si el nodo corresponde a una operador unario entonces se desapila un nodo de la pila de nodos y es enlazado a la rama izquierda del nodo correspondiente al operador unario y este último es apilado. Si el nodo corresponde a un operador binario entonces dos nodos son desapilados de la pila de nodos, el primero es enlazado a la rama derecha del nodo binario y el segundo a la rama izquierda, nuevamente este nodo es apilado.

Fecha de Actualización 07/04/2014 Página 3

Page 6: 33m2

Lenguajes y Autómatas II [SCD-1016]

3.- MATERIAL, EQUIPO O REACTIVO

I. Sistema OperativoII. Microsoft Office WordIII. Computadora

4.- COMPETENCIAS ESPECÍFICAS

Realizar una investigación sobre a los arboles de expresión y colocar algunos ejemplos.

Convertir un árbol general a binario. Colocar un árbol binario en una lista. Hacer los 3 recorridos a un árbol binario Hacer la construcción de un árbol binario de búsqueda a partir del recorrido

preorden, inorden y posorden.

5.- RESULTADOS

El alumno entregara un documento contendiendo lo siguiente:1.- Cuales son los tipos de árboles.2.- Como se realiza una Conversión de un árbol general3.- Cuales son y como se realizan los recorridos de un árbol.

6.- CONCLUSIONES

El alumno conocerá y entenderá todo lo relacionado a los arboles generales y binarios.

7.- BIBLIOGRAFÍA

http://msdn.microsoft.com/es-es/library/bb397951(v=vs.90).aspx http://www.utm.mx/~jahdezp/archivos%20estructuras/arboles%20con

%20expresiones.pdf https://sites.google.com/site/iscmendezportafolio/arboles-de-expresion http://www.esdebian.org/wiki/interpretprete-funciones-mediante-arbol-binario-

expresiones

Práctica 2CONVERTIR EXPRESIONES MEDIANTE EL USO DE

Fecha de Actualización 07/04/2014 Página 4

Page 7: 33m2

Lenguajes y Autómatas II [SCD-1016]

NOTACIONES PREFIJASObservaciones: Esta práctica cubre la Práctica # 3 del temario que dice “Realizar conversiones de tipos en expresiones”, la Práctica # 7 del temario que dice “Convertir expresiones mediante el uso de notaciones prefijas, infijas y postfijas”, la Práctica # 7 del temario que dice “Definir e implementar la notación que más se ajuste a las estructuras de evaluación de expresiones de lenguaje”.

1.- OBJETIVO

Implementación de notación prefija, en función de la situación concreta en la que se pongan los operadores respecto de los operandos.

2.- MARCO TEÓRICO

La notación de prefijo o notación prefija, también conocida como polaca, es una forma de notación para:

La lógica La aritmética El álgebra.

Su característica distintiva es:

- Los operandos conservan el mismo orden que la notación infija equivalente.- No requiere de paréntesis para indicar el orden de precedencia de operadores ya

que el es una operación.- Se evalúa de izquierda a derecha hasta que encontrémosle primer operador seguido

inmediatamente de un par de operandos.- Se evalúa la expresión binaria y el resultado se cambia como un nuevo operando.

Se repite este hasta que nos quede un solo resultado.

+A B C (A+B)*C

El resultado es una sintaxis que carece de paréntesis u otros signos de agrupación. Puede ser analizada sin ambigüedad.

3.- MATERIAL, EQUIPO O REACTIVO

I. Sistema Operativo WindowsII. Microsoft Office WordIII. Computadora

4.- COMPETENCIAS ESPECÍFICAS

• Aplicar los tipos de notación para la conversión de expresiones: Infija, prefija y posfija.• Representar expresiones mediante el código intermedio.• Reconocer el manejo de tipos en las expresiones y el uso de operadores.

Fecha de Actualización 07/04/2014 Página 5

Page 8: 33m2

Lenguajes y Autómatas II [SCD-1016]

• Desarrollar las acciones que representen la estructura de un lenguaje de programación de alto nivel en un código intermedio.• Aplicar las acciones construidas a la gramática del lenguaje prototipo.• Evaluar el prototipo completo construyendo algunos programas tipo usando la gramática definida.

5.- RESULTADOS

o Aplicar los tipos de notación para la conversión de expresiones: Infija, prefija y posfija.

o Investigar los pasos para realizar la trasformación de la expresión infija a posfijao 2.-Realizar el siguiente ejercicio de la expresión aritmética y Realizar su

trasformación a posfija. Utilizando una pila A+(B*C-(D/E^F)*9)*Ho Evaluación de expresiones posfijao Desarrollar las acciones que representen la estructura de un lenguaje de

programación de alto nivel en un código intermedio.

6.- Conclusiones

La notación de prefijo o notación prefija, también conocida como polaca.El resultado es una sintaxis que carece de paréntesis u otros signos de agrupación. Puede ser analizada sin ambigüedad.

Fecha de Actualización 07/04/2014 Página 6

Page 9: 33m2

Lenguajes y Autómatas II [SCD-1016]

7.- Bibliografía

o wikipedia.org/wiki/Notaci%C3%B3n_polaca que es notación polacao http://mathworld.wolfram.com/ReversePolishNotation.html

Fecha de Actualización 07/04/2014 Página 7

Page 10: 33m2

Lenguajes y Autómatas II [SCD-1016]

Práctica 3

CONVERTIR EXPRESIONES MEDIANTE EL USO DE NOTACIONES INFIJAS

Observaciones: Esta práctica cubre la Práctica # 3 del temario que dice “Realizar conversiones de tipos en expresiones”, la Práctica # 7 del temario que dice “Convertir expresiones mediante el uso de notaciones prefijas, infijas y postfijas”, la Práctica # 7 del temario que dice “Definir e implementar la notación que más se ajuste a las estructuras de evaluación de expresiones de lenguaje”.

1.- OBJETIVO

Lograr conocer y aplicar las conversiones de expresiones a través del uso de notaciones infijas

2.- MARCO TEÓRICO

Infija:La Expresión o Notación Infija es la forma más común que utilizamos para escribir expresiones matemáticas, estas notaciones se refiere a que el operador esta entre los operados. La notación infija puede estar completamente parentizada o puede basarse en un esquema de precedencia de operadores así como el uso de paréntesis para invalidar los arreglos al expresar el orden de evaluación de una expresión:3*4=123*4+2=143*(4+2)=18Notación infija: La notación habitual. El orden es primer operando, operador, segundo operando

CONVERSIÓN EXPRESIÓN INFIJA A POSFIJA

El siguiente algoritmo traduce una expresión en notación infija a notación postfija:

Entrada: Una lista que contiene los términos de la ecuación en notación infija (la notación habitual).

Salida: Una lista que contiene los términos de la ecuación en notación postfija.

Datos locales: Una pila, que va a contener operadores y paréntesis izquierdos.

Las pilas son estructuras de datos muy usadas para la solución de diversos tipos de problemas. Pero tal vez el principal uso de estas estructuras es el tratamiento de expresiones matemáticas.

Fecha de Actualización 07/04/2014 Página 8

Page 11: 33m2

Lenguajes y Autómatas II [SCD-1016]

3.- MATERIAL, EQUIPO, REACTIVO o SOTFWARE A UTILIZAR

I. Sistema Operativo WindowsII. Microsoft Office WordIII. ComputadoraIV. Lenguajes de Programación de alto Nivel

4.- COMPETENCIAS ESPECÍFICAS

I. Organizar por equipos a los alumnos (3 integrantes máximo).II. Elaborar los siguientes ejemplos 5 * (6+2) – 12 / 4III. Identificar:

a. Objetivob. Detallar el procedimiento de conversiones infijas a postfijasc. Elaborar el ejercicio mediante el procedimiento adecuado

5. RESULTADOSPara la conversión de notaciones infijas atreves de pilas se requiere realizar el siguiente procedimiento.

ALGORITMO PARA CONVERTIR EXPRESIONES INFIJAS EN POSTFIJAS (RPN)

1. Incrementar la pila 2. Inicializar el conjunto de operaciones 3. Mientras no ocurra error y no sea fin de la expresión infija haz

o Si el carácter es: 1. PARENTESIS IZQUIERDO. Colocarlo en la pila 2. PARENTESIS DERECHO. Extraer y desplegar los valores hasta encontrar paréntesis

izquierdo. Pero NO desplegarlo. 3. UN OPERADOR.

Si la pila esta vacía o el carácter tiene más alta prioridad que el elemento del tope de la pila insertar el carácter en la pila.

En caso contrario extraer y desplegar el elemento del tope de la pila y repetir la comparación con el nuevo tope.

4. OPERANDO. Desplegarlo. 4. Al final de la expresión extraer y desplegar los elementos de la pila hasta que se vacíe.

Fecha de Actualización 07/04/2014 Página 9

Page 12: 33m2

Lenguajes y Autómatas II [SCD-1016]

Ejemplo: 5 * (6+2) – 12 / 4

Fecha de Actualización 07/04/2014 Página 10

Símbolo Pila Expresión P

5 ( 5

* ( * 5

( ( * ( 5

6 ( * ( 5, 6

+ ( * ( + 5, 6

2 ( * ( + 5, 6, 2

) ( * 5,6,2,+

- ( - 5,6,2,+,*

12 ( - 5,6,2,+,*,12

/ ( -, / 5,6,2,+,*,12

4 ( -, / 5,6,2,+,*,12,4

) 5,6,2,+,*,12,4,/,-

Page 13: 33m2

Lenguajes y Autómatas II [SCD-1016]

6.- CONCLUSIONES

Las pilas las listas enlazadas, todos sus métodos y las diferentes expresiones son una

de las herramientas utilizadas para programar y procesar de una manera

automatizada todos los sistemas que usamos DIA tras DIA en relación a técnicas o

métodos para agilizar operaciones se refiere, es su principio fundamental dar

soluciones a procesos que ameritan de largos pasos que dan como resultado el

control de un asusto. Estas herramientas son uno de los instrumentos más usados en

la programación para estructurar y organizar información.

7.- BIBLIOGRAFÍA

Metodología de la Programación, PROGRAMACION ESTRUCTURADA,

Luis Joyanes Aguilar, Editorial McGraw-Hill.

Práctica 4

Fecha de Actualización 07/04/2014 Página 11

Page 14: 33m2

Lenguajes y Autómatas II [SCD-1016]

CONVERTIR EXPRESIONES MEDIANTE EL USO DE NOTACIONES POSTFIJAS.

Observaciones: Esta práctica cubre la Práctica # 3 del temario que dice “Realizar conversiones de tipos en expresiones”, la Práctica # 7 del temario que dice “Convertir expresiones mediante el uso de notaciones prefijas, infijas y postfijas”, la Práctica # 7 del temario que dice “Definir e implementar la notación que más se ajuste a las estructuras de evaluación de expresiones de lenguaje”.

1.- OBJETIVO

Conocer la conversión entre la expresión en notación infija y postfija mediante

la utilización de una pila. Considerando las prioridades entre los operadores

que aparecen en la expresión.

Conocer y aplicar las notaciones comunes de las fórmulas aritméticas y lógicas.

Poder identificar que operador va antes que los operando.

Conocer los métodos para dar valor a una variable.

2.- MARCO TEÓRICO

Notación Postfija

Notación postfija: El orden es primer operando, segundo operando, operador.

Para evaluar una expresión en notación infija en un valor específico para se deben seguir las reglas matemáticas para la prioridad de las operaciones:

Las potencias tienen prioridad sobre cualquier operación La multiplicación y la división tienen prioridad sobre la suma y la resta. Si se presenta un paréntesis, se deben realizar primero las operaciones dentro de éste. Si

hay un paréntesis dentro de otro tiene prioridad el paréntesis interno.

Por el contrario, en la notación postfija siempre se trabaja de izquierda a derecha; note además que la notación postfija no tiene paréntesis por la forma lineal en que se lee. Comparemos un ejemplo en donde se evalúa un valor en una expresión utilizando estas dos notaciones.

Las operaciones se indican mediante operadores, que en nuestro caso representan las operaciones suma, resta, producto, división e igualdad, todas ellas operaciones binarias (necesitan exactamente dos argumentos para poderse evaluar).

Fecha de Actualización 07/04/2014 Página 12

Page 15: 33m2

Lenguajes y Autómatas II [SCD-1016]

3.- MATERIAL, EQUIPO, REACTIVO o SOTFWARE A UTILIZAR

Sistema Operativo Microsoft Lenguajes de Programación de alto Nivel Computadora Internet

4.- COMPETENCIAS ESPECÍFICAS

I. Organizar por equipos a los alumnos (4 integrantes máximo).II. Capacidad crítica y autocríticaIII. Investigar la jerarquía de los operadoresIV. Investigar los pasos para la conversión Infijo a Postfijo usando pilasV. Investigar la evaluación de expresiones aritméticas mediante pilasVI. Elaborar ejercicios

5. RESULTADOS

Evaluación de Expresiones Entrada: 3 + 4 * 2 / ( 1 - 5 ) ^ 2 ^ 3

(2+(3*4)) = x ((2+3)*4) = x

Notación prefija

Notación infija

Notación postfija

Entrada: 3 + 4 * 2 / ( 1 - 5 ) ^ 2 ^ 3

Token Acción Salida (en RPN) Stack de operadores

Notas

3 agrega token a la salida 3

+ Pushtoken al stack 3 +

4 agrega token a la salida 3 4 +

Fecha de Actualización 07/04/2014 Página 13

Page 16: 33m2

Lenguajes y Autómatas II [SCD-1016]

* Pushtoken al stack 3 4 * + * tiene mayor precedencia que +

2 agrega token a la salida 3 4 2 * +

/ Pop stack a la salida 3 4 2 * + / y * tienen la misma precedencia

Pushtoken al stack 3 4 2 * / + / tiene mayor precedencia que +

( Pushtoken al stack 3 4 2 * ( / +

1 agrega token a la salida 3 4 2 * 1 ( / +

- Pushtoken al stack 3 4 2 * 1 - ( / +

5 agrega token a la salida 3 4 2 * 1 5 - ( / +

) Pop stack a la salida 3 4 2 * 1 5 - ( / + Repite hasta que sea encontrado "("

Pop stack 3 4 2 * 1 5 - / + Descarta paréntesis emparejados

^ Pushtoken al stack 3 4 2 * 1 5 - ^ / + ^ tiene mayor precedencia que /

2 agrega token a la salida 3 4 2 * 1 5 - 2 ^ / +

^ Pushtoken al stack 3 4 2 * 1 5 - 2 ^ ^ / + ^ es evaluado de derecha a izquierda

3 agrega token a la salida 3 4 2 * 1 5 - 2 3 ^ ^ / +

end Pop todo el stack a la salida 3 4 2 * 1 5 - 2 3 ^ ^ / +

7.- BIBLIOGRAFÍA http://www.neptalium.com/blog/tag/notacion-postfija/ http://www.tec-digital.itcr.ac.cr/revistamatematica/ContribucionesV7_n2_2006/Parseador/node2.html http://casicodigo.blogspot.mx/2012/11/conversion-de-expresiones-matematicas.html

Fecha de Actualización 07/04/2014 Página 14

Page 17: 33m2

Lenguajes y Autómatas II [SCD-1016]

Fecha de Actualización 07/04/2014 Página 15

Page 18: 33m2

Lenguajes y Autómatas II [SCD-1016]

Práctica 5

SABER CUÁNTOS RECURSOS Y CUÁNTO TIEMPO CONSUME CADA INSTRUCCIÓN DE CÓDIGO INTERMEDIO

Observaciones: Esta práctica cubre la Práctica # 13 Saber cuántos recursos y cuánto tiempo consume cada instrucción de código intermedio, la Práctica # 14 Evaluar el código intermedio generado para los programas escritos en el lenguaje de su caso de estudio y si aplica realizar la optimización correspondiente, la Práctica # 15 Poder establecer una equivalencia entre las instrucciones del lenguaje intermedio y las instrucciones en ensamblador.

1.- OBJETIVO

Saber cuántos recursos y cuánto tiempo consume cada instrucción de código intermedio

2.- MARCO TEÓRICO

Generación de código y representaciones intermedias

Generalmente se genera una representación intermedia del programa fuente, lo cualpermite abstraerse de la máquina destino sobre el cual se genera el código final, permitiendouna mayor portabilidad del compilador a otros sistemas. Una de las representacionesintermedias más utilizadas consiste en una estructura de árbol, esta es particularmente adecuadapara el uso de técnicas de generación de código optimizante. Esta forma fue la elegida para eldesarrollo del compilador.

Cada subárbol de la representación intermedia está asociado a una operación instrucción de máquina (la cual puede ser virtual). Ciertos subárboles o patrones representan operaciones.

La generación de código se realiza recorriendo el árbol y generado código a medida que se van reconociendo los patrones correspondientes a cada operación, la forma de recorrido es elegida con criterios optimizadores del código generado.

Cada operación o patrón tiene un costo asociado, generalmente con respecto al uso de recursos (registros o ciclos de reloj) requeridos. El problema principal radica en encontrar una cobertura del árbol por un conjunto de patrones (operaciones) cuyo costo sea mínimo. Esto soluciona en forma directa el problema de selección de instrucciones (óptimas) para un árbol dado.

Fecha de Actualización 07/04/2014 Página 16

Page 19: 33m2

Lenguajes y Autómatas II [SCD-1016]

3.- MATERIAL, EQUIPO, REACTIVO o SOTFWARE A UTILIZAR

a. Ordenadorb. Programa procesador de texto

4.- COMPETENCIAS ESPECÍFICAS

c. Organizar por equipos a los alumnos (3 integrantes máximo).d. Investigar las diferentes forma de medir el tiempo de ejecución de código

intermedioe. Conocer que recursos se consumen en invocación a funciones y expresiones

simples.f. Colocar un ejemplo de las técnicas que se utilizan para analizar el tiempo de

ejecución del código intermedio

5.- RESULTADOS

Múltiples lenguajes y compiladoresFormulan+m módulos -> n*m compiladoresLa optimización es la fácil Representación y modificación de Modelos de generación de código o Máquinas abstractas Ejemplos :FAM, G-machine, máquina de Warren Compiladores transportables – PASCAL /P-Code, JAVAInterpretación rápida – OAKLisp, CLISP Depuración – Intérpretes de C u otros lenguajesLa mejor manera de optimizar el código es hacer ver a los programadores que optimicen su código desde el inicio, el problema radica en que el costo podría ser muy grande ya que tendría que codificar más y/o hacer su código mas legible.Los criterios de optimización siempre están definidos por el compiladormuchos de estos criterios pueden modificarse con directivas del compilador desde el código o de manera externa.

Fecha de Actualización 07/04/2014 Página 17

Page 20: 33m2

Lenguajes y Autómatas II [SCD-1016]

6.- CONCLUSIONES

La conclusión a la que llego nuestro equipo es que el tiempo de ejecución es en factor importante para los programadores y compiladores ya que al tener un buen control de tiempo en la ejecución de las tareas dentro del programa la aplicación es eficiente, se puede saber cuántos recursos se necesitan para la correcta funcionalidad del programa.Los recursos también son importantes ya que dependen mucho de estos la funcionalidad ya que si el programa no cuenta con los recursos adecuados no se ejecutara la aplicación o de otra forma funcionara ineficientemente.

7.- BIBLIOGRAFÍA

http://cic.puj.edu.co/wiki/lib/exe/fetch.php?media=materias:compi:comp_sesion21_2008-1.pdfhttp://www.cvc.uab.es/shared/teach/a25002/Codigo%20intermedio.pdfhttp://www.lcc.uma.es/~galvez/ftp/tci/tictema7.pdfhttp://www.giaa.inf.uc3m.es/docencia/II/PL1/ci05-06.pdf

LISTA DE MATERIAL, EQUIPO O REACTIVO A UTILIZAR (16)

FOLIO NOMBRE DEL MATERIAL, EQUIPO O REACTIVO CANT. UNIDAD

1 Sistema Operativo 1

2 Lenguajes de Programación de alto Nivel 1

3 Microsoft Office 1

LISTA DE BIBLIOGRAFÍA REQUERIDA (17)

FOLIO BIBLIOGRAFIA CANT

Fecha de Actualización 07/04/2014 Página 18

Page 21: 33m2

Lenguajes y Autómatas II [SCD-1016]

1 Estructura de datos y algoritmos Alfred V. Aho John e. hopcroft Jeffrey D. UllmanISC-K0005.1Autómatas Programables Josep Balcells, José Luis RomeralISC-U0002 Alfaomegamaracombo

1

2 Estructura de datos y algoritmos Alberto Jaime Sisa.ISC-K0006.1

13 Teoría de Autómatas Lenguajes y Formales DeanKelley

ISC-U00031

4 Teoría de Autómatas Lenguajes y Computación John E. Hopcroft.ISC-U0007 PEARSON ADDISON WESLEY.

15 Kelley, Dean, Teoría de Automatas y Lenguajes Formales, Prentice Hall.

Brookshear. Teoría de la Computación, Lenguajes Formales,Autómatas yComplejidad. Addison Wesley

1

6 Lenguajes Formales y Teoría de la Computación John MartinISC-U0004 MC GRAW HILL 3ª edición.

1

Fecha de Actualización 07/04/2014 Página 19

Page 22: 33m2

Lenguajes y Autómatas [SCD-1016]

CONTROL DE CAMBIOS DEL MANUAL DE PRÁCTICAS

DATOS GENERALESFECHA DE

ACTUALIZACION ELABORÓ Y/O ACTUALIZÓ DESCRIPCIÓN DE LA ACTUALIZACIÓN

20/08/2013 LIC. AGEO GUZMÁN GARDUÑO SE ACTUALIZÓ LA BIBLIOGRAFÍA Y SE ANOTARON LAS OBSERVACIONES PERTINENTES, PARA TENER CONSISTENCIA DE LAS

PRÁCTICAS QUE MARCA EL TEMARIO Y LAS DEL MANUAL DE PRÁCTICAS. SE ACTUALIZÓ EL MANUAL DE PRACTICAS.

07/04/2014 LIC. AGEO GUZMÁN GARDUÑO SE ACTUALIZÓ EL MANUAL DE PRACTICAS CON EL FORMATO VIGENTE. EL PUNTO DE COMPETENCIAS ESPECÍFICAS SE RETROALIMENTO. SE CORRIGIO EL INDICE POR NO COINCIDIR EL NUMERO DE HOJA QUE INDICABA CON LA CORRECTA.

Fecha de Actualización 07/04/2014 Página 20