SlideShare uma empresa Scribd logo
Introdução ao Paradigma Imperativo
Prof. Tony Alexander Hild
Paradigmas de Linguagem de Programação – 3 CC – Unicentro – 2013
2
Definição da paradigmaDefinição da paradigma
pa·ra·dig·ma
(grego parádeigma, -atos)
substantivo masculino
1. Algo que serve de exemplo geral ou de modelo. = PADRÃO
2. [Gramática]  Conjunto das formas que servem de modelo de derivação
ou de flexão. = PADRÃO
3. [Linguística]  Conjunto dos termos ou elementos que podem ocorrer na
mesma posição ou contexto de uma estrutura.
"paradigma", in Dicionário Priberam da Língua Portuguesa [em linha], 2008-
2013, http://www.priberam.pt/dlpo/paradigma [consultado em 27-09-2013].
3
Definição de imperativoDefinição de imperativo
im·pe·ra·ti·vo
adjetivo
1. Que impera ou manda.
2. Autoritário, arrogante.
substantivo masculino
3. [Gramática]  Modo do verbo que exprime ordem, exortação ou pedido.
4. Princípio que tem o caráter de obrigação imperiosa.
"imperativo", in Dicionário Priberam da Língua Portuguesa [em linha], 2008-
2013, http://www.priberam.pt/dlpo/imperativo [consultado em 27-09-2013].
4
Relembrando a história...Relembrando a história...
●
John von Neumann:
– Primeira pessoa a documentar os
conceitos básicos de
computadores de programas
armazenados;
– Famoso matemático húngaro que
foi para os EUA em 1930 e
interessou-se por computadores
enquanto participava no
desenvolvimento da bomba de
hidrogênio.
5
O computador “von Neumann”O computador “von Neumann”
●
Uma unidade de memória: é capaz de armazenar dados e instruções:
– Acesso aleatório;
●
Internamente, os dados e as instruções são armazenadas no mesmo espaço de
endereço e são indistinguíveis;
●
Uma unidade de cálculo (ALU);
●
Uma unidade de controle (CPU);
– Programa armazenado → conjunto de instruções;
●
Dualidade entre instruções e dados → programas podem automodificar-se;
●
von Neumann delineou essa estrutura em um documento conhecido como o
“First Draft of a Report on the EDVAC” de junho de 1945.
6
O computador “von Neumann”O computador “von Neumann”
7
● Alan Turing: um matemático
britânico e um dos primeiros
cientistas da computação;
● Uma linguagem é Turing
completa se puder ser utilizada
para implementar qualquer
algoritmo;
● Muito importante para o estudo
da computabilidade.
Completude de TuringCompletude de Turing
8
O que torna uma linguagemO que torna uma linguagem
imperativa?imperativa?
●
Programas escritos em linguagens de
programação imperativas consistem em:
– Um estado do programa;
– Instruções que alteram o estado do programa.
●
Instruções do programa são "imperativas", no
sentido gramatical dos verbos imperativos que
expressam um comando.
Primeiro faça isto, depois faça aquilo.
9
● Primeiras linguagens imperativas: linguagens de
montagem (assembly);
● 1954-1955: Fortran (FORmula TRANslator):
– John Backus desenvolvido para IBM 704.
● Final de 1950: Algol (ALGOrithmic Language);
● 1958: Cobol (Common Business Oriented
Language), desenvolvido por uma comissão do
governo, Grace Hopper muito influente.
História das Linguagens ImperativasHistória das Linguagens Imperativas
10
Elementos das linguagens imperativasElementos das linguagens imperativas
●
Definições de tipo de dados;
●
Declarações de variáveis:
– São normalmente "tipadas" estaticamente ou dinamicamente:
●
Tipos básicos de dados (e.g., int, float, boolean, char);
●
Tipos de dados compostos (structs, arrays).
●
Expressões e declarações de atribuição;
●
Declarações de controle de fluxo (geralmente estruturados);
– Desvios condicionais, laços;
– As declarações são comandos e sua ordem é fundamental para a execução correta;
●
Escopos lexicais e blocos:
– Objetivo: proporcionar localidade de referência.
●
Declarações e definições de procedimentos e funções (isto é, blocos parametrizados);
●
Manipulação de erros e exceções;
●
Comandos de E/S;
●
Estruturas de dados.
11
Características das linguagensCaracterísticas das linguagens
imperativasimperativas
●
São Turing completas se suportarem inteiros, operadores aritméticos básicos, atribuições,
sequenciamento, laços e desvios condicioanis;
●
O estado do programa é mantido em variáveis associadas à localizações de memória:
– Endereço e um valor de armazenamento;
●
O valor da variável pode ser acessado direta e indiretamente, e pode ser alterado através
de um comando de atribuição;
– a = 1;
– &a = 1;
●
Uma atribuição introduz uma dependência de ordem no programa:
– o valor de uma variável é diferente antes e depois de um comando de atribuição;
– print(a) => 1;
– a = 2; dependência de ordem
– print(a) => 2;
12
Características das linguagensCaracterísticas das linguagens
imperativasimperativas
● Repetição ou laço ou loop:
– Usada extensivamente para processar valores ou acumular um valor em uma variável
específica; ou
– Usada para varrer uma sequência de localizações de memória tal como vetores.
● Funções:
– Algoritmos que especificam como processar um intervalo de valores, a partir de um valor
de domínio, com uma série de passos prescritos;
● Comandos:
– Semelhantes às instruções de máquina nativas de um hardware de computador tradicional
- o modelo de von Neumann-Eckley;
● O paradigma imperativo é predominante nas LPs, pois tais linguagens são mais fáceis de
traduzir para uma forma adequada para execução na máquina;
● Usa-se abstração procedural e refinamento gradual para melhorar um programa imperativo.
13
Gráfico de fluxoGráfico de fluxo
● Usado para modelar programas
imperativos;
● Com base nas três declarações
de controle que são essenciais
para se obter toda a
capacidade de uma máquina
de Turing;
● Precursor da UML e outras
técnicas modernas;
● Criado para descrever fluxos
de processos em geral.
14
Abstração ProceduralAbstração Procedural
● Nicholas Wirth descreveu programas (imperativos)
como "algoritmos + estruturas de dados";
● Algoritmos tornam-se programas através do
processo de abstração procedural e refinamento
gradual;
● Bibliotecas de funções reutilizáveis facilitam este
processo (funções = procedimentos);
● Programação imperativa + procedimentos =
programação procedural.
15
● A abstração procedural permite que o programador
se preocupe principalmente com as interfaces
entre as funções (procedimentos) e o que elas
calculam, ignorando os detalhes de como o cálculo
é realizado;
● Abstração permite pensar sobre o que está sendo
feito, e não como é implementado.
Abstração ProceduralAbstração Procedural
16
Refinamento gradual (passo aRefinamento gradual (passo a
passo)passo)
● Refinamento gradual (também chamado de decomposição
funcional) utiliza abstração procedural para desenvolver um
algoritmo a partir de sua forma mais geral, (a abstração) para
sua implementação específica (método top-down);
● Os programadores começam com a descrição do que o
programa deve fazer, incluindo E/S, e repetidamente quebram
o problema em partes menores, até que os subproblemas
possam ser expressados em termos dos estados primitivos e
dos tipos de dados da linguagem.
17
●
Uma abordagem disciplinada para projetos de programas imperativos;
●
Usa abstração procedural e projeto top-down para identificar os
componentes do programa (também chamados de módulos ou
estruturas);
●
Estruturas do programa combinadas em um número limitado de formas,
de modo que a compreensão de como funciona cada estrutura significa
entender como funciona o programa;
●
O fluxo de controle do programa é baseado em decisões, sequências,
laços, mas...
– Não usa instruções goto.
●
Os módulos são desenvolvidos, testados separadamente e depois
integradas no conjunto do programa.
Programação EstruturadaProgramação Estruturada
18
Instruções gotoInstruções goto
Código Spaghetti
19
AtribuiçõesAtribuições
● Lembre-se: linguagens imperativas operam
alterando o estado do programa. Isso é feito
usando comandos de atribuição destrutivos.
● Formato geral:
– destino = expressão
● Operadores de atribuição: = ou :=
● Baseado em operações de máquina, tais como
MOV ou STO.
20
Semântica de AtribuiçãoSemântica de Atribuição
● Avalia a expressão para obter um único valor;
● Copia o valor da expressão para o destino;
● Programas imperativos puros implementam a
semântica de cópia (em oposição à semântica de
referência utilizadas em linguagens orientadas a
objetos).
21
ExpressõesExpressões
● Expressões representam um valor e têm um tipo;
● Compreender as expressões significa entender a
precedência do operador, sobrecarga de
operadores, casting e conversão de tipo, entre
outras questões;
● Expressões aritméticas simples são baseados em
operadores aritméticos (DIV, MUL, etc) de
linguagem de máquina (LM).
22
ExpressõesExpressões
● Os operadores lógicos são baseadas em instruções de LM
semelhantes (AND, XOR, …);
● LM suporta tipos de dados indiretamente através de diferentes
instruções:
– add/sub/mul/div de inteiros
vs
– add/sub/mul/div de ponto flutuante, por exemplo.
● Internamente, não há maneira visível para distinguir inteiros de
ponto flutuantes de caracteres;
● Línguagens a partir do Fortran fornecem alguma proteção contra
erros de tipo, e alguma capacidade para definir novos tipos.
23
Linguagens Imperativas X DeclarativasLinguagens Imperativas X Declarativas
● Linguagens imperativas (Java, Pascal, C/C++, C#):
– Especificam uma sequência de operações para o computador
executar.
● Linguagens declarativas (SQL, Haskell, Prolog)
– Descrevem o espaço de soluções;
– Fornecem o conhecimento necessário para chegar lá;
– Não descrevem os passos necessários para chegar lá.
– Linguagens funcionais e linguagens lógicas são declarativas.
24
Vantagens e DesvantagensVantagens e Desvantagens
● Vantagens:
– Eficiência (embute o modelo de Von Neumann);
– Mais fácil de traduzir para a linguagem de máquina;
– Paradigma dominante e bem estabelecido;
– Modelagem “Natural” de aplicações do mundo real;
– Também é muito flexível.
● Desvantagens:
– Descrições demasiadamente operacionais;
– Focaliza o “como” e não o “quê”;
– Relacionamento indireto com a E/S (indução a erros/estados).
25
ExemplosExemplos
●
Ada
●
Algol
●
C
●
Pascal
26
ADAADA
27
ADAADA
28
ALGOLALGOL
29
CC
30
PascalPascal

Mais conteúdo relacionado

Mais procurados

Variáveis e portugol
Variáveis e portugolVariáveis e portugol
Variáveis e portugol
Carlos Wagner Costa
 
A Linguagem sql
A Linguagem sqlA Linguagem sql
A Linguagem sql
Centro Paula Souza
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
Armando Daniel
 
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Leinylson Fontinele
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }
Mariana Camargo
 
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
Janynne Gomes
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dados
vini_campos
 
