Escolar Documentos
Profissional Documentos
Cultura Documentos
Aspectos Preliminares
Conceitos de Linguagens de Programao Robert W. Sebesta
Tpicos do Captulo 1
Razes para estudar conceitos de linguagens de programao
Domnios de programao
Critrios de avaliao de linguagens
Influncias no projeto de linguagens
Categorias de linguagens
Trade-offs no projeto de linguagens
Mtodos de implementao
Ambientes de programao
Conceitos de Linguagens de Programao Robert W. Sebesta
Domnios de programao
Aplicaes cientficas
Grande nmero de computaes de aritmtica de ponto flutuante; uso de matrizes
Fortran
Aplicaes empresariais
Produz relatrio, usa nmeros decimais e caracteres
COBOL
Inteligncia artificial
Smbolos em vez de nmeros manipulados; uso de listas ligadas
LISP
Programao de sistemas
Precisa de eficincia por causa do uso contnuo
C
Software para a Web
Ecltica coleo de linguagens: de marcao (como XHTML), de scripting (como PHP),
de propsito geral (como Java)
Conceitos de Linguagens de Programao Robert W. Sebesta
Categorias de linguagens
Imperativa
Caractersticas centrais so variveis, sentenas de atribuio e de iterao
Inclui linguagens que suportam programao orientada a objeto
Inclui linguagens de scripting
Inclui as linguagens visuais
Exemplos: C, Java, Perl, JavaScript, Visual BASIC .NET, C++
Funcional
Principais meios de fazer os clculos pela aplicao de funes para determinados
parmetros
Exemplos: LISP, Scheme
Lgica
Baseada em regras (regras so especificadas sem uma ordem em particular)
Example: Prolog
De marcao/programao hbrida
Linguagens de marcao estendida para suportar alguma programao
Exemplos: JSTL, XSLT
Conceitos de Linguagens de Programao Robert W. Sebesta
Mtodos de implementao
Compilao
Programas so traduzidos para linguagem de mquina
Interpretao pura
Programas so interpretados por outro programa chamado interpretador
Sistemas de implementao hbridos
Um meio termo entre os compiladores e os interpretadores puros
Conceitos de Linguagens de Programao Robert W. Sebesta
Compilao
Traduz programas (linguagem de fonte) em cdigo de mquina
(linguagem de mquina)
Traduo lenta, execuo rpida
Processo de compilao tem vrias fases:
anlise lxica: agrupa os caracteres do programa fonte em unidades
lxicas
anlise sinttica: transforma unidades lxicas em rvores de anlise
sinttica (parse trees), que representam a estrutura sinttica do programa
anlise semntica: gera cdigo intermedirio
gerao de cdigo: cdigo de mquina gerado
Conceitos de Linguagens de Programao Robert W. Sebesta
O processo de compilao
Conceitos de Linguagens de Programao Robert W. Sebesta
Interpretao pura
Sem traduo
Fcil implementao de programas (mensagens de erro em tempo de
execuo podem referenciar unidades de cdigo fonte)
Execuo mais lenta (tempo de execuo de 10 a 100 vezes mais lento
do que nos sistemas compilados)
Geralmente requer mais espao
Raramente usada em linguagens de alto nvel
Volta significativa com algumas linguagens de scripting para a Web
(como JavaScript e PHP)
Conceitos de Linguagens de Programao Robert W. Sebesta
Pr-processadores
As instrues de pr-processador so comumente usadas para
especificar que o cdigo de outro arquivo deve ser includo
Um pr-processador um programa que processa um programa
imediatamente antes de o programa ser compilado para expandir
macros embutidos
Um exemplo conhecido: pr-processador de C
expande #include, #define e macros similares
Conceitos de Linguagens de Programao Robert W. Sebesta
Ambientes de programao
Coleo de ferramentas usadas no desenvolvimento de software
UNIX
Um ambiente de programao mais antigo
Agora bastante usado por meio de uma interface grfica com o usurio
(GUI) que roda sobre o UNIX
Microsoft Visual Studio .NET
Grande e complexo
Usado para desenvolver software em qualquer uma das cinco
linguagens .NET
NetBeans
Usado primariamente para o desenvolvimento de aplicaes Web usando
Java, mas tambm oferece suporte a JavaScript, Ruby e PHP
Conceitos de Linguagens de Programao Robert W. Sebesta
Resumo
O estudo de linguagens de programao valioso por diversas razes:
Aumenta nossa capacidade de usar diferentes construes ao escrever
programas
Permite que escolhamos linguagens para os projetos de forma mais
inteligente
Torna mais fcil o aprendizado de novas linguagens
Critrios mais importantes para a avaliao de linguagens:
Legibilidade, facilidade de escrita, confiabilidade e custo geral
As principais influncias no projeto de linguagens so a arquitetura de
mquina e as metodologias de projeto de software
Os principais mtodos de implementar linguagens de programao so
a compilao, a interpretao pura e a implementao hbrida