Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Trabalho Fundamentos Computacionais

Trabalho criado para a disciplina de Fundamentos Computacionais.
by

Diogo Grassi

on 19 October 2012

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Trabalho Fundamentos Computacionais

de Programação Então, o que é uma linguagem de programação?
São métodos padronizados para comunicar instruções a um computador.
Podemos definí-las conjunto de regras sintáticas e semânticas utilizadas na definição de um programa de computador.
Os códigos escritos em uma linguagem são traduzidos para um código de máquina e depois executados pelo processador. Não deu pra entender? Então veja. Tipos de Linguagem de Programação Linguagens de Baixo Nível (não é o que você pensa)
Linguagens Não Estruturadas
Linguagens Procedurais
Linguagens Funcionais
Linguagens Orientadas a Objeto
Linguagens Específicas
Linguagens de Quarta Geração ou Visuais Cafézinho? Nesta apresentação, teremos: Linguagens de Baixo Nível São linguagens que oferecem pouca ou nenhuma abstração do conjunto de instruções de um processador.
Costumam ser simples, mas de difícil utilização, devido a vários detalhes técnicos que devem ser lembrados
Os maiores exemplos são código de máquina e assembly.
O código de máquina é a única linguagem que o microprocessador pode processar diretamente sem transformação. Abaixo, um exemplo de uma função escrita em código de máquina para um processador de 32 bits, cuja função é calcular um determinado termo da sequência de Fibonacci: Linguagens de Baixo Nível 8B542408 83FA0077 06B80000 0000C383
FA027706 B8010000 00C353BB 01000000
B9010000 008D0419 83FA0376 078BD98B
C84AEBF1 5BC3 Espera aí.
Sequencia de quem? A sucessão de Fibonacci ou sequência de Fibonacci é uma sequência de números naturais, na qual os primeiros dois termos são 0 e 1, e cada termo subsequente corresponde à soma dos dois precedentes. Foi criada pelo matemático pisano do século XIII Leonardo de Pisa, também conhecido como Leonardo Fibonacci. Iremos exemplificar diferentes formas de obter essa sequencia utilizando algumas das linguagens de programação desta apresentação. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, … Sacaram? Linguagens de Baixo Nível Já o assemlby, faz uso de símbolos legíveis ao ser humano para transformá-los em operações.
É assim chamado pois monta (assemble) os símbolos utilizados em sua escrita em linguagem de máquina.
Cada arquitetura de computador tem sua própria linguagem de máquina, o que requer sua própria linguagem assembly. fib:
mov edx, [esp+8]
cmp ed, 0
ja @f
mov eax, 0
ret

@@:
cmp edx, 2
ja @f
mov eax, 1
ret
@@:
push ebx
mov ebx, 1
mov ecx, 1
@@:
lea eax, [ebx+ecx]
cmp edx, 3
jbe @f
mov ebx, ecx
mov ecx, eax
dec edx
jmp @b
@@:
pop ebx
ret Abaixo um exemplo da calculadora de fibonacci escrita em assembly, para a arquitetura x86 utilizando MASM (Microsoft Macro Assembler): Linguagens não Estruturadas São caracterizadas por comandos sequenciais.
Utilizam apenas comandos simples, normalmente um por linha, para inserir instruções.
Estas linhas costumam ser numeradas e podem ser inseridas instruções de navegação para uma determinada linha de código quando necessário (jump ou goto).
Podemos citar versões antigas do BASIC e do COBOL como exemplos desta forma de linguagem, como também os arquivos batch do Windows. Linguagens não Estruturadas IDENTIFICATION DIVISION.
PROGRAM-ID. SAMPLE.

DATA DIVISION.
WORKING-STORAGE SECTION.

77 fib1 pic 999.
77 fib2 pic 999.
77 fib3 pic 999.
77 i pic 99.
77 fibst pic XXX.
77 res pic X(64).

PROCEDURE DIVISION.
move 0 to i
move 0 to fib1
move 1 to fib2
move "" to res
perform until i greater than 15
add fib1 to fib2 giving fib3
move fib2 to fib1
move fib3 to fib2
move fib1 to fibst
string res DELIMITED BY SPACE
fibst DELIMITED BY SIZE
"," DELIMITED BY SIZE into res
add 1 to i
end-perform.
display res "..."
stop run. Abaixo, um exemplo de sequencia de Fibonacci em COBOL: Linguagens Procedurais
São baseadas em procedimentos, também conhecidos como rotinas, subrotinas, métodos ou funções.
Estes procedimentos podem ser reutilizados para executar uma determinada tarefa.
Eliminam o uso de jumps e gotos.
Permitem a modularização, ou seja, o desenvolvimento de partes do código que podem ser compiladas fora do programa principal e reutilizadas em outros.
Exemplos: C, C++, Delphi e Visual Basic. Linguagens Procedurais procedure Fibonacci(n:integer);
var F : array[1...n] of integer;
var i : integer;
begin
F[1] = 0;
F[2] = 1;
i := 3;

