Prisma é uma linguagem de programação interpretada com comandos em português do Brasil. Ela pode ser muito útil para aprendizagem de iniciantes em cursos de programação, ou, mesmo para ser usada profissionalmente, visto que possui características das linguagens mais atuais, como Python, Ruby, Perl, etc.
//olá mundo em Prisma: imprima('Olá mundo em Prisma!');
1 2
//olá mundo em Prisma: imprima('Olá mundo em Prisma!');
//isto é um comentário: funcao principal(args) imprima("Olá mundo em Prisma!"); retorne 0; fim
1 2 3 4 5
//isto é um comentário: funcao principal(args) imprima("Olá mundo em Prisma!"); retorne 0; fim
função soma(a, b) retorne a+b; fim local res = soma(2, 10); imprima(res); // --> 12
1 2 3 4 5
função soma(a, b) retorne a+b; fim local res = soma(2, 10); imprima(res); // --> 12
#!/usr/local/bin/prisma local funcao leia_arquivo(nome_arq) local a, erro_arq = es.abra(nome_arq, 'leiturabin'); se nao a entao retorne falso, erro_arq; //é possível retornar mais de um valor! fim local txt = a:leia('*t');//lê todo o conteúdo do arquivo de uma só vez. a:feche();//fechando o arqivo aberto. fim se nao args[1] entao //não há argumentos. imprima('Use: leia_arquivo arquivo'); fim local conteudo, erro_arq = leia_arquivo(args[1]); se nao conteudo entao erro(erro_arq); fim imprima(conteudo);//imprime o conteúdo do arquivo aberto.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
#!/usr/local/bin/prisma local funcao leia_arquivo(nome_arq) local a, erro_arq = es.abra(nome_arq, 'leiturabin'); se nao a entao retorne falso, erro_arq; //é possível retornar mais de um valor! fim local txt = a:leia('*t');//lê todo o conteúdo do arquivo de uma só vez. a:feche();//fechando o arqivo aberto. fim se nao args[1] entao //não há argumentos. imprima('Use: leia_arquivo arquivo'); fim local conteudo, erro_arq = leia_arquivo(args[1]); se nao conteudo entao erro(erro_arq); fim imprima(conteudo);//imprime o conteúdo do arquivo aberto.
//exemplo de fatorial funcao fatorial(n) se n == 0 entao retorne 1 senao retorne n * fatorial(n - 1) fim fim imprima( fatorial(9) ); //--> 362880
1 2 3 4 5 6 7 8 9 10
//exemplo de fatorial funcao fatorial(n) se n == 0 entao retorne 1 senao retorne n * fatorial(n - 1) fim fim imprima( fatorial(9) ); //--> 362880
//série de Fibonacci funcao fib(n) a, b = 0, 1 enquanto a < n inicio es.escreva(a, ' ') a, b = b, a+b fim imprima() fim fib(1000) //--> 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
1 2 3 4 5 6 7 8 9 10 11 12 13
//série de Fibonacci funcao fib(n) a, b = 0, 1 enquanto a < n inicio es.escreva(a, ' ') a, b = b, a+b fim imprima() fim fib(1000) //--> 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
Execute no terminal em modo sudo e siga os procedimentos:
# ./prisma_install_linux.run
Extraia e execute no terminal:
sudo ./instalar.sh
Extraia e execute no terminal:
./compila_so_prisma.sh && instalar.sh
Informações do sistema onde Prisma foi compilado: Linux 6.2.0-39-generic #40~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Nov 16 10:53:04 UTC 2 x86_64 GNU/Linux --------------------------------- Informações do compilador usado: gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) Target: x86_64-linux-gnu Thread model: posix
local lib = inclua'lib'
Obs.: Há incompatibilidades com a versão anterior(x86), pois esta é x64, e a biblioteca 'ig' não funciona ainda nesta versão.
Extraia o arquivo, usando 7z ou winrar. Depois copie a pasta Prisma para o local de sua preferência.
Pode ser, por exemplo, em
C:\Prisma
Agora só testar:
Para compilar scripts prisma é necessário saber usar a tela de comandos do Windows. Em geral se renomear um arquivo prisma para extensão .pbrexe ele será executado automaticamente pelo interpretador Prisma.
Mas é preciso definir o registro. Vá na pasta de instalação prisma, dentro de 'bin' execute o configure.exe em modo administrador.
O comando para compilar programa é:
pric.exe -o prog.exe prog.prisma
Logicamente, ainda é possível usar o pric para gerar bytecodes para serem carregados pelo interpretador prisma.exe:
pric.exe -p prog.pbrexe prog.prisma
Obs.: O compilador aceita mais de um fonte para compilar: pric.exe -o prog.exe font1.prisma font2.prisma ... prog.prisma.
Obs.: Sempre deixe para o final o arquivo principal que usa funções dos outros fontes.
PrismaJS não foi testada exaustivamente, e muitas funções nativas em C não funcionam de modo esperado em Wasm, haja visto que o navegador é um ambiente em modo protegido (sandbox);
Baixar arquivo zipInformações do sistema onde PrismaJS foi compilado:
Linux
6.2.0-39-generic
#40~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Nov 16 10:53:04 UTC 2
x86_64
GNU/Linux
---------------------------------
Informações do compilador usado:
emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 3.1.34 (57b21b8fdcbe3ebb523178b79465254668eab408)
clang version 17.0.0 (https://github.com/llvm/llvm-project a031f72187ce495b9faa4ccf99b1e901a3872f4b)
Target: wasm32-unknown-emscripten
Thread model: posix
Informações do sistema onde Prisma foi compilado: Linux 3.10.0-1160.105.1.el7.x86_64 #1 SMP Thu Dec 7 15:39:45 UTC 2023 x86_64 GNU/Linux ------------------------------- Informações do compilador usado: gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) Target: x86_64-redhat-linux Thread model: posix
local lib = inclua'lib'