11.07.2015 Views

Programando em NCL 3.0.pdf - Telemidia - PUC-Rio

Programando em NCL 3.0.pdf - Telemidia - PUC-Rio

Programando em NCL 3.0.pdf - Telemidia - PUC-Rio

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Todos os requisitos explicitados nos três parágrafos anteriores guiarama integração de objetos imperativos à <strong>NCL</strong>. Um objeto com código imperativodeve ser escrito <strong>em</strong> um arquivo separado do documento <strong>NCL</strong>, que apenas oreferencia. Os códigos imperativos usam a mesma abstração para objetos d<strong>em</strong>ídia usada para imagens, vídeos e outras mídias (ver Parte II). Em outraspalavras, um documento <strong>NCL</strong> apenas relaciona objetos de mídia, nãoimportando qual o tipo de seu conteúdo. Mais ainda, como para todo objetode mídia, a comunicação com o mundo externo ao objeto somente pode serfeita através de elos (el<strong>em</strong>entos , ver Capítulo 10) ou da leitura devariáveis do nó <strong>NCL</strong> settings (el<strong>em</strong>ento ,ver Capítulo 8), que também só pod<strong>em</strong> ser escritas através do usode elos.Resumindo, a motivação de mínima intrusão destaca três requisitos, queforam obedecidos pela <strong>NCL</strong> na sua integração com entidades especificadas<strong>em</strong> uma linguag<strong>em</strong> imperativa:1. Tanto a <strong>NCL</strong> quanto a linguag<strong>em</strong> imperativa são alteradas o mínimopossível na viabilização da integração.2. Do ponto de vista do desenvolvedor, é mantida uma fronteira b<strong>em</strong>delineada entre os dois paradigmas de programação.3. Em termos de projeto, a relação entre as duas máquinas 4 de execução(declarativa <strong>NCL</strong> e imperativa) é ortogonal; <strong>em</strong> outras palavras, operações noambiente de uma máquina não produz<strong>em</strong> efeitos imprevistos no ambiente daoutra máquina.17.2 El<strong>em</strong>ento Um objeto de mídia com código imperativo é definido <strong>em</strong> <strong>NCL</strong> peloel<strong>em</strong>ento com o atributo type recebendo o valor “application/x-???”,onde ??? depende da linguag<strong>em</strong> imperativa usada. Por ex<strong>em</strong>plo,“application/x-ncl-<strong>NCL</strong>ua” é usado no middleware Ginga para objetos comcódigo Lua. O atributo src deve, nesse caso, referenciar a localização docódigo imperativo que compõe o conteúdo do objeto. A Listag<strong>em</strong> 17.1 ilustraum ex<strong>em</strong>plo de especificação de objeto imperativo com código Lua. Note queo fato de usarmos a extensão “.lua” nos desobriga da definição do atributotype.4 Uma máquina de execução declarativa (também chamada de player, formatador, agente deusuário etc.) é aquela que inicia e gerencia todo o ciclo de vida de uma aplicação declarativa. Analogamente,uma máquina de execução imperativa (chamada de engine, máquina virtual etc.) é aquela que inicia egerencia todo o ciclo de vida de uma aplicação imperativa.362

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!