programação e algoritmia · linguagens de programação •linguagens de alto nível são...

Post on 07-Aug-2020

0 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Programação e Algoritmia Conceitos Introdutórios

Gonçalo Valente

Escola Secundária Jerónimo Emiliano de Andrade

Linguagens de Programação - Definição

• Uma LP (Linguagem de Programação) é uma linguagem destinada:

▫ a ser utilizada por uma pessoa;

▫ para expressar um processo;

▫ através do qual um computador

▫ pode resolver um problema.

• A eficiência na construção e execução de programas depende da combinação destes quatro pontos de vista.

Linguagens de Programação

• Porque estudar LP ?

▫ Maior habilidade em resolver problemas: uma maior compreensão de uma LP pode aumentar a nossa habilidade em pensar em como atacar os problemas Tanto melhor se dominarmos os vários modelos de LP.

Linguagens de Programação

• Porque estudar LP ? (Cont.)

▫ Melhor uso de uma LP: compreensão das funções e implementação das estruturas de uma LP nos levam a usar a LP de modo a extrair o máximo de sua funcionalidade e eficiência.

Linguagens de Programação

• Porque estudar LP ?(Cont.)

▫ Melhor escolha de uma LP: adequação ao problema.

▫ Maior facilidade em aprender novas LPs: conceitos chaves comuns às LPs.

Linguagens de Programação

• Existem actualmente, mais de um milhar de linguagens de programação e dialectos distintos.

• Comissões internacionais e grupos de investigação continuam a criar, desenvolver, melhorar ou substituir linguagens de programação diferentes.

• É normal a um informático ter contacto com um número elevado de linguagens de programação distintas.

Linguagens de Programação

• Problemas a resolver ???

▫ Como conseguir rapidamente dominar uma nova linguagem de programação?

▫ Qual a melhor linguagem a escolher para realizar uma determinada tarefa?

Linguagens de Programação

• Para finalizar

▫ Todos os programas executados num computador têm de ser codificados num conjunto de instruções similares a estas. Os programas assim codificados dizem-se em linguagem máquina ou código máquina

Linguagens de Programação

• Classificação

▫ As linguagens de programação são classificadas em duas classes: as linguagens de Alto Nível e as de Baixo Nível.

Linguagens de Programação

• Linguagens de Baixo Nível

▫ As linguagens de Baixo Nível são aquelas voltadas para a máquina, ou seja as que são escritas utilizando as instruções do microprocessador do computador. São genericamente chamadas de linguagens Assembly. Os programas escritos com Alto Nível geralmente podem ser convertidos com programas especiais para Baixo Nível

Linguagens de Programação

• Linguagens de Baixo Nível - Vantagens

▫ Programas são executados com maior velocidade de processamento. Os programas ocupam menos espaço na memória.

Linguagens de Programação

• Linguagens de Baixo Nível - Desvantagens

▫ Em geral, programas em Assembly tem pouca portabilidade, isto é, um código gerado para um tipo de processador não serve para outro. Códigos Assembly não são estruturados, tornando a programação mais difícil.

Linguagens de Programação

• Linguagens de Alto Nível

▫ São linguagens voltadas para o ser humano. Em geral utilizam sintaxe mais estruturada tornando o seu código mais fácil de se entender, e de editar programas, elas necessitam de compiladores ou de interpretadores, para executar os comandos de uma certa linguagem.

Linguagens de Programação

• Linguagens de Alto Nível - Vantagens

▫ Por serem compiladas ou interpretadas, tem maior portabilidade podendo ser executados em varias plataformas com pouquíssimas modificações. Em geral, a programação torna-se mais fácil por causa do maior ou menor grau de estruturação de suas linguagens.

Linguagens de Programação

• Linguagens de Alto Nível - Desvantagens

▫ Em geral, as rotinas geradas (em linguagem de maquina) são mais genéricas e portanto mais complexas e por isso são mais lentas e ocupam mais memória.

Linguagens de Programação

Programas

• "Conjunto de instruções codificadas (o *software) destinadas a controlar a operação de um *computador ou outra máquina. Por exemplo, programas de utilidade realizam geralmente certas tarefas relacionadas com o sistema operacional. Como a unidade central de processamento (*CPU) processa o código de máquina, programas escritos em linguagem de alto nível devem ser traduzidos para o código de máquina antes de serem executados. O programa é constituído por instruções que são executadas em ordem."

In Enciclopédia Ilustrada FOLHA

Compilador

• Um compilador é um programa, capaz de ler um ficheiro (normalmente de texto) contendo um programa escrito numa dada linguagem de programação e gerar um programa em linguagem máquina que seja equivalente ao programa inicial.

• Deve analisar o programa lido quer sintacticamente (i.e. verificar se a sua escrita está de acordo com uma gramática bem definida) quer semanticamente (significado dose programas).

Compilador

Compilador

Interpretador

• Tal como o compilador, um interpretador analisa sintáctica e semanticamente uma dada linguagem de programação.

• Executa o programa que lhe é dado, passo a passo. Assim é o interpretador que controla o comportamento do programa, facilitando a interacção com o utilizador e a reescrita do programa

Interpretador

Compilador vs Interpretador

• Na prática, não existem compiladores ou

interpretadores puros: cada compilador ou interpretador recebe o seu nome em função da forma de implementação que melhor o descreve.

Compilador vs Interpretador

• Exemplos:

▫ Seria excessivo que um compilador traduzisse cada acesso a um arquivo em disco feito em um programa inserindo no programa objecto várias vezes o (longo) código necessário para obrigar o hardware do disco a executar a sequência de acções correspondentes.

Compilador vs Interpretador

• Exemplos: O que se faz na prática é interpretar essas instruções

através de chamadas a rotinas (conhecidas como serviços) de um sistema operacional, que se tornam responsáveis por essas acções.

Compilador vs Interpretador

• Exemplos:

▫ Muitos interpretadores efectuam uma tradução (compilação) do código fonte para uma representação interna ou código intermediário, cuja interpretação pode então ser feita com maior facilidade

Compilador vs Interpretador

• Interpretação com tradução prévia:

top related