Archivo de la categoría Programación

GEOS NewBasic



Había oído hablar del NewBasic que venía con NewDeal Office 3.2 en 1999. Me quedé impresionado con él. Un entorno de desarrollo basado en lenguaje BASIC, que adoptaba la aproximación basada en objetos de Visual BASIC.

NewBasic o NBASIC fue creado por NewDeal Inc y se incluyó por primera vez en NewDeal Office 98, la versión del entorno operativo basado en GEOS 3.0. Incluía un entorno de desarrollo integrado o IDE (NewBasic Builder) en donde podíamos arrastrar componentes, escribir código, compilar el programa, y generar una versión autocontenida o standalone. Casi lo mismo que hacía VB.…

Continuar leyendo...

Retrospectiva al resaltado de sintaxis



Después de publicar Resaltado de sintaxis en Take Command me puse a pensar en lo impresionante que fue esta funcionalidad a nivel de programación.

Recuerdo que primera vez que vi el resaltado de sintaxis tal y como lo entendemos actualmente fue con Quick BASIC 4.5. El editor de código que traía su IDE te formateaba automáticamente el código a medida que lo escribíamos. No lo resaltaba con colores, pero si ponía las palabras clave en mayúsculas. Como permitía ejecutar el código interpretado además de compilado, una característica que tendríamos hasta Visual Basic 6, era capaz de detectar errores avanzados en el código.…

Continuar leyendo...

Resaltado de sintaxis en Take Command



He hablado a menudo de Take Command de JP Soft (Rex Conn). De hecho lo uso desde 1991 en los tiempos de 4DOS 4. Obviamente luego me pasé a 4OS2 y luego 4NT; y finalmente a Take Command.

Curiosamente, llevaba desde 2012 en que escribí de Take Command 14 sin hablar de este reemplazo de CMD plagado de funcionalidades. Aprovechando la licencia gratuita que ofrecen, hoy hablaré de algo muy interesante que se ha agregado en Take Command 23, el resaltado de sintaxis o syntax highlight.

Colorear la sintaxis es algo a lo que estamos acostumbrados los programadores, ayuda a identificar errores a la hora de escribir código, y además hace que su lectura sea más clara.…

Continuar leyendo...

Casio fx-CP400 (Operaciones)



En la anterior entrega sobre la calculadora CAS y gráfica fx-CP400, habíamos dado un repaso superficial a sus características. En el artículo de hoy, trabajaremos en serio con ella, al igual que hicimos con en Casio fx-CG50 (Operaciones). Si te lo perdiste, ahora es el momento de que leas el artículo anterior: Casio fx-CP400 (Introducción e impresiones).

La dinámica es sencilla, escogemos el modo de cálculo en el menú principal, siendo el normal Principal, y luego introducimos expresiones casi como lo haríamos en una hoja de papel.

var googletag=googletag || {}; googletag.cmd=googletag.cmd || []; googletag.cmd.push(function() { googletag.defineSlot("/360613911/GenericosDFP2018", [728, 90], "div-gpt-ad-1523882324353-4").addService(googletag.pubads()); googletag.pubads().set("page_url", "http://www.javiergutierrezchamorro.com/category/informatica/programacion"); googletag.pubads().enableSingleRequest(); googletag.enableServices(); });googletag.cmd.push(function() { googletag.display("div-gpt-ad-1523882324353-4"); });

var googletag=googletag || {}; googletag.cmd=googletag.cmd || []; googletag.cmd.push(function() { googletag.defineSlot("/360613911/GenericosDFP2018", [728, 90], "div-gpt-ad-1523882324353-4").addService(googletag.pubads()); googletag.pubads().set("page_url", "http://www.javiergutierrezchamorro.com/category/informatica/programacion"); googletag.pubads().enableSingleRequest(); googletag.enableServices(); });googletag.cmd.push(function() { googletag.display("div-gpt-ad-1523882324353-4"); });

Os sorprenderá lo fácil que es realizar cualquier tipo de operación.…

Continuar leyendo...

Watcom C++ y Sieve para DOS



Hace unos años redacté Sieve en C, una macro-comparativa del rendimiento de diferentes compiladores de C/C++ para Windows ejecutando una implementación de la Criba de Eratóstenes o Sieve. Unos días atrás publiqué Visual C++ 2008 vs Visual C++ 2017, y volvió a picarme el gusanillo sobre lo que ha evolucionado la calidad del código generado por los compiladores.