Algoritmo aula 01-f
Algoritmo   aula 01-fAlgoritmo   aula 01-f
Algoritmo aula 01-f
Professor Samuel Ribeiro
 
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOCURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
Microsoft
 
Manual de portugol
Manual de portugolManual de portugol
Manual de portugol
Gabriel Faustino
 
Aula01 - Logica de Programação
Aula01 - Logica de ProgramaçãoAula01 - Logica de Programação
Aula01 - Logica de Programação
Jorge Ávila Miranda
 
Estrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - ApresentaçãoEstrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - Apresentação
Leinylson Fontinele
 
Aula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoAula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de Projeto
Vinícius de Paula
 
Algoritmos em portugol
Algoritmos em portugolAlgoritmos em portugol
Algoritmos em portugol
Evonaldo Gonçalves Vanny
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programação
rodfernandes
 
Introdução à programação
Introdução à programação Introdução à programação
Introdução à programação
João Piedade
 
Uml Diagramas Estruturais
Uml   Diagramas EstruturaisUml   Diagramas Estruturais
Uml Diagramas Estruturais
thaisedd
 
Teste de software
Teste de softwareTeste de software
Teste de software
COTIC-PROEG (UFPA)
 
Java modulo 01 - Introdução
Java modulo 01 - IntroduçãoJava modulo 01 - Introdução
Java modulo 01 - Introdução
Professor Samuel Ribeiro
 
Estrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e FunçõesEstrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e Funções
Leinylson Fontinele
 

Mais procurados (20)

Variáveis e portugol
Variáveis e portugolVariáveis e portugol
Variáveis e portugol
 
A Linguagem sql
A Linguagem sqlA Linguagem sql
A Linguagem sql
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
 
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }
 
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dados
 
Algoritmo aula 01-f
Algoritmo   aula 01-fAlgoritmo   aula 01-f
Algoritmo aula 01-f
 
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOCURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
 
Manual de portugol
Manual de portugolManual de portugol
Manual de portugol
 
Aula01 - Logica de Programação
Aula01 - Logica de ProgramaçãoAula01 - Logica de Programação
Aula01 - Logica de Programação
 
Estrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - ApresentaçãoEstrutura de Dados - Aula 01 - Apresentação
Estrutura de Dados - Aula 01 - Apresentação
 
Aula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoAula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de Projeto
 
Algoritmos em portugol
Algoritmos em portugolAlgoritmos em portugol
Algoritmos em portugol
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programação
 
Introdução à programação
Introdução à programação Introdução à programação
Introdução à programação
 
Uml Diagramas Estruturais
Uml   Diagramas EstruturaisUml   Diagramas Estruturais
Uml Diagramas Estruturais
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Java modulo 01 - Introdução
Java modulo 01 - IntroduçãoJava modulo 01 - Introdução
Java modulo 01 - Introdução
 
Estrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e FunçõesEstrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e Funções
 

Destaque

Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.
Valmon Gaudencio
 
Programação 1
Programação 1Programação 1
Programação 1
essa
 
Critérios de avaliação de linguagens
Critérios de avaliação de linguagensCritérios de avaliação de linguagens
Critérios de avaliação de linguagens
Paulo Muniz
 
Elementos Fundamentais de Linguagens de Programação e a Linguagem Python
Elementos Fundamentais de Linguagens de Programação e a Linguagem PythonElementos Fundamentais de Linguagens de Programação e a Linguagem Python
Elementos Fundamentais de Linguagens de Programação e a Linguagem Python
Caliane Z. Pecenin
 
Aula Inaugural - Programação Imperativa
Aula Inaugural - Programação ImperativaAula Inaugural - Programação Imperativa
Aula Inaugural - Programação Imperativa
Ivna Valença
 
Paradigmas de programação
Paradigmas de programaçãoParadigmas de programação
Paradigmas de programação
Carlos Wagner Costa
 
Linguágens de programação
Linguágens de programaçãoLinguágens de programação
Linguágens de programação
AlbertoVach
 
Paradigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmicoParadigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmico
Adriano Teixeira de Souza
 
Apresentação linguagem cobol
Apresentação linguagem cobolApresentação linguagem cobol
Apresentação linguagem cobol
Lorranna Machado
 
01 aula1 habib
01 aula1 habib01 aula1 habib
01 aula1 habib
eduardohabib
 
Apresentação sobre a linguagem lua
Apresentação sobre a linguagem luaApresentação sobre a linguagem lua
Apresentação sobre a linguagem lua
Rafael Sanches
 
Linguagens de Programação
Linguagens de ProgramaçãoLinguagens de Programação
Linguagens de Programação
BeDMK
 
Aula 02 POO - Meu Primeiro Código
Aula 02 POO - Meu Primeiro CódigoAula 02 POO - Meu Primeiro Código
Aula 02 POO - Meu Primeiro Código
Aislan Rafael
 
4 introdução ao paradigma funcional
4 introdução ao paradigma funcional4 introdução ao paradigma funcional
4 introdução ao paradigma funcional
Péricles Miranda
 
Paradigma lógico
Paradigma lógicoParadigma lógico
Paradigma lógico
Sérgio Souza Costa
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programação
essa
 
Algoritmos - Paradigmas de Programação
Algoritmos - Paradigmas de ProgramaçãoAlgoritmos - Paradigmas de Programação
Algoritmos - Paradigmas de Programação
Elaine Cecília Gatto
 
Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2
Ismar Silveira
 
Linguagem da programação
Linguagem da programaçãoLinguagem da programação
Linguagem da programação
Rodrigo Gonçalves
 
Seminário: JavaScript
Seminário: JavaScriptSeminário: JavaScript
Seminário: JavaScript
Ivna Valença
 

Destaque (20)

Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.
 
Programação 1
Programação 1Programação 1
Programação 1
 
Critérios de avaliação de linguagens
Critérios de avaliação de linguagensCritérios de avaliação de linguagens
Critérios de avaliação de linguagens
 
Elementos Fundamentais de Linguagens de Programação e a Linguagem Python
Elementos Fundamentais de Linguagens de Programação e a Linguagem PythonElementos Fundamentais de Linguagens de Programação e a Linguagem Python
Elementos Fundamentais de Linguagens de Programação e a Linguagem Python
 
Aula Inaugural - Programação Imperativa
Aula Inaugural - Programação ImperativaAula Inaugural - Programação Imperativa
Aula Inaugural - Programação Imperativa
 
Paradigmas de programação
Paradigmas de programaçãoParadigmas de programação
Paradigmas de programação
 
Linguágens de programação
Linguágens de programaçãoLinguágens de programação
Linguágens de programação
 
Paradigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmicoParadigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmico
 
Apresentação linguagem cobol
Apresentação linguagem cobolApresentação linguagem cobol
Apresentação linguagem cobol
 
01 aula1 habib
01 aula1 habib01 aula1 habib
01 aula1 habib
 
Apresentação sobre a linguagem lua
Apresentação sobre a linguagem luaApresentação sobre a linguagem lua
Apresentação sobre a linguagem lua
 
Linguagens de Programação
Linguagens de ProgramaçãoLinguagens de Programação
Linguagens de Programação
 
Aula 02 POO - Meu Primeiro Código
Aula 02 POO - Meu Primeiro CódigoAula 02 POO - Meu Primeiro Código
Aula 02 POO - Meu Primeiro Código
 
