Luego de tanto tiempo en trabajo, PseudoD 2.2.0 esta listo para ser liberado! ya ha sido oficialmente publicado como la nueva versión de PseudoD y veamos ahora una lista completa de que trae de nuevo:
Este es un corto resúmen de la lista de cambios, si vás a leer toda la lista puedes no leer esta sección.
metodo
y procedimiento
actúan como aliases de funcion
y se agregaron como azúcar sintáctica.hereda
, extiende
e implementa
existen como nuevos mecanismos de herencia: clase A hereda B
y clase A extiende B
son equivalentes a la vieja palabra clave heredar
atributo
, puntero
y metodo
poseen significados diferentes y especiales: sirven para declarar atributos (variables), punteros y métodos con una sintáxis más legible y simple.fijar a
provee la máxima flexibilidad.Aquí una revisión de los cambios que se están realizando actualmente en PseudoD, estos combios serán los últimos en ser realizados antes de liberar PseudoD 2.2.0: luego de realizar estos cambios, PseudoD 2.2.0 será liberado como la última versión estáble y se comenzará el trabajo de PseudoD 2.3.0 el cual será básicamente PseudoD 2.2.0 pero con una nueva BEPD.
PseudoD poseerá un tokenizador, el cual permitirá que el núcleo del lenguaje pase ser como:... read more
Ahora más palabras clave utilizan la función PDvar::ValorDelToken
, permitiendo una nueva sintáxis para los programas, más limpia y legible:
```pseudod
[ Antes: ]
adquirir mensaje
fijar mensaje a {Hola Mundo}
escribir mensaje
nl
[ "escribir" solo acepta variables ]
[ Ahora: ]
escribir {Hola Mundo}
nl
[ "escribir" acepta cualquier expresión: ]
escribir llamar Seno {6} finargs
nl
escribir si son iguales {A} y {B}
[ lo anterior escribe {falso} ]
nl
```... read more
Ahora no necesitas utilizar un navegador web para acceder a la documentación de la BEPD utilizando pdhelpextracter:
pdhelpextractar-autosearch.sh Arreglo | less
Imprimirá toda la ayuda de todo lo relacionado al nombre Arreglo
. Busca incluso en los módulos instalados en la carpeta plugins
por lo cual puedes no preocuparte acerca de configurar la herramienta. Si la instalación de PseudoD se realizó en una ruta no esperada, puedes configurar la variable de entorno $PSEUDODPATH
.... read more
Ahora que la BEPD en PseudoD 2.2.0 sufrio una reestructuración, dejando los archivos tipos.pseudo
y plugins.pseudo
sin apenas uso, se realizarán los siguientes cambios:
tipos.pseudo
: Type TraitsLos type traits (rasgos de tipo) permiten al programa identificar los tipos (o sus caracteristicas) de determinados objetos o tipos.
```pseudod
utilizar tipos.pseudo
[ Tipos también declara la función Asertar ]... read more
Ahora PseudoD 2.2.0 soporta una nueva sintaxis para las clases:
```pseudod
[ Antes ]
clase MiClase
;puntero
:metodo
atributo
finclase
heredar Objeto MiClase
clase MiClaseAbstracta
:metodo
finclase
heredar Objeto MiClaseAbstracta
funcion MiClaseAbstracta#metodo
finfun
[ Ahora ]
clase MiClase hereda Objeto
puntero mi_puntero
metodo mi_metodo
atributo mi_atributo
finclase
clase abstracta MiClaseAbstracta hereda Objeto
metodo mi_metodo
finclase... read more
Ahora, PseudoD posee una nueva estructura de código, donde todo el NIA esta separado en una carpeta indepeniente. Además se esta trabajando en un nuevo tokenizador basado en la clase pseudod::NMemonicoProxy
y una nueva clase PDvar::PDVariante
. Estos cambios se verán en el repositorio en GitHub (https://github.com/alinarezrangel/PseudoD) y el proyecto en GitHub ya acepta pull requests.
Se publicará el código fuente de la página de PseudoD en GitHub dentro de los próximos días para permitir un desarrollo más abierto.
PseudoD 2.1.0 posee un bug importante, cuyo nombre clave es invalidación de punteros por eliminación de relleno.
Nombre | Valor |
---|---|
Bug ID | 1/1/1 |
¿Esta registrado? | Si |
Descubierto el | 20161009 |
Versiones afec. | < 2.2.0 |
Publicación del parche | No (ver nota 2)... read more |
PseudoD ya posee una nueva y mejorada página en desarrollo, en http://pseudod.sourceforge.net/ y esta potenciada por Generation 1 (ver más en http://alinarezrangel.github.io/generation/)
El código fuente de esta página estará disponible proximamente para el desarrollo público.
Ya se agrego a PseudoD un nuevo encabezado: cadena.pseudo
posee funciones de utilidad para manejar cadenas de caracteres. Por ahora, las funciones contenidas son:
Cadena#Concatenar
Concatena dos cadenasCadena#Buscar
Busca una cadena en otraCadena#SubCadena
Selecciona una subcadena de otraSu uso puede ser:
```
utilizar entsal.pseudo
utilizar cadena.pseudo
llamar EscribirLinea
llamar Cadena#Concatenar
{Hola }
{Mundo}
finargs
finargs... read more
Para incluir las nuevas caracteristicas que PseudoD ha agregado desde la versión 1.0.0, la BEPD será totalmente reescrita para aprovechar al 100% las caracteristicas de PseudoD 2.2.0. Este cambio incluirá:
Sin embargo, este cambio es totalmente compatible con viejos programas.
Hace tiempo, PseudoD tenía un módulo de manejo de cadenas en la BEPD (clases.pseudo
tenía una clase Cadena
aún soportada por el resaltado de sintaxis de la IDE de PseudoD). Este modulo fue declarado obsoleto en PseudoD 1.5.0 y ahora, en PseudoD 2.2.0 (proximo lanzamiento) se volverá a ver. Algunas razones por las cuales se piensa agregar este módulo de nuevo son:
Hace tiempo que PseudoD soporta 4 extensiones de archivos (.pd
, .pseudo
, .pseudod
y .psd
) y este post indicará cuando utilizar uno u otro.
Todo archivo que vaya a ser ejecutado con PseudoD debe estar nombrado con la extensión .pd
, es equivalente al .cpp
de C++ o .c
de C.
Todo archivo que vaya a ser importado desde PseudoD (generalmente con utilizar
) debe estar nombrado con la extensión .pseudo
. Es equivalente al .h
de C/C++.... read more
El sistema de entrada y salida de PseudoD (entsal.pseudo
) se vuelve mucho más flexible gracias a las literales en llamadas a funciones. El único cambio es que ahora los argumentos a funciones soportan literales de cadena, tal como fijar
, pero a excepción de estas dos ordenes, ninguna otra acepta literales de cadena (ver más abajo para una explicación), y gracias a esto, el "Hola Mundo" pasa a ser:... read more
Ya la version del repositorio git de PseudoD soporta literales de cadena! su uso es el siguiente: puedes insertarlas junto al nuevo operador a
o donde se espere una expresión cualquiera:
fijar mensaje a {Hola Mundo}
fijar saludo a «Hola»
si son iguales respuesta y {Que tal!}
escribir saludo [ el resto de las ordenes aún no soportan las literales ]
fin
Además, se mejoro el interprete interactivo de PseudoD para un uso más facil.
Recientemente se logro optimizar PseudoD (version disponible en el repositorio git) para que ejecutara un programa de prueba aproximadamente en 364 milisegundos (tiempo original: 1400 milisegundos), la proxima mejora sera agregada dentro de unos dias (esta en desarrollo): utilizar ValorDelToken
para las lecturas de fijar
y llamar
, para despues utilizarlo en cualquier lugar.
Algunas caracteristicas en PseudoD han dado lugar a código poco legible, o a código no intuitivo. Estas caracteristicas serán eliminadas de forma total para PseudoD 3.0.0, y mientras, se proporcionarán valores de reemplazo.
La primera caracteristica en ser eliminada será el #(Final).
(delimitador de cierre). Ya con PseudoD v2.1.0 se puede evitar su uso en las clases, pero aún no en llamadas a funciones. Su principal reemplazo en clases es:... read more
PseudoD v2.1.0 ha llegado, y aunque no tenga cambios mayores, posee elementos que facilitarán el desarrollo en PseudoD:
Arreglo
BibliotecasDinamicas.LlamarOO
Referencia#fijarAttr
Arreglo
La nueva clase ubicada en algor.pseudo
llamada Arreglo
, permite el desarrollo de estructuras de crecimiento dinámico, sin tener que preocuparte por el manejo de la memoria:... read more
Como ya se ha dicho antes, PseudoD soporta 2 tipos de modulos dinámicos:
Pero ahora con PseudoD 2.1.0, dentro de los módulos en C++ dinámico existen unas categorias:
```
// Módulo en C++11 dinámico orientado a procedimientos
// Valido en todas las versiones
Proximamente se lanzara una nueva versión de PseudoD: PseudoD v2.1.0. Esta nueva versión (siguiendo el semver) es compatible con PseudoD v2.0.0 con las siguientes caracteristicas:
Arreglo
y solucionado un bug en la implementación de Referencia#fijarAttr
.Y se esta trabajando en lo siguiente:... read more
Proximamente se realizará un cambio de estilo a la página de desarrolladores, y junto a esto, se publicará la BBL de forma oficial.
La BBL (Biblioteca de Bibliotecas de PseudoD) es una colección de modulos del NEA, modulos dinámicos y modulos en PseudoD de facil acceso y descarga. Actualmente la BBL esta bajo pruebas y no se tardará mucho en publicarse de forma oficial.
Por ejemplo, con el manejador de la BBL, llamado pdmodulo
, instalar un módulo es tan sencillo como:... read more
Desde la versión 2.0.0 de PseudoD, se cambiara el sistema de versiones al de semantic versioning(ver página oficial).
Ahora la página principal de PseudoD(http://www.pseudod.com) posee un nuevo estilo basado en el framework de CSS W3.CSS(ver página oficial) muy similar al que proximamente tendrá la página de desarrolladores.
Ahora, PseudoD posee una nueva wiki que esta en trabajo en http://www.pseudod.com/wiki/.
Desde PseudoD u1.9.0 se esta trabajando en un proyecto llamado PseudoWeb, el cual es un preprocesador de HTML, de esta forma, se puede mezclar HTML y PseudoD para generar una página web. Actualmente el proyecto esta en fase de pruebas y no ha sido liberado, sin embargo, falta muy poco para su lanzamiento.
Un ejemplo de página generada es:
```
<meta charset="utf-8"> <title>Pagina de ejemplo</title>
{
adquirir mensaje
fijar mensaje =* Hola!
Mundo!
llamar PseudoWeb#Escribir mensaje #(Final).
}
```... read more