DESCRIPCION FORMAL DE LENGUAJES

Tamaño: px
Comenzar la demostración a partir de la página:

Download "DESCRIPCION FORMAL DE LENGUAJES"

Transcripción

1 Apéndice 1 1 DESCRIPCION FORMAL DE LENGUAJES A1.1. Léxico, Sintaxis, Semántica. Un programa es una secuencia de símbolos y puede considerarse como un texto. Los símbolos de un lenguaje pertenecen a un conjunto que se denomina vocabulario o léxico. Los símbolos también se denominan elementos léxicos o tokens. Léxico significa diccionario; y aplicado en el ambiente de lenguajes de programación se utiliza para denotar los símbolos del lenguaje. Estos símbolos, a su vez, están formados por secuencias de caracteres; y existen reglas que determinan cómo puede generarse o producirse un símbolo a partir de caracteres. Cada lenguaje de programación define reglas que permiten componer el texto de un programa como una secuencia de símbolos. El conjunto de estas reglas se denomina gramática, o más usualmente, la sintaxis del lenguaje. Sintaxis significa con orden. Cada regla establece una clase definida de objetos o categorías sintácticas; como ejemplos pueden darse algunas partes típicas de un programa: acciones, declaraciones, condiciones, expresiones, etc. Asociado a cada palabra (símbolo) y a cada frase o sentencia (categoría sintáctica) debe existir un significado, el cual se traduce en valores de los objetos (constantes y variables) de acuerdo a sus tipos; o en nombres de objetos o grupos de acciones; o en la especificación de las operaciones que deben efectuarse sobre esos objetos. Todas las reglas que aportan esta información se denomina: Semántica del lenguaje. Si bien las reglas para construir símbolos y frases son finitas, el conjunto de programas es infinito. Para describir con rigurosidad los lenguajes de programación se emplea una notación formal que se denomina Metalenguaje. El formulismo más conocido, y que emplearemos en la descripción, es el Formalismo Extendido Backus-Nauer. (BNF, Backus Nauer Formalism). Básicamente consiste en describir una frase, (categoría sintáctica) o parte abstracta de un programa, mediante la secuencia de componentes, de menor categoría, que pueden reemplazar

2 2 Estructuras de Datos y Algoritmos dicha frase. Las reglas deben especificar hasta llegar al reemplazo por los símbolos que componen el diccionario. En este ambiente, los elementos léxicos del lenguaje se denominan símbolos terminales. Las componentes estructurales del lenguaje que serán reemplazadas, se denominan símbolos no terminales. La regla que establece el reemplazo de un símbolo no terminal por una secuencia de símbolos terminales y no terminales se denomina producción. Las reglas deben permitir verificar, con facilidad, si una secuencia de símbolos es o no una sentencia correcta del lenguaje. Un programador debe conocer cómo generar secuencias de símbolos terminales que cumplen la gramática. A1.2. Metalenguaje BNF. A Producción. Existe sólo una acción primitiva, es la producción. Es una ecuación sintáctica que permite definir una categoría sintáctica, S; mediante una expresión E. En símbolos: <S> ::= <E> Gráficamente: S E Figura A1.1. Producción Los paréntesis de ángulo, delimitan los símbolos no terminales. En el gráfico esto se representa por un rectángulo. La secuencia ::=, es el metasímbolo para la producción. Y se lee: puede ser reemplazado por. Una producción puede considerarse la instancia de definición de S en términos de E. Lo usual es que S corresponda a una parte o concepto del lenguaje. Por ejemplo: acciones, condiciones, tipos, etc. La expresión E, debe especificar una secuencia de símbolos; éstos, a su vez, deben especificar, en forma precisa, cómo se estructura una parte en términos de sus componentes.

3 Apéndice 1. Descripción formal de lenguajes 3 A Secuenciación de símbolos. Los lenguajes estructurados suelen disponer tres formas básicas para establecer secuencias: La alternativa, la concatenación, y la iteración. A Alternativa. Una expresión puede considerarse como una lista de términos sintácticos alternativos. En símbolos: Gráficamente: <E> ::= <T1> <T2> --- <Tn> n>0 T1 T2 E Ti Tn Figura A1.2. Alternativa El metasímbolo se lee como o excluyente. La producción anterior explica que una expresión puede remplazarse por uno (y sólo uno) de los términos de la lista. Ejemplo: <clase de almacenamiento> ::= 'auto ' 'extern ' 'register ' 'static ' 'typedef ' Nótese que los símbolos terminales, se indican por una secuencia de caracteres entre comillas simples. A Concatenación. Cada término puede ser reemplazado por la concatenación (o producto) de factores sintácticos. En símbolos: <T> ::= <F1><F2> ---- <Fn> n>0

4 4 Estructuras de Datos y Algoritmos Gráficamente: T F1 F2 Fi Fn Figura A1.3. Concatenación Ejemplo: <acción repetitiva> ::= 'while' '(' <expresión> ')' <acción> A Opción. a) Opción. Una o ninguna. Una forma de reemplazar un factor es mediante la opción. En símbolos: <F> ::= [ E ] Gráficamente: F S Figura A1.4. Opción. Los paréntesis cuadrados son los metasímbolos empleados para la opción, se indica que el factor puede ser reemplazado por la expresión o por nada. Se dice que [E] es opcional; puede estar o no. Y si está, lo hace sólo una vez. Ejemplo: <signo> ::= [ '+' '-' ]

5 Apéndice 1. Descripción formal de lenguajes 5 Signo + - Figura A1.5. Sintaxis de Signo Debe notarse que los símbolos terminales se representan encerrados en ovoides o círculos, en la descripción gráfica. La ausencia de símbolo, suele ser tratada como la ocurrencia del símbolo vacío. b) Repetición. Un factor también puede ser reemplazado por la repetición, de cero o más veces, de una expresión. En símbolos: <F> ::= { E } Gráficamente: F E Los paréntesis de llave denotan la repetición. Ejemplo: Figura A1.6. Repetición <número entero sin signo> ::= <dígito>{dígito} Para delimitar el número máximo de repeticiones, suele agregarse un valor entero como superíndice. Ejemplo: {digito}^3 indica a lo más 3 cifras.

6 6 Estructuras de Datos y Algoritmos c) Repetición de a lo menos una vez. Una alternativa de reemplazo de factor, es la repetición, de una expresión, por lo menos una vez. En símbolos: La que es semánticamente equivalente a: <F> ::= <E> {E} <F> ::= {E} <E> Estableceremos la siguiente equivalencia, como convenio, para simplificar la notación: Gráficamente: <F> ::= {E*} F E d) Lista. Una construcción de uso frecuente es: Figura A1.7. Repetición de a lo menos una vez. <lista> ::= { <entidad> <separador> } <entidad> La lista está formada por una entidad a lo menos; en caso de existir varias entidades, éstas aparecen separadas por el separador. Nótese que después de la última entidad no debe existir un separador. Debido a su frecuente uso, la sintaxis de lista puede convenirse en anotarla, en forma abreviada, según: <lista> ::= { <entidad>* <separador> }

