Mais Word de cara nova!

Estamos melhorando nosso layout para melhor atender nossos visitantes.

Veja no conforto de sua casa o filme Os Mercenários 02

Faça já o download deste grande lançamento em alta qualidade .

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

Vote no Mais Word para TopBlog 2012

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

terça-feira, 22 de setembro de 2015

Saiba quais são os primeiros passos para criar seu podcast

Quem após ouvir alguns podcasts, não sente vontade de criar um próprio?



Um bom jeito de começar é se perguntar qual seria o conteúdo que você gostaria de passar? Depois disso crie um delineamento ou algum tipo de organizador para acompanhar quais serão suas discussões.

Existem incontáveis exemplos entre os podcasts existentes. O Podcast.com lista podcasts por categorias, que incluem comédia, notícias, saúde, esportes, música e política. Alguns exemplos incluem o Mugglecast, que trata sobre os romances e filmes da série “Harry Potter”; o The Word Nerds discute etimologias de palavras, além de outras questões linguísticas; Fantasy Football Minute, um podcast para ajudar todos os técnicos e administradores de times de futebol fantasia; e NPR Science Friday, a versão em podcast de um programa que passa na rádio, apenas para fazer sua mente funcionar.

Escute alguns dos podcasts mais populares para captar as noções de estilo e conteúdo deles. Um bom lugar para começar é o Nerdcast do site Jovem Nerd. O próximo passo é criar um roteiro para evitar pausas estranhas e etc.




Embora podcasts tenham sido criados na década de 90, estão atualmente passando por um renascimento, principalmente devido ao fato de que as pessoas hoje em dia estão mais focadas do que nunca em seus celulares. O caso em questão é o podcast Serial da WBEZ Chicago, que foi lançado no ano passado e tornou-se o podcast mais popular do mundo, com 5 milhões de downloads no iTunes.
Podcasts são transmissões de áudio para download normalmente gratuitos e podem ser ouvidos diretamente nos sites de seus criadores, mas muitos preferem baixá-los em seus dispositivos móveis e ouvi-los na rua. Cobrem uma gama de tópicos, incluindo jornalismo e desenvolvimento de mídia. Muitos deles já foram destacados pela IJNet.
A necessidade de todos os meios de comunicação embarcarem na onda do podcast é mais importante do que nunca. Para isso, temos ferramentas online que ajudam a criarem seus próprios programas de áudio usando seu desktop ou telefones celulares em breve vocês terão aqui no Plus Project um vídeo tutorial que ensinara como criar seu próprio podcast, fique de olho e até mais.

Compiladores - Conhecendo a Teoria e Definições


Neste post iremos introduzir o conhecimento teórico sobre compiladores e sua estrutura realizando algumas definições. Conhecer como o computador consegue entender o que programamos é muito importante. Em breve lançaremos vídeo aulas práticas de programação de compiladores.


O que é um Compilador?

Segundo LOUDEN (pg 1, 2004) “São softwares que realizam a tradução de uma linguagem para outra”. Compiladores recebem um programa com uma determinada linguagem e produzem como resultado outro programa em uma linguagem diferente, por exemplo: a linguagem C para binário. 

O processo de tradução de uma linguagem para outra realizado por um compilador é muito complexo, sua implementação lógica é feita seguindo muitas fases que são sub-processos da compilação. 

           Geralmente as análises são consideradas como front-ends. Nelas o programa é recebido e analisado resultando na tradução para uma estrutura gramatical que mostra a sintaxe final do programa nessas fases os objetivos são entender o código fonte, verificar erros, falhas e inconsistências, e representá-lo em uma estrutura intermediária. As análises podem ser subdivididas em análise léxica, análise sintática e análise semântica.
Já a síntese realiza um trabalho de back end realizando a tradução dessa representação e entregando o resultado para a máquina ela é composta por três etapas de Geração de código intermediário, otimização de código e geração de código final (ou código de máquina), sendo somente esta última etapa obrigatória.

Análise Léxica

