Formations langages
Développement
Programmer, c'est quoi ?
Ce sont des intructions que l'on donne à un ordinateur (code source) et qui les exécutes (afficher une fenêtre, lancer une session de chat, faire des calculs, créer un système d'exploitation comme Windows, ...).
Pour donner ces instructions on utilise un langage que l'ordinateur comprend.
L'ordinateur ne comprend que le 0 et le 1 (le binaire), c'est le langage machine.
Il est difficile de dialoguer avec lui dans cette langue.
On invente donc des langages plus prochent de notre façon de penser.
Un langage est donc un ensemble de termes (en général en anglais) et de règles de grammaire.
- Compilateur
- C'est un traducteur. Il est chargé de convertir nos instructions en langage machine.
- Le compilateur est en général spécifique à une plateforme.
- Il est aussi souvent lié à un langage, bien que certains soient capables de traduire plusieurs langages.
Qui peut programmer ?
Toutes personnes est capable de faire des programmes.
Il n'est pas utile d'être ingénieur ou fort en mathématiques.
Par contre, il faut être motivé et posséder une bonne culture informatique.
Les types de langages
Langages compilés
Le compilateur va traduire tout le texte du code source pour produire un fichier en langage machine.
On peut donc exécuter directement ce fichier.
Langages interprétés
Chaque ligne du code source est analysée, compilée et exécutée lors de sa lecture (à la volée).
Des approches diverses
Concepts de développement
| Les modes de développement |
| Modes |
Objectifs |
| Programmation concurrente |
S'exécute dans des threads ou processus distincts. |
| Programmation déclarative |
Applications basées sur des composants, on décrit le problème. |
| Programmation fonctionnelle |
Emboîtement de fonctions vues comme des "boîtes noires" que l'on peut imbriquer les unes dans les autres. |
| Programmation déclarative |
Applications basées sur des composants, on décrit le problème. |
| Programmation impérative |
Suites d'instructions, se concentre sur le comment d'une opération.
L'état du programme est défini par l'état de la mémoire centrale. |
| Programmation logique |
Définit les applications à l'aide d'un ensemble de faits élémentaires et de règles de logique leur associant des conséquences plus ou moins directes. |
| Programmation orientée aspect |
Séparer les aspects techniques des informations métiers. |
| Programmation orientée composant |
Utilisation de briques réutilisables. |
| Programmation orientée objet |
Définir et assembler des briques logicielles (les objets).
Un objet représente un concept, une idée, une entité du monde physique (un animal, le ciel, une personne, une fenêtre, ...). |
| Programmation orientée prototype |
Objet que l'on multiplie par clonage. |
| Programmation par contrainte |
Fournir un cadre et des méthodes pour la résolution de problèmes définis sur des domaines finis (exemple des intervals). |
| Programmation par contrat |
Le traitement est régi par des règles (des assertions). |
| Programmation par intention |
Obtenir un langage modulaire. C'est utiliser un langage hôte réduit à minima.
Ce langage est étendu par des méthodes indépendantes et réutilisables. |
| Programmation procédurale |
Une procédure (routine, sous-routine, fonction), contient une série d'étapes à réaliser. |
| Programmation structurée |
Langage qui offre des instructions évoluées comme des boucles et des conditions. |
|
Dates en vrac
Vous pouvez télécharger un poster d'évolution des langages sur le site de O'Reilly
- -3000
- Invention du Binaire par Fou Hi en chine.
- Apparition du boulier.
- -320
- Invention de la logique par Aristote.
- 820
- Création de l'algorithmie par Al-Khwarizmi.
- 1000
- G.d'Aurillac (pape Sylvestre II) impose la numération arabe et donc du Zéro.
- 1500
- Léonard de Vinci invente le calculateur mécanique.
- 1621
- Invention de la règle à calcul.
- 1623
- Wilhelm Shickard invente la première machine à calculer "l'horloge à calcul". Sa machine pris feu avant d'être livrée à l'utilisateur. Elle utilisait la force humaine et des engrenages comme énergie. Elle faisait des additions et soustractions (nombres entiers). Le résultat n'était pas conservé.
- 1643
- Pascal invente la première machine à calculer (la Pascaline). Il en existe encore des exemplaires.
- 1725
- Basile Bouchon inventa le papier perforé.
- 1801
- Invention du métier de Jacquard.
- 1840
- Augusta Ada King, comtesse Lovelace traduit le mémoire de Frederico Luigi, mathématicien italien, relatif à la machine analytique.
- Elle est considérée comme l'auteur du premier programme informatique.
- Son image est présente dans les hologrammes de Microsoft.
- 1846
- Konrad Zuse sort le premier langage de haut niveau Plankalkül.
- Le premier compilateur pour ce langage apparait en 1998.
- 1948
- Invention de l'assembleur. Premier langage à utiliser des mnémoniques à la place du langage machine.
- 1951
- Premier langage évolué (A0).
-
1956
- Première version du Fortran. Il est utilisé dans les calculs scientifiques et mathématiques.
- 1959
- Sortie du Cobol et Lisp (John McCarthy).
- Lisp est encore largement utilisé plus particulièrement dans l'intelligence artificielle.
- 1960
- Arrivée du langage Algol (largement inspiré du Fortran).
- 1962
- Simula apporte la notion objet à l'Algol.
- 1965
- Première version du Basic (largement inspiré du Fortran) par J.G. Kemeny et T.E. Kurtz.
- 1968
- Création du Pascal (nommé en hommage à Pascal).
- 1972
- Apparition du langage C (Dennis Ritchie). Il constitue la base de nombreux langages modernes.
- Prolog voit le jour.
- Arrivée du premier langage objet Smalltalk à l'origine de Objective C, Java et Ruby. Il n'est formalisé et adopté qu'en 1980.
- Premier langage à proposer une interface graphique de développement intégré.
- 1980
- Bjarne Stoustrup lance C with Classes, inspiré du langage C et de Simula. Ce langage préfigure le C++.
- 1983
- Naissance du C++ de Bjarne Stoustrup.
- ADA (en hommage à Ada Lovelace) commandé par le Département de la Défense des Etats-Unis.
- Turbo Pascal de Anders Hejlsberg impose les interfaces graphiques de développement.
- 1985
- Adobe sort le langage de description de pages PostScript. Il permet de mélanger images et textes et de les mettre en forme.
- Sortie de Quick BASIC de Microsoft et Caml de l'INRIA
- 1986
- Perl.
- Bertrand Meyer s'inspire de Simula pour créer Eiffel, premier langage à proposer la programmation par contrat.
- 1987
- Self de Sun, l'ancètre du JavaScript.
- Larry Wall présente le langage Perl.
- 1987
- John Ousterhout, sort TCL.
- 1990
- Première version du langage HTML basé sur le SGML.
- 1991
- Python est créé.
- Première version de Visual Basic.
- 1993
- Sortie de Brainfuck de Urban Mueller sur Amiga, AppleScript de Apple. Ruby, Lua, WScript (utilisé avec les outils de développement de PC Soft).
- Première version de Windev de PC-Soft.
- 1995
- Sun sort la première version de Java.
- Arrivée du PHP (Rasmus Lerdorf), Delphi de Borland et JavaScript.
- 1996
- Introduction du XML.
- 1997
- Sortie de Visual Studio de Microsoft. C'est un package (comme Microsoft Office) qui regroupe les principaux langages de l'éditeur.
- 1998
- Erlang outils utilisé par Ericsson pour ses produits.
- 1999
- Gambas apporte le BASIC à UNIX.
- 2000
- C# (sharp), premier langage créé par Microsoft.
- Walter Bright développe le langage D.
- 2001
- Visual Basic .Net, évolution du Visual Basic de Microsoft.
- AspectJ de Xerox Parc, apporte à Java la programmation orientée aspect.
- 2004
- Projet Mono de portage de la plateforme .Net sur Linux (Miguel de Icaza).
- 2005
- Microsoft dévoile F# prévu avec Visual Studio 2010.
- Walter Bright développe le langage D.
- 2007
- LolCode de Adam Lindsay. Sa syntaxe s'inspire de l'anglais SMS.
Environnement de développement intégré (E.D.I)
En anglais I.D.E.
- Qu'est-ce qu'un I.D.E ?
- Ensemble d'outils fournis pour faciliter le développement.
- Se compose entre autre d'une interface graphique, un compilateur, un débogueur, un éditeur de code.
- Souvent il rajoute sa propre syntaxe pour faciliter le codage. Il faut donc apprendre cette nouvelle grammaire en plus de celle du langage d'origine.
Exemples d'I.D.E : Visual C++, C++Builder, Dev-CPP, Delphi, Visual Basic, JBuilder, FrontPage, Dreamweaver, ...