MetsuOS

Construyendo la plena inclusión a través del videojuego

Especificación de Arquitectura: Runtime Standalone de MPL (Metsu Programming Language)

Especificación Técnica Oficial Metsu Programming Language (MPL)

Documento de Diseño Técnico y Hoja de Ruta de Implementación
Versión: 0.1.0-alpha (Prototipo Standalone)
Entorno de Referencia: MetsuOS / Python 3.x Estándar (Sin dependencias externas)


1. Visión General del Proyecto

El objetivo de esta fase es implementar un motor de ejecución (Runtime) standalone, determinista y asíncrono para el lenguaje MPL (Metsu Programming Language), programado exclusivamente en Python estándar.

Este Runtime servirá como el núcleo de pruebas y validación funcional para las tres capas de abstracción de MPL:


2. Estrategia de Autohospedaje (Bootstrapping / El "Huevo y la Gallina")

Para lograr que el compilador de MPL termine estando escrito en el propio lenguaje MPL y ejecutándose sobre su propio ecosistema, se define una estrategia en tres fases:

graph TD

classDef fase0 fill:#2b4c7e,stroke:#4a90e2,stroke-width:2px,color:#ffffff;

classDef fase1 fill:#7b4b94,stroke:#b873d9,stroke-width:2px,color:#ffffff;

classDef fase2 fill:#1e5128,stroke:#4e9f3d,stroke-width:2px,color:#ffffff;



subgraph Bootstrapping_MPL ["Proceso de Bootstrapping MPL"]

