Top Qs
Linha do tempo
Chat
Contexto
Qore (linguagem de programação)
linguagem de programação Da Wikipédia, a enciclopédia livre
Remove ads
Qore é uma linguagem de programação dinâmica interpretada, de alto nível, de uso geral, com colector de lixo e com capacidade para incorporação de código e isolamento de processos com tipificação forte opcional. Também permite múltiplos fios de execução e escalabilidade de multiprocessamento simétrico (SMP).
A linguagem Qore é única porque é uma linguagem interpretada com capacidade para múltiplos fios de execução (o que significa que mais do que uma parte do mesmo código pode ser executada ao mesmo tempo), tem gestão automática de memória (ou seja, os programadores não precisam de reservar e libertar memória explicitamente), é compatível com o padrão RAII (Aquisição de Recurso é Inicialização) através de destrutores para gestão de recursos baseada em alcance e permite programação com segurança no tratamento de excepções.[1] Isto deve-se à implementação exclusiva de colecta pronta,[2] ou colecta de lixo determinística, da linguagem Qore.
Remove ads
Scripts Qore
Os scripts Qore têm geralmente as seguintes extensões:
.q
: para scripts Qore.qm
: para módulos do utilizador Qore.qtest
: para scripts de teste Qore
Os scripts executáveis Qore em sistemas operativos do tipo Unix começam normalmente com uma linha mágica para especificar a localização do interpretador:
#!/usr/bin/env qore
Sintaxe
A sintaxe da linguagem Qore é inspirada nas seguintes linguagens de programação, com as quais partilha semelhanças:[3]
- Perl: sem a etiqueta
%new-style
, a sintaxe da Qore é muito semelhante à do Perl; a expressãoforeach
, os operadoressplice
,push
,pop
,chomp
, as expressões regulares compatíveis com Perl5, entre outros - Java: com a etiqueta
%new-style
, o código Qore parece-se mais ao do Java;[4] a palavra-chavesynchronized
, o operadorinstanceof
, a codificação de objectos e classes - C++: herança múltipla, tratamento de excepções, métodos estáticos, métodos abstractos
- D: as expressões
on_exit
,on_success
, eon_error
facultam funcionalidade de reconhecimento de excepções semelhante ascope(exit)
,scope(failure)
, permitindo que código de limpeza com reconhecimento de excepções seja colocado junto ao código que precisa de limpeza - Haskell: os operadores
map
,foldl
,foldr
, eselect
Remove ads
Tipos de dados
Os tipos básicos incluem: boolean
, string
, integer
, float
, date
, binary
,[5] list
, hash
(vectores associativos), e object
, bem como code
para código usado como tipo de dados.[6]
Múltiplos fios de execução
Apesar de ser uma linguagem interpretada, a Qore foi concebida para permitir múltiplos fios de execução como princípio fundamental de desenho. Todos os elementos da Qore são seguros do ponto de vista dos fios de execução e, em geral, a linguagem foi concebida tendo em vista a escalabilidade de multiprocessamento simétrico (SMP). Uma vez que todos os elementos da linguagem foram feitos para permitir múltiplos fios de execução, os programas e scripts da Qore não têm de se limitar a um subconjunto das funcionalidades da Qore, razão pela qual também não há um trinco de interpretador global.[7]
A funcionalidade de fios de execução na linguagem Qore é facultada pela biblioteca de fios de execução POSIX (POSIX Threads) do sistema operativo.
Remove ads
Colecta de lixo
A linguagem Qore tem uma abordagem única de colecta de lixo chamada colecta pronta,[2] que permite que os destrutores corram assim que os objectos saiam do alcance, mesmo que tenham referências recursivas para si mesmos. Isto permite que a Qore seja compatível com o padrão RAII bem como gestão de memória automática com colecta de lixo.
Incorporação de código e isolamento de processos
A Qore foi concebida para permitir a lógica de incorporação e isolamento de processos nas aplicações; isto aplica-se também quer às aplicações escritas na linguagem Qore, quer às aplicações que usam a API pública de C++ da biblioteca da Qore. Ao usar a classe Program
, que representa um contentor lógico com controlos de isolamento de processos, objectos discretos podem ser criados e destruídos em tempo de execução contendo código incorporado para estender ou modificar o comportamento da aplicação como o utilizador desejar.[8]
Remove ads
Biblioteca de tempo de execução
A biblioteca de tempo de execução da Qore permite mapeamento de dados, API para comunicação com bases de dados (incluindo API de alto nível para operações SQL, gestão de esquemas e operações de administração de base de dados), API clientes e implementações de infraestrutura de servidores para muitos protocolos, incluindo HTTP, REST, WebSocket, chamadas de procedimento remoto (RPC) e muitos protocolos de formato de ficheiros e de intercâmbio de dados e de ficheiros.[9]
Remove ads
Testes
A Qore permite testes através do módulo QUnit que facilita os processos de testes automáticos e integração contínua para o código escrito em linguagem Qore.
Disponibilidade
O repositório Git da Qore está alojado no GitHub Os pacotes binários estão disponíveis em RPM, MacPorts e em FreeBSD Ports, assim como para outros sistemas operativos, incluindo o Microsoft Windows. O sítio colaborativo da Qore tem mais informação (em inglês) na secção General Source and Download Info.
Referências
- «Why use Qore?». Qore.org. 13 de junho de 2016. Consultado em 4 de novembro de 2016
- «Prompt Collection». Qore.org. 14 de junho de 2016. Consultado em 4 de novembro de 2016
- «qore/ABOUT at develop · qorelanguage/qore · GitHub». Github.com. Consultado em 4 de novembro de 2016
- «Qore Programming Language Reference Manual: Parse Directives». Docs.qore.org. Consultado em 4 de novembro de 2016
- «Qore Programming Language Reference Manual: Basic Data Types». Qore.org. Consultado em 4 de novembro de 2016
- «Qore Programming Language Reference Manual: Code Data Types». Docs.qore.org. Consultado em 4 de novembro de 2016
- «Qore Programming Language Reference Manual: Threading». Docs.qore.org. Consultado em 4 de novembro de 2016
- «Qore Programming Language Reference Manual: Qore::Program Class Reference». Qore.org. Consultado em 4 de novembro de 2016
- «Modules · qorelanguage/qore Wiki · GitHub». Github.com. 12 de junho de 2016. Consultado em 4 de novembro de 2016
Remove ads
Ligações externas
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads