Você está na página 1de 14

.1 Elementos de léxico y sintaxis.

2.1- Léxico

Conjunto de símbolos que se pueden usar en un lenguaje.

Estos símbolos o elementos básicos del lenguaje, podrán ser de los siguientes:

• Identificadores: nombres simbólicos que se darán a ciertos elementos de

programación (p.e. nombres de variables, tipos, módulos, etc.).

• Constantes: datos que no cambiarán su valor a lo largo del programa.

• Operadores: símbolos que representarán operaciones entre variables y

constantes.

• Instrucciones: símbolos especiales que representarán estructuras de

procesamiento, y de definición de elementos de programación.

• Comentarios: texto que se usará para documentar los programas

Sintaxis

Consta de unas definiciones, denominadas reglas sintácticas o producciones que

especifican la secuencia de símbolos que forman una frase del lenguaje. Estas reglas
dicen si una frase está bien escrita o no.

Las reglas sintácticas pueden contener dos tipos de elementos:

• Elementos Terminales (∈ Vocabulario)

• Elementos no Terminales, que son construcciones intermedias de la gramática.

Existen diversas formas de especificar las reglas, pero únicamente vamos a ver dos de

ellas:

• Notación BNF (Backus-Naur Form). Es de las primeras notaciones que se empezó a

utilizar para especificar lenguajes de programación.

Notación BNF: <elemento no terminal>::= Definición1 | Definición2 | ...

Los elementos terminales, o sea, que pertenecen al vocabulario, se escriben tal cual.

Los elementos no terminales se escriben entre los símbolos <>.

Ejemplo: Descripción sintáctica de una expresión matemática en notación BNF:

---> 4*(3+1)

<expresión> ::= <numero> | (<expresión>) | <expresión><operador><expresión>

<operador> ::= + | - | * | /

<numero> ::= <digito> | <numero><digito>

<digito> ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0

• Diagramas sintácticos. Es una representación gráfica de la sintaxis. Tiene la ventaja

de ser más intuitivo.

Los elementos terminales se inscriben en una elipse. Los elementos no terminales se

inscriben en un rectángulo.
VARIABLES Y CONSTANTES VARIABLES: En programación, las variables son espacios reservados en
la memoria que, como su nombre indica, pueden cambiar de contenido a lo largo de la ejecución de un
programa. Una variable corresponde a un área reservada en la memoria principal del ordenador pudiendo
ser de longitud:  Fija.- Cuando el tamaño de la misma no variará a lo largo de la ejecución del programa.
Todas las variables, sean del tipo que sean tienen longitud fija, salvo algunas excepciones — como las
colecciones de otras variables (arrays) o las cadenas.  Variable.- Cuando el tamaño de la misma puede
variar a lo largo de la ejecución. Típicamente colecciones de datos. Las variables se representan con
identificadores que hacen referencia a un lugar de la memoria del programa en donde se almacena un
dato. Una variable está asociada a un tipo de datos, el cual y en función del tamaño del mismo determina
la cantidad de bytes que serán necesarios para almacenar la variable. En el caso de colecciones y al
contrario que con el resto de tipo de datos, ya sean primitivos u objetos complejos, la memoria asignada
a almacenar tales variables no se conoce de antemano, lo cual lleva a establecer políticas de reserva de
memoria:  Reserva fija de memoria.- Implica predeterminar la cantidad de memoria que se asignará a
la colección. Es una política extremadamente rígida, ya que llegados al final de la zona de memoria no
se podrían almacenar nuevos elementos.  Reserva variable de memoria.- Se dedica una zona de
memoria, pudiendo ser de un tamaño predeterminado o no, y en caso de sobrepasarse dicha zona de
memoria se vuelve a asignar otra zona, contigua o no, para impedir la restricción mencionada arriba. 5
CLASIFICACIÓN DE VARIABLES: Por su contenido  Variables Numéricas: Son aquellas en las cuales
se almacenan valores numéricos, positivos o negativos, es decir almacenan números del 0 al 9, signos
(+ y -) y el punto decimal. Ejemplo: iva = 0.15 pi = 3.1416 costo = 2500  Variables Lógicas: Son aquellas
que solo pueden tener dos valores (cierto o falso) estos representan el resultado de una comparación
entre otros datos.  Variables Alfanuméricas: Está formada por caracteres alfanuméricos (letras,
números y caracteres especiales). Ejemplo: letra = ’ a’ apellido = ’ lopez’ direccion = ’ Av. Libertad #190’
Por su uso  Variables de Trabajo: Variables que reciben el resultado de una operación matemática
completa y que se usan normalmente dentro de un programa. Ejemplo: Suma = a + b /c  Contadores:
Se utilizan para llevar el control del número de ocasiones en que se realiza una operación o se cumple
una condición. Con los incrementos generalmente de uno en uno.  Acumuladores: Forma que toma
una variable y que sirve para llevar la suma acumulativa de una serie de valores que se van leyendo o
calculando progresivamente. CONSTANTE: En programación, una constante es un valor que no puede
ser alterado durante la ejecución de un programa. Una constante corresponde a una longitud fija de un
área reservada en la memoria principal del ordenador, donde el programa almacena valores fijos. Por
ejemplo:  El valor de pi = 3.1416 Por conveniencia, el nombre de las constantes suele escribirse en
mayúsculas en la mayoría de lenguajes.
2.3 Tipos de datos fundamentales

