Linguagens de Programação Paradigma Imperativo Matheus Hafner Tiago Xavier CET 087 - Conceitos de Linguagens de Programação (CLP) 10 de novembro de 2011
Sumário 1 Introdução 2 Paradigma imperativo Modelo computacional Características centrais 3 Características das linguagens 4 Linguagens imperativas não estruturadas 5 Linguagens imperativas estruturadas 6 Aula prática Linguagem de programação Lua Linguagem de programação FORTRAN 7 Referências
Paradigmas de programação Conceito Modelo padrão ou estilo de programação suportado por linguagens que agrupam certas características em comum.
Paradigmas de programação Conceito Modelo padrão ou estilo de programação suportado por linguagens que agrupam certas características em comum. Gramática e significado bem definidos
Paradigmas de programação Conceito Modelo padrão ou estilo de programação suportado por linguagens que agrupam certas características em comum. Gramática e significado bem definidos Implementável com eficiência aceitável
Paradigmas de programação Conceito Modelo padrão ou estilo de programação suportado por linguagens que agrupam certas características em comum. Gramática e significado bem definidos Implementável com eficiência aceitável Universal
Paradigmas de programação Exemplos Imperativo
Paradigmas de programação Exemplos Imperativo Orientado a objetos
Paradigmas de programação Exemplos Imperativo Orientado a objetos Funcional
Paradigmas de programação Exemplos Imperativo Orientado a objetos Funcional Lógico
Paradigma imperativo Programas são centrados no conceito de um estado e ações que manipulam o estado
Paradigma imperativo Programas são centrados no conceito de um estado e ações que manipulam o estado Denominado procedural por incluir sub-rotinas ou procedimentos como mecanismo de estruturação
Paradigma imperativo Primeiro paradigma a surgir
Paradigma imperativo Primeiro paradigma a surgir Linguagens baseadas em comandos ou orientada a atribuições
Modelo computacional Modelo computacional A arquitetura dos computadores sempre influenciaram o projeto das linguagens de programação
Modelo computacional Modelo computacional A arquitetura dos computadores sempre influenciaram o projeto das linguagens de programação A maioria das linguagens de programação foram projetadas em torno da arquitetura do computador
Modelo computacional Modelo computacional A arquitetura dos computadores sempre influenciaram o projeto das linguagens de programação A maioria das linguagens de programação foram projetadas em torno da arquitetura do computador Arquitetura de Von Neumann
Modelo computacional Arquitetura de Von Neumann Dados e programas são armazenados na mesma memória
Modelo computacional Arquitetura de Von Neumann Dados e programas são armazenados na mesma memória CPU é quem executa as intruções
Modelo computacional Arquitetura de Von Neumann Dados e programas são armazenados na mesma memória CPU é quem executa as intruções Instruções ou dados são transmitidos da memória para CPU
Modelo computacional Arquitetura de Von Neumann Dados e programas são armazenados na mesma memória CPU é quem executa as intruções Instruções ou dados são transmitidos da memória para CPU O resultado das operações na CPU são devolvidos para memória
Características centrais Características centrais Variáveis, modelam as células de memória
Características centrais Características centrais Variáveis, modelam as células de memória Comandos de atribuição, baseado nas operações de transferência dos dados e instruções
Características centrais Características centrais Execução sequencial de instruções
Características centrais Características centrais Execução sequencial de instruções Forma iterativa de repetição
Características centrais Vantagens Eficiência
Características centrais Vantagens Eficiência Mais fácil de traduzir para linguagem de máquina
Características centrais Vantagens Eficiência Mais fácil de traduzir para linguagem de máquina Modelagem natural de aplicações do mundo real
Características centrais Vantagens Eficiência Mais fácil de traduzir para linguagem de máquina Modelagem natural de aplicações do mundo real Paradigma dominante e bem estabelecido
Características centrais Desvantagens Descrições demasiadamente operacionais
Características centrais Desvantagens Descrições demasiadamente operacionais Geralmente erros são introduzidos durante a manutenção
Características centrais Exemplos de linguagens imperativas BASIC ADA Python ALGOL Modula
Características centrais Exemplos de linguagens imperativas BASIC ADA C Python ALGOL Modula
Características centrais Exemplos de linguagens imperativas BASIC COBOL ADA C Python ALGOL Modula
Características centrais Exemplos de linguagens imperativas BASIC COBOL ADA Pascal C Python ALGOL Modula
Características centrais Exemplos de linguagens imperativas FORTRAN BASIC COBOL ADA Pascal C Python ALGOL Modula Lua
FORTRAN Valores e tipo: integer, real, double precision, complex, logical; vetor: dimension -nome- (dim1, dim2, dim3), real, integer; constantes lógicas:.true.,.false.
FORTRAN Expressões: **, *, /, +, -,.ge.,.gt.,.le.,.lt.,.eq.,.ne.,.not.,.and.,.or.
Estruturas de controle: if (-exp-) then... end if if (-exp-)... else if (-exp-) then... else... end if... end if Comandos I/O: open, close, read, write, print, rewind, endfile Comandos: goto, continue, pause, stop FORTRAN
FORTRAN Declarações: declaração var.: -tipo- -id-
FORTRAN Procedimenntos e funções: function -id- (-parâm.-) procedure -id- (-p.-)
Pascal Valores e tipo: boolean, integer, char, real; array, file, record, set
Pascal Expressões: boolean: and, or, not, xor integer: +, -, *, div, mod, =, =,. abs, sqr, trunc, round string: var a: string; a = abc ; file: type arq = file of integer;
Pascal Estruturas de controle: comandos simples: write, writeln, read, clrscr, gotoxy, delay, readkey, upcase if-then, if-then-else case -exp- of case -op1-: case -op2-: else end for x := -inic- to downto -fim- do while -cond- do begin... end;
Pascal Declarações: var -id-: -tipo-;
Pascal Procedimentos e funções: procedure -id- (-parâm.-); function -id- (-parâm.-): -tipo-;
ADA Valores e tipo: array: -id- array(x..y) of -tipo- integer, natural, positive, character, boolean, string: type string is array(x..y) of character; float
ADA Expressões: =, /=,, =, +,, abs, **, and, or, xor, not
Estruturas de controle: if -cond- then case -exp- is elsif -cont- then -alt. 1- else -alt. 2- end if; end case; when -lista escolha- = -com.- when -others- = -comandoswhile -cond.- loop -comandosend loop; for -id- in -interv- loop ADA
ADA Declarações: -id-: -tipo-;
ADA Procedimentos e funções: procedure -id- (-parâm-) is function -id- (-p.-) return -tipo-
Linguagens imperativas não estruturadas Caracterizadas pela utilização da instrução goto
Linguagens imperativas não estruturadas Caracterizadas pela utilização da instrução goto goto usado para determinar repetição e seleção
Linguagens imperativas não estruturadas Caracterizadas pela utilização da instrução goto goto usado para determinar repetição e seleção Leva ao indesejado goto código spaguetti
Linguagens imperativas não estruturadas Caracterizadas pela utilização da instrução goto goto usado para determinar repetição e seleção Leva ao indesejado goto código spaguetti Exemplos FORTRAN Assembly BASIC
Linguagens imperativas estruturadas Surgiu com o objetivo de facilitar a leitura e o acompanhamento da execução de algoritmos
Linguagens imperativas estruturadas Surgiu com o objetivo de facilitar a leitura e o acompanhamento da execução de algoritmos goto foi demitido
Linguagens imperativas estruturadas Surgiu com o objetivo de facilitar a leitura e o acompanhamento da execução de algoritmos goto foi demitido Instruções agrupadas em blocos
Linguagens imperativas estruturadas Blocos de instruções podem ser selecionados usando if...else ou repetidamente executados usando while ou for
Linguagens imperativas estruturadas Blocos de instruções podem ser selecionados usando if...else ou repetidamente executados usando while ou for Procedurais e modulares
Linguagem de programação Lua Lua
Linguagem de programação FORTRAN FORTRAN
Referências 1