🇧🇷 JLScripter: de uma ideia à construção de um ecossistema de programação
Uma linguagem brasileira, uma história por trás do nome e muita coisa sendo construída.
Sabe quando alguém começa um projeto por curiosidade e, quando percebe, aquilo já tomou uma proporção muito maior do que imaginava?
Foi mais ou menos assim que começou o JLScript.
Já apresentei aqui um pouco da história da linguagem, da origem do nome e da sua identidade visual. Mas o projeto continuou evoluindo, e achei que estava na hora de mostrar um pouco melhor o que existe por trás dele.
O JLScript é uma linguagem de programação brasileira criada por Lucas Aguiel Dos Santos De Oliveira, desenvolvida principalmente em C++.
O que começou como uma experiência para criar uma sintaxe própria acabou envolvendo interpretador, runtime, compilação, bytecode, bibliotecas e ferramentas de desenvolvimento.
E é justamente essa evolução que quero apresentar.
- Primeiro, vamos entender os nomes
Existe uma diferença entre JLScript e JLScripter que vale a pena explicar.
- JLScript: a linguagem de programação.
- JLS: abreviação da linguagem.
- .jls: extensão dos arquivos de código.
- JLScripter: o ecossistema construído ao redor do projeto.
O nome JLScript também possui uma história pessoal:
- J representa Joicy.
- L representa Lucas.
- Script representa programação.
Não é Java, não é JavaScript. É uma identidade própria.
- Uma linguagem que permite escrever em português
Uma das propostas mais interessantes do JLScript é experimentar uma sintaxe que permita utilizar construções em português e inglês.
Por exemplo:
va idade = 20
se (idade >= 18) {
mostrar("Maior de idade")
} senao {
mostrar("Menor de idade")
}
Também existe a possibilidade de utilizar estruturas como:
let idade = 20
if (idade >= 18) {
mostrar("Maior de idade")
} else {
mostrar("Menor de idade")
}
A ideia é oferecer uma escrita familiar sem limitar a linguagem a um único idioma.
- O projeto não é apenas um interpretador
Essa é uma das partes que mais chamam minha atenção na evolução do projeto.
Por trás do código existe uma estrutura que envolve diferentes componentes:
- Lexer: identificação dos tokens.
- Parser: análise da sintaxe.
- AST: representação estrutural do código.
- Interpreter: execução dos programas.
- Runtime: ambiente de execução.
- Compiler: infraestrutura de compilação.
- Bytecode: representação intermediária da linguagem.
O projeto também trabalha com geração de C++ e arquivos de bytecode com extensão ".jlb".
Ou seja, existe bastante coisa acontecendo além da escrita de um simples arquivo ".jls".
- O JLScript também possui seu próprio terminal
Outro passo importante foi o desenvolvimento da CLI, acessada pelo comando "jls".
Entre os comandos documentados estão:
jls run programa.jls
jls repl
jls build programa.jls
jls compile programa.jls
jls test
jls fmt
jls lint
jls doctor
A proposta é oferecer ferramentas para diferentes etapas do desenvolvimento, desde executar um programa até trabalhar com compilação, testes e diagnóstico.
- Bibliotecas e possibilidades de expansão
O ecossistema também possui um sistema de bibliotecas.
Alguns exemplos das áreas documentadas são:
import #api
import #database
import #json
import [#ui, #style]
Existem também áreas relacionadas a dispositivos móveis, conectores e ferramentas para desenvolvimento.
Uma das ideias é permitir que a linguagem possa crescer sem concentrar todas as funcionalidades dentro do seu núcleo.
- E onde acompanhar tudo isso?
O projeto possui diferentes espaços para quem deseja conhecer, estudar ou acompanhar sua evolução.
GitHub
O código e os materiais públicos do projeto podem ser encontrados no repositório:
https://github.com/eohlczinn/JLScript
Documentação
https://github.com/JLScripter/documentacao_JLScripter
Portal oficial
https://blog-jlscript.netlify.app/
No portal existem áreas dedicadas ao aprendizado, sintaxe, bibliotecas, ferramentas, história e ecossistema.
- Ainda existe muito pela frente
É importante dizer que o JLScript continua em desenvolvimento.
Nem todas as funcionalidades possuem o mesmo nível de maturidade, e algumas áreas ainda podem passar por mudanças.
Mas acredito que uma das coisas mais interessantes de acompanhar em um projeto assim é justamente sua evolução.
Uma ideia não precisa nascer perfeita. Ela precisa de dedicação, experimentação, correções e pessoas dispostas a continuar construindo.
E é muito interessante ver como uma ideia que começou pequena pode ganhar uma estrutura cada vez maior.
🇧🇷 JLScript — Simples para começar. Estruturada para crescer.
Se você gosta de linguagens de programação, compiladores ou simplesmente tem curiosidade sobre como uma linguagem funciona por dentro, vale a pena conhecer o projeto.
Quero deixar uma pergunta para quem trabalha com programação:
Se você pudesse criar sua própria linguagem de programação, qual seria a primeira decisão de sintaxe ou arquitetura que tomaria?
Vou gostar de conhecer outras ideias!
Top comments (0)