Você está na página 1de 23

UFRJ - MACAÉ

DISCIPLINA:
PROGRAMAÇÃO COMPUTACIONAL

AULA 1
Programas de Computador e a
Questão da Linguagem
• Qualquer tipo de informação que vai ser
transferida, processada ou armazenada, deve
estar na forma de uma linguagem.

• Linguagem natural: Utilizada na comunicação


cotidiana entre duas pessoas. Muito geral e
imprecisa.

• Protocolo: Termo usado para a linguagem (mais


técnica e restrita) pela qual duas máquinas
trocam informações.
Programas de Computador e a
Questão da Linguagem
• Embora diversos esforços da comunidade
científica na área de I.A. (inteligência artificial)
venham sendo observados, um computador não
é, pelo menos até agora, um cérebro eletrônico,
no sentido de que ele não pode resolver, por si
só, um dado problema. Assim como as outras
máquinas, eles precisam ser instruídos,
programados, para que, através de um conjunto
de ações possam solucionar o problema.
Programas de Computador e a
Questão da Linguagem

Mas o que é um programa?

Um programa é para o computador um


conjunto de instruções de máquina armazenadas
na memória.
Programas de Computador e a
Questão da Linguagem
• Além do fato de o computador necessitar que lhe
instruam com ações bem específicas, estas ações
devem ser passadas para o computador numa
linguagem que ele possa entendê-las, chamada
linguagem de máquina.
• Esta linguagem é composta somente por
números, representados de forma binária, que,
sob o ponto de vista do computador,
representam as operações e os operandos que
serão usados no processamento do programa.
Programas de Computador e a
Questão da Linguagem
• Para um ser humano, a linguagem de máquina é
difícil de se compreender. Assim, existe uma
linguagem representada por uma notação mais
legível para os humanos, chamada de Assembly,
que reproduz as tarefas que serão executadas
dentro do computador.

• O Assembly também é chamado de linguagem de


montagem. Entretanto, mesmo em linguagem de
montagem é difícil de programar. Além disso os
programas feitos para um determinado processador,
por conterem instruções específicas deste, poderão
não funcionar em um processador de outro tipo.
Programas de Computador e a
Questão da Linguagem
• Assim um assembler (ou montador ou assemblador) é um
programa de computador que efetua a tradução de uma
linguagem de montagem (assembly) para a linguagem de
máquina.

• Exemplo (Wikipedia): o código, em linguagem de


máquina,

IA-21 (10110000 011000001)

ordena que o valor hexadecimal 61 (97 em base decimal)


seja movido para o registrador ‘AL’. Em contrapartida, a
mesma ordem em linguagem de montagem poderia ser

MOV AL, 61h


Programas de Computador e a
Questão da Linguagem
Como ilustração, abaixo é mostrado o início de um programa que
escreve a frase
“Olá Mundo!”
no monitor.

• Na coluna da esquerda está o endereço relativo de memória;


• Na coluna do centro o programa escrito em linguagem de
máquina ;
• Na coluna da direita a representação em caracteres ASCII.

Teoricamente, o programa poderia ser escrito diretamente em


linguagem de máquina, como mostrado abaixo, entretanto a
sintaxe do mesmo é muito pouco compreensível e a
probabilidade de erro para o seu desenvolvimento seria muito
grande.
Programas de Computador e a
Questão da Linguagem