7 Apéndice 1. Descripción formal de lenguajes 7 A Agrupaciones. En las ocasiones que sean necesarias pueden agruparse términos y factores sintácticos mediante paréntesis redondos. Ejemplo: <término simple> ::= ('A' 'B')('C' 'D') Las siguientes secuencias cumplen la sintaxis de término simple: AC AD BC BD A Sintaxis de factor. En símbolos: <F> ::= <S> <símbolo terminal> (E) E [ E ] { E } Los símbolos terminales son secuencias de símbolos tomados del vocabulario del lenguaje. Y se representan entre comillas simples. La entidad sintáctica <S> debe considerarse representada por su identificador o nombre; y debe estar definida previamente. A Descripción formal de BNF. El BNF es un lenguaje formal, y como veremos puede emplearse para describirse a sí mismo. Las siguientes producciones definen el formalismo: <sintaxis> ::= <producción> <producción> ::= <identificador> '::=' <expresión> <expresión> ::= <término> { ' ' <término> } <término> ::= <factor> { <factor> } <factor> ::= <identificador> <símbolo terminal> '(' <expresión> ')' <expresión> '[' <expresión> ']' '{' <expresión> '}' El identificador denota una entidad sintáctica.

8 8 Estructuras de Datos y Algoritmos A Ejemplos. a) 'A'['B']'C' genera ABC y AC b) 'A'{'BA'} genera A ABA ABABA... c) {'A' 'B'}'C' genera C AC BC AAC A Árboles de Derivación. Una forma de ayudar a reconocer las frases y su estructura es el desarrollo de árboles de derivación. Ejemplo: Dadas las producciones: <entero con signo>::=<signo><entero> <signo>::='+' '-' <entero>::=<dígito><entero> <dígito> <dígito>::='0' '1' (definición recursiva) Verificar si +10 pertenece o no al lenguaje. Específicamente si es o no un entero con signo. Una forma de verificación es la construcción de un árbol de derivación, que consiste en representar gráficamente los reemplazos que se efectúan desde el símbolo de partida (raíz) hasta llegar a elementos terminales (hojas). [top-down] El entero con signo puede reemplazarse por la secuencia: signo entero. enteroconsigno signo entero Figura A1.8. Secuencia signo entero A su vez, signo se reemplaza por + (ya es terminal). Y entero por: dígito entero. enteroconsigno signo entero + dígito Figura A1.9. Dígito entero entero Dígito por el terminal 1, y entero por dígito. Finalmente dígito por el terminal 0.

9 Apéndice 1. Descripción formal de lenguajes 9 enteroconsigno signo entero + dígito entero 1 dígito Figura A1.10. Entero con signo 0 El procedimiento de reconocimiento puede también efectuarse a la inversa, desde las hojas hacia la raíz. (bottom up) A Recursividad en Producciones. Consiste, en este caso, en definir un símbolo no terminal en términos de sí mismo. La recursividad permite definir lenguajes con un número finito de producciones. La definición recursiva permite generar símbolos de longitud variable. El factor básico de repetición puede describirse explícitamente en forma recursiva. Se tiene que: <A>::={<B>} (i) es equivalente a: <A>::=<vacío> <A><B> (ii) En forma gráfica: A B Figura A1.11. Repetición (i)

10 10 Estructuras de Datos y Algoritmos A A B Figura A1.12. Repetición recursiva (ii) Se dice que la definición ii) de A es recursiva. Puede comprobarse que existen otras formas equivalentes. Son equivalentes porque generan las mismas secuencias; cuestión que puede verificarse desarrollando árboles de derivación. Otras formas equivalentes son: <A> ::= <vacío> <B><A> <A> ::= <vacío> <A><B><A> (iii) (iv) La secuencia BBBB, puede lograrse para el caso (ii) según: A es reemplazado por: AB; luego A es nuevamente reemplazado por AB: ABB; luego A por AB, queda: ABBB; otra vez A por AB, queda: ABBBB; finalmente A por el símbolo vacío. Ejemplo: <S>::='z' 'y'<s> S z y S Figura A1.13. Producción recursiva Genera las secuencias: z yz yyz yyyz...

11 Apéndice 1. Descripción formal de lenguajes 11 Puede escribirse: <S>::={'y'}'z' S z A Asociatividad en Producciones. Figura A1.14. Simplificación a no recursiva. El uso de recursividad en las producciones, permite establecer reglas de asociatividad sin uso de paréntesis. Puede emplearse recursividad por la izquierda. Ejemplo: <expresión>::= <expresión><operador><variable> <variable> <operador> ::= '+' '*' <variable> ::= 'x' 'y' La secuencia x+y*x+y se interpreta: ((x+y)*x)+y y Con la derivación: exp exp op var exp op var + y exp op var * x var + y x Figura A1.15. Derivación Se refleja la asociatividad, agrupando primero las hojas más alejadas de la raíz. También puede emplearse recursividad por la derecha:

12 12 Estructuras de Datos y Algoritmos Ejemplo: <expresión> ::=<variable><operador><expresión> <variable> <operador> ::='+' '*' <variable> ::='x' 'y' La secuencia x+y*x+y se interpreta: x+(y*(x+y)) Con la derivación: exp var op exp x + var op exp y * var op exp x + var A Ambigüedad en Producciones. Figura A1.16. Derivación y Ciertas producciones pueden llevar a ambigüedades semánticas: Ejemplo: <expresión> ::=<expresión><operador><expresión> <variable> <operador> ::='+' '*' <variable> ::='a' 'b' 'c' Puede comprobarse que la secuencia: a+b*c puede interpretarse como a+(b*c) y también como (a+b)*c. Comprobar lo anterior generando los árboles de derivación correspondientes. Obviamente en una gramática deben evitarse producciones que generen ambigüedades.

13 Apéndice 1. Descripción formal de lenguajes 13 A Precedencia de operadores en expresiones aritmético lógicas. El formalismo BNF, permite reflejar el orden o jerarquía de los operadores en una expresión aritmética o lógica. Por ejemplo: Si se tiene que el operador * tiene precedencia (o mayor jerarquía) que el operador +; entonces la secuencia a+b*c se interpreta como: a+(b*c) Es decir, se realiza primero la multiplicación, luego la adición. El uso cuidadoso de las reglas de composición de expresiones aritméticas y lógicas, permite escribirlas sin usar paréntesis. Sin embargo, para mejorar la legibilidad en ciertos casos, suelen emplearse éstos. Cuando se escriben expresiones complejas empleando paréntesis, suele usarse la regla de contar los paréntesis abiertos y los cerrados: deben estar balanceados. A Reglas para construir Expresiones. i) Las expresiones están formadas por operadores y operandos. ii) Son fórmulas o reglas para computar valores. iii) Precedencia de operadores iv) Los grupos de operadores de igual precedencia se ejecutan de acuerdo a su regla de asociatividad. La siguiente lista muestra los operadores agrupados, en niveles de precedencia, en orden descendente de ésta. Cada grupo está separado del siguiente por una línea en blanco. La columna a la derecha establece la asociatividad del operador. Operador Ejemplo notación Asociatividad Post-incremento X++ desde izquierda hacia la derecha Post-decremento X-- subíndice X[Y] llamado a función X(Y) selección de miembro X.Y apunta a miembro X->Y sizeof sizeof X desde derecha a izquierda pre-incremento ++X pre-decremento --X dirección de &X indirección *X más +X menos -X

