Sei sulla pagina 1di 35

Programacin de sistemas

Por: Ing. Rocio M. Rangel Garca Haga clic para modificar el estilo de

subttulo del patrn

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.

El estudio de la programacin de sistemas


Estudia

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 desarrolladas con teora de la programacin de sistemas


Las

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

Herramientas desarrolladas con teora de la programacin de sistemas 1. Editores de estructuras


No slo realiza las funciones de creacin y

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

Herramientas desarrolladas con teora de la programacin de sistemas 2. Impresoras estticas


Analiza un programa y lo imprime de forma

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

Herramientas desarrolladas con teora de la programacinestticos de sistemas 3. Verificadores


Lee

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,

Herramientas desarrolladas con teora de la programacin de sistemas


4. Intrpretes
En lugar de producir un programa

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

Herramientas desarrolladas con teora de la programacin de sistemas 5. Compiladores


Tradicionalmente, se concibe un compilador

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

un ejemplo de cada herramientas vistas en clase

una

de

las

Realice

un cuadro comparativo lenguaje natural y lenguaje artificial.

entre

Disee un lenguaje (palabras distintas a las

instrucciones comunes) que le permita recorrer y resolver un laberinto.


5/28/12

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

Independencia del lenguaje: No depende

Compilador ??

5/28/12

Intrprete ??

5/28/12

Compiladores y generadores de cdigo


Por: Ing. Rocio Rangel Garca Haga clic para modificar el estilo de

subttulo del patrn

5/28/12

La generacin de cdigo data desde la

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

caractersticas especficas del lenguaje programacin para el cual se har el generador.

de

El

lenguaje con el que se desarrollar el propio generador.

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.

El desarrollo de los metacompiladores se

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

subttulo del patrn

5/28/12

Definicin
La

expresiones regulares (ER) son una forma de describir cadenas de caracteres. Se usan en operaciones de apareamiento o comparacin.

Las expresiones regulares permiten realizar

bsquedas o complejidad.

sustituciones

de

gran

Una expresin regular es un patrn que

describe un conjunto de 5/28/12 cadenas de caracteres. Por ejemplo, el patrn aba*.txt.

Ejemplo:
Dentro

de un texto encontrar cosas como...

dado,

queremos

- ... todas las referencias a la palabra

"programacin. 'Val.

- ... todas las palabras que empiecen por - ... todas las palabras que acaben por 'ar',

'er' o 'ir' para identificar los verbos regulares.

- ... las palabras que contengan 5/28/12 la letra 'q' y

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

Estos caracteres, en una expresin regular,

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

Expresiones Regulares Bsicas


componen de expresiones regulares elementales que aparean con un nico caracter: Exp.Reg. Aparea con
c ER que aparea con el caracter ordinario c (punto) ER que aparea con un caracter cualquiera . excepto nueva lnea [abc] ER de un caracter que aparea con a, b o c [^abc] ER de un caracter que no sea a, b o c ERs de un caracter que aparean con cualquier [0-9][a-z] caracter en el intervalo indicado. El signo - indica un [A-Z] intervalo de caracteres consecutivos. ER que aparea con alguno de estos caracteres (en lugar de la e): . * [ \ cuando no estn dentro de [ ] 5/28/12 \e ^ al principio de la ER, o al principio dentro de [ ]

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

Construccin de Expresiones Regulares


Una Expresin Regular se construye con uno o

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)

Expresiones regulares en Java


Tener en cuenta que una expresin regular

slo puede contener (aparte de letras y nmeros) los siguientes caracteres: < \$, ^, ., *, +, ?, [, ], \. >

Lgicos:

x|y: x o y. xy: x seguido de y


Intervalos de caracteres:
5/28/12

Expresiones regulares en Java


Intervalos de caracteres predefinidos:

. 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

Expresiones regulares en Java


Caracteres:

\f Salto de pgina. \n Salto de lnea. \r Retorno de carro. \t Tabulacin.


Limites:

^ 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)

Expresiones regulares en Java


Cuantificadores:

{n} Exactamente carcter anterior.

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

su lenguaje de programacin. resuelva lo siguiente:

Realice el diagrama de flujo y el cdigo que

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

(enmedio puede haber cualquier cosa) importa)


5/28/12

Potrebbero piacerti anche