UTNianos

Versión completa: Duda Final SSL .
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Páginas: 1 2
porqué a+++++b; pertenece a la categoría léxica de una sentencia?
este ejercicio estaba en el primer final de junio de este año!
sí alguien me puede ayudar se agradece, también plateen dudas para ayudarnos ya que tenemos una semanita más, por suerte, je!
Porque termina con el ;
Para ser mas preciso es una sentencia expresión.
Recordá la sintaxis de "expresión" que se define como una secuencia de operandos y operadores más el posible uso de paréntesis.
A su vez, la "sentencia expresión" es una expresión que termina con ;
Ahora entendí, muchas gracias maestro! Otra duda del siguiente ejercicio:

Sea, en ANSI C, la declaración int a,b,c; y sea la expresión a < b < c.

¿es sintacticamente correcta para el programador? rta: no
¿es semanticamente correcta para el programador? rta: no
¿es sintacticamente correcta para el compilador? rta: si
¿es semanticamente correcta para el compilador? rta: si

las respuestas las saque del final; cual es la diferencia de que sea semanticamente correcta o sintacticamente correcta para el programador o para el compilador? no se darme cuenta la diferencia....
(14-12-2010 13:15)AGUSTIN27 escribió: [ -> ]Otra duda del siguiente ejercicio:

Sea, en ANSI C, la declaración int a,b,c; y sea la expresión a < b < c.

¿es sintacticamente correcta para el programador? rta: no
Ponete a pensar: Vos como programador, querés saber si el valor de b está entre a y c, te parece que la expresión a<b<c es correcta? NO.
Te dejo a vos que pienses una manera de escribir eso sintácticamente correcto.

Cita:¿es semanticamente correcta para el programador? rta: no
Si ya no es sintácticamente correcta, menos lo será semánticamente, no te parece?
Pensá una cosa: qué "produciría" a<b<c ?
Es lo que el programador desea? No.
Si te cuesta verlo, dale valores a a, b y c y fijate.

Cita:¿es sintacticamente correcta para el compilador? rta: si
Hay errores de sintaxis en la declaración y en la expresión?
O mejor dicho: El parser encuentra, algún error sintáctico? NO.

Cita:¿es semanticamente correcta para el compilador? rta: si
De la misma manera: El compilador observa algún error semántico?, NO!
Si te cuesta verlo pensá: La construcción es legal? LAs variables están definidas? Son tipos correctos?

Espero se te aclares un poco las dudas, sino consultame.
Saludos,
Yo tengo una duda:


porque en el libro habla de
"derivable de una BNF"
y "sintacticamente correcta"

y a su vez esta
"sintacticamente correcta para el programador/compilador"
y "semanticamente correcta para el programador/compilador"

cual es la dif entre "derivable de una BNF" y "sintacticamente correcta" ?
y a su vez, este "sintacticamente correcta", es el mismo que el de "programador/compilador" ?
me re marea esta materia del..
"Derivable de una BNF" = "Sintácticamente correcto para el compilador"

Para que quede mas claro, volvemos al ejemplo de

"Sea, en ANSI C, la declaración int a,b,c; y sea la expresión a < b < c"

Entendés porqué:
A- No es sintácticamente correcta para el programador,

Spoiler: Mostrar
Porque no es la manera correcta para el programador de calcular que el valor de b está entre a y c.
Como se haría en tal caso???
.
.
.
.
.
.
a<b&&b<c

B- lo es para el compilador?

Spoiler: Mostrar
Porque es derivable de una BNF!
Cita:"Derivable de una BNF" = "Sintácticamente correcto para el compilador"

en el libro 1 habla de

Cita:debemos diferenciar 2 conceptos importantes:
"derivable de una BNF y Sintacticamente correcto"
supongo que en el libro 1 es desde el usuario, osea para el programador..
y la dif de eso con semanticamente correcto ? en cual juegan las "restricciones" del idioma natural a la BNF?
mai god, estoy mas perdido.. xD


y ahi cual seria la diferencia ?
(16-12-2010 23:49)gonnza escribió: [ -> ]
Cita:"Derivable de una BNF" = "Sintácticamente correcto para el compilador"

en el libro 1 habla de

Cita:debemos diferenciar 2 conceptos importantes:
"derivable de una BNF y Sintacticamente correcto"
supongo que en el libro 1 es desde el usuario, osea para el programador..
y la dif de eso con semanticamente correcto ? en cual juegan las "restricciones" del idioma natural a la BNF?
mai god, estoy mas perdido.. xD


y ahi cual seria la diferencia ?

En la última página del volumen 2 (pag 84) vuelve a hablar de los dos conceptos:

"...Si es DERIVABLE y no es SINTACTICAMENTE CORRECTO, significa que la GIC lo genera pero en la fase de análisis semántico se detecta un error insalvable....

... por ejemplo, se puede DERIVAR la expresión 2=4, aunque sintácticamente no sea correcta"


Rendís el lunes Gon? Yo tambien... ya que en la primera fecha me hicieron percha con los V/F...
Nos veremos allí
Maxter, pense que habias aprobado !!

Vas el lunes ? Che el lunes seria la 2da fecha no?

... por ejemplo, se puede DERIVAR la expresión 2=4, aunque sintácticamente no sea correcta"

