Foro de elhacker.net

Foros Generales => Dudas Generales => Mensaje iniciado por: m@o_614 en 4 Noviembre 2014, 05:24 am



Título: sintaxis y semantica
Publicado por: m@o_614 en 4 Noviembre 2014, 05:24 am
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


Título: Re: sintaxis y semantica
Publicado por: DarK_FirefoX en 4 Noviembre 2014, 05:46 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
  1. int x = "hola"; //asignación de un string a un tipo int


Título: Re: sintaxis y semantica
Publicado por: ivancea96 en 4 Noviembre 2014, 12:26 pm
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.


Título: Re: sintaxis y semantica
Publicado por: m@o_614 en 4 Noviembre 2014, 20:24 pm
muchas gracias ivancea96 y la otra expresión crees que también sea error semántico???


Título: Re:
Publicado por: ivancea96 en 5 Noviembre 2014, 11:53 am
A eso me refería con la segunda parte del mensaje. Podría serlo o no, según lenguaje, contexto, etc.