sintaxis y semantica

Iniciado por m@o_614, 4 Noviembre 2014, 05:24 AM

0 Miembros y 1 Visitante están viendo este tema.

m@o_614

Saludos

Tengo una duda acerca de las diferencias entre un error sintactico y un error semántico. Por ejemplo si tengo una instrucción: if(4) yo sé que esto me generaría un error, pero no estoy seguro si este error se daría durante el análisis sintáctico o el semántico.

o en esta otra expresión:

(e-(b%4*3>2))

estuve buscando en algunas páginas en internet, y en una decía que  era por una expresión o parentesis no equilibrados, y los semanticos cuando un operador es aplicado a un operando incompatible. PERO NO SE EN CUAL CASO ENTRA ESTE!!

si alguien pudiera quitarme esta duda se lo agradecería mucho porque estoy haciendo un analizador sintactico y si no tengo claro cómo se manejan los errores no puedo avanzar

DarK_FirefoX

Cita de: m@o_614 en  4 Noviembre 2014, 05:24 AM
(e-(b%4*3>2))

¿Esta expresión que cosa es? ¿Te devuelve un valor boolean? o ¿simplemente un resultado?

La fase de análisis sintáctico viene dada por el reconocimiento de los elementos que forman la expresión, tal que la expresión tenga elementos en el orden adecuado, por otra parte el analisis semántico viene dado por el sentido que tenga la expresión, por ejemplo esto seria un error de semántico:

Código (csharp) [Seleccionar]
int x = "hola"; //asignación de un string a un tipo int

ivancea96

En el caso de C/C++, ese "if(4)" no sería un error sintáctico. Podría ser un error semántico, según el contexto, y podría no serlo.

Esa expresión que colocaste, de ser errónea, sería un error semántico.

m@o_614

muchas gracias ivancea96 y la otra expresión crees que también sea error semántico???

ivancea96

A eso me refería con la segunda parte del mensaje. Podría serlo o no, según lenguaje, contexto, etc.