SlideShare uma empresa Scribd logo
1 de 30
Fundamentos da Computação

Linguagem de Programação da Computação



                         Prof. Edson Lima
                       edsonprof@uninove.br
Processo de Desenvolvimento um Software


Projeto da
              Identificar         Identificar
arquitetura   classes e objetos   relacionamentos



Refinamento                         Projeto
                                    detalhado


              Teste/integração     Implemen-
 Teste do     de unidades          tação
 sistema
Linguagem de Programação


   Para que se possa fazer alguém executar uma ordem é
    necessário que esta pessoa fale o mesmo idioma de quem
    mandou a ordem ou que haja um interprete para fazer a
    tradução.

   De maneira semelhante funciona o computador. Para
    mandarmos que ele execute uma função ou processamento
    ou damos a ordem em linguagem de máquina (binário) ou
    utilizamos interpretes para que eles façam a tradução.
Linguagem de Programação


   As linguagens de programação são softwares destinados a
    traduzir comandos, de uma linguagem mais próxima do
    programador, para a linguagem binária.

   As linguagens de programação são classificadas de acordo
    com a geração e o nível de entendimento do programador.
         • Linguagem de Máquina → Código Binário

         • Linguagem Procedural

         • Linguagem Orientada a Objeto
Linguagem de Programação - Geração


   Linguagem da 1ª geração: Linguagem de máquina ou absoluta;

   Linguagem da 2ª geração: Linguagem montadora (assembler) ou de
    baixo nível;

   Linguagem da 3ª geração: Linguagem de alto nível, orientada para os
    procedimentos;

   Linguagem da 4ª geração: Linguagem de altíssimo nível, orientada
    para um problema específico. Classificam-se em linguagem de
    consulta, geradoras de aplicação e outras.
Linguagem de Programação Alto Nível


   A linguagem de alto nível, teoricamente, independe to tipo de
    computador.

   O tempo de treinamento para a formação de programadores é,
    relativamente, curto.

   Baixo custo para a elaboração e manutenção de programas.

   Possíveis vantagens da arquitetura interna da máquina não são
    adequadamente aproveitadas.
Linguagem de Programação Alto Nível

 Tempo de compilação e execução do programa é maior.


 Ocupa mais memória para armazenar e executar o programa


 Linguagens de alto nível → São linguagens próximas da linguagem
  do homem. Exemplo: Cobol, Pascal, C.


 Linguagem de alto nível de quarta geração → São as linguagens
  utilizadas com objetos visuais tais como: Visual Basic, Delphi,
  Visual C++, C++.
Linguagem de Programação Baixo Nível


   O tempo de treinamento para a formação de programadores é bem
    mais demorado

   Alto custo para a elaboração e manutenção de programas.

   Possibilidade de utilizar as vantagens da arquitetura interna da
    máquina
Linguagem de Programação Baixo Nível



   Ocupa menos memória para armazenar e executar o programa

   Linguagem de máquina → Código Binário

   Tempo de compilação e execução do programa é menor
Linguagem de Programação

                      Forma de Tradução

 Interpretadas → São as linguagens que cujo tradutor somente
  transforma em linguagem de máquina somente a parte do texto a ser
  executada.
   – Exemplo: HTML, JavaScript, PERL.

 Compiladas → São as linguagens compiladas são aquelas que todo o
  código do programa é traduzido criando um novo arquivo em
  linguagem de máquina.
   – Exemplos: Visual Basic, Delphi, Pascal, C, Cobol.
Compiladores e Interpretadores
Introdução
• Compilador: software básico de computador
  capaz de traduzir uma linguagem de alto
  nível (código fonte) em outra mais simples
  (código destino ou executável)


   Código                           Código
                  Compilador
    fonte                           destino


                  Mensagens
                   de erro
Construção de Compiladores



 Os próprios compiladores são escritos em alguma
  linguagem de programação e são programas bastante
  complexos;

 Usualmente precisa-se de alguns homens-ano para se
  escrever um.
