SlideShare uma empresa Scribd logo
1 de 21
Etapas do processo de
desenvolvimento do
tradutor de Pig   Latin

                   Elen Arantza
                  Regina Mares
-1-
Definição da linguagem de programação
1. Definição da linguagem de programação


   Pig é um projeto de pesquisa do grupo Yahoo!,
     criado com o objetivo de desenvolver uma
 infraestrutura para suportar a análise de grandes
                conjuntos de dados.
1. Definição da linguagem de programação


    A mais alta camada de abstração no Pig é a
  linguagem de consulta chamada Pig Latin, pela
  qual os usuários expressam as tarefas de análise
 de dados, como consultas no estilo SQL ou álgebra
                     relacional.

              • Projeto open-source:
-2-
Especificação informal da
linguagem de
 programação
2. Especificação informal da
linguagem de programação
 • Palavras-chave:

  and any all        as     bag    by
         chararray CONCAT
  COUNT        cross           load
               define
         distinct
         double              explain
  filter                    foreach
          generate
         group       illustrate
         SUM
2. Especificação informal da
linguagem de programação
 • Tipos de dados: Simples e
 complexos
  Tipos de dados simples   Descrição                     Exemplo

  Scalars
  int                      Inteiro de 32-bit             10
  long                     Inteiro de 64-bit             Data: 10L or 10l
                                                         Display: 10L
  float                    Ponto flutuante de 32-bit     Data: 10.5F or 10.5f or
                                                         10.5e2f or 10.5E2F
                                                         Display: 10.5F or 1050.0F
  double                   Ponto flutuante de 64-bit     Data:     10.5 or 10.5e2 or
                                                         10.5E2
                                                         Display: 10.5 or 1050.0
  Arrays
  chararray                Matriz de caracteres          hello world
                           (string) em formato Unicode
                           UTF-8
  bytearray                Array de bytes (blob)
  Tipos de dados
  complexos
  tuple                    Um conjunto ordenado de       (19,2)
                           campos
  bag                      Uma coleção de tuplas         {(19,2), (18,1)}
                           (registros)
  map                      Um conjunto de pares de       [open#apache]
                           valores chave.
2. Especificação informal da
linguagem de programação
  • Operadores aritméticos


Operação         Símbol   Observação
                 o

Adição           +
Subtração        -
Multiplicação    *
Divisão          /
Módulo           %        Retorna o resto divido por b
                          (a%b).
Bicondicional    ? :      (condição ? valor_se_verdadeiro
                          : valor_se_falso)
                          Bicondicional deve ser colocado
                          entre parênteses.
2. Especificação informal da
linguagem de programação
 • Operadores booleanos




Operadores                Símbolo
AND                       e
OR                        ou
NOT                       negação
2. Especificação informal da
linguagem de programação
 • Operadores de comparação


 Comparação            Símbolo
 Igual                 ==
 Não é igual           !=
 Menor que             <
 Maior que             >
 Menor ou igual a      <=
 Maior ou igual a      >=
 Combinação de         matches
 padrões
2. Especificação informal da
linguagem de programação
 • Operadores nulos



 Operador             Símbolo
 É nulo               is null
 Não é nulo           is not null
2. Especificação informal da
linguagem de programação
 • Operadores relacionais
 Operador       Descrição
 COGROUP        GROUP e COGROUP são idênticos. Ambos trabalham com uma ou mais
                relações.

 CROSS          Calcula o produto cruzado de duas ou mais relações.
 DEFINE
 DISTINCT       Remove tuplas duplicadas em uma relação.
 FILTER         Seleciona tuplas de uma relação baseada em alguma condição.
 FOREACH        Gera transformações de dados baseadas em colunas de dados.
 GROUP          Agrupa os dados em uma ou mais relações.
 IMPORT
 JOIN (inner)   Executa uma junção interna de duas ou mais relações baseadas em
                valores de campo comuns.

 JOIN (outer)   Executa uma junção externa de duas ou mais relações com base em
                valores de campo comuns.

 LIMIT          Limita o número de tuplas na saída.
 LOAD           Carrega dados do sistema de arquivos.
 MAPREDUCE      Executa tarefas nativas Map-reduce dentro de um script de Pig
 ORDER BY       Classifica uma relação baseada de um ou mais campos.
 SAMPLE         Divide uma relação em duas ou mais relações.
 SPLIT          Divide uma relação em duas ou mais relações.
 STORE          Armazena ou salva os resultados para o sistema de arquivos.
 STREAM         Envia dados para um script externo ou programa.
 UNION          Calcula a união de duas ou mais relações.
2. Especificação informal da
linguagem de programação
 • Programa exemplo:


 log = LOAD 'excite-small.log' AS (user, time, query);
 grpd = GROUP log BY user;
 cntd = FOREACH grpd GENERATE group, COUNT(log);
 STORE cntd INTO 'output‘;


 Saída:
 002BB5A52580A8ED       18
 005BD9CD3AC6BB38       18
 00A08A54CD03EB95       3
 011ACA65C2BF70B2       5
 01500FAFE317B7C0      15
 0158F8ACC570947D      3
 018FBF6BFB213E68       1
-3-
Especificação formal da
linguagem de
 programação
3. Especificação formal da
linguagem de programação
 Dicionário:

 Variáveis:
 -Identificador de posição:
 -Identificador: L (L + D)* (_ (L + D)*)*
 -Constantes: D (D)*
 -Seqüência de caracteres: ‘ (L + D + B + C)* ’
 -Comentários: -- (L + D + B + C)*
3. Especificação formal da
linguagem de programação
 AFD:
-4-
Especificação do fluxograma de
execução (Análise léxica)
Inicio                                               Fim


   Ler todos
 caracteres do                                                  Sim
comando/linha
                                     Nã                 Fim de
                                     o                   fita?
 Ler símbolo



  Dicionário                  Sim
                                          Gerar token
       ?
  Nã
  o
    AFD?                     Sim            Tabela de
                                            símbolos
 Nã
 o
Tratamento de
     erros

 log = LOAD 'excite-small.log' AS (user:chararray, time:long, query:chararray);
-5-
Especificação do processo de
análise léxica (Teste de mesa)
Exemplo de manipulação de dados

>> log = LOAD 'excite-small.log' AS (user:chararray, time:long, query:chararray);
>> grpd = GROUP log BY user;
>> cntd = FOREACH grpd GENERATE group, COUNT(log);
>> STORE cntd INTO 'output‘;

002BB5A52580A8ED         18
005BD9CD3AC6BB38         18
00A08A54CD03EB95         3
011ACA65C2BF70B2         5
01500FAFE317B7C0         15
0158F8ACC570947D         3
018FBF6BFB213E68         1

>>




 SELECT user, COUNT(*) FROM excite-small.log GROUP BY user;
-
  Referências
• Yahoo! Research:
http://research.yahoo.com/project/90



  -
• Apache Pig:
http://pig.apache.org/

Mais conteúdo relacionado

Mais procurados

Manual-de-php
Manual-de-phpManual-de-php
Manual-de-phpdiogoa21
 
M5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-WebM5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-Webdiogoa21
 
Introdução a linguagem c karen lowhany
Introdução a linguagem c   karen lowhanyIntrodução a linguagem c   karen lowhany
Introdução a linguagem c karen lowhanyKaren Costa
 
Pipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoPipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoElaine Cecília Gatto
 
Introdução a Linguagem de Programação Python
Introdução a Linguagem de Programação PythonIntrodução a Linguagem de Programação Python
Introdução a Linguagem de Programação PythonFlávio Ribeiro
 
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...Rogério Moraes de Carvalho
 
Paradigma Funcional - Caso de Estudo Haskell
Paradigma Funcional - Caso de Estudo HaskellParadigma Funcional - Caso de Estudo Haskell
Paradigma Funcional - Caso de Estudo HaskellSérgio Souza Costa
 
04 - C# laços de repetição, vetores e matrizes v1.0
04 - C# laços de repetição, vetores e matrizes v1.004 - C# laços de repetição, vetores e matrizes v1.0
04 - C# laços de repetição, vetores e matrizes v1.0César Augusto Pessôa
 
Análise exploratória e modelação com R parte 1
Análise exploratória e modelação com R parte 1Análise exploratória e modelação com R parte 1
Análise exploratória e modelação com R parte 1Lucas Castro
 

Mais procurados (20)

Linguagem c
Linguagem cLinguagem c
Linguagem c
 
Introdução ao R
Introdução ao RIntrodução ao R
Introdução ao R
 
Manual-de-php
Manual-de-phpManual-de-php
Manual-de-php
 
Compiladores 5
Compiladores 5Compiladores 5
Compiladores 5
 
M5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-WebM5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-Web
 
Introdução à Linguagem C
Introdução à Linguagem CIntrodução à Linguagem C
Introdução à Linguagem C
 
Introdução a linguagem c karen lowhany
Introdução a linguagem c   karen lowhanyIntrodução a linguagem c   karen lowhany
Introdução a linguagem c karen lowhany
 
Paradigma funcional
Paradigma funcionalParadigma funcional
Paradigma funcional
 
Compiladores 6
Compiladores 6Compiladores 6
Compiladores 6
 
Compiladores 7
Compiladores 7Compiladores 7
Compiladores 7
 
Pipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoPipeline desdobramento escalonamento
Pipeline desdobramento escalonamento
 
Introdução a Linguagem de Programação Python
Introdução a Linguagem de Programação PythonIntrodução a Linguagem de Programação Python
Introdução a Linguagem de Programação Python
 
Aula 3 | Registros e Funções
Aula 3 | Registros e FunçõesAula 3 | Registros e Funções
Aula 3 | Registros e Funções
 
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...
TechEd Brasil 2011: DEV 303 - Atualizando suas habilidades de programação com...
 
Paradigma Funcional - Caso de Estudo Haskell
Paradigma Funcional - Caso de Estudo HaskellParadigma Funcional - Caso de Estudo Haskell
Paradigma Funcional - Caso de Estudo Haskell
 
Programas auxiliares
Programas auxiliaresProgramas auxiliares
Programas auxiliares
 
04 - C# laços de repetição, vetores e matrizes v1.0
04 - C# laços de repetição, vetores e matrizes v1.004 - C# laços de repetição, vetores e matrizes v1.0
04 - C# laços de repetição, vetores e matrizes v1.0
 
Final presentation of proposal language
Final presentation of proposal languageFinal presentation of proposal language
Final presentation of proposal language
 
Linguagem C clecioamerico
Linguagem C clecioamericoLinguagem C clecioamerico
Linguagem C clecioamerico
 
Análise exploratória e modelação com R parte 1
Análise exploratória e modelação com R parte 1Análise exploratória e modelação com R parte 1
Análise exploratória e modelação com R parte 1
 

Destaque

Dr. Peter Davies - An Update From The Food Safety Symposium
Dr. Peter Davies - An Update From The Food Safety SymposiumDr. Peter Davies - An Update From The Food Safety Symposium
Dr. Peter Davies - An Update From The Food Safety SymposiumJohn Blue
 
Certificate of Mindset Selling
Certificate of Mindset SellingCertificate of Mindset Selling
Certificate of Mindset SellingMohanad A. Monaem
 
Prevalence of methicillin-resistant Staphylococcus aureus (MRSA) in organic a...
Prevalence of methicillin-resistant Staphylococcus aureus (MRSA) in organic a...Prevalence of methicillin-resistant Staphylococcus aureus (MRSA) in organic a...
Prevalence of methicillin-resistant Staphylococcus aureus (MRSA) in organic a...almaples
 
Dr. Peter Davies - Livestock Associated MRSA: Tiger or Pussycat?
Dr. Peter Davies - Livestock Associated MRSA: Tiger or Pussycat?Dr. Peter Davies - Livestock Associated MRSA: Tiger or Pussycat?
Dr. Peter Davies - Livestock Associated MRSA: Tiger or Pussycat?John Blue
 
Dr. Peter Davies - Livestock associated MRSA: What are the risks to human hea...
Dr. Peter Davies - Livestock associated MRSA: What are the risks to human hea...Dr. Peter Davies - Livestock associated MRSA: What are the risks to human hea...
Dr. Peter Davies - Livestock associated MRSA: What are the risks to human hea...John Blue
 
The Superbug MRSA !!
The Superbug MRSA !!The Superbug MRSA !!
The Superbug MRSA !!Aruna M Das
 
Lecture 1 Staphylococcus aureus
Lecture 1 Staphylococcus aureusLecture 1 Staphylococcus aureus
Lecture 1 Staphylococcus aureus-
 
Peppa pig va de compras
Peppa pig va de comprasPeppa pig va de compras
Peppa pig va de comprasMaitedal
 
Staphylococcus aureus
Staphylococcus  aureusStaphylococcus  aureus
Staphylococcus aureusJuby Raju
 
Cuento Peppa pig en la playa con pictogramas Arasaac
Cuento Peppa pig en la playa con pictogramas ArasaacCuento Peppa pig en la playa con pictogramas Arasaac
Cuento Peppa pig en la playa con pictogramas Arasaacquiero-compartir
 

Destaque (16)

Dr. Peter Davies - An Update From The Food Safety Symposium
Dr. Peter Davies - An Update From The Food Safety SymposiumDr. Peter Davies - An Update From The Food Safety Symposium
Dr. Peter Davies - An Update From The Food Safety Symposium
 
Certificate of Mindset Selling
Certificate of Mindset SellingCertificate of Mindset Selling
Certificate of Mindset Selling
 
Prevalence of methicillin-resistant Staphylococcus aureus (MRSA) in organic a...
Prevalence of methicillin-resistant Staphylococcus aureus (MRSA) in organic a...Prevalence of methicillin-resistant Staphylococcus aureus (MRSA) in organic a...
Prevalence of methicillin-resistant Staphylococcus aureus (MRSA) in organic a...
 
Dr. Peter Davies - Livestock Associated MRSA: Tiger or Pussycat?
Dr. Peter Davies - Livestock Associated MRSA: Tiger or Pussycat?Dr. Peter Davies - Livestock Associated MRSA: Tiger or Pussycat?
Dr. Peter Davies - Livestock Associated MRSA: Tiger or Pussycat?
 
Dr. Peter Davies - Livestock associated MRSA: What are the risks to human hea...
Dr. Peter Davies - Livestock associated MRSA: What are the risks to human hea...Dr. Peter Davies - Livestock associated MRSA: What are the risks to human hea...
Dr. Peter Davies - Livestock associated MRSA: What are the risks to human hea...
 
MRSA
MRSAMRSA
MRSA
 
The Superbug MRSA !!
The Superbug MRSA !!The Superbug MRSA !!
The Superbug MRSA !!
 
Mrsa ppt
Mrsa pptMrsa ppt
Mrsa ppt
 
Lecture 1 Staphylococcus aureus
Lecture 1 Staphylococcus aureusLecture 1 Staphylococcus aureus
Lecture 1 Staphylococcus aureus
 
Estafilococos
EstafilococosEstafilococos
Estafilococos
 
Peppa pig va de compras
Peppa pig va de comprasPeppa pig va de compras
Peppa pig va de compras
 
Staphylococcus aureus
Staphylococcus  aureusStaphylococcus  aureus
Staphylococcus aureus
 
Cuento Peppa pig en la playa con pictogramas Arasaac
Cuento Peppa pig en la playa con pictogramas ArasaacCuento Peppa pig en la playa con pictogramas Arasaac
Cuento Peppa pig en la playa con pictogramas Arasaac
 
5. Staphylococcus aureus
5.  Staphylococcus aureus5.  Staphylococcus aureus
5. Staphylococcus aureus
 
Staphylococcus
Staphylococcus Staphylococcus
Staphylococcus
 
Screening for MRSA
Screening for MRSAScreening for MRSA
Screening for MRSA
 

Semelhante a Tradutor de Pig Latin

Estruturação de Linguagens de Programação (Pascal e C++)
Estruturação de Linguagens de Programação (Pascal e C++)Estruturação de Linguagens de Programação (Pascal e C++)
Estruturação de Linguagens de Programação (Pascal e C++)Mauricio Volkweis Astiazara
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascalJocelma Rios
 
Henriquecristovao manual c-cpp
Henriquecristovao manual c-cppHenriquecristovao manual c-cpp
Henriquecristovao manual c-cppRUI VIEIRA
 
Minicurso Python
Minicurso PythonMinicurso Python
Minicurso Pythonguestac3de
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem PythonLuciano Ramalho
 
LIA - Linguagem Interpretada de Algoritmos
LIA - Linguagem Interpretada de AlgoritmosLIA - Linguagem Interpretada de Algoritmos
LIA - Linguagem Interpretada de AlgoritmosRafael Martins
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem Capolllorj
 
Aula 7 conjunto de instrucoes
Aula 7   conjunto de instrucoesAula 7   conjunto de instrucoes
Aula 7 conjunto de instrucoesCratuscb
 
47612195 apostila-de-scilab
47612195 apostila-de-scilab47612195 apostila-de-scilab
47612195 apostila-de-scilabMarco Antônio
 
Introdução+à+linguagem+c
Introdução+à+linguagem+cIntrodução+à+linguagem+c
Introdução+à+linguagem+cThiago Freitas
 
Apresentação curso pic básico fbs eletrônica
Apresentação   curso pic básico fbs eletrônicaApresentação   curso pic básico fbs eletrônica
Apresentação curso pic básico fbs eletrônicaFabio Souza
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação CJose Augusto Cintra
 
Linguagem c-para-microcontroladores
Linguagem c-para-microcontroladoresLinguagem c-para-microcontroladores
Linguagem c-para-microcontroladores34macchia34
 
53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-i53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-iEdvan Mateó
 
Estrutura de linguagem de programação - Aula 2.pptx
Estrutura de linguagem de programação - Aula 2.pptxEstrutura de linguagem de programação - Aula 2.pptx
Estrutura de linguagem de programação - Aula 2.pptxMarceloRosenbrock1
 

Semelhante a Tradutor de Pig Latin (20)

Ud2
Ud2Ud2
Ud2
 
Estruturação de Linguagens de Programação (Pascal e C++)
Estruturação de Linguagens de Programação (Pascal e C++)Estruturação de Linguagens de Programação (Pascal e C++)
Estruturação de Linguagens de Programação (Pascal e C++)
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascal
 
Henriquecristovao manual c-cpp
Henriquecristovao manual c-cppHenriquecristovao manual c-cpp
Henriquecristovao manual c-cpp
 
Minicurso Python
Minicurso PythonMinicurso Python
Minicurso Python
 
Linguagem_C.pdf
Linguagem_C.pdfLinguagem_C.pdf
Linguagem_C.pdf
 
Introdução a linguagem Python
Introdução a linguagem PythonIntrodução a linguagem Python
Introdução a linguagem Python
 
LIA - Linguagem Interpretada de Algoritmos
LIA - Linguagem Interpretada de AlgoritmosLIA - Linguagem Interpretada de Algoritmos
LIA - Linguagem Interpretada de Algoritmos
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
Aula 7 conjunto de instrucoes
Aula 7   conjunto de instrucoesAula 7   conjunto de instrucoes
Aula 7 conjunto de instrucoes
 
47612195 apostila-de-scilab
47612195 apostila-de-scilab47612195 apostila-de-scilab
47612195 apostila-de-scilab
 
Introdução+à+linguagem+c
Introdução+à+linguagem+cIntrodução+à+linguagem+c
Introdução+à+linguagem+c
 
Apresentação curso pic básico fbs eletrônica
Apresentação   curso pic básico fbs eletrônicaApresentação   curso pic básico fbs eletrônica
Apresentação curso pic básico fbs eletrônica
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação C
 
Linguagem c-para-microcontroladores
Linguagem c-para-microcontroladoresLinguagem c-para-microcontroladores
Linguagem c-para-microcontroladores
 
C pic
C picC pic
C pic
 
1.introducao java
1.introducao java1.introducao java
1.introducao java
 
53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-i53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-i
 
Trabalho
TrabalhoTrabalho
Trabalho
 
Estrutura de linguagem de programação - Aula 2.pptx
Estrutura de linguagem de programação - Aula 2.pptxEstrutura de linguagem de programação - Aula 2.pptx
Estrutura de linguagem de programação - Aula 2.pptx
 

Mais de Elen Arantza

Portfólio - Pesquisa e Desenvolvimento em Ciência da Computação
Portfólio - Pesquisa e Desenvolvimento em Ciência da ComputaçãoPortfólio - Pesquisa e Desenvolvimento em Ciência da Computação
Portfólio - Pesquisa e Desenvolvimento em Ciência da ComputaçãoElen Arantza
 
Defesa do TC Portfólio de Elen Arantza em 12/12/2013
Defesa do TC Portfólio de Elen Arantza em 12/12/2013Defesa do TC Portfólio de Elen Arantza em 12/12/2013
Defesa do TC Portfólio de Elen Arantza em 12/12/2013Elen Arantza
 
Projeto Quero Aprender: Momiji
Projeto Quero Aprender: MomijiProjeto Quero Aprender: Momiji
Projeto Quero Aprender: MomijiElen Arantza
 
Tutorial 2 - Manipulando imagens 2D no jogo [26.09.2011]
Tutorial 2 - Manipulando imagens 2D no jogo [26.09.2011]Tutorial 2 - Manipulando imagens 2D no jogo [26.09.2011]
Tutorial 2 - Manipulando imagens 2D no jogo [26.09.2011]Elen Arantza
 
Modelo 3D de Imagens Radiográficas para Auxilio em Diagnósticos
Modelo 3D de Imagens Radiográficas para Auxilio em DiagnósticosModelo 3D de Imagens Radiográficas para Auxilio em Diagnósticos
Modelo 3D de Imagens Radiográficas para Auxilio em DiagnósticosElen Arantza
 
O Jogo Alice no país da Computação Gráfica no auxílio da aprendizagem da Comp...
O Jogo Alice no país da Computação Gráfica no auxílio da aprendizagem da Comp...O Jogo Alice no país da Computação Gráfica no auxílio da aprendizagem da Comp...
O Jogo Alice no país da Computação Gráfica no auxílio da aprendizagem da Comp...Elen Arantza
 
Computação ubíqua
Computação ubíquaComputação ubíqua
Computação ubíquaElen Arantza
 
RUP - Gerenciamento de configuração e mudança (corrigido)
RUP - Gerenciamento de configuração e mudança (corrigido)RUP - Gerenciamento de configuração e mudança (corrigido)
RUP - Gerenciamento de configuração e mudança (corrigido)Elen Arantza
 
Apresentação interbase (atualização 2)
Apresentação interbase (atualização 2)Apresentação interbase (atualização 2)
Apresentação interbase (atualização 2)Elen Arantza
 

Mais de Elen Arantza (9)

Portfólio - Pesquisa e Desenvolvimento em Ciência da Computação
Portfólio - Pesquisa e Desenvolvimento em Ciência da ComputaçãoPortfólio - Pesquisa e Desenvolvimento em Ciência da Computação
Portfólio - Pesquisa e Desenvolvimento em Ciência da Computação
 
Defesa do TC Portfólio de Elen Arantza em 12/12/2013
Defesa do TC Portfólio de Elen Arantza em 12/12/2013Defesa do TC Portfólio de Elen Arantza em 12/12/2013
Defesa do TC Portfólio de Elen Arantza em 12/12/2013
 
Projeto Quero Aprender: Momiji
Projeto Quero Aprender: MomijiProjeto Quero Aprender: Momiji
Projeto Quero Aprender: Momiji
 
Tutorial 2 - Manipulando imagens 2D no jogo [26.09.2011]
Tutorial 2 - Manipulando imagens 2D no jogo [26.09.2011]Tutorial 2 - Manipulando imagens 2D no jogo [26.09.2011]
Tutorial 2 - Manipulando imagens 2D no jogo [26.09.2011]
 
Modelo 3D de Imagens Radiográficas para Auxilio em Diagnósticos
Modelo 3D de Imagens Radiográficas para Auxilio em DiagnósticosModelo 3D de Imagens Radiográficas para Auxilio em Diagnósticos
Modelo 3D de Imagens Radiográficas para Auxilio em Diagnósticos
 
O Jogo Alice no país da Computação Gráfica no auxílio da aprendizagem da Comp...
O Jogo Alice no país da Computação Gráfica no auxílio da aprendizagem da Comp...O Jogo Alice no país da Computação Gráfica no auxílio da aprendizagem da Comp...
O Jogo Alice no país da Computação Gráfica no auxílio da aprendizagem da Comp...
 
Computação ubíqua
Computação ubíquaComputação ubíqua
Computação ubíqua
 
RUP - Gerenciamento de configuração e mudança (corrigido)
RUP - Gerenciamento de configuração e mudança (corrigido)RUP - Gerenciamento de configuração e mudança (corrigido)
RUP - Gerenciamento de configuração e mudança (corrigido)
 
Apresentação interbase (atualização 2)
Apresentação interbase (atualização 2)Apresentação interbase (atualização 2)
Apresentação interbase (atualização 2)
 

Tradutor de Pig Latin

  • 1. Etapas do processo de desenvolvimento do tradutor de Pig Latin Elen Arantza Regina Mares
  • 2. -1- Definição da linguagem de programação
  • 3. 1. Definição da linguagem de programação Pig é um projeto de pesquisa do grupo Yahoo!, criado com o objetivo de desenvolver uma infraestrutura para suportar a análise de grandes conjuntos de dados.
  • 4. 1. Definição da linguagem de programação A mais alta camada de abstração no Pig é a linguagem de consulta chamada Pig Latin, pela qual os usuários expressam as tarefas de análise de dados, como consultas no estilo SQL ou álgebra relacional. • Projeto open-source:
  • 6. 2. Especificação informal da linguagem de programação • Palavras-chave: and any all as bag by chararray CONCAT COUNT cross load define distinct double explain filter foreach generate group illustrate SUM
  • 7. 2. Especificação informal da linguagem de programação • Tipos de dados: Simples e complexos Tipos de dados simples Descrição Exemplo Scalars int Inteiro de 32-bit 10 long Inteiro de 64-bit Data: 10L or 10l Display: 10L float Ponto flutuante de 32-bit Data: 10.5F or 10.5f or 10.5e2f or 10.5E2F Display: 10.5F or 1050.0F double Ponto flutuante de 64-bit Data: 10.5 or 10.5e2 or 10.5E2 Display: 10.5 or 1050.0 Arrays chararray Matriz de caracteres hello world (string) em formato Unicode UTF-8 bytearray Array de bytes (blob) Tipos de dados complexos tuple Um conjunto ordenado de (19,2) campos bag Uma coleção de tuplas {(19,2), (18,1)} (registros) map Um conjunto de pares de [open#apache] valores chave.
  • 8. 2. Especificação informal da linguagem de programação • Operadores aritméticos Operação Símbol Observação o Adição + Subtração - Multiplicação * Divisão / Módulo % Retorna o resto divido por b (a%b). Bicondicional ? : (condição ? valor_se_verdadeiro : valor_se_falso) Bicondicional deve ser colocado entre parênteses.
  • 9. 2. Especificação informal da linguagem de programação • Operadores booleanos Operadores Símbolo AND e OR ou NOT negação
  • 10. 2. Especificação informal da linguagem de programação • Operadores de comparação Comparação Símbolo Igual == Não é igual != Menor que < Maior que > Menor ou igual a <= Maior ou igual a >= Combinação de matches padrões
  • 11. 2. Especificação informal da linguagem de programação • Operadores nulos Operador Símbolo É nulo is null Não é nulo is not null
  • 12. 2. Especificação informal da linguagem de programação • Operadores relacionais Operador Descrição COGROUP GROUP e COGROUP são idênticos. Ambos trabalham com uma ou mais relações. CROSS Calcula o produto cruzado de duas ou mais relações. DEFINE DISTINCT Remove tuplas duplicadas em uma relação. FILTER Seleciona tuplas de uma relação baseada em alguma condição. FOREACH Gera transformações de dados baseadas em colunas de dados. GROUP Agrupa os dados em uma ou mais relações. IMPORT JOIN (inner) Executa uma junção interna de duas ou mais relações baseadas em valores de campo comuns. JOIN (outer) Executa uma junção externa de duas ou mais relações com base em valores de campo comuns. LIMIT Limita o número de tuplas na saída. LOAD Carrega dados do sistema de arquivos. MAPREDUCE Executa tarefas nativas Map-reduce dentro de um script de Pig ORDER BY Classifica uma relação baseada de um ou mais campos. SAMPLE Divide uma relação em duas ou mais relações. SPLIT Divide uma relação em duas ou mais relações. STORE Armazena ou salva os resultados para o sistema de arquivos. STREAM Envia dados para um script externo ou programa. UNION Calcula a união de duas ou mais relações.
  • 13. 2. Especificação informal da linguagem de programação • Programa exemplo: log = LOAD 'excite-small.log' AS (user, time, query); grpd = GROUP log BY user; cntd = FOREACH grpd GENERATE group, COUNT(log); STORE cntd INTO 'output‘; Saída: 002BB5A52580A8ED 18 005BD9CD3AC6BB38 18 00A08A54CD03EB95 3 011ACA65C2BF70B2 5 01500FAFE317B7C0 15 0158F8ACC570947D 3 018FBF6BFB213E68 1
  • 15. 3. Especificação formal da linguagem de programação Dicionário: Variáveis: -Identificador de posição: -Identificador: L (L + D)* (_ (L + D)*)* -Constantes: D (D)* -Seqüência de caracteres: ‘ (L + D + B + C)* ’ -Comentários: -- (L + D + B + C)*
  • 16. 3. Especificação formal da linguagem de programação AFD:
  • 17. -4- Especificação do fluxograma de execução (Análise léxica)
  • 18. Inicio Fim Ler todos caracteres do Sim comando/linha Nã Fim de o fita? Ler símbolo Dicionário Sim Gerar token ? Nã o AFD? Sim Tabela de símbolos Nã o Tratamento de erros log = LOAD 'excite-small.log' AS (user:chararray, time:long, query:chararray);
  • 19. -5- Especificação do processo de análise léxica (Teste de mesa)
  • 20. Exemplo de manipulação de dados >> log = LOAD 'excite-small.log' AS (user:chararray, time:long, query:chararray); >> grpd = GROUP log BY user; >> cntd = FOREACH grpd GENERATE group, COUNT(log); >> STORE cntd INTO 'output‘; 002BB5A52580A8ED 18 005BD9CD3AC6BB38 18 00A08A54CD03EB95 3 011ACA65C2BF70B2 5 01500FAFE317B7C0 15 0158F8ACC570947D 3 018FBF6BFB213E68 1 >> SELECT user, COUNT(*) FROM excite-small.log GROUP BY user;
  • 21. - Referências • Yahoo! Research: http://research.yahoo.com/project/90 - • Apache Pig: http://pig.apache.org/