14 14 Estructuras de Datos y Algoritmos NOT al bit ~X NOT lógico!x casteo de tipo (declaración)x multiplicación X * Y desde izquierda a derecha división X / Y Resto (modulo) X % Y suma X + Y desde izquierda a derecha resta X Y Corrimiento a izquierda X << Y desde izquierda a derecha Corrimiento a derecha X >> Y Menor que X < Y desde izquierda a derecha Menor o igual que X <= Y Mayor que X > Y Mayor o igual que X >= Y Igualdad X == Y desde izquierda a derecha No igualdad X!= Y AND al bit X & Y desde izquierda a derecha OR exclusivo al bit X ^ Y desde izquierda a derecha OR inclusivo al bit X Y desde izquierda a derecha AND lógico X && Y desde izquierda a derecha OR lógico X Y desde izquierda a derecha Condicional Z? X : Y desde derecha a izquierda Asignación X = Y desde derecha a izquierda Multiplica y asigna X *= Y X=X*Y Divide y asigna X /= Y X=X/Y Resto y asigna X %= Y Suma y asigna X += Y Resta y asigna X -= Y Left shift assign X <<= Y right shift assign X >>= Y AND al bit y asigna X &= Y OR ex al bit y asigna X ^= Y OR inclusive al bit asigna X = Y

15 Apéndice 1. Descripción formal de lenguajes 15 coma X, Y desde izquierda a derecha Figura A1.17. Reglas de precedencia y asociatividad. La precedencia se refiere al orden de evaluación. Es decir, cuáles operadores reciben primero sus operandos. Ejemplos: La semántica de a/b/c es (a/b)/c de acuerdo a la regla iv) ya que hay secuencia de operadores de igual precedencia y se asocia desde izquierda a derecha. En forma similar: a/b*c se interpreta: (a/b)*c y = m * x + b se interpreta como y = ((m * x) + b) *p++ = -X->Y se interpreta como (*(p++)) = (-(X->Y)) Para la expresión: a + b*c, aplicando la regla iii), la multiplicación tiene precedencia sobre la suma, por lo tanto se ejecuta primero. Se interpreta: a + (b*c) A1.3. Símbolos del lenguaje. Léxico. El texto de un programa está formado por una secuencia de símbolos o elementos léxicos. Los elementos léxicos, a su vez, están formados por secuencias de caracteres. Existen reglas de composición que determinan cómo pueden generarse o producirse un símbolo a partir de caracteres; que en el caso de programas de alto nivel, se consideran símbolos terminales. El conjunto de símbolos terminales es el vocabulario del lenguaje (reglas léxicas). A Conjuntos de Caracteres. Los caracteres están estandarizados y les corresponde un código único (de un código de 7 bits, ISO estándar). Con 7 bits pueden codificarse 128 caracteres diferentes. Suele emplearse el código ASCII (Código Estándar Americano para el Intercambio de Información), que usa 8 bits por carácter, dejando un bit para controlar la paridad. La paridad consiste en dejar un número par o impar de unos en una palabra del código, y se emplea con fines de detección de errores. Los elementos del código que se representan (visualmente) mediante un símbolo gráfico se denominan caracteres gráficos. Entre ellos 26 letras mayúsculas, 26 minúsculas, 10 dígitos decimales, 32 caracteres especiales (signos), y el espacio.

16 16 Estructuras de Datos y Algoritmos El resto del código (33 símbolos, no gráficos) está formado por caracteres de control, que se emplean para dar efectos de formato y para controlar la comunicación de caracteres entre un equipo y otro. Se denominan de formato a: tabulación horizontal y vertical, retorno de carro, alimentación de nueva línea y alimentación de nuevo formulario. En el texto de un programa sólo se permiten caracteres gráficos y de formato. A Elementos Léxicos (tokens). En lenguajes de alto nivel es usual definir las siguientes unidades: i) Delimitadores ii) Identificadores iii) Números (literal numérico) iv) Carácter v) Strings vi) Comentarios vii) Separadores El efecto de un programa depende solamente de la particular secuencia de elementos léxicos que lo forman. Existen reglas que determinan como puede generarse una frase a partir de los elementos léxicos. El conjunto de reglas se denomina gramática del lenguaje. La gramática o estructura del lenguaje permite determinar si una secuencia de palabras (tokens) es una sentencia correcta o no. La estructura de las frases es esencial en el reconocimiento del significado de éstas (semántica). A Separadores En algunos casos es necesario un separador explícito para separar elementos léxicos adyacentes. Se consideran separadores al espacio, a los caracteres con efecto de formato y el final de una línea. Suele no definirse qué causa el fin de línea, en algunos sistemas pueden ser uno o más caracteres de control. Reglas para el uso de separadores: a) Se requiere a lo menos un separador entre un identificador o número y el identificador o número adyacente. b) Se permite uno o más separadores entre dos elementos léxicos adyacentes. También se acepta uno o más separadores, antes del primer elemento léxico del programa y después del último. (Formato libre)

17 Apéndice 1. Descripción formal de lenguajes 17 c) Los comentarios son considerados separadores. A Comentarios. Los comentarios se emplean para mejorar la legibilidad del programa; y deben ocuparse con frecuencia para aclarar el significado de variables, o de acciones. Los comentarios pueden sacarse del texto sin alterar el significado del programa. Cualquier secuencia de caracteres encerrados entre los símbolos /* y */ se denomina comentario. Hay comentarios de fin de línea, de línea completa o de varias líneas. Alternativamente un comentario puede comenzar con el doble símbolo: //. A Carácter. Un carácter literal se forma encerrando uno de los 95 caracteres gráficos (incluyendo el espacio) entre comillas simples. Ej: '*' '"' 'g' ' ' A Strings. ( tira, mensaje, texto, hileras, cadenas) Son secuencias de caracteres gráficos entre comillas dobles. Para incluir una comilla doble, se la precede con \. O/ Higgins. El largo del string es el número de caracteres que forman la secuencia. Se emplean para intercalar texto (legible) en la salida. Pueden usarse para alertar al operador que se requiere una entrada o una operación de su parte (prompts); o bien para hacer más comprensible la salida (mensajes). A Números. Se habla de literal numérico cuando se quiere enfatizar que se está haciendo referencia a cómo se escribe un número como una secuencia de caracteres. Existen enteros y reales. Los reales incluyen un punto (la coma decimal). Entre los reales, se habla de punto fijo y punto flotante (o formato científico y exponencial; llevan la letra E). <signo> ::= ['+' '-'] <constante entera sin signo> ::= { dígito* } <constante entera> ::= <signo> <constante entera sin signo> <real punto fijo> ::= {dígito*} '.' {dígito} <exponente> ::= ('e' 'E')<constante entera> <real punto flotante> ::= {dígito*} ['.'{dígito*}] <exponente> <constante real> ::= <real punto fijo> <real punto flotante>

18 18 Estructuras de Datos y Algoritmos Un resumen de las producciones anteriores es: número + - dígito. dígito + E dígito - Figura A1.18. Sintaxis de número La representación anterior no considera aspectos prácticos como máximo número representable, exactitud de representación, etc., que dependen de la instalación. La sintaxis de número se abstrae de estos detalles y sólo explica cómo se escriben. A Identificadores. Se usan como nombres y también como palabras reservadas. Comienzan con una letra, que puede ser seguida de cualquier combinación de letras y números. El espacio no se acepta dentro de un identificador. Sirven para dar nombre a: constantes, tipos de datos, variables, procedimientos, funciones. identificador letra letra dígito Figura A1.19. Sintaxis de identificador Las palabras reservadas tienen un significado especial en el lenguaje y no pueden emplearse como identificadores de objetos. Los siguientes símbolos son palabras reservadas: auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if static while Estos símbolos también pueden ser clasificados como delimitadores.