Fase0["Fase 0: Runtime Cero (Python Puro)
Intérprete + Event Loop FIFO + Drivers de Renderizado.
Lee el AST de MPL y lo ejecuta en memoria."]:::fase0 Fase1["Fase 1: Compilador v0.1 escrito en MPL
Escrito en Capa 1/2/3 de MPL.
Se ejecuta SOBRE el Runtime de la Fase 0."]:::fase1 Fase2["Fase 2: Self-Hosting / Compilación Nativa
El compilador MPL se compila a sí mismo.
Emisión a JS/Python/ C/C++/WASM/Assembly para MetsuOS."]:::fase2 end Fase0 -->|Ejecuta| Fase1 Fase1 -->|Evoluciona y genera| Fase2
  1. Fase 0 (Host Runtime en Python): Motor de desarrollo inicial. Parsea el código .mpl a un Árbol Sintáctico Abstracto (AST) y lo ejecuta mediante un Event Loop basado en colas FIFO.

  2. Fase 1 (Compilador MPL v0.1): Se escribe la lógica del analizador y compilador utilizando sintaxis MPL. Este programa .mpl corre dentro del Runtime de la Fase 0.

  3. Fase 2 (Self-Hosting Completo): Cuando el compilador en MPL es capaz de generar código ejecutable o transpirar al menos a Python, se compila a sí mismo. De ahi en adelante se desarrollan los compiladores a JS/C/C++/WASM/Assembler ...


3. Arquitectura del Runtime v0.1 (Fase 0)

El Runtime v0.1 está compuesto por 4 módulos principales desacoplados:

graph LR

classDef lexer fill:#2b4c7e,stroke:#4a90e2,stroke-width:2px,color:#ffffff;

classDef queue fill:#7b4b94,stroke:#b873d9,stroke-width:2px,color:#ffffff;

classDef driver fill:#1e5128,stroke:#4e9f3d,stroke-width:2px,color:#ffffff;



Fuente[".mpl Source"] --> Tokenizer["1. Tokenizer & Parser
Generación de AST y Sanitización"]:::lexer Tokenizer --> Queue["2. FIFO Event Loop Engine
Cola de Tareas asíncrona (deque)"]:::queue Queue --> Exec["3. Intérprete AST
Ejecutor Capas C1, C2, C3"]:::queue Exec --> Drivers["4. UI Abstraction Driver
Renderizador Abstraído"]:::driver Drivers --> CLI["Driver CLI (Terminal)"]:::driver Drivers --> GUI["Driver GUI (Tkinter Nativo)"]:::driver

3.1. Pipeline de Parsing y Seguridad

Para evitar la ejecución de código no seguro mediante eval(), el Runtime realiza una lectura en dos pasos:

  1. Lexer / Tokenizer (re nativo): Convierte el código fuente .mpl en tokens.

  2. Construcción del AST: Transforma los tokens en un árbol de nodos (NodoPantalla, NodoObjeto, NodoFuncion).

  3. Validador de Seguridad (Sanitizer): Inspecciona el AST antes de enviarlo a la cola de ejecución para bloquear instrucciones no autorizadas o accesos indeseados a recursos del sistema.

3.2. Motor Asíncrono (Event Loop FIFO)

En lugar de depender de asyncio, el Runtime implementa un Event Loop determinista basado en la estructura de datos collections.deque:

3.3. Patron de Renderizado Dual (Abstracción de UI)

El Runtime incluye una interfaz abstracta UIDriverBase que permite renderizar exactamente el mismo código MPL en dos modos a elección del usuario al arrancar:


4. Diagrama de Secuencia: Ciclo de Ejecución de Eventos

sequenceDiagram
    autonumber
    participant UI as Renderizador UI CLI o GUI
    participant EvLoop as Event Loop Cola FIFO
    participant AST as Interprete AST Capa 1 y 2
    participant State as Gestor de Estado Capa 2

    UI->>EvLoop: Encola evento Seleccionar OPCION
    Note over EvLoop: Evento desencolado de la cola FIFO
    EvLoop->>AST: Ejecutar accion ligada en Capa 3
    AST->>State: "I"nvocar metodo en OBJETO_CONCEPTUAL Capa 2
    State->>AST: Ejecutar bloque imperativo Capa 1
    AST-->>State: Retorna cambio de propiedades
    State-->>EvLoop: Encola evento Estado Actualizado
    EvLoop->>UI: Redibujar Pantalla o Componente Capa 3

5. Plan de Pruebas Integradas en la CLI de Control

Al ejecutar python mpl_runtime.py, la aplicación mostrará una suite interactiva para validar las tres capas:


====================================================================

METSU PROGRAMMING LANGUAGE (MPL)

Runtime Standalone v0.1.0

====================================================================

Elija el modo de renderizado de UI:

[1] Modo Línea de Comandos (CLI)

[2] Modo Ventanas Nativas (GUI Tkinter)



Elija la suite de pruebas a ejecutar:

[A] Prueba Capa 1: Algoritmos Imperativos y Variables

[B] Prueba Capa 2: Objetos Conceptuales, Estados y Eventos

[C] Prueba Capa 3: Pantallas, Menús y Navegación

[D] Ejecución Completa Multi-Capa (Demo Integrada)

====================================================================


6. Hoja de Ruta Evolutiva del Runtime

FaseHito / ComponenteEntregables PrincipalesEstado
Fase 0: Host RuntimeMotor en Python Estándar• Intérprete AST en memoria
• Bucle de eventos asíncrono con cola FIFO
• Drivers de renderizado dual (CLI Terminal / GUI Tkinter)
En Desarrollo
Fase 1: Bootstrap CompilerCompilador MPL en MPL• Lógica del compilador escrita en código .mpl
• Parsing y validación de Capas C3, C2 y C1
• Ejecución sobre el Host Runtime de la Fase 0
Planificado
Fase 2: Self-Hosting & TargetsTranspilación y Autocompilación• Compilador MPL autocompilado sin dependencia de Python
• Generador de código destino (Targets: C/C++, WebAssembly, JS)
• Binario ejecutable standalone para MetsuOS
Futuro

One More Thing

Un escenario de retrocomputación del siglo 24

¡Desbloquea el poder de MetsuOS y descubre que la privacidad y la seguridad son la clave para desencadenar tu verdadero potencial en línea!

Contenido registrado en Safe Creative

Logo Safe Creative
¡Usa el código de promocional 7ZYM4Z y ahorrate unos eurillos en tu suscripcion de Safe Creative!

MetsuOS Needs You!

Apoyanos en este proyecto difundiendolo en tus redes, o mejor, haznos una donación a la cuenta paypal para poder dedicar más tiempo y recursos a el. No olvides comentarnos que parete te interesa más junto con tu donación.

En este momento, además de mantener los servicios, estoy centrado en crear la siguiente iteración del software que me permite hacer todo esto y creando una biblioteca personal física para poder contrastar contenido.

Sobre el sistema de validez de un contenido en MetsuOS

Empezando a incorporar los niveles de validación de un contenido (también llamada sabiduría o niveles de conocimiento) ⚫🔴 🟡 🟢 🔵⚪ ¿Qué són?

Sobre la categorización de los tipos de conocimiento

La Metsukeología (de Metsuke vision global y logos conocimiento) es la ciencia que estudia el conocimiento como un conjunto potencial de conocimiento del que podemos obtener, procesar o percibir partes concretas dentro de un marco contextual específico, y cuyo contexto general real está muy por encima de lo que somos capaces, como especie, de percibir, procesar e integrar de forma completa (definición en progreso).

La Metsucología (de Metsu aniquilación - en este contexto en forma de colapso - , logos conocimiento) es la ciencia que estudia como extraemos verdades percibidas - colapsadas - como conocimiento desde nuestra perspectiva real (tanto epistemológico como gnoseológico) al tomar una parte específica del conocimiento metsukeológico potencial enmarcado en un contexto concreto, obligando a colapsar el conocimiento potencial en conocimiento específico (definición en progreso).

Mas sobre el contexto

DISCLAIMER: Mi consideración de anticientífico respecto al consenso científico es una hipotesis de trabajo propia, que supone que toda asignación de validez, incluso aquella derivada de la conclusión por acumulación de evidencia NO debe ser supeditada a debate, ni acuerdo, debe ser algo probabilistico sin intervención del ego humano. Podría estar equivocado y, en este punto, es donde se aplicaría entonces ese mismo consenso que ahora considero no valido (incluso dañino)

Existen indicadores para algunas cuestiones adicoinales como los siguientes:

Cuando hablamos de un contenido que incluye un texto que hace referencia a otro.

También aplicaremos el Sistema de fiabilidad de fuentes y credibilidad de contenidos de la OTAN 🔴②, este sistema incluye una valoración de la fiabilidad de la fuente de A a F (siendo A la de mayor fiabilidad) y una varloración de credibilidad del contenido de 1 a 6 (siendo 1 la mayor credibilidad).

En MetsuOS la agregaremos al final uniendo amos valores como si fuera una coordenada. Por ejemplo: ⚫①-D4 o 🟡③-B2. Esto ayudarña a contextualizar la información sobre la solidez del conocimiento al que se hace referencia en cada momento.

Hay que tener en cuenta que, cuando hay elementos subjetivos o parcialmente subjetivos, el punto de referencia seré yo mismo. Quizá más adelante pueda objetivizar esto más (seria lo deseable), pero en tanto no tenga herramientas que me lo permitan, debo ceñirme al principio de honestidar intelectual, y esperar que mis sesgos dañen lo menos posible la información (en parte este es el nudo gordiano que pretendo resolver, y por ello es dificil resolverlo a priori).

Así de forma resumida, podríamos decir que esta definición es nivel 🔴② (Rojo2 xD) ¿Crees que me dejo algo? Si es así por favor ayudame a mejorarlo contactándome a través de X (Twitter) en mi cuenta, @metsuke 🌐

Consulta la versión completa de la descripcion en ⚫🔴🟡🟢🔵⚪ (🔴②) Un poco más de detalle