Asunto: Ejemplos de semántica en lenguaje C
Nombre: Miguel
Origen: Rep. Dominicana
Fecha: 30-08-2023
Pregunta o consulta del visitante:Quisiera saber algunos ejemplos de semántica en lenguaje c por favor
gracias
Respuesta de ALEGSA.com.ar:
La semántica en el lenguaje C se refiere al significado o interpretación de los programas escritos en este lenguaje.
Creo que la mejor forma más práctica de entender la diferencia entre la semántica y la sintaxis en un lenguaje de programación (en tu caso quieres que sea el lenguaje C) es definiendo los errores semánticos y los errores sintácticos.
-
Errores sintácticos: cuando existe código inválido que el compilador no entiende. Por ejemplo, intentas multiplicar una variable string (cadena) con un integer (entero) en C. El compilador lo detectará porque no puede compilarlo así. O cuando olvidas cerrar algún paréntesis o algún corchete, es un error sintáctico.
-
Errores semánticos: el código de programación es válido porque el compilador lo entiende, pero el programa resultante no hace lo que el programador quiere que haga. No hay forma de que el compilador detecte estos errores.
Los errores semánticos son "errores lógicos", la lógica detrás del código escrito no hace lo que el programador cree que hará.
Te daré varios errores semánticos en C:
// Sumar uno 1 a la variable X
x -= 1;
En este caso estamos restándole 1 a la variable X.
// Sumar 1 a la variable X
y += 1;
En este caso estamos sumándole 1 a la variable Y (no a X, que es la que necesitamos).
// Actualizar todos los elementos de A
for (size_t i=1; i
update(A[i]);
En este caso nos estamos olvidando de actualizar al arreglo A en su posición 0, es decir A[0], por lo que se trata de un error semántico.
Veamos un último ejemplo:
int CalcularArea( int ancho, int largo )
{
return ancho + largo;
}
En la función anterior, la sintaxis en C es correcta, pero hay un error semántico. En realidad para calcular el área del rectángulo se debería multiplicar en lugar de sumar.
Algunos ejemplos semánticos del lenguaje C
1. Declaración de variables: En C, es necesario declarar las variables antes de utilizarlas. La semántica asociada a esto es que la declaración reserva un espacio en la memoria para almacenar el valor de la variable y también define su tipo.
```c
int edad; // declaración de una variable "edad" de tipo entero
float altura; // declaración de una variable "altura" de tipo flotante
```
2. Asignación de valores: Una vez declaradas las variables, se pueden asignar valores a ellas. La semántica aquí es que el valor se almacena en el espacio reservado para la variable.
```c
edad = 25; // asignación del valor 25 a la variable "edad"
altura = 1.75; // asignación del valor 1.75 a la variable "altura"
```
3. Expresiones aritméticas: En C, se pueden realizar operaciones aritméticas con variables y constantes. La semántica aquí es que las operaciones se realizan siguiendo las reglas matemáticas estándar.
```c
int resultado;
resultado = edad + 5; // suma el valor de "edad" más 5 y lo asigna a "resultado"
```
4. Estructuras condicionales: Las estructuras condicionales, como `if` y `switch`, evalúan una expresión booleana y ejecutan diferentes bloques de código dependiendo del resultado. La semántica aquí es que se toma una decisión basada en el resultado de la expresión.
```c
if(edad >= 18) {
printf("Eres mayor de edad");
} else {
printf("Eres menor de edad");
}
```
5. Bucles: Los bucles, como `for` y `while`, permiten repetir un bloque de código múltiples veces. La semántica aquí es que el bloque se ejecuta repetidamente hasta que se cumple una condición específica.
```c
int i;
for(i = 0; i < 5; i++) {
printf("%d\n", i);
}
```
Estos son solo algunos ejemplos de la semántica en lenguaje C. La semántica en C es bastante amplia y abarca muchos otros aspectos del lenguaje.