« Wikilivres:Portail développement logiciel » : différence entre les versions

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
révert comme prévu
m +es interlangue
Ligne 26 : Ligne 26 :


[[en:Computer programming]]
[[en:Computer programming]]
[[es:Manual Básico para un Programador]]
[[gl:Introdución á programación]]
[[gl:Introdución á programación]]

Version du 25 janvier 2006 à 19:36

Programmation

Cet ouvrage a pour but de permettre d'apprendre la programmation, toute la programmation, rien que la programmation. Il a vocation de permettre d'apprendre tous les langages, méthodes, outils et techniques en rapport avec la programmation.

Pour ce faire, nous étudierons les différentes étapes d'un projet logiciel, et ce du général au particulier :

  • Gestion de projet, car de nos jours, il ne peut plus y avoir de projet informatique cohérent sans organisation.
  • L'analyse, étape indispensable permettant de déterminer ce qui doit être fait.
  • Les techniques de programmation, à travers les différents paradigmes de programmation, l'algorithmique, les objectifs de la programmation, l'étude détaillée de chaque langage, l'optimisation et les différents outils disponibles.

Table des matières

Introduction


Il existe différentes classes de langage qui fonctionnent à partir de concepts et de schémas de pensées différents. Ainsi, le langage C est assez éloigné du langage Lisp qui lui-même ne partage guère les structures de base du langage SmallTalk.

On parle de paradigme pour désigner un ensemble de concept particulier.

Les [[../Programmation impérative|langages de programmation impératifs]] représentent le premier paradigme de programmation utilisé : ce sont les langages qui héritent de l'Algol, dont le C est le meilleur représentant.

Bien qu'inventé en même temps, le [[../Programmation orientée objet|paradigme orienté objet]] a connu le succès avec le C++ et, au début du XXIème siècle grâce aux langages Java et C#.

Les autres paradigmes, comme par exemple la [[../Programmation fonctionnelle|programmation fonctionnelle]], sont moins utilisés. Ils comprennent le LISP, le Scheme et le Prolog. Le logo est également un langage respectant le paradigme fonctionnel.

Certains langages sont multi-paradigmes, ainsi le Python offre les trois paradigmes présentés dans cette introduction.


On distingue six générations de langages de programmation. Les langages des générations 1 et 2 sont appelés langages de bas niveau (orienté machine) alors que les langages des générations 3 à 6 sont appelés langages de haut niveau (orienté problème). Les langages de haut niveau sont indépendants du processeur ce qui n’est pas le cas des langages de bas niveau.

Bas niveau

Génération 1

  • Langage machine dépendant du processeur
  • Suite d’instructions binaires directement introduites (programmation directe) dans la mémoire du processeur
  • Les instructions du processeur sont appelées code opérationnel

Code opérationnel- Intel pentium- Motorola 6800

Exemple pour un processeur 8086 :

BD 41 00
BE 65 41
01 D8
38 47 03

La programmation de la machine par un humain à ce niveau nécessite d'avoir le manuel du processeur. Les erreurs de frappe arrivent facilement.

Génération 2

  • Même jeu d’instructions que le langage machine, mais sous forme symbolique (mnémoniques) plus compréhensible pour l’homme
  • Les instructions sont converties (programmation indirecte) en langage machine par un programme (assembleur)

Exemple pour un processeur 8086 :

MOV BP,41h
MOV SI,4165h
ADD AX,BX
CMP [BX+3],AL

Les langages assembleurs plus évolués permettent d'utiliser des commentaires et possèdent des fonctionnalités facilitant la vie du développeur, lui évitant des calculs manuels et des erreurs potentielles. Par exemple, il est possible de définir un symbole/nom/label représentant l'adresse où se trouve la déclaration puis l'utiliser directement comme opérande (adresse de saut ou adresse de l'emplacement d'une donnée) dans les instructions à la place d'une adresse calculée manuellement.

Haut niveau

Génération 3

  • Langages indépendants du processeur
  • Proches des langues parlées (anglais)
  • Langages procéduraux, descriptions des opérations à effectuer pour résoudre un problème.

Les premiers langages de programmation étaient écrits sur des cartes perforées. Celles-ci ne permettaient pas de coder les lettres en minuscules, ce qui explique que les mots-clés des premiers langages de programmation soient en capitales (Fortran, COBOL, Basic, Pascal).

Langages : C, Pascal, Fortran (Formula Translation), Cobol (Common Business Oriented Language), Basic, Wlangage

Génération 4

  • Langages descriptifs
  • Description de ce que l’on désire faire mais pas de la manière de le faire
  • Très fortement lié à un domaine (base de données, tables de calcul)

Langages : Uniface, Informix, Oracle, Lotus

Génération 5

  • Langages descriptifs pour la programmation de systèmes experts

Langages : Prolog

Génération 6

  • [[../Programmation orientée objet|Orienté objet]]
  • Toutes les informations nécessaires à la résolution d’un problème sont réunies dans un objet

Langages : Ada, C++, C#, Delphi, Eiffel, Java, Object Pascal, PHP, Python, Smalltalk

Références


Annexes

A. Glossaire
B. Auteurs