A ello se ha sumado el anuncio por parte de Walter Bright que DigitalMars C++ es ahora código libre. DigitalMars es la continuación del clásico Symantec C++, y a su vez del legendario Zortech C++.

var googletag=googletag || {}; googletag.cmd=googletag.cmd || []; googletag.cmd.push(function() { googletag.defineSlot("/360613911/GenericosDFP2018", [728, 90], "div-gpt-ad-1523882324353-5").addService(googletag.pubads()); googletag.pubads().set("page_url", "http://www.javiergutierrezchamorro.com/category/informatica/programacion"); googletag.pubads().enableSingleRequest(); googletag.enableServices(); });googletag.cmd.push(function() { googletag.display("div-gpt-ad-1523882324353-5"); });

El proceso ha sido bastante sencillo.…

Continuar leyendo...

Análisis estático de FileOptimizer



Después de haberme centrado en el rendimiento de FileOptimizer, con análisis, limpiezas y optimizaciones regulares había llegado el momento de centrarse en su estabilidad y su seguridad.

Al igual que en cuanto a la eficiencia podemos guiarnos por nuestro “saber hacer”, apoyarse en herramientas es algo de gran ayuda. Además de las advertencias del compilador, AQTime fue de gran ayuda.

En el caso de la detección de leaks (fugas), las herramientas de análisis estático como CppCheck pese a ser en general demasiado estrictas y poco concluyentes, admito que me ayudaron a escribir un código mejor.…

Continuar leyendo...

DEP Terry Colligan



Muchos ya no recordaréis a Terrance “Terry” Colligan, el fundador de Rational Systems luego renombrada a Tenberry Software y que entre otras cosas desarrolló el extensor DOS DOS/4G que se recordaría por su versión recortada DOS/4GW incluida con Watcom C.

Doom, Descent, Duke Nukem 3D, Mortal Kombat o Rise of the Robots entre otros fueron los títulos que explotaron toda la potencia de los 32 bits gracias al trabajo de Terry.

Nacido un 25 de julio de 1947 en Arizona, había cumplido 70 años en el momento de fallecer a la edad de 70 años el pasado 18 de mayo de 2018. Extrañamente he tenido que ser yo, junto con Rugxulo el que nos hayamos percatado del triste acontecimiento 3 meses después.…

Continuar leyendo...

Visual C++ 2008 vs Visual C++ 2017



Tal vez recordéis Sieve en PowerBASIC Console Compiler 6 donde comparaba la última versión de PowerBasic Console Compiler (6.04) de 2011, con la anterior (5.0) de 2008.

Continuando con el artículo de WinAPI contra C, intrínsecas, C++ y ensamblador donde evaluábamos diferentes mecanismos de hacer lo mismo sobre Windows, hoy compararemos la evolución que ha tenido Microsoft Visual C++ en estos 11 años.

Pues aprovechando que me he encontrado de casualidad con los ejecutables de Visual C++ 2008 que publiqué en x86 vs x64 he procedido a comparar el rendimiento con el último Visual C++ 2017.…

Continuar leyendo...

UnQlite compilado para Windows (32 y 64 bits)



Han pasado unos años desde que compilara SQLite para Windows x64. Hoy ocurre algo parecido, y es que gracias al nuevo Take Command he descubierto esta nueva base de datos NoSQL.

A diferencia de MongoDB o Redis, UnQlite se ha diseñado para ser standalone, o serverless como ellos lo llaman. Es decir, funciona embebido sin necesidad de ningún servidor, lo que en ese sentido la hace muy parecida a SQLite. Es además código C portable.

El caso es que aunque su código es libre, y está disponible en GitHub, su licencia para entornos de producción es comercial.

Ofrecen binarios disponibles para Windows, pero sólo de 32 bits.…

Continuar leyendo...

WinAPI contra C, intrínsecas, C++ y ensamblador



Vamos a proseguir con las comparativas que iniciamos en WinAPI vs C en donde si recordáis comparábamos las funciones de la RTL de los compiladores de Visual C++ 2017 y C++ Builder 10.2.3 contra las funciones de la API de Windows.

Hoy vamos a centrarnos en Visual C++, y lo que procederemos será a comparar el rendimiento de las diferentes formas que permiten rellenar un bloque de memoria con un valor determinado. Vamos a usar FillMemory (API de Windows); memset (RTL de C/C++); __stosd (intrínseca de Visual C++); implementación en C puro, e implementación en ensamblador puro.

Los resultados inicialmente han sido previsibles, la implementación en C++, pese a usar 32 bits se ha mostrado notablemente más lenta.…

Continuar leyendo...