19 Apéndice 1. Descripción formal de lenguajes 19 Existen también identificadores estándares que el lenguaje predefine. Por ejemplo, el nombre de algunas funciones y constantes. Pueden usarse sin definirse previamente. Además podrían ser redefinidos dentro del programa; es decir, cambiar el significado estándar. A Delimitadores. Es uno de los siguientes caracteres especiales: ~ + ; ] %, < ^ & - = { (. > ) /? }! * : [ O uno de los siguientes delimitadores, compuestos de dos caracteres especiales adyacentes:... && -= >= <<= &= -> >> >>= *= /= ^=!= ++ << = %= += <= -- == Algunos delimitadores se usan como operadores. Otros para establecer mecanismos de acceso o selección de datos estructurados. A Resumen. <texto de un programa> ::= { { <separador> } <token> } <separador> ::= <espacio> <fin de línea> <comentario> <token> ::= <palabra reservada> <delimitador> <nombre> <constante> <constante> ::= <contante entera> <constante real> <constante caracter> <string> A Ejemplos. A Indicar mediante paréntesis como se evalúan las expresiones: a) 80/5/4 La expresión se evalúa ((80/5)/4) b) sqrt(sqr(3)+11*5)

20 20 Estructuras de Datos y Algoritmos Se evalúa: sqrt(sqr(3)+(11*5)) c) x =2*y-5.02 Se evalúa: x = ((2*y) ) A Escribir todas las secuencias que cumplen la sintaxis dada por: a) {'A' 'B'}'C' b) 'A'{'BA'} c) ('A' 'B')('C' 'D') d) 'A'['B']('C' 'D') Si el número de secuencias es mayor que 10, escribir por lo menos 5 de ellas. a) {'A' 'B'}'C' número de secuencias>10 1) C 2) AC 3) BC 4) ABC 5) AAC b) 'A'{'BA'} A B C número de secuencias >10 1) A 2) ABA 3) ABABA 4) ABABABA 5) ABABABABA c) ('A' 'B')('C' 'D') A AB número de secuencias = 4 1) AC 2) AD 3) BC 4) BD d) 'A'['B']('C' 'D') A B C D número de secuencias = 4 1) AC 2) AD 3) ABC 4) ABD A B C D

21 Apéndice 1. Descripción formal de lenguajes 21 Índice general. APÉNDICE DESCRIPCION FORMAL DE LENGUAJES... 1 A1.1. LÉXICO, SINTAXIS, SEMÁNTICA A1.2. METALENGUAJE BNF A Producción A Secuenciación de símbolos A Alternativa... 3 A Concatenación A Opción a) Opción. Una o ninguna b) Repetición c) Repetición de a lo menos una vez d) Lista A Agrupaciones A Sintaxis de factor A Descripción formal de BNF A Ejemplos A Árboles de Derivación A Recursividad en Producciones A Asociatividad en Producciones A Ambigüedad en Producciones A Precedencia de operadores en expresiones aritmético lógicas A Reglas para construir Expresiones A1.3. SÍMBOLOS DEL LENGUAJE. LÉXICO A Conjuntos de Caracteres A Elementos Léxicos (tokens) A Separadores A Comentarios A Carácter A Strings. ( tira, mensaje, texto, hileras, cadenas) A Números A Identificadores A Delimitadores A Resumen A Ejemplos A Indicar mediante paréntesis como se evalúan las expresiones: A Escribir todas las secuencias que cumplen la sintaxis dada por: ÍNDICE GENERAL ÍNDICE DE FIGURAS

22 22 Estructuras de Datos y Algoritmos Índice de figuras. FIGURA A1.1. PRODUCCIÓN... 2 FIGURA A1.2. ALTERNATIVA... 3 FIGURA A1.3. CONCATENACIÓN... 4 FIGURA A1.4. OPCIÓN FIGURA A1.5. SINTAXIS DE SIGNO... 5 FIGURA A1.6. REPETICIÓN... 5 FIGURA A1.7. REPETICIÓN DE A LO MENOS UNA VEZ FIGURA A1.8. SECUENCIA SIGNO ENTERO... 8 FIGURA A1.9. DÍGITO ENTERO... 8 FIGURA A1.10. ENTERO CON SIGNO... 9 FIGURA A1.11. REPETICIÓN (I)... 9 FIGURA A1.12. REPETICIÓN RECURSIVA (II) FIGURA A1.13. PRODUCCIÓN RECURSIVA FIGURA A1.14. SIMPLIFICACIÓN A NO RECURSIVA FIGURA A1.15. DERIVACIÓN FIGURA A1.16. DERIVACIÓN FIGURA A1.17. REGLAS DE PRECEDENCIA Y ASOCIATIVIDAD FIGURA A1.18. SINTAXIS DE NÚMERO FIGURA A1.19. SINTAXIS DE IDENTIFICADOR... 18

Un programa es una secuencia de símbolos y puede considerarse como un texto.

Un programa es una secuencia de símbolos y puede considerarse como un texto. 7. DESCRIPCION FORMAL DE LENGUAJES 7.1. Léxico, Sintaxis, Semántica. Un programa es una secuencia de símbolos y puede considerarse como un texto. Los símbolos de un lenguaje pertenecen a un conjunto que

Más detalles

Lección 2 Introducción al lenguaje C

Lección 2 Introducción al lenguaje C Lección Introducción al lenguaje C Decimal Binario Hexadecimal A B C D E F Octal Equivalencia entre decimal, binario, hexadecimal y octal. Código ASCII (American Standard Code for Information Interchange)

Más detalles

Sintaxis de C Ing. Jose Maria Sola Dr. Oscar Ricardo Bruno

Sintaxis de C Ing. Jose Maria Sola Dr. Oscar Ricardo Bruno 1.1. Gramática Léxica 1.1.1. Elementos Léxicos Sintaxis de C Ing. Jose Maria Sola Dr. Oscar Ricardo Bruno ->

Más detalles

Repaso Lenguaje C Área de Servicios Programación (Ing. Elect. y Prof. Tec.), Programación I (TUG y TUR) y Electrónica programable (TUE)

Repaso Lenguaje C Área de Servicios Programación (Ing. Elect. y Prof. Tec.), Programación I (TUG y TUR) y Electrónica programable (TUE) Repaso Lenguaje C OBJETOS Variables Constantes Variable: objeto del ambiente cuyo contenido puede cambiar. Constante: objeto cuyo contenido no puede cambiar. Variables: - un nombre que la identifica. Deben

Más detalles

Tipos de Datos en C. Palabras reservadas en C

Tipos de Datos en C. Palabras reservadas en C Tipos de Datos en C Tipo Tamaño de bits Rango char 8-128 a 127 unsigned char 8 0 a 255 signed char 8-128 a 127 int 16 32768 a 32767 unsigned int 16 0 a 65535 signed int 16 Igual que int short int 16 Igual

Más detalles

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice

Más detalles

Tema 05: Elementos de un programa en C

Tema 05: Elementos de un programa en C Tema 05: Elementos de un programa en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1

Más detalles

08 Análisis léxico IV

08 Análisis léxico IV 2 Contenido Expresiones regulares Lenguaje generado por una expresión regular Precedencia de las operaciones con las expresiones regulares Ejemplos Definiciones regulares Extensiones de las expresiones

Más detalles

Programación Estructurada

