Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Por: Ing. Rocio M. Rangel Garca Haga clic para modificar el estilo de
5/28/12
Antecedentes
Un
sistema es un conjunto de componentes que interaccionan entre si para lograr un objetivo comn. Las personas se comunican con el lenguaje, que es un sistema muy desarrollado formado por palabras y smbolos que tienen significado para el que habla y para quienes lo escuchan, lo mismo es para las computadoras las cuales tienen sistemas y se comunican por medio de computadoras. programacin es el 5/28/12 proceso convertir las especificaciones de de los
La
Definicin
Es el conjunto de programas necesario para que una computadora d una imagen coherente y monoltica ante sus usuarios. Es un rea especializada dentro de las ciencias de la computacin. As, mediante la programacin de sistemas, no slo se manejan las computadoras por medio del lenguaje mquina (0 y 1) sino por otros sistemas operativos, sin lo cual sera muy difcil la interaccin 5/28/12 con la mquina.
la teora de mquinas y su aplicacin en el diseo de sistemas digitales y de arquitectura de computadoras (Sistemas digitales para arquitecturas paralelas y control de procesos y sistemas reconfigurables). artificial aplicada a trabajo cooperativo en las aplicaciones cooperativas realizadas en el entorno Web, 5/28/12 es viable hacer uso de las herramientas de
Inteligencia
herramientas de programacin, son aquellas que permiten realizar aplicaciones, programas, rutinas, utileras y sistemas para que la parte fsica de la computadora funcione y pueda producir resultados
5/28/12
modificacin de textos de un editor de textos ordinario, sino que tambin analiza el texto del programa, imponiendo al programa fuente una estructura jerrquica apropiada.
Por
ejemplo, cuando el usuario escribe while, el editor proporciona el 5/28/12 correspondiente do y le recuerda al usuario
que la estructura del programa resulte claramente visible. Por ejemplo, los comentarios pueden aparecer con un tipo de letra especial, y las proposiciones pueden aparecer con una presentacin proporcional a la profundidad de su anidamiento en la organizacin jerrquica de las proposiciones.
5/28/12
un programa, lo analiza e intenta descubrir errores potenciales sin ejecutar el programa. La parte de anlisis a menudo es similar a la que se encuentra en los compiladores de optimizacin. As, un verificador esttico puede detectar si hay partes de un programa que nunca se podrn ejecutar o si cierta variable se usa antes de ser definida. Adems, puede detectar errores de lgica, como intentar 5/28/12 utilizar una variable real como apuntador,
objeto como resultado de una traduccin, un intrprete realiza las operaciones que implica el programa fuente. Para una proposicin de asignacin, por ejemplo, un intrprete podra construir un rbol y 5/28/12 despus efectuar las operaciones de
como un programa que traduce un programa fuente, como FORTRAN, al lenguaje ensamblador o de mquina de alguna computadora. Sin embargo, hay lugares, al parecer, no relacionados donde la tecnologa de los compiladores se usa con regularidad.
5/28/12
Actividades
D
una
de
las
Realice
entre
Ensamblador
Motivos para utilizarlo. Rapidez:
Como el programador directamente selecciona las instrucciones que se ejecutan en el programa, el programa final queda mas optimizado que un programa generado por un compilador. control de la computadora: Un programa puede acceder directamente cualquier componente y perifrico de la computadora. de libreras o del lenguaje 5/28/12 mismo para
Mayor
Compilador ??
5/28/12
Intrprete ??
5/28/12
5/28/12
existencia de los primeros compiladores. Hasta la aparicin de los primeros generadores de cdigo comerciales u orientados a "usuarios finales"; la generacin de cdigo era exclusividad de programas compiladores especializados.
En tiempos ms recientes la generacin
de cdigo, gracias al avance de la ingeniera del software, se ha llevado a un nivel diferente; donde se 5/28/12 encuentran
Arquitectura de un compilador
5/28/12
5/28/12
Aspectos a considerar para la creacin de la generacin de cdigo La arquitectura de software para la cual se va ha
desarrollar el generador.
Las
de
El
Las
reglas de utilizacin del generador, en otras palabras, la forma adecuada para que los usuarios del generador obtengan el mayor provecho.
5/28/12
Compilador de compiladores
METACOMPILADOR
se refiere a un programa que recibe como entrada las especificaciones del lenguaje para el que se desea obtener un compilador y genera como salida el compilador para ese lenguaje.
encuentra con la dificultad de unir la generacin de cdigo con la parte de anlisis. Lo que s se han desarrollado son generadores de analizadores lxicos y 5/28/12 sintcticos. Por ejemplo, los conocidos:
Herramie Lenguaje nta Bison COCO/R Flex Lex SDGLL1 TS 2006 TS TS-OO YACC C C/C++ C C exe C/C++ C C++ C
Descripcin Generador de Analizadores Sintcticos Ascendentes tipo YACC Generador de Analizadores Lxicos y Sintcticos Descendentes Recursivos Generador de Analizadores Lxicos tipo Lex Generador de Analizadores Lxicos Sistema Detector de Gramticas LL(1) Tipo abstracto de datos Tabla de Smbolos de uso sencillo (beta 0.4) Tipo abstracto de datos Tabla de Smbolos Tipo abstracto de datos Tabla de Smbolos Generador de Analizadores Sintcticos Ascendentes LR(1)
5/28/12
Expresiones regulares
Por: Ing. Rocio M. Rangel Garca Haga clic para modificar el estilo de
5/28/12
Definicin
La
expresiones regulares (ER) son una forma de describir cadenas de caracteres. Se usan en operaciones de apareamiento o comparacin.
bsquedas o complejidad.
sustituciones
de
gran
Ejemplo:
Dentro
dado,
queremos
"programacin. 'Val.
- ... todas las palabras que empiecen por - ... todas las palabras que acaben por 'ar',
Metacaracteres
La construccin de expresiones regulares
depende de la asignacin de significado especial a algunos caracteres. Estos caracteres a los que se asigna significado especial se denominan "metacaracteres". En UNIX por ejemplo, el conjunto de metacaracteres para expresiones regulares es el siguiente: \^$.[]{}|()*+?
5/28/12
son interpretados en su significado especial y no como los caracteres que normalmente representan. Una bsqueda que implique alguno de estos caracteres obligar a "escaparlo" de la interpretacin mediante \, como se hace para evitar la interpretacin por el shell de los metacaracteres del shell. En una expresin regular, el caracter ? representa "un caracter cualquiera"; si escribimos \?, estamos representando el caracter ? tal cual, sin significado adicional.
5/28/12
Se
Categoras de caracteres:
Los
corchetes [] delimitan listas de caracteres individuales. Muchos metacaracteres pierden su significado si estn dentro de listas: los caracteres especiales . Dentro de los conjuntos de caracteres individuales, se reconocen las siguientes categoras:
[:alnum:] alfanumricos [:alpha:] alfabticos [:cntrl:] de control [:digit:] dgitos [:graph:] grficos [:lower:] minsculas
5/28/12
ms operadores que indican, cada uno, el caracter a buscar. Los operadores ms comunes y aceptados son los siguientes: Operado Significado
r c \c ^ $ . [...] [^...] r* r1r2
un caracter no especial concuerda consigo mismo elimina significado especial de un caracter c; el \ escapa el significado especial indica ubicado al comienzo de la lnea (cadena nula al principio de lnea) indica ubicado al final de la lnea (cadena nula al final de lnea) (punto) un caracter individual cualquiera uno cualquiera de los caracteres ...; acepta intervalos del tipo az, 0-9, A-Z (lista) un caracter distinto de ... ; acepta intervalos del tipo a-z, 0-9, AZ 0, 1 o ms ocurrencias de la ER r (repeticin) 5/28/12 la ER r1 seguida de la ER r2 (concatenacin)
slo puede contener (aparte de letras y nmeros) los siguientes caracteres: < \$, ^, ., *, +, ?, [, ], \. >
Lgicos:
. Cualquier carcter individual, salvo el de salto de lnea. \d Cualquier carcter de dgito, equivalente a [0-9]. \D Cualquier carcter que no sea de dgito, equivale a [^0-9]. \s Cualquier carcter individual de espacio en blanco (espacios, tabulaciones, saltos de pgina o saltos de lnea).
5/28/12 \S Cualquier carcter individual que no
^ Principio de entrada o lnea. $ Fin de entrada o lnea. \b Lmite de palabra (como un espacio o 5/28/12 un retorno de carro)
apariciones
del
{n,m} Como mnimo n y como mximo m apariciones del carcter anterior. * El carcter anterior 0 o ms veces. + El carcter anterior 1 o ms veces. ? El carcter anterior una vez como mximo (es decir, indica que el carcter anterior es opcional).
5/28/12
Prctica 2
Determine las expresiones regulares para
a) Crear un archivo de texto (expr_reg_1.txt) que contenga las siguientes palabras (una en cada lnea): aabb a aba aabbb aaabbb aa baa abab ababa bababa ab bbb baaa abbba bbaabb ba aaaa baba bbaab bbabaa aaa aaba bbbb bbbaa bbbabb
5/28/12
b) Cuando se ejecute solicite el nmero de opcin que desea realizar, y dependiendo del nmero, debe extraer las palabras que:
1. contengan la cadena "aba" 2. contengan tres "b" seguidas 3. empiecen por dos "a" 4. terminen por "ba" 5. empiecen por "a" y terminen por "b" 6. contengan slo "a" (la cantidad no