Buscar

Fundamentos de ADS - Aula 5

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 29 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Fundamentos de Análise e 
Desenvolvimento de Sistemas 
 
Prof. Msc. Carlos Queiroz 
Carlosqueiroz.fate@gmail.com 
Semestre 2013.2 
 
 
0-2 
Aula 05 – Linguagens de Programação 
¤  Perspectiva Histórica 
¤  Implementação de Linguagens 
¤  Visão geral de algumas linguagens de programação 
Perspectiva Histórica 
¤  Primeira Geração 
¤  Segunda Geração 
¤  Terceira Geração 
3 
Perspectiva Histórica 
¤  Primeira Geração 
¤  Caracterizado pelas Linguagens de Máquina 
¤  Sêquencias de instruções codificadas como dígitos 
numéricos 
¤  Problemas 
¤  Desenvolver tornava-se uma tarefa tediosa, propensa 
a erros 
¤  Erros eram difíceis de serem localizados e corrigidos 
(Processo de depuração) 
¤  Fortemente atrelada a máquina 
4 
Perspectiva Histórica 
¤  Segunda Geração 
¤  Desenvolvimento de sistemas notacionais com os quais as instruções 
poderiam ser representadas por mnemônicos 
¤  Montadores 
¤  Programas desenvolvidos para converter expressões mnemônicas 
em instruções da linguagem de máquina 
¤  Linguagens de montagem 
¤  Exemplificado pela linguagem Assembly 
¤  Problemas 
¤  Continuava ainda dependente da máquina 
¤  Um programa escrito em uma linguagem de montagem não 
pode ser facilmente transportado para outro projeto de 
computador, pois teria que ser reescrito em conformidade com 
as instruções da nova máquina 
¤  O programador ainda é forçado a escrever seus programas em 
termos de pequenos passos da linguagem de máquina 
5 
0-6 
Exemplo 
(Primeira Geração) 
Linguagem de Máquina 
(Machine language) 
 
156C 
166D 
5056 
30CE 
C000 
(Segunda Geração) 
Linguagem de Montagem (Assembly 
language) 
 
LD R5, Price 
LD R6, ShipCharge 
ADDI R0, R5 R6 
ST R0, TotalCost 
HLT 
Perspectiva Histórica 
¤  Terceira Geração 
¤  Possuem primitivas de mais alto nível (instruções em 
incrementos maiores) 
¤  Independência da máquina 
¤  Ex.: FORTRAN (FORmula TRANslator), COBOL (Common 
Business-Oriented Language) 
¤  Cada primitiva era projetada de forma que pudesse ser 
implementada como uma sequência de primitivas de baixo 
nível disponíveis em linguagens de máquina 
7 
Perspectiva Histórica 
¤  Terceira Geração 
¤  Tradutor 
¤  Traduz programas expressos em primitivas de alto nível 
em programas em linguagens de máquinas 
¤  Similar aos montadores das linguagens de Segunda 
Geração, mas capaz de compilar diversas instruções de 
máquina em pequenas sequências 
¤  Tradutor -> Compiladores 
8 
Perspectiva Histórica 
¤  Terceira Geração 
¤  Interpretador 
¤  Funcionamento similar aos tradutores, exceto que 
executam as instruções à medida que elas são 
traduzidas 
¤  Não grava uma versão traduzida para uso futuro 
 
 
9 
Perspectiva Histórica 
¤  Terceira Geração 
¤  Independência de máquina 
Um programa escrito em uma linguagem de terceira 
geração pode ser usado em qualquer máquina 
simplesmente aplicando o compilador apropriado. 
10 
Compilador 
¤  Programas que traduzem programas escritos em 
linguagem de programação para programas 
equivalentes escritos em linguagem de máquina 
¤  O primeiro é chamado de programa fonte, enquanto 
que o segundo é chamado de programa objeto 
¤  A compilação também verifica se o programa obedece 
à sintaxe da linguagem, ou seja, se as instruções foram 
escritas corretamente 
11 
Linker 
¤  O programa-objeto nem sempre está pronto para ser 
executado 
¤  Outros trechos de código precisam ser incluídos 
¤  Bibliotecas 
¤  Subprogramas 
¤  Programa executável é montado por um programa 
chamado link-editor ou linking-loader 
¤  Compilador normalmente chama o link-editor 
automaticamente 
12 
Compilação 
 
