Projet Tuteuré : Générations de Langages : Les langages de

publicité
Projet Tuteuré :
Générations de Langages :
Les langages de programmation ont en tout 5 générations.
1GL/2GL/3GL/4GL/5GL en anglais ||| L1G/ L2G/ L3G/ L4G/ L5G en français
1ère Génération :
Les langages machine, ce sont des langages peu lisible, il n'y avait pas encore de fonctions à écrire
en anglais. Ce sont les plus vieux langages mais aussi les plus puissant car ils sont directement liés
au processeur. C'est le cas du Code Machine, composé de 0 et de 1. Le programmeur qui
programme avec du Code Machine doit connaître parfaitement le processeur sur lequel il
programme. Ce qui fait que si on change de processeur le programme doit changer. La portabilité
d'un programme en Code Machine est donc difficile à mettre en place.
2ème Génération :
Les langages assembleurs. Ils ont les mêmes défauts que le Code Machine pour la portabilité mais
on commence à utiliser une syntaxe plus proche du langage humain. Il est donc plus facilement
lisible et utilisable mais il reste réservé à des personnes de haut niveau et à des programmes de bas
niveau. Il est très difficile de concevoir un moteur 3D en assembleur. Mais si ceci se fait un jour ce
serai un moteur très rapide.
3ème Génération :
Ceux-ci nous interessent plus dans l'étude de faire « du neuf avec du vieux », ceci est du à leur
portabilité qui est maintenant plus grande. On peut plus facilement comparer les programmes de
différents langages car ils sont dotés de systèmes communs tels que les conditions, les boucles, les
fonctions, les types. Il sont donc dit de langages structurés.
Ces langages sont, de plus, écrit dans une syntaxe proche de l'anglais, ils gagnent en lisibilité, et
sont donc plus facile à comprendre pour les débutants. Il existe une énorme variété de langages de
3eme génération , c'est pour cela qu'ils ont été divisés en plusieurs groupes. (cf: La partie Types de
langages). Ces langages sont en constante évolution et sont les plus utilisés.
4ème Génération :
Les langages de programmation de cette génération sont des programmes qui s'occupent de tâches
spécifique, ils n'ont aucuns liens entre eux. Le SQL s'occupe de la base de donnée pour
accompagner le PHP.
D'autres langages tels que PostScript ou Metafont s'occupent de la production graphique.
D'autres encore sont présents pour la création d'interface ( ex: 4D).
MATLAB est aussi un langage 4GL/L4G.
Leur avantage sont qu'ils sont intégrées dans un environnement de développement rapide.
Avantage qu'ils transmettent aux langages de 5ème génération.
5ème Génération :
Ces langages de programation ne se servent pas d'algorithmes pour résoudre des problèmes mais de
contraintes. C'est plutot utilisé pour les études sur l'intelligence artificielle.
En clair, le programmeur doit penser à aux problèmes que le langage doit résoudre et sous quelle
conditions et ensuite, tout est fait directement par l'ordinateur, il n'y a donc pas besoin de mettre en
oeuvre une routine ou un algorithme pour les résoudre.
Quelques langages connus : Prolog, OPS5, Mercury.
Petite appartée : WEBDEV un L5G :
Il permet de faciliter la programmation Web en génèrant des codes PHP, HTML, Javascript
automatique.
Types de languages :
Les L3G sont les langages qui nous interessent le plus pour faire du neuf avec du vieux.
Il est donc primordial de savoir de quels type de L3G on traite pour étudier les similarités entre les
langages. Il y a 5 types de L3G :
Les langages à objets :
Ces langages utilisent la POO (programmation orienté objet), donc le Système de Classe apprise en
Java cette année. Les Objets sont des sorte de boite/conteneurs qui représentent une image
informatisées d'un objet réel. Par exemple une voiture, une Bactérie. Ils ont étés créés dans le but de
faciliter la programmation de logiciels de simulation. Maintenant ils sont utilisés dans de très
nombreux langages. D'ailleurs de vieux langage impératifs, sont devenus des langages à objets. On
peut citer le PHP ou bien le Java, ou même le Javascript. On peut les considèrer comme des
langages plus évolués.
Les langages impératifs:
Deuxième type de L3G on peut dire que c'est un langage à objets sans les objets. Pour faire plus
clair c'est un langage qui décrit les opérations sous forme d'instructions mis à la suite. On note
plusieurs similitudes entre ces langages, les conditions, les boucles, l'assignation. C'est sous cette
forme que l'on commence à apprendre l'informatique en IUT. On y trouve donc le C qui est la
version dans objets du C++.
Les langages fonctionnels:
Ce type de L3G interdit les opérations d'affectation. On peut le voir comme des boîtes mémorisant
plusieurs données (paramètres) réliées entre elles par une seule sortie.
(A développer svp les namis j'ai un peu de mal a comprendre).
Les langages déclaratifs:
Ce type de L3G ne permet pas de lancer des opérations via des suites d'instructions. En fait il n'y a
pas les notions de condition, de bouclage, de variable même. On utilise des fonctions déjà toute
faite pour afficher ce que l'on veut voir. C'est le cas du HTML avec ses balises pour afficher un
texte de la taille demandée, de la façon demandé, de la couleur demandée. C'est un langage très
simple d'utilisation et de compréhension. Très souvent appris par les débutants.
Il existe aussi le Latex qui, comme le HTML s'occupe de l'affichage de ce que l'on demande. Le
latex est orienté dans l'affichage Mathématique, par exemple pour afficher une intégrale, une
fraction très simplement.
Les langages concurrents:
La programmation concurrente est un style de programmation tenant compte, dans un programme,
de l'existence de plusieurs piles sémantiques. Ces piles peuvent être appelées threads, processus ou
tâches. Elles sont matérialisées en machine par une pile d'exécution et un ensemble de données
privées. Les threads disposent d'une zone de mémoire partagée alors que les processus sont
strictement isolés.
(A développer svp les namis j'ai un peu de mal a comprendre).
Téléchargement