Programación Estructurada Programación Estructurada PROGRAMACIÓN ESTRUCTURADA 1 Sesión No. 2 Nombre: El lenguaje de programación C Contextualización Una constante en todos los lenguajes de programación (viejos y nuevos) es la implementación

Más detalles

Laboratorio de Arquitectura de Redes. Operadores y expresiones en lenguaje C

Laboratorio de Arquitectura de Redes. Operadores y expresiones en lenguaje C Laboratorio de Arquitectura de Redes Operadores y expresiones en lenguaje C Operadores y expresiones en lenguaje C Expresiones numéricas y operadores Operadores aritméticos Operadores lógicos y de relación

Más detalles

Informática Ingeniería en Electrónica y Automática Industrial

Informática Ingeniería en Electrónica y Automática Industrial Informática Ingeniería en Electrónica y Automática Industrial Operadores y expresiones en Operadores y expresiones en Expresiones numéricas y operadores Operadores aritméticos Operadores lógicos y de relación

Más detalles

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta Centro Asociado Palma de Mallorca Antonio Rivero Cuesta La Sintaxis de Java I... 5 Tipos de datos... 6 Tipos de datos simples... 7 Operadores... 11 Operadores Aritméticos... 12 Operadores relacionales...

Más detalles

Elementos de un programa en C

Elementos de un programa en C Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución

Más detalles

Programación Estructurada. Sesión 2:El lenguaje de programación C

Programación Estructurada. Sesión 2:El lenguaje de programación C Programación Estructurada Sesión 2:El lenguaje de programación C Contextualización Una parte importante del lenguaje C son las palabras reservadas, son identificadores con un significado predefinido. Estas

Más detalles

UNIDAD 2 Descripción de un programa

UNIDAD 2 Descripción de un programa Descripción de un programa Estructura general de un programa. Elementos básicos. Tipos de datos simples: enteros, reales y carácter. Representación de datos en memoria. Operaciones sobre tipos de datos

Más detalles

LENGUAJE. Tema 2 Elementos de un programa

LENGUAJE. Tema 2 Elementos de un programa LENGUAJE Tema 2 Elementos de un programa ELEMENTOS DE UN PROGRAMA Comentarios. Identificadores. Constantes. Variables. Operadores. Sentencias o instrucciones. COMENTARIOS Los comentarios en C pueden ocupar

Más detalles

Elementos léxicos del lenguaje de programación C

Elementos léxicos del lenguaje de programación C Elementos léxicos del lenguaje de programación C Elementos léxicos de los lenguajes de programación (tokens) Palabras reservadas Identificadores Literales Operadores Delimitadores Comentarios Apéndices

Más detalles

Principios de Computadoras II

Principios de Computadoras II Departamento de Ingeniería Electrónica y Computadoras Operadores y Expresiones rcoppo@uns.edu.ar Primer programa en Java 2 Comentarios en Java Comentario tradicional (multi-línea) Comentario de línea Comentario

Más detalles

Curso de Programación Avanzada en C

Curso de Programación Avanzada en C Curso de Programación Avanzada en C Copyright, 1996 Universidad Sim on Bol ivar 1 Prof. Mariela J. Curiel Contenido del Curso Conceptos BásicosB Estructuras de Control Arreglos Otros tipos de datos derivados

Más detalles

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main. LENGUAJE C CARACTERISTICAS DEL LENGUAJE 'C' El lenguaje 'C' se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan

Más detalles

TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL.

TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL. Tema 2. TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL. PARTE : VARIABLES, OPERADORES Y CONSTANTES.. INTRODUCCIÓN AL LENGUAJE C 2. PROGRAMAS BÁSICOS EN LENGUAJE C 3. DATOS EN LENGUAJE C

Más detalles

Introducción a la Programación

Introducción a la Programación Introducción a la Programación Fundamentos de Programación Ingeniería Informática en Sistemas de Información Alicia Troncoso 1 Contenido l Introducción l Mi primer programa l Etapas a seguir en la programación

Más detalles

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C Algoritmo y Estructura de Datos Ing. M. Laura López 1 Estructura de un programa en C 2 Estructura de un programa en C #include Archivos de cabecera # define Definición de constantes Declaraciones Globales

Más detalles

Instituto Tecnológico de Celaya

Instituto Tecnológico de Celaya ELEMENTOS BÁSICOS DE C++: DECLARACIÓN DE VARIABLES A través de operaciones aritméticas (suma, resta, etc.) y lógicas (por ejemplo, comparaciones) los programas manipulan datos tales como números y caracteres.

Más detalles

Lenguajes y Compiladores Aspectos Formales (Parte 2) Compiladores

Lenguajes y Compiladores Aspectos Formales (Parte 2) Compiladores Facultad de Ingeniería de Sistemas Lenguajes y Aspectos Formales (Parte 2) 2007 1 Derivaciones El proceso de búsqueda de un árbol sintáctico para una cadena se llama análisis sintáctico. El lenguaje generado

Más detalles

Lenguaje C Elementos de un Programa. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006

Lenguaje C Elementos de un Programa. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006 Lenguaje C Elementos de un Programa Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006 Objetivos Conocer los elementos que conforman un programa en C 1. Elementos léxicos de un Programa Cuando el programa

Más detalles

Programación 1 Tema 2. Lenguaje de programación y ejecución de un programa

Programación 1 Tema 2. Lenguaje de programación y ejecución de un programa Programación 1 Tema 2 Lenguaje de programación y ejecución de un programa Índice Lenguaje de programación Símbolos Sintaxis Semántica Computador Ejecución de un programa Sistema operativo, entorno de programación

Más detalles

Comprender las diferencias entre tipos de datos primitivos similares, y aprender a elegir el tipo más conveniente en cada caso.

Comprender las diferencias entre tipos de datos primitivos similares, y aprender a elegir el tipo más conveniente en cada caso. Elementos básicos de programación en Java Objetivos del tema Conocer la estructura básica de un programa Java. Comprender los conceptos de tipo, valor y variable. Comprender las diferencias entre tipos

Más detalles

El lenguaje C. 1. Identificadores, constantes y variables

El lenguaje C. 1. Identificadores, constantes y variables Principios de Programación El lenguaje C 1. Identificadores, constantes y variables 1.1. Conceptos de memoria Los nombres de variable como x, y, suma corresponden a localizaciones o posiciones en la memoria

Más detalles

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs. Variables Una variable no es más que un nombre simbólico que identifica una dirección de memoria: Suma el contenido de la posición 3001 y la 3002 y lo almacenas en la posición 3003 vs. total = cantidad1

Más detalles

NOTAS PARA LA MATERIA LENGUAJES DE PROGRAMACIÓN

NOTAS PARA LA MATERIA LENGUAJES DE PROGRAMACIÓN NOTAS PARA LA MATERIA LENGUAJES DE PROGRAMACIÓN G r a m á t i c a s UNIVERSIDAD DE SONORA DEPARTAMENTO DE MATEMÁTICAS LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN Dra. María de Guadalupe Cota Ortiz Lenguaje

Más detalles

TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS

TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS Una vez que ya sabes crear tus propios programas, vamos a analizar los fundamentos del lenguaje de programación C. Este capítulo incluye además los siguientes temas:

Más detalles

LENGUAJES Y GRAMÁTICAS

LENGUAJES Y GRAMÁTICAS LENGUAJES Y GRAMÁTICAS Orlando Arboleda Molina Escuela de Ingeniería de Sistemas y Computación de La Universidad del Valle 20 de septiembre de 2008 Contenido Lenguajes y Gramáticas Gramáticas Gramáticas

