Laurent Deniau wrote:
Un langage objet est un langage qui supporte les caractéristiques
centrales du paradigme objet, et principalement:
- encapsulation,
- typage (Liskov ou Cook), qu'il soit statique, dynamique ou par
inférence, - définition d'objets (que ce soit par classes ou par
prototypes), - communication par messages,
- polymorphisme,
- héritage (sous-typage ou classification, etc.),
- tout est objet.
D'apres ces definitions, C est aussi un langage objet.
C supporte t'il par exemple le polymorphisme ? Non. Il faut l'implémenter
soit même.
Quand j'écris "supporte", cela signifie de façon native. Sinon, j'aurais
écris plutôt "permette d'obtenir/d'implémenter"
Maintenant, ce que j'attends en plus d'un langage objet est aussi:
- conception par contrat (pré/post conditions + invariants),
- si typage statique, la covariance multiple et la généricité contrainte,
- les closures,
- et, si en plus le langage supporte la syntaxe language (sujet verbe
complément) comme avec SmallTalk ou Lisaac, alors je suis heureux :)
Tout ca aussi, C permet de le faire.
Avoir la caractéristique syntaxique langage dans C, ça ne doit pas être du
coton. Idem avec la conception par contrat.
Donc peut-etre il faudrait ajouter supporte 'nativement'?
AMHA C'est redondant. En fait le verbe "supporter" signifie bien que le
langage _a_ ses caractéristiques, et non permet de les avoir.
a+, ld.