Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Aula 2 Aspectos Preliminares
Universidade do Vale do Rio dos Sinos Aula 2 Aspectos Preliminares < Página da Disciplina > <Endereço do Professor >
2
SUMÁRIO
3
SUMÁRIO 1 – Porque estudar linguagens?
4
SUMÁRIO 1 – Porque estudar linguagens?
2 – Domínios paras as linguagens
5
SUMÁRIO 1 – Porque estudar linguagens?
2 – Domínios paras as linguagens 3 – Avaliação de linguagens
6
SUMÁRIO 1 – Porque estudar linguagens?
2 – Domínios paras as linguagens 3 – Avaliação de linguagens 4 – Influências sobre o projeto
7
SUMÁRIO 1 – Porque estudar linguagens?
2 – Domínios paras as linguagens 3 – Avaliação de linguagens 4 – Influências sobre o projeto 5 – Categarias de linguagens
8
SUMÁRIO 1 – Porque estudar linguagens?
2 – Domínios paras as linguagens 3 – Avaliação de linguagens 4 – Influências sobre o projeto 5 – Categarias de linguagens 6 – Negociações no projeto de linguagens
9
SUMÁRIO 1 – Porque estudar linguagens?
2 – Domínios paras as linguagens 3 – Avaliação de linguagens 4 – Influências sobre o projeto 5 – Categarias de linguagens 6 – Negociações no projeto de linguagens 7 – Métodos de implementação
10
SUMÁRIO 1 – Porque estudar linguagens?
2 – Domínios paras as linguagens 3 – Avaliação de linguagens 4 – Influências sobre o projeto 5 – Categarias de linguagens 6 – Negociações no projeto de linguagens 7 – Métodos de implementação 8 – Ambientes de programação
11
1 - Porque estudar linguagens?
12
1 - Porque estudar linguagens?
Aumento da capacidade de expressar idéias
13
1 - Porque estudar linguagens?
Aumento da capacidade de expressar idéias Maior conhecimento para escolha de linguagens
14
1 - Porque estudar linguagens?
Aumento da capacidade de expressar idéias Maior conhecimento para escolha de linguagens Capacidade para aprender novas linguagens
15
1 - Porque estudar linguagens?
Aumento da capacidade de expressar idéias Maior conhecimento para escolha de linguagens Capacidade para aprender novas linguagens Entender a importância da implementação - Gerenciamento de memória: Fortran x C (Cray) - Recursividade x Iteração
16
1 - Porque estudar linguagens?
Aumento da capacidade de expressar idéias Maior conhecimento para escolha de linguagens Capacidade para aprender novas linguagens Entender a importância da implementação - Gerenciamento de memória: Fortran x C (Cray) - Recursividade x Iteração Capacidade de projetar novas linguagens - Quem projeta novas linguagens (nós)? - Interface é uma linguagem?
17
1 - Porque estudar linguagens?
Aumento da capacidade de expressar idéias Maior conhecimento para escolha de linguagens Capacidade para aprender novas linguagens Entender a importância da implementação - Gerenciamento de memória: Fortran x C (Cray) - Recursividade x Iteração Capacidade de projetar novas linguagens - Quem projeta novas linguagens (nós)? - Interface é uma linguagem? Avanço da computação - O que guia a escolha de uma linguagem? - Fortran x Algol - C++ x Java - Java será Cobol do século XXI?
18
Aplicações científicas Aplicações comerciais Inteligência artificial
2 - Domínios para as linguagens Aplicações científicas Aplicações comerciais Inteligência artificial Programação de sistemas Linguagens de scripting Propósitos especiais
19
2 - Domínios para as linguagens
Aplicações científicas - Estruturas de dados: vetores e matrizes - Principal concorrente: Assembly (eficiência) - FORTRAN (década de 50 e 60) - Existe alguma outra linguagem científica? - Físicos usam FORTRAN - CESUP: Principal linguagem = FORTRAN
20
2 - Domínios para as linguagens
Aplicações científicas - Estruturas de dados: vetores e matrizes - Principal concorrente: Assembly (eficiência) - FORTRAN (década de 50 e 60) - Existe alguma outra linguagem científica? - Físicos usam FORTRAN - CESUP: Principal linguagem = FORTRAN Aplicações comerciais - COBOL (década de 60) - Planilhas eletrônicas - Sistemas da Banco de Dados
21
2 - Domínios para as linguagens
Inteligência Artificial - Processamento simbólico - Listas encadeadas x Matrizes - Capacidade de criar e executar código novo (assert/retract no Prolog) - Primeira linguagem: LISP (década de 60) - Linguagem Prolog (década de 70) LPA (Logic Programming Associates Ltda)
22
2 - Domínios para as linguagens
Inteligência Artificial - Processamento simbólico - Listas encadeadas x Matrizes - Capacidade de criar e executar código novo (assert/retract no Prolog) - Primeira linguagem: LISP (década de 60) - Linguagem Prolog (década de 70) LPA (Logic Programming Associates Ltda) Programação de Sistemas (software básico) - Linguagem Assembly - Linguagem C (baixo nível, eficiente, sem restrições de segurança)
23
2 - Domínios para as linguagens
Scripting - Lista de comandos (scripts) - Shells do Unix - BATs do DOS - Linguagens de scripting x Outras linguagens Propósitos especiais
24
Legibilidade Capacidade de escrita Confiabilidade Custo
3 - Avaliação de Linguagens Legibilidade Capacidade de escrita Confiabilidade Custo
25
3 - Avaliação de Linguagens
Legibilidade - Codificação x Manutenção
26
3 - Avaliação de Linguagens
Legibilidade - Codificação x Manutenção - Simplicidade global Linguagem grande: usamos um subset (APIS em Java) Multiplicidade de recursos (incremento de variáveis em C) Sobrecarga (soma de elementos e OO)
27
3 - Avaliação de Linguagens
Legibilidade - Codificação x Manutenção - Simplicidade global Linguagem grande: usamos um subset (APIS em Java) Multiplicidade de recursos (incremento de variáveis em C) Sobrecarga (soma de elementos e OO) - Ortogonalidade Pascal e C: Passagem de vetores sempre por referência Facilitada nas linguagens declarativas (Prolog, Lisp, etc)
28
3 - Avaliação de Linguagens
Legibilidade - Codificação x Manutenção - Simplicidade global Linguagem grande: usamos um subset (APIS em Java) Multiplicidade de recursos (incremento de variáveis em C) Sobrecarga (soma de elementos e OO) - Ortogonalidade Pascal e C: Passagem de vetores sempre por referência Facilitada nas linguagens declarativas (Prolog, Lisp, etc) - Instruções de controle: Banimento do GOTO e estruturação
29
3 - Avaliação de Linguagens
Legibilidade - Codificação x Manutenção - Simplicidade global Linguagem grande: usamos um subset (APIS em Java) Multiplicidade de recursos (incremento de variáveis em C) Sobrecarga (soma de elementos e OO) - Ortogonalidade Pascal e C: Passagem de vetores sempre por referência Facilitada nas linguagens declarativas (Prolog, Lisp, etc) - Instruções de controle: Banimento do GOTO e estruturação - Tipos de dados: Tipo booleano em C (0 = FALSE)
30
3 - Avaliação de Linguagens
Legibilidade - Codificação x Manutenção - Simplicidade global Linguagem grande: usamos um subset (APIS em Java) Multiplicidade de recursos (incremento de variáveis em C) Sobrecarga (soma de elementos e OO) - Ortogonalidade Pascal e C: Passagem de vetores sempre por referência Facilitada nas linguagens declarativas (Prolog, Lisp, etc) - Instruções de controle: Banimento do GOTO e estruturação - Tipos de dados: Tipo booleano em C (0 = FALSE) - Sintaxe (tamanho de identificadores, etc)
31
3 - Avaliação de Linguagens
Capacidade de escrita - Contexto do domínio de problema-alvo
32
3 - Avaliação de Linguagens
Capacidade de escrita - Contexto do domínio de problema-alvo - Ortogonalidade
33
3 - Avaliação de Linguagens
Capacidade de escrita - Contexto do domínio de problema-alvo - Ortogonalidade - Abstração: Processos (subprogramas) e Dados (EDs) TADs como base para Objetos
34
3 - Avaliação de Linguagens
Capacidade de escrita - Contexto do domínio de problema-alvo - Ortogonalidade - Abstração: Processos (subprogramas) e Dados (EDs) TADs como base para Objetos - Expressividade: A++ mais expressivo que A := A + 1 ?
35
3 - Avaliação de Linguagens
Confiabilidade - Verificação de tipos Pascal x C C++ x Jada
36
3 - Avaliação de Linguagens
Confiabilidade - Verificação de tipos Pascal x C C++ x Jada - Manipulação de exceções Abertura de arquivos em Pascal: Assign/Reset/Rewrite Java: Try/Catch/Finally
37
3 - Avaliação de Linguagens
Confiabilidade - Verificação de tipos Pascal x C C++ x Jada - Manipulação de exceções Abertura de arquivos em Pascal: Assign/Reset/Rewrite Java: Try/Catch/Finally - Aliasing Perigoso C: UNIONS e Ponteiros
38
3 - Avaliação de Linguagens
Custo - Treinamento de programadores
39
3 - Avaliação de Linguagens
Custo - Treinamento de programadores - Escrita de programas na linguagem
40
3 - Avaliação de Linguagens
Custo - Treinamento de programadores - Escrita de programas na linguagem - Ambientes de programação: Turbo Pascal, JCreator (Java), etc
41
3 - Avaliação de Linguagens
Custo - Treinamento de programadores - Escrita de programas na linguagem - Ambientes de programação: Turbo Pascal, JCreator (Java), etc - Custos de compilação e execução (máquinas virtuais: JVM, etc)
42
3 - Avaliação de Linguagens
Custo - Treinamento de programadores - Escrita de programas na linguagem - Ambientes de programação: Turbo Pascal, JCreator (Java), etc - Custos de compilação e execução (máquinas virtuais: JVM, etc) - Otimização de código
43
3 - Avaliação de Linguagens
Custo - Treinamento de programadores - Escrita de programas na linguagem - Ambientes de programação: Turbo Pascal, JCreator (Java), etc - Custos de compilação e execução (máquinas virtuais: JVM, etc) - Otimização de código - Confiabilidade
44
4 - Influências sobre o projeto
Arquitetura do computador Metodologia de programação
45
4 - Influências sobre o projeto
Arquitetura do computador - Arquitetura Von Neumann: Linguagens Imperativas - Máquinas Virtuais como novas arquiteturas - Projeto japonês do computador de V geração Metodologia de programação
46
4 - Influências sobre o projeto
Arquitetura do computador - Arquitetura Von Neumann: Linguagens Imperativas - Máquinas Virtuais como novas arquiteturas - Projeto japonês do computador de V geração Metodologia de programação - Programação não estrutura (GOTOs): BASIC, COBOL, etc - Programação estruturada: COBOL estruturado, Pascal, etc - Programação Orientada a Objetos: C++, Java, etc
47
5 - Categorias de Linguagens (paradigmas)
Paradigma Imperativo Paradigma Orientado a Objetos Paradigma em Lógica Paradigma Funcional Multiparadigma
48
6 - Negociações no projeto de linguagens
Negociação entre os critérios de avaliação
49
6 - Negociações no projeto de linguagens
Negociação entre os critérios de avaliação Critérios conflitantes:
50
6 - Negociações no projeto de linguagens
Negociação entre os critérios de avaliação Critérios conflitantes: Confiabilidade x Custo de execução - Verificação de tipos em tempo de execução
51
6 - Negociações no projeto de linguagens
Negociação entre os critérios de avaliação Critérios conflitantes: Confiabilidade x Custo de execução - Verificação de tipos em tempo de execução Flexibilidade x Segurança - C x Pascal - C++ x Java
52
7 - Métodos de Implementação
Compiladores Interpretação Sistemas híbridos
53
7 - Métodos de Implementação
Compiladores - Análise léxica, Análise sintática e Geração de código - UNISINOS: Disciplinas específicas Interpretação Sistemas híbridos
54
7 - Métodos de Implementação
Compiladores - Análise léxica, Análise sintática e Geração de código - UNISINOS: Disciplinas específicas Interpretação - Processo de desenvolvimento - 10 a 100 vezes mais lenta do que a compilação - Usada em scripts Sistemas híbridos
55
7 - Métodos de Implementação
Compiladores - Análise léxica, Análise sintática e Geração de código - UNISINOS: Disciplinas específicas Interpretação - Processo de desenvolvimento - 10 a 100 vezes mais lenta do que a compilação - Usada em scripts Sistemas híbridos - Máquinas virtuais - Exemplos: Java (JVM) e Prolog (WAM)
56
8 - Ambientes de programação
Ferramentas para programação Java
57
8 - Ambientes de programação
Ferramentas para programação - Editor - Compilador - Ligador - Depuração Java
58
8 - Ambientes de programação
Ferramentas para programação - Editor - Compilador - Ligador - Depuração Java - Compilador e Máquina Virtual - Diversos ambientes (JCreator, Kawa, etc)
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.