Sei sulla pagina 1di 12

Programa c ao I

Licenciatura em Engenharia Inform atica 20112012

PI VBN Introdu c ao a Programa c ao Linguagens de Programa c ao

Vitor Beires Noguera Escola de Ci encia e Tencologia Universidade de Evora


1.1

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

As linguagens formais tem


sintaxe: regras gramaticais sem antica: signicado ou ac c ao associada

Linguagens de Programa c ao Programa c ao Estruturada Linguagem Python Debugging

Existem linguagens formais j a conhecidas:


express oes aritm eticas: 3 + 3 = 6 estrutura molecular: H2 O

Exerc cio: Qual a sem antica dos exemplos acima? Ilustre casos de sintaxe incorrecta.
Deni c ao (Linguagens de Programa c ao)

Linguagens formais que foram concebidas para exprimir computa c oes

1.3

Linguagens de Baixo e de Alto N vel I


PI VBN Introdu c ao a Programa c ao Linguagens de Programa c ao Programa c ao Estruturada Linguagem Python Debugging

Linguagens de Baixo N vel

Linguagem/C odigo m aquina


Exemplo: 01010101 linguagem mais baixa e nativa dos computadores u nica linguagem directamente execut avel pelo computador dif cil compreens ao Looking at a program written in machine language is vaguely comparable to looking at a DNA molecule atom by atom.(Hofstadter)

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

Linguagens de Baixo e de Alto N vel II


PI VBN

Linguagens de Alto N vel

Introdu c ao a Programa c ao Linguagens de Programa c ao Programa c ao Estruturada Linguagem Python Debugging

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

Linguagens de Baixo e de Alto N vel III


PI VBN Introdu c ao a Programa c ao Linguagens de Programa c ao Programa c ao Estruturada Linguagem Python Debugging

Compilador

1.6

Porqu e tantas linguagens?


Permitem diferentes n veis de abstrac c ao
PI VBN Introdu c ao a Programa c ao Linguagens de Programa c ao Programa c ao Estruturada Linguagem Python Debugging

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

Programa c ao Estruturada Linguagem Python Debugging

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

Linguagem Python III


PI VBN

Interpretador de Python

Em Linux temos o comando python


Interactivo: executa uma instru c ao de cada vez e mostra o resultado Batch: executa todos os comandos existentes num cheiro

Introdu c ao a Programa c ao Linguagens de Programa c ao Programa c ao Estruturada Linguagem Python Debugging

Existem muitos ambientes de desenvolvimento: IDLE, PyDev, Emacs, . . .


Programa : Hello, World (vers ao 2.*)

p r i n t H e l l o , World !

Programa : Hello, World (vers ao 3.*)

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

Debugging como ci encia experimental


Debugging e semelhante ao trabalho de um detective Quando temos uma ideia sobre o que est a errado no programa, alteramos e experimentamos. When you have eliminated the impossible, whatever remains, however improbable, must be the truth. (A. Conan Doyle, The Sign of Four)
1.12

Potrebbero piacerti anche