Ir al contenido principal

Entradas

Nimoy Language: un lenguaje basado en Leonard Nimoy

Nimoy Language es un lenguaje de programación basado en Leonard Nimoy y su personaje de Spock de Star Trek. Un programa en Nimoy Language tiene la extensión *.ny (era obvio). Se considera un lenguaje de la época actual. Con inspiración en Ballerina , Go y Rust . Quienes programen en Rust lo encontrarán bastante familiar. El lenguaje esta enfocado en estos principios: Seguridad.  Portabilidad.  Robustez.  Integridad. Características del lenguaje Tipado estático Nimoy Language es un lenguaje de tipado estático muy al estilo de Rust o C++ . El dicho de "una variable es una variable no aplica aquí" . Si defines una variable que contendrá un entero, deberás usar int . Si defines una variable que contendrá un caracter, deberás usar char . Si defines una variable que contendrá una cadena, deberás usar string . Si defines una variable que contendrá un valor real, deberás usar double o float (para flotantes). Paradigma Al igual qu...
Entradas recientes

ANTLR, una (otra) herramienta para el reconocimiento del lenguaje

ANTLR ( ANother Tool for Language Recognition ) es una herramienta que permite generar analizadores léxicos y sintácticos a partir de una gramática. En lugar de escribir manualmente todo el código necesario para interpretar un lenguaje, simplemente describimos las reglas del mismo y ANTLR genera automáticamente gran parte de la infraestructura necesaria. Como lo dice la página oficial: Es un potente generador de analizadores sintácticos para leer, procesar, ejecutar o traducir texto estructurado o archivos binarios.  Se utiliza ampliamente para crear lenguajes, herramientas y marcos de trabajo.  A partir de una gramática, genera un analizador sintáctico capaz de construir y recorrer árboles de análisis. Nota: Esta herramienta es un paso para el análisis léxico y el parseo . No te generará un compilador completo , pero sí te da la base más difícil: el análisis léxico y sintáctico . Tú debes implementar las fases de semántica y generación de código ....

NLP (Natural Language Processing) en otro vistazo

La linguística estudia cómo se estructuran los lenguajes. Se interesa por cómo se estructura, funciona y cambia el lenguaje en sus distintas formas. Busca entender cómo nos comunicamos mediante el lenguaje y qué reglas siguen todas las lenguas del mundo. Y es aquí donde entra el NLP ( Procesamiento de Lenguaje Natura l). Algunos de sus usos los podemos ver en: Chatbots. Traductores automáticos. Análisis de texto. Para los programadores es importante saber cómo emplear el NLP en nuestros proyectos. Los lenguajes de programación son un equivalente a los lenguajes formales. Entender linguística nos ayuda a comprender mejor cómo funcionan, por ejemplo, los compiladores e interpretes. Su relación con los lenguajes de programación El Procesamiento de Lenguaje Natural (NLP) se conecta con los lenguajes de programación porque permite que las computadoras "entiendan" y trabajen con el lenguaje humano, y los programadores lo emplean para crear a...

Ballerina en un vistazo (10): comparativa con C++

En este post haremos una comparativa entre Ballerina y C++ . Ballerina fue creado por WSO2 para aplicaciones distribuidas y cloud‑native, mientras que C++ (de Bjarne Stroustrup) es un lenguaje clásico de propósito general, orientado a alto rendimiento y sistemas críticos. Ambos lenguajes, Ballerina y C++ , representan dos filosofías muy distintas. Quien haya programado en C no nos dejará mentir: C++ no solo es su evolución directa natural, si no es su versión "hard". C++ no solo comparte las características que hicieron a C un lenguaje poderoso (punteros, asignación dinámica de memoria, etc.) sino que los expande con sus propias peculiaridades. Aqul que use C++ debe ser cuidadoso si no quiere otro colapso como el de Crowdstrike . Ballerina por su parte no es tan utilizado en la industria. Muy pocas empresas se atreven a usar lenguajes como este o cualquier otro como Go, Rust, Kotlin, etc. El nicho del mercado esta enfocado en lenguajes como Java, C#, C...

Axolotl: un poderoso lenguaje de programación basado en la seguridad

Axolotl es, hipotéticamente, un lenguaje de programación basado en la seguridad de sistemas. Se inspira, hipotéticamente, en lenguajes de programación modernos como Ballerina , Go y Rust . De tipado estático. Compilado. Con gestión automática de la memoria y recursos del sistema. Enfocado a la seguridad y rendimiento. Al igual que lenguajes como Ada , un programa en Axolotl no debe fallar. Debe ser seguro. Seguro. El lenguaje posee, hipotéticamente, una sintaxis similar a la de lenguajes como Ballerina , Go y/o Rust . Un poco de historia sobre Axolotl La mascota oficial es un Ajolote. Un anfibio que es es famoso por su capacidad de regenerar extremidades y órganos. Un programa hecho en este lenguaje tiene la extensión *.xtl . La herramienta para crear un proyecto y construirlo es `` axoc ``. AVM ( Axolotl Virtual Machine ) es el motor que permite ejecutar programas desarrollados en este lenguaje. Conociendo Axolotl Conozcamos algunos...

Mercury: un lenguaje de programación lógico-funcional

Mercury es un lenguaje de programación lógico-funcional diseñado para aplicaciones de alta confiabilidad. Combina la expresividad de Prolog con un sistema de tipos estático, análisis de modos e inferencia de determinismo. Desarrollado en la Universidad de Melbourne (Australia) por Zoltan Somogyi, Thomas Conway y Fergus Henderson a mediados de los años 90. A diferencia de Prolog , Mercury está compilado y produce código de máquina eficiente. Su paradigma es lógico, funcional y declarativo. ¿Para qué sirve? Es ideal para: Para programas que requieren razonamiento lógico complejo, como sistemas expertos, análisis simbólico, verificación formal y compiladores.  En investigación académica y en proyectos donde la corrección y optimización son críticas. Su compilador genera código eficiente en C o directamente en LLVM , permitiendo alto rendimiento. Relación con Prolog Mercury hereda la semántica lógica de Prolog (basada en resolución y unificación).  U...