4 introdução ao paradigma funcional
4 introdução ao paradigma funcional4 introdução ao paradigma funcional
4 introdução ao paradigma funcional
 
Paradigma lógico
Paradigma lógicoParadigma lógico
Paradigma lógico
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programação
 
Algoritmos - Paradigmas de Programação
Algoritmos - Paradigmas de ProgramaçãoAlgoritmos - Paradigmas de Programação
Algoritmos - Paradigmas de Programação
 
Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2
 
Linguagem da programação
Linguagem da programaçãoLinguagem da programação
Linguagem da programação
 
Seminário: JavaScript
Seminário: JavaScriptSeminário: JavaScript
Seminário: JavaScript
 

Semelhante a Introdução ao paradigma imperativo

Linguagem da programação
Linguagem da programaçãoLinguagem da programação
Linguagem da programação
Rodrigo Gonçalves
 
Lista exercicios algoritmos
Lista exercicios algoritmosLista exercicios algoritmos
Lista exercicios algoritmos
slashmelhor
 
1.1.paradigmas
1.1.paradigmas1.1.paradigmas
1.1.paradigmas
Fábio Costa
 
Aula01 estrutura de dados - (começando as brincadeiras)
Aula01   estrutura de dados - (começando as brincadeiras)Aula01   estrutura de dados - (começando as brincadeiras)
Aula01 estrutura de dados - (começando as brincadeiras)
Cleyton Fábio
 
Cap02
Cap02Cap02
Cap02
mvbahamut
 
Cap02
Cap02Cap02
Cap02
mvbahamut
 
Cap02
Cap02Cap02
Cap02
mvbahamut
 
Apresentação final
Apresentação finalApresentação final
Apresentação final
valmon
 
Principios e paradigmas_de_computacao2
Principios e paradigmas_de_computacao2Principios e paradigmas_de_computacao2
Principios e paradigmas_de_computacao2
Lumabyte Soluções e Tecnologias
 
Aula01 - Analise e Programação
Aula01 - Analise e ProgramaçãoAula01 - Analise e Programação
Aula01 - Analise e Programação
Jorge Ávila Miranda
 
Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturado
dasko
 
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdfparadigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
AndreiaCristinaFlore
 
aula03-introprogy.pptx
aula03-introprogy.pptxaula03-introprogy.pptx
aula03-introprogy.pptx
brayankedroksi
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação
12anogolega
 
Aula01 introducao operacoes
Aula01   introducao operacoesAula01   introducao operacoes
Aula01 introducao operacoes
Yuri Passos
 
Int. sistemas de informação iii
Int. sistemas de informação iiiInt. sistemas de informação iii
Int. sistemas de informação iii
Ray Fran Pires
 
Mini Curso de C
Mini Curso de CMini Curso de C
Mini Curso de C
W4Solutions
 
Técnicas_Implementação
Técnicas_ImplementaçãoTécnicas_Implementação
Técnicas_Implementação
Wagner Zaparoli
 
Algoritmos - Aula 03 - Necessidade Do Uso da Logica
Algoritmos - Aula 03 - Necessidade Do Uso da LogicaAlgoritmos - Aula 03 - Necessidade Do Uso da Logica
Algoritmos - Aula 03 - Necessidade Do Uso da Logica
Rodrigo Kiyoshi Saito
 
Ruby
RubyRuby

Semelhante a Introdução ao paradigma imperativo (20)

Linguagem da programação
Linguagem da programaçãoLinguagem da programação
Linguagem da programação
 
Lista exercicios algoritmos
Lista exercicios algoritmosLista exercicios algoritmos
Lista exercicios algoritmos
 
1.1.paradigmas
1.1.paradigmas1.1.paradigmas
1.1.paradigmas
 
Aula01 estrutura de dados - (começando as brincadeiras)
Aula01   estrutura de dados - (começando as brincadeiras)Aula01   estrutura de dados - (começando as brincadeiras)
Aula01 estrutura de dados - (começando as brincadeiras)
 
Cap02
Cap02Cap02
Cap02
 
Cap02
Cap02Cap02
Cap02
 
Cap02
Cap02Cap02
Cap02
 
Apresentação final
Apresentação finalApresentação final
Apresentação final
 
Principios e paradigmas_de_computacao2
Principios e paradigmas_de_computacao2Principios e paradigmas_de_computacao2
Principios e paradigmas_de_computacao2
 
Aula01 - Analise e Programação
Aula01 - Analise e ProgramaçãoAula01 - Analise e Programação
Aula01 - Analise e Programação
 
Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturado
 
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdfparadigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
 
aula03-introprogy.pptx
aula03-introprogy.pptxaula03-introprogy.pptx
aula03-introprogy.pptx
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação
 
Aula01 introducao operacoes
Aula01   introducao operacoesAula01   introducao operacoes
Aula01 introducao operacoes
 
Int. sistemas de informação iii
Int. sistemas de informação iiiInt. sistemas de informação iii
Int. sistemas de informação iii
 
Mini Curso de C
Mini Curso de CMini Curso de C
Mini Curso de C
 
Técnicas_Implementação
Técnicas_ImplementaçãoTécnicas_Implementação
Técnicas_Implementação
 
Algoritmos - Aula 03 - Necessidade Do Uso da Logica
Algoritmos - Aula 03 - Necessidade Do Uso da LogicaAlgoritmos - Aula 03 - Necessidade Do Uso da Logica
Algoritmos - Aula 03 - Necessidade Do Uso da Logica
 
Ruby
RubyRuby
Ruby
 

Mais de Tony Alexander Hild

Circuitos combinacionais
Circuitos combinacionaisCircuitos combinacionais
Circuitos combinacionais
Tony Alexander Hild
 
Paradigma funcional
Paradigma funcionalParadigma funcional
Paradigma funcional
Tony Alexander Hild
 
Circuitos sequenciais
Circuitos sequenciaisCircuitos sequenciais
Circuitos sequenciais
Tony Alexander Hild
 
Circuitos Integrados Digitais
Circuitos Integrados DigitaisCircuitos Integrados Digitais
Circuitos Integrados Digitais
Tony Alexander Hild
 