Más detalles

Operadores aritméticos. / División operando enteros o reales si operandos son entero resultado es entero. Resto de caso resultado real

Operadores aritméticos. / División operando enteros o reales si operandos son entero resultado es entero. Resto de caso resultado real 7.1 Operadores aritméticos Operadores aritméticos operadores Operación + Suma operandos pueden ser enteros o reales - Resta operandos pueden ser enteros o reales * Multiplicación operando enteros o reales

Más detalles

JavaScript Básico. Elementos Básicos: Comentarios: Literales: Valores que puede tomar una variable o una constante.

JavaScript Básico. Elementos Básicos: Comentarios: Literales: Valores que puede tomar una variable o una constante. Javascript (II) 1 Elementos Básicos: Comentarios: Para una línea // Esto es un Comentario Para un bloque /*......... */ Literales: Valores que puede tomar una variable o una constante. Ejemplos: "Soy una

Más detalles

Estructuras de Datos Declaraciones Tipos de Datos

Estructuras de Datos Declaraciones Tipos de Datos Departamento de Informática Universidad Técnica Federico Santa María Estructuras de Datos Declaraciones Tipos de Datos Temas: 2-3-4 IWI-131, paralelo 01 Profesor: Teddy Alfaro O. Lenguaje de Programación

Más detalles

Preliminares: programación con C++

Preliminares: programación con C++ Preliminares: programación con C++ JUAN CARLOS CONDE RAMÍREZ INTRODUCTION TO PROGRAMMING Archivos y Comentarios Todo programa en lenguaje C++ debe tener la siguiente extensión: file.c, file.cc file.cpp

Más detalles

Programación en Lenguaje C

Programación en Lenguaje C Lenguaje de programación C Programación en Lenguaje C Introducción El Lenguaje de programación C fue implantado por primera vez en los años 70 por Dennis Ritchie para una computadora DEC PDP-11 corriendo

Más detalles

Características de JavaScript

Características de JavaScript Características de JavaScript Qué es JavaScript? o Lenguaje de programación interpretado utilizado fundamentalmente para dotar de comportamiento dinámico a las páginas web. o Cualquier navegador web actual

Más detalles

UNIDAD 1. Algoritmo se define como un conjunto de instrucciones que la computadora debe seguir para resolver un problema.

UNIDAD 1. Algoritmo se define como un conjunto de instrucciones que la computadora debe seguir para resolver un problema. UNIDAD 1 1.1 Definición de Algoritmo La palabra algoritmo se deriva de la traducción al latín del nombre Muhammad Musa Al-khawarizmi, un matemático y astrónomo árabe que en el siglo IX escribió un tratado

Más detalles

Algoritmo, Estructuras y Programación I Ing. Marglorie Colina

Algoritmo, Estructuras y Programación I Ing. Marglorie Colina Unidad II: Fundamentos de la Programación Estructurada Algoritmo, Estructuras y Programación I Ing. Marglorie Colina Estructura General de un Programa Zona de ficheros de cabecera de las librerías Zona

Más detalles

Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN

Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN - Introducción - Sintaxis - Semántica básica - Tipos de datos - Expresiones y enunciados - Procedimientos y ambientes - Tipos abstractos de datos y módulos

Más detalles

Expresiones y sentencias

Expresiones y sentencias Expresiones y sentencias Expresión Construcción (combinación de tokens) que se evalúa para devolver un valor. Sentencia Representación de una acción o una secuencia de acciones. En C, todas las sentencias

Más detalles

Programación n Orientada a Objetos Sentencias Java Parte I. Ing. Julio Ernesto Carreño o Vargas MsC.

Programación n Orientada a Objetos Sentencias Java Parte I. Ing. Julio Ernesto Carreño o Vargas MsC. Programación n Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño o Vargas MsC. Variables y expresiones aritméticas Variables Conceptos de Memoria Una variable es un espacio en la memoria

Más detalles

Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC.

Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC. Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC. Variables Conceptos de Memoria Una variable es un espacio en la memoria del PC Cada variable tiene un nombre, un tipo, un tamaño y un valor

Más detalles

Lenguajes y Compiladores Aspectos Formales (Parte 1) Compiladores

Lenguajes y Compiladores Aspectos Formales (Parte 1) Compiladores Facultad de Ingeniería de Sistemas Lenguajes y Aspectos Formales (Parte 1) 1 Aspectos Formales Los compiladores traducen lenguajes que están formalmente definidos a través de reglas que permiten escribir

Más detalles

Descripción de un Programa

Descripción de un Programa Unidad 2 Descripción de un Programa 1 El Lenguaje C (1) El lenguaje C fue creado en 1972 por Ken L. Thompson y Dennis M. Ritchie en los Laboratorios Bell. Es evolución de un lenguaje más antiguo: B (a

Más detalles

1. Presentación del lenguaje C Creado en 1972 por D. Ritchie Lenguaje de propósito general Portátil o transportable (generalmente) Inicialmente de niv

1. Presentación del lenguaje C Creado en 1972 por D. Ritchie Lenguaje de propósito general Portátil o transportable (generalmente) Inicialmente de niv Introducción al lenguaje C Informática Belarmino Pulido Junquera Índice 1. Presentación del lenguaje C 2. Estructura de un programa en C 3. Instrucciones del pre-procesador procesador 4. Tipos de datos

Más detalles

Introducción a Java. Introducción a Java. Programación I

Introducción a Java. Introducción a Java. Programación I Introducción a Java Introducción a Java Programación I Como Funciona Tipos de Datos TIPO TAMAÑO RANGO byte 8 bits Valores numéricos de 128 a 127 short 16 bits Valores numéricos de 32.768 a 32.767 int 32

Más detalles

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 2 - Introducción al lenguaje Java, identificadores y comentarios. Carlos Montenegro Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 1. Introducción: Java tiene como todos

Más detalles

Números enteros (cortos, largos y sin signo) Números reales (precisión simple y doble) Carácter y cadenas de caracteres. Lógicos.

Números enteros (cortos, largos y sin signo) Números reales (precisión simple y doble) Carácter y cadenas de caracteres. Lógicos. Universidad Rafael Urdaneta Escuela de Ingeniería de Computación Números enteros (cortos, largos y sin signo) Números reales (precisión simple y doble) Carácter y cadenas de caracteres. Lógicos. Asignación

Más detalles

abril de 2017 Desarrollo de aplicaciones en Java Tipos de datos primitivos Tipos de datos Elementos de aplicaciones simples

abril de 2017 Desarrollo de aplicaciones en Java Tipos de datos primitivos Tipos de datos Elementos de aplicaciones simples Desarrollo de aplicaciones en Java Generación de código fuente Compilación Ejecución Elementos de aplicaciones simples EII147-01-02 Introducción a las tecnologías de información Escuela de Ingeniería Industrial

Más detalles

3.3 Conceptos Básicos del Lenguaje Java

3.3 Conceptos Básicos del Lenguaje Java 3.3 Conceptos Básicos del Lenguaje Java Conjunto de Caracteres Java utiliza Unicode, un conjunto de caracteres de 16 bits Java permite leer ASCII de 7-bit o Latin-1, conviertiéndolo a Unicode Son pocos

Más detalles

Datos Elementales y formato de un programa en Java

Datos Elementales y formato de un programa en Java Datos Elementales y formato de un programa en Java PROGRAMACION I Grado en Matematicas Informática Programación I - 2015/2016 Datos, variables y mi primer programa 1 Introducción a la programación o Programa:

Más detalles

Temas. Objetivo. Símbolo, alfabeto. Hileras y operaciones con hileras. Operaciones con lenguajes

Temas. Objetivo. Símbolo, alfabeto. Hileras y operaciones con hileras. Operaciones con lenguajes 0 1 Temas Símbolo, alfabeto Hileras y operaciones con hileras Operaciones con lenguajes Objetivo Que el estudiante logre conocer, comprender y manejar conceptos vinculados con la Teoría de Lenguajes Formales

Más detalles

Sintaxis de los aspectos generales de un lenguaje de programación

Sintaxis de los aspectos generales de un lenguaje de programación Sintaxis de los aspectos generales de un lenguaje de programación por Iván Cruz Un lenguaje de programación cuenta con una estructura y sintaxis que debe ser utilizada exactamente como se indique para

Más detalles

4. Operadores Operador asignación

4. Operadores Operador asignación Programación orientada a objetos con Java 43 4. Operadores Objetivos: a) Describir los operadores (aritméticos, incrementales, de relación, lógicos y de asignación) y los tipos de dato primitivos sobre

