Introdução a Informática

Slides:



Advertisements
Apresentações semelhantes
Estruturação de Linguagens (Pascal e C++)
Advertisements

Linguagem de Programação I
Linguagem PASCAL Subprogramas
Parte 1: Organização de Computadores
1.3.2 – Linguagem Assembly Um programa em linguagem de máquina sofre de total falta de clareza O programa é uma sequência de linhas numeradas Cada linha.
Programas e Microprogramas
Arquitetura e organização de computadores
Linguagem de Montagem Visão geral.
Paradigmas de Linguagens Conceitos Básicos
Software Básico Silvio Fernandes
LABORATÓRIO DE PROGRAMAÇÃO
Algoritmos e Programação Linguagens de Programação Teoria Aula 5 (05/05) Universidade Federal do Vale do São.
Introdução a Programação Renata Freire
Introdução à Compilação Prof. Leandro Magno Slides adaptados a partir do material cedido pelos professores Heloise Manica Paris Teixeira, Yandre M. G.
Prof. Heloise Manica Paris Teixeira
INTRODUÇÃO À PROGRAMAÇÃO
Introdução à Programação Pascal - Começando Prof. Filipo Studzinski Perotto 2009.
Basic e Visual Basic.NET
Sistemas Digitais Microprocessados
Curso Sistemas de Informação Disciplina: Arquitetura de Software
Softwares.
Universidade Federal do Espírito Santo
Arquitetura de Computadores
Linguagens de Programação
LINGUAGEM C Centro Federal de Educação Tecnológica da Paraíba Coordenação de Informática Professor: Lafayette B. Melo.
Introdução a Linguagem de Programação C
O Portal do Estudante de Computação
Professor Fernando Luís
Paradigmas de programação
INTRODUÇÃ A COMPUTAÇÃO ENG. CIVIL
Lógica de Programação UNIDADE 1 – Introdução a) Computador
O Portal do Estudante de Computação
PROGRAMAÇÃO I UNIDADE 1.
Sub-programas. Mecanismo de composição de programas Sub-programa está para peça de LEGO assim como um programa está para a construção.
PCI- Introdução à Computação
Introdução a Programação
Introdução ao uso de vatores na linguagem PASCAL.
Fábio de Oliveira Borges
Algoritmos 1º Semestre Materia: Informática Profº: Cristiano.
PROGRAMAÇÃO ESTRUTURADA (MODULARIZAÇÃO/SUBPROGRAMAÇÃO)
Organização e Arquitetura de Computadores
Algoritmo e Programação
02/08/2011 Professor Leomir J. Borba- –
Capítulo III Modularização Procedimentos e Funções Universidade Federal de São Carlos Departamento de Computação Aluna: Luanna Lopes Lobato
Linguagem Pascal Prof. Sérgio Rodrigues.
Lógica Estruturada Aplicada
Geração de Código aula-12-geração-de-código.pdf.
Paradigmas de Linguagens de Programação
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Projeto de Linguagens de Programação
Algumas notas sobre a linguagem de programação C
Aula01 – Técnicas de Programação II
Programação de computadores Prof. Giovanni Castro.
PCS - Departamento de Engenharia de Computação e Sistemas Digitais Projeto de Formatura – Turmas 2010 Integrantes: Professor Orientador: Co-orientador:
Critérios de Avaliação das Linguagens de Programação
Fundamentos de linguagens de programação
Introdução à Computação - Jorge Macêdo1 ICC – Software Jorge Macêdo.
Programação de Computadores - 1
Introdução à Programação
Linguagens de Programação
Evolução das Principais Linguagens de Programação
Linguagem de Programação I PARTE i
Paradigmas das Linguagens de Programação - História
Linguagens de Programação Pedro Lopes MÓDULO 4- Subprogramas (Procedimentos e Funções) 2010/2011.
Disciplina: Lógica de Programação
Computadores vs. Programas / Algoritmos Computadores vs. Programas -> Algoritmos O tratamento de problemas através do computador geralmente envolve uma.
COMPILADORES 02 Prof. Marcos. COMPILADORES Do Programa à Execução Computadores das mais variadas arquiteturas têm funcionamento:
Ewerton Patrick, Fernando Henrique, Jéssica Rebeca.
Programação e Sistemas da Informação 48 tempos IPTrans, Novembro 2009 Prof. Marisa Gomes.
Lógica de Programação Aula 06 Prof. Marcelo Marcony.
Transcrição da apresentação:

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

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.

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

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.

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

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

Linguagens de baixo nível Cada processador possui um conjunto diferente de instruções. Por isso, uma linguagem Assembler para cada tipo de processador A mesma aplicação necessita de um código para cada tipo de processador

Linguagens Não-Estruturadas Não estão vinculadas aos processadores Considerável avanço para o desenvolvimento de sistemas em termos qualitativos, quando comparadas à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)

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

Linguagens procedurais A principal característica é a existência de algoritmos que determinam uma seqüência de chamadas de procedimentos, constituindo um programa As mais comuns são C, Pascal e Fortran; outras mais sofisticadas são Ada, Modula-2 e Modula-3

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

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

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

A linguagem Ada: A linguagem Modula-2 A linguagem Modula-3 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

Algoritmos Representação de Algoritmos: Pseudo-Linguagem Algoritmos podem ser representados de duas maneiras: a) uma mais próxima (entendida) pelas pessoas b) 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

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.

Pascal – Estrutura Principal A estrutura principal de um programa em pascal se apresenta da seguinte forma: program cabeçalho; declarações begin Comandos end.

Exemplo program exe1; var a, b : real; k : char; begin a := 3.2; 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

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 comandos da function . nome := X;

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

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 acumul := acumul * i; i := i + 1; end; fatorial := acumul; write('Digite o valor de N: '); readln(N); writeln('O valor do Fatorial de ',N , ' é = ', fatorial); end.

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.

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); }

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 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;

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

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

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)

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, …

Números de Fibonacci em Prolog • Fib(n,F1+F2):-Fib(n-1,F1), Fib(n-2,F2). • ? Fib(10, F). F = 55.

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

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.

Linguagens Orientadas a Objetos 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

Linguagens Orientadas a Objetos 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

Linguagens Orientadas a Objetos 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

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

Linguagens Orientadas a Objetos

Linguagens Orientadas a Objetos

Processo de Execução de um Programa Programa inicial (alto nível) Programa Compilador Código Objeto (Linguagem de máquina) Open file_entrada Read A,B,C While not eof(file_entrada) do K=A+B-C point A,B,C,X read A,B,C End while Close file_entrada Compilação 1011 0011 0000 0011 1010 0000 0000 0100 1110 0000 0000 1000 ..................................... 1111 0000 0000 0000

Fluxograma do processo de execução de um programa Programa fonte Compilação Compilador Código Objeto Ligação Ligador Código Executável Execução Carregador

Compilação X Interpretaçã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.

Compilação X 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.

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.

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

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)

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

Linguagens de quarta geração ou visuais 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

Linguagens de quarta geração ou visuais 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.