StudyFiWiki
WikiAplicación web
StudyFi

Materiales de estudio con IA para todos los estudiantes. Resúmenes, tarjetas, tests, podcasts y mapas mentales.

Materiales de estudio

  • Wiki
  • Aplicación web
  • Registro gratis
  • Sobre StudyFi

Legal

  • Términos del servicio
  • RGPD
  • Contacto
Descargar en
App Store
Descargar en
Google Play
© 2026 StudyFi s.r.o.Creado con IA para estudiantes
Wiki💻 Ciencias de la ComputaciónSintaxis y Semántica de LenguajesResumen

Resumen de Sintaxis y Semántica de Lenguajes

Sintaxis y Semántica de Lenguajes: Guía Completa para Estudiantes

ResumenTest de conocimientosTarjetasPodcastMapa mental

Introducción

Los lenguajes de programación son herramientas formales que permiten expresar algoritmos y estructuras de datos para que una máquina (o un intérprete/compilador) ejecute instrucciones. En este material repasaremos conceptos prácticos sobre léxico, sintaxis y semántica en programas escritos en C (y ejemplos generales), cómo analizar fragmentos de código y cómo interpretar expresiones y tokens. El enfoque es aplicado: aprenderá a detectar errores léxicos, sintácticos y semánticos, contabilizar tokens y razonar sobre expresiones complejas.

Definición: Un lenguaje de programación es un conjunto de reglas léxicas, sintácticas y semánticas que permiten especificar computaciones de forma precisa.

1. Niveles de análisis de un fragmento de código

Se distinguen tres etapas principales cuando se examina código fuente:

1.1 Análisis léxico

  • Objetivo: segmentar el texto en lexemas (tokens) y reconocer categorías: identificadores, palabras clave, literales, operadores, separadores.
  • Errores típicos: símbolos no permitidos, identificadores con caracteres inválidos, literales mal formados.

Definición: El análisis léxico transforma una secuencia de caracteres en una secuencia de tokens con categoría y lexema.

Ejemplo práctico: en el fragmento "a = c_[2];" los tokens son: identificador a, operador =, identificador c_, separador [, literal numérico 2, separador ], separador ;.

1.2 Análisis sintáctico

  • Objetivo: verificar que la secuencia de tokens se ajuste a la gramática del lenguaje (producciones). Comprueba la estructura: declaraciones, expresiones, sentencias compuestas, etc.
  • Errores típicos: falta de ;, uso inválido de bloques donde no corresponde, estructuras mal anidadas.

Definición: La sintaxis define la estructura jerárquica válida de las construcciones del lenguaje.

Ejemplo práctico: la sentencia return {a+1}; es léxicamente válida (tokens reconocibles) pero sintácticamente incorrecta en C estándar: la producción de return acepta opcionalmente una expresión, no un bloque compuesto { ... } como expresión.

1.3 Análisis semántico

  • Objetivo: comprobar significados: tipos compatibles, existencia de identificadores, reglas del ámbito, inicializaciones válidas.
  • Errores típicos: uso de variables no declaradas, incompatibilidades de tipo, redeclaraciones en el mismo ámbito.

Definición: El análisis semántico valida el significado y las restricciones del programa, más allá de la forma.

Ejemplo práctico: si en un bloque aparece int b; int b = 3; hay una redeclaración (error semántico). Acceder a c_ sin declararla es error semántico.

2. Contar tokens y lexemas

  • Cada palabra clave, identificador, literal, operador y separador cuenta como token.
  • Para fragmentos reales, sumar tokens de cada línea.

Ejemplo rápido: fragmento corto: int b = .7E2, _c[3]={-1,2.0,5,4}; contiene tokens: int, b, =, .7E2, ,, _c, [, 3, ], =, {, -1, ,, 2.0, ,, 5, ,, 4, }, ; (20 tokens aproximadamente, según reglas precisas del analizador).

3. Cómo diagnosticar errores en un fragmento (pasos prácticos)

  1. Realice el escaneo léxico: liste tokens en orden.
  2. Compruebe la sintaxis: intente derivar la estructura con las producciones (declaración, expresión, sentencia).
  3. Verifique semántica: símbolos declarados, tipos y restricciones del lenguaje estándar.
  4. Anote si alguna observación procede de extensiones del compilador (no estándar).

Lista de verificación rápida:

  • ¿Hay símbolos desconocidos? -> error léxico
  • ¿Las sentencias respetan producciones (p. ej. return expr ;)? -> error sintáctico
  • ¿Variables usadas están declaradas y no redeclaradas? -> error semántico

4. Evaluación de expresiones en C: prioridad y asociatividad

  • La evaluación de una expresión sigue precedencia (prioridad) y asociatividad propias de cada operador.
  • Para comparar o simplificar expresiones debe resolverse primero según la jerarquía, luego según asociativida
Zaregistruj se pro celé shrnutí
TarjetasTest de conocimientosResumenPodcastMapa mental
Empezar gratis