Tipo de dato informático es un atributo de una parte de los datos que indica al ordenador (y/o al programador)
va a procesar. Esto incluye imponer restricciones en los datos, como qué valores pueden tomar y qué op
comunes son: enteros, números de coma flotante (decimales), cadenas alfanuméricas, fechas, horas,
ocurra. Por ejemplo, en el tipo "int" representa un conjunto de enteros de 32 bits cuyo rango va desde el -
operaciones que se pueden realizar con los enteros, como la suma, resta y multiplicación. Los colores, p
denotando la cantidad de rojo, verde y azul, y una cadena de caracteres representando el nombre del
adición y sustracción, pero no la multiplicación.

Éste es un concepto propio de la informática, más específicamente de los lenguajes de programación, au


nociones similares de las matemáticas y la lógica.

En un sentido amplio, un tipo de datos define un conjunto de valores y las operaciones sobre estos valore
explícitamente incluyen la notación del tipo de datos, aunque lenguajes diferentes pueden usar terminolo
de programación permiten al programador definir tipos de datos adicionales, normalmente combinando m
las operaciones del nuevo tipo de dato. Por ejemplo, un programador puede crear un nuevo tipo de dato
interpretado como Persona incluirá un nombre y una fecha de nacimiento.

Un tipo de dato puede ser también visto como una limitación impuesta en la interpretación de los datos e
representación, interpretación y la estructura de los valores u objetos almacenados en la memoria del ord

Tipos:

.Los tipos de datos hacen referencia al tipo de información que se trabaja, donde la unidad mínima de al
considerar como el rango de valores que puede tomar una variable durante la ejecución del programa.

