introdução a informática linguagens de programação prof: diego brandão

48
Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Upload: internet

Post on 17-Apr-2015

107 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Introdução a Informática

Linguagens de ProgramaçãoProf: Diego Brandão

Page 2: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Objetivo

• Apresentar diferentes linguagens de programação que poderão ser utilizadas no desenvolvimento de diversas aplicações.

• Apresentar as estruturas de algumas linguagens e suas características, pois cada linguagem foi criada com o objetivo de facilitar o desenvolvimento de diversos tipos de aplicações

Page 3: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Definição

• Conjunto de símbolos, palavras e regras usados na construção de sentenças que expressam e processam instruções para computadores (Houaiss).

• No início os desenvolvedores criavam sistemas utilizando diretamente as instruções do processador, cada seqüência de zeros e uns representava uma única instrução. Conhecida como linguagem de máquina sua utilização é muito complexa.

• Cada programa escrito em linguagem de máquina é específico para um determinado equipamento, pois, numa outra máquina, a mesma seqüência de “0” e “1” podia significar uma operação completamente diferente.

Page 4: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Definição

• Ao passar dos anos, diversas linguagens de programação surgiram para facilitar: – o desenvolvimento dos algoritmos desejados,– a interface entre o homem e a máquina,

e, tornar os programas menos suscetíveis a erros

Page 5: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Histórico

• A primeira tentativa de se criar uma linguagem mais próxima do ser humano foi através da linguagem Assembly – linguagem de montagem. Nesta linguagem cada, instrução é dada por um pequeno conjunto de letras, chamado mnemônico. Estas letras devem sugerir de forma simples qual a operação que deve ser executada.

Page 6: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Histórico

• Exemplo: Soma de dois números Queremos efetuar a soma 10+20 e representar

a soma usando 32 bits. Uma das possibilidades seria colocar o número 10 no registrador eax. Depois somamos ao registrador eax o número 20. O resultado estará no registrador eax.

mov eax,10 add eax,20

Page 7: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Conjuntos de Linguagens

• Linguagens de baixo nível• Linguagens não estruturadas• Linguagens procedurais• Linguagens funcionais• Linguagens orientadas a objetos• Linguagens específicas• Linguagens de quarta geração ou visuais

Page 8: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Linguagens de baixo nível

• Cada processador possui um conjuntodiferente de instruções. Por isso, uma linguagem

Assembler para cada tipo de processador• A mesma aplicação necessita de um códigopara cada tipo de processador

Page 9: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Linguagens Não-Estruturadas

• Não estão vinculadas aos processadores• Considerável avanço para o desenvolvimentode sistemas em termos qualitativos, quandocomparadas às linguagens de baixo nível.– COBOL (Common Business Oriented Language),

ou seja, linguagem comum orientada a negócios.– BASIC (Beginners All-purpose Symbolic

Instruction Code)

Page 10: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Linguagens procedurais

• São consideradas subtipos das linguagens estruturadas

• Possui uma estrutura de controle, organizando de forma mais eficiente e clara a sintaxe do programa– Estrutura de Teste, repetição, WHILE, CASE e

SWITCH, são algumas estruturas utilizadas por esse tipo de linguagem

Page 11: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Linguagens procedurais

• A principal característica é a existência dealgoritmos que determinam uma seqüênciade chamadas de procedimentos, constituindoum programa• As mais comuns são C, Pascal e Fortran; outras

mais sofisticadas são Ada, Modula-2 e Modula-3

Page 12: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Linguagens procedurais

• A linguagem C:– Está diretamente ligada ao desenvolvimento do

Sistema Operacional Unix– Implementada por Dennis Ritchie em 1970– Derivada da linguagem B, idealizada por Ken

Thompson, e esta é derivada da linguagem BCPL criada por Martin Richards

– Utilizada para criação de processadores de texto, planilhas eletrônicas, sistemas operacionais, gerenciadores de banco de dados entre outros

Page 13: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Linguagens procedurais

