FPTagus T02
FPTagus T02
FPTagus T02
LEIC/LETI
Aula 02
Cap1. Computadores, Algoritmos e Programas
Sintaxe e semân9ca
Fundamentos da Programação 2
Computadores, algoritmos e
programas
• Problema
• Algoritmo
• Computador
• Programa
• Linguagem de Programação
Fundamentos da Programação 3
Computadores
• Definição: Maquina que manipula informação
• Caracterís9cas:
– Automá9co
– Universal
– Digital
– Electrónico
• Conjunto de instruções:
– Entrada
– Saída
– Aritmé9cas
– Condicionais
– Repe9ção
Fundamentos da Programação 4
Algoritmos
• Definição: Sequência finita de instruções bem definidas
e não ambíguas, executáveis num período de tempo
finito e com uma quantidade de esforço finita.
• Características:
– rigoroso,
– eficaz,
– termina.
• Exemplos informais
Fundamentos da Programação 5
Programas
• Definição: ConcreGzação de algoritmo
numa linguagem de programação
• Linguagens de programação:
– Maquina/Assembly
– Alto-nível
• Processadores de linguagem:
– Interpretados
– Compilados
• Testar programas à depurar/debugging
Fundamentos da Programação 6
Exemplo primeiro algoritmo/programa
Fundamentos da Programação 7
Sintaxe e semântica
Fundamentos da Programação 8
Linguagems de Programação
• O que é uma Linguagem de Programação?
– Linguagem que permite escrever
pogramas/algoritmos
• O que é uma linguagem?
– LÉXICO
– SINTAXE
– SEMÂNTICA
• Como pode ser descrito uma linguagem?
Fundamentos da Programação 9
Sintaxe
• A sintaxe de uma linguagem é o conjunto de
regras que definem as relações válidas entre os
cons:tuintes da linguagem.
– A sintaxe nada diz respeito ao significado das frases.
• As linguagens de programação são em geral
descritas lexicalmente por expressões regulares e
sinta:camente por gramá:cas:
– e.g., através da notação BNF (Backus Normal Form ou
Backus–Naur Form).
Fundamentos da Programação 10
Gramá:ca BNF
• Elementos necessários para descrever uma
linguagem:
– Símbolos não terminais
• Escrevem-se entre < e >.
– Símbolo inicial
– Símbolos terminais
– Regras de produção, segundo a seguinte convenção:
• o símbolo ::= define símbolos não terminais;
• o símbolo | denota possíveis alternativas;
• o carácter + denota uma ou mais repetições;
• o carácter * denota zero ou mais repetições;
• a utilização de chavetas, { e }, denota símbolos opcionais
Fundamentos da Programação 11
Exemplos BNF (I)
• Português simples (para FP):
Fundamentos da Programação 12
Exemplos BNF(II)
• Números binários:
Fundamentos da Programação 13
Gramá:ca de Python 3
https://docs.python.org/3/reference/grammar.html
Fundamentos da Programação 14
Semân:ca
• A semân:ca de uma linguagem atribui significado
a cada frase da linguagem.
– Nada diz a respeito da geração das frases da
linguagem.
– Exemplos de frases sintacGcamente corretas, mas
semanGcamente erradas em Português?
Fundamentos da Programação 15
Tipos de erros
• Sintác)cos
Fundamentos da Programação 17
Fundamentos da Programação 18