Paradigma Orientado a Objeto
Paradigma Orientado a ObjetoParadigma Orientado a Objeto
Paradigma Orientado a Objeto
Tony Alexander Hild
 
Simplificação de expressões Booleanas utilizando mapas de Karnaugh
Simplificação de expressões Booleanas utilizando mapas de KarnaughSimplificação de expressões Booleanas utilizando mapas de Karnaugh
Simplificação de expressões Booleanas utilizando mapas de Karnaugh
Tony Alexander Hild
 
Introdução aos Mapas de Karnaugh
Introdução aos Mapas de KarnaughIntrodução aos Mapas de Karnaugh
Introdução aos Mapas de Karnaugh
Tony Alexander Hild
 
Álgebra Booleana
Álgebra BooleanaÁlgebra Booleana
Álgebra Booleana
Tony Alexander Hild
 
CEAD 2013 - Oficina 1: Ferramentas colaborativas e de comunicação WEB
CEAD 2013 - Oficina 1: Ferramentas colaborativas e de comunicação WEBCEAD 2013 - Oficina 1: Ferramentas colaborativas e de comunicação WEB
CEAD 2013 - Oficina 1: Ferramentas colaborativas e de comunicação WEB
Tony Alexander Hild
 
Introdução ao Desenvolvimento WEB
Introdução ao Desenvolvimento WEBIntrodução ao Desenvolvimento WEB
Introdução ao Desenvolvimento WEB
Tony Alexander Hild
 
Computação Gráfica - Transformações Geométricas no Plano e no Espaço
Computação Gráfica - Transformações Geométricas no Plano e no EspaçoComputação Gráfica - Transformações Geométricas no Plano e no Espaço
Computação Gráfica - Transformações Geométricas no Plano e no Espaço
Tony Alexander Hild
 
Computação Gráfica - Introdução ao OpenGL
Computação Gráfica - Introdução ao OpenGLComputação Gráfica - Introdução ao OpenGL
Computação Gráfica - Introdução ao OpenGL
Tony Alexander Hild
 
Computação Gráfica - Artquitetura de Dispositivos Gráficos
Computação Gráfica - Artquitetura de Dispositivos GráficosComputação Gráfica - Artquitetura de Dispositivos Gráficos
Computação Gráfica - Artquitetura de Dispositivos Gráficos
Tony Alexander Hild
 
Computação Gráfica - Informações Visuais Óculo-motoras
Computação Gráfica - Informações Visuais Óculo-motorasComputação Gráfica - Informações Visuais Óculo-motoras
Computação Gráfica - Informações Visuais Óculo-motoras
Tony Alexander Hild
 
Computação Gráfica - Percepção Tridimensional
Computação Gráfica - Percepção TridimensionalComputação Gráfica - Percepção Tridimensional
Computação Gráfica - Percepção Tridimensional
Tony Alexander Hild
 
Computação Gráfica - Introdução
Computação Gráfica - IntroduçãoComputação Gráfica - Introdução
Computação Gráfica - Introdução
Tony Alexander Hild
 

Mais de Tony Alexander Hild (16)

Circuitos combinacionais
Circuitos combinacionaisCircuitos combinacionais
Circuitos combinacionais
 
Paradigma funcional
Paradigma funcionalParadigma funcional
Paradigma funcional
 
Circuitos sequenciais
Circuitos sequenciaisCircuitos sequenciais
Circuitos sequenciais
 
Circuitos Integrados Digitais
Circuitos Integrados DigitaisCircuitos Integrados Digitais
Circuitos Integrados Digitais
 
Paradigma Orientado a Objeto
Paradigma Orientado a ObjetoParadigma Orientado a Objeto
Paradigma Orientado a Objeto
 
Simplificação de expressões Booleanas utilizando mapas de Karnaugh
Simplificação de expressões Booleanas utilizando mapas de KarnaughSimplificação de expressões Booleanas utilizando mapas de Karnaugh
Simplificação de expressões Booleanas utilizando mapas de Karnaugh
 
Introdução aos Mapas de Karnaugh
Introdução aos Mapas de KarnaughIntrodução aos Mapas de Karnaugh
Introdução aos Mapas de Karnaugh
 
Álgebra Booleana
Álgebra BooleanaÁlgebra Booleana
Álgebra Booleana
 
CEAD 2013 - Oficina 1: Ferramentas colaborativas e de comunicação WEB
CEAD 2013 - Oficina 1: Ferramentas colaborativas e de comunicação WEBCEAD 2013 - Oficina 1: Ferramentas colaborativas e de comunicação WEB
CEAD 2013 - Oficina 1: Ferramentas colaborativas e de comunicação WEB
 
Introdução ao Desenvolvimento WEB
Introdução ao Desenvolvimento WEBIntrodução ao Desenvolvimento WEB
Introdução ao Desenvolvimento WEB
 
Computação Gráfica - Transformações Geométricas no Plano e no Espaço
Computação Gráfica - Transformações Geométricas no Plano e no EspaçoComputação Gráfica - Transformações Geométricas no Plano e no Espaço
Computação Gráfica - Transformações Geométricas no Plano e no Espaço
 
Computação Gráfica - Introdução ao OpenGL
Computação Gráfica - Introdução ao OpenGLComputação Gráfica - Introdução ao OpenGL
Computação Gráfica - Introdução ao OpenGL
 
Computação Gráfica - Artquitetura de Dispositivos Gráficos
Computação Gráfica - Artquitetura de Dispositivos GráficosComputação Gráfica - Artquitetura de Dispositivos Gráficos
Computação Gráfica - Artquitetura de Dispositivos Gráficos
 
Computação Gráfica - Informações Visuais Óculo-motoras
Computação Gráfica - Informações Visuais Óculo-motorasComputação Gráfica - Informações Visuais Óculo-motoras
Computação Gráfica - Informações Visuais Óculo-motoras
 
Computação Gráfica - Percepção Tridimensional
Computação Gráfica - Percepção TridimensionalComputação Gráfica - Percepção Tridimensional
Computação Gráfica - Percepção Tridimensional
 
