Donar $20 Donar $50 Donar $100 Donar mensualmente
 


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
TP Sintaxis
Autor Mensaje
c'thun Sin conexión
Militante
Sin estado :(
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 95
Agradecimientos dados: 78
Agradecimientos: 3 en 3 posts
Registro en: Mar 2013
Mensaje: #1
TP Sintaxis Trabajo practico Sintaxis y Semántica de los Lenguajes
Hola resulta que tengo un TP de sintaxis y este cuatrimestre estoy medio perdido D:, el TP es el siguiente:

Spoiler: Mostrar
TRABAJO PRÁCTICO
AUTÓMATA RECONOCEDOR/ACCIONADOR

Sea un texto formado por una secuencia de caracteres que corresponden a un programa en ANSI C correcto. El texto completo termina con el carácter especial fdt.

Ejemplo: int main(void) { printf(“Hola\n”);} fdt

 Construya la TT del AFD que procesa este texto, analizando todos los lexemas de los Lenguajes Regulares que tiene ANSI C - tokens. (Identificador, constanteEntera, constanteReal, operadorAsignación, puntoyComa, coma, parenDerecho, parenIzquierdo, otrosCaracPuntuación, literalCadena). Fuera de estos tokens, cualquier otro lexema corresponderá al token Otros. Los espacios en blanco deben ser ignorados.

 Agregue una última columna a la TT para indicar en qué estados se van realizando las diferentes acciones.

 Escriba, en ANSI C, la función Automata que realiza estas tareas.

 Tenga en cuenta el carácter especial fdt y la posibilidad de espacios en blanco.

 Cada vez que detecta un lexema debe mostrar por pantalla el lexema y a qué token pertenece.

 Recuerde que deberá guardar el lexema para poder mostrarlo, para ello, utilice una cadena auxiliar.


la verdad que no sé muy bien como empezar, cual se supone que sería el alfabeto reconocido por el automata? no pido que me me den nada hecho solo que me encaminen un toque para saber como encarar el automata, gracias.
(Este mensaje fue modificado por última vez en: 26-08-2014 02:08 por c'thun.)
26-08-2014 02:06
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
.-Fede-. Sin conexión
Profesor del Modulo A

*****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 254
Agradecimientos dados: 68
Agradecimientos: 41 en 39 posts
Registro en: Nov 2011
Facebook
Mensaje: #2
RE: TP Sintaxis
Yo estoy en la misma, estoy medio perdido, si queres agregame al fb y lo vemos.
26-08-2014 12:07
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
c'thun Sin conexión
Militante
Sin estado :(
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 95
Agradecimientos dados: 78
Agradecimientos: 3 en 3 posts
Registro en: Mar 2013
Mensaje: #3
RE: TP Sintaxis
(26-08-2014 12:07).-Fede-. escribió:  Yo estoy en la misma, estoy medio perdido, si queres agregame al fb y lo vemos.

Te mandé un mensaje no me deja agregarte :/
(Este mensaje fue modificado por última vez en: 26-08-2014 14:42 por c'thun.)
26-08-2014 14:41
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Solemba Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 155
Agradecimientos dados: 2
Agradecimientos: 1 en 1 posts
Registro en: Feb 2009
Facebook Twitter
Mensaje: #4
RE: TP Sintaxis
Si alguno sabe como arrancar tambien me serviria, mas o menos entiendo los que hay de ejemplo pero este no :/

=)
26-08-2014 15:23
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
florenciaviolencia Sin conexión
Empleado del buffet
primero/segundo año
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 4
Agradecimientos dados: 1
Agradecimientos: 0 en 0 posts
Registro en: Nov 2012
Facebook Last.fm YouTube
Mensaje: #5
RE: TP Sintaxis
Tamos todos iguales, calculo que somos todos del mismo curso, o de la misma profesora en su defecto..
El tema es que hay que entregarlo el viernes (en mi caso) y no tengo la menor idea de por donde empezar..
Si alguien tiene alguna idea que avise, pero yo ya me resigne...

[Imagen: 483624_3608521226602_1699602277_n.jpg]
26-08-2014 21:18
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
c'thun Sin conexión
Militante
Sin estado :(
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 95
Agradecimientos dados: 78
Agradecimientos: 3 en 3 posts
Registro en: Mar 2013
Mensaje: #6
RE: TP Sintaxis
(26-08-2014 21:18)florenciaviolencia escribió:  Tamos todos iguales, calculo que somos todos del mismo curso, o de la misma profesora en su defecto..
El tema es que hay que entregarlo el viernes (en mi caso) y no tengo la menor idea de por donde empezar..
Si alguien tiene alguna idea que avise, pero yo ya me resigne...
.
(Este mensaje fue modificado por última vez en: 26-10-2017 22:16 por c'thun.)
26-08-2014 22:06
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Solemba Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 155
Agradecimientos dados: 2
Agradecimientos: 1 en 1 posts
Registro en: Feb 2009
Facebook Twitter
Mensaje: #7
RE: TP Sintaxis
Yo tambien soy del curso del jueves a la tarde. Te mande un mail =P

=)
26-08-2014 23:14
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
MauricioF Sin conexión
Empleado del buffet
X,Y,Z
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 7
Agradecimientos dados: 0
Agradecimientos: 0 en 0 posts
Registro en: Jul 2014
Mensaje: #8
RE: TP Sintaxis
Hola! Yo también tengo que hacer este tp, pero curso turno noche. Les mande solicitud a fb para ver si podemos hacer algo.

Slds.
26-08-2014 23:27
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
demian Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 6
Agradecimientos dados: 0
Agradecimientos: 1 en 1 posts
Registro en: Nov 2013
Mensaje: #9
RE: TP Sintaxis
yo soy del curso de los viernes. Tambien tengo que hacer el tp. Ya lo habia mirado y empecé a hacerlo despues subo una foto masomenos de como lo tengo.

Yo lo primero que hice fue definir los "alfabetos" que se usan ( digitos, nodigitos, digitosnocero) basandome en como se arman los identificadores, const enteras reales, etc de la bnf de ansii c. y de ahi arme un automata para cada token.
por ahora slo tengo el de identificador y constante entera decimal. Calculo que despues solo sera unir todos los automatas en uno y ubicar las acciones. (por lo menos asi lo pense yo =P ).

Ej:

Para los identificadores:
digito = {1234567890}
nodigito = {_abc...zABC....Z}

0' -> fdt -> 4+
......-> nodigito-> 1 -> digito -> 1
...........................-> nodigito -> 1
...........................-> espacioblanco -> 2 -> espacioblanco -> 3 -> espacioblanco -> 3
........................................................................................-> fdt -> 4+
.........................................................-> fdt -> 4+
(Este mensaje fue modificado por última vez en: 27-08-2014 11:04 por demian.)
27-08-2014 10:59
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
[-] demian recibio 1 Gracias por este post
c'thun (27-08-2014)
c'thun Sin conexión
Militante
Sin estado :(
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 95
Agradecimientos dados: 78
Agradecimientos: 3 en 3 posts
Registro en: Mar 2013
Mensaje: #10
RE: TP Sintaxis
(27-08-2014 10:59)demian escribió:  yo soy del curso de los viernes. Tambien tengo que hacer el tp. Ya lo habia mirado y empecé a hacerlo despues subo una foto masomenos de como lo tengo.

Yo lo primero que hice fue definir los "alfabetos" que se usan ( digitos, nodigitos, digitosnocero) basandome en como se arman los identificadores, const enteras reales, etc de la bnf de ansii c. y de ahi arme un automata para cada token.
por ahora slo tengo el de identificador y constante entera decimal. Calculo que despues solo sera unir todos los automatas en uno y ubicar las acciones. (por lo menos asi lo pense yo =P ).

Ej:

Para los identificadores:
digito = {1234567890}
nodigito = {_abc...zABC....Z}

0' -> fdt -> 4+
......-> nodigito-> 1 -> digito -> 1
...........................-> nodigito -> 1
...........................-> espacioblanco -> 2 -> espacioblanco -> 3 -> espacioblanco -> 3
........................................................................................-> fdt -> 4+
.........................................................-> fdt -> 4+

Ahora me parece que tengo un toque más de idea, no entendí lo de espacioblanco, no sé supone que no tenemos que tenerlo en cuenta?? cómo se haría para juntar todos los automatas??
Acá intenté hacer la de LiteralCadena me quedo así

0- -> fdt -> 3+
0- -> " -> 1
1 -> nodigito -> 1
1 -> digito -> 1
1 -> " -> 2
2 -> fdt -> 3+

Gracias por responder =D
27-08-2014 15:13
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
demian Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 6
Agradecimientos dados: 0
Agradecimientos: 1 en 1 posts
Registro en: Nov 2013
Mensaje: #11
RE: TP Sintaxis
Hola, claro. Yo lo pensé así. Pasa que todos los identificadores están separados por espacios, osea, use el espacio en blanco para cortar el identificador. En ansi C no podes tener un identificador de dos palabras (en ningun lado bah), entonces ahi corto y leo, despues de eso viene otra cosa que no se que es.
Para mi, si no lo enes en cuenta, en cuanto encuentres un identificador vas a seguir leyendo el identificador hasta que no leas algo que no sea de los identificadores ( , ; () etc) y tomarias por ejemplo:

int numero = 0; ahi int numero seria identificador y no lo es.

Pero no se, no esta claro...


Para juntarlos para mi tenes que poner a todos en el mismo cero y dar la posibilidad de a la salida de uno entrar en otro. Un ejemplo seria:

del 2 del tuyo -> nodigito -> 1 y asi los vas enlazando para tener todas las posibilidades(haciendo la tabla vas viendo mejor que te falta unir)


PD: en el tuyo te faltarian del literal cadena los : . º osea otros carateres de puntuacion que pueden ser literal cadena me parece. Por ejemplo el literal cadena "El resultado de 3 + 3 es: 9, y es impar"
(Este mensaje fue modificado por última vez en: 27-08-2014 16:18 por demian.)
27-08-2014 16:15
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Solemba Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 155
Agradecimientos dados: 2
Agradecimientos: 1 en 1 posts
Registro en: Feb 2009
Facebook Twitter
Mensaje: #12
RE: TP Sintaxis
Intenté hacer el de constanteReal y me perdí en el medio, me quedó algo así

0 -> digito, constanteFraccionaria ->1+
0 -> fdt -> 3+
1 -> digito ->1+
1 -> e, E -> 2+
2 -> sufijoReal -> 3+

y la parte de constanteFraccionaria como
0-> digito -> 0
o-> . -> 1+
1 -> digito -> 2+
2- > digito 2+

como dije, me perdi en lo que hay que hacer asi que probablemente este mal :/

=)
27-08-2014 17:24
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
demian Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 6
Agradecimientos dados: 0
Agradecimientos: 1 en 1 posts
Registro en: Nov 2013
Mensaje: #13
RE: TP Sintaxis
hola solemba, te hago una corrección rápida y después lo veo bien, si vos pones (unnumero) +, ese + dice que esa instancia es terminal, ese nodo es terminal. Por eso solo se pone en el nodo final.

Lo que hay que hacer es poner nodos unidos con caminos. Estos caminos representan el agregado de algo a la cadena que tenes. Ejemplo:

1-> digito ->2+ ese automata solo reconoce: 0 , 1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 y nada más.

1-> digito ->2+
-> digito ->1 este automata reconoce lo mismo del anterior y todas las secuencias de numeros que vos quieras hacer, infinitas.

Se entiende mas o menos?
27-08-2014 18:34
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Solemba Sin conexión
Campeon del cubo Rubik
Sin estado :(
****

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 155
Agradecimientos dados: 2
Agradecimientos: 1 en 1 posts
Registro en: Feb 2009
Facebook Twitter
Mensaje: #14
RE: TP Sintaxis
Se que el + va en el final, pero me quedaban todos finales en un momento, asi que algo esta mal de entrada XD

eso ultimo seria mas o menos como poner un 1 -> digito -> 1 ? mentalmente lo imagino como un bucle en el estado 1, capaz lo tengo mal representado

=)
27-08-2014 20:22
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
demian Sin conexión
Empleado del buffet
Sin estado :(
*

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 6
Agradecimientos dados: 0
Agradecimientos: 1 en 1 posts
Registro en: Nov 2013
Mensaje: #15
RE: TP Sintaxis
Si, seria como un bucle. No se como lo pensaste pero te tiro masomenos una idea.

Para armar el autómata yo lo pienso así:

1º- Agarro y pongo el nodo cero.
2º- Me fijo con que puede llegar a empezar lo que quiero que entienda y lo pongo como caminos hacia el nodo 1.
3º- Ahí me fijo que puede tener después del primer carácter y los pongo como bucles en el nodo 1.
4º- Veo hasta cuando se pueden agregar cosas ( osea si hay algo que corte, por ejemplo un exponente fraccionario que te corta el ingreso del numero) y pongo un camino que agregue ese corte hasta el nodo 2.
5º- Acá vendrían las acciones y después todos los caminos posibles de salida que serian:
- El mismo camino de corte pero en bucle
- Las salidas hacia el nodo uno por el mismo que va del cero a uno
- Las salidas a otros autómatas
- El camino fdt

El camino fdt va al 3+. Y ahí termina el autómata.
28-08-2014 10:55
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)



    This forum uses Lukasz Tkacz MyBB addons.