Más detalles

Introducción al lenguaje C

Introducción al lenguaje C Introducción al lenguaje C Ampliación de Informática Belarmino Pulido Junquera Índice 1. Presentación del lenguaje C 2. Estructura de un programa en C 3. Tipos de datos escalares 4. Operadores básicos

Más detalles

Programación En Lenguaje C

Programación En Lenguaje C Programación En Lenguaje C Introducción Básica para Primero de Bachillerato TECNOLOGÍA DE LA INFORMACIÓN IES PALAS ATENEA Lenguaje C Estructurado Secuencial De alto Nivel Altamente portable Necesita un

Más detalles

GLOSARIO 1. Qué es bit y byte? Bit: Es la unidad mínima de información. Puede ser 0 o 1. Byte: Es el conjunto de 8 bits. Ejemplo:

GLOSARIO 1. Qué es bit y byte? Bit: Es la unidad mínima de información. Puede ser 0 o 1. Byte: Es el conjunto de 8 bits. Ejemplo: Cuestionario Modulo 1.1 GLOSARIO 1. Qué es bit y byte? Bit: Es la unidad mínima de información. Puede ser 0 o 1. Byte: Es el conjunto de 8 bits. Ejemplo: 1001 0110. 2. qué es Dato? Definición: Es toda

Más detalles

Programación 1. Tema I. Conceptos y elementos básicos de Programación. Lección 2. Lenguaje de programación y ejecución de un programa

Programación 1. Tema I. Conceptos y elementos básicos de Programación. Lección 2. Lenguaje de programación y ejecución de un programa Programación 1 Tema I. Conceptos y elementos básicos de Programación Lección 2. Lenguaje de programación y ejecución de un programa 1 Léxico, sintaxis y semántica de un lenguaje #include #include

Más detalles

Este método de diseño de algoritmos en etapas, yendo de los conceptos generales a los de detalle, se conoce como método descendente (top-down).

Este método de diseño de algoritmos en etapas, yendo de los conceptos generales a los de detalle, se conoce como método descendente (top-down). PLANTEMAIENTO DEL PROBLEMA Identificación de entradas y salidas Un algoritmo puede ser definido como la secuencia ordenada de pasos, sin ambigüedades, que conducen a la resolución de un problema dado y

Más detalles

Expresiones Aritméticas. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz

Expresiones Aritméticas. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz Expresiones Aritméticas Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz Expresiones Aritméticas El computador puede realizar cálculos además de mostrar datos por pantalla.

Más detalles

Operadores y Expresiones

Operadores y Expresiones Operadores y Expresiones Los programas Java constan de datos, sentencias de programas y expresiones. Una expresión es normalmente, una ecuación matemática, tal como 3 * x + 5 * z. En esta expresión, los

Más detalles

Informática Ingeniería en Electrónica y Automática Industrial

Informática Ingeniería en Electrónica y Automática Industrial Características del lenguaje C (I) Informática Ingeniería en Electrónica y Automática Industrial Tuvo mucho éxito desde el principio por ser Compacto Estructurado Portátil Flexible De tipo medio Muy difundido

Más detalles

Programación estructurada (Introducción a lenguaje C)

Programación estructurada (Introducción a lenguaje C) Programación estructurada (Introducción a lenguaje C) M. en C. Sergio Luis Pérez Pérez UAM CUAJIMALPA, MÉXICO, D. F. Trimestre 15-I Sergio Luis Pérez (UAM CUAJIMALPA) Curso de programación estructurada

Más detalles

Tema 2: Desarrollo de Algoritmos. E.E. de Algorítmica

Tema 2: Desarrollo de Algoritmos. E.E. de Algorítmica Tema 2: Desarrollo de Algoritmos E.E. de Algorítmica Temas a tratar Identificadores Variables Constantes Tipos de Datos Separadores Operadores Aritméticos Unarios Relacionales y Condicionales Nivel de

Más detalles

Aprendiendo a programar Microcontroladores PIC en Lenguaje C con CCS

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º 4. Se dice que el lenguaje C es un lenguaje de nivel medio. La razón de esta indicación está

Más detalles

SSL Guia de Ejercicios

SSL Guia de Ejercicios 1 SSL Guia de Ejercicios INTRODUCCIÓN A LENGUAJES FORMALES 1. Dado el alfabeto = {a, b, c}, escriba las palabras del lenguaje L = {x / x }. 2. Cuál es la cardinalidad del lenguaje L = {, a, aa, aaa}? 3.

Más detalles

Ejemplo No. 2 Empleando esta notación, los conjuntos del ejemplo anterior se pueden escribir como:

Ejemplo No. 2 Empleando esta notación, los conjuntos del ejemplo anterior se pueden escribir como: UNIDAD 1: CONJUNTOS NUMÉRICOS En esta unidad se ofrece una información general sobre los diferentes conjuntos de números que se utilizaran en el desarrollo de este curso. Comencemos con un breve repaso

Más detalles

Desarrollo de lenguajes y Compiladores [MII-771] Capítulo 1: Lenguajes y Gramáticas Formales

