Programação e Algoritmia · Linguagens de Programação •Linguagens de Alto Nível São...

27
Programação e Algoritmia Conceitos Introdutórios Gonçalo Valente Escola Secundária Jerónimo Emiliano de Andrade

Transcript of Programação e Algoritmia · Linguagens de Programação •Linguagens de Alto Nível São...

Page 1: Programação e Algoritmia · Linguagens de Programação •Linguagens de Alto Nível São linguagens voltadas para o ser humano. Em geral utilizam sintaxe mais estruturada tornando

Programação e Algoritmia Conceitos Introdutórios

Gonçalo Valente

Escola Secundária Jerónimo Emiliano de Andrade

Page 2: Programação e Algoritmia · Linguagens de Programação •Linguagens de Alto Nível São linguagens voltadas para o ser humano. Em geral utilizam sintaxe mais estruturada tornando

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.

Page 3: Programação e Algoritmia · Linguagens de Programação •Linguagens de Alto Nível São linguagens voltadas para o ser humano. Em geral utilizam sintaxe mais estruturada tornando

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.

Page 4: Programação e Algoritmia · Linguagens de Programação •Linguagens de Alto Nível São linguagens voltadas para o ser humano. Em geral utilizam sintaxe mais estruturada tornando

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.

Page 5: Programação e Algoritmia · Linguagens de Programação •Linguagens de Alto Nível São linguagens voltadas para o ser humano. Em geral utilizam sintaxe mais estruturada tornando

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.

Page 6: Programação e Algoritmia · Linguagens de Programação •Linguagens de Alto Nível São linguagens voltadas para o ser humano. Em geral utilizam sintaxe mais estruturada tornando

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.

Page 7: Programação e Algoritmia · Linguagens de Programação •Linguagens de Alto Nível São linguagens voltadas para o ser humano. Em geral utilizam sintaxe mais estruturada tornando

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?

Page 8: Programação e Algoritmia · Linguagens de Programação •Linguagens de Alto Nível São linguagens voltadas para o ser humano. Em geral utilizam sintaxe mais estruturada tornando

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

Page 9: Programação e Algoritmia · Linguagens de Programação •Linguagens de Alto Nível São linguagens voltadas para o ser humano. Em geral utilizam sintaxe mais estruturada tornando

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.

Page 10: Programação e Algoritmia · Linguagens de Programação •Linguagens de Alto Nível São linguagens voltadas para o ser humano. Em geral utilizam sintaxe mais estruturada tornando

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

Page 11: Programação e Algoritmia · Linguagens de Programação •Linguagens de Alto Nível São linguagens voltadas para o ser humano. Em geral utilizam sintaxe mais estruturada tornando

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.

Page 12: Programação e Algoritmia · Linguagens de Programação •Linguagens de Alto Nível São linguagens voltadas para o ser humano. Em geral utilizam sintaxe mais estruturada tornando

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.

Page 13: Programação e Algoritmia · Linguagens de Programação •Linguagens de Alto Nível São linguagens voltadas para o ser humano. Em geral utilizam sintaxe mais estruturada tornando

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.

Page 14: Programação e Algoritmia · Linguagens de Programação •Linguagens de Alto Nível São linguagens voltadas para o ser humano. Em geral utilizam sintaxe mais estruturada tornando

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.

Page 15: Programação e Algoritmia · Linguagens de Programação •Linguagens de Alto Nível São linguagens voltadas para o ser humano. Em geral utilizam sintaxe mais estruturada tornando

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.

Page 16: Programação e Algoritmia · Linguagens de Programação •Linguagens de Alto Nível São linguagens voltadas para o ser humano. Em geral utilizam sintaxe mais estruturada tornando

Linguagens de Programação

Page 17: Programação e Algoritmia · Linguagens de Programação •Linguagens de Alto Nível São linguagens voltadas para o ser humano. Em geral utilizam sintaxe mais estruturada tornando

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

Page 18: Programação e Algoritmia · Linguagens de Programação •Linguagens de Alto Nível São linguagens voltadas para o ser humano. Em geral utilizam sintaxe mais estruturada tornando

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).

Page 19: Programação e Algoritmia · Linguagens de Programação •Linguagens de Alto Nível São linguagens voltadas para o ser humano. Em geral utilizam sintaxe mais estruturada tornando

Compilador

Page 20: Programação e Algoritmia · Linguagens de Programação •Linguagens de Alto Nível São linguagens voltadas para o ser humano. Em geral utilizam sintaxe mais estruturada tornando

Compilador

Page 21: Programação e Algoritmia · Linguagens de Programação •Linguagens de Alto Nível São linguagens voltadas para o ser humano. Em geral utilizam sintaxe mais estruturada tornando

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

Page 22: Programação e Algoritmia · Linguagens de Programação •Linguagens de Alto Nível São linguagens voltadas para o ser humano. Em geral utilizam sintaxe mais estruturada tornando

Interpretador

Page 23: Programação e Algoritmia · Linguagens de Programação •Linguagens de Alto Nível São linguagens voltadas para o ser humano. Em geral utilizam sintaxe mais estruturada tornando

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.

Page 24: Programação e Algoritmia · Linguagens de Programação •Linguagens de Alto Nível São linguagens voltadas para o ser humano. Em geral utilizam sintaxe mais estruturada tornando

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.

Page 25: Programação e Algoritmia · Linguagens de Programação •Linguagens de Alto Nível São linguagens voltadas para o ser humano. Em geral utilizam sintaxe mais estruturada tornando

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.

Page 26: Programação e Algoritmia · Linguagens de Programação •Linguagens de Alto Nível São linguagens voltadas para o ser humano. Em geral utilizam sintaxe mais estruturada tornando

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

Page 27: Programação e Algoritmia · Linguagens de Programação •Linguagens de Alto Nível São linguagens voltadas para o ser humano. Em geral utilizam sintaxe mais estruturada tornando

Compilador vs Interpretador

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