13 
Interpretador 
¤  A linguagem que iremos estudar não utiliza o conceito de 
interpretadores 
¤  Simulação de uma “Máquina Virtual” 
¤  O Programa fonte é lido, entendido e as instruções são 
executadas imediatamente 
14 
Híbridos 
¤  A linguagem que iremos estudar não utiliza o conceito de 
interpretadores 
¤  Simulação de uma “Máquina Virtual” 
¤  O Programa fonte é lido, entendido e as instruções são 
executadas imediatamente 
15 
0-16 
O Processo de compilação 
Código 
Fonte 
Programa 
Objeto 
0-17 
Exemplo: Análise Léxica e Sintática 
Árvore de análise sintática 
Paradigmas de programação 
¤  Funcional 
¤  Imperativo 
¤  Declarativo 
¤  Orientado a objetos 
0-19 
Paradigma Funcional 
¤  Um programa é visto como uma 
entidade que aceita entradas e 
produz saídas 
¤  Tais unidades são chamadas funções 
¤  Um programa é construído através da 
conexão de unidades de programa 
pré-definidas e menores (funções pré-
definidas) para que as saídas de cada 
unidade sejam usadas como entrada 
para outra subunidade 
¤  Construir funções como um complexo 
aninhado de funções mais simples 
¤  O resultado de uma função é 
“canalizado” para a próxima função 
0-20 
Paradigma Imperativo 
¤  Também conhecido como 
paradigma procedural 
¤  Define o processo de 
programação como uma 
sequência de comandos 
que, quando seguidos, 
manipulam dados para obter 
um resultado desejado 
0-21 
0-22 
Paradigma Declarativo 
¤  Pede ao programador que descreva o problema a ser 
solucionado ao invés de o algoritmo a ser seguido 
¤  A tarefa do programador torna-se o desenvolvimento de uma 
sentença precisa do problema 
¤  As primeiras linguagens declarativas tendiam a ser de 
propósito especial, pois dependem de um algoritmo 
subjacente para a resolução do problema 
¤  Exemplo: 
(P OR Q) AND (R OR ¬Q) é resolvido para (P or R) 
Paradigma Orientado a Objetos 
¤  É o mais proeminente no desenvolvimento de software 
atual 
¤  Um sistema de software é visto como uma coleção de 
unidades, chamada Objetos. 
¤  Cada objeto é capaz de realizar operações 
relacionadas ao próprio objeto ou solicitar ações de 
outros objetos 
¤  Objetos interagem para solucionar o problema em 
questão 
23 
Paradigma Orientado a Objetos 
¤  Objeto 
¤  Coleção de procedimentos (Métodos) 
¤  Dados (atributos) 
¤  Ex.: Lista 
¤  Atributo: Elementos da lista 
¤  Métodos: Ordenação, inserção e remoção de 
elementos 
¤  Métodos 
¤  Pequenas porções de programas imperativos dentro 
de um objeto 
24 
Exemplos de Linguagens 
25 
Tipos de Linguagens 
¤  Linguagens de Baixo Nível 
¤  Assembly 
¤  Linguagens Não Estruturadas 
¤  Cobol, Basic 
¤  Linguagens Procedurais 
¤  C, Pascal, Fortran, Ada, Modula 2, Modula 3 
¤  Linguagens Funcionais 
¤  Prolog, Lisp, Scala, Scheme 
¤  Linguagens Orientada a Objetos 
¤  Simula, Smaltalk, C++, Java 
¤  Linguagens Específicas 
¤  Linguagens para Bancos de Dados 
¤  Clipper, SQL 
¤  Linguagens de Simulação 
¤  Matlab 
¤  Linguagens de Script 
¤  Perl, TCL 
¤  Linguagens de Formatação de Texto 
¤  HTML, Postscript 
26 
Tipos de Linguagens 
¤  Linguagens Não Estruturadas 
¤  Ex.: Cobol, Basic 
¤  Flexibilidade em relação às linguagens de baixo nível, já 
que não estão ligadas ao processador utilizado 
¤  Semântica dos termos é mais genérica 
27 
Tipos de Linguagens 
¤  Linguagens Procedurais 
¤  C, Pascal, Fortran, Ada, Modula 2, Modula 3 
¤  Subtipo das linguagens estruturadas 
¤  Possuem uma estrutura de controle que organiza de forma 
mais clara e eficiente um programa 
¤  Programas => Sequência de chamadas de procedimentos 
28 
Tipos de Linguagens 
¤  Linguagens Orientada a Objetos 
¤  Simula, Smaltalk, C++,Java 
29

Outros materiais