Está en la página 1de 25

Sintaxis de Programación

Un programa en cualquier lenguaje se puede concebir como un


string (cadena) de caracteres escogidos de algún conjunto o
alfabeto de caracteres.

Las reglas que determinan si un string es un programa válido o no,


constituyen la sintaxis de un lenguaje de programación.

SEMANTICA
Las reglas que determina el significado de los programas
constituyen la semántica de los lenguajes de programación. Es
más difícil de especificar que la sintaxis.

Los siguientes son algunos enfoques para especificar la semántica


de los lenguajes:
Semántica Interpretativa (u Operacional)
Un lenguaje de máquina tiene su semántica definida por el
procesador. Un programa en lenguaje de máquina "significa"
exactamente lo que el procesador hace cuando el programa se
ejecuta. Sin embargo, con un lenguaje de alto nivel no se puede
dejar que el procesador defina la semántica del lenguaje, puesto
que no es posible "correr programas y ver" hasta que se tenga un
compilador. No se puede tener un compilador y saber qué es
correcto hasta haber definido lo que los programas significan.

Este enfoque interpretativo de la semántica de los lenguajes de


programación consiste en definir el significado de la sintaxis en los
programas implementados por máquinas abstractas que se
caracterizan por el estado consistente de todos los objetos, valores,
e instrucciones de un programa.
Traducción
La traducción de un lenguaje ensamblador a lenguaje de máquina
(que es directa y comprensible), forma una especificación
semántica muy usada para los lenguajes de bajo nivel. El
compilador para un lenguaje de alto nivel sobre una máquina
específica llega a ser la definición semántica del lenguaje.

Definición Axiomática
Se pueden definir reglas que relacionan los datos antes y después
de la ejecución de cada programa. Estas reglas se pueden usar
para proveer teoremas acerca de la relación E/S de un programa.
Este enfoque tiene la ventaja que puede usarse para definir
semánticas para una parte más que para todos los aspectos de un
lenguaje.
LA ESTRUCTURA JERARQUICA DE LOS LENGUAJES DE
PROGRAMACIÓN
Un lenguaje de programación es una notación para especificar una
secuencia de operaciones a realizar sobre objetos datos. Estos se
pueden agrupar en una jerarquía de árbol, cuyas unidades son
comunes y familiares a la mayoría de los lenguajes.

En el tope de la jerarquía está el programa propiamente tal, que es


la unidad de ejecución básica. Luego viene una entidad que puede
ser compilada, y que se compone de sentencias y expresiones.

Un lenguaje de programación es un medio para comunicar


algoritmos al computador. Debe proveer aspectos para el diseño
modular contemplando operadores, estructura de datos, flujo de
control, etc.
La Naturalidad de la programación debe tener la facilidad de poder
expresar un algoritmo en un lenguaje (sentencias estructuradas).

La Portabilidad de la programación debe posibilitar la ejecución de


programas en una variedad de máquinas

La eficiencia de uso considerará aspectos del lenguaje como de los


programas (compilación eficiente). Un compilador también puede
ayudar a producir programas confiables. Por ejemplo, un
compilador puede verificar si los tipos de operandos son
compatibles; puede advertir al usuario sobre el uso de una variable
antes de ser definida, o si una referencia a un arreglo puede estar
fuera de los límites.
Elementos sintácticos del lenguaje de programación C++
La sintaxis de C++ es una extensión de la sintaxis del lenguaje C,
al que se han añadido numerosas propiedades, fundamentalmente
orientada a objetos. Entonces podemos decir que la migración de
C a C++ no suele ser complicada.

Un programa en C++ es una secuencia de caracteres que se


agrupan en componentes léxicos que comprenden el vocabulario
básico del lenguaje. Estos componentes léxicos suelen ser:
palabras reservadas, identificadores, constantes, constantes de
cadena, operadores y signos de puntuación.
Caracteres
Los caracteres que se pueden utilizar para construir elementos del
lenguaje (componentes léxicos o tokens) son:

abcdefghi jklmnopqrstuvwxyz
ABCDEFCHIJKLMNOPQRSTUVWXYZ
0123456789
caracteres espacio (blancos y tabulaciones)

Comentarios
C++ soporta dos tipos de comentarios.

/* Comentario estilo C */
//... se utiliza, sólo, para comentarios de una línea se anidan.
Identificadores
Los identificadores (nombres de variables, constantes,...) deben
comenzar con una letra del alfabeto (mayúscula o minúscula) o con
un carácter subrayado, y pueden tener uno o más caracteres. Los
caracteres segundo y posteriores pueden ser: letras, dígitos o un
subrayado, no permitiéndose caracteres no alfanuméricos ni
espacios.
Producto // valido
Y345 // valido
multi_palabra // valido
var45 // valido
45var // no valido

C++ es sensible a las mayúsculas.


Pago_mes es un identificador distinto a pago_mes
Palabras reservadas
Las palabras reservadas o claves no se deben utilizar como
identificadores, debido a su significado estricto en C++; tampoco se
deben redefinir.
Los diferentes compiladores comerciales de C++ pueden incluir
algunas nuevas palabras reservadas.

En las siguientes Tablas se enumeran las diversas palabras


reservadas del C++.
Tipos de datos
Los tipos de datos simples en C++ se dividen en dos grandes
grupos: integrales (datos enteros) y de coma flotante (datos reales).
Constantes
C++ contiene constantes para cada tipo de dato simple (integer,
char,...). Las constantes pueden tener dos sufijos, u, l y f. Que
indican tipos unsigned, long y float, respectivamente. Así mismo, se
pueden añadir los prefijos O y Ox, que representan constantes
octales y hexadecimales.

Las cadenas de caracteres se encierran entre comillas, y las


constantes de un solo carácter se encierran entre comillas simples.
Declaración de constantes
En C++, los identificadores de variables/constantes se pueden
declarar constantes, significando que su valor no se puede
modificar. Esta declaración se realiza con la palabra reservada
const.

El modificador de tipos const se utiliza en C++, también para


proporcionar protección de sólo lectura para variables y parámetros
de funciones. Las funciones miembro de una clase que no
modifican los miembros dato a que acceden pueden ser declarados
const.
Este modificador evita también que parámetros por referencia sean
modificados.
Declaración de variables
En ANSI C, todas las declaraciones de variables y funciones se
deben hacer al principio del programa o función. Si se necesitan
declaraciones adicionales, el programador debe volver al bloque de
declaraciones al objeto de hacer los ajustes o inserciones
necesarios. Todas las declaraciones deben hacerse antes de que
se ejecute cualquier sentencia. Así, la declaración típica en C++
debe tener la siguiente estructura:
NombreTipo Nombrevariablel1, Nombrevariable2;
que proporciona declaraciones tales como:
int saldo, meses;
double clipper, salario;
int mes =4, dia, anio=1995;
doble salario = 45.675;
En C++, las declaraciones de variables se pueden situar en
cualquier parte de un programa.
En C++, las declaraciones de variables se pueden situar en
cualquier parte de un programa. Esta característica hace que el
programador declare sus variables en la proximidad del lugar
donde se utilizan las sentencias de su programa. El siguiente
programa es valido en C++ pero no en C: