G. Falquet, CUI, Université de Genève 9 de 35
Thèse de Church
T
out algorithme peut être exécuté par un progr
amme sur un ordinateur
== il n’y a pas de méthode “r
aisonnable” qu’on ne puisse progr
ammer
Conséquence: on peut exprimer un algorithme dans n’importe quel
langage (complet) de progr
ammation d’ordinateur
Remarque
Il y a des problèmes indécidables
== pour lesquels il n’existe pas d’algorithme
G. Falquet, CUI, Université de Genève 10 de 35
Algorithmes et structures de données
F
orte dépendance entre structures de données et progr
ammes
–
influence sur la simplicité du progr
amme
–
influence sur l’efficacité du progr
amme
Malheureusement : pas de structure optimale en toute circonstance
"Algorithmes + Structures de données = Progr
ammes" [Wirth]
G. Falquet, CUI, Université de Genève 11 de 35
Langage algorithmique de haut niveau
P
our éviter d’écrire des progr
ammes au niv
eau "machine"
On se donne un langage algorithmique plus abstr
ait
Langage = une syntax
e + une sémantique
Sémantique (opér
ationnelle)
= signification des instructions
= comment les instructions changent l’état de la mémoire
G. Falquet, CUI, Université de Genève 12 de 35
Modèle abstrait de mémoire = ensemble d’objets
objet = ensemble de cellules
contient une
valeur
d’un certain
type
(entier
, réel, chaînes de
car
actères, booléen, etc.)
Etat de la mémoire : ensemble de paires (variable = valeur)
M = { X = "Hello", Y = 95 }
X
Y95
"Hello"
Variables
Désignent un objet de la mémoire.