Desarrollo de lenguajes y Compiladores [MII-771] Capítulo 1: Lenguajes y Gramáticas Formales Desarrollo de lenguajes y Compiladores [MII-771] Capítulo 1: Lenguajes y Gramáticas Formales Dr. Ricardo Soto [ricardo.soto@ucv.cl] [http://www.inf.ucv.cl/ rsoto] Escuela de Ingeniería Informática Pontificia

Más detalles

Java. Introducción a la Programación Orientada a Objetos

Java. Introducción a la Programación Orientada a Objetos Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código independiente de la arquitectura de la computadora

Más detalles

Conceptos básicos sobre gramáticas

Conceptos básicos sobre gramáticas Procesamiento de Lenguajes (PL) Curso 2014/2015 Conceptos básicos sobre gramáticas Gramáticas y lenguajes Gramáticas Dado un alfabeto Σ, un lenguaje es un conjunto (finito o infinito) de cadenas de símbolos

Más detalles

Tema 2. El lenguaje JAVA

Tema 2. El lenguaje JAVA Tema 2. El lenguaje JAVA Nomenclatura habitual Variables Tipos de variables Tipos primitivos Referencias Arrays Operadores Operadores de Java Precedencia de operadores Sentencias de control Sentencias

Más detalles

Una expresión es una combinación de uno o más operandos y operadores para obtener un resultado.

Una expresión es una combinación de uno o más operandos y operadores para obtener un resultado. 1.6. EXPRESIONES CONCEPTO: Una expresión es una combinación de uno o más operandos y operadores para obtener un resultado. Los operandos pueden ser constantes, variables, otras expresiones e incluso funciones.

Más detalles

Estructura de un programa en Java. Tipos de datos básicos. class miprimerprograma{ // comentario, no es parte del programa

Estructura de un programa en Java. Tipos de datos básicos. class miprimerprograma{ // comentario, no es parte del programa Contenido Estructura de un programa en Java... 2 Tipos de datos básicos... 2 Operadores... 3 Literales... 4 Entrada / Salida... 4 Sentencias condicionales... 5 Funciones... 5 Ejercicios... 6 Variables,

Más detalles

Fundamentos de Programación 2017-I

Fundamentos de Programación 2017-I Fundamentos de Programación 2017-I Fundamentos para la construcción de código a partir del algoritmo Objetivo: El alumno construirá programas utilizando el lenguaje de programación C a través de un análisis

Más detalles

Tipos de datos y Operadores Básicos

Tipos de datos y Operadores Básicos Módulo I: Conceptos Básicos Tema 1. Qué es un ordenador? Tema 2. Cómo se representan los datos en un ordenador? Tema 3. Qué es un lenguaje de programación? Tema 4. Cómo se hace un programa informático?

Más detalles

Datos y tipos de datos

Datos y tipos de datos Datos y tipos de datos Dato Representación formal de hechos, conceptos o instrucciones adecuada para su comunicación, interpretación y procesamiento por seres humanos o medios automáticos. Tipo de dato

Más detalles

Operadores. Java es un lenguaje rico en operadores, que son casi idénticos a los de C/C++.

Operadores. Java es un lenguaje rico en operadores, que son casi idénticos a los de C/C++. Operadores Java es un lenguaje rico en operadores, que son casi idénticos a los de C/C++. Operadores aritméticos Son operadores binarios (requieren siempre dos operandos) que realizan las operaciones aritméticas

Más detalles

No todos los LRs finitos se representan mejor con ERs. Observe el siguiente ejemplo:

No todos los LRs finitos se representan mejor con ERs. Observe el siguiente ejemplo: 1 Clase 3 SSL EXPRESIONES REGULARES Para REPRESENTAR a los Lenguajes Regulares. Se construyen utilizando los caracteres del alfabeto sobre el cual se define el lenguaje, el símbolo y operadores especiales.

Más detalles

Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales

Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales UNA / AREA TRANSDEPARTAMENTAL DE ARTES MULTIMEDIALES Licenciatura en Artes Multimediales Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales JavaScript Algoritmo

Más detalles

Un calculadora avanzada... y algo más!

Un calculadora avanzada... y algo más! INFORMÁTICA, GRUPO D Un calculadora avanzada... y algo más! Vamos a familiarizarnos con el entorno interactivo de Python. Vamos a construir expresiones aritméticas y a guardar los resultados en variables

Más detalles

Introducción al Lenguaje de Programación C

Introducción al Lenguaje de Programación C Introducción al Lenguaje de Programación C Andrés Arcia Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes Lenguaje de Programación C Fue diseñado

Más detalles

CAPITULO 2: VARIABLES Y CONSTANTES

CAPITULO 2: VARIABLES Y CONSTANTES CAPITULO 2: VARIABLES Y CONSTANTES 1. TIPOS DE DATOS. Existen cinco tipos de datos atómicos en C; char: carácter, int: entero, float: real coma flotante, double: real de doble precisión y void: sin valor.

Más detalles

Tipos de Datos. Tipos de Datos Simples Estándar

Tipos de Datos. Tipos de Datos Simples Estándar Departamento de Informática Universidad Técnica Federico Santa María Tipos de Datos Programación de Computadores Profesor: Teddy Alfaro Tipos de Datos Simples Estándar char es un carácter (alfanumérico),

Más detalles

Se pueden agrupar las reglas que tienen la misma parte izquierda:

Se pueden agrupar las reglas que tienen la misma parte izquierda: GRAMÁTICA DE CONTEXTO LIBRE Gramática de contexto libre G = (V N, V T, P, S) que genera oraciones copulativas: V N = { , , , , V T = {el, la, hombre, niña,

Más detalles

Componentes Básicos. InCo. InCo Componentes Básicos 1 / 28

Componentes Básicos. InCo. InCo Componentes Básicos 1 / 28 Componentes Básicos InCo InCo Componentes Básicos 1 / 28 Modelo de Computación Vemos al computador como un procesador de datos. +------------+ Entrada ===> Computador ===> Salida +------------+ InCo Componentes

Más detalles

AMBIENTES DE COMPILACION

AMBIENTES DE COMPILACION AMBIENTES DE COMPILACION Los compiladores a menudo producen como resultado del análisis semántico, una forma de representación intermedia del código fuente. Hoy en día, es cada vez más común que, en ambientes

Más detalles

Informática PRÀCTICA 3 Curs Práctica Nº 3: Tipos de datos simples. Constantes y variables. Operadores aritméticos. Formato de salida.

Informática PRÀCTICA 3 Curs Práctica Nº 3: Tipos de datos simples. Constantes y variables. Operadores aritméticos. Formato de salida. Práctica Nº 3: Tipos de datos simples. Constantes y variables. Operadores aritméticos. Formato de salida. Objetivos de la práctica: - Mostrar la sintaxis de los diferentes tipos de datos presentes en C/C++.

Más detalles

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código independiente de la arquitectura de la computadora

Más detalles

CONJUNTOS. Los conjuntos son conceptos primitivos que representan una totalidad, una reunión de cosas.

CONJUNTOS. Los conjuntos son conceptos primitivos que representan una totalidad, una reunión de cosas. CONJUNTOS CPR. JORGE JUAN Xuvia-Narón Los conjuntos son conceptos primitivos que representan una totalidad, una reunión de cosas. Un conjunto está formado por una serie de elementos susceptibles de poseer

Más detalles

Lenguaje de programación C. Introducción

Lenguaje de programación C. Introducción Lenguaje de programación C Introducción 1 Elementos del lenguaje C Colección de funciones Estas funciones contienen declaraciones, sentencias, expresiones y otros elementos que en conjunto indican a la

Más detalles

Introducción a c++ Introducción a la programación EIS Informática III

Introducción a c++ Introducción a la programación EIS Informática III Introducción a c++ Un lenguaje de programación es un lenguaje formal diseñado para realizar procesos que pueden ser llevados a cabo por máquinas como las computadoras. Pueden usarse para crear programas

Más detalles

INTRODUCCIÓN AL LENGUAJE C

INTRODUCCIÓN AL LENGUAJE C INTRODUCCIÓN AL LENGUAJE C Fundamentos de Informática EUP ULPGC Jose Torres 1 de 36 Historia de C Precursores: muchas ideas provienen de BCPL (Martin Richards, 1967) y de B (Ken Thompson, 1970) C fue diseñado

Más detalles

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta Centro Asociado Palma de Mallorca Introducción Práctica de Programación Java Antonio Rivero Cuesta Sesión II La Sintaxis de Java I... 6 Tipos de Datos... 7 Tipos de Datos Simples... 8 Tipos de datos Referenciales...

Más detalles