00000000 7F 45 4C 46 01 01 01 00 00 00 00 00 00 00 00 00 .ELF............
00000010 02 00 03 00 01 00 00 00 D0 82 04 08 34 00 00 00 ............4...
00000020 BC 0C 00 00 00 00 00 00 34 00 20 00 07 00 28 00 ........4....(.
00000030 24 00 21 00 06 00 00 00 34 00 00 00 34 80 04 08 ..!.....4...4...
00000040 34 80 04 08 E0 00 00 00 E0 00 00 00 05 00 00 00 4...............
Linguagens de Programação
• As linguagens de programação são um meio termo
entre a linguagem de máquina e a linguagem natural.

• As linguagens muito parecidas com linguagem de


máquina são chamadas de linguagens de baixo nível e
suas instruções parecem-se muito com aquelas que
serão executadas pelo processador. As linguagens de
alto-nível são as que guardam mais semelhanças com a
linguagem natural.

• Exemplo de linguagens de baixo nível é a linguagem de


montagem (assembly). Exemplos de linguagens de alto
nível são: Pascal, C++, Fortran, Java, Python, PHP, entre
outras.
Linguagens de Programação
• Como o processador não pode executar o código
numa linguagem de programação, esta deve ser
traduzida em código de máquina antes de ser
executada. Este processo é chamado de compilação e
é responsável por converter os comandos da
linguagem de programação nas instruções em código
de máquina que o processador poderá utilizar.

Código em Código em
Linguagem de COMPILADOR Linguagem de
Programação Máquina
Linguagens de Programação
Resumindo o processo de construção de um programa:

IDEIAS Projeto Lógico

Código em
Código em
Linguagem de COMPILADOR Linguagem de
Máquina
Programação

PROGAMA FINAL
Linguagens de Programação
Por exemplo, o código de máquina apresentado em um dos
slides anteriores foi gerado pelo programa a seguir, escrito na
linguagem de programação C++. Esse programa, depois de
compilado, escreve a Frase “Olá Mundo” no monitor. A
compilação, isto é, a tradução do programa em C++ para
linguagem de máquina, produz algo parecido como que foi
apresentado
#include <iostream>

using namespace std;

int main()
{
cout << "Ola Mundo \n";
}
Linguagens de Programação

O mesmo código, agora em turboPascal:

begin
writeln (‘Ola Mundo!’);
readln;
end.
A Pseudo-linguagem

• A linguagem natural (português, inglês), utilizada nas


receitas, instruções, etc.. para solução de problemas
em computação apresenta um inconveniente, como
já vimos: a ambiguidade de alguns termos. Assim,
restrições são impostas à linguagem natural,
objetivando a redução de ambiguidade, criando uma
pseudo-linguagem (ou, ainda, pseudocódigo,
Portugol).
A Pseudo-linguagem

• Chamamos de pseudo-código a um algoritmo escrito


de maneira genérica, usando uma pseudo-linguagem.
O programador fica livre da sintaxe específica de uma
determinada linguagem de programação.

• Uma das vantagens de utilizar a pseudo-liguagem é


que a partir dela o programador pode codificar o
algoritmo em qualquer linguagem de programação.
A Pseudo-linguagem
• O pseudocódigo é então uma maneira intermediária
entre a linguagem natural e uma linguagem de
programação de representar um algoritmo. Ela utiliza
um conjunto restrito de palavras chave, em geral na
língua nativa do programador, que tem equivalentes
nas linguagens de programação. Além disso, o pseudo-
código não requer toda a rigidez sintática necessária
numa linguagem de programação, permitindo que o
programador se detenha na lógica do algoritmo e não
no formalismo da sua representação. Na medida que se
obtém mais familiaridade com os algoritmos, então o
pseudocódigo pode ser traduzido para uma linguagem
de programação.
A Pseudo-linguagem
Exemplo de Pseudo-código: Algoritmo para escolher o
maior entre dois números

DECLARE x, y COMO REAL


LEIA x, y {Esta linha é um comentário}
SE x>y ENTAO
ESCREVA x 'EH MAIOR'
SENAO
SE x<y ENTAO
ESCREVA y 'EH MAIOR'
SENAO
ESCREVA x 'E' y 'são IGUAIS'
FIM-SE
FIM-SE
A Pseudo-linguagem

Os termos em negrito são palavras-chave que


representam estruturas presentes em todas as
linguagens de programação. Entretanto, no
pseudocódigo não é necessário se preocupar com
detalhes de sintaxe (como ponto-e-vírgula no final de
cada expressão). Deste modo, o enfoque no
desenvolvimento do algoritmo fica restrito a sua lógica
em si, e não na sua sintaxe para representação
em determinada linguagem.
A Pseudo-linguagem

Algoritmo para escolher o maior entre dois números


em C++

Algoritmo para escolher o maior entre dois números


em Pascal
Da Pseudo-linguagem à Linguagem de
Programação

• A sintaxe torna-se mais rígida, restrita ao vocabulário


específico da linguagem de programação;

• A pontuação torna-se necessária;

• Eventualmente alguma construção que fazemos em


algoritmos pode não ser eficiente na linguagem
de programação (melhorar a eficiência);

• Devemos nos preocupar com erros e situações


excepcionais, como divisão por zero e variáveis com
valores inadequados fornecidos pelo usuário.
Da Pseudo-linguagem à Linguagem de
Programação

• Os comentários que identificam o algoritmo e que


esclarecem sua construção devem ser transcritos na
codificação;

• A forma de interação do programa com as pessoas


deve ser planejada e incluída no programa;

• Os cálculos devem ser codificados de forma a torná-


los rápidos e precisos conforme os recursos
apresentados pela linguagem.
Da Pseudo-linguagem à Linguagem de
Programação

• Procure estabelecer e manter um padrão de


documentação.

• Comente o objetivo do programa, a autoria do


programa, os trechos menos óbvios de código, e o
significado das variáveis menos óbvias;

• Escolha mensagens claras, e procure definir bons


casos de teste para o seu programa;

• Revise o código desenvolvido.