Datos de maquina. todos los datos en los ordenadores basados en la electrónica digital se representan com
más pequeña unidad direccionable de datos es un grupo de bits llamado un byte (normalmente un octeto
instrucciones del código maquina se le llama una palabra (en 2006, normalmente 32 o 64 bits).

Datos primitivos.
Carácter. es un digito individual el cual se puede representar como numéricos (0 al 9), letras (a-z) y símbolo
Unicode permite trabajar con todos los caracteres de distintos idiomas.

Numérico. Este tipo de dato puede ser real o entero, dependiendo del tipo de dato que se vaya a utilizar.

Enteros: son los valores que no tienen punto decimal, pueden ser positivos o negativos y el cero.

Lógicos. Este tipo de dato se emplea para valores lógicos, los podemos definir como datos comparativos dich

Datos simples.

Tipo ordinal

Tipos predefinidos

Tipo de dato entero

Tipo de dato carácter

Tipo de dato lógico

Tipos definidos por el usuario

Tipo de dato enumerado

Tipo de dato subrango

Datos compuestos.

Datos abstractos. La abstracción de datos consiste en ocultar las características de un objeto y obviarlas, de
del objeto en nuestro programa. es un concepto muy útil en la programación, ya que un usuario no n
funciones de un objeto cada vez que éste se utiliza .

Datos de puntero y referencia. Un puntero o apuntador es una variable que referencia una región de memoria
es una dirección de memoria. Si se tiene una variable ' p ' de tipo puntero que contiene una dirección de
un valor ' v ' se dice que ' p ' apunta a ' v '. El programador utilizará punteros para guardar datos en memo

Datos algebraicos.En matemáticas discretas es usual introducir definiciones de estructuras recursivas dando lo
indicando que ninguna otra cosa forma parte de lo definido.
2.4 Operadores de precedencia

La precedencia de operadores es un conjunto de reglas de JScript que controla el orden en que el


compilador realiza las operaciones cuando se evalúa una expresión. Las operaciones con mayor
precedencia se realizan antes que las de menor prioridad. Por ejemplo, la multiplicación se realiza
antes que la suma.

Una expresión está compuesta por operadores, variables y constantes. Para simplificar, podemos pensar
que la forma en la que C evalúa esta expresión es dividiendo el todo en subexpresiones. Las reglas
que definen que subexpresión evaluar primero, se denominan reglas de precedencia. Aunque
siempre podemos alterar dichas reglas mediante la utilización de paréntesis.
2.5 Construcción de expresiones.

Una expresion es una secuencia de operaciones y operandos que especifica

un calculo

una expresion tal como

3*4+5

La computadora realiza primero la multiplicacion por tener el operador *

prioridad mas alta y luego la suma, por tanto produce 17. para forzar una

orden en las operaciones, se deben utilizar paréntesis

3*(4+5)

Produce 27, ya que 4 + 5 se realiza en primer lugar.

Una expresión es una combinación de operandos y operadores. Los operandos pueden ser:

Constantes literales o con nombre

Variables

Otras expresiones
Lo que se hace con una expresión es evaluarla para que devuelva un valor.

Tipos de expresiones:

Dentro de las expresiones distinguimos dos clases según el tipo de datos que devuelven al evaluarlas:

Aritméticas: las que devuelven un valor numérico

Lógicas: las que devuelven true o false

Las expresiones se utilizan fundamentalmente en las asignaciones y en las partes condicionales de las
sentencias if, while y repeat.
2.6 Sentencias y bloques de sentencias de programa

Una sentencia es una expresión seguida de un punto y coma.

Sentencia=instrucción=expresión.

Las sentencias se ejecutan una tras otra, en el mismo orden en que han sido escritas. Para cambiar
ese orden están las sentencias de control de flujo. Estas pueden ser en dos categorías, estructuras de
selección o estructura de repetición.

Sentencias compuestas.

Una sentencias compuesta o bloque es un grupo de sentencias agrupadas entre llaves {y}. Estas son
sintácticamente equivalentes a una sentencia simple. Presentan la siguiente sintaxis.

{ /* Comienzo del bloque */

<Directivas> /* (#include, #define, etc.) */

<Declaraciones> /* declaraciones de variables locales */

<Sentencias> /* conjunto opcional de sentencias */

} /* Final del bloque */

Las sentencias especifican y controlan el flujo de ejecución del programa. Si no existen sentencias
específicas de selección o salto, el programa se ejecuta de forma secuencial en el mismo orden en que
se ha escrito el código fuente.
En C++ el concepto de bloque de sentencias se utiliza para agrupar un conjunto de sentencias dentro
de un ámbito concreto dentro del programa. Un bloque de sentencias es un conjunto de instrucciones
englobadas bajo llaves { }. Como al principio se menciono.

Sentencia if
La sentencia if elige entre varias alternativas en base al valor de una o más expresiones booleanas.
Sintaxis:
if( <expresión booleana>)
<bloque a ejecutar cuando la expresión es verdadera>
else
<bloque a ejecutar cuando la expresión es falsa>
La sentencia else es opcional, puede utilizarse o no. En el caso de no utilizarlo, cuando la expresión
evaluada sea falsa la ejecución continuará con la sentencia inmediatamente posterior al if.

Sentencia For
La sentencia for se usará para definir un ciclo en el que una variable se incrementa de manera constante
en cada iteración y la finalización del ciclo se determina mediante una expresión constante. Como
contador en for se utilizarán preferiblemente variables de un solo carácter como i, j, k, declarándolas
dentro del mismo ciclo.
Su formato general es:
for (inicialización; condición; incremento)
{instrucción(es);};
Sentencias While y do While
Al comenzar un ciclo while o do...while la expresión de control debe tener un valor claramente definido,
para impedir posibles indeterminaciones o errores de funcionamiento.
La sentencia while se usará para definir un ciclo en el que la condición de terminación se evalúa al
principio del mismo.
Su formato general es :
cargar o inicializar variable de condición;
while(condición)

Sentencia switch: Es una sentencia de selección múltiple, que compara sucesivamente el valor de una
expresión con una lista de constantes enteras o de caracteres. Cuando se encuentra una16-
correspondencia, se ejecutan las sentencias asociadas con la constante.

Sentencias de iteración:

También denominadas bucles. Permiten realizar un conjunto de instrucciones hasta que se alcance una
cierta condición (que puede estar predefinida como en el bucle for; o no haber final predeterminado,
como en los bucles while y do-while). FOR

El formato general es:for (inicialización; condición; incremento) sentencia; La inicialización normalmente


es una sentencia de asignación que se utiliza para iniciar la variable de control del bucle.

La condición es una expresión relacional que determina cuando finaliza el bucle. El incremento define
como cambia la variable de control cada vez que se repite el bucle.
Estas tres secciones principales deben ser separadas por punto y coma (";"). El bulce for continua
ejecutándose mientras que la condición sea cierta. Una vez que la condición es falsa, la ejecución del
programa sigue por la sentencia siguiente al for. Su forma general es:while (condición) sentencia.

Sentencias de salto

C tiene cuatro sentencias que llevan a cabo un salto incondicional (además de goto, pero su uso no
está bien visto por sus programadores): return, break, exit() y continue. goto, pero su uso no está bien
visto por sus programadores): return, break, exit() y continue.