• A linguagem Pascal:– Desenvolvida por Nicklaus Wirth em 1968 na Suíça– Destina-se principalmente à programação

científica– Idealizada por meio do ALGOL e com fins

educacionais, inspirou as linguagens Modula-2 e Ada

Page 14: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Linguagens procedurais

• A linguagem Fortran– Desenvolvida por Backus, em 1958 para cálculos

matemáticos– O FORTRAN ou Formula Translation manipulava

inicialmente matrizes– Fortran66– Orientada a objeto nos dias atuais

Page 15: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

• A linguagem Ada:– Desenvolvida em 1978 para o Departamento de

Defesa dos Estados Unidos– Possui conceitos de reusabilidade, portabilidade,

modulariedade e confiabilidade. Suporte a programação em tempo real.

• A linguagem Modula-2– Desenvolvida por Niklaus Wirt no final de 1970

• A linguagem Modula-3– Desenvolvida pela Olivetti/Digital

Page 16: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Algoritmos

• Representação de Algoritmos: Pseudo-Linguagem– Algoritmos podem ser representados de duas maneiras:

a) uma mais próxima (entendida) pelas pessoasb) uma entendida pelo computador

– Uma pseudo-linguagem possui as seguintes caracteristicas:• utilização de certas palavras-chave, que indicam a natureza da

operação a ser efetuada em certos passos do algoritmo• utilização de espaços no começo das linhas do algoritmo para

ressaltar a estrutura do algoritmo• numeração dos passos do algoritmo• utilização ponto-e-vírgula (;) para separar os passos consecutivos do

algoritmo

Page 17: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Algoritmo

• Exemplo: algoritmo para somar dois números.– Algoritmo• 1 - pegar o primeiro número;• 2 - pegar o segundo número;• 3 - somar o primeiro número com o segundo;• 4 - mostrar o resultado da soma;

– Fim-algoritmo.

Page 18: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Pascal – Estrutura Principal

• Estrutura principal– A estrutura principal de um programa em pascal

se apresenta da seguinte forma:

program cabeçalho; declarações begin Comandos end.

Page 19: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Exemplo• program exe1;• var• a, b : real;• k : char;• begin• a := 3.2;• b := 5.81;• k := ´*´;• writeln('resultado: ', a:5, ' + ', b:5, ' = ', a+b:5, k);• writeln('resultado: ',a:5:1, ' + ', b:5:1, ' = ', a+b:5:1, k:1);• end.• Resultados:

• resultado: 3.2e+00 + 5.8e+00 = 9.0e+00• resultado: 3.2 + 5.8 = 9.0

Page 20: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Procedimentos e Funções• procedure nome;• declaração dos objetos locais à procedure• BEGIN• comandos da procedure• END;• function nome: t• declararação dos objetos locais à function• BEGIN• comandos da function• .• .• .• nome := X;• END;

Page 21: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Procedimentos• program procedimentos;• var• { declaração das variáveis do programa principal }• procedure entrada_de_dados;• var• { declaração das variáveis do procedimento entrad_de_dados }• begin• { comandos do procedimento entrada_de_dados }• end;• procedure processa_dados;• var• { declaração das variáveis do procedimento processa_dados }• begin• { comandos do procedimento processa_dados }• end;• procedure imprime_resultados;• var• { declaração das variáveis do procedimento imprime_resultados }• begin• { comandos do procedimento imprime_resultados }• end;• begin• { corpo programa principal }• entrada_de_dados;• processa_dados;• imprime_resultados;• end.

Page 22: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Função• program exemplo_function;• { program que calcula o fatorial de N com a utilização de uma função }• var N : integer;• function fatorial : integer;• var i, acumul : integer;• begin• acumul := 1;• i := 1;• while (i <= N) do• begin• acumul := acumul * i;• i := i + 1;• end;• fatorial := acumul;• end;• begin• write('Digite o valor de N: ');• readln(N);• writeln('O valor do Fatorial de ',N , ' é = ', fatorial);• end.

Page 23: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Exemplo em Pascal

• program somadoisnum;• { esse programa soma dois números e exibe o• resultado na tela }• var• n1, n2, result : integer;• begin• readln(n1);• readln(n2);• result := n1 + n2;• writeln(result);• end.

Page 24: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Exemplo em C• #include <stdio.h>• int main ()• {• int x;• int y;• int t;• x=5;• y=4;• t=x+y;• printf("Soma=%d\n“, t);• exit(0);• }

Page 25: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Fatorial com C

• #include <stdio.h>• int fat(int n) { //inicio da funcao fatorial• int n, i, fatorial;• i = 1;• fatorial = 1;• while (i <= n) {• fatorial = fatorial * i;• i++; /* equivalente a: i = i + 1 */• }• return fatorial;• } //fim da funcao fatorial

• int main() { //programa principal• int n, i, fatorial;• printf("Entre o valor de n (0 <= n < 13): "); scanf("%d", &n);• fatorial = fat(n); // chama função fatorial• printf("%d! = %d\n", n, fatorial);• return 0;• }

Page 26: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Linguagens funcionais

• Um estilo diferente de programar• Avaliação de expressões que procuram combinar valores básicos e não simplesmente executar comandos básicos como as linguagens estruturadas• As mais conhecidas são:

– Prolog– Lisp– Scheme– NESL,– Erlang

Page 27: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Linguagens funcionais

• Linguagem Prolog– criada em 1973– na Universidade Marseille– por Alan Colmerauer– devido a necessidade de traduzir as linguagens

naturais– Ligada à lógica matemática– Existem várias versões do Prolog para utilização

com compiladores e interpretadores nas mais diversas plataformas

Page 28: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Exemplo de programa Prolog

• irmão(X,Y) :- mae(Z,X), mae(Z,Y).• irmão(X,Y) :- pai(Z,X), pai(Z,Y).• mãe(maria, felipe).• pai(joão, antonio).• pai(joão, guilherme).• pai(miguel, joão).• • ? irmão(antonio,guilherme)• • ? irmão(joão,guilherme)

Page 29: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Exemplo: Números de Fibonacci

• Os números de Fibonacci são uma sequência• definida recursivamente por:

• • 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144,• 233, 377, 610, 987, 1597, 2584, 4181,• 6765, 10946, …

Page 30: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Números de Fibonacciem Prolog

• Fib(0,0).• • Fib(0,1).• • Fib(n,F1+F2):-Fib(n-1,F1), Fib(n-2,F2).• • ? Fib(10, F).• F = 55.

Page 31: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Linguagens funcionais(3)

• Linguagem LISP (LISt Processor)– baseia-se em estudos de Inteligência Artificial– na década de 80, o LISP começou a ser utilizado

em diversos dialetos, surgindo então o Common Lisp que integrou todas as características positivas

– Com o tempo foram adicionadas mais funções ao Common Lisp, dando origem ao CLOS(Common Lisp Object System), orientado a objetos

Page 32: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Linguagens Procedurais vs.Linguagens Funcionais

• Nas linguagens procedurais, a programação é baseada na execução sequencial de comandos.– Variáveis são definidas.– Comandos alteram o valor das variáveis.– Repetição é realizada através de comandos explícitos (for,

while).• Nas linguagens funcionais, a programação é feita

somente através da definição de funções.– Funções podem receber outras funções como parâmetro.– A repetição é feita através da recursão: uma função chama a

si mesma.

Page 33: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Linguagens Orientadas aObjetos

• Surgiram devido as novas técnicas da Engenharia de Software

• A visão de programação estruturada ou Top- Down (de cima para baixo), passou a ser Bottom-Up (de baixo para cima)

• As primeiras linguagens orientadas a objetos surgiram no fim da década de 1960, o Simula e o Smaltalk

Page 34: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Linguagens Orientadas aObjetos

Linguagem Simula• inspirada no ALGOL (ALGOritmic Language),• usada na década de 1960 nas universidades• desenvolvido no Centro Norueguês de

computação de Oslo• inserido conceitos de classe, co-rotina, variável de

referência• programações de simulações• tipos abstratos de dados

Page 35: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Linguagens Orientadas aObjetos

• Linguagem C++– Uma extensão da linguagem C– Idealizada por Stroustrup em, 1986 nos

laboratórios da AT&T– Suporte para a criação e uso de:• Tipos abstratos de dados,• Classes Virtuais,• Facilidade para a programação de baixo nível

Page 36: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

• Linguagem Java– Implementada pela Sun Microsystems, em 1990– Princípio fundamental, a portabilidade– Geração de código intermediários, os byte-codes– Uma variante da linguagem é o Java Script,

programas incluídos nos textos das páginas HTML que não são compilados, são apenas interpretados pelos browsers

Page 37: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Linguagens Orientadas aObjetos

Page 38: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Linguagens Orientadas aObjetos

Page 39: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Processo de Execução de um Programa

Programa inicial (alto nível)

Programa Compilador

Código Objeto (Linguagem de máquina)

Open file_entradaRead A,B,CWhile not eof(file_entrada) do K=A+B-C point A,B,C,X read A,B,CEnd whileClose file_entrada

Compilação

1011 0011 0000 00111010 0000 0000 01001110 0000 0000 1000...............................................................................................................1111 0000 0000 0000

Page 40: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Fluxograma do processo de execução de um programa

Programa fonte

Código Objeto

Código Executável

Compilação

Ligação

Execução

Compilador

Ligador

Carregador

Page 41: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Compilação X Interpretação

• Compilação– Conversão de um programa escrito em linguagem

de alto nível para linguagem de máquina– Processo de análise de um programa e sua

conversão em linguagem binária (código objeto).– Analise comando por comando do código fonte e

não ocorrendo erros geração do código objeto.

Page 42: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Compilação X Interpretação

• Interpretação– Realização das trÊs fases(compilação, ligação e

execução), comando a comando, do programa fonte.

– Cada comando é lido, convertido em código executável e imediatamente executado, antes que o comando seguinte seja lido.

Page 43: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Compilação X Interpretação

• Vantagens:– Interpretação-> identificar e indicar um erro no

programa em qualquer etapa.– Compilação -> baixo consumo de memória

• Desvantagens:– Interpretação-> consumo de memória, execução

de loops– Compilação -> dificil detecção de erros.

Page 44: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Linguagens Específicas

• Linguagens para Banco de Dados– Linguagem Clipper – 1980 e 1990– SQL (Structured Query Language)

• Linguagens de Simulação– MATLAB – destinada a cursos de teoria matricial,

álgebra linear e análise numérica surgiu nas universidades de Stanford e Novo México no final da década de 1970

Page 45: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Linguagens Específicas

• Linguagens de Script– Perl – otimizada para a leitura de arquivos textos– TCL/TK (Tool Command Language/Tool Kit) – 1990

na Universidade da Califórnia, por John Ousterhout– Usada para desenvolver interfaces gráficas nas

aplicações– Pode ser utilizada com outras linguagens como C e

possui características das linguagens procedurais clássicas (variáveis, chamadas de procedimentos e estruturas de controle)

Page 46: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Linguagens Específicas

• Linguagens de Formatação de Texto– HTML– PostScript – a Adobe, em 1985, para a otimização

de impressão de gráficos e textos– PDF (Portable Data Format) – com a evolução do

PostScript

Page 47: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Linguagens de quarta geração ouvisuais

• Com a chegada do sistema operacional Windows a utilização do computador atingiu um número maior de pessoas

• Os sistemas passaram a ter ferramentas de suporte mais simples, a qualidade teve um salto considerável

Page 48: Introdução a Informática Linguagens de Programação Prof: Diego Brandão

Linguagens de quarta geração ouvisuais

• Linguagens como:– Visual Basic – desenvolvido pela Microsoft– Simulink – utilizado na simulação de sistemas

dinâmicos– Delphi – criada pela Borland, que desenvolveu o

C++ Builder. Utiliza a linguagem Object Pascal da Borland, originada do Turbo Pascal.