Computação Gráfica - Introdução
Computação Gráfica - IntroduçãoComputação Gráfica - Introdução
Computação Gráfica - Introdução
 

Último

Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptxTreinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
MarcosPaulo777883
 
Telepsiquismo Utilize seu poder extrassensorial para atrair prosperidade (Jos...
Telepsiquismo Utilize seu poder extrassensorial para atrair prosperidade (Jos...Telepsiquismo Utilize seu poder extrassensorial para atrair prosperidade (Jos...
Telepsiquismo Utilize seu poder extrassensorial para atrair prosperidade (Jos...
fran0410
 
1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
LeticiaRochaCupaiol
 
Aula Contrato Individual de Trabalho .pdf
Aula Contrato Individual de Trabalho .pdfAula Contrato Individual de Trabalho .pdf
Aula Contrato Individual de Trabalho .pdf
Pedro Luis Moraes
 
Atpcg PEI Rev Irineu GESTÃO DE SALA DE AULA.pptx
Atpcg PEI Rev Irineu GESTÃO DE SALA DE AULA.pptxAtpcg PEI Rev Irineu GESTÃO DE SALA DE AULA.pptx
Atpcg PEI Rev Irineu GESTÃO DE SALA DE AULA.pptx
joaresmonte3
 
epidemias endemia-pandemia-e-epidemia (1).ppt
epidemias endemia-pandemia-e-epidemia (1).pptepidemias endemia-pandemia-e-epidemia (1).ppt
epidemias endemia-pandemia-e-epidemia (1).ppt
MarceloMonteiro213738
 
Aula 2 - Revisando o significado de fração - Parte 2.pptx
Aula 2 - Revisando o significado de fração - Parte 2.pptxAula 2 - Revisando o significado de fração - Parte 2.pptx
Aula 2 - Revisando o significado de fração - Parte 2.pptx
LILIANPRESTESSCUDELE
 
Leonardo da Vinci .pptx
Leonardo da Vinci                  .pptxLeonardo da Vinci                  .pptx
Leonardo da Vinci .pptx
TomasSousa7
 
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
SILVIAREGINANAZARECA
 
UFCD_4667_Preparação e confeção de molhos e fundos de cozinha_índice.pdf
UFCD_4667_Preparação e confeção de molhos e fundos de cozinha_índice.pdfUFCD_4667_Preparação e confeção de molhos e fundos de cozinha_índice.pdf
UFCD_4667_Preparação e confeção de molhos e fundos de cozinha_índice.pdf
Manuais Formação
 
Redação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptxRedação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptx
DECIOMAURINARAMOS
 
Reino-Vegetal plantas e demais conceitos .pptx
Reino-Vegetal plantas e demais conceitos .pptxReino-Vegetal plantas e demais conceitos .pptx
Reino-Vegetal plantas e demais conceitos .pptx
CarinaSantos916505
 
APRESENTAÇÃO PARA AULA DE URGÊNCIA E EMERGÊNCIA
APRESENTAÇÃO PARA AULA DE URGÊNCIA E EMERGÊNCIAAPRESENTAÇÃO PARA AULA DE URGÊNCIA E EMERGÊNCIA
APRESENTAÇÃO PARA AULA DE URGÊNCIA E EMERGÊNCIA
karinenobre2033
 
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIASA SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
HisrelBlog
 
Resumo de Química 10º ano Estudo exames nacionais
Resumo de Química 10º ano Estudo exames nacionaisResumo de Química 10º ano Estudo exames nacionais
Resumo de Química 10º ano Estudo exames nacionais
beatrizsilva525654
 
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptxSlides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
Pintura Romana .pptx
Pintura Romana                     .pptxPintura Romana                     .pptx
Pintura Romana .pptx
TomasSousa7
 
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdfUFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
Manuais Formação
 
A festa junina é uma tradicional festividade popular que acontece durante o m...
A festa junina é uma tradicional festividade popular que acontece durante o m...A festa junina é uma tradicional festividade popular que acontece durante o m...
A festa junina é uma tradicional festividade popular que acontece durante o m...
ANDRÉA FERREIRA
 
Atividade de reforço de matemática 2º ano
Atividade de reforço de matemática 2º anoAtividade de reforço de matemática 2º ano
Atividade de reforço de matemática 2º ano
fernandacosta37763
 

Último (20)

Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptxTreinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
 
Telepsiquismo Utilize seu poder extrassensorial para atrair prosperidade (Jos...
Telepsiquismo Utilize seu poder extrassensorial para atrair prosperidade (Jos...Telepsiquismo Utilize seu poder extrassensorial para atrair prosperidade (Jos...
Telepsiquismo Utilize seu poder extrassensorial para atrair prosperidade (Jos...
 
1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
 
Aula Contrato Individual de Trabalho .pdf
Aula Contrato Individual de Trabalho .pdfAula Contrato Individual de Trabalho .pdf
Aula Contrato Individual de Trabalho .pdf
 
Atpcg PEI Rev Irineu GESTÃO DE SALA DE AULA.pptx
Atpcg PEI Rev Irineu GESTÃO DE SALA DE AULA.pptxAtpcg PEI Rev Irineu GESTÃO DE SALA DE AULA.pptx
Atpcg PEI Rev Irineu GESTÃO DE SALA DE AULA.pptx
 
epidemias endemia-pandemia-e-epidemia (1).ppt
epidemias endemia-pandemia-e-epidemia (1).pptepidemias endemia-pandemia-e-epidemia (1).ppt
epidemias endemia-pandemia-e-epidemia (1).ppt
 
Aula 2 - Revisando o significado de fração - Parte 2.pptx
Aula 2 - Revisando o significado de fração - Parte 2.pptxAula 2 - Revisando o significado de fração - Parte 2.pptx
Aula 2 - Revisando o significado de fração - Parte 2.pptx
 
Leonardo da Vinci .pptx
Leonardo da Vinci                  .pptxLeonardo da Vinci                  .pptx
Leonardo da Vinci .pptx
 
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
 
UFCD_4667_Preparação e confeção de molhos e fundos de cozinha_índice.pdf
UFCD_4667_Preparação e confeção de molhos e fundos de cozinha_índice.pdfUFCD_4667_Preparação e confeção de molhos e fundos de cozinha_índice.pdf
UFCD_4667_Preparação e confeção de molhos e fundos de cozinha_índice.pdf
 
Redação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptxRedação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptx
 
Reino-Vegetal plantas e demais conceitos .pptx
Reino-Vegetal plantas e demais conceitos .pptxReino-Vegetal plantas e demais conceitos .pptx
Reino-Vegetal plantas e demais conceitos .pptx
 
APRESENTAÇÃO PARA AULA DE URGÊNCIA E EMERGÊNCIA
APRESENTAÇÃO PARA AULA DE URGÊNCIA E EMERGÊNCIAAPRESENTAÇÃO PARA AULA DE URGÊNCIA E EMERGÊNCIA
APRESENTAÇÃO PARA AULA DE URGÊNCIA E EMERGÊNCIA
 
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIASA SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
 
Resumo de Química 10º ano Estudo exames nacionais
Resumo de Química 10º ano Estudo exames nacionaisResumo de Química 10º ano Estudo exames nacionais
Resumo de Química 10º ano Estudo exames nacionais
 
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptxSlides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
Slides Lição 11, Central Gospel, Os Mortos Em CRISTO, 2Tr24.pptx
 
Pintura Romana .pptx
Pintura Romana                     .pptxPintura Romana                     .pptx
Pintura Romana .pptx
 
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdfUFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
 
A festa junina é uma tradicional festividade popular que acontece durante o m...
A festa junina é uma tradicional festividade popular que acontece durante o m...A festa junina é uma tradicional festividade popular que acontece durante o m...
A festa junina é uma tradicional festividade popular que acontece durante o m...
 
Atividade de reforço de matemática 2º ano
Atividade de reforço de matemática 2º anoAtividade de reforço de matemática 2º ano
Atividade de reforço de matemática 2º ano
 

Introdução ao paradigma imperativo

  • 1. Introdução ao Paradigma Imperativo Prof. Tony Alexander Hild Paradigmas de Linguagem de Programação – 3 CC – Unicentro – 2013
  • 2. 2 Definição da paradigmaDefinição da paradigma pa·ra·dig·ma (grego parádeigma, -atos) substantivo masculino 1. Algo que serve de exemplo geral ou de modelo. = PADRÃO 2. [Gramática]  Conjunto das formas que servem de modelo de derivação ou de flexão. = PADRÃO 3. [Linguística]  Conjunto dos termos ou elementos que podem ocorrer na mesma posição ou contexto de uma estrutura. "paradigma", in Dicionário Priberam da Língua Portuguesa [em linha], 2008- 2013, http://www.priberam.pt/dlpo/paradigma [consultado em 27-09-2013].
  • 3. 3 Definição de imperativoDefinição de imperativo im·pe·ra·ti·vo adjetivo 1. Que impera ou manda. 2. Autoritário, arrogante. substantivo masculino 3. [Gramática]  Modo do verbo que exprime ordem, exortação ou pedido. 4. Princípio que tem o caráter de obrigação imperiosa. "imperativo", in Dicionário Priberam da Língua Portuguesa [em linha], 2008- 2013, http://www.priberam.pt/dlpo/imperativo [consultado em 27-09-2013].
  • 4. 4 Relembrando a história...Relembrando a história... ● John von Neumann: – Primeira pessoa a documentar os conceitos básicos de computadores de programas armazenados; – Famoso matemático húngaro que foi para os EUA em 1930 e interessou-se por computadores enquanto participava no desenvolvimento da bomba de hidrogênio.
  • 5. 5 O computador “von Neumann”O computador “von Neumann” ● Uma unidade de memória: é capaz de armazenar dados e instruções: – Acesso aleatório; ● Internamente, os dados e as instruções são armazenadas no mesmo espaço de endereço e são indistinguíveis; ● Uma unidade de cálculo (ALU); ● Uma unidade de controle (CPU); – Programa armazenado → conjunto de instruções; ● Dualidade entre instruções e dados → programas podem automodificar-se; ● von Neumann delineou essa estrutura em um documento conhecido como o “First Draft of a Report on the EDVAC” de junho de 1945.
  • 6. 6 O computador “von Neumann”O computador “von Neumann”
  • 7. 7 ● Alan Turing: um matemático britânico e um dos primeiros cientistas da computação; ● Uma linguagem é Turing completa se puder ser utilizada para implementar qualquer algoritmo; ● Muito importante para o estudo da computabilidade. Completude de TuringCompletude de Turing
  • 8. 8 O que torna uma linguagemO que torna uma linguagem imperativa?imperativa? ● Programas escritos em linguagens de programação imperativas consistem em: – Um estado do programa; – Instruções que alteram o estado do programa. ● Instruções do programa são "imperativas", no sentido gramatical dos verbos imperativos que expressam um comando. Primeiro faça isto, depois faça aquilo.
  • 9. 9 ● Primeiras linguagens imperativas: linguagens de montagem (assembly); ● 1954-1955: Fortran (FORmula TRANslator): – John Backus desenvolvido para IBM 704. ● Final de 1950: Algol (ALGOrithmic Language); ● 1958: Cobol (Common Business Oriented Language), desenvolvido por uma comissão do governo, Grace Hopper muito influente. História das Linguagens ImperativasHistória das Linguagens Imperativas
  • 10. 10 Elementos das linguagens imperativasElementos das linguagens imperativas ● Definições de tipo de dados; ● Declarações de variáveis: – São normalmente "tipadas" estaticamente ou dinamicamente: ● Tipos básicos de dados (e.g., int, float, boolean, char); ● Tipos de dados compostos (structs, arrays). ● Expressões e declarações de atribuição; ● Declarações de controle de fluxo (geralmente estruturados); – Desvios condicionais, laços; – As declarações são comandos e sua ordem é fundamental para a execução correta; ● Escopos lexicais e blocos: – Objetivo: proporcionar localidade de referência. ● Declarações e definições de procedimentos e funções (isto é, blocos parametrizados); ● Manipulação de erros e exceções; ● Comandos de E/S; ● Estruturas de dados.
  • 11. 11 Características das linguagensCaracterísticas das linguagens imperativasimperativas ● São Turing completas se suportarem inteiros, operadores aritméticos básicos, atribuições, sequenciamento, laços e desvios condicioanis; ● O estado do programa é mantido em variáveis associadas à localizações de memória: – Endereço e um valor de armazenamento; ● O valor da variável pode ser acessado direta e indiretamente, e pode ser alterado através de um comando de atribuição; – a = 1; – &a = 1; ● Uma atribuição introduz uma dependência de ordem no programa: – o valor de uma variável é diferente antes e depois de um comando de atribuição; – print(a) => 1; – a = 2; dependência de ordem – print(a) => 2;
  • 12. 12 Características das linguagensCaracterísticas das linguagens imperativasimperativas ● Repetição ou laço ou loop: – Usada extensivamente para processar valores ou acumular um valor em uma variável específica; ou – Usada para varrer uma sequência de localizações de memória tal como vetores. ● Funções: – Algoritmos que especificam como processar um intervalo de valores, a partir de um valor de domínio, com uma série de passos prescritos; ● Comandos: – Semelhantes às instruções de máquina nativas de um hardware de computador tradicional - o modelo de von Neumann-Eckley; ● O paradigma imperativo é predominante nas LPs, pois tais linguagens são mais fáceis de traduzir para uma forma adequada para execução na máquina; ● Usa-se abstração procedural e refinamento gradual para melhorar um programa imperativo.
  • 13. 13 Gráfico de fluxoGráfico de fluxo ● Usado para modelar programas imperativos; ● Com base nas três declarações de controle que são essenciais para se obter toda a capacidade de uma máquina de Turing; ● Precursor da UML e outras técnicas modernas; ● Criado para descrever fluxos de processos em geral.
  • 14. 14 Abstração ProceduralAbstração Procedural ● Nicholas Wirth descreveu programas (imperativos) como "algoritmos + estruturas de dados"; ● Algoritmos tornam-se programas através do processo de abstração procedural e refinamento gradual; ● Bibliotecas de funções reutilizáveis facilitam este processo (funções = procedimentos); ● Programação imperativa + procedimentos = programação procedural.
  • 15. 15 ● A abstração procedural permite que o programador se preocupe principalmente com as interfaces entre as funções (procedimentos) e o que elas calculam, ignorando os detalhes de como o cálculo é realizado; ● Abstração permite pensar sobre o que está sendo feito, e não como é implementado. Abstração ProceduralAbstração Procedural
  • 16. 16 Refinamento gradual (passo aRefinamento gradual (passo a passo)passo) ● Refinamento gradual (também chamado de decomposição funcional) utiliza abstração procedural para desenvolver um algoritmo a partir de sua forma mais geral, (a abstração) para sua implementação específica (método top-down); ● Os programadores começam com a descrição do que o programa deve fazer, incluindo E/S, e repetidamente quebram o problema em partes menores, até que os subproblemas possam ser expressados em termos dos estados primitivos e dos tipos de dados da linguagem.
  • 17. 17 ● Uma abordagem disciplinada para projetos de programas imperativos; ● Usa abstração procedural e projeto top-down para identificar os componentes do programa (também chamados de módulos ou estruturas); ● Estruturas do programa combinadas em um número limitado de formas, de modo que a compreensão de como funciona cada estrutura significa entender como funciona o programa; ● O fluxo de controle do programa é baseado em decisões, sequências, laços, mas... – Não usa instruções goto. ● Os módulos são desenvolvidos, testados separadamente e depois integradas no conjunto do programa. Programação EstruturadaProgramação Estruturada
  • 19. 19 AtribuiçõesAtribuições ● Lembre-se: linguagens imperativas operam alterando o estado do programa. Isso é feito usando comandos de atribuição destrutivos. ● Formato geral: – destino = expressão ● Operadores de atribuição: = ou := ● Baseado em operações de máquina, tais como MOV ou STO.
  • 20. 20 Semântica de AtribuiçãoSemântica de Atribuição ● Avalia a expressão para obter um único valor; ● Copia o valor da expressão para o destino; ● Programas imperativos puros implementam a semântica de cópia (em oposição à semântica de referência utilizadas em linguagens orientadas a objetos).
  • 21. 21 ExpressõesExpressões ● Expressões representam um valor e têm um tipo; ● Compreender as expressões significa entender a precedência do operador, sobrecarga de operadores, casting e conversão de tipo, entre outras questões; ● Expressões aritméticas simples são baseados em operadores aritméticos (DIV, MUL, etc) de linguagem de máquina (LM).
  • 22. 22 ExpressõesExpressões ● Os operadores lógicos são baseadas em instruções de LM semelhantes (AND, XOR, …); ● LM suporta tipos de dados indiretamente através de diferentes instruções: – add/sub/mul/div de inteiros vs – add/sub/mul/div de ponto flutuante, por exemplo. ● Internamente, não há maneira visível para distinguir inteiros de ponto flutuantes de caracteres; ● Línguagens a partir do Fortran fornecem alguma proteção contra erros de tipo, e alguma capacidade para definir novos tipos.
  • 23. 23 Linguagens Imperativas X DeclarativasLinguagens Imperativas X Declarativas ● Linguagens imperativas (Java, Pascal, C/C++, C#): – Especificam uma sequência de operações para o computador executar. ● Linguagens declarativas (SQL, Haskell, Prolog) – Descrevem o espaço de soluções; – Fornecem o conhecimento necessário para chegar lá; – Não descrevem os passos necessários para chegar lá. – Linguagens funcionais e linguagens lógicas são declarativas.
  • 24. 24 Vantagens e DesvantagensVantagens e Desvantagens ● Vantagens: – Eficiência (embute o modelo de Von Neumann); – Mais fácil de traduzir para a linguagem de máquina; – Paradigma dominante e bem estabelecido; – Modelagem “Natural” de aplicações do mundo real; – Também é muito flexível. ● Desvantagens: – Descrições demasiadamente operacionais; – Focaliza o “como” e não o “quê”; – Relacionamento indireto com a E/S (indução a erros/estados).
  • 29. 29 CC