GUÍA BÁSICA DE FLEX Y BISON
|
|
|
- Adolfo Benítez Roldán
- hace 10 años
- Vistas:
Transcripción
1 GUÍA BÁSICA DE FLEX Y BISON PRÁCTICAS COMPILADORES 4º INGENIERÍA INFORMÁTICA / 1º MÁSTER EN INFORMÁTICA Curso 2011/2012
2 LEX/FLEX: GENERADOR DE ANALIZADORES LÉXICOS 1. Introducción Lex es una de las herramientas que permiten generar analizadores léxicos (scanners o lexers) a partir de una especificación basada en expresiones regulares. Un escáner o analizador léxico es la primera fase de un compilador, cuya principal tarea es leer los caracteres de la entrada del programa fuente, agruparlos y producir como salida una secuencia de tokens (carácter o secuencia de caracteres del archivo fuente que se han reconocido y etiquetado: operadores, identificadores, números, palabras reservadas, etc.) Lex es el analizar léxico estándar en los sistemas UNIX/Linux (se incluye en el estándar POSIX a partir de la 7ª edición) y fue desarrollado originalmente en los años 70 por Eric Schmidt y Mike Lesk en los laboratorios Bell de AT&T. Aunque tradicionalmente se trata de software propietario, existen versiones libres basadas en el código original, de las cuáles tal vez la más conocida sea Flex que es un desarrollo realizado por GNU bajo licencia GPL y cuenta con algunas características extra como un mejor soporte para reducciones o expresiones muy largas o complejas. La principal característica de Lex/Flex es que es una herramienta que se basa en la búsqueda de concordancias en un fichero de entrada con un conjunto de expresiones regulares definidas, y en la ejecución de acciones descritas en código C asociadas a dichas expresiones. Internamente actúa como un autómata que localiza las expresiones regulares descritas y una vez reconocida la cadena representada por dicha expresión regular, ejecuta el código asociado a la regla correspondiente. Externamente puede ser considerado como una caja negra con la siguiente estructura: plantilla.l Lex/Flex lex.yy.c Compilador + Enlazador (cc/gcc) a.out (fichero ejecutable) Otros módulos de nuestro programa 2
3 Por ejemplo, para un bucle escrito en código C: Código Fuente Octal (Entrada scanner) for (int i = 0; i < 10; i++) sum = sum + 1; Caracteres (Entrada scanner) f o r ( i n t i = 0 ; i < 1 0 ; i + + ) \n \t s u m = s u m + 1 ; \n \n \n Tokens (Salida del scanner) FOR, PARIZQ, TIPO, ID, IGUAL, NUMERO, PTOCOMA, ID, MENOR, NUMERO, ID, MAS, MAS, PARDER, En caso de ser útil tendremos información adicional asociada a los tokens, como pueden ser los valores concretos de los números o el nombre del identificador En las siguientes secciones se recoge el proceso de diseño de la plantilla de expresiones regulares y la compilación de los programas generados mediante estas herramientas. 3
4 2. Expresiones regulares Una expresión regular, a menudo denominada también patrón, es una expresión que permite describir un conjunto de cadenas de símbolos del alfabeto sin que sea necesario enumerar sus elementos por separado. Se construye utilizando caracteres del alfabeto sobre el que se define el lenguaje y los siguientes operadores: Unión: se representa por una barra vertical que separa las alternativas. a b, indica que en la expresión regular puede ir el símbolo del alfabeto a o el símbolo b. Concatenación: es la operación por la cual dos símbolos del alfabeto se unen para formar una cadena. a concatenado con b nos daría la cadena ab. Operador * (Cerradura de Kleene): indica que una determinada cadena puede aparecer cero o más veces. a* = ε, a, aa, aaa, aaaa, aaaaa, aaaaaa,... Operador +: sirve para indicar que una determinada cadena puede aparecer una o más veces. A diferencia del operador cerradura (*), la cadena ha de aparecer al menos una vez. a+ = a, aa, aaa, aaaa, aaaaa, aaaaaa,... Símbolo de interrogación (?): indica que la cadena puede aparecer o no, pero si aparece sólo puede hacerlo una vez. ab? = a, ab Corchetes ([]): su función es agrupar rangos de caracteres. Son útiles cuando se desea representar un conjunto de caracteres. [a-z] representa el conjunto de todas las letras minúsculas [A-Z] el conjunto de todas las mayúsculas [a-za-z] todas las letras del alfabeto [0-9] los números del cero al nueve. Punto (.): representa cualquier símbolo del alfabeto, pero uno sólo. Símbolo dólar ($): representa el final de la línea. a$ representa el símbolo a cuando éste se encuentra al final de la línea. Acento circunflejo (^): este carácter tiene una doble funcionalidad, según aparezca dentro o fuera de los corchetes: ^ como carácter individual, representa el principio de una línea. ^[a-z] encontrará párrafos que empiecen por minúscula. ^ si aparece dentro de unos corchetes representa la negación. [^a-z] representa cualquier carácter que no sea una letra minúscula. 4
5 Llaves (): sirven para indicar multiplicidades. Existen varios formatos: - Rn indica que la expresión regular R aparece exactamente n veces. - Rn,m indica que R puede aparecer un mínimo de n y un máximo de m veces. - Rn, indica que R puede aparecer n o más veces. Cualquier símbolo excepto el espacio en blanco, tabulador (\t), cambio de línea (\n) y los caracteres especiales se escriben tal cual en las expresiones regulares (patrones) de Lex. Los caracteres especiales son: \ [ ^ -?. * + ( ) $ / % < > Ejemplos de expresiones regulares Expr. Regular Significado x El carácter x. Cualquier carácter excepto \n [xyz] O bien x, o bien y, o bien z [^bz] Cualquier carácter EXCEPTO b y z [a-z] Cualquier carácter entre a y z [^a-z] Cualquier carácter EXCEPTO los comprendidos entre a y z R* Ninguna R o más; R puede ser cualquier expresión regular R+ Una R o más R? Una o cero R (es decir, R opcional) R2,5 De 2 a 5 R R2, Dos R o más R2 Exactamente dos R "[xyz\"clue" La secuencia [xyz"clue ALIAS Expansión de ALIAS, tal y como se ha definido anteriormente \0 Carácter ASCII 0 \123 Carácter ASCII con código 123 en octal \x2a Carácter ASCII con código 2A en hexadecimal RS R seguido de S R S R o S R/S R, solamente si va seguido de S ^R R, solamente al principio de una línea R$ R, solamente al final de una línea <S>R$ R, solamente en la condición de arranque S <S1,S2>R$ R, solamente en cualquiera de las condiciones S1 o S2 <<EOF>> Fin de fichero 5
6 3. Estructura de un programa Lex/Flex Como ya se ha comentado Lex/Flex genera un analizador léxico a partir de una descripción basada en expresiones regulares. Un programa para esta herramienta se divide en tres secciones, separadas por líneas que contienen solamente dos símbolos %, tal y como sigue: Sección de declaraciones Sección de reglas Sección de código La sección de declaraciones o definiciones contiene declaraciones para simplificar la especificación del escáner y hacerla más comprensible; también puede incluir condiciones de arranque que permiten el cambio de contexto y que se explicarán posteriormente. Estas declaraciones son del tipo nombre definición, donde nombre es un identificador que el usuario le da a la declaración y definición es una expresión regular. Se considera que una definición comienza en el primer carácter que no sea un espacio en blanco siguiendo al nombre y continuando hasta el final de la línea. El objetivo de la sección de definiciones es simplificar expresiones regulares más complejas y hacer más comprensible el programa. nombre 1 definición 1 nombre 2 definición 2 Sección de reglas Sección de código Un ejemplo concreto de una declaración de este tipo podría ser DIGITO [0-9], donde [0-9] es una expresión regular que define un rango de caracteres que van del carácter cero al carácter nueve. A esa expresión regular se la ha denominado DIGITO, posteriormente en la sección de reglas cuando se haga referencia a DIGITO (nombre de la definición entre llaves), se estará refiriendo a la expresión regular [0-9]. 6
7 En esta sección también se pueden definir macros (#define ), importar archivos de cabecera (#include ) y especificar código C auxiliar (procedimientos, declaración de tipos, etc.); este código C debe ir entre los símbolos % y %, como se ve en el ejemplo: % #include <stdio.h> #define HOLA hola int foo() printf( Hola mundo\n ); //typedefs, declaración de variables, etc. % nombre 1 definición 1 nombre 2 definición 2 Sección de reglas Sección de código Además de todo lo anterior, pueden definirse también dentro de esta sección condiciones de arranque (start conditions), que definen entornos dentro de los cuáles se podrán reconocer sub-expresiones dependiendo del contexto determinado, de forma que se permite generar una especie de mini-analizadores dentro del analizador global. % #include <stdio.h> %start V1C... cant BEGIN V1C; /* Comienza el entorno V1C */... <V1C>o printf("1ra. Persona presente indicativo"); <V1C>as printf("2da. Persona presente indicativo"); <V1C>a printf("3ra. Persona presente indicativo"); Sección de código 7
8 Sección de reglas (reglas de traducción): es la sección más importante del fichero fuente, pues asocia patrones a sentencias de código C. Contiene una serie de reglas de la forma patrón acción, donde el patrón debe especificarse sin sangría y la acción debe comenzar en la misma línea e ir normalmente encerrada entre llaves. Los patrones se especifican utilizando un conjunto extendido de expresiones regulares, como las que se han descrito; y la acción será, habitualmente, un conjunto de instrucciones en C. La presencia de la sección de reglas es opcional, es más, si se omite, se podría omitir también el segundo en el fichero de entrada. Si la entrada concuerda con más de una expresión regular, se elegirá aquella en la que coincida un mayor número de caracteres; cuando el número de caracteres concordantes sea el mismo, se seleccionará la expresión regular que aparezca en primer lugar en el fichero de Lex/Flex, por lo que las expresiones regulares más específicas se deberían situar antes que las más generales. Por ejemplo, la expresión. (equivalente a cualquier carácter excepto \n) deberá especificarse al final de la sección de reglas, ya que de otro modo siempre se ejecutaría la acción asociada a dicha expresión, sin llegar nunca a llevarse acabo ninguna otra acción. % int suma = 0; % DIGITO [0-9] DIGITO+ suma += atoi(yytext); int main() yylex(); printf( La suma es %d\n, suma); salida: La siguiente entrada en el programa anterior, 1 2adfaf1 2 s 2-2, produciría como adfaf s - La suma es 10 Si no se especifica ninguna acción, se aplica la acción por defecto, es decir, se copia la secuencia leída en la salida. Por ejemplo, lo siguiente es la especificación de un analizador 8
9 que comprime varios espacios en blanco y tabuladores a un solo espacio en blanco, y desecha los espacios que se encuentren al final de una línea: [ \t]+ putchar( ); [ \t]+$ /* ignora este token */ Si la acción contiene una llave, entonces abarcará hasta que se encuentre el correspondiente, y pudiendo entonces especificarse en varias líneas. Lex/Flex es capaz de reconocer las cadenas y comentarios de C, ya que no se confundirá con las llaves que encuentre dentro de éstos. Por último, una acción que consista solamente en una barra vertical ( ) significaría que se debería ejecutar la misma acción que se especifique para la siguiente regla. Las acciones también pueden incluir código C arbitrario, incluyendo sentencias return para devolver un valor desde cualquier función llamada yylex(). Cada vez que se llama a la función yylex(), ésta continúa procesando tokens desde donde terminó la última vez, hasta que o bien llegue al final del fichero o bien se ejecute un return. También se pueden llamar a funciones definidas por el usuario en la parte de código de usuario del archivo fuente de Lex/Flex. Además, existen algunas directivas especiales que pueden incluirse dentro de una acción: ECHO que copia la entrada reconocida a la salida del escáner, BEGIN seguido del nombre de la condición de arranque que pone al escáner en el contexto correspondiente, etc. En resumen, el comportamiento de un programa en Lex/Flex es el siguiente: para todo aquello que reconoce, ejecuta las reglas asociadas a los patrones, y lo que no conoce se limita a volcarlo por la salida carácter a carácter, de ahí la salida mostrada en el ejemplo anterior de suma de dígitos, ya que el programa sólo reconoce números enteros positivos. Sección de código: contiene sentencias en código C y funciones que serán directamente trasladadas al archivo fuente generado. Entre estas sentencias se puede especificar código que podrá ser invocado por las reglas en las acciones (también podrían ir en la sección de declaraciones como ya se ha visto). En esta sección se suele declarar el método main que invoca al analizador léxico yylex. 9
10 No se debe olvidar, como concepto de C, que si la implementación de los procedimientos se realiza después de su invocación (en el caso de Lex/Flex, lo más probable es que se hayan invocado en la sección de reglas), deben haber sido declarados previamente (en la sección de definiciones). Sección de declaraciones Sección de reglas int main() yylex(); Como se ha ido reflejando en algunos ejemplos, Lex/Flex incorpora algunas variables, funciones, procedimientos y macros que permiten realizar de una forma más sencilla todo el procesamiento de la entrada. Como variables, las más utilizadas son: yytext apunta al texto del token actual o última palabra reconocida en algún patrón (por ejemplo printf( %s, yytext) lo escribiría por pantalla), yyleng que contiene la longitud del token actual, yyin que referencia al fichero de entrada o yyval que contiene la estructura de datos de la pila con la que trabaja el analizador sintáctico YACC/Bison y que, por tanto, sirve para el intercambio de información entre ambas herramientas. Como métodos (funciones y procedimientos) destacarían: yylex() que invoca al analizador léxico dando lugar al comienzo del procesamiento, yymore() que añade el yytext actual al siguiente reconocido, yyless(n) que devuelve los n últimos caracteres de la cadena yytext a la entrada, yyerror() que se invoca automáticamente cuando no se puede aplicar ninguna regla o yywrap() que e invoca automáticamente al encontrar el final del fichero de entrada. 10
11 4. Funcionamiento del analizador Cuando el escáner generado está funcionando, analizará su entrada buscando cadenas que concuerden con cualquiera de sus patrones. Como ya se ha comentado, si encuentra más de un emparejamiento, toma el que empareje más texto (para reglas de contexto posterior, se incluye la longitud de la parte posterior, incluso si se devuelve a la entrada). Si encuentra dos o más emparejamientos de la misma longitud, se escoge la regla listada en primer lugar en el fichero de entrada de Lex/Flex. Una vez que se determina el emparejamiento, el texto correspondiente al emparejamiento (denominado el token) está disponible en el puntero global de tipo char * yytext, y su longitud en la variable global de tipo entero yyleng. Entonces la acción correspondiente al patrón emparejado se ejecuta y la entrada restante se analiza para otro posible emparejamiento. Si no se encuentra una coincidencia con las expresiones regulares, entonces se ejecuta la regla por defecto: el siguiente carácter en la entrada se considera reconocido y se copia a la salida estándar. Así, la entrada válida más simple de Lex/Flex es que generará un escáner que simplemente copia su entrada (un carácter a la vez) a la salida. Por ejemplo, si tenemos el siguiente código formando parte de la sección de reglas en un archivo fuente de Lex: aa printf( 1 ); aab printf( 2 ); uv printf( 3 ); xu printf( 4 ); Con el texto de entrada Laabdgf xuv, se obtendría como salida L2dgf 4v. El ejecutable copiará L, reconocerá aab (porque es más largo que aa) y realizará el printf( 2 ), copiará dgf, reconocerá xu (porque aunque tiene la misma longitud que uv, y uv está antes en el fuente, en el momento de reconocer la x Lex/Flex no reconoce el posible conflicto, puesto que sólo xu puede emparejarse con algo que empieza por x), y ejecutará el printf( 4 ) para luego copiar la v que falta y que no es posible emparejar con ninguna de las expresiones regulares definidas. 11
12 5. Compilación y ejecución de un programa en Lex / Flex Si tenemos un programa Lex/Flex en un archivo fuente con nombre unejemplo.l, los pasos para convertirlo en un ejecutable serían los siguientes: flex unejemplo.l /* lex se ejecutaría como: lex unejemplo.l */ gcc o unejemplo lex.yy.c ll /* si se utilizan llamadas a funciones C de otras librerías es necesario enlazarlas, ejemplo: la librería matemática lm */ unejemplo < fichero_prueba.txt Lex lee los ficheros de entrada indicados, o bien la entrada estándar si no se le ha indicado ningún nombre de fichero, con la descripción de un escáner a generar. La descripción se encuentra en forma de parejas de expresiones regulares y código C. Lex genera como salida un fichero fuente en C, lex.yy.c, que define una función yylex(). lex.yy.c se compila (es un programa C) y se enlaza con la librería correspondiente generándose el ejecutable (la librería lex se indica con -ll, con flex se puede indicar -ll o -lfl). Este ejecutable analizará la entrada léxicamente. El fichero lex.yy.c contiene las tablas del autómata generado y la función yylex, la cuál simula el analizador especificado y sirve de interfaz con el código de usuario (yylex() deberá de ser llamada en algún punto del código del usuario). En cada llamada, yylex() irá tomando caracteres de la entrada hasta que empareje una de las expresiones regulares de la especificación; entonces se almacenará el texto que se ha emparejado con la expresión regular en la variable yytext y se ejecutarán las acciones asociadas al patrón. La función continúa hasta que se alcance el final del fichero (punto en el que devuelve el valor 0) o una de sus acciones ejecute una sentencia return. Lex/Flex requiere un formato bastante estricto de su fichero de entrada. En particular los caracteres no visibles (espacios en blanco, tabuladores, saltos de línea) fuera de sitio causan errores difíciles de encontrar. Sobre todo es muy importante no dejar líneas en blanco de más ni empezar reglas con espacios en blanco o tabuladores. 12
13 6. Ejemplos Ejemplo 1. Reemplazo de cadena username por el login del usuario username printf( %s, getlogin() ); Ejemplo2. Identificador de números y palabras digit [0-9] letter [A-Za-z] delim [ \t\n] ws delim+ ws /* ignore white space */ digit+ printf("%s", yytext); printf(" = number\n"); letter+ printf("%s", yytext); printf(" = word\n"); main() yylex(); Ejemplo 3. Un contador de palabras similar al wc de UNIX % unsigned charcount = 0, wordcount = 0, linecount = 0; % word [^ \t\n]+ eol \n word wordcount++; charcount += yyleng; eol charcount++; linecount++;. charcount++; main() yylex(); printf("%d %d %d\n", linecount, wordcount, charcount); Ejemplo 4. Reconocedor de comentarios en lenguaje C. (. \n)? printf(""); "/*""/"*([^*/] [^*]"/" "*"[^/])*"*"*"*/" printf("[comment]%s", yytext); NOTA: Probar con el siguiente ejemplo: /* comentarios en una linea */ /* comentarios sobre multiples lineas */ comentarios /*incluidos dentro de una */linea comentarios /**/ raros /*/Acepta comentarios que no lo son? /**_/*/ Es correcto, lo acepta? 13
14 Ejemplo 5. Calculadora % /* ** lex program for simple dc ** input of the form: opd opr opd ** output of the form: opd opr opd = ans */ #define NUM 1 #define PLUS 2 #define MINUS 3 #define MUL 4 #define DIV 5 #define MOD 6 #define DELIM 7 % ws [ \t]+ ws ; -?[0-9]+ printf("%s",yytext); return (NUM); "+" ECHO; return (PLUS); "-" ECHO; return (MINUS); "*" ECHO; return (MUL); "/" ECHO; return (DIV); "%" ECHO; return (MOD);. "\ n" ECHO; return (DELIM); /* main.c */ # include <stdio.h> main() int opd1, opd2, opr; /* Look for first operand. */ if (yylex()!= NUM) printf("missing operand\n"); exit(1); opd1 = atoi(yytext); 14
15 /* Check for operator. */ opr = yylex(); if (opr == DELIM) printf("missing operator\n"); exit(1); else if (opr == NUM) if ((opd2=atoi(yytext)) >= 0) printf("missing operator\n"); exit(1); else opr = MINUS; opd2 = -opd2; else if (yylex()!= NUM) printf("missing operand\n"); exit(1); else /* Must have found operand 2 */ opd2 = atoi(yytext); switch (opr) case PLUS: printf(" = %d\n",opd1 + opd2); break; case MINUS: printf(" = %d\n",opd1 - opd2); break; case MUL: printf(" = %d\n",opd1 * opd2); break; case DIV: if (opd2 == 0) printf("\nerror: attempt to divide by zero!\n"); exit(1); else printf(" = %d\n",opd1 / opd2); break; case MOD: if (opd2 == 0) printf("\nerror: attempt to divide by zero!\n"); exit(1); else printf(" = %d\n",opd1 % opd2); break; 15
16 7. Bibliografía Introduction to compiling techniques a first course using ANSI C, LEX and YACC. Bennet, Jeremy Peter. McGraw-Hill, [1996]. Lex and Yacc / John R. Levine, Tony Mason, Doug Brown Levine, John R. Sebastopol. O'Reilly, [1992] XXII, 364 p. Flex and Bison. Text Processing Tools / John R. Levine. O'Reilly, [2009], 304 p. Tutoriales y manuales de Lex/Flex en la web. - Web oficial flex: Otros recursos:
Apuntes de ACCESS. Apuntes de Access. Campos de Búsqueda:
Apuntes de ACCESS Campos de Búsqueda: Los campos de búsqueda permiten seleccionar el valor de un campo de una lista desplegable en lugar de tener que escribirlos. El usuario sólo tiene que elegir un valor
Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.
Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero. Uso de Ficheros Todas las estructuras de datos vistas hasta ahora utilizan la
Generador de analizadores sintácticos BISON
Generador de analizadores sintácticos BISON PROCESADORES DE LENGUAJES 4 o Informática http://ccia.ei.uvigo.es/docencia/pl noviembre-2008 2008 ccia PL 1. Introducción Traduce la especificación de una gramática
Lex. Lex. Ing. Adrian Ulises Mercado Martínez. Enero 30, Ing. Adrian Ulises Mercado Martínez Lex Enero 30, / 27
Lex Ing. Adrian Ulises Mercado Martínez Enero 30, 2015 Ing. Adrian Ulises Mercado Martínez Lex Enero 30, 2015 1 / 27 1 Lex 2 Compilar con lex 3 Estructura de un programa en lex 4 Expresiones Regulares
7. Manejo de Archivos en C.
7. Manejo de Archivos en C. Los datos que hemos tratado hasta el momento han residido en la memoria principal. Sin embargo, las grandes cantidades de datos se almacenan normalmente en un dispositivo de
INFORMÁTICA. Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial. Curso 2013-2014. v1.0 (05.03.
INFORMÁTICA Práctica 5. Programación en C. Grado en Ingeniería en Electrónica y Automática Industrial Curso 2013-2014 v1.0 (05.03.14) A continuación figuran una serie de ejercicios propuestos, agrupados
!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016!
INFORMÁTICA Práctica4. ProgramaciónbásicaenC. GradoenIngenieríaenElectrónicayAutomáticaIndustrial Curso2015H2016 v2.1(18.09.2015) A continuación figuran una serie de ejercicios propuestos, agrupados por
Examen escrito de Programación 1
Examen escrito de Programación 1 Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas 2 de septiembre de 2015 Se debe disponer sobre la mesa en lugar visible un documento
Preliminares. Tipos de variables y Expresiones
Preliminares. Tipos de variables y Expresiones Felipe Osorio Instituto de Estadística Pontificia Universidad Católica de Valparaíso Marzo 5, 2015 1 / 20 Preliminares Computadoras desarrollan tareas a un
A25. Informática aplicada a la gestión Curso 2005/2006 Word Tema 3. Formato de sección.
DEPARTAMENTO DE LENGUAJES Y SISTEMAS INFORMÁTICOS ESCUELA SUPERIOR DE TECNOLOGÍA Y CIENCIAS EXPERIMENTALES A.D.E.M. Segundo Curso A25. Informática aplicada a la gestión Curso 2005/2006 Word Tema 3. Formato
Flex a la rápida. José Ignacio Medina
Flex a la rápida José Ignacio Medina Octubre, 2008 Este documento se distribuye bajo una licencia Creative Commons bync-sa 2.0. Usted es libre de copiar, distribuir, comunicar y ejecutar públicamente este
En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.
Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa
GENERACIÓN DE CÓDIGO
GENERACIÓN DE CÓDIGO INTRODUCCION La generación de código es la fase más compleja de un compilador, puesto que no sólo depende de las características del lenguaje fuente sino también de contar con información
Entre los más conocidos editores con interfaz de desarrollo tenemos:
Herramientas de programación Para poder programar en ensamblador se precisa de algunas herramientas básicas, como un editor para introducir el código, un ensamblador para traducir el código a lenguaje
TRADUCTORES, COMPILADORES E INTÉRPRETES. EJERCICIOS TEMA 5, 6, 7 y 8.
TRADUCTORES, COMPILADORES E INTÉRPRETES. EJERCICIOS TEMA 5, 6, 7 y 8. 1.) (HOLUB). Escribir un traductor que reconozca definiciones de C siguiendo el estilo antiguo, tal como: prueba(uno, dos, tres, cuatro,
Generador de analizadores léxicos FLEX
Generador de analizadores léxicos FLEX Procesadores de Lenguajes 4 o Informática PL curso 2008-2009 (CCIA) CCIA Octubre 2008 PL 0809 (CCIA) Introducción a FLEX Octubre-2008 1 / 12 Uso de FLEX FLEX: traduce
Sintaxis y Convenciones de Java. M. en C. Erika Vilches
Sintaxis y Convenciones de Java M. en C. Erika Vilches Estructura del Código en Java Hay una clase en un archivo fuente Hay métodos en una clase Hay enunciados en un método Anatomía de una Clase Cuando
Materia: Informática. Nota de Clases Sistemas de Numeración
Nota de Clases Sistemas de Numeración Conversión Entre Sistemas de Numeración 1. EL SISTEMA DE NUMERACIÓN 1.1. DEFINICIÓN DE UN SISTEMA DE NUMERACIÓN Un sistema de numeración es un conjunto finito de símbolos
Práctica 4 Manejo avanzado de Bison
Práctica 4 Manejo avanzado de Bison Tareas 1. Estudia la información sobre trazas en el Capítulo 8 - Depurando Su Analizador del manual de Bison (bison-es-1.27.pdf). 2. Realiza el ejercicio propuesto.
Tema 5 Sentencias de control de flujo. Fundamentos de Informática
Tema 5 Fundamentos de Informática Sentencias de Control Tipos de sentencias de control: Comprobación lógica para bifurcar el flujo de un programa. Sentencias de control condicional o alternativo Comprobación
El lenguaje C. #define MAX LINEA 1000 /* maximo tamanio de linea de entrada */
Principios de Programación El lenguaje C 1. Variables locales y globales 1.1. Variables locales Las funciones permiten al programador modularizar un programa. Todas las variables declaradas en las definiciones
Operación Microsoft Access 97
Trabajar con Controles Características de los controles Un control es un objeto gráfico, como por ejemplo un cuadro de texto, un botón de comando o un rectángulo que se coloca en un formulario o informe
TEMA 1: SISTEMAS INFORMÁTICOS. Parte 2: representación de la información
TEMA 1: SISTEMAS INFORMÁTICOS Parte 2: representación de la información Qué vamos a ver? Cómo se representa y almacena la información en un ordenador Cómo podemos relacionar la información que entendemos
ESTRUCTURAS CONDICIONALES EN PHP: SWITCH, CASE, BREAK. EJEMPLOS DE USO Y EJERCICIOS RESUELTOS. (CU00820B)
APRENDERAPROGRAMARCOM ESTRUCTURAS CONDICIONALES EN PHP: SWITCH, CASE, BREAK EJEMPLOS DE USO Y EJERCICIOS RESUELTOS (CU00820B) Sección: Cursos Categoría: Tutorial básico del programador web: PHP desde cero
Ejemplos de conversión de reales a enteros
Ejemplos de conversión de reales a enteros Con el siguiente programa se pueden apreciar las diferencias entre las cuatro funciones para convertir de reales a enteros: program convertir_real_a_entero print
5.4. Manual de usuario
5.4. Manual de usuario En esta sección se procederá a explicar cada una de las posibles acciones que puede realizar un usuario, de forma que pueda utilizar todas las funcionalidades del simulador, sin
La plantilla propone aprovechar esta estructura en común y sólo modificar el contenido del área del documento que sea diferente.
PLANTILLAS EN PHP El concepto de plantilla, es un criterio del desarrollo web que propone optimizar la cantidad de documentos HTML que se usan en el desarrollo de un sitio web. A lo largo de la navegación
TALLER #5 ACCESS CONSULTAS. objeto Consulta en la vista lateral izquierda de la ventana Base de datos. Aparece esta ventana.
TALLER #5 ACCESS CONSULTAS Las consultas son los objetos de una base de datos que permiten recuperar datos de una tabla, modificarlos e incluso almacenar el resultado en otra tabla. TIPOS DE CONSULTAS
SOLUCION EXAMEN junio 2006
SOLUCION EXAMEN junio 2006 1. Explique razonadamente si las siguientes afirmaciones son verdaderas o falsas: I) (1 p) En UNIX únicamente se distinguen dos tipos de procesos: los procesos de usuario y los
RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA
UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí
Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual
Introducción Algunas de las personas que trabajan con SGBD relacionales parecen preguntarse porqué deberían preocuparse del diseño de las bases de datos que utilizan. Después de todo, la mayoría de los
Aprendiendo a programar Microcontroladores PIC en Lenguaje C con CCS
Aprendiendo a programar Microcontroladores PIC en Lenguaje C con CCS Por Andrés Raúl Bruno Saravia Entrega Nº 5. Cómo declaramos una variable en Lenguaje C? En C siempre se deben declarar las variables.
LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL
OBJETIVO Mejorar el nivel de comprensión y el manejo de las destrezas del estudiante para utilizar formulas en Microsoft Excel 2010. 1) DEFINICIÓN Una fórmula de Excel es un código especial que introducimos
PROCESADORES DE LENGUAJES
PROCESADORES DE LENGUAJES Análisis léxico con Prof. Dr. Nicolás Luis Fernández García Departamento de Informática y Análisis Numérico Escuela Politécnica Superior Universidad de Córdoba Universidad de
Guía para la Automatización de Documentos en. Microsoft Word
UNIVERSIDAD SAN CARLOS DE GUATEMALA CENTRO UNIVERSITARIO DE SAN MARCOS USAC-CUSAM Guía para la Automatización de Documentos en Microsoft Word ID Y ENSEÑAD A TODOS 2015 PRESENTACIÓN El Instituto de Investigaciones
Arrays y Cadenas en C
Arrays y Cadenas en C Los arrays son variables estructuradas, donde cada elemento se almacena de forma consecutiva en memoria. Las cadenas de caracteres son declaradas en C como arrays de caracteres y
Capítulo 1 Lenguajes formales 6
Capítulo 1 Lenguajes formales 6 1.8. Operaciones entre lenguajes Puesto que los lenguajes sobre Σ son subconjuntos de Σ, las operaciones usuales entre conjuntos son también operaciones válidas entre lenguajes.
En la actualidad ASCII es un código de 8 bits, también conocido como ASCII extendido, que aumenta su capacidad con 128 caracteres adicionales
Definición(1) Sistemas numéricos MIA José Rafael Rojano Cáceres Arquitectura de Computadoras I Un sistema de representación numérica es un sistema de lenguaje que consiste en: un conjunto ordenado de símbolos
TEMA 3: EL LENGUAJE C: PRESENTACIÓN
TEMA 3: EL LENGUAJE C: PRESENTACIÓN Historia del lenguaje C Características del lenguaje C Estructura de un programa en C El editor de textos: elementos Funciones: de usuario y de librería Librerías de
Lenguaje C. Tipos de Datos Simples y Estructuras de Control
Lenguaje C Tipos de Datos Simples y Estructuras de Control Lenguaje C C es un lenguaje de programación creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell como evolución del anterior lenguaje
SISTEMAS NUMERICOS CAMILO ANDREY NEIRA IBAÑEZ UNINSANGIL INTRODUCTORIO A LA INGENIERIA LOGICA Y PROGRAMACION
SISTEMAS NUMERICOS CAMILO ANDREY NEIRA IBAÑEZ UNINSANGIL INTRODUCTORIO A LA INGENIERIA LOGICA Y PROGRAMACION CHIQUINQUIRA (BOYACA) 2015 1 CONTENIDO Pág. QUE ES UN SISTEMA BINARIO. 3 CORTA HISTORIA DE LOS
Bases de datos en Excel
Universidad Complutense de Madrid CURSOS DE FORMACIÓN EN INFORMÁTICA Bases de datos en Excel Hojas de cálculo Tema 5 Bases de datos en Excel Hasta ahora hemos usado Excel básicamente para realizar cálculos
Buses y Periféricos 2006/2007 Práctica 3. Ensamblador
Calculadora Descripción El objetivo de esta práctica es utilizar las interrupciones de BIOS y MSDOS para presentar una pequeña calculadora en pantalla. Se pretende programar una calculadora que opere en
Gesfincas. INSTALACIÓN DE LA APLICACIÓN (Monopuesto y Red Local)
Gesfincas INSTALACIÓN DE LA APLICACIÓN (Monopuesto y Red Local) GESFINCAS precisa ser instalado en el disco duro de su ordenador (en los supuestos de versiones para Red Local, en el Servidor del sistema
GENERACIÓN DE ANTICIPOS DE CRÉDITO
GENERACIÓN DE ANTICIPOS DE CRÉDITO 1 INFORMACIÓN BÁSICA La aplicación de generación de ficheros de anticipos de crédito permite generar fácilmente órdenes para que la Caja anticipe el cobro de créditos
Para crear una lista como la anterior, primero escribe la información, y después selecciona el texto y aplícale el formato de viñetas.
Módulo 3 Herramientas de Cómputo Listas, tabulaciones, columnas y cuadros de texto Listas En muchas ocasiones es necesario que enumeres diferentes elementos en tus documentos. Word no sólo reconoce números
Centro de Capacitación en Informática
Fórmulas y Funciones Las fórmulas constituyen el núcleo de cualquier hoja de cálculo, y por tanto de Excel. Mediante fórmulas, se llevan a cabo todos los cálculos que se necesitan en una hoja de cálculo.
Guía de instalación de la carpeta Datos de IslaWin
Guía de instalación de la carpeta Datos de IslaWin Para IslaWin Gestión CS, Classic o Pyme a partir de la revisión 7.00 (Revisión: 10/11/2011) Contenido Introducción... 3 Acerca de este documento... 3
Índice general de materias LECCIÓN 7 74
Índice general de materias LECCIÓN 7 74 BUSCAR 74 BUSCAR CON FORMATO 77 REEMPLAZAR 78 REEMPLAZAR CON FORMATO 79 NOTAS AL PIE DE PÁGINA 79 CONFIGURAR LAS NOTAS 81 INSERTAR NOTAS AL PIE 83 MODIFICAR NOTAS
Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia
Introduccion al Lenguaje C Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia Introducción C es un lenguaje de programación creado en 1972 por
Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto
INFORMÁTICA INFORMÁTICA 1 Sesión No. 4 Nombre: Procesador de Texto Contextualización La semana anterior revisamos los comandos que ofrece Word para el formato del texto, la configuración de la página,
Introducción al tipo de dato ARRAY
CONTENIDOS. Introducción al tipo de dato ARRAY. Definición, Características, Declaración, Acceso e Inicialización.. Arrays multidimensionales Definición, Declaración, Acceso e Inicialización. Introducción
La ventana de Microsoft Excel
Actividad N 1 Conceptos básicos de Planilla de Cálculo La ventana del Microsoft Excel y sus partes. Movimiento del cursor. Tipos de datos. Metodología de trabajo con planillas. La ventana de Microsoft
Anexo B. Comunicaciones entre mc y PC
Anexo B Comunicaciones entre mc y PC En este apartado se hará hincapié en los comandos para el manejo del módulo de comunicaciones desde el PC. Conociendo estos comando se podrá realizar una aplicación
Se guardan en archivos con extencion c y los cabezales con extension h
Se guardan en archivos con extencion c y los cabezales con extension h Tipos de Variables: Tipo Tamaño(bytes) Limite inferior Limite superior char 1 -- -- unsigned char 1 0 255 short int 2-32768 +32767
Unidad de trabajo 2: INFORMÁTICA BÁSICA (primera parte)
Unidad de trabajo 2: INFORMÁTICA BÁSICA (primera parte) Unidad de trabajo 2: INFORMÁTICA BÁSICA... 1 1. Representación interna de datos.... 1 1.2. Sistemas de numeración.... 2 1.3. Aritmética binaria...
Una variable de clase escalar tiene un nivel de indirección igual a 1. Por ejemplo, las variables i, b y x definidas como se muestra a continuación.
Descripción de la semántica de ALFA En esta descripción sólo se mencionarán los aspectos en los que el lenguaje de programación ALFA pueda diferir de otros lenguajes de programación de alto nivel. Se sobreentienden
1 Estructura básica de un programa C++
Elementos básicos de un lenguaje de alto nivel: C++ CONTENIDOS 1. Estructura básica de un programa C++. 2. Tipos de datos simples. 3. Constantes y variables en C++. Declaración. 4. Operadores y expresiones.
Introducción a PHP. * No es necesario declarar previamente las variables.
Introducción a PHP La programación de sitios web cada día está más orientada al desarrollo de páginas dinámicas y aplicaciones, o sea sitios donde el usuario pueda interactuar con la web. Dentro de los
TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.
TABLA DE DECISION La tabla de decisión es una herramienta que sintetiza procesos en los cuales se dan un conjunto de condiciones y un conjunto de acciones a tomar según el valor que toman las condiciones.
UNIVERSIDAD DE SEVILLA PRÁCTICAS DE LABORATORIO ANÁLISIS SINTÁCTICO (1) LENGUAJES FORMALES Y AUTÓMATAS CURSO 2006/2007
UNIVERSIDAD DE SEVILLA E. T. S. INGENIERÍA INFORMÁTICA LENGUAJES Y SISTEMAS INFORMÁTICOS PRÁCTICAS DE LABORATORIO ANÁLISIS SINTÁCTICO (1) LENGUAJES FORMALES Y AUTÓMATAS CURSO 2006/2007 Qué es el análisis
Uso de Visual C++ Pre-Practica No. 3
Pre-Practica No. 3 Uso de Visual C++ Microsoft Visual C++ 2010 es una versión de Visual Studio específica para el lenguaje de programación C++. Es un entorno de desarrollo muy completo y profesional. Por
Título: Manual Básico de Calc. Parte I: Introducción a Calc de OpenOffice.org
Título: Manual Básico de Calc. Parte I: Introducción a Calc de OpenOffice.org Autora: Mª del Pilar Pavón Rosano DNI: 52.923.715-W INTRODUCCIÓN Este manual está dirigido a los alumnos y alumnas del módulo
Curso PHP Módulo 1 R-Luis
Lenguaje PHP Introducción Archivos HTML y PHP: Crear un archivo php es tan sencillo como cambiarle la extensión a un archivo html, por ejemplo podemos pasar de index.html a index.php sin ningún inconveniente.
Elementos léxicos del lenguaje de programación Java
Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Palabras reservadas Identificadores Literales Operadores Delimitadores Comentarios Apéndices Operadores
GESTINLIB GESTIÓN PARA LIBRERÍAS, PAPELERÍAS Y KIOSCOS DESCRIPCIÓN DEL MÓDULO DE KIOSCOS
GESTINLIB GESTIÓN PARA LIBRERÍAS, PAPELERÍAS Y KIOSCOS DESCRIPCIÓN DEL MÓDULO DE KIOSCOS 1.- PLANTILLA DE PUBLICACIONES En este maestro crearemos la publicación base sobre la cual el programa generará
Definiciones. Tema 21_Módulos Menú 1
Definiciones Un menú es una lista de opciones o de órdenes que forman parte de un mismo título, mediante los cuales se podrán seleccionar determinadas operaciones de la aplicación. El conjunto de todos
MATERIAL 2 EXCEL 2007
INTRODUCCIÓN A EXCEL 2007 MATERIAL 2 EXCEL 2007 Excel 2007 es una planilla de cálculo, un programa que permite manejar datos de diferente tipo, realizar cálculos, hacer gráficos y tablas; una herramienta
REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS
REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS Servicio DNS - 1 - Servicio DNS...- 3 - Definición... - 3 - Instalación... - 5 - Configuración del Servidor DNS...- 10 - - 2 - Servicio DNS Definición
GENERACIÓN DE TRANSFERENCIAS
GENERACIÓN DE TRANSFERENCIAS 1 INFORMACIÓN BÁSICA La aplicación de generación de ficheros de transferencias permite generar fácilmente órdenes para que la Caja efectúe transferencias, creando una base
Conciliación bancaria en CheqPAQ Cargado de estado de cuenta
Conciliación bancaria en CheqPAQ Cargado de estado de cuenta Introducción Con la finalidad de mantenerte informado respecto a todos los cambios y mejoras de los productos de CONTPAQ i, ponemos a tu disposición
GUÍA PARA LA INSTALACIÓN DE MOODLE EN UN COMPUTADOR PERSONAL QUE USA EL SISTEMA OPERATIVO MS. WINDOWS
GUÍA PARA LA INSTALACIÓN DE MOODLE EN UN COMPUTADOR PERSONAL QUE USA EL SISTEMA OPERATIVO MS. WINDOWS Objetivo: El propósito de esta guía es indicarle como configurar un entorno moodle de prácticas en
MANUAL DE AYUDA MODULO TALLAS Y COLORES
MANUAL DE AYUDA MODULO TALLAS Y COLORES Fecha última revisión: Enero 2010 Índice TALLAS Y COLORES... 3 1. Introducción... 3 CONFIGURACIÓN PARÁMETROS TC (Tallas y Colores)... 3 2. Módulos Visibles... 3
8. Sentencia return y métodos
92 A. García-Beltrán y J.M. Arranz 8. Sentencia return y métodos Objetivos: a) Describir el funcionamiento de la sentencia return b) Interpretar el resultado de una sentencia return en el código fuente
Divisibilidad y números primos
Divisibilidad y números primos Divisibilidad En muchos problemas es necesario saber si el reparto de varios elementos en diferentes grupos se puede hacer equitativamente, es decir, si el número de elementos
Informática I. While & do While
Asignatura: Informática I Trabajo práctico Nº5 While & do While Estructura repetitiva MIENTRAS o while En C la sentencia while (condición o expresión) instrucciones; es seguramente la más utilizada. La
Creación de Funciones de Conducción
Creación de Funciones de Conducción Requerimientos Para el desarrollo de esta actividad se requiere que: Contemos con un robot BoeBot armado con placa Arduino. Repetición En estos momentos habremos notado
Prácticas de Lenguajes, Gramáticas y Autómatas
Prácticas de Lenguajes, Gramáticas y Autómatas Prácticas 3 y 4 Cuarto cuatrimestre (primavera) de Ingeniería en Informática Curso 2010-2011 http://webdiis.unizar.es/asignaturas/lga Profesor Responsable:
Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.
El primer paso en el diseño de una base de datos es la producción del esquema conceptual. Normalmente, se construyen varios esquemas conceptuales, cada uno para representar las distintas visiones que los
Tema 2 : Códigos Binarios
Tema 2 : Códigos Binarios Objetivo: Conocer diferentes códigos binarios Conocer algunos códigos de detección y corrección de errores. Códigos alfanuméricos 1 Códigos Binarios A la representación de cifras,
Trey-SAT Pag. 1. Manual de usuario
Trey-SAT Pag. 1 Manual de usuario Trey-SAT Pag. 2 Modulo SAT : Servicio de asistencia técnica TREY-SAT es un potente módulo para el servicio de asistencia técnica, completamente integrado a la Gestión
CONSULTAS DE RESUMEN SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE
CONSULTAS DE RESUMEN SQL SERVER 2005 Manual de Referencia para usuarios Salomón Ccance CCANCE WEBSITE CONSULTAS DE RESUMEN Una de las funcionalidades de la sentencia SELECT es el permitir obtener resúmenes
PS.Vending Almacén Pocket PC
Versión 1.0 Enero 2013 Autor: Pedro Naranjo Rodríguez www.psvending.es Contenido Qué es PS.Vending Almacén Pocket PC?... 3 Funciona PS.Vending Almacén Pocket PC independiente de PS.Vending?... 3 Requisitos...
Guía de instalación de la carpeta Datos de ContaWin
Guía de instalación de la carpeta Datos de ContaWin Para ContaWin CS, Classic o Pyme a partir de la revisión 12.10 (Revisión: 29/06/2011) Contenido Introducción... 3 Acerca de este documento... 3 Dónde
Introducción a la plataforma Moodle Aníbal de la Torre 2006. Plataforma Moodle. Accediendo a los contenidos
Plataforma Moodle Accediendo a los contenidos Formatos ----------------------------------------------------------------------- 2 Glosarios -----------------------------------------------------------------------
Modulo 1 El lenguaje Java
Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto
DESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO
I. SISTEMAS NUMÉRICOS DESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO LIC. LEYDY ROXANA ZEPEDA RUIZ SEPTIEMBRE DICIEMBRE 2011 Ocosingo, Chis. 1.1Sistemas numéricos. Los números son los mismos en todos
2 EL DOCUMENTO DE ESPECIFICACIONES
Ingeniería Informática Tecnología de la Programación TEMA 1 Documentación de programas. 1 LA DOCUMENTACIÓN DE PROGRAMAS En la ejecución de un proyecto informático o un programa software se deben de seguir
Técnicas de prueba 1. FUNDAMENTOS DE LA PRUEBA DEL SOFTWARE
Técnicas de prueba El desarrollo de Sistemas de software implica la realización de una serie de actividades predispuestas a incorporar errores (en la etapa de definición de requerimientos, de diseño, de
Tema 2: La clase string
: string Programación 2 Curso 2013-2014 Índice 1 Cadenas de caracteres en C 2 Entrada / salida 3 entre vectores de caracteres y string 4 5 Cadenas de caracteres en C En C, las cadenas de caracteres tienen
... Formas alternativas de escribir un texto. Columnas. anfora CAPÍTULO 4
CAPÍTULO 4. Formas alternativas de escribir un texto........ Columnas Para fijar columnas se posiciona el Punto de Inserción donde se desee que comiencen las columnas, o bien se selecciona el texto que
GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD
GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD Manual de usuario 1 - ÍNDICE 1 - ÍNDICE... 2 2 - INTRODUCCIÓN... 3 3 - SELECCIÓN CARPETA TRABAJO... 4 3.1 CÓMO CAMBIAR DE EMPRESA O DE CARPETA DE TRABAJO?...
Roberto Quejido Cañamero
Crear un documento de texto con todas las preguntas y respuestas del tema. Tiene que aparecer en él todos los contenidos del tema. 1. Explica qué son los modos de presentación en Writer, cuáles hay y cómo
TEMA 5. CONTROL DE FLUJO DEL PROGRAMA. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ;
TEMA 5. CONTROL DE FLUJO DEL PROGRAMA 5.1 Sentencias Una sentencia es una expresión seguida de un punto y coma. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ; El ; es obligatorio
Introducción a la programación orientada a objetos
Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación
CASO PRÁCTICO DISTRIBUCIÓN DE COSTES
CASO PRÁCTICO DISTRIBUCIÓN DE COSTES Nuestra empresa tiene centros de distribución en tres ciudades europeas: Zaragoza, Milán y Burdeos. Hemos solicitado a los responsables de cada uno de los centros que
8.1. Introdución. %% [b\ t]+ $ ;
8.1. Introdución El lex es un generador de programas diseñado para el proceso léxico de cadenas de caracteres de input. El programa acepta una especificación, orientada a resolver un problema de alto nivel
