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
de código declarativo (HTML, SMIL, NCL aninhados etc.), de códigoimperativo e funcional (Xlet, Lua etc.), entre outros, como objetos de mídiaNCL. Quais objetos de mídia são suportados depende dos exibidores de mídiaque estão acoplados ao formatador NCL (exibidor NCL). 3 Um dessesexibidores é o decodificador/exibidor MPEG-4, normalmente implementadoem hardware no receptor de televisão digital. Dessa forma, o vídeo principale o áudio principal MPEG-4 são tratados como todos os demais objetos demídia que podem estar relacionados utilizando NCL.Outro objeto de mídia possível é aquele baseado em XHTML. A NCLnão substitui, mas embute documentos (objetos) baseados em XHTML.Como acontece com outros objetos de mídia, qual linguagem baseada emXHTML terá suporte em um formatador NCL é uma escolha deimplementação e, portanto, depende de qual navegador XHTML seráincorporado no formatador NCL e atuará como exibidor dessa mídia.A NCL permite ainda objetos de mídia escritos em outras linguagensdeclarativas, além da linguagem XHTML, como objetos com código SMIL,SVG etc.A NCL possui uma linguagem de script (a linguagem Lua), com umdesempenho muito superior à ECMAScript em todos os quesitos importantespara uma aplicação em TV digital, mencionados nos próximos parágrafos.Além de objetos NCLua (com código Lua), a NCL permite objetos comoutros códigos imperativos como, por exemplo, objetos NCLet com códigoJava (Xlets), parte da ponte entre o ambiente declarativo e o ambienteimperativo do middleware Ginga.Lua [ABNT NBR 15606-2, 2011] é uma linguagem de programaçãofuncional e imperativa, procedural, pequena e leve, projetada para expandiraplicações em geral, para ser usada como linguagem extensível e para serembarcada em softwares complexos.Lua combina programação procedural com poderosas construções paradescrição de dados, baseadas em tabelas associativas e semântica extensível.A linguagem é tipada dinamicamente, interpretada a partir de bytecodes, etem gerenciamento automático de memória com coleta de lixo. Essascaracterísticas fazem de Lua uma linguagem ideal para configuração,automação (scripting) e prototipagem rápida, característica de grandeimportância para as aplicações de TV, cujo desenvolvimento rápido éfundamental.3 Renderizador de documentos, agente do usuário e exibidor (player) são outros nomes atribuídos aoformatador de documentos. O formatador NCL é o módulo central do ambiente Ginga-NCL.34
Lua é portável. Seu núcleo é muito pequeno e totalmente ANSI C. Atítulo de comparação, enquanto máquinas JavaScript (ECMAScript) ocupamde 936 Kbytes (SpiderMonkey — JavaScript to Mozilla) a 1,7 Mbytes(Rhino), Lua ocupa aproximadamente 120 Kbytes (retirando o parser e asbibliotecas, Lua pode chegar a 60 Kbytes); LuaJIT (Lua Just in Time), umaextensão da máquina Lua com 32 KB a mais de código, ocupa um total de150 Kbytes.Lua é facilmente embarcável. Como mencionado, seu interpretador éuma biblioteca C, embarcável em várias linguagens, entre elas C/C++(linguagem da implementação de referência do Ginga-NCL) e Java(linguagem do ambiente imperativo do Ginga).Lua é uma das linguagens dinâmicas mais eficientes: eficiente paradescrição de dados, eficiente em ocupação de memória de seus programas erápida. Outras linguagens usam a frase “as fast as Lua” como aspiração.Benchmarks independentes mostram a eficiência de Lua. A Figura 1.14apresenta uma comparação de Lua com JavaScript (ECMAScript) doSpiderMonkey, segundo o benchmark em http://shootout.alioth.debian.org/.As comparações são feitas sobre implementações de problemas propostos nosite e submetidos por qualquer um. Nos gráficos, cada par de linhasrepresenta um dos problemas propostos: linhas pretas para uso de memória;linhas brancas para tempo de CPU. As linhas vão na direção do vencedor.Quanto maior a linha, maior a diferença na comparação.• Lua vs JS • LuaJIT vs JSFigura 1.14 Desempenho de Lua e de LuaJIT (http://shootout.alioth.debian.org/) comparadoà JavaScript.35
- Page 24 and 25: Figuras, Listagens e TabelasFiguras
- Page 26 and 27: Figura 6.3Figura 6.4Figura 6.5Leiau
- Page 28 and 29: Figura 10.13 Conector com múltiplo
- Page 30 and 31: Figura 18.3 Visão estrutural do Ex
- Page 32 and 33: Listagem 3.41 Novo relacionamento c
- Page 34 and 35: Listagem 10.4Listagem 10.5Conector
- Page 36 and 37: Listagem 13.4Importação de docume
- Page 38 and 39: Tabela 1.1TabelasCodificação de
- Page 40 and 41: Tabela 13.1 Comportamento da Aplica
- Page 42 and 43: Capítulo 1TV Digital:Fundamentos e
- Page 44 and 45: contramedida for tomada, a ISI pode
- Page 46 and 47: aproximadamente três vezes a altur
- Page 48 and 49: celular, um PDA etc. Como há um gr
- Page 50 and 51: O processamento dos dados recebidos
- Page 52 and 53: O sistema brasileiro de TV digital
- Page 54 and 55: Da mesma forma que o padrão MPEG-2
- Page 56 and 57: xxxxMUXMPEG 2Systemzvídeo principa
- Page 58 and 59: decodificar os dados recebidos e co
- Page 60 and 61: 1.2.4 ModulaçãoUm dos padrões ma
- Page 62 and 63: à interferência de múltiplos per
- Page 64 and 65: middleware. A Figura 1.11 apresenta
- Page 66 and 67: Informações adicionais opcionais
- Page 68 and 69: programas não-lineares ao vivo pel
- Page 70 and 71: inicial” é não-declarativo. Uma
- Page 72 and 73: Tabela 1.5 Ambientes de aplicaçõe
- Page 76 and 77: Outras características de Lua, imp
- Page 78 and 79: ISO/IEC 13818-1 (2000). Internation
- Page 80 and 81: Capítulo 2Modelo ConceitualNCMToda
- Page 82 and 83: formulário etc.). No entanto, nenh
- Page 84 and 85: Os seres humanos se vestem de acord
- Page 86 and 87: airro, que está dentro de uma cida
- Page 88 and 89: Além da já mencionada lista orden
- Page 90 and 91: Capítulo 3Introdução àLinguagem
- Page 92 and 93: O novo vídeo acrescentado é uma r
- Page 94 and 95: A definição dos espaços de exibi
- Page 96 and 97: atores que exercerão os papéis da
- Page 98 and 99: Listagem 3.8 Elemento e seus eleme
- Page 100 and 101: 60
- Page 102 and 103: Todo elemento possui um identifica
- Page 104 and 105: Ao referenciar um conector definido
- Page 106 and 107: Listagem 3.16 Documento NCL com reu
- Page 108 and 109: elementos , mesmo que seus valores
- Page 110 and 111: 70Listagem 3.19 Definição dos nov
- Page 112 and 113: 72
- Page 114 and 115: onBeginonBeginonEndStartStartonBegi
- Page 116 and 117: 76
- Page 118 and 119: Listagem 3.22 O Primeiro João com
- Page 120 and 121: 80
- Page 122 and 123: 3.7 Usando o Canal de Interatividad
de código declarativo (HTML, SMIL, <strong>NCL</strong> aninhados etc.), de códigoimperativo e funcional (Xlet, Lua etc.), entre outros, como objetos de mídia<strong>NCL</strong>. Quais objetos de mídia são suportados depende dos exibidores de mídiaque estão acoplados ao formatador <strong>NCL</strong> (exibidor <strong>NCL</strong>). 3 Um dessesexibidores é o decodificador/exibidor MPEG-4, normalmente impl<strong>em</strong>entado<strong>em</strong> hardware no receptor de televisão digital. Dessa forma, o vídeo principale o áudio principal MPEG-4 são tratados como todos os d<strong>em</strong>ais objetos d<strong>em</strong>ídia que pod<strong>em</strong> estar relacionados utilizando <strong>NCL</strong>.Outro objeto de mídia possível é aquele baseado <strong>em</strong> XHTML. A <strong>NCL</strong>não substitui, mas <strong>em</strong>bute documentos (objetos) baseados <strong>em</strong> XHTML.Como acontece com outros objetos de mídia, qual linguag<strong>em</strong> baseada <strong>em</strong>XHTML terá suporte <strong>em</strong> um formatador <strong>NCL</strong> é uma escolha deimpl<strong>em</strong>entação e, portanto, depende de qual navegador XHTML seráincorporado no formatador <strong>NCL</strong> e atuará como exibidor dessa mídia.A <strong>NCL</strong> permite ainda objetos de mídia escritos <strong>em</strong> outras linguagensdeclarativas, além da linguag<strong>em</strong> XHTML, como objetos com código SMIL,SVG etc.A <strong>NCL</strong> possui uma linguag<strong>em</strong> de script (a linguag<strong>em</strong> Lua), com umdes<strong>em</strong>penho muito superior à ECMAScript <strong>em</strong> todos os quesitos importantespara uma aplicação <strong>em</strong> TV digital, mencionados nos próximos parágrafos.Além de objetos <strong>NCL</strong>ua (com código Lua), a <strong>NCL</strong> permite objetos comoutros códigos imperativos como, por ex<strong>em</strong>plo, objetos <strong>NCL</strong>et com códigoJava (Xlets), parte da ponte entre o ambiente declarativo e o ambienteimperativo do middleware Ginga.Lua [ABNT NBR 15606-2, 2011] é uma linguag<strong>em</strong> de programaçãofuncional e imperativa, procedural, pequena e leve, projetada para expandiraplicações <strong>em</strong> geral, para ser usada como linguag<strong>em</strong> extensível e para ser<strong>em</strong>barcada <strong>em</strong> softwares complexos.Lua combina programação procedural com poderosas construções paradescrição de dados, baseadas <strong>em</strong> tabelas associativas e s<strong>em</strong>ântica extensível.A linguag<strong>em</strong> é tipada dinamicamente, interpretada a partir de bytecodes, et<strong>em</strong> gerenciamento automático de m<strong>em</strong>ória com coleta de lixo. Essascaracterísticas faz<strong>em</strong> de Lua uma linguag<strong>em</strong> ideal para configuração,automação (scripting) e prototipag<strong>em</strong> rápida, característica de grandeimportância para as aplicações de TV, cujo desenvolvimento rápido éfundamental.3 Renderizador de documentos, agente do usuário e exibidor (player) são outros nomes atribuídos aoformatador de documentos. O formatador <strong>NCL</strong> é o módulo central do ambiente Ginga-<strong>NCL</strong>.34