¿Ya tienes cuenta? Iniciar sesión

Lenguajes de programación - Conceptos clave

Klíčové pojmy: Diferenciar análisis léxico, sintáctico y semántico, Contar tokens enumera palabras clave, identificadores, literales, operadores y separadores, En C, `return` acepta `expression` o nada, no un bloque `{...}`, Redefinir una variable en el mismo ámbito es error semántico, Identificadores deben declararse antes de usarse, Octal inicia con 0, hexadecimal con 0x/0X, decimal sin prefijo, Operadores lógicos `&&` y `||` realizan evaluación parcial (short-circuit), Evitar extensiones del compilador para mantener portabilidad, Resolver expresiones según prioridad y asociatividad, Enumerar tokens antes de intentar la sintaxis

## Introducción Los lenguajes de programación son herramientas formales que permiten expresar algoritmos y estructuras de datos para que una máquina (o un intérprete/compilador) ejecute instrucciones. En este material repasaremos conceptos prácticos sobre léxico, sintaxis y semántica en programas escritos en C (y ejemplos generales), cómo analizar fragmentos de código y cómo interpretar expresiones y tokens. El enfoque es aplicado: aprenderá a detectar errores léxicos, sintácticos y semánticos, contabilizar tokens y razonar sobre expresiones complejas. > Definición: Un lenguaje de programación es un conjunto de reglas léxicas, sintácticas y semánticas que permiten especificar computaciones de forma precisa. ## 1. Niveles de análisis de un fragmento de código Se distinguen tres etapas principales cuando se examina código fuente: ### 1.1 Análisis léxico - Objetivo: segmentar el texto en lexemas (tokens) y reconocer categorías: identificadores, palabras clave, literales, operadores, separadores. - Errores típicos: símbolos no permitidos, identificadores con caracteres inválidos, literales mal formados. > Definición: El análisis léxico transforma una secuencia de caracteres en una secuencia de tokens con categoría y lexema. Ejemplo práctico: en el fragmento "a = c_[2];" los tokens son: identificador `a`, operador `=`, identificador `c_`, separador `[`, literal numérico `2`, separador `]`, separador `;`. ### 1.2 Análisis sintáctico - Objetivo: verificar que la secuencia de tokens se ajuste a la gramática del lenguaje (producciones). Comprueba la estructura: declaraciones, expresiones, sentencias compuestas, etc. - Errores típicos: falta de `;`, uso inválido de bloques donde no corresponde, estructuras mal anidadas. > Definición: La sintaxis define la estructura jerárquica válida de las construcciones del lenguaje. Ejemplo práctico: la sentencia `return {a+1};` es léxicamente válida (tokens reconocibles) pero sintácticamente incorrecta en C estándar: la producción de `return` acepta opcionalmente una expresión, no un bloque compuesto `{ ... }` como expresión. ### 1.3 Análisis semántico - Objetivo: comprobar significados: tipos compatibles, existencia de identificadores, reglas del ámbito, inicializaciones válidas. - Errores típicos: uso de variables no declaradas, incompatibilidades de tipo, redeclaraciones en el mismo ámbito. > Definición: El análisis semántico valida el significado y las restricciones del programa, más allá de la forma. Ejemplo práctico: si en un bloque aparece `int b; int b = 3;` hay una redeclaración (error semántico). Acceder a `c_` sin declararla es error semántico. ## 2. Contar tokens y lexemas - Cada palabra clave, identificador, literal, operador y separador cuenta como token. - Para fragmentos reales, sumar tokens de cada línea. Ejemplo rápido: fragmento corto: `int b = .7E2, _c[3]={-1,2.0,5,4};` contiene tokens: `int`, `b`, `=`, `.7E2`, `,`, `_c`, `[`, `3`, `]`, `=`, `{`, `-1`, `,`, `2.0`, `,`, `5`, `,`, `4`, `}`, `;` (20 tokens aproximadamente, según reglas precisas del analizador). ## 3. Cómo diagnosticar errores en un fragmento (pasos prácticos) 1. Realice el escaneo léxico: liste tokens en orden. 2. Compruebe la sintaxis: intente derivar la estructura con las producciones (declaración, expresión, sentencia). 3. Verifique semántica: símbolos declarados, tipos y restricciones del lenguaje estándar. 4. Anote si alguna observación procede de extensiones del compilador (no estándar). Lista de verificación rápida: - ¿Hay símbolos desconocidos? -> error léxico - ¿Las sentencias respetan producciones (p. ej. `return expr ;`)? -> error sintáctico - ¿Variables usadas están declaradas y no redeclaradas? -> error semántico ## 4. Evaluación de expresiones en C: prioridad y asociatividad - La evaluación de una expresión sigue precedencia (prioridad) y asociatividad propias de cada operador. - Para comparar o simplificar expresiones debe resolverse primero según la jerarquía, luego según asociativida

Otros materiales

ResumenTest de conocimientosTarjetasPodcastMapa mental
← Volver al tema