Académique Documents
Professionnel Documents
Culture Documents
langages
• Les langages de programmation et le
processus de programmation
• Langages spécialises:
ex: matlab (mathématiques), Cobol
(production de rapports), SQL (bases de
données), Perl (langage script).
Niveau de complexité et d’abstraction
Lisibilité
Aptitude à l’écriture
Fiabilité
Coût
Lisibilité
• Ce critère est subjectif, mais important.
• La lisibilité d’un langage est rendu essentielle
par les usages courrant du génie logiciel, en
particulier, pour les fins d’évolution, de
maintenance, et de mise à jour des logiciels.
• Abstraction: permettre la généralité des
programmes, l’abstraction procédurale, et
l’abstraction des données.
• Absence d’ambiguïtés
• Absence d’une surabondance de choix: Par
exemple, certain langages permettent d’écrire
les boucles de plusieurs façon différentes.
Lisibilité (2)
• Orthogonalité: l’absence de restrictions sur la
façon de combiner les primitives du langage.
(Il est plus facile de constater le manque
d’orthogonalité.)
– Exemple: Un tableau peut-il contenir des
éléments de n’importe quel type?
– Résulte en une diminution du nombre de
cas spéciaux.
– Peut être pousse trop loin (Algol 68).
Lisibilité (3)
• Expressivité des structures de contrôle et de données.
– Qu’est-ce qui est plus facile a lire et maintenir:
un long programme bâtie à partir d’éléments simple?
-ou-
un programme bref bâtie à partir d’éléments
complexes et spécialises?
– Exemples d’expressivité: la récursivité, le retour arrière
incorporé de Prolog, la recherche dans les langages de
base de données.
– Exemple de peu d’expressivité: instructions d’assembleur.
– Processeurs de langage
– machines virtuelles
– Modèles d’implémentation
– Compilation et exécution
Processeurs de langage
• Un processeur de langage est un dispositif (logiciel ou
matériel (hardware)) capable d’exécuter des instructions du
langage.
• La traduction est le processus qui transforme un programme
d’un langage à un autre, tout en préservant son sens et sa
fonctionnalité.
• Le langage cible peut être directement exécutable sur
l’ordinateur, ou (plus souvent) devra à nouveau être traduit
en un langage de niveau inférieur.
Machines Virtuelles
• Une machine virtuelle est une réalisation logicielle
(simulation) d’un processeur de langage.
Programme abstrait
(optimisé)
Programme résultant
Données d’entré Ordinateur Données de sortie