2163 capítulos
Medium 9788521634829

3 - Gramáticas Livres de Contexto

SANTOS, Pedro Reis; LANGLOIS, Thibault Grupo Gen PDF Criptografado

3

Gramáticas Livres de Contexto

Gramáticas genéricas livres de contexto são processáveis por meio de algoritmos genéricos, por exemplo, o algoritmo de Earley. No entanto, esses algoritmos apresentam, no pior dos casos, um pro‑ cessamento cuja complexidade é O(n3), em que n é o número de símbolos da sequência de entrada.

Contudo, existem subconjuntos de gramáticas que podem ser processadas de modo mais eficiente.

Essas formas mais simples são ainda suficientemente genéricas em relação a quase todas as lingua‑ gens concebidas para o processamento informático. Entre essas, salientam‑se as gramáticas LL(1) e

LR(1). As gramáticas LL(1) são mais restritivas que as LR(1), embora sejam mais fáceis de pôr em prá‑ tica, mais eficientes e exigem menos memória [54].

As gramáticas constituem a ferramenta preferida para a descrição de linguagens, pois apresentam

­várias vantagens:

■■

Uma gramática dá uma descrição precisa e fácil para o entendimento da sintaxe de uma linguagem;

Ver todos os capítulos
Medium 9788577807246

14. Mudança

Beck, Kent Grupo A PDF Criptografado

88

Parte I

O Exemplo Financeiro

? 2

: 1; return new Money(amount / rate, to);

}

Agora, de repente, Money conhece taxas de câmbio. Eca! O Bank deveria ser o

único lugar em que nos preocupamos com taxas de câmbio. Teremos que passar o

Bank como um parâmetro para Expression.reduce(). (Vê? Nós sabíamos que precisaríamos disso e estávamos certos. Nas palavras do avô em A Princesa Prometida,

“Você é muito esperto...”) Primeiro, o chamador:

Bank

Money reduce(Expression source, String to) { return source.reduce(this, to);

}

Então os implementadores:

Expression

Money reduce(Bank bank, String to);

Sum public Money reduce(Bank bank, String to) { int amount= augend.amount + addend.amount; return new Money(amount, to);

}

Money public Money reduce(Bank bank, String to) { int rate = (currency.equals("CHF") && to.equals("USD"))

? 2

: 1; return new Money(amount / rate, to);

}

Os métodos têm que ser públicos, pois métodos na interface têm que ser públicos

(por alguma razão excelente, estou certo).

Agora conseguimos calcular a taxa no Bank:

Ver todos os capítulos
Medium 9788582603727

Capítulo 9 - Modos de transmissão

Douglas E. Comer Grupo A PDF Criptografado

CAPÍTULO 9

Modos de transmissão

9.1

9.2

9.3

9.4

9.5

9.6

9.7

9.8

9.9

9.10

9.11

9.12

9.13

9.14

Introdução, 133

Uma taxonomia de modos de transmissão, 133

Transmissão paralela, 134

Transmissão serial, 135

Ordem de transmissão: bits e bytes, 135

Temporização em transmissão serial, 136

Transmissão assíncrona, 136

Transmissão de caracteres assíncrona RS-232, 137

Transmissão síncrona, 138

Bytes, blocos e quadros, 138

Transmissão isócrona, 139

Transmissões simplex, half-duplex e full-duplex, 140

Equipamentos DCE e DTE, 141

Resumo, 141

9.1 Introdução

Os capítulos desta parte do livro abordam os conceitos fundamentais que embasam a comunicação de dados. Este capítulo continua a discussão e foca a maneira como os dados são transmitidos. Ele introduz a terminologia comum, explica as vantagens e as desvantagens do paralelismo e discute os importantes conceitos de comunicação síncrona e assíncrona. Os capítulos posteriores mostram como as ideias apresentadas aqui são usadas na rede por meio da Internet.

Ver todos os capítulos
Medium 9788565837194

11.6 Cláusulas catch múltiplas

Flanagan David Grupo A PDF Criptografado

276

Parte I

JavaScript básica

11.6 Cláusulas catch múltiplas

Em JavaScript 1.5, a instrução try/catch foi estendida para permitir várias cláusulas catch. Para usar esse recurso, coloque após o nome do parâmetro da cláusula catch a palavra-chave if e uma expressão condicional: try {

// vários tipos de exceção podem ser lançados aqui throw 1;

} catch(e if e instanceof ReferenceError) {

// Trata de erros de referência aqui

} catch(e if e === "quit") {

// Trata da string "quit" lançada

} catch(e if typeof e === "string") {

// Trata de qualquer outra string lançada aqui

} catch(e) {

// Trata de todo o resto aqui

} finally {

// A cláusula finally funciona normalmente

}

Quando ocorre uma exceção, cada cláusula catch é tentada por sua vez. A exceção é atribuída ao parâmetro da cláusula catch nomeado e a condicional é avaliada. Se for verdadeira, o corpo dessa cláusula catch é avaliado e todas as outras cláusulas catch são puladas. Se uma cláusula catch não tem condicional, ela se comporta como se a condicional if fosse true e é sempre disparada se nenhuma cláusula antes dela foi disparada. Se todas as cláusulas catch têm uma condicional e nenhuma dessas condicionais é verdadeira, a exceção se propaga sem ser capturada. Observe que, como as condicionais já aparecem dentro dos parênteses da cláusula catch, elas não são obrigadas a ser incluídas diretamente nos parênteses, como aconteceria em uma instrução if normal.

Ver todos os capítulos
Medium 9788521615439

1. Introdução

MONTEIRO, Mario A. Grupo Gen PDF Criptografado

1

Introdução

1.1 CONCEITOS BÁSICOS

1.1.1 Processamento de Dados

Um computador é uma máquina (conjunto de partes eletrônicas e eletromecânicas) capaz de sistematicamente coletar, manipular e fornecer os resultados da manipulação de informações para um ou mais objetivos.

Por ser uma máquina composta de vários circuitos e componentes eletrônicos, também foi chamado durante algum tempo de equipamento de processamento eletrônico de dados.

Processamento de dados (tradução do termo inglês Data Processing) consiste, então, em uma série de atividades ordenadamente realizadas, com o objetivo de produzir um arranjo determinado de informações a partir de outras obtidas inicialmente.

A manipulação das informações coletadas no início da atividade chama-se processamento; as informações iniciais são usualmente denominadas dados.

Os termos dado e informação podem ser tratados como sinônimos ou como termos distintos; dado pode ser definido como a matéria-prima originalmente obtida de uma ou mais fontes (etapa de coleta), e informação como o resultado do processamento, isto é, o dado processado ou “acabado”.

Ver todos os capítulos

Visualizar todos os capítulos