Releases: jgalvan/idle
Releases · jgalvan/idle
Sort, tests y return vacío
Idle Language v0.8.0
En este avance se agregó:
- Función de sort para arreglos.
- Ajuste de tests
- Se añadió return vacío para funciones void
Changelog
v0.7.0
En este avance se agregó:
- Operación de adición con strings.
- Arreglos.
- Modificadores de acceso para atributos (público y privado) de objeto, excepto arreglos, y acceso a atributos públicos.
- Asignación de valor en declaración, junto con inferencia de tipo, sin incluir cambio de tipos.
En el avance pasado, aunque no se subió, se había agregado:
- Máquina de memoria de ejecución para la máquina virtual.
- Máquina virtual: ejecución de expresiones aritméticas, secuenciales, estatutos condicionales.
- Llamadas a funciones, chequeo de parámetros y valores de retorno.
- Parámetros por referencia.
- Memoria de objetos, constructores y llamadas a funciones miembro de objetos.
- Herencia simple y llamadas a funciones padres con
super(). - Funciones de lectura y escritura.
- Se cambió declaración y alcance de variables, para poderse declarar y contener dentro de bloques.
- Modificadores de acceso para funciones.
- Importación de clases de otros archivos.
v0.5.0
En este avance, se agregó:
- Generación de código de funciones
- Se revisa correspondencia de número de parámetros y tipos al llamar a función.
- Se revisa correspondencia de tipo de retorno y el tipo esperado de la firma de función.
- Se despliega error si la función no es void y no se regresa un valor de retorno.
v0.4.0
En este avance, se agregó:
- Estatutos de control de flujo:
- Decisiones (if, else if, else): puede contener un sólo if, un if con varios else if's o un if seguido de cero o más else ifs y finalizado con else.
- Ciclo while
- Ciclo for: Se realiza una asignación antes de comenzar y otra al finalizar cada iteración antes de volver a evaluar la expresión del ciclo.
- Se utiliza lógica booleana. Se probó con condiciones y ciclos anidados y funcionan correctamente. Se marca error de tipo si se presenta con un una expresión condicional que no se resuelve en un valor booleano.
v0.3.0
Desde la entrega pasada, el avance en esta entrega incluye:
- Tabla de consideraciones semánticas
- Generación de código de expresiones aritméticas, lógicas y estatutos secuenciales
- Generación de errores para discordancia de tipos en expresiones.
- Corrección de chequeo de llamadas a funciones de objetos
- Se añadió chequeos faltantes de validación de existencia de tipos (primitivos u objetos)
v0.2.0
- Actualmente nuestro programa ya cuenta con las funciones para crear y utlizar las tablas de variables y funciones. Nuestro programa ya puede checar que cuando se utilice una variable esta ya haya sido definida, checando en todos los scopes posibles. Tambien se puede realizar esto para las variables que pertenecen a la instancia de una clase. En cuanto a las funciones, actualmente se puede checar si al llamar una funcion esta ya existe dentro de la clase o dentro de alguna clase padre, falta poder reconocer funciones que se accesan mediante el operador de punto y los constructores de alguna clase. Si se encuentra algún error, estos se reportan al usuario junto con el numero de línea y nombre de la variable/función.
v0.1.0
- Léxico y sintaxis funcionales, se corrieron pruebas, incluido pruebas con generación de árbol para comprobar aceptación adecuada, marca errores de sintaxis y dónde suceden.
Propuesta
Memoria, máquina virtual y arreglos
Idle Language v0.7.0
En este avance se agregó:
- Operación de adición con strings.
- Arreglos.
- Modificadores de acceso para atributos (público y privado) de objeto, excepto arreglos, y acceso a atributos públicos.
- Asignación de valor en declaración, junto con inferencia de tipo, sin incluir cambio de tipos.
En el avance pasado, aunque no se subió, se había agregado:
- Máquina de memoria de ejecución para la máquina virtual.
- Máquina virtual: ejecución de expresiones aritméticas, secuenciales, estatutos condicionales.
- Llamadas a funciones, chequeo de parámetros y valores de retorno.
- Parámetros por referencia.
- Memoria de objetos, constructores y llamadas a funciones miembro de objetos.
- Herencia simple y llamadas a funciones padres con
super(). - Funciones de lectura y escritura.
- Se cambió declaración y alcance de variables, para poderse declarar y contener dentro de bloques.
- Modificadores de acceso para funciones.
- Importación de clases de otros archivos.
Changelog
v0.5.0
En este avance, se agregó:
- Generación de código de funciones
- Se revisa correspondencia de número de parámetros y tipos al llamar a función.
- Se revisa correspondencia de tipo de retorno y el tipo esperado de la firma de función.
- Se despliega error si la función no es void y no se regresa un valor de retorno.
v0.4.0
En este avance, se agregó:
- Estatutos de control de flujo:
- Decisiones (if, else if, else): puede contener un sólo if, un if con varios else if's o un if seguido de cero o más else ifs y finalizado con else.
- Ciclo while
- Ciclo for: Se realiza una asignación antes de comenzar y otra al finalizar cada iteración antes de volver a evaluar la expresión del ciclo.
- Se utiliza lógica booleana. Se probó con condiciones y ciclos anidados y funcionan correctamente. Se marca error de tipo si se presenta con un una expresión condicional que no se resuelve en un valor booleano.
v0.3.0
Desde la entrega pasada, el avance en esta entrega incluye:
- Tabla de consideraciones semánticas
- Generación de código de expresiones aritméticas, lógicas y estatutos secuenciales
- Generación de errores para discordancia de tipos en expresiones.
- Corrección de chequeo de llamadas a funciones de objetos
- Se añadió chequeos faltantes de validación de existencia de tipos (primitivos u objetos)
v0.2.0
- Actualmente nuestro programa ya cuenta con las funciones para crear y utlizar las tablas de variables y funciones. Nuestro programa ya puede checar que cuando se utilice una variable esta ya haya sido definida, checando en todos los scopes posibles. Tambien se puede realizar esto para las variables que pertenecen a la instancia de una clase. En cuanto a las funciones, actualmente se puede checar si al llamar una funcion esta ya existe dentro de la clase o dentro de alguna clase padre, falta poder reconocer funciones que se accesan mediante el operador de punto y los constructores de alguna clase. Si se encuentra algún error, estos se reportan al usuario junto con el numero de línea y nombre de la variable/función.
v0.1.0
- Léxico y sintaxis funcionales, se corrieron pruebas, incluido pruebas con generación de árbol para comprobar aceptación adecuada, marca errores de sintaxis y dónde suceden.
Propuesta
Generación de código de funciones
Idle Language v0.5.0
En este avance, se agregó:
- Generación de código de funciones
- Se revisa correspondencia de número de parámetros y tipos al llamar a función.
- Se revisa correspondencia de tipo de retorno y el tipo esperado de la firma de función.
- Se despliega error si la función no es void y no se regresa un valor de retorno.
Changelog
v0.4.0
En este avance, se agregó:
- Estatutos de control de flujo:
- Decisiones (if, else if, else): puede contener un sólo if, un if con varios else if's o un if seguido de cero o más else ifs y finalizado con else.
- Ciclo while
- Ciclo for: Se realiza una asignación antes de comenzar y otra al finalizar cada iteración antes de volver a evaluar la expresión del ciclo.
- Se utiliza lógica booleana. Se probó con condiciones y ciclos anidados y funcionan correctamente. Se marca error de tipo si se presenta con un una expresión condicional que no se resuelve en un valor booleano.
v0.3.0
Desde la entrega pasada, el avance en esta entrega incluye:
- Tabla de consideraciones semánticas
- Generación de código de expresiones aritméticas, lógicas y estatutos secuenciales
- Generación de errores para discordancia de tipos en expresiones.
- Corrección de chequeo de llamadas a funciones de objetos
- Se añadió chequeos faltantes de validación de existencia de tipos (primitivos u objetos)
v0.2.0
- Actualmente nuestro programa ya cuenta con las funciones para crear y utlizar las tablas de variables y funciones. Nuestro programa ya puede checar que cuando se utilice una variable esta ya haya sido definida, checando en todos los scopes posibles. Tambien se puede realizar esto para las variables que pertenecen a la instancia de una clase. En cuanto a las funciones, actualmente se puede checar si al llamar una funcion esta ya existe dentro de la clase o dentro de alguna clase padre, falta poder reconocer funciones que se accesan mediante el operador de punto y los constructores de alguna clase. Si se encuentra algún error, estos se reportan al usuario junto con el numero de línea y nombre de la variable/función.
v0.1.0
- Léxico y sintaxis funcionales, se corrieron pruebas, incluido pruebas con generación de árbol para comprobar aceptación adecuada, marca errores de sintaxis y dónde suceden.
Propuesta
Expresiones de control de flujo
Idle Language v0.4.0
En este avance, se agregó:
- Estatutos de control de flujo:
- Decisiones (if, else if, else): puede contener un sólo if, un if con varios else if's o un if seguido de cero o más else ifs y finalizado con else.
- Ciclo while
- Ciclo for: Se realiza una asignación antes de comenzar y otra al finalizar cada iteración antes de volver a evaluar la expresión del ciclo.
- Se utiliza lógica booleana. Se probó con condiciones y ciclos anidados y funcionan correctamente. Se marca error de tipo si se presenta con un una expresión condicional que no se resuelve en un valor booleano.
Changelog
v0.3.0
Desde la entrega pasada, el avance en esta entrega incluye:
- Tabla de consideraciones semánticas
- Generación de código de expresiones aritméticas, lógicas y estatutos secuenciales
- Generación de errores para discordancia de tipos en expresiones.
- Corrección de chequeo de llamadas a funciones de objetos
- Se añadió chequeos faltantes de validación de existencia de tipos (primitivos u objetos)
v0.2.0
- Actualmente nuestro programa ya cuenta con las funciones para crear y utlizar las tablas de variables y funciones. Nuestro programa ya puede checar que cuando se utilice una variable esta ya haya sido definida, checando en todos los scopes posibles. Tambien se puede realizar esto para las variables que pertenecen a la instancia de una clase. En cuanto a las funciones, actualmente se puede checar si al llamar una funcion esta ya existe dentro de la clase o dentro de alguna clase padre, falta poder reconocer funciones que se accesan mediante el operador de punto y los constructores de alguna clase. Si se encuentra algún error, estos se reportan al usuario junto con el numero de línea y nombre de la variable/función.
v0.1.0
- Léxico y sintaxis funcionales, se corrieron pruebas, incluido pruebas con generación de árbol para comprobar aceptación adecuada, marca errores de sintaxis y dónde suceden.
Propuesta
Cubo semántico, expresiones aritméticas y secuenciales
Idle Language v0.3.0
Desde la entrega pasada, el avance en esta entrega incluye:
- Tabla de consideraciones semánticas
- Generación de código de expresiones aritméticas, lógicas y estatutos secuenciales
- Generación de errores para discordancia de tipos en expresiones.
- Corrección de chequeo de llamadas a funciones de objetos
- Se añadió chequeos faltantes de validación de existencia de tipos (primitivos u objetos)
Changelog
v0.2.0
- Actualmente nuestro programa ya cuenta con las funciones para crear y utlizar las tablas de variables y funciones. Nuestro programa ya puede checar que cuando se utilice una variable esta ya haya sido definida, checando en todos los scopes posibles. Tambien se puede realizar esto para las variables que pertenecen a la instancia de una clase. En cuanto a las funciones, actualmente se puede checar si al llamar una funcion esta ya existe dentro de la clase o dentro de alguna clase padre, falta poder reconocer funciones que se accesan mediante el operador de punto y los constructores de alguna clase. Si se encuentra algún error, estos se reportan al usuario junto con el numero de línea y nombre de la variable/función.
v0.1.0
- Léxico y sintaxis funcionales, se corrieron pruebas, incluido pruebas con generación de árbol para comprobar aceptación adecuada, marca errores de sintaxis y dónde suceden.