Construção de Compiladores



 Assim, é uma boa idéia usar-se o computador como uma
  ferramenta para nos ajudar a escrever compiladores.

 Geradores de compiladores, como se pode inferir a partir
  do nome, são usados com este objetivo (tais geradores são
  às vezes denominados compiladores de compiladores).
Componentes de um Compilador



O objetivo inicial é verificar se o programa está
sintaticamente correto; por exemplo, em Pascal os
comandos devem ser separados por ponto e vírgula, se isto
não for feito a análise sintática emitirá uma mensagem de
erro e a compilação do programa não terá sucesso.
Componentes de um Compilador


A segunda parte do compilador, verifica se o programa
(já sintaticamente correto) está correto do ponto de
vista de contexto e tipos; por exemplo, em Pascal é um
erro somar o número `3´ com o valor booleano `true´,
ou usar a variável `x´ sem uma declararação prévia da
mesma.
Componentes de um Compilador



Finalmente, a terceira parte do compilador executa
a tradução do programa-fonte em um programa-
objeto expresso em linguagem de máquina;
geralmente um comando do programa-fonte é
traduzido para vários “comandos” em linguagem
de máquina.
Programas Tradutores Compiladores



 Os compiladores, dependendo da linguagem e do sistema operacional
  utilizado, poderão envolver algumas etapas intermediárias.

 Com o uso , por exemplo, de funções matemáticas (que nada mais
  são do que pequenas sub-rotinas), o compilador precisará
  complementar o seu programa, já traduzido, com estas rotinas.
Programas Tradutores Interpretadores


 Os interpretadores não exigem a criação de um novo arquivo.
 Ele opera à partir do arquivo original (fonte) produzido pelo
  programador.
 O que o interpretador faz é ler o texto do programa e proceder
  conforme um vocabulário de palavras-chave.
 Com esta filosofia, o interpretador passa a maior parte do tempo
  lendo e traduzindo textos.
 Se o programa executa uma certa instrução mais de uma vez, o
  interpretador traduz a instrução cada vez que a encontra, tantas vezes
  quantas forem necessárias.
Compiladores e Interpretadores


 O compilador traduz todo o programa para a linguagem de
  máquina antes de sua execução pelo computador.

 Já o interpretador traduz somente trecho do programa que
  será executado em seguida, normalmente uma linha.

 Após a execução da linha, ele traduz a próxima que será
  executada e assim , sucessivamente, até o final do
  programa .
Programas Tradutores


 Montador
  – E programa que converte os códigos da linguagem assembly ou
    de baixo nível para a linguagem de máquina.

 Compilador
  – E o programa que traduz um programa escrito em linguagem de
    alto nível para um programa em código de máquina.

 Interpretador
  – E o programa residente que faz a tradução e a imediata execução
      de instrução a instrução de um programa escrito em linguagem de
      alto nível.
Programas Tradutores



Ling. fonte de     Compilador       Linguagem
                                    de máquina    Execução     Resultado
  alto nível        (compiler)




                   Interpretador                 Linguagem
Ling. fonte de                                   de máquina   Resultado
  alto nível        (interpreter)
                                                  Execução




Ling. fonte de     Montador         Linguagem
                                                 Execução     Resultado
 baixo nível      (assembler)       de máquina
Programa Link-Editor



Este programa normalmente é chamado "link-
editor" e deve ser executado após a compilação
inicial para, finalmente, gerar o programa em
Linguagem de Máquina, pronto para ser
executado.
Vantagens dos Compiladores



Como o compilador gerar programas prontos para
serem executados pela máquina traz como principal
vantagem a velocidade com a qual estes programas
serão executados no computador, velocidade muito
maior do que os programas interpretados, que são
traduzidos passo a passo.
Vantagens dos Interpretadores



Por outro lado, os interpretadores oferecem maior
facilidade no processo de desenvolvimento do
programa, pois o programador pode imediatamente
testar o resultado do que está fazendo
Compiladores e Interpretadores


 Infelizmente o processo de compilação é muito lento. Por este
  motivo, o uso de compiladores para desenvolvimento e testes de
  programas é altamente desaconselhável.


 Quando o programa estiver pronto (testado e verificado com o
  interpretador), é interessante compilá-lo para obter maiores
  velocidades de execução.
Compiladores e Interpretadores


 De modo geral, podemos definir que os interpretadores são mais
  indicados para utilização durante o processo de desenvolvimento de
  programas.

 Os compiladores, por sua vez, devem ser acionados para produzir o
  programa executável final, ou seja, o produto acabado, que será
  efetivamente executado no computador.

 Atualmente, a maior parte das linguagens de programação
  encontram-se disponíveis tanto com compiladores, como com
  interpretadores.
Ciclo de Desenvolvimento de Programas



 1º Entrar com todo o programa no computador (Programa Fonte)

 2º Compilar o programa, traduzindo para a linguagem de
  máquina (Programa Objeto);

 3º Executar o programa. Caso ocorra algum erro, deve-se efetuar
  as correções correspondentes e voltar ao passo 2, até que não
  existam mais alterações a serem feitas
Programa                  Compilador                Executável

Programa escrito em      Compilador é um           Programa que pode ser
linguagem de alto        programa específico       utilizado em qualquer
nível; é utilizado um    para uma determinada      equipamento que
editor de textos;        linguagem, que lê as      atenda as
o arquivo possui uma     instruções escritas em    especificações de pré-
extensão que             alto nível e se não       requisitos para
identifica o tipo de     houver nenhum erro de     utilização, é um
linguagem utilizada;     sintaxe ele as            arquivo que pode ser
ex. teste.pas (pascal)   transcreve para           compreendido pela
     teste.cob (cobol)   instruções similares em   máquina.
    teste.vbp (visual    linguagem de máquina.     Um arquivo executável
basic)                                             possui extensão .exe.
Software Resumo
                                         Softwares
                                         Específicos
                  Software Aplicativo
 -Assembler                              de usuários
 -C++
 -Cobol
                                        Sistema
 -Visual Basic
                                        Operacional

                                         Utilitários:
                  Software de Sistema
Compilador e                             Monitor
Tradutores
                                         Editor
                      Hardware
                                         Carregador

Mais conteúdo relacionado

Mais procurados

Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareCloves da Rocha
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em pptAndrei Bastos
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programaçãoessa
 
Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4Luis Ferreira
 
Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Gercélia Ramos
 
Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1Pacc UAB
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionaisvini_campos
 
Exercício 1 powerpoint
Exercício 1 powerpointExercício 1 powerpoint
Exercício 1 powerpointCarlos Melo
 
Introdução a engenharia de software aula 01
Introdução a engenharia de software   aula 01Introdução a engenharia de software   aula 01
Introdução a engenharia de software aula 01Franklin Matos Correia
 
Curso básico de informática
Curso básico de informáticaCurso básico de informática
Curso básico de informáticaRony Oliveira
 
Aula 01 - Sistemas Operacionais - Windows 10
Aula 01 - Sistemas Operacionais - Windows 10Aula 01 - Sistemas Operacionais - Windows 10
Aula 01 - Sistemas Operacionais - Windows 10LucasMansueto
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPDaniel Brandão
 
Apostila Microsoft Office Word 2016
Apostila Microsoft Office Word 2016Apostila Microsoft Office Word 2016
Apostila Microsoft Office Word 2016Cibele Kanegae
 

Mais procurados (20)

Algoritmos - capítulo 1
Algoritmos - capítulo 1Algoritmos - capítulo 1
Algoritmos - capítulo 1
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de Software
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em ppt
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programação
 
Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4Arquitetura de computadores Módulo 4
Arquitetura de computadores Módulo 4
 
Manual word avançado
Manual word avançadoManual word avançado
Manual word avançado
 
Minicurso de App Inventor
Minicurso de App InventorMinicurso de App Inventor
Minicurso de App Inventor
 
Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)
 
Aula 2 - Processos de Software
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de Software
 
Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1
 
Informática Básica - Aula 04 - Software
Informática Básica - Aula 04 - SoftwareInformática Básica - Aula 04 - Software
Informática Básica - Aula 04 - Software
 
Python - Introdução
Python - IntroduçãoPython - Introdução
Python - Introdução
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Exercício 1 powerpoint
Exercício 1 powerpointExercício 1 powerpoint
Exercício 1 powerpoint
 
Introdução a engenharia de software aula 01
Introdução a engenharia de software   aula 01Introdução a engenharia de software   aula 01
Introdução a engenharia de software aula 01
 
Curso básico de informática
Curso básico de informáticaCurso básico de informática
Curso básico de informática
 
Aula 01 - Sistemas Operacionais - Windows 10
Aula 01 - Sistemas Operacionais - Windows 10Aula 01 - Sistemas Operacionais - Windows 10
Aula 01 - Sistemas Operacionais - Windows 10
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
 
Apostila Microsoft Office Word 2016
Apostila Microsoft Office Word 2016Apostila Microsoft Office Word 2016
Apostila Microsoft Office Word 2016
 
Aula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e PseudocódigoAula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e Pseudocódigo
 

Destaque

Linguagens de Programação
Linguagens de ProgramaçãoLinguagens de Programação
Linguagens de Programação12anogolega
 
Informatica e Educação
Informatica e EducaçãoInformatica e Educação
Informatica e Educaçãojulieta lamarao
 
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
 
TGI 2006 - Programação Visual
TGI 2006 - Programação VisualTGI 2006 - Programação Visual
TGI 2006 - Programação Visualtapmorales
 
Aula 01 apresentação peças
Aula 01   apresentação peçasAula 01   apresentação peças
Aula 01 apresentação peçasHailton Lopes
 
Ii -eletronica_digital_parte_2_v1.0
Ii  -eletronica_digital_parte_2_v1.0Ii  -eletronica_digital_parte_2_v1.0
Ii -eletronica_digital_parte_2_v1.0semprealex
 
Linguagem de Programação
Linguagem de ProgramaçãoLinguagem de Programação
Linguagem de Programaçãomoiplabs
 
PráTica De Ensino De Algoritmo Volume 1 e 2
PráTica De Ensino De Algoritmo Volume 1 e 2PráTica De Ensino De Algoritmo Volume 1 e 2
PráTica De Ensino De Algoritmo Volume 1 e 2Albérico Henrique
 
Utilizando software livre para alta disponibilidade de sistemas web Java
Utilizando software livre para alta disponibilidade de sistemas web JavaUtilizando software livre para alta disponibilidade de sistemas web Java
Utilizando software livre para alta disponibilidade de sistemas web JavaAdriel Viana
 
Homologação de ambiente de alta disponibilidade para os sistemas SIG da UFRN
Homologação de ambiente de alta disponibilidade para os sistemas SIG da UFRNHomologação de ambiente de alta disponibilidade para os sistemas SIG da UFRN
Homologação de ambiente de alta disponibilidade para os sistemas SIG da UFRNEdmilson Júnior
 
Do alto para o baixo nível - Entendendo as Diferenças
Do alto para o baixo nível - Entendendo as DiferençasDo alto para o baixo nível - Entendendo as Diferenças
Do alto para o baixo nível - Entendendo as DiferençasWelington Sampaio
 
Apostila lã³gica de programaã§ã£o
Apostila lã³gica de programaã§ã£oApostila lã³gica de programaã§ã£o
Apostila lã³gica de programaã§ã£oWELINGTON SILVA
 
Manual de som profissional
Manual de som profissionalManual de som profissional
Manual de som profissionalAllan Pereira
 

Destaque (20)

Linguagem da programação
Linguagem da programaçãoLinguagem da programação
Linguagem da programação
 
Linguagens de Programação
Linguagens de ProgramaçãoLinguagens de Programação
Linguagens de Programação
 
Informatica e Educação
Informatica e EducaçãoInformatica e Educação
Informatica e Educação
 
Software
SoftwareSoftware
Software
 
Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.
 
TGI 2006 - Programação Visual
TGI 2006 - Programação VisualTGI 2006 - Programação Visual
TGI 2006 - Programação Visual
 
Aula 01 apresentação peças
Aula 01   apresentação peçasAula 01   apresentação peças
Aula 01 apresentação peças
 
Ii -eletronica_digital_parte_2_v1.0
Ii  -eletronica_digital_parte_2_v1.0Ii  -eletronica_digital_parte_2_v1.0
Ii -eletronica_digital_parte_2_v1.0
 
Disco rigidos
Disco rigidosDisco rigidos
Disco rigidos
 
Linguagem de Programação
Linguagem de ProgramaçãoLinguagem de Programação
Linguagem de Programação
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programação
 
PráTica De Ensino De Algoritmo Volume 1 e 2
PráTica De Ensino De Algoritmo Volume 1 e 2PráTica De Ensino De Algoritmo Volume 1 e 2
PráTica De Ensino De Algoritmo Volume 1 e 2
 
Utilizando software livre para alta disponibilidade de sistemas web Java
Utilizando software livre para alta disponibilidade de sistemas web JavaUtilizando software livre para alta disponibilidade de sistemas web Java
Utilizando software livre para alta disponibilidade de sistemas web Java
 
Homologação de ambiente de alta disponibilidade para os sistemas SIG da UFRN
Homologação de ambiente de alta disponibilidade para os sistemas SIG da UFRNHomologação de ambiente de alta disponibilidade para os sistemas SIG da UFRN
Homologação de ambiente de alta disponibilidade para os sistemas SIG da UFRN
 
Do alto para o baixo nível - Entendendo as Diferenças
Do alto para o baixo nível - Entendendo as DiferençasDo alto para o baixo nível - Entendendo as Diferenças
Do alto para o baixo nível - Entendendo as Diferenças
 
Apostila lã³gica de programaã§ã£o
Apostila lã³gica de programaã§ã£oApostila lã³gica de programaã§ã£o
Apostila lã³gica de programaã§ã£o
 
Manual de som profissional
Manual de som profissionalManual de som profissional
Manual de som profissional
 
Compiladores 1
Compiladores 1Compiladores 1
Compiladores 1
 
VPN - Redes de Computadores
VPN - Redes de ComputadoresVPN - Redes de Computadores
VPN - Redes de Computadores
 
Apostila algoritmos
Apostila algoritmosApostila algoritmos
Apostila algoritmos
 

Semelhante a Fundamentos da Computação e Linguagens de Programação

Int. sistemas de informação iii
Int. sistemas de informação iiiInt. sistemas de informação iii
Int. sistemas de informação iiiRay Fran Pires
 
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Leinylson Fontinele
 
Aula 03 - Interpretador [mr_@@@@@].pdf
Aula 03 - Interpretador [mr_@@@@@].pdfAula 03 - Interpretador [mr_@@@@@].pdf
Aula 03 - Interpretador [mr_@@@@@].pdfmouzinhoconcursos
 
Construção de compiladores - introducao Compilador.pdf
Construção de compiladores - introducao Compilador.pdfConstrução de compiladores - introducao Compilador.pdf
Construção de compiladores - introducao Compilador.pdfGerhard Saboia
 
Aula 3 compiladores e interpretadores
Aula 3   compiladores e interpretadoresAula 3   compiladores e interpretadores
Aula 3 compiladores e interpretadoresLCCIMETRO
 
Linguágens de programação
Linguágens de programaçãoLinguágens de programação
Linguágens de programaçãoAlbertoVach
 
linguagens_de_programacao.ppt
linguagens_de_programacao.pptlinguagens_de_programacao.ppt
linguagens_de_programacao.pptJadna Almeida
 
Programação 1
Programação 1Programação 1
Programação 1essa
 
Linguagem de programação
Linguagem de programaçãoLinguagem de programação
Linguagem de programaçãoSandro Lopes
 
Aula 2 programas e linguagens de programação
Aula 2   programas e linguagens de programaçãoAula 2   programas e linguagens de programação
Aula 2 programas e linguagens de programaçãoLCCIMETRO
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09essa
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09essa
 
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdfparadigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdfAndreiaCristinaFlore
 

Semelhante a Fundamentos da Computação e Linguagens de Programação (20)

Int. sistemas de informação iii
Int. sistemas de informação iiiInt. sistemas de informação iii
Int. sistemas de informação iii
 
Paradigmas de Linguagem
Paradigmas de LinguagemParadigmas de Linguagem
Paradigmas de Linguagem
 
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
 
Aula 03 - Interpretador [mr_@@@@@].pdf
Aula 03 - Interpretador [mr_@@@@@].pdfAula 03 - Interpretador [mr_@@@@@].pdf
Aula 03 - Interpretador [mr_@@@@@].pdf
 
Construção de compiladores - introducao Compilador.pdf
Construção de compiladores - introducao Compilador.pdfConstrução de compiladores - introducao Compilador.pdf
Construção de compiladores - introducao Compilador.pdf
 
Aula 3 compiladores e interpretadores
Aula 3   compiladores e interpretadoresAula 3   compiladores e interpretadores
Aula 3 compiladores e interpretadores
 
Lp m2(parte1)
Lp m2(parte1)Lp m2(parte1)
Lp m2(parte1)
 
Linguagem da programação
Linguagem da programaçãoLinguagem da programação
Linguagem da programação
 
Linguágens de programação
Linguágens de programaçãoLinguágens de programação
Linguágens de programação
 
linguagens_de_programacao.ppt
linguagens_de_programacao.pptlinguagens_de_programacao.ppt
linguagens_de_programacao.ppt
 
Aula01 - Analise e Programação
Aula01 - Analise e ProgramaçãoAula01 - Analise e Programação
Aula01 - Analise e Programação
 
Programação 1
Programação 1Programação 1
Programação 1
 
Linguagem de programação
Linguagem de programaçãoLinguagem de programação
Linguagem de programação
 
Aula 2 programas e linguagens de programação
Aula 2   programas e linguagens de programaçãoAula 2   programas e linguagens de programação
Aula 2 programas e linguagens de programação
 
Apostila c
Apostila cApostila c
Apostila c
 
Lp m2
Lp m2Lp m2
Lp m2
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
 
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdfparadigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
paradigmasdlsksmmskskkekekekekedmmmdmdmmf.pdf
 

Fundamentos da Computação e Linguagens de Programação

  • 1. Fundamentos da Computação Linguagem de Programação da Computação Prof. Edson Lima edsonprof@uninove.br
  • 2. Processo de Desenvolvimento um Software Projeto da Identificar Identificar arquitetura classes e objetos relacionamentos Refinamento Projeto detalhado Teste/integração Implemen- Teste do de unidades tação sistema
  • 3. Linguagem de Programação  Para que se possa fazer alguém executar uma ordem é necessário que esta pessoa fale o mesmo idioma de quem mandou a ordem ou que haja um interprete para fazer a tradução.  De maneira semelhante funciona o computador. Para mandarmos que ele execute uma função ou processamento ou damos a ordem em linguagem de máquina (binário) ou utilizamos interpretes para que eles façam a tradução.
  • 4. Linguagem de Programação  As linguagens de programação são softwares destinados a traduzir comandos, de uma linguagem mais próxima do programador, para a linguagem binária.  As linguagens de programação são classificadas de acordo com a geração e o nível de entendimento do programador. • Linguagem de Máquina → Código Binário • Linguagem Procedural • Linguagem Orientada a Objeto
  • 5. Linguagem de Programação - Geração  Linguagem da 1ª geração: Linguagem de máquina ou absoluta;  Linguagem da 2ª geração: Linguagem montadora (assembler) ou de baixo nível;  Linguagem da 3ª geração: Linguagem de alto nível, orientada para os procedimentos;  Linguagem da 4ª geração: Linguagem de altíssimo nível, orientada para um problema específico. Classificam-se em linguagem de consulta, geradoras de aplicação e outras.
  • 6. Linguagem de Programação Alto Nível  A linguagem de alto nível, teoricamente, independe to tipo de computador.  O tempo de treinamento para a formação de programadores é, relativamente, curto.  Baixo custo para a elaboração e manutenção de programas.  Possíveis vantagens da arquitetura interna da máquina não são adequadamente aproveitadas.
  • 7. Linguagem de Programação Alto Nível  Tempo de compilação e execução do programa é maior.  Ocupa mais memória para armazenar e executar o programa  Linguagens de alto nível → São linguagens próximas da linguagem do homem. Exemplo: Cobol, Pascal, C.  Linguagem de alto nível de quarta geração → São as linguagens utilizadas com objetos visuais tais como: Visual Basic, Delphi, Visual C++, C++.
  • 8. Linguagem de Programação Baixo Nível  O tempo de treinamento para a formação de programadores é bem mais demorado  Alto custo para a elaboração e manutenção de programas.  Possibilidade de utilizar as vantagens da arquitetura interna da máquina
  • 9. Linguagem de Programação Baixo Nível  Ocupa menos memória para armazenar e executar o programa  Linguagem de máquina → Código Binário  Tempo de compilação e execução do programa é menor
  • 10. Linguagem de Programação Forma de Tradução  Interpretadas → São as linguagens que cujo tradutor somente transforma em linguagem de máquina somente a parte do texto a ser executada. – Exemplo: HTML, JavaScript, PERL.  Compiladas → São as linguagens compiladas são aquelas que todo o código do programa é traduzido criando um novo arquivo em linguagem de máquina. – Exemplos: Visual Basic, Delphi, Pascal, C, Cobol.
  • 12. Introdução • Compilador: software básico de computador capaz de traduzir uma linguagem de alto nível (código fonte) em outra mais simples (código destino ou executável) Código Código Compilador fonte destino Mensagens de erro
  • 13. Construção de Compiladores  Os próprios compiladores são escritos em alguma linguagem de programação e são programas bastante complexos;  Usualmente precisa-se de alguns homens-ano para se escrever um.
  • 14. Construção de Compiladores  Assim, é uma boa idéia usar-se o computador como uma ferramenta para nos ajudar a escrever compiladores.  Geradores de compiladores, como se pode inferir a partir do nome, são usados com este objetivo (tais geradores são às vezes denominados compiladores de compiladores).
  • 15. Componentes de um Compilador O objetivo inicial é verificar se o programa está sintaticamente correto; por exemplo, em Pascal os comandos devem ser separados por ponto e vírgula, se isto não for feito a análise sintática emitirá uma mensagem de erro e a compilação do programa não terá sucesso.
  • 16. Componentes de um Compilador A segunda parte do compilador, verifica se o programa (já sintaticamente correto) está correto do ponto de vista de contexto e tipos; por exemplo, em Pascal é um erro somar o número `3´ com o valor booleano `true´, ou usar a variável `x´ sem uma declararação prévia da mesma.
  • 17. Componentes de um Compilador Finalmente, a terceira parte do compilador executa a tradução do programa-fonte em um programa- objeto expresso em linguagem de máquina; geralmente um comando do programa-fonte é traduzido para vários “comandos” em linguagem de máquina.
  • 18. Programas Tradutores Compiladores  Os compiladores, dependendo da linguagem e do sistema operacional utilizado, poderão envolver algumas etapas intermediárias.  Com o uso , por exemplo, de funções matemáticas (que nada mais são do que pequenas sub-rotinas), o compilador precisará complementar o seu programa, já traduzido, com estas rotinas.
  • 19. Programas Tradutores Interpretadores  Os interpretadores não exigem a criação de um novo arquivo.  Ele opera à partir do arquivo original (fonte) produzido pelo programador.  O que o interpretador faz é ler o texto do programa e proceder conforme um vocabulário de palavras-chave.  Com esta filosofia, o interpretador passa a maior parte do tempo lendo e traduzindo textos.  Se o programa executa uma certa instrução mais de uma vez, o interpretador traduz a instrução cada vez que a encontra, tantas vezes quantas forem necessárias.
  • 20. Compiladores e Interpretadores  O compilador traduz todo o programa para a linguagem de máquina antes de sua execução pelo computador.  Já o interpretador traduz somente trecho do programa que será executado em seguida, normalmente uma linha.  Após a execução da linha, ele traduz a próxima que será executada e assim , sucessivamente, até o final do programa .
  • 21. Programas Tradutores  Montador – E programa que converte os códigos da linguagem assembly ou de baixo nível para a linguagem de máquina.  Compilador – E o programa que traduz um programa escrito em linguagem de alto nível para um programa em código de máquina.  Interpretador – E o programa residente que faz a tradução e a imediata execução de instrução a instrução de um programa escrito em linguagem de alto nível.
  • 22. Programas Tradutores Ling. fonte de Compilador Linguagem de máquina Execução Resultado alto nível (compiler) Interpretador Linguagem Ling. fonte de de máquina Resultado alto nível (interpreter) Execução Ling. fonte de Montador Linguagem Execução Resultado baixo nível (assembler) de máquina
  • 23. Programa Link-Editor Este programa normalmente é chamado "link- editor" e deve ser executado após a compilação inicial para, finalmente, gerar o programa em Linguagem de Máquina, pronto para ser executado.
  • 24. Vantagens dos Compiladores Como o compilador gerar programas prontos para serem executados pela máquina traz como principal vantagem a velocidade com a qual estes programas serão executados no computador, velocidade muito maior do que os programas interpretados, que são traduzidos passo a passo.
  • 25. Vantagens dos Interpretadores Por outro lado, os interpretadores oferecem maior facilidade no processo de desenvolvimento do programa, pois o programador pode imediatamente testar o resultado do que está fazendo
  • 26. Compiladores e Interpretadores  Infelizmente o processo de compilação é muito lento. Por este motivo, o uso de compiladores para desenvolvimento e testes de programas é altamente desaconselhável.  Quando o programa estiver pronto (testado e verificado com o interpretador), é interessante compilá-lo para obter maiores velocidades de execução.
  • 27. Compiladores e Interpretadores  De modo geral, podemos definir que os interpretadores são mais indicados para utilização durante o processo de desenvolvimento de programas.  Os compiladores, por sua vez, devem ser acionados para produzir o programa executável final, ou seja, o produto acabado, que será efetivamente executado no computador.  Atualmente, a maior parte das linguagens de programação encontram-se disponíveis tanto com compiladores, como com interpretadores.
  • 28. Ciclo de Desenvolvimento de Programas  1º Entrar com todo o programa no computador (Programa Fonte)  2º Compilar o programa, traduzindo para a linguagem de máquina (Programa Objeto);  3º Executar o programa. Caso ocorra algum erro, deve-se efetuar as correções correspondentes e voltar ao passo 2, até que não existam mais alterações a serem feitas
  • 29. Programa Compilador Executável Programa escrito em Compilador é um Programa que pode ser linguagem de alto programa específico utilizado em qualquer nível; é utilizado um para uma determinada equipamento que editor de textos; linguagem, que lê as atenda as o arquivo possui uma instruções escritas em especificações de pré- extensão que alto nível e se não requisitos para identifica o tipo de houver nenhum erro de utilização, é um linguagem utilizada; sintaxe ele as arquivo que pode ser ex. teste.pas (pascal) transcreve para compreendido pela teste.cob (cobol) instruções similares em máquina. teste.vbp (visual linguagem de máquina. Um arquivo executável basic) possui extensão .exe.
  • 30. Software Resumo Softwares Específicos Software Aplicativo -Assembler de usuários -C++ -Cobol Sistema -Visual Basic Operacional Utilitários: Software de Sistema Compilador e Monitor Tradutores Editor Hardware Carregador