Skip to main content

Compilador modular de Portugol para Python focado em educação.

Project description

meuPiá Core – O Compilador Modular de Portugol

meuPia

📖 Overview

Nota: Este projeto é um fork evolutivo do portugol-compiler, focado em interoperabilidade e modularização.

meuPiá Core é o motor central do ecossistema meuPiá. Ele é um compilador (transpilador) de Portugol para Python projetado para ser extensível.

Diferente de ferramentas educacionais fechadas, o meuPiá permite que você instale plugins para expandir as capacidades da linguagem. O Core fornece a infraestrutura de análise, geração de código e o gerenciador de pacotes, enquanto as funcionalidades específicas (como IoT ou Foguetes) são instaladas sob demanda.

meuPiá Core fornece:

  • O Compilador: Analisadores léxico, sintático e semântico que traduzem Portugol para Python otimizado.
  • mPGP (meuPiá Gerenciador de Pacotes): Uma ferramenta de linha de comando integrada para instalar e gerenciar extensões oficiais.
  • Sistema de Plugins: Suporte nativo à diretiva usar "nome_do_plugin", permitindo importação dinâmica de bibliotecas.

⚙️ How It Works

A arquitetura foi modernizada para suportar extensões:

1. Analysis & Validation

O compilador realiza a análise léxica e sintática completa, garantindo a integridade lógica do algoritmo escrito em Portugol.

2. Plugin-Aware Code Generation

O CodeGenerator identifica as diretivas usar "..." e injeta automaticamente as dependências corretas no código Python final, otimizando os imports para o ambiente de destino (seja PC ou Microcontrolador).

3. Runtime Modular

O Core mantém apenas as bibliotecas essenciais. Funcionalidades complexas foram movidas para pacotes externos instaláveis via mPGP.

🚀 Installation

A maneira mais recomendada de instalar o meuPiá é através do índice oficial de pacotes do Python (PyPI).

No seu terminal, execute:

pip install meupia-core

Para Desenvolvedores (Modo Editável)

Se você deseja modificar o código-fonte do compilador:

# Clone o repositório
git clone https://github.com/meuPia/core.git
cd core

# Instale em modo editável (recomendado para dev)
pip install -e .

Isto instalará dois comandos no seu terminal:

  • meupia: O compilador.
  • mpm: O gerenciador de pacotes.

📦 mPGP – Gerenciador de Pacotes

O mPGP (meuPiá Package Manager) facilita a instalação de módulos adicionais sem que o aluno precise lidar com URLs complexas ou configurações de ambiente.

Comandos Básicos

# Listar plugins disponíveis
mpgp liste

# Instalar um plugin
mpgp instale <nome_do_plugin>

# Remover um plugin
mpgp remover <nome_do_plugin>

Módulos Oficiais Disponíveis

Módulo Comando de Instalação Descrição
Maker mpgp instale maker Adiciona suporte a IoT e Robótica. Permite compilar Portugol para ESP32/Pico (MicroPython).
Espacial mpgp instale espacial Adiciona suporte ao Kerbal Space Program. Permite controlar foguetes via kRPC.
IA mpgp instale ia Adiciona suporte a Data Science. Traz algoritmos do Scikit-Learn para o Portugol.

🛠️ Usage Examples

1. Compilando um Algoritmo Básico

# Compila o arquivo e gera o Python equivalente na pasta output/
meupia input/ola_mundo.por

2. Usando Plugins (Ex: IoT/Maker)

Após instalar o módulo maker (mpm install maker), você pode utilizá-lo no seu código:

algoritmo "PiscaLed"
usar "maker"  // <--- Carrega o plugin instalado via mPGP

var led: inteiro
inicio
    led <- 2
    iot_configurar_pino(led, "saida")
    
    enquanto verdadeiro faca
        iot_ligar(led)
        iot_esperar(1000)
        iot_desligar(led)
        iot_esperar(1000)
    fimenquanto
fimalgoritmo

🙌 Credits

meuPiá é desenvolvido com ❤️ por @henryhamon.

Este projeto é um hard fork e evolução do projeto portugol-compiler, criado originalmente por Luan Contarin. A estrutura de análise léxica e sintática é mantida como a fundação sólida deste compilador.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

meupia_core-1.1.17.tar.gz (18.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

meupia_core-1.1.17-py3-none-any.whl (18.7 kB view details)

Uploaded Python 3

File details

Details for the file meupia_core-1.1.17.tar.gz.

File metadata

  • Download URL: meupia_core-1.1.17.tar.gz
  • Upload date:
  • Size: 18.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for meupia_core-1.1.17.tar.gz
Algorithm Hash digest
SHA256 f7027d753d330efce33b98fe5e89d15ec79363730f96541cd05a988536570f53
MD5 3069cc0388470c050e82564d13d6b2a2
BLAKE2b-256 1981a0e1c991ffb725984a925adbe3f06cdce272c4bc77bd05d449d27e5d226c

See more details on using hashes here.

File details

Details for the file meupia_core-1.1.17-py3-none-any.whl.

File metadata

  • Download URL: meupia_core-1.1.17-py3-none-any.whl
  • Upload date:
  • Size: 18.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for meupia_core-1.1.17-py3-none-any.whl
Algorithm Hash digest
SHA256 4ee17f03763d73e6612800d84872e561a397c8d0afb1c84500c7482356ac5cc9
MD5 8fb80fd2ad8d2ec15767d60e10f0502a
BLAKE2b-256 a7f02b5ba1a7397501c2525747582b7d703db7d6f210fb2ea5afbb1e36c8feb5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page