Ano letivo 2024/2025
2EAC –
Sistemas
Digitais
no letivo 2021/2022
Sumário
UFCD 5371 Programação – algoritmia
Conceitos introdutórios, Linguagens de programação
Programas, Linguagens de baixo nível, Linguagens de alto nível e
Compiladores/interpretadores
2
UFCD 5371 Programação -
algoritmia
✘ https://catalogo.anqep.gov.pt/ufcdDetalhe/53
71
3
O que é uma linguagem de
programação?
✘ Não são mais do que um conjunto de palavras utilizadas na escrita de
programas, de acordo com léxico próprio sujeito a uma determinada
estrutura.
4
O que é uma linguagem de
programação?
✘ É um método padronizado para comunicar instruções ao computador.
✘ Permite ao programador especificar precisamente
- sobre que dados o computador vai atuar,
- a forma como os dados serão armazenados ou transmitidos
- quais ações devem ser tomadas sob várias circunstâncias.
5
Linguagens de baixo nível vs
Linguagens de alto nível
Assambley CODE
section .text
global _start ;must be declared for using gcc
int 0x80
mov ecx,sum
_start: ;tell linker entry point
mov edx, 1
mov eax,'3'
mov ebx,1 ;file descriptor (stdout)
sub eax, '0'
mov eax,4 ;system call number (sys_write)
int 0x80 ;call kernel
mov ebx, '4'
sub ebx, '0'
mov eax,1 ;system call number (sys_exit)
add eax, ebx
int 0x80 ;call kernel
add eax, '0'
section .data
mov [sum], eax
msg db "The sum is:", 0xA,0xD
mov ecx,msg
len equ $ - msg
mov edx, len
segment .bss
mov ebx,1 ;file descriptor (stdout)
sum resb 1
mov eax,4 ;system call number (sys_write)
6
Linguagens de baixo nível vs
Linguagens de alto nível
Visual Básic high-level programming language linguagem de
programação de alto nível
Fortan; C; Pascal
Uma linguagem entendida pelo programador – semelhante
à linguagem corrente
Linguagem assambley ADD; SUB; JUMP
Linguagem do Instruction SET – entendível para o
Low-level programming language
programador
linguagens de baixo nível
Código Máquina / machine code
01010101 A única linguagem entendida pelo computador
7
Programas
Programa – Conjunto de instruções organizadas de uma forma lógica e previamente
estabelecida. Permitindo ao computador executar as tarefas que lhe são pedidas.
Programa Fonte – É o texto que escrevemos numa linguagem de
programação.
Programa Objeto – É o programa que se obtém após se ter traduzido o programa-
fonte.
8
Linguagens de baixo nível vs
Linguagens de alto nível
Linguagens de baixo nível - é uma linguagem de programação
que muito relacionada com o SET de instruções da máquina. É uma
linguagem que está “perto do hardware”. Programas escritos em
linguagens de baixo nível tendem a ser relativamente não-portáteis,
principalmente por causa da estreita relação entre a linguagem e a
arquitetura de hardware.
9
Linguagens de baixo nível
Para esta programação pode ser usada:
- linguagem máquina machine code - A única linguagem entendida
pelo computador. (apenas entendível pelo computador, constituída por
zeros e uns 01010101, não entendível para humanos)
10
Linguagens de baixo nível
linguagem assambley ou assembler que utiliza a já referida linguagem
do Instruction SET (ADD; SUB; JUMP; etc.. ). Contudo, e apesar de ser
uma linguagem de baixo nível é necessário traduzi-la para linguagem
máquina, para que seja entendível pelo computador, para esse efeito é
utilizado um tradutor ou assembler
.
ex: ADD; SUB; JUMP >>> ASEMBLER >>>>> Computador
11
Linguagens de Alto nível
linguagem de programação de alto nível é uma linguagem de
programação distante do código máquina em comparação com linguagens
de programação de baixo nível. Podem ser usados elementos da
linguagem natural tornando-se mais fácil aos humanos, alias foi com esse
propósito que foi inventada.
Exemplo C++ que utiliza caracteres como +*-/ sem recorrer a palavras do
SET de instruções ou a código binário
12
Compiladores/interpretadores
Um compilador é um programa de computador (ou um grupo de programas),
que traduz um programa de uma linguagem textual facilmente entendida por
um ser humano para uma linguagem de máquina, específica para um
processador e sistema operativo.
O nome "compilador" é usado principalmente para os programas que traduzem
o código fonte de uma linguagem de programação de alto nível para uma
linguagem de programação de baixo nível (por exemplo, Assembly ou código de
máquina).
13
Compiladores/interpretadores
Linguagem de programação de baixo nível,
Assembly
Compiladores/interpretadores
programação de alto nível
PROGRAM Teste;
VAR traduz
Número: INTEGER;
BEGIN
Número: =10;
END.
14
Desafio!
Elabora uma apresentação sobre a
evolução das linguagens de programação.
15
16
Dúvidas?