Vindo: Programação lógica distribuída para conjuntos móveis descentralizados
Por Edmund SL Lam ([email protected]) e Iliano Cervesato ([email protected]), com Ali Elgazar ([email protected])
Desenvolvedores de ex -alunos:
Novo artigo sobre semântica do nosso idioma apareceu no 10º Simpósio Internacional de Regras da Web (RULEML) 2016, com o Best Paper Award (http://2016.ruleml.org/awards)
Novo artigo apareceu em precedentes da 11ª Conferência Internacional do IEEE sobre computação sem fio e móvel, rede e comunicações (WIMOB2015)
Adicionado bibliotecas de detecção NFC.
Adicionado protótipo de jogo de festa da máfia (atualmente parece um pouco feio, mas funciona! = P Fique atento para atualizações!).
Códigos de origem para as bibliotecas do Android em Combate!
O New Comgele RunTime agora funciona com a WiFi-Direct e com a área da área da área local!
O VELDELE é uma estrutura de programação de coORIINDAÇÃO para orquestrar aplicativos distribuídos por vários dispositivos móveis. Os cálculos distribuídos envolvendo várias partes são especificados como um único programa declarativo de maneira centrada no conjunto, e não da maneira tradicional centrada no nó, onde o código de comunicação separado é escrito para cada nó participante.
A vinda é bastante influenciada por padrões de junção, regras de manuseio de restrições e lógica linear, especificando cálculos distribuídos como reescrevendo regras entre vários vários eventos. Os eventos são paramétricos nos locais da computação, definindo a capacidade da VELELE de expressar cálculos descentralizados em um conjunto de dispositivos de computação. Outros recursos incluem padrões de compreensão multiset e correspondência de padrões não lineares. Em combinação, eles tornam a vinda uma linguagem de coordenação altamente declarativa para orfrear cálculos descentralizados complexos.
A vinda integra -se com aplicações Android através de um mecanismo conhecido como gatilhos e atuadores: os gatilhos permitem Efeitos colaterais no aplicativo Android (através de operações de retorno de chamada) associadas a eventos que ocorrem durante sua reescrita. Isso significa que a vinda trabalha com as APIs nativas do Android SDK e não o força a programar operações e cálculos locais de maneira diferente (você ainda tem tudo o que ama e odeia em escrever aplicativos independentes do Android!)
No total, os programas que chegam não apenas representam fáceis de ler especificações declarativas de conjuntos descentralizados, como são executáveis e fornecem uma interface intuitiva aos seus aplicativos Android.
Se você gosta de conhecer a teoria por trás da execução descentralizada das regras de chegada, consulte nosso artigo Ruleml'2016 (Melhor Papel concedido)
Se você gosta de saber mais sobre a vinda e como ele se integra ao Android SDK, confira nosso relatório técnico ou papel de coordenação'2015.
Se você gosta de saber mais sobre o tempo sincronizando os eventos distribuídos na chegada, confira nosso papel Wimob'2015.
Se você gosta de saber mais sobre a teoria por trás da reescrita descentralizada de multiset com padrões de compreensão, consulte nosso artigo APLAS'2014 e papel PPDP'2013.
Este repositório contém uma cópia de trabalho do Compilador e sistema de tempo de execução, além de alguns exemplos para você começar a chegar. Aqui está um resumo do que ele contém:
Para instalar e usar o viciado, siga as instruções 'Introdução' abaixo. Se você quiser ir direto para reproduzir os aplicativos Android, siga as instruções no arquivo ReadMe em https://github.com/sllam/comingle/tree/master/android_apps.
Para executar o compilador e o gerador de código, você precisará:
Para executar os códigos gerados por vir, você precisará:
Para que o compilador de Vichele funcione, você precisará primeiro ter o Python 2.7 em execução. Em seguida, você precisará de alguns módulos Python não padrão, Ply e Z3py. Prossiga para http://www.dabeaz.com/plys/ e https://github.com/z3prover/z3 para obter as respectivas fontes e instalar instruções.
** Importante! Você precisará instalar as ligações Z3 Python. Veja Docs em https://github.com/z3prover/z3, particularmente Z3 Bindings -> Python
Depois de tê -los, prossiga para https://github.com/sllam/pysetcomp e instale:
pysetcomp $ sudo python setup.py install
Em seguida, você precisará do compilador do MSRE, prossiga para https://github.com/sllam/msre e instale apenas seu compilador:
MSRE $ CD compilador/msrex
msre/compilador/msrex $ sudo python setup.py install
Você está quase definido, agora deve ser capaz de configurar e instalar o compilador que vem, faça isso executando o arquivo make:
Vindo $ sudo fazer instalar
Isso faria o seguinte:
Para testar a chegada, vá para o diretório de exemplo e experimente:
Exemplos de CD vindo
Chegando/Exemplos $ cmgc dragracing.cmg
Você verá um monte de saída e, esperançosamente, sem mensagens de erro. Se ele foi executado com sucesso, você deve ver um diretório 'DraGracing' com um arquivo de origem Java 'DraGracing.java'. Esta classe Java implementa o tempo de execução vindo especificado pelo Programa Combate 'DraGracing.cmg'. Consulte o Projeto Eclipse em https://github.com/sllam/comingle/tree/master/android_apps/ingingledragracing para um exemplo de como esse tempo de execução pode ser integrado com um jogo Android real.
Se você encontrou erros em qualquer uma das etapas acima ... Entre em contato comigo (Edmund) em [email protected]. Além disso, aceite minhas desculpas, o protótipo que vem ainda está em andamento, mas estou trabalhando duro para trazê -lo para um estado estável e mais utilizável! =)
Agradecimentos especiais ao seguinte: