Академический Документы
Профессиональный Документы
Культура Документы
Aula 01
Roteiro
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
Razes para estudar conceitos
de linguagens de programao
Capacidade aumentada para expressar ideias
Embasamento melhorado para escolher linguagens apropriadas
Habilidade aumentada para aprender novas linguagens
Melhor entendimento da importncia da implementao
Melhor uso de linguagens j conhecidas
Avano geral da computao
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)
Critrios de avaliao de linguagens
Legibilidade: facilidade com a qual os programas podem ser lidos e
entendidos
Facilidade de escrita: facilidade com a qual uma linguagem pode ser
usada para criar programas para um dado domnio
Confiabilidade: conformidade com as especificaes
Custo: o custo total definitivo de uma linguagem
Critrio de avalio: legibilidade
Simplicidade geral
Um conjunto controlvel de recursos e construes
Mnima multiplicidade de recursos
Mnima sobrecarga de operadores
Ortogonalidade
Um conjunto relativamente pequeno de construes primitivas pode ser combinado a
um nmero relativamente pequeno de formas
Cada possvel combinao legal
Tipos de dados
Mecanismos adequados para definir tipos de dados
Projeto da sintaxe
Formato dos identificadores
Palavras especiais e mtodos de formar sentenas compostas
Forma e significado: construes autodescritivas, palavras-chave significativas
Critrio de avaliao: facilidade de escrita
Simplicidade e ortogonalidade
Poucas construes, nmero pequeno de primitivas e um pequeno
conjunto de regras para combin-las
Suporte abstrao
A habilidade de definir e usar estruturas ou operaes complicadas de
forma a permitir que muitos dos detalhes sejam ignorados
Expressividade
Um conjunto de formas relativamente convenientes de especificar as
operaes
Fora e nmero de operadores e funes pr-definidas
Critrio de avaliao: confiabilidade
Verificao de tipos
Testes para detectar erros de tipos
Tratamento de excees
Interceptar erros em tempo de execuo e tomar medidas corretivas
Utilizao de apelidos
Nomes distintos que podem ser usados para acessar a mesma clula de
memria
Legibilidade e facilidade de escrita
Uma linguagem que no oferece maneiras naturais para expressar os
algoritmos requeridos ir necessariamente usar abordagens no naturais,
reduzindo a confiabilidade
Critrio de avaliao: custo
Treinar programadores para usar a linguagem
Escrever programas (proximidade com o propsito da aplicao em
particular)
Compilar programas
Executar programas
Sistema de implementao da linguagem: disponibilidade de
compiladores gratuitos
Confiabilidade baixa leva a custos altos
Manter programas
Critrio de avaliao: outros
Portabilidade
A facilidade com a qual os programas podem ser movidos de uma
implementao para outra
Generalidade
A aplicabilidade a uma ampla faixa de aplicaes
Bem definida
Em relao completude e preciso do documento oficial que define a
linguagem
Influncias no projeto de linguagens
Arquitetura de computadores
Linguagens so projetadas considerando a principal arquitetura de
computadores, chamada de arquitetura de von Neumann
Metodologias de projeto de programas
Novas metodologias de desenvolvimento de software (por exemplo,
desenvolvimento de software orientado a objeto) levaram a novos
paradigmas de programao e, por extenso, a novas linguagens de
programao
Influncias na arquitetura de computadores
Principal arquitetura de computadores: von Neumann
Linguagens imperativas, mais populares, por causa dos computadores
von Neumann
Dados e programas armazenados na memria
A memria separada da CPU
Instrues e dados so canalizadas a partir da memria para CPU
Base para linguagens imperativas
Variveis modelam as clulas de memria
Sentenas de atribuio so baseadas na operao de envio de dados
e instrues
Iterao eficiente
Arquitetura Von Neumann
Arquitetura Von Neumann
Ciclo de obteno e execuo (em um computador com arquitetura
von Neumann)