Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
O que e a programa c ao
PI VBN Introdu c ao a Programa c ao Linguagens de Programa c ao
Concep c ao de m etodos para resolver problemas usando computadores An alise e compara c ao de m etodos diferentes Combina c ao de v arias compet encias de
matem atica: linguagens formais para especicar ideias engenharia: projectar, unir componentes para formar um sistema, avaliar pr os/contras de alternativas ci encias naturais observar comportamento de sistemas complexos, tecer hip oteses, testar previs oes
1.2
Linguagens de Programa c ao
PI VBN Introdu c ao a Programa c ao
Linguagens formais
Exerc cio: Qual a sem antica dos exemplos acima? Ilustre casos de sintaxe incorrecta.
Deni c ao (Linguagens de Programa c ao)
1.3
Assembly
Exemplo: push, . . . Utiliza mnem onicas (texto) para representar c odigo maquina Existem programas (assembladores) para traduzir para c odigo maquina Pr oximo da linguagem maquina
1.4
Exemplo: C, Java, Prolog, Python, . . . mais pr oximas da formula c ao matem atica dos problemas mais f aceis port aveis Traduzidas para c odigo maquina por interpretadores ou compiladores
Interpretador
1.5
Compilador
1.6
Alto n vel: mais pr oximo da formula c ao do problemas; facilita a programa c ao, detec c ao e correc c ao de erros Baixo n vel: mais pr oximo da maquina; possivelmente mais eciente
Para problemas diferentes
C alculo num ericos: Fortran Racioc nio: Prolog Scripting: Perl, Python
Diferentes paradigmas
imperativo: C, Pascal funcional: Haskell, Caml l ogico: Prolog orientado a objectos: Java
1.7
Programa c ao Estruturada
PI VBN Introdu c ao a Programa c ao Linguagens de Programa c ao
decompor um programa em pequenos m odulos m odulos podem ser re-utilizados podem-se testar e/ou provar que s ao correctos f aceis de modicar programas devem ser escritos para serem lidos por humanos! Coment arios, estrutura, nomes das coisas, . . . correcto - simples - eciente
1.8
Linguagem Python I
PI VBN Introdu c ao a Programa c ao Linguagens de Programa c ao Programa c ao Estruturada Linguagem Python Debugging
Caracter sticas
Site principal: http://python.org/ Alto n vel Sintaxe simples F acil aprendizagem Existe para a maioria dos sistemas operativos: Linux, Mac OS, M$, . . . livre! E Utilizada com sucesso em muitos locais: http://python.org/about/success/
1.9
Linguagem Python II
PI VBN Introdu c ao a Programa c ao Linguagens de Programa c ao Programa c ao Estruturada Linguagem Python Debugging
Interpretada . . . ou quase
Interpreta c ao h brida: compilador traduz Python (cheiros com extens ao py) para um c odigo interm edio byte-code (cheiros com extens ao pyc) execu c ao e feita por um interpretador de byte-code
Vantagens/Desvantagens
+ Desenvolvimento r apido + Mais eciente que um interpretador cl assico - Menos eciente do que linguagens compiladas (por exemplo C)
1.10
Interpretador de Python
p r i n t H e l l o , World !
p r i n t ( H e l l o , World ! )
1.11
Debugging
PI VBN
Errare humanum est A programa c ao est a sujeita a (muitos) erros Erros de programa c ao s ao denominados de bugs O processo de encontrar os erros e denominado por debugging Tipos de erros:
sint atico: Por exemplo p r i n t H e l l o , World ! runtime: indicam que algo excepcional (e normalmente mau) aconteceu sem antico: Exemplo?
Introdu c ao a Programa c ao Linguagens de Programa c ao Programa c ao Estruturada Linguagem Python Debugging