Zonnon - Zonnon

Zonnon
Paradigmas Imperativo , estruturado , modular , orientado a objetos
Família Wirth Oberon
Projetado por Jürg Gutknecht
Desenvolvedor ETH Zurique
Apareceu pela primeira vez 2013 ; 8 anos atrás  ( 2013 )
Disciplina de digitação Forte , híbrido ( estático e dinâmico )
Alcance Lexical
Influenciado por
Oberon , Pascal

Zonnon é uma linguagem de programação de propósito geral na linha ou família das linguagens anteriores Pascal , Modula e Oberon . Jürg Gutknecht é o autor.

Seu modelo conceitual é baseado em objetos, definições, implementações e módulos. Seu modelo de computação é concorrente, baseado em objetos ativos que interagem por meio de diálogos controlados por sintaxe. A linguagem está sendo desenvolvida no Instituto de Sistemas de Computação ETH Zürich pelo Professor Jürg Gutknecht. Zonnon introduz o conceito de 'objetos ativos' que são usados ​​para representar objetos concorrentes do mundo real dentro de programas de computador. O Zonnon Language Report foi escrito por Brian Kirk (diretor da Robinsons Associates) e David Lightfoot ( Oxford Brookes University ) trabalhando com Gutknecht (ETH, Zürich) e o Dr. Eugene Zueff (Евгений Зуев) ( Moscow State University ).

O primeiro livro sobre Zonnon foi publicado pela NI Lobachevsky State University de Nizhny Novgorod (também conhecida como Nizhni Novgorod State University).

Visão geral

Zonnon é um membro da família de linguagens Pascal, que tem duas consequências benéficas: a) é uma linguagem de propósito geral eb) é imediatamente familiar para programadores que usaram Pascal, Modula-2 e Oberon. A maioria dos programas Pascal do domínio de algoritmos e estruturas de dados são compilados com sucesso pelo compilador Zonnon após algumas pequenas modificações. No entanto, do ponto de vista da programação em grande escala, o Zonnon é muito mais elaborado em comparação com seus antecessores. Zonnon tem quatro tipos diferentes de unidades de programa: objetos, módulos, definições e implementações. Os dois primeiros são instanciados em tempo de execução , o terceiro é uma unidade de abstração de tempo de compilação e o quarto é uma unidade de composição. Aqui está uma breve caracterização:

  • O objeto é um componente de programa de tempo de execução independente. Ele pode ser instanciado dinamicamente sob o controle do programa em multiplicidade arbitrária.
  • O módulo pode ser considerado um objeto singleton cuja criação é controlada pelo sistema. Além disso, um módulo pode atuar como um contêiner de tipos de dados abstratos conectados logicamente , operadores e unidades estruturais do ambiente de tempo de execução. Em combinação com a relação de importação, a construção do módulo é uma ferramenta poderosa de estruturação do sistema.
  • Definição é uma visão abstrata de um objeto (ou módulo) de uma determinada perspectiva. É uma faceta do objeto ou, em outras palavras, uma apresentação abstrata de um ou mais de seus serviços.
  • A implementação normalmente fornece uma implementação padrão possivelmente parcial da definição correspondente. É uma unidade de reutilização e composição que é agregada ao espaço de estado de um objeto (ou módulo), seja em tempo de compilação ou em tempo de execução.

Modelo de composição

Zonnon usa um modelo de herança composicional baseado na agregação. Normalmente, um objeto (ou módulo) é composto de vários componentes funcionais, cada um deles se apresentando aos clientes na forma de uma definição abstrata. O conjunto de definições mais a interface intrínseca do objeto (que é o conjunto de todos os elementos públicos do objeto) constitui a interface entre o objeto e seus clientes.

Modelo de simultaneidade

Zonnon permite adicionar comportamento a objetos (e módulos). Para tanto, a noção de objeto ativo foi importada da linguagem Active Oberon e generalizada para um modelo unificado de atividades hierárquicas. As atividades são threads encapsulados que vêm em dois tipos: atividades locais e atividades do agente.

Atividades locais

As atividades locais expressam a dinâmica intrínseca do objeto. Um contexto típico é um bloco de declarações que representam a “lógica de lançamento” para um conjunto de atividades mutuamente independentes, com a suposição de que o fim do bloco atua como uma barreira que não pode ser ultrapassada antes que todas as atividades tenham terminado.

Atividades do agente

As atividades do agente controlam a interoperabilidade dos objetos em termos de diálogos formais. Cada atividade do agente dentro de um objeto “receptor” serve como um modelo de um diálogo formal entre algum chamador e o receptor. As atividades do agente geralmente implementam um analisador para alguma sintaxe predefinida que constitui um tipo de contrato entre os dois parceiros de comunicação. Os diálogos formais são uma generalização das chamadas de métodos assíncronos. Isso se reflete na forma de uma sintaxe emprestada de chamadas de métodos comuns.

Notas

Referências

Leitura adicional

Fontes independentes
Fontes do autor e / ou colaboradores

links externos