Porque no es sintacticamente correcta? Porque no se pueden igualar dos variables?
(16-12-2010 14:48)Maxter escribió: [ -> ]"Derivable de una BNF" = "Sintácticamente correcto para el compilador"

Para que quede mas claro, volvemos al ejemplo de

"Sea, en ANSI C, la declaración int a,b,c; y sea la expresión a < b < c"

Entendés porqué:
A- No es sintácticamente correcta para el programador,

Spoiler: Mostrar
Porque no es la manera correcta para el programador de calcular que el valor de b está entre a y c.
Como se haría en tal caso???

a<b&&b<c

Porque a<b&&b<c ????
Cita:Vas el lunes ? Che el lunes seria la 2da fecha no?

no, es la tercera !
La segunda fecha se reprogramo..

Posta maxter? yo veo que la tenes re clara, nose como desaprobaste... ay mamita, lo que queda para el resto de nosotros entonces XD

Cita:por ejemplo, se puede DERIVAR la expresión 2=4, aunque sintácticamente no sea correcta"
Porque no es sintacticamente correcta? Porque no se pueden igualar dos variables?

1º acordate que en ANSI C el "=" es "asignacion", no igualacion (que es "==")
2º ahi no son 2 variables, son dos CONSTANTES.
El error lo tira porque el lado izquierdo tiene que ser LVALUE (y el 2 no lo es)
Cita:"...Si es DERIVABLE y no es SINTACTICAMENTE CORRECTO, significa que la GIC lo genera pero en la fase de análisis semántico se detecta un error insalvable....

entonces sintacticamente correcto y semanticamente correcto es lo mismo ? No entiendo ! XDDD
porque tengo 2 definiciones (que lo pueda derivar, y que lo pueda derivar y cumpla co las restricciones) y 3 conceptos (derivable, sintactam correcto, y semanticam correcto)
Hay alguno que es igual al otro ? que me esta faltando !?!!?
Cita:Porque a<b&&b<c ????

lo que entiendo es que ponele, tiro con valores numericos:

ponele a=3
b=4
c=5

y olvidate por un ratito eso de las restricciones sintacticas y bla (quiero decir, tal vez escriba algo mal ahora)
vos sabes que 4>3 y 4<5
ahora bien, si quisieras comprobar ambas a la vez, como lo harias?
Comprobarias una, comprobarias la otra, y entre ellas realizarias un "and" (osea, && )
en cambio, si vos realizas
3<4<5
que estas evaluando ?
Es lo mismo ? NO, porque la ser asociativo a la izquierda no se analiza caso por caso, sino que analiza 3<4 y eso devuelve 1 (verdadero), y luego evaluaria 1<5 (lo cual tambien da verdadero) En este caso coinciden los valores; pero pensa el caso inverso, es decir:

5>4>3 Obtenes lo mismo que evaluar 5>4 && 4>3 ? NO

porque 5>4 da verdadero, 4>3 da verdadero y al hacer and ("&&") da verdadero ; PERO
si resolves eso tal cual, por ser asociativo a izquierda:
5>4 es verdadero, y devuelve "1"
y luego 1>3 FALSO ---> toda la expresion devolveria falso.


Entonces, si bien lo podes obtener derivandolo, y cumple con las restricciones (suponete que esta permitido hacer con numeros esto, en el examen va a estar reemplazado por a b y c, pero te lo puse con numeros para que sea mas claro) es sintacticamente correcto para el compilador, pero sintacticamente incorrecto para el programador
(es decir, el compilador te lo pasa como correcto, pero vos como programador no era lo que querias obtener)

Esto me hace sacaar una conclusion:


1º Si es sintacticamente incorrecto para el compilador, tambien lo es para el programador. ¿No? Porque a mi no me sirve algo que escribo con una mala sintaxis.
2º El inverso seria falso; puede ser incorrecto para el programador, pero que el compilador lo acepte (como el ejemplo)

y como notas aparte

3º Es un concepto muy subjetivo ---> es una chot@ =D
4º Si bien en este ejemplo "lo veo", como que me cuesta sacarlo para una definicion, y entenderlo bien.. pucha.
cuantas veces la rendiste mal gonza?
fui a darla en agosto, era el primer final "nueva version" de sintaxis. no me levante, y patito.

y mañana seria la segunda vez.

por ?
no por nada en especial, no suelo escribir mucho aca, pero si leo, y siempre leo cosas tuyas, y veo q te va bien en la carrera
y como dijiste que ese maxter la tenia re clara y desaprobo que le quedaba para los demas y te incluiste, y me llamo la atencion.
por alla cursado alguna materia con vos ni idea
yo tmb rindo hoy!
che agustin fijate el otro thread de ssl please

http://www.utnianos.com.ar/foro/showthre...00&page=10
(20-12-2010 14:31)AGUSTIN27 escribió: [ -> ]no por nada en especial, no suelo escribir mucho aca, pero si leo, y siempre leo cosas tuyas, y veo q te va bien en la carrera
y como dijiste que ese maxter la tenia re clara y desaprobo que le quedaba para los demas y te incluiste, y me llamo la atencion.
por alla cursado alguna materia con vos ni idea
yo tmb rindo hoy!


blush
jaja gracias!
en q aula rendiste?
yo en la 36, y me quede, y clave un patito por una pregunta.. bajonaso total =(
Páginas: 1 2
URLs de referencia