RETURN: Se usa para volver de una función.

BREAK: Tiene dos usos: para finalizar un case en una sentencia switch y para forzar la terminación
inmediata de un bucle, saltando la evaluación condicional normal del ciclo.

Diferentes tipos de sentencias.

Sentencia continue.

Sentencia break.

Sentencia do…while.

Sentencia while.

Sentencia for.
2.7 Funciones básicas de entrada y salida.

Las instrucciones básicas de entrada salida son printf y scanf, las cuales permiten respectivamente enviar
(print, imprimir) o recibir (scan, leer) información.

printf

La función printf permite escribir en la salida estándar (monitor), proporcionando un formato específico
para los datos a escribir.

Esta función recibe una cantidad variable de argumentos, en los que solo uno de ellos es obligatorio: la
cadena de formato. Este parámetro es una cadena que permite indicar el formato que tendrá la impresión
que se quiere realizar, y en base a la cual se determina la cantidad y tipo de los parámetros restantes.

Dicha cadena puede contenter caracteres comunes y corrientes, los cuales se mostrarán en pantalla
exactamente como se encuentran en la cadena, y un segundo tipo de caracteres conocidos como
especificadores de formato, los cuales están formados por un símbolo de porcentaje (%) y un código de
formato.

scanf

La función scanf permite leer desde la entrada estándar, proporcionando un formato específico para los
datos a recibir. De forma análoga a la función printf, esta función permite reconocer los tipos de datos
especificados por el estándar ANSI de C tales como números, caracteres y cadenas.

Los argumentos recibidos por la función scanf son similares a los de la función printf, siendo de nuevo el
primero de ellos la cadena de formato. Sin embargo en este caso la cadena de formato es utilizada para
especificar una "plantilla" que deberá ser completada con la entrada proporcionada por el usuario.

En este caso, por cada especificador de formato que se encuentre en la cadena será necesario
proporcionar un apuntador a la dirección de memoria en la que será almacenado el elemento reconocido.
Los especificadores de formato compatibles con la función scanf son los mismos que para printf.

Salida:
printf (“comentario %cadenas_de_control", variables);
cprintf () = que es igual al printf, solo que configura o aplica los colores para la consola.
Puts (variable)
etc....
entrada:
variable = getch(); lee del teclado un caracter
variable = getche(); igual que el anterior, solo que lo muestra en la pantalla
variable = getchar(); igual que getche.
gets(variable); lee del teclado una cadena y la carga en una variable.
scanf( "comentario %cadena_de_control", variable ); lee del teclado y carga en la variable poniendo un
comentario.
etc...

Você também pode gostar