FPTagus T02

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 18

Fundamentos da Programação

LEIC/LETI
Aula 02
Cap1. Computadores, Algoritmos e Programas
Sintaxe e semân9ca

Alberto Abad, Tagus Park, IST, 21/22


Computadores, algoritmos e
programas

Fundamentos da Programação 2
Computadores, algoritmos e
programas

“The single most important skill for a


computer scien8st is problem solving”,
Python for So+ware Design

• 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

“Na matemá)ca, o fatorial de um número


natural n, representado por n!, é o produto de
todos os inteiros posi)vos menores ou iguais a
n.”

• Propor algoritmo para calcular 10!

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

<S> ::= <introdução> , FP é {<opção>} <adjetivo>


<introdução> ::= Bom dia | Boa tarde | Boa noite
<opção> ::= muito | pouco | bastante | nada
<adjetivo> ::= fixe | genial | apaixonante

– IdenAficar símbolos terminais, não-terminais,


frases válidas

Fundamentos da Programação 12
Exemplos BNF(II)
• Números binários:

<número binário> ::= <dígito binário> |


<número binário> <dígito binário>
<dígito binário> ::= 0 | 1

– Iden9ficar símbolos terminais, não-terminais, frases válidas.


– Forma alterna9va de representar 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?

• A descrição semân:ca é feita (em geral)


u:lizando linguagem natural:
– Na disciplina estudaremos a semânGca da linguagem
Python3 uGlizando língua natural.

Fundamentos da Programação 15
Tipos de erros
• Sintác)cos

• Semân)cos (ou lógicos)

• Run$me (ou exceções)


Fundamentos da Programação 16
Tarefas para a próxima aula
• Tarefas para a seguinte aula de
problemas:
– L01: Sintaxe e BNF

• Tarefas para as seguintes aulas


de teoria:
– Completar tarefas das aulas
anteriores
– Ler seções 2.1-2.5 do livro da
disciplina

Fundamentos da Programação 17
Fundamentos da Programação 18

Você também pode gostar