Idioma: Español
Fecha: Subida: 2021-02-10T00:00:00+01:00
Duración: 1h 26m 34s
Lugar: Curso
Visitas: 1.139 visitas

05_Ejemplo de uso de la infraestructura ontológica

Transcripción (generada automáticamente)

Ahora lo que quería ver un poco más en detalle está bueno esta presentación que está en inglés pero por otro motivo introduciendo no hay ningún problema en eso vale? Este es el ejemplo que habíamos hecho. Yo creo que este ejemplo no sé si nos lo enseñé todavía funcionando o sea, lo vimos, pero en la presentación funcionando, que prefiere os enseñé, está terminado. No nos suena de esto, no vale, perfecto, claro, pues vamos a hacer este ejemplo. Vale? Veis que tenemos esta expresión que es a que aquí bueno pues con la terminal porque estáis más acostumbrados que yo yo soy ultraizquierda. Así que si veis en Lyon y conocéis algún atajo para lo que hago agradecido este año, aquí como veis, lo que tengo hecho es comentado. Esto es de aquí ese esquema, no es porque está comentado y donde lo uso aquí aquí y aquí entonces. Por primera vez comandos se puede ejecutar, aunque no es la idea, la idea es que se haga programática, van un poco el comando que usó una librería entonces y le meta argumentos más que nada para no, para que no me salgo ahora mucho. Pero pantalla de guardia es que compila, pero cosas de estilo de hoy el punto y final mira lo ha expuesto, pero no es necesario cosas así le digo que me lo genere una carpeta de salida. El código le digo es cierto que acepta otros lenguajes, es capaz de generar Aizoon y demás, simplemente hay que implementar, pues otro visitó hay que hacer otra implementación de ese visitador. Le digo que me crea un esquema que ahora hablaremos de él, y le digo que me ponga solamente para aprobar el ejemplo que vamos a ver ahora una interfaz común, que va a ser poco en todo lo que genere, que me ponga constructor vacío y que ponga. Este paquete vale, es, y de esta, que es la que estamos viendo, a la que estamos viendo ahora, si le doy que creéis que va a pasar teniendo en cuenta esta, así y lo que hemos visto hasta ahora, dará un error, error, error semántico. Y dónde es quemado y usen? Perfecto. Vamos a verlo con por qué no se habla más de un error? Bueno, por todas la ocurrencia claro, exactamente se recorre todo el árbol, y cada vez que se encuentra que hay un error lo reporta a quien no separan. El primer error y lo recorre todo, porque no sé si vosotros habéis programa una llave y sus y demás, no es muy pesado. Cuando da el primer error, lo corregía sea. Otro error, lo corregía. A que sí pues, más que nada, por eso complementamos así que diera todos los errores de una. Así se podrían corregir más rápido, pues vamos a vamos a corregirlo. Eso era injusta y uso de vino sin salir. Entonces Bale le borró comentario lo guardamos por si acaso voy a tener un rm-de que no sé si tenía algo de antes. Vamos a ejecutar el comando o os acordáis que ahora ya lo corregimos y debería funcionar buena complexión finish ha terminado sí sin errores ahí está metiendo estos mensajes de la, de que está paseando, generando las ett, que están generando. Si eso nos decía se puede llamar a ese o intermedio, el encuentro vale, en este caso aquí por diseño se hiciera más lo que es la abreviatura de no genera la, que es la representación intermedia, por así decir el código o lo que fuera, y por último, pues no se escribe los los códigos fuente, vale, vamos a ver, lo que hay en la idea era ese. Tenemos dos ficheros, uno que se llama esquema y otro que se llama Josep. Vamos a ver, primero si os parece el de Josep Pons explicó lo que incluye el esquema user. Como vemos para lo que nos había generado en la clase de usuario, pues mira, tiene un estilo que era ya hecho. hoy no le pusiera ordinalidad; bueno, ahora lo corregimos y lo damos ordinalidad a Gus Street coge el tipo que tú lo había expuesto en simple expresión y hace una proyección sobre el sistema de tipos de Java, y cogí el tipo que es más cercano. Si yo le puse, pues va a coger Strings y le puse a buscar ir, pero si hay algún tipo que tú lo has puesto en no tiene algún tipo primitivo, me refiero a haber un problema en la generación de código. Lo analiza y ya te lo dice te dice. Oye más puesto el tipo yo, que sé de ir y de tipo primitivo, no pueden tipo de pan, todo eso te lo dice cuándo va a generar el código y luego, si no es un tipo primitivo, como en ese caso, que habíamos definido una clase y user. Pues ya te mete el tipo correspondiente que usen, aunque sea una clase, no deja de ser un tipo. Por ejemplo, la variabilidad y la propiedad no tiene tipo, y usará lo que se decía general, constructor vacío, genera un constructor con todo lo que tiene la clase. Lo general, los bueno ordenado, el nuestro, no lo vimos necesario durante durante el proyecto y por eso no lo hicimos, pero, bueno, si se tuviera que hacer os digo no sería muy complicado, sería hacer que sea como se haría el preguntar a vosotras. Cómo sería ese código la generación de código, y voy a dejar estas 2. Acordamos que, por ejemplo, cuando quería hacer las fieles hacía un film, cuando ha querido hacer un constructor, era un constructor lo mismo para los oyentes y para los, y todo esto no dejan de ser bichitos. Entonces, el como los habría que hacer una clase g. Y vamos a ver, y esta clase extendería de algún sitio. Si no, lo mismo claro. Exactamente es simplemente hacer un nuevo implementación de ese visitador. Pues ya veis que no es muy complicado, o sea. Ahora mismo no. Acabamos de ver y lo podríamos hacer simplemente. Luego es bueno aquí dentro. Decir. Bueno, pues igual cómo. Quiero hacer el que el formato creo que va a ser. Lo más complicado hacer, vale, pero es que no sería complicado en ningún caso. Entonces habíamos dicho que teníamos otro fichero, más aquí que es el esquema de esquema. Yo creo que no. Saber muy bien o como es el primer equipo en pantalla es igual cuando acogerlo a ver si puede obviar, y eso solo ha dicho. No están ahora en directo web, conocéis alguno, vosotros para ver, y ahí son así en directo. Vale? Pues bueno, si pone ese formato es el primer o bueno, a ver si funciona. Vale forma ese efecto. Vale? Esto lo que eso es como un resumen, es un único fichero, igual que las otras cosas. Si pusiéramos yo que sea una segunda, una segunda serie que fuera coche nos debía una un archivo fuera coche, un 2. En este caso no solo vamos a tener un un esquema que va a incluir, pues todas las clases en esta colección de clases nos dicen. Bueno, pues aquí tenemos la clase y ser que tiene estos atributos como tributaria y tiene otra tributo con y vale lo mismo o es para todas las clases que haya generado, porque hace esto, porque a la arquitectura semántica a la hora de consumir, en lugar de usar reflectividad, reflexión, ir y preguntar a todas las clases como se llama, eso es, o cuántas sois lo que hace es cojo el esquema y me pasé allí son, que es mucho más sencillo. Lo entendéis un poco el porqué de este día. Perfecto, hacéis preguntas, pero vamos a toda hostia, la tengo una señora la presentación insta a que vale esto es posible que estáis alguna explicación más de cómo se pasa de uno a otro? Por ejemplo, en siete expresiones. Nosotros tenemos la expresión incluye triple expresión, más o menos Pablos lo dijo antes; si no aquí abajo hay un hay un ejemplo, tenemos la ley, el tipo y la Cardinal que indica cuántas veces se puede repetir una; una sincera que solo hay una infinito. Significa que pueden ser cualquiera, vale entonces en Java o en la mayor parte de fuertemente equipados, orientados a objetos. Lo que tenemos son tiempos pasados como tu clase bueno perdón propiedades expresas, como tu clase de debemos el nombre de la propiedad y el tipo de la propiedad por ejemplo. Neil Street. Bale como podemos pasar nosotros la a una realidad que no existe bueno pues lo resolveremos a través de los tipos. Por ejemplo, decimos que es de tipo lista, y esa lista además es de tipo persona con lo que conseguimos aproximarnos un poco más a lo que nos decía si conoce a personas. Vamos a ver esto como ejemplo. El es un punto bueno. Se entendió lo que quería decir más o menos lo que utilizamos a veces tipos auxiliares para poder representar. Por ejemplo, si tuviésemos la interrogación en una sentencia que dijera. Puede tener nombre, puede no eso, como se lo diríamos bueno, pues más o menos hasta ahora tampoco había forma de decirle. Es opcional, podríamos decir, es nula o lo puede recibir nula, pero no es exactamente la esencia de lo que quiere expresarse. Se quiere expresar que una instancia puede tener o pueden no tener ese esa propiedad en. Sin embargo, sí podemos una propiedad que sea nula. Decimos que siempre tiene esa propiedad, pero que puede adquirir o no el valor de ahora. Así que con las valoraciones dejaba tenemos el tipo opcional que nos ayuda a tener estos valores nulos y igual es un poco más cercano. Ahora mismo, la interrogación es una de las cosas que no soporta, pero, bueno, ya hemos tenido cuidado de que en la antología no haya nada con van. Vamos a verlo de las listas. Lo primero. No preveo nada. Vale, pues, por ejemplo, aquí vamos a aprovechar hacer un ejercicio. Os acordáis como indicaba, la finalidad de que puede conocer a muchos usuarios actriz perfecto, atletismo controle, que quieren guardar sí mismo nombre. Vale, pues vamos a entrar otra vez en la serie. Otra vez. Este impuesto lo mismo de antes, pues está ejecutando a ser automáticamente es lo suficientemente listo como para saber qué y user en las expresiones. Eran muchos y mete un listo y además del visto bueno, pues aquí cumple ya el importe. Si tuviésemos varias listas, dejaría solo un imborrable, no nos metería varios, y esto se hace pues en él en la generación de código donde enero o o o Import imponiendo el actor. Vale aquí si, por ejemplo, la ordinalidad que le llega en este parámetro me preocupa, el parámetro, no si en la expresión la ordinalidad el máximo de veces, que puede ocurrir esa expresión es mayor a uno le calco, hay un importaba utilizó como es el género en Java es muy muy muy muy sencillo porque es código plano o sea no tiene que no tienen que pasar ningún cheque de tipos ni nada. En este punto el sitio de tipos lo hago luego con los tebeos y digo que lo que haya generado es correcto. Entonces, yo creo que creo no sé qué funciona hasta aquí pero no sería mejor un set dado que lo tiene. Sí podría ser. Podría ser que fueran un sí; o sea, eso son decisiones de diseño que ni siquiera tuve en cuenta, más que nada por. No sé porque supongo que será porque estoy acostumbrado a ello va, pero sea ahora viendo esta clase, si entonces se recorren lo que habéis hecho es que se recurrió primero a todas las ruedas para los Import después todas las portadas, sí y no sirve y explicó si es bueno que me estoy viendo que se está haciendo la visita. Así parece que para todo el árbol, para ver qué tiene que importar. Me imagino que para los atributos igual y para quedar igual, se recurren exactamente si la única. La única cosa es que nos visita todo el árbol; si te das cuenta aquí el el único nodo que visita es el, cuando aparece una expresión del camping, que visita sólo los astrónomos en esos nodos. Trabajábamos a trabajar, pero para llegar a esos nodos ha tenido que saltar por los padres, vale para saltar por los por los padres. Lo que hace aquí en ese folk es esta clase en. Está casi siempre vale, que es una una implementación por defecto de la interfaz que habíamos visto antes, que definía todos los métodos y lo que hace en cada uno de ellos simplemente se lo pasa a los hijos para que pueda recorrer todo. Entonces, tú cuando haces las simplemente acciones específicas como era la del importe no tengo que implementar todos los métodos de los padres y demás para que me llegue, el visitó hasta ese punto, sino que simplemente tengo que sobre escribir el método en el que yo quiero trabajar, en este caso el de Cardinal y el resto ya se encarga la clase superior, que era la de que lo que hace es, pues enviar el vídeo a través del resto de todos para que pase bale. Esto ya lo entiende y otra duda que tengo. La posibilidad está de uno o más. La agresividad con un se pone más técnico, como sería a mi dice si la escribo no sé si me parece que es con una estéril, un más o más sí que es uno más, en este caso ahora mismo no lo tengo muy claro, que es lo que hace. Pero yo creo que usaba la lista en ese caso también, porque uno más es casi lo mismo. No es lo mismo, lo entiendo porque este disco puede estar o no estar, y uno más tiene que estar, pero puede ser superior, y me suena que en ese caso usaba, usaba la lista, pero en la antología que habéis creado hay algún caso de esos saltos en la oncología. Como tal no esto recordemos, coge las expresiones, vale las expresiones que usamos para desear la antología. Entonces claro, cuando haces las expresiones atestiguan antología, tienes la opción de ponerlo como uno más más, y ya vas controlando algunas cosas para no complicar mucho la vida la hora de los de los ojos, o sea, cuando hacéis las expresiones casi tienes que tener más cabeza, y estoy haciendo ojos dejaba un modelo de dominio de Java que estoy haciendo una antología casi, pero sencillamente pensando en validar la antología. Si tienes que pensar en hacerlo, claro, exactamente. Si yo soy es un consejo que le oye. Cuando estás haciendo las superproducciones piensan más en un modelo de dominio de lo que te va a generar. Luego y ha asegurado también que valide antología, obviamente, no te ríes mucho, pero consciente siempre tu objetivo y luego, por ejemplo una cosa curiosa, en los bichitos generalmente, como habíamos visto antes, tenemos árboles enormes, no muy grandes y por ejemplo a mí dentro de una vez entre en ordinalidad, en este Visitors, que es lo único que quiero hacer con ello es esto, no quiero sus hijos, o sea si puedo hacer esa boda, me lago y como se apoda pues simplemente no propagando el Visit como yo. Aquí vamos a ver, si expresión ardiente y expresión. No tiene hijos, vale buscar un aunque sí tenga hijos, por ejemplo, o sobreexpresión sí tendría hijos, y lo que hago a los hijos es que si esto no lo pongo allí donde sobre escribo el método de bici, expresión no estoy propagando, el visitó y por lo tanto cualquier hijo que esté por debajo no va a recibir. Ese esto suele. Es uno de los errores más comunes. Cuando empiezas a hacer bichitos, a mí cuando empezó a hacer esto, me pasaba muchísimo. Que me olvidaba, y entonces todos los que estén por debajo de eso no recibe. El visitó y por lo tanto el visitante entendido. Vale? Perfecto, bueno, pues nos queda una hora más o menos. Vamos a empezar, vamos a empezar a ver ya el proyecto como está implementado desde cero Bale, os parece o lo vais muy denso, empezar a ver cómo está implementado el proyecto. No vale, perfecto. Por cierto, no sé si me pongo aquí la cara, un momento desaparece, si no sé si tenéis ya instalado un escala no lo sé preguntó no no no y si tenéis que pasar alguna lista de aplicaciones o programas que tenemos unos, la pasaron. Es que a nosotros sí que nos preguntaron desde la web y enviamos la lista, con mi caso, eso era escala de hambre? Pues yo, por lo menos no la he dicho. Que tampoco le vale ganar. Pues os comento. Bueno, no creéis que montamos ahora esto y al día siguiente empezamos a tocar o tocó yo y al día siguiente lo montamos. Yo creo que lo mejor que nos enseñará ahora poder ir mañana bueno puede ser el viernes vale no ser que no podía pero vale perfecto pues eso esto es incluye y tiene buenos sabéis lo sabéis? O no? No lo sé. La comunión y la diversión, que es gratuita y luego tiene otra profesional. No se diferencia de casi un poco la estabilidad. Ya sabéis el software empresarial estable. El otro es el que tiene las novedades, como digo. Yo entonces lo que tengo aquí instalado tengo escalada que es como cuando instala escalador en este caso. Si quieres ir tomando nota, por si lo queréis apuntar, lo que dice estar vosotros perfecto; si no hay una sesión dedicada a eso luego tengo un que el de Agger lo que me hace es que me un poco la sintaxis y cuando tengo aquí ni para ser más o menos hecho. Me permite algo que creo que es súper útil desde las reglas, que es lo que usé antes. Hacer. Algo me permite desterrar las reglas que yo he definido, y poder verlas aquí en este caso, porque estoy deseando la raíz y entonces me empieza a ese esquema. Pero si yo, por ejemplo, quisiera hacerlo solo desde definición, aquí y se ha cargado todo lo que pone encima, y ya puedo trabajar sólo con la esencia de esta regla para ver qué es lo que realmente está recibiendo. Luego el código vale que voy a que voy a programar entonces esto es lo que respecta a lo que respecta a la infraestructura que estoy usando para procesar a él. Lo que tiene son lo la definición de tokens valen la agrupación de caracteres. Entonces, por ejemplo, el Pablo Bueno, el Pablo es una regla que es modificado, que se llama el modificado. Luego tiene varios toques que puede ser igual. En el caso de ese es mucho más sencillo, porque la sintaxis es mucho más reducida. Por ejemplo, un toque literal sería otro toque y que es cuando escribes y cosas así a mano. Huevo importa. Lo mismo, y luego lo que tengo son después de la de los toques son los los litorales, que buena definición de literales que estuve aquí son toques y esto es su definición. Como vais a veces, digo que un toque es igual a otro toque porque, bueno, pues porque a veces hacen, dejas cosas de diseño, un poco abiertas para poder implementarlas en el futuro. Esto es para para texto incorporado, que se llama No sé si lo conocéis es poder poner entre entre comillas, por ejemplo, un jabato. Escribe. Es cualquier cosa y le metes ahí un modificado, un porcentaje, y luego después le dice, sustituyen ese porcentaje o la valla. Pues eso es, incorporaba o meter directamente la variable en el texto y que ella sepa que eso es una variable de tu programa y no texto lo mismo, por eso está abierto. De hecho, la acusación comentario un literal sería lo que va entre comillas en. Es exactamente lo mismo lo que va entre comillas, Unai literal. Bueno, pues una Eslovenia es número decimal lo que se fuera y luego separadores en la portavoz separadores, pues tengo todos los medios separadores que voy a usar o puede usar mi taxis, paréntesis, corchetes con dos puntos con comillas, sea Bale, operadores en este caso son operadores del tipo Este que utilicemos que usamos para referencias, suma de igual, de multiplicación de cuestión, como si estos operadores aquí menos igual de igual a igual ni se usan. No estoy seguro porque no me lo dicen que estoy aquí y la se usan en sex. Pues para hacer modificaciones de Navidad luego comentarios como un proceso como vea, procesa a los los comentarios. Bueno, pues no creemos procesal comentarios a veces si queremos a veces no. Por ejemplo, los comentarios se procesan -compilados. Dejaba por qué? Pues para sábado, para poder generar cosas con los comentarios, como puede ser html. Eso está hecho también con bichitos. En nuestro caso, los comentarios no aportan nada aquí de momento. Entonces, pues los canal de Agger, que se llama giren ese canal lo que hace es que no va a llegar; a mí no va a llegar ni a no llegar ni a mi juego y no me sale la palabra. Luego llegué a mi ojo. Ya no salen ni a mí analizados, sin táctico ni a mí romántico, ahora los espacios en blanco lo mismo sea. Cuando nosotros estamos analizando un programa, aunque ponga bar espacio y el Babel bar y todo junto a Bale como referenciar va a ser porque dice bar Umea, r corresponde con modificado o con lo que sea, y tiene preferencia sobre bar y que marinos lo que entonces dice como es entrar, primero es bar punto identificadores, que es un identificador, bueno, pues, en nuestro caso, un identificador podría ser el nombre que tomó una variable. El nombre que tomó el nombre que tomó un prefijo contaremos, por ejemplo, Pablo, y que estoy ahí. El identificador en esa propiedad es Neil. El tipo sería y modificado sería que más los fragmentos luego tenemos, estaban fragmentos que se utiliza cuando queremos reutilizar alguna cosa vale. Cuando vamos a utilizarla mucho por delante y listo. Esto ya es un poco más. Sintaxis se especifica cómo definimos caracteres para que nos aceite todo tipo de caracteres y demás que más el texto entre, entre comillas, que vimos antes lo que sería un carácter de escape, es decir, cuando terminamos. Esto son cosas de la sintaxis de lenguaje vale. Si queréis saber más sobre la sintaxis del lenguaje hay y hay aquí espera, se llamaba su. Especie. Vale, aquí ahí esta página web, que os lo voy a copiar en el chat. Si encuentro el chat, dónde están. Vale nuestra página web lo que tenéis, toda la especificación del lenguaje ya a bajo nivel, por si tienes alguna duda. Respecto a eso también definimos. Bueno, pues lo di todo, aquí os digo, definimos todos aquellos caracteres que queremos que reconozca de una forma u otra. Nuestra nuestro léxico luego en el lo que definimos es la estructura de reglas que al final va a formar nuestro, a ese empezando desde empezando desde abajo hacia arriba, es la recomendación, siempre y cuando haces una siete abajo de lo más básico de ello, que sea una una masai no es así e ir subiendo hacia arriba, porque si empiezas por arriba, luego cuando pongas a compilar esto no va a funcionar porque no detectan los errores iba de arriba a abajo, vale? Entonces, como decía, empezamos desde abajo y lo que más abajo tenemos, por ejemplo, es sexto, que sería un que me tenemos un coste y no una expresión que es una expresión que incluyen literal. Vale, como podíamos haberle metido directamente a la serie, pero no se te tiene que recibir reglas. Entonces es una regla que cápsula, que es el delito. Lo hago, por ejemplo, lo mismo tenemos para el resto de que van a tener nuestras expresiones, que pueden ser tener un coste de varios, Brexit expresión de vino literal, o luego pueden tener más cosas, como puede ser una cal si expresión o expresión todo eso, y eso donde lo decimos. Bueno, pues en el nivel superior aquí le decimos hoy aquí no, aquí le decimos una expresión, puede ser cualquier cosa de este tipo Bale, y si aquí por ejemplo, este no es un ejemplo en los que se llama a sí mismo. Pero vamos a ver un ejemplo, a Río igual no nos es. Bueno, no lo quiso, entonces nada. Así al final es como un árbol bala. Cuando llegamos a esta regla, pues es el siguiente nivel más es más específico. Esto y llevamos a esto, que es bueno, pues es una herida, vale? Pues ya terminamos y así sería ir como construyendo el árbol. Una vez tenemos nuestra nuestra gramática, por decirlo de alguna forma, es construida. El siguiente paso es decirle a leer que nos genere el realizador sin táctico y, bueno, lo primero. Para eso, pues nada; cogemos nuestro desde arriba. Desde esquema le decimos a cómo el plug-in de los insisto que es muy importante en el club porque si no esto hay que hacerlo; comando, le decimos a la genera mayor el que se ha analizado, léxico, y sin táctico ya entonces lo que hace es que donde nosotros le digamos sí o sea y configurarlo para que para que lo hagan una localización específica y con unos números específicos lo que yo le digo es. Vale? Pues en la carpa de pase dentro de generales para saber que son tiene, me lo genera, es todo y me da un montón de cosas. Vale? Para que os hagáis una idea es esto y esto es Podemos. Aunque no lo parezca bale. Esto no se toca por así decirlo, no que no lo a nosotros sino que nunca modifique. Este código que se está sobre escribiendo, desde modificar la gramática que es la que os va a hacer. Esto sea hacer esto a mano. Es un poco de locos, bale y que nos genera, junto a estos buenos, pues el excel, que es lo que nos rompe, y el perdón, sí que nos toquen, y tienes. Agrupa a estos toques y nos genera reglas, generando la esa y éste, a St como lo cómo lo podemos. Cómo lo podemos recorrer? Bueno, pues al leer que es muy majo, nos genera un directamente que nosotros podemos implementar para recorrerlo, bueno, general no sólo un, sino además nos genera en esta clase de base y que os decía antes, que era que lo que hace esto es una forma de visitar un poco distinta, pero al fin y al cabo es lo mismo. Vale, lo que hace es visitar los hijos. Si te das que haces cuando entra en el mismo esquema, nada, pues y le pasó el contexto, aquí el éxito desde el Estado, dentro del contexto, Bale es. Esto lo hace automáticamente. Sin embargo, este visitó Oribe más, solo se usa en la fase de parcial, Bale, luego en la fase de llamando y utilizamos, otro visitó porque trabajamos como otro, a St, que no es el el a-ese 3. Es un árbol abstracto de sintaxis, y nosotros aquí dentro está trabajando en suelo común. Ese entonces es después, cuando cuando podamos nos quedamos sólo con 7. Cuando podemos hacer nuestros vistos; que ya son menos ruidosos. Aquí no había. Cerramos general; y entonces lo que vemos es Bale. Cuál es nuestro papel. Será nuestro. Es una interfaz que lo que nos permite hacer es pasear texto para hacerlo, programa fijamente y lo mismo, pero con un fichero para pasear fichero luego esto que lo quieres tener un servicio web para llamar lo elija como hace la arquitectura semántica; nada lo encapsulada, simplemente se exprime todo lo que quieras por encima y le metes el texto que te va a llegar ti en este método y el tema de devolver el árbol de sintaxis que luego se lo pasará a quien quieras. Esto nada. La clase de esta es lo que implementa, y lo que hace es a través del Visitors de Anglet, construir un a St de su St para que nosotros luego lo podremos profundizar en la semántica, y esto entonces lo que hacemos es. Si os dais cuenta aquí en la carpeta a St, cada una de las cosas que podemos expresar, cada uno de los nudos que va a haber en nuestro álbum abstracto de sintaxis de ese lo tenemos representado como una clase vale, por ejemplo esquema que es la de raíz, que es un esquema, pues un esquema es un modo a ese y por lo tanto va a tener que ir posición del rey, y el contento y nuevo un esquema lo único que tiene son y eso es pues podrán ser de tipo definición, definición; cosas así igual; y cuanto más abajo un largo que decíamos de sintaxis abstracta, pues más, más concreto va a ser. Y cómo conseguimos sacar este objeto, con lo que nos da, bueno, pues implementando lo vean implementando, el visitó que nos daba; nos tenemos que crear un pase específico para cada uno de las cosas. En este caso para ese esquema lo hace para ese esquema pues quema pilla, el contexto que le pasan, que es donde decíamos que estaba además luego cojo otro, que es nuestro, vamos a usar luego y nada el contexto de compilación. Eso lo usa para la tabla de símbolos, errores y demás de aquí que es lo que le interesa? Bueno, pues lo único que le interesa realmente es que de todos los que va a tener que acepte, obviamente como el instituto para poder pagarlo y luego que me haga esto, vale que para todos los hijos, use la función de paseado, los hijos que eso ya ahora va a ir a un estadio y luego cuando me lo devuelve para arriba como un colector, que me lo colecciones todo entre una lista y eso es lo que quiero que me meta dentro de este se entienden como hace este paseo más o menos, o si no lo vuelvo a explicar, no me importa. Bueno, es que como sí bueno no me meto en la sintaxis escalada y si queréis, ya me meto, pero igualmente el método, que es, esto es un nuevo dentro de mí así es el nuevo raíz. Entonces, para pasear lo que hago, pues ese me lleva a ese nuevo raíz. Desde ahí lo envío a todos los hijos en los hijos, me daba al devolver, está y lo que a raíz es colección no todos lo saben. Lo meto con una colección -y me lamento mi propiedad, de este eso sí se entiende, no vale, perfecto, y eso es más o menos lo que hacemos para pasear. Ese es el ejemplo, sólo común, con un esquema. Si queréis que entre más en detalle cómo se hace cada una de ellas. Yo no me importaba, lo tenía más planeado para la sesión de cinco horas, esas del último viernes. Creo que es último jueves, que va a ser muy larga, pero si queréis entrar, ahora entramos. Cómo lo ves? Bueno, lo que tuve. Son La Laguna? Vamos por el paro pero vamos a dejar para cinco horas nos vamos a pasar mucho mejor, vale? Entonces ya tenemos ese siete que habíamos visto en unas transparencias de teoría construido y entonces ya hemos pasado. Toda la parte de análisis, léxico a lo que tenemos que hacer es sintomático sabe si las cosas tan bien escritas esto también lo hace el artículo. Sin embargo nosotros lo que hacemos para poder mejorar esos errores es otra pasada por encima del árbol, sin táctico, con el cheque, sin y se no me acuerdo cómo se llamaba asegurarme de que sea éste, si pasamos por aquí y lo que hacemos es detectar cosas, pues, por ejemplo, bueno, como veis el código los dejar bastante comentado, pero a veces hay cosas que me voy a comentar. Entonces, bueno, que cualquier cosa me escribiese, un correo, eso no hay problema aquí por ejemplo, estoy mirando cosas de estilo, de si la el punto de coma del final están puestos o no están puestos, cosas de esas que igual no es capaz de hacer, pues nosotros podemos extender esa capacidad de análisis táctico a través, otra vez de éxitos. Vale? En este caso es el Visitors de, lo hacía, lo hacía y es muy sencillo saber cuando lo hace cuando tenemos contexto en el Visit es es que lo ha hecho a Bale, vale? Pues entonces eso cerramos la parte de pico y pasamos a la parte de semántico que está aquí abajo, como es la parte de ese mal tiempo parece muy poco, pero realmente es donde dónde está una de las partes más importantes de compilados? Lo primero que hacemos es mirar la primera pasada. El primer visitó café. El semántico es mirar todas aquellas cosas que se hayan definido en nuestro código, por ejemplo, definiciones variables, definiciones de funciones con los métodos, esas cosas mal, pero hace definiciones de prefijos voy a ver si hay definiciones de una semana base, una cosa sana estar mira si se han decidido, si expresiones y como decía al principio lo mete en la simbólica y volver a ver si se puede tipo sin voleibol, está definido como una interfaz, que puedo hacer un set, es decir, tienes Coutts porque no lo sé yo, por ejemplo, en me permite definir una variable y se llame a dentro de una dentro de una función dentro de un método, cuando ya hay fuera una variable que se llame a no. Eso lo hace con scouts. Lo mismo pasa en siete expresiones. Hay veces que dentro de un scout, dentro de un ámbito del ámbito de la definición de una serie expresión, algo que ya se haya utilizado en el ámbito de definición de otras expresiones lo puede utilizarlo. Puedo volver a hacer para él? Pues eso lo hace con el set y con él, cuando dentro o cuando bajo un scout, mejor dicho. Cuando bajó un ámbito, algún set y cuando subo para arriba un ámbito a un mal. Entonces nada que pueda hacer una simbólica y bueno, pues pueden insertar símbolos y puedo encontrar símbolos. Cuando insertó símbolos, que es lo que insertó pues insertó el símbolo y la definición de ese símbolo es importante porque a veces dices. No, quiero que él desea que dos variables y a mí iguales vale, pero hay dos métodos. O sea hay un método y una variable se puede llamar igual una variable, si eso sí vale, pues por eso no he visto la definición, para saber de qué tipo es ese ese símbolo Val. Esto no es igual que las cosas va a estar, nos encarga de errores, este momento. Luego tenemos el error, que es otra parte muy bueno; luego ya entonces empezamos a mirar definiciones, vale, empezamos con la primera que sería la definición que el encuentro a la de que ya estaba definida antes, o sea es decir que me encuentro dos definiciones de base. La base es una cosa, una cosa es una un tipo de definición que que solo pueda parecer una vez vale tal y como hicimos en convenio. Sólo puede parecer una vez. Entonces si yo llego a una definición de base y ya la había definido previamente, pues entonces lo que tengo un hacer es en el error nuestro manejado de errores. Meterle un evento de tipo error y decirle. Oye, para este estadio ha pasado esto y además es este tipo de error. Para nosotros los errores los tenemos equipados, cada error tiene un tipo y así luego el error es capaz de demostrar. Es una forma o de otra aval. Vamos a ver cómo está hecho el error, el error. Nada. Lo mismo. Es una interfaz que ahora vamos a ver. La implementación, que está ahí abajo, lo que hace; es decir, oye, tienes mensajes de error. Si o no vale; si lo tienes, dame la lista de los mensajes de error que tengas y lo mismo. Oye, tienes sí o no, y si tienes, dame la lista de, Warner gas y luego finalmente pues eventos de compilación vale los eventos de compilación pues son o errores o como está implementada. Bueno, pues la implementación realmente es mucho más grave, es una lista de eventos que de momento, al principio famosos, como Folks, Fold, las dos variables que nos dicen si tenemos elementos de cada tiempo y os imagináis, si metemos un error, pues estas tenemos un trabajo, sea poner, tú muy sencillo, vale la implementación, nada que comentar. Yo creo nada comentarlo, pues decía, si es un tipo desde otro a la del otro. Entonces, que hemos detectado el error, se lo metemos en un error de tipo. Bueno, complexión, de tipo de error eso, y si no, si no estaba definida a. Bueno, pues nada. Entonces como tiene que ser comportamiento normal, lo que hacemos es que en nuestra tabla de símbolos, el valor que le estamos dando a la base y finalmente que es lo que tenemos que hacer, lo que tenemos que hacer siempre, vale, sabe decirle, por si acaso a todos los hijos que tenga la base, que seguramente sea es una expresión o algo por el estilo que acepten. Este visitó por si hubiera el comprobar más cosas que os digo, que no sea así y yo, por ejemplo, aquí esto lo lo comentará, no pasaría nada, porque bajo de una definición de bases no hay ninguna definición, vale. Podría cortarlo, no pasa nada, pero por seguridad no lo dejamos, un saque en el futuro, queremos meter algo, hayamos comentado esa línea y estemos dos días rompiendo la cabeza, porque nos llega a esta línea y es que alguien comentaba Estafeta, qué pasa cuando hacemos un precio de definición? Es bueno, pues cuando llegamos a una definición de prefijo hacemos lo mismo que hacíamos con la base, miramos si estaba definido, en este caso, hacemos lo mismo, los fijos, no se pueden decir dos veces, es decir, si yo tengo xs, sabe lo que sea, y debajo de lo que sea bueno, bajo o donde sea otra vez lo mismo, aunque tenga otro valor no me va a permitir permitir reasignar el valor de ese prefijo, vale, es algo que nosotros no permitimos por seguridad del lenguaje, pues eso sí; ya estaba definido lo mismo que hacía con base. Le decía este mensaje, lo importante es este, le meto un error de compilación en nuestro error y si no estaba definido, es decir, es lo que se espera el flujo normal, pues entonces lo que hago es meterlo en la tabla de símbolos y otra vez lo mismo. Eso lo voy a decir siempre. O terminamos de hacer toda la ejecución. Caso, pasamos, el visitó a los hijos bala. Entonces, ya hemos visto lo que son las definiciones de prefijos y del tipo base. Otra definición que tenemos es la definición de expresión, que es cuando ya metemos lo de abrimos, ya ves todo lo que hay dentro de las llaves y cerramos, ya, ves entonces aquí que cosas importantes tenemos. Lo primero es comprobar si es relativa o no hay dos formas de expresar las expresiones, que esto igual o más en detalle luego, otro día, con Pablo, cuando veáis editores de expresiones que hay dos formas, hay una forma que es el relativo. Espero que no se me ha visto, aquí vale nada. Si si la Laura, la que está apuntando ese, ese identificado, la relativa o no, o está usando un prefijo alternativa es cuando te corchetes no relativa, cuando lleva el prefijo entonces relativa. Bueno, pues tengo que buscar una forma. Si no es relativa, tengo que buscarlo de otra forma, mal, y aquí las definiciones os voy a dejar a vosotros que me digáis un poco qué es lo que hace. Bale os digo en el lenguaje, aplicamos lo mismo, que con los prefijos. Una seb no debería semánticamente de estar definida dos veces. Es decir, si no tenemos, use abrimos, corchetes, decidimos algo y debajo o en otro sitio ponemos y user, abrimos, corchetes, cerramos eso no está permitido? Entonces, saber, decirme qué es lo que estoy haciendo aquí está comprobando si la serie ya está en la tabla y si estás un error, y si no inserta. Perfecto, y que es lo último que hago al final en este Visit. Lo que está subrayado. Pues y luego visitan la definición de exactamente perfecto, o sea perfecto; no hay nada que decir. Propagó el visitante sin más hay otro elemento que es una definición dentro de siete expresiones que se llama. Start, vale; igual que teníamos base hay uno nunca se llama; esta que no nos incumbe saber muy bien para qué funciona, pero simplemente saber que existe pues se aplica lo mismo que luego otro; si ya estaba definido; como muy bien dijo Gordo nuestro compañero Álvaro eres no; sí como dijo Álvaro; eso sí está definido nada; le cascamos un error en la tabla y símbolos, y si no está definido vale cualquiera; aquí no; aquí lo creo; un error u otro error; y aquí se mezcla la tabla de símbolos. Eso sí estaba definido; le metemos en la tabla de símbolos si no está definido pues nada; simplemente lo intentamos en la tabla de símbolos y luego lo pagamos a los hijos que podamos tener bien, pues ha quedado más o menos claro cómo miramos las definiciones dentro de nuestro código. Si si no, yo creo que siempre llamas pregunta a Álvaro y sea de manual; me lo dijo? Perfecto. Entonces, vamos a ver el siguiente que hacemos ya hemos mirado las definiciones, qué es lo siguiente que tenemos que mirar. Bueno, pues a ver si cuando estoy usando cosas y cuando estoy jugando cosas esas cosas existen que está más o menos lo vimos antes un poco de refilón, mal bale me mira, a mí me importa si vale, lo primero que hacemos es mirar la expresión mal en la extensión. Esto es. No sé si tengo algún editor por aquí abrir un editor en un momento en un bloc de notas plus. Por ejemplo. No os vais a hacer, pero ahora lo pongo en esa pantalla. Vale haber, lo no el bloc de notas, sí el perfecto. Aquí en este caso, el fisio, expresión que parte es bueno, pues es estar aquí lo que estoy haciendo. Es un prefijo que debería haber definido antes, obviamente, y ha sido dos puntos lo que sea. Pues aquí lo estoy usando, y como lo estoy pensando, pues entonces es una expresión, cuando sea una expresión, pero cuando este visitó entre en este nuevo se va a ejecutar esta parte. Si aquí dentro, por ejemplo, me pongo a dos puntos, Name sea poner xs, String aquí al principio, cuando llegamos a esta triple consta en la que tenemos también un gol expresión, pues volveremos a entrar por aquí y qué es lo que hacemos? Ahí? Ver si está definido, o sea, nos lo sacamos de la esto es la ley y si no está como este vacío, lo que decimos es. Oye, un error el prefijo éste no nos ha definido, error, estoy aquí y entonces no puedo. Si sí estará definido por la contra, lo que hacemos es a esta expresión que que es lo que está representando el afis, el Col prefirió expresión que tienen una cosa que se llama definición, pues le metemos la definición que habíamos guardado en la tabla de símbolos, no la sacamos en la tabla de símbolos, se sigue quedando, pero cogemos la referencia y se le asignan la definición de forma que si yo pudiera acceder a un objeto éste que es una expresión y entrase a la propiedad definición me podréis decir a dónde apuntarían el código, qué línea teniendo en cuenta que esta sería la línea uno ni a dos así sucesivamente. Podéis decir a dónde apunta. Esa es la propia definición. Dentro de esto de aquí en este punto iría a la línea 1, lo que nos dice que la tomaría entera o solamente la segunda. Bueno, me quedo con lo de la línea 1, que es lo importante, sea realmente lo que es la definición, que es el objeto que crearía esta línea objeto o serie de objetos Val, pero si correcto apuntaría a la línea uno esto lo haría pues gracias a esta parte de aquí. Con su expresión, mañana hombres que les pusimos al lenguaje la verdad, así te lo digo. Yo tengo así o no. Si a ponerlo. Vale si yo por ejemplo tuviera esto bueno aquí acordados los espacios como si no estuviera mal. Si yo tengo esto ahora esta parte de aquí esto sería una col. Si me expresión Vale lo que está haciendo, es decir, que este usuario en una previa de tipo conoce, cuyo valor va a ser otro usuario Vale a ser otra cosa. Con esta noche, como esta forma entonces. Nada entraríamos por aquí y haríamos lo mismo lo que os comentaba antes, que relativa. Bueno, tenemos que explorar la de una forma relativa. Lo que decía era que es así; si esto sería una relativa y esto sería una, que es lo que está computando. Aquí lo importante es aquí abajo. Sí? Sí sí no existen las una referencia a esto, pues entonces tendríamos un error y si existe de forma que como decía antes, la línea cinco me estaba haciendo una referencia a donde haga línea 3, no lo hemos dado dos vale, perfecto y una duda aquí ahora que tenemos esto tenemos el código, por ejemplo, y seis que se están aquí me podríais decir que va a pasar aquí mirando ahora mirando, como digo podéis decir, por ejemplo, pues mira a Guillermo, iba a entrar por el método de bici, con expresión o con siete expresión y el ir a tener un problema, por lo que sea así lo puedo decir. Pero bueno, no sé si vamos a decir lo mismo, pero yo creo que va a entrar. Por qué nos decís, si ves presión y os lo digo yo, eso voy a ayudar un poco. Esto es un una llamada a un prefijo. Vale? Sí si va a entrar por la expresión No, perdón, precisa expresión, vale para encontrar la lista y va a encontrar la lista aquí y entonces va a fallar y nos va a meter un error. Aquí no sé el efecto, que es lo que nos iba a contar tu. También Álvaro no es perfecto. Pues muy bien, de verdad, esta parte suele ser muy dura y muy bueno, perfecto, pues entonces ya hemos hecho la comprobación de invocaciones, sea cada vez que una vocación que está definida, perfecto, le metemos la referencia. Si no está definida, pues nada, le metemos un error en el error? Así es cómo va funcionando, los? Cuál sería el siguiente paso? Pues el siguiente paso que tenemos que hacer, tenemos que hacer. Este solucionan, pero lo tenemos, que lo hacemos, es. Mirarlo los tipos, esto ya es más complejo, Val que es mirar los tipos, mirar los tipos, es una vez que ya sabemos que la simple expresión que tenemos bueno voy a meter aquí una cosa para que no para Londres. Una vez que sabemos que nuestro código pues para las referencias, todas las todas, las definiciones están y todas las llamadas están y no hay problemas. Vamos a ver si todo tiene el tiempo que debería tener, porque si yo, por ejemplo, sin prácticamente un sentido, pero semánticamente sí; si yo, por ejemplo, aquí le digo esto. Esto no tiene sentido. Se van sin tácticamente, sí; porque son cosas que sí, pero no tiene ningún sentido mirar. Que aquí no me metan abogado, por ejemplo. Por ejemplo, por ejemplo, de aquí está la de imaginarnos que aquí en lugar de eso del aire en esto bueno, sí es una cadena de caracteres, al fin y al cabo, y podría ir ahí lo que pasa, que es una, no es de tipo literal, y ni varios. Este otro tipo. Este tipo es como es un cole, expresión que está llamando este fijo, y dentro de ese prefijo esa propiedad entonces en este lo que hacemos es entrar en cada una de las cada uno de los nuevos, este sí yo creo que es de los pocos que los define todos y cada uno de los nuevos y mirar que son lo que deberían ser y dicen que son. Por ejemplo, aquí entramos en definición y miramos si si no es algo de esto, si no es una litera y Nibali o expresión entonces las metemos. Un error vale y como siempre lo pagamos, el fracaso en este caso además es súper importante apagarlo, porque como os digo, los pocos que creo que lo redefinen pero entonces es muy probable que los hijos tengan algún Visit que no sea simplemente de propagar. Cómo vería al padre? Perfecto, esto es emprendido más o menos de por qué usamos el cheque? Tengo una pregunta mafiosa lo entiendan por qué si el han generado ese código que lo comprueba, que ha generado dudas porque tienen que hacer es perfecto pero claro con bastante. Tras haber esto es todo, aquí tiene sentido. Vamos a hablar en un momento Bale. No tiene sentido, si no, sin táctica y semánticamente. Esto, bueno vamos a poner todo esto tiene sentido sin tácticamente, si se mantiene, claro y nosotros que estamos haciendo ahora la validación semántica, cuál es el error? Aquí se mantiene a Bale, que solamente intacta en táctico, balón claro. Entonces, el error de esto semántico es que el tipo de literal es y el tipo de la variable es un entero y no puedo hacer esa asignación. Vale, vale? Esto es lo mismo. Aquí por ejemplo, imaginaos que es una variable, la variable y le estoy intentando que es tipo ir solo debería recibir un aire y le estoy intentando meter una cosa que es una vale, no, no puede sin prácticamente igual si cuela, pero se mantiene a gente, ya te digo yo que no cuela, va, entonces es básicamente, pues por eso lo hacemos. Aquí vale valor semántico, como comentaba, este lo escribe casi todo. Entonces, para cada una de las cosas lo que hace es simplemente es simplemente ir a la expresión y decir. Oye, tú eres una ejemplo que es una constante, es decir, que tiene triple. Este sería la agrupación de estas 2. Sería un block triple como bueno, triple expresión, perdón, y dentro de ello cada uno de ellos es una triple expresión. Mal, pues deberíais oye, para cada uno de las triples expresión que tienes en tu voz y cada uno de tus hijos comprueba que tienen el tiempo correcto, no sea aquí en medio, me hayan metido otra cosa que no debería y así es cómo conseguimos dar errores de tipo. Una vez tenemos el equipado que dado lo que hacemos es. Vamos a ver, este que lo que busca son cosas que nos estén usando. Este visitó desde el punto de vista funcional, no es ningún requisito del sistema, pero sí de que las expresiones que hagas sean compatibles con el resto de sistemas de y estén bien. Por ejemplo, si yo aquí ahora me metiera. 2, o era, voy a arreglar un poco esto así lo expresó en esta jornada. Vale, es que tengo esta expresión, la habéis todos, no me imagino que sí porque hasta ahora estaba diciendo entonces aquí algún problema, sin táctico, pregunta. Vale algún problema semántico tampoco Verdon Sí sí sí arrobas. Bueno, no tenía que haberlo hecho, la idea es que no lo hubiera visto antes, pero no me vale así algún problema semántico, no lo haga, vale, perfecto, no hay ningún problema semántico, pero hay algo que veáis que si estuviéramos haciendo en el Inter o el de Eto’ o, estuviera diciendo algo. Si al Senado no se usa, claro, vale. Pues esto es lo que estamos haciendo con este, visitó y es como lo arrancaba, y el resto de compilado nos vale, es un visito, que se recorren las definiciones, y para las definiciones lo que hace es mirar en la simbólica y si se estaba usando, perdón. Si se está llamando, por ejemplo, en el caso de lo que hace es que cada vez que aparece una define una llamada a ese prefijo en una symbol de Ibon le añade un uno en el número de llamadas. Entonces cuando esté prefijo cuando éste, cuando este visitó el pasa, que es el último en pasar de semántica, ya deberían estar todos bien contados. Entonces, si yo llevo aquí y las me está diciendo que para eso hay cero llamadas que interpretó que no se está usando y entonces es cuando avisó al usuario y le digo oye prefijo nosotros como digo no es un error de compilación no es algo que me impida continuar, ni mucho menos, pero sí que son cosas que al final o digo pues ayudan a no tener errores al código; estoy más limpio y además eso lo hace como este, visitó Bale en concreto lo que lo que busca es que la base, si se define, se use, y que los equipos que se definan se usan. Yo creo, yo creo que lo habéis entendido bien, no o queréis hacer algún ejemplo de ejecución con esto. Un buen ejemplo lo he entendido, lo entendió pero ninguna duda, sobre todo si estos bichitos si se llaman o hay un sitio donde se impongan, mira empaparse. Cuando nosotros generamos nuestro a haber construimos nuestro paseo. No sé qué le metemos el input y aquí lo primero que tenemos un método que es vale el bien, una vez lo llamamos. Lo que ya empieza a hacer es crea el visitador con los toques y ya empieza a aceptar cosas. Esto para la sintaxis vale. Esto es solo la del Ártico. El semántico que está si no me lo caro el semántico tiene lo mismo, tiene una clase de lanzar para lanzarlo, son todos como como componentes. Vale, o sea, tú puedes ejecutar uno sin tener que ejecutar el resto de las fases de entonces. Aquí cuando le dices, oye, vale semántico, dame el árbol de sintaxis anotado, el perdón, dame lenguaje intermedio, pues entonces es cuando ella lanza los los bichitos. De hecho, mira los enfermos por este orden, primero el cheque y luego el definición y luego Cole y el último siempre el último el último es el de los warning del Ford, años más o menos respondía a duda! Ese era era eso que veía que había mucho en pista, pero no entendía. Ordenó el sitio como quien llamaba todo esto. Eso pues se hace así y de hecho la ley que anda por ahí es esta visteis que tenía un montón de parámetros. No? Esos parámetros realmente lo que hacen es enchufar y desenchufado ilícitos. Le dice que se lance y al final es cómo consigues modificar el comportamiento del compilado. Es el patrón de voy enchufando filtros, y quitando filtros, y gracias a los vistos. Pues es muy sencillo, porque al final todos reciben la misma estructura y la recorren. De la misma forma, lo que cambian es el comportamiento. Vale. Pues entonces, esta parte de cómo hacemos el análisis semántico, más o menos lo controlamos alguna duda. Sale perfecto, pues vamos a ver más o menos rápido lo que es la parte de generación de código, y, pero más o menos rápido, no me voy a meter mucho porque son 34 además esta parte sí que la quería dejar para para tocarla, para ir trabajando mella en las siguientes sesiones, vale encerrando esto, bueno, que tampoco sé si con el resto de formaciones terminaba y es un poco antes o terminado, y a la hora exacta, eso, como hacía, no creo que terminamos abandono al abordar, no lo recuerdo, pero no la verdad. Fue nombrado menos -10. Creo que fue nombrado. Perfecto. Son mi 35. Vale. Pues vamos a hacer una pequeña pasó por generación en generación de código. Si os dais cuenta en esta carpeta, que es bueno que nacen de código y rgen, que es lo de intervinieron, representáis una representación intermedia, se podía matar a estos problemas. Me da igual. Lo que tenemos es bueno, pues las las clases, igual que teníamos en París, que teníamos nuestro pasador, y el lema que teníamos, el generador de lenguaje intermedio, pues tenemos la ley, que es la que nos va a lanzar, dependiendo de la configuración una u otra. Si es si lo que queremos es el esquema, dependiendo de cada cosa, nos va a lanzar una bota aval. Cómo podemos saber que tenemos dentro la generación de código o cuál es nuestro lenguaje? A dónde queremos llegar? Por las carpetas que hay es bastante sencillo esto de aquí lo vais, estamos otros, se puede generar Java, se pueden generar Aizoon, que se pueda generar, no es específico de este proyecto, sino que es una herramienta que eso pensó si se construye para diversos proyectos, pues de repente un fin de semana llega una de un chaval que además de la Universidad de Oviedo, que hizo la generación de, y ahí quedó por si alguien quiere usar un proyecto futuro, que quien quiera hacer una generación de códigos de César lo mismo la pueden meter por ahí y entonces automáticamente generaría fichar. Es bastante extendido en ese sentido y lo mismo para el esquema, el esquema de esa era ese y Eidson que os comenté al principio en el que nos decía. Todo lo que había hecho durante durante la compilación, entonces la dejaba, que quizá sea la que más nos interesa. También tiene su clase principal. Esa clase principal es un poco como el orquestador, que lo que dice a los a los bichitos es. Oye, tú Lánzate. Primero tuvo bastante después esa cosa más. Luego los distritos que los éxitos es lo importante a mí me gusta llamarlos como el orden que los voy a lanzar vale sea así y este es el primero. Pues me voy a poner un uno si estoy aquí es el último y no estoy seguro de que vaya a meter más por el medio, le metió un número muy grande y entonces, por ejemplo, esto de 21 simplemente es saber qué va a ser el que más tarde voy a lanzar o bueno a veces uso otra terminología, pero ya digo, es el que más tarde voy a lanzar, vale? Eso no hay fallo. Entonces, lo primero que tenemos que hacer antes de generar código en este tipo el tipo sabéis si existe o no y es un tipo primitivo. Pregunta su presencia bale perfecto. Así ha inscrito este tipo, en escribe, existe tal cual, está escrito, no? Y qué podríamos hacer, o sea, si eso ocurre algo cercano lean, vale? En este caso perfecto, y imagínate que te digo que me quise, se ve, hay un tipo primitivo que se llama. Calendario vale un tiempo primitivo Calendario no son tiempos primitivos Qué hacemos en? Podemos pasar esto si usar un tipo primitivo no está vale, pero ya me estáis haciendo transformaciones. Ya me está sacando lo que se llaman proyecciones del sistema de tipos de Essex de ese al sistema de tipos de. Tenemos que intentar mantenerlos mucho más simple, porque lo que quiero intentar expresar es que esto de aquí es un, es un campo libre; o sea, esto es un tipo siempre. Este tiempo se te ocurre como pasarlo épica o vale sin mira, podría ser una solución. Es lo mismo, es lo que estaba diciendo. Son proyecciones de tipos cuando no es el tipo o cuando el tiempo no es definido, pues le casco uno ahí metes; lo que quieras, si son muy bien, o sea que lo íbamos a ver luego ver gracias a la vez como estaban es bueno. Lo que quiero decir con esto es que antes de poder ponernos a generar código tenemos que recorrer todo nuestra nuestra sintaxis para encontrar problemas como este vale. En este caso vamos a buscar. Mira, aquí estaba el de hoy cuando tenemos por ejemplo de estas que nos dicen que es de cualquier tipo evitar que se expresa así conjunto. Esto es un tipo sexual, una marca, es un tipo y es el tiempo, cualquier cosa entonces me encajaba como hacemos. Es bueno, pues como y entonces, cuando recorremos es es una buena práctica avisar al usuario de que que vamos a realizar esa transformación, no sea que luego se lleve sorpresas, vale decirle. Oye, este tiempo de aquí no tienes ni tú claro lo que es, porque me has puesto un punto, yo te lo voy a sustituir por ahí; es lo que hacemos aquí y lo que decimos es un warning, vale, hay otros que directamente no podemos representar dentro de las proximidades y es mayor. Bueno, si quieres un estudio sobre las prioridades y expresiones tengo por ahí bastante no puedo pasar, pero yo diría que me o berenjena les falla. Lo que quiero decir es que las prioridades y es mayor que la dejaba, es decir, todo lo que podamos representar en SMS no se puede representar. Hay cosas que no se pueden porque no nos lo permite. Por ejemplo, a veces tenemos tipos que pueden ser una cosa u otra, de tipo cual sea. Imagínate Neil puede ser de tipo o podíamos decir que igual con herencia de muchos sitios, y además no nos vamos a liar. Hay cosas que no se pueden representar, intentamos expresión simples. Por eso tenemos que hacer toda esta visita de los nodos para asegurarnos de que, de que todo lo que vamos a generar es correcto, vale. Esto sería como un análisis táctico semántico, todos juntos, pero para ver si la expresividad que estamos usando en sexo es compatible con la que queremos hacer en nuestro lenguaje final que estaba entonces. Una vez esto ya está, ya está hecho, y ahora vamos a ver más detalle en próximas sesiones que si no me da tiempo a acabar lo que hacemos es. Empezamos con con los generadores. Lo primero que hacemos cuando tenemos una clase dejaba un sencillo claras, claras, habremos Ramos y medio, que va todo el código correspondiente a la clase. Esto lo vamos a corresponder con una. Así es decir, que nos encontremos una cosa de estas. Pues lo vamos a trabajar aquí y lo de dentro. Pues la analogía que tenemos es que se iba dentro por dentro del cuerpo de la clase, de eso es lo que yo creo que lo habíamos comentado un poco antes, así por alto lo que hace este. Este generador vale el público simplemente interfaz de interfaz y si no, pues nada, y a continuación lo que hace es delegar en el resto de the Visitors la generación específica de cada cosa, por ejemplo, a continuación aquí que es lo que tendríamos, pues seguramente tendríamos la definición de Private y Bale y lo dejaríamos así esto. El film lo que hace es pues que lo mira que era esto, una triple que es lo que me interesa visitar una triple consta y todos sus hijos, porque dependiendo de cada cosa teniéndolo, pese a esto o lo que sea, esto me va a ser un tipo u otro. Pues entonces lo que hago aquí es que voy aprendiendo, aprendiendo y voy añadiendo dentro de mi clase esto y esto me lo va a dar el premio y no es nada, debe tener el abajo. Si por ejemplo, el el tipo que está expresado dentro de la no lo que sea lo meto ahí vale el tipo que es una lista, la lista adelante, que no es una lista de todo el tiempo, en este caso es como se acordó de disenso. Sustituyó por objeto es lo que estoy haciendo aquí. Que no es un objeto. Bueno, pues entonces ya tengo que mirar más detalladamente. Y cuál es? Y aquí es donde podemos ver los tipos que soportó expresión, soportó el tipo soportó, el tipo Inter -soportó el tipo de, y luego soportó el cualquier otra cosa, cualquier otra cosa que estén fuera de Interior o de ahí va a ser de tipo objeto, siempre y cuando no sea, por supuesto, un tipo que nosotros hemos creado un tipo complejo, como puede ser. Pues si no es ese tipo, soportamos estos tres hasta aquí. Alguna pregunta, hasta los tipos bale? Perfecto. Entonces no, perdona lo que había, exactamente lo es que voy a todas las piezas. No te preocupes, ninguna duda. Aquí el interior de de sí sí sí nos termina. No conozco, pero están traduciendo correcto. Sí; qué pasa si no es obligatorio ese campo? No me necesita valor, deja el ine si se lo que me dice, si te refieres, por ejemplo, si tuviera, a ver si estoy. Aquí no, si quieres estar relleno o no es obligatorio, no nos sea; o sea, yo puedo ponerla sí escribiré Private. Así si simplemente le estoy definiendo que va a haber una variable de tipo que cae una variable que va a tener y Point y luego la puede utilizar. Como quieras hay aquí uno o 2, automáticamente, por detrás lo que hace es que ahí se le está asignando el valor 0. Claro que no es lo mismo. No es lo mismo 0, que que ya sí? Bueno sí entiendo. Sí quizá sea una cuestión a mirar. Bueno, casi filosófica. Diría yo. En este caso, si no es lo mismo que no para un campo de esos podría ser no decir ahora mismo porque son cuestiones de diseño, valla o sea estoy pensando a bueno esto para empezar a entender y y estoy pensando la diferencia inicial y y por detrás esto se sabe si no. Bueno, pues si realmente tampoco sé hasta qué punto hay mucha diferencia sea a la hora de consumir. Los datos podría ser. Podría ser mi hermano me apuntara lo único que me habéis dado en esa expresión. Le estás diciendo que tiene que tener obligatoriamente un valor entero. Entonces ahí no cabe la posibilidad de que no exista. Será mi duda. No sé si hay joder, si hay alguna manera de decir. Con eso sí tiene una interrogación si tuviera un disco bueno en este disco, que no tendría mucho sentido porque podría tener más de una edad, pero una interrogación sí que está indicando que este valor puede estar o puede no estar. Entonces sí que poner a punto de Pablo que muchas gracias, pero no estaba dando cuenta aquí esto, pero es correcto, porque al menos algún valor eso fue, pues gracias, Pablo, como ha pasado alguna vez, de transformar enteros a base de datos, a íntegro, y depende de si esa obligatorio no me ha llamado la atención. Perfecto. Esto al final acabó lo de coger los tipos de Essex y pasarlos a es lo que son proyecciones de tipos de un sistema, de a otro sistema de tipos. Lo más probable es que los sistemas de tipos se han parcialmente compatibles, que eso, si estáis como decías tú. Pablo de tocar bases de datos y además lo sabéis y sobre todo con el sostiene por ejemplo se puede no ha encajado en la vida. Entonces lo que intentamos hacer es las aproximaciones, que podamos teniendo en cuenta el contexto. Habla, por ejemplo Sí. Sí sí esto, si nada fuera opcional. Si que se utilizase como apuntaba, estuvo fuera un error de ponerlo como tipo al tener que tener un valor obligatoriamente, bueno, pues se aproxima muy bien, porque es de tipo entero y además nos obliga a tener al menos un valor en esa propiedad. Entonces eso al final son decisiones que tomar a lo largo del proyecto de este tipo, a que lo acercamos al oeste, a que nos acercamos, por ejemplo aquí el de acercamos de ahí y tenemos que importar; el, creo que es el de YouTube no tengo muy claro, pero porque la es el de YouTube no se cuele porque interpretamos que el más cercano dentro del sistema era el de ese cuele se puede cambiar si no habría ningún problema de análisis. Cambiar un estilo allí donde ponga el importe. Alguna duda más antes de avanzar un poco más, no vale? Perfecto. Pues nada. Entonces vamos a ver ahora el siguiente que veníamos aquí abajo que sería no. El constructor bueno, pues el constructor tiene su, su o específico Bale este, este visitó lo que nos va a visitar, pues va a ser bueno. Primero, generar un constructor vacío no es ningún problema cada vez que encontramos una definición de estas misioneras, un constructor nacido para esa definición, es decir, es público, que es así bueno ya en lugar del coche y para el constructor, que ella es un poco más complejo porque lleva, lleva las propiedades de la clase, pues lo que tengo que hacer es recorrer las propiedades otra vez de alguna forma y luego meterlo. Esto en los parámetros del constructor es es bastante simple. Este sinceramente lo único que hago es lo mismo de antes. Pues mira los tipos un poco para recorrer expresión sin más. Aquí bueno, igual se podría heredar del otro, modificar un poco el comportamiento del método que fuera necesario. Por ejemplo, este igual no voy a implementarlo, pero bueno, son esas a veces del código que se hacen, que la estoy viendo ahora en directo, de que hay un método implementado igual en dos sitios. Lo siguiente que hacemos es el doblete. Que, bueno, por 100 esto no es la versión final, o sea, la versión final se entregará en marzo. Entonces, si hay alguna cosa así que es una burrada, me podéis ir diciendo y amablemente la voy a corregir. La fifa antes de entregar un proyecto es algo que yo creo que hemos tenido. Nos gustaría tener. Vale, lo que hacía, lo que decía es como dependen cada una de estas triples expresión de estas definiciones lo que hacemos es me recordaba a esta generación, para esta está y generalmente y confío en que previamente el que definió las fieles, las las propiedades de la clase, las haya definido bien como el tipo, porque digo que confío, bueno, pues porque yo aquí muchas veces en código plano voy a escribir y cosas como disputó. El nombre de la clase igual del nombre de la propiedad igual al valor que voy a meter en el parámetro, vale? Entonces, si yo estoy haciendo disputó y el film la ha hecho mal, ha hecho mal. Luego, a la hora de pasar la, pues no va a compilar por lo mismo para tener un error, si Man o Bale. Eso es lo que se encarga el Inglaterra y luego el le importe. Lo único que hace es este es licitar para el aval de igual, lo hacía el otro, no estoy ahora mismo, seguro tendría que mirarlo y voy un poco de tiempo. El lo que hace es lo lanza uno de estos, creo que es el que generan las. Fins lo lanza cuando acaba de lanzar el resto y le pasa aquí en el parámetro. Si alguna de las propiedades había sido o ha sido una lista aval, entonces es muy sencillo. Lo único que tengo que hacer es meter a privado el fichero. Es lo que decía. Si el lugar de que esa sea otra me parece que hay una doblete, pero no creo que sea igual de usar. Esa es un doblete y ya está bien. Habíamos modificado el importe que se va a aplicar a todas nuestras clases o generadas y que más. Vale, Ramos, no sé cuánto, aquí lo que hago nada es si este es el que hace el disparo de éste es el 2, tres lanzó el 3, cuatro el 5, el 21 lo lanza aquí al final es López, ya es el último de todos. Cuando acababa de hacer todos, pues ya lanza ese efecto. Esto lo que da como resultado después de lanzar todos estos importes es un objeto que se llama Bale y tiene a su vez. Este objeto. Le un método que es tesoros. Es una lista de tipos trimestre y donde el dupla vale. El primer parámetro de cada uno de los elementos es el nombre de la clase, es un punto y punto. Bueno o igual lo lleva ahora. No estoy seguro de si aquí estoy o se le se le inyecta más tarde y en streaming. Pues lo que lleva el contenido de la clase, de forma que ya tengo una lista o que sería al final como una tabla donde tengo nombre contenido nombre contenido nombre contenido y eso es lo que se recoge desde los diferentes clientes como clientes, perfiló. Por ejemplo, la ley lo que hace es coger esa lista en algún punto de aquí nos abrasa durante el cual punto y escribir los ficheros en consola vale la la tele, y es lo que yo os enseñé. Sin embargo, como decía esta, esta librería, su intención, es usarla de forma programática, es decir, que la arquitectura semántica y le diga oye, Resources para esto, y consiga la fuente y ellos ya los los importes, la arquitectura semántica y ese es un poco a grandes rasgos, como está implementando el traductor que usamos. Para sincronizar la arquitectura semántica y ahora los seis minutos que quedan dudas que seguro que alguna hay en esta última parte, corre muchísimo o comentarios para la próxima sesión antes de ella. Dejarle marchar y que seáis libres. Ha entendido que esto es una librería genérica que usaba muchos proyectos, no de exactamente si de hecho y bueno, esperar que quería compartí. No soy yo, me daba Zuma, me parece a mí; de hecho, este proyecto en principio es. No sé si me veis. Si me habéis en principio, es un proyecto pensado que nació en huesos. Grupo, investigación semántica, se desarrolló un poco aquí y luego, cuando entramos en el proyecto Hércules, a raíz de que vivimos de que estaba dando la misma necesidad casi allí la que teníamos nosotros aquí. Pues hicimos una versión para parar Hércules que se está que estoy enseñando, la nuestra, bueno, pues es un poco más extensa, tiene más traductores y demás, pero me pregunta si es una herramienta que se espera, que se usen más proyectos, pero quiero decir. Si en el mantenimiento tuviéramos que tocar código otro en la universidad, o tendríamos que hacer una petición a centrar? Ahí están las dos opciones. O sea, os voy a enseñar, estáis viendo ahora. Este es el que hicimos para la Universidad de Murcia, están en Hércules barra, y b, se vale. Este es vuestro para tocar con lo que queráis y luego, además de este, hay un repositorio puesto a nuestra organización que básicamente continúa lo mismo, bueno, un poco más extendido desde el hueso. Aquí es donde la comunidad Open contribuye más porque se entiende que es como la fuente de verdad. Pero cualquier cosa que tuviera que tomaremos vuestro nombre, vuestro o en el nuestro, y luego integrarlo mal vuestro. Eso ya es gestión del código donde quiero tener la fuente de verdad o quiero continuar con ellos o igual yo, que se de paisano, y lo previsto: la basura, pues lo y en vuestro for aparece bale. Eso es respecto a manejar un poco donde está. Más, pero mientras algunos quedamos, pocos. E, si no movido vaya, lo queremos dar más duro de lo que pensaba les gustaron compilados. Qué pena! Una duda que tengo no nos mostrará si no, esto no volveremos. Ha dicho que podemos ver entrenando a nuestro las aplicaciones, exactamente lo que tengo pensado para el viernes, que es el día que vengo y otra vez al final. Las últimas horas es que si las tenéis instaladas de casa mucho mejor; si no, no pasa nada. Si estábamos allí de hecho las sesiones para eso vamos a ir instalando, pues el plug-in de Anglet y vamos a empezar a tocar cada una de las partes de cada uno de nosotros a ver qué tal sale esa prueba de concepto. Entendemos que esto estaba en la eso. Si queréis el enlace por el chat, mikel apodo de demandar por el chat, si el que pase es el de vuestro foro y vale para que sea el proyecto, pues entonces bienestar bueno, tenemos instalarlo y las dudas que tengan efecto o que, pues no, si alguna duda más, pero el tálamo antes de la sesión. Yo, como quiera o sábado, os digo como queráis, porque entiendo que después de estas sesiones de formación, tendréis otras cosas que hacer por vuestra cuenta tenéis una vida como cualquier persona. Entonces, si me decís que prefiero estar, allí estaremos, ahí no tengo ningún problema, y ahora sí me decís, no lo uso en mi día a día, y es que me voy a morir de risa. Entonces ya continuamos a partir de la instalación, no? De nosotros, los que quedamos en la Universidad de Murcia, no, si ninguno actualmente lo instalamos allí vale, o sea, lo estábamos todos juntos y así si hay algún problema, pues nos ayudamos entre todos. Valgan perfecto. Pues nada, yo creo que lo dejamos aquí no faltan dos minutos. No creo que Reyes me rinda mucho por dos minutos. Va a ser rey atraco haciendo la comida? Ya me imaginé entonces nada para la grabación.

Propietarios

Proyecto Hércules

Comentarios

Nuevo comentario

Serie: Formación Miércoles 27 ASIO Izertis (+información)

Descripción

Video