A varredura ou também chamada de análise léxica traduz uma sequência de caracteres em uma sequência de tokens, identificando as palavras ou lexemas da linguagem. Exemplos típicos de tokens são palavras-chave como whileforif else.
De acordo com LOUDEN (pg 31, 2004), a análise léxica é “a fase de um compilador que lê o programa-fonte como um arquivo de caracteres e o separa em marcas".
Para gerar a sequência de tokens/marcas, a análise léxica precisa utilizar métodos de reconhecimento de padrões como expressões regulares e autômatos finitos.
Segundo SEBESTA (pg 155, 2003) " O analisador léxico coleta caracteres em grupamentos lógicos e atribui códigos internos aos grupamentos de acordo com sua estrutura" Tecnicamente a análise léxica faz a analise sintática no nível mais baixo da estrutura.

Análise Sintática

Análise sintática é responsável pela análise da sintaxe e é conhecida como parsingSEBESTA (pg 159, 2003) diz que " A análise sintática é feita usando árvores de análise e as derivações incluem toda a informação sintática necessária para o processamento da linguagem".
Nesta fase de um compilador o principal objetivo é verificar se dado programa ou linguagem está sintaticamente correto. E ao encontrar um erro é necessário que envie uma mensagem de diagnóstico e retomar a análise, isso é exigido para que o compilador encontre o maior número de erros possíveis. Outra característica desta fase é a produção de uma árvore de análise completa que será usada como base para a tradução do linguagem alvo.
Existem duas formas de árvores de análise, estão classificadas com base na direção que são criadas: cima-baixo onde a construção começa da raiz para as folhas, esse tem como tarefa encontrar a próxima sentença. Uma árvore baixo-cima produz uma árvore ao contrario começando das folhas para as raízes. Ele produz o inverso de uma derivação mais a direita.
Os algoritmos de análise são ineficientes e complexos, gastam tempo para a análise e estão sempre passando por renovações. Todos os algoritmos de análise sintática usados em compiladores são complexos e seu uso se torna mais ineficiente conforme o comprimento da cadeia a ser analisada.

Análise Semântica

A análise semântica tem por objetivo verificar se as construções identificadas pela análise sintática estão em acordo com as “regras semânticas” da linguagem sendo compilada. É através da semântica que são extraídas as informações que possibilitam a posterior geração de código.
Um exemplo de funcionamento da análise semântica é a definição de como as variáveis devem ser declaradas, é necessário uma parte que diga que uma variável é int e outra é float. A semântica trabalha nesse nível atuando entre partes distintas do programa verificando o fluxo de controle e a unicidade da declaração de variáveis e em algumas linguagens fazem-se necessários outros tipos de verificação devido ao seu nível de complexidade e detalhamento.

Gerador de código intermediário

É o primeiro sub-processo da síntese ele usa os dados analisados anteriormente para criar uma cadeia de instruções simples.
A maioria dos compiladores atuais realizam a geração de uma representação intermediária entre o código fonte e o código de máquina, por exemplo a possível geração de uma versão intermediária do código em assembly. Essa representação pode ser vista como uma máquina abstrata e classificadas como independente de máquina, quando podem ser aplicadas antes da geração do código na linguagem assembly, ou dependentes de máquina se aplicada antes.

Otimização de código

Realiza a otimização do código intermediário tal que o programa seja mais eficiente e eficaz, o resultado é outro programa em código intermediário que faz a mesma tarefa do original, mas com melhor qualidade.
A otimização dos compiladores, além de manter as características e significados do programa original devem captar a maior parte das possibilidades de melhoria do código dos esforços gastos para tal fim. É comum, os compiladores permitirem a especificação do esforço desejado no processo de otimização.
Para otimizar o código e entregar um produto final com melhor qualidade são usadas diversas técnicas de otimização que tem como princípio básico algumas características: Eliminação de código redundante que tem como objetivo detectar traduções de duas e instruções cuja execução repetida não geram nenhum resultado; Eliminação de código não-alcançável, códigos que não fazem sentido na execução e não tem definido com clareza suas atribuições; O uso de propriedades algébricas tem como objetivo substituir operações de alto custo de execução por operações mais simples; A movimentação de código é usado com frequência para otimizar operações usando laços de repetição que usam variáveis que não tem interação direta.

Referências 

Sebesta, Robert W. (2003), “Linguagens de Programação”. 5ª Edição. Artmed Editora.

Louden, Kenneth C. (2005), “Compiladores – Princípios e práticas”. Editora Thomson Pioneira.

domingo, 6 de setembro de 2015



sábado, 5 de setembro de 2015