---
# System prepended metadata

title: SuperZebra

---

# SuperZebra

## Introdução à SuperZebra
Agora, abordaremos os porquês do desenvolvimento de uma linguagem de programação, fazendo referência ao contexto que nos foi dado acerca das atuais linguagens de programação do mercado.

Portanto, explicaremos como funciona nossa linguagem de programação e o que a difere de outras linguagens com maior visibilidade no mercado.

*explicação:* Nossa linguagem é traduzida em código JavaSScript, e o mesmo, traduzido em C++, até sua compilação, que é a transformação de código em instruções a serem executadas pelo processador.

>(SLIDES DE TRANSPILAÇÃO E COMPILAÇÃO, igual no vídeo)

## "Como programar em superzebra" 

> literalmente fazer um guia por nossa documentação, na aba "como programar em zebra" do site da nossa documentação, explicar desde a instalação, requisitos e até o primeiro código

Agora abordaremos os aspectos específicos da linguagem, no que respeita a instalação, configuração e como começar a programar em zebra.

>Mostrar código sendo executado, relembrar os processos antes da execução (transpilação, compilação, etc etc)

>Explicar o que as funções (heehaw, lion) também explicar como criar uma função usando @(){}, e como armazenar variaveis com ->

Neste simples programa mostramos como criamos uma função, como mostramos algo na tela e como executamos nosso código!

Além das funcionalidades que foram apresentadas, a nossa linguagem também é capaz de fazer muitas outras coisas, como por exemplo programas completos para terminal.
> mostrar código complexo em SuperZebra

E para arduino: 
> mostrar vídeo/código para arduino, explicar como fazemos essa conexão direto no nosso código

## Futuras implementações

Mesmo podendo fazer muitas coisas, nossa linguagem carece de algumas funções básicas, como por exemplo, listas, manipulação de listas, modularidade, laços de repetição... 

Mas como programariamos isso?
Para isso, vamos voltar no exemplo de como nossa linguagem funciona. O Lexer lê todo nosso arquivo, depois, nosso tokenizer transforma tudo isso em Tokens, que são como pequenas caixas que carregam as informações do que fazer ao receber cada informação, e além disso temos nosso runner, que irá pegar esses tokens e rodar uma função JS.

Então, para desenvolvermos uma função nativa em zebra, precisaremos criar uma função em JS

> mostrar implementação de uma função na linguagem (coisa simples, no arquivo globals.js)

## Conclusão

Essa foi a apresentação da nossa linguagem, claro que ainda há muitas funcionalidades a serem acrescentadas, mas acreditamos que o objetivo de ser uma linguagem mais intuitiva para quem está iniciando na programação foi atingido.