while (i <= n) do
begin
F[i] := F[i-1] + F[i-2];
i := i+1;
end;
end. A seguir, um exemplo da sequencia de Fibonacci em uma linguagem procedural (Pascal): Linguagens Funcionais Neste tipo de linguagem, programação é feita através de definição de funções.
Funções chamam outras funções e recebem funções como parâmetro.
Utilizam extensivamente a recursividade, que é o caso aonde uma função chama a si mesma repetidas vezes.
São utilizadas em inteligência artificial, representação do conhecimento, aprendizagem de máquina, processamento de linguagem natural, modelagem da fala e da visão, entre outras aplicações. Linguagens Funcionais (defun fib(n)
(if (<= n 2)
1 (+ (fib (- n 1))(fib (-n 2)))
)
) Exemplo da sequencia de Fibonacci em uma linguagem funcional (LISP): Fibonas Linguagens Orientadas a Objetos A programação Orientada a objetos (POO) é uma forma especial de programar, mais próximo de como expressaríamos as coisas na vida real do que outros tipos de programação.
Com a POO temos que aprender a pensar as coisas de uma maneira distinta, para escrever nossos programas em termos de objetos.
Trabalha-se com abstrações genéricas da realidade, e transforma-se estas abstrações em classes que servem como moldes para objetos. Estes objetos possuem comportamentos que são os métodos.
Suporta a herança de classes e polimorfismo.
Alguns exemplos de linguagens orientadas a objetos utilizadas por grandes empresas em todo o mundo são: Java, C#, Ruby, Python. public class Fibonacci {

static long fibo(int n) {
if (n < 2) {
return n;
} else {
return fibo(n - 1) + fibo(n - 2);
}
}

public static void main(String[] args) {
// Imprime os 30 primeiros termos da sequencia de Fibonacci
for (int i = 0; i < 30; i++) {
System.out.print("(" + i + "):" + Fibonacci.fibo(i) + "\t");
}
}
} Sequencia de Fibonacci em Java: Linguagens Orientadas a Objetos Linguagens Específicas: São linguagens utilizadas para inserir comandos em diferentes tipos de bancos de dados. A mais dominante é a linguagem SQL (Structured Query Language, ou Linguagem de Consulta Estruturada).
A linguagem SQL funciona de forma declarativa, através de consultas que retornam resultados e comandos que executam ações (criar, atualizar, apagar, selecionar, etc.) nos bancos de dados. Linguagens para Banco de Dados Programador assembly em um dia Normal Linguagens Específicas: Linguagens para Banco de Dados create table CLIENTES (CODCLIENTE integer, NOME varchar(100), constraint PK_CLIENTES primary key (CODCLIENTE))
insert into CLIENTES(CODCLIENTE, NOME)
values(1, ‘CLIENTE TESTE’)
select * from CLIENTES Exemplo de seleção de criação, inserção de registro e seleção em uma tabela em SQL: As linguagens de simulação foram criadas para simular ou modelar o mundo da forma como o usuário o enxerga.
A ideia central é que o programador modele programas em torno de objetos ao invés de procedimentos.
Foram as primeiras linguagens de simulação que criaram o conceito de classe, para que então os objetos pudessem compartilhar características.
São utilizadas em diversas áreas do conhecimento para realizar simulações devido à vasta gama de recursos que possui, podemos citar entre elas a Engenharia, Astronomia, Física e Biologia - inclusive no estudo do Genoma Humano.
Exemplos: Mathematica, Simula, Arena Linguagens Específicas: Linguagens de Simulação Linguagens Específicas: Linguagens de Scripts As Linguagens de scripts são linguagens que são executadas no interior de programas ou como auxiliares a outras linguagens de programação.
Essas linguagens servem para aumentar ou controlar a funcionalidade de um programa.
O PHP é bastante utilizado para este fim, como por exemplo, linguagem auxiliar a um programador que constrói um software desktop mas necessita obter conteúdo de uma página da web. Linguagens Específicas: <?php
$a = 0;
$b = 1;
$c = 0;
echo ("$a\n");
echo ("$b\n");

for ($i=0;$i<=17;$i++){
$c=$a+$b;
$a=$b;$b=$c;
echo ("$c\n");
}
?> Linguagens de Scripts A seguir, temos um exemplo da sequencia de Fibonacci em PHP: Linguagens de Quarta Geração As Linguagens de Quarta Geração surgiram com a necessidade de facilitar a implementação de ideias e agilizar o processo de desenvolvimento de software
Fornecem uma camada ainda mais alta de abstração do que as linguagens convencionais, afastando mais o desenvolvedor do código e o aproximando das tarefas e processos que o programa deve executar.
Neste tipo de linguagem, programa-se o que você quer que o software faça, não como.
Exemplos: GeneXus, Visual DataFlex Linguagens Visuais As linguagens visuais englobam todas as linguagens de programação que possibilitam ao usuário criar programas manipulando elementos gráficos ao invés de especificá-los em forma de texto.
Algumas destas linguagens, por exemplo, utilizam caixas e setas para especificar o que um programa deve fazer. Linguagens Visuais Imagem de um Programa em MAX/MSP: Linguagens Visuais Controle para Angry Birds desenvolvido utilizando Arduino e MAX/MSP: Considerações Finais Podemos analisar ao longo da apresentação que apesar de algumas linguagens se encaixarem melhor em uma definição, a maioria delas compartilha diversos elementos de outras.
Existem diferentes linguagens que podemos utilizar para um mesmo fim, cabendo ao analista ou ao programador decidir qual é a linguagem que melhor se encaixa considerando fatores como tempo, investimento, entre outros.
É cada vez mais importante que o programador tenha conhecimento de várias linguagens para poder integrar suas aplicações. Obrigado! Fim. Linguagens
Full transcript