diff --git a/pages/article1.html b/pages/article1.html index 0cb5b45..03c6863 100644 --- a/pages/article1.html +++ b/pages/article1.html @@ -1,34 +1,116 @@ + - - Le C + + LangProg - Le C + + + -

-- Menu principal

-
- The C
-        Programming language logo + +
+
+

LangProg - C

+ ImgTitle +
+ +
-
-
+ + + +
+

Le language de programmation C

-

C est un langage de programmation impératif - généraliste, de bas niveau. Inventé au début des années 1970 - pour réécrire Unix, C est devenu un des langages les plus utilisés, - encore de nos jours. De nombreux langages plus modernes comme C++, C#, - Java et PHP ou JavaScript ont repris une syntaxe similaire au C et - reprennent en partie sa logique. C offre au développeur une - marge de contrôle importante sur la machine - (notamment sur la gestion de la mémoire) et est de ce fait utilisé - pour réaliser les « fondations » (compilateurs, - interpréteurs…) de ces langages plus modernes.

-
+ +
+

C est un langage de programmation impératif + généraliste, de bas niveau. Inventé au début des années 1970 + pour réécrire Unix, C est devenu un des langages les plus utilisés, + encore de nos jours. De nombreux langages plus modernes comme C++, C#, + Java et PHP ou JavaScript ont repris une syntaxe similaire au C et + reprennent en partie sa logique. C offre au développeur une + marge de contrôle importante sur la machine + (notamment sur la gestion de la mémoire) et est de ce fait utilisé + pour réaliser les « fondations » (compilateurs, + interpréteurs…) de ces langages plus modernes.

+
+ +
+

Histoire

+

Le langage C a été inventé au cours de l'année 1972 dans les + Laboratoires Bell. Il était développé en même temps qu'Unix par + Dennis Ritchie et Kenneth Thompson. Kenneth Thompson avait développé + le prédécesseur direct de C, le langage B, qui est lui-même + largement inspiré de BCPL. Dennis Ritchie a fait évoluer le langage + B dans une nouvelle version suffisamment différente, en ajoutant + notamment les types, pour qu'elle soit appelée C1. + + Bien que C soit directement dérivé de B, Ritchie relève aussi des influences de + PL/I, FORTRAN et ALGOL 68. En outre, Ritchie signale que l'équipe + était convaincue du bien-fondé de l'idée d'écrire un système + d'exploitation dans un langage de plus haut niveau que l'assembleur, + un aspect pionnier de Multics, écrit en PL/I. + + Par la suite, Brian Kernighan aida à populariser le langage C. Il procéda aussi + à quelques modifications de dernière minute. En 1978, Kernighan fut + le principal auteur du livre The C Programming Language décrivant le + langage enfin stabilisé ; Ritchie s'était occupé des appendices et + des exemples avec Unix. On appelle aussi ce livre « le K&R », et + l'on parle de C traditionnel ou de C K&R lorsqu'on se réfère au + langage tel qu'il existait à cette époque.

+
+ +
+

Qualités et défauts

+
    +

    Principale qualitées

    +
  • il existe depuis longtemps, le début des années 1970 ;
  • +
  • il est fondé sur un standard ouvert ;
  • +
  • de nombreux informaticiens le connaissent ;
  • +
  • il permet la minimisation de l'allocation mémoire nécessaire, son contrôle complet et la maximisation de la performance, notamment par l'utilisation de pointeurs ;
  • +
  • il permet la construction de structures de données complexes et ad-hoc, au plus près des besoins ;
  • +
  • des compilateurs et bibliothèques logicielles existent sur la plupart des architectures ;
  • +
  • il a influencé de nombreux langages plus récents dont C++, Java, C# et PHP ; sa syntaxe en particulier est largement reprise ;
  • +
  • il met en œuvre un nombre restreint de concepts, ce qui facilite sa maîtrise et l'écriture de compilateurs simples et rapides ;
  • +
  • il ne spécifie pas rigidement le comportement du fichier exécutable produit, ce qui aide à tirer parti des capacités propres à chaque ordinateur ;
  • +
  • il permet, par la compilation directe vers le langage machine (via l'assembleur), l'écriture de logiciels qui n'ont besoin d'aucun support à l'exécution (ni bibliothèque logicielle ni machine virtuelle), au comportement prévisible en temps d'exécution comme en consommation de mémoire vive, comme des noyaux de système d'exploitation et des logiciels embarqués.
  • +

    Principaux inconvénients

    +
  • le peu de vérifications offertes par les compilateurs d'origine (K&R C), et l'absence de vérifications à l'exécution, ce qui fait que des erreurs qui auraient pu être automatiquement détectées lors du développement ne l’étaient qu’à l'exécution, donc au prix d’un plantage du logiciel ; +
      +
    • sous UNIX, on pouvait utiliser les utilitaires lint et cflow pour éviter de tels mécomptes,
    • +
    • des vérifications sont ajoutées avec le temps, mais elles restent partielles,
    • +
    +
  • +
  • son approche de la modularité restée au niveau de ce qui se faisait au début des années 1970, et largement dépassée depuis par d'autres langages : +
      +
    • il ne facilite pas la programmation orientée objet,
    • +
    • il ne permet pas de créer des espaces de noms,
    • +
    +
  • +
  • la gestion d'exceptions très sommaire ;
  • +
  • le support très limité de la généricité, malgré l’introduction des expressions à type générique en C11 ;
  • +
  • les subtilités de l'écriture de programmes portables, car le comportement exact des exécutables dépend de l'ordinateur cible ;
  • +
  • le support minimaliste de l'allocation de mémoire et des chaînes de caractères, ce qui oblige les programmeurs à s'occuper de détails fastidieux et sources de bugs ; il n'y a notamment pas de ramasse-miettes standard ;
  • +
  • les bugs graves qui peuvent être causés par un simple manque d'attention du développeur ; tel le dépassement de tampon qui constitue une faille de sécurité informatique exploitable par les logiciels malveillants ;
  • +
  • certaines erreurs ne peuvent être détectées automatiquement qu'à l'aide d'outils supplémentaires et non standardisés, comme lint et Valgrind ;
  • +
  • la faible productivité du langage par rapport aux langages plus récents[réf. souhaitée].
  • +
+
+ +
+ diff --git a/pages/article2.html b/pages/article2.html index 01beae8..ac71977 100644 --- a/pages/article2.html +++ b/pages/article2.html @@ -1,38 +1,60 @@ + - - Le C++ + + LangProg - Le C++ + + + -

-- Menu principal

-
- C++ logo + +
+
+

LangProg - C++

+ ImgTitle +
+ +
-
-
-

Le language de programmation C

-

C++ est un langage de programmation compilé permettant la - programmation sous de multiples paradigmes, dont la programmation - procédurale, la programmation orientée objet et la programmation - générique. Ses bonnes performances, et sa compatibilité avec le C en - font un des langages de programmation les plus utilisés dans les - applications où la performance est critique.

-

Créé initialement par Bjarne Stroustrup dans les années 1980, le - langage C++ est aujourd'hui normalisé par l'ISO. Sa première - normalisation date de 1998 (ISO/CEI 14882:1998), ensuite amendée par - l'erratum technique de 2003 (ISO/CEI 14882:2003). Une importante mise - à jour a été ratifiée et publiée par l'ISO en septembre 2011 sous le - nom de ISO/IEC 14882:2011, ou C++113. Depuis, des mises à jour sont - publiées régulièrement : en 2014 (ISO/CEI 14882:2014, ou C++144), en - 2017 (ISO/CEI 14882:2017, ou C++175) puis en 2020 (ISO/IEC 14882:2020, - ou C++206).

-
+ + + +
+
+

Le language de programmation C++

+ +
+

C++ est un langage de programmation compilé + permettant la programmation sous de multiples paradigmes, + dont la programmation procédurale, la programmation orientée + objet et la programmation générique. Ses bonnes + performances, et sa compatibilité avec le C en font un des langages + de programmation les plus utilisés dans les applications où la + performance est critique.

Créé initialement par Bjarne + Stroustrup dans les années 1980, le langage C++ est aujourd'hui + normalisé par l'ISO. Sa première normalisation date de 1998 (ISO/CEI + 14882:1998), ensuite amendée par l'erratum technique de 2003 + (ISO/CEI 14882:2003). Une importante mise à jour a été ratifiée et + publiée par l'ISO en septembre 2011 sous le nom de ISO/IEC + 14882:2011, ou C++113. Depuis, des mises à jour sont publiées + régulièrement : en 2014 (ISO/CEI 14882:2014, ou C++144), en 2017 + (ISO/CEI 14882:2017, ou C++175) puis en 2020 (ISO/IEC 14882:2020, ou + C++206).

+
+ +
+ diff --git a/pages/article3.html b/pages/article3.html index 4a83fe8..de7a360 100644 --- a/pages/article3.html +++ b/pages/article3.html @@ -1,40 +1,61 @@ + - - Le C# + + LangProg - Le C# + + + -

-- Menu principal

-
- C# logo + +
+
+

LangProg - C#

+ ImgTitle +
+ +
-
-
-

Le language de programmation C

-

C# est un langage de programmation orientée objet, - fortement typé, dérivé de C et de C++, ressemblant au langage Java. Il - est utilisé pour développer des applications web, - ainsi que des applications de bureau, des services web, des - commandes, des widgets ou des bibliothèques de classes. En - C#, une application est un lot de classes où une des classes comporte - une méthode Main, comme cela se fait en Java.

-

C# est destiné à développer sur la plateforme .NET, une pile - technologique créée par Microsoft pour succéder à - COM.

Les exécutables en C# sont subdivisés en assemblies, en - namespaces, en classes et en membres de classe4. Un - assembly est la forme compilée, qui peut être un - programme (un exécutable) ou une bibliothèque de classes (une dll). Un - assembly contient le code exécutable en MSIL, ainsi que les symboles. - Le code MSIL est traduit en langage machine au moment de l'exécution - par la fonction just-in-time de la plateforme .NET4. -

-
+ + + +
+
+

Le language de programmation C#

+ +
+

C# est un langage de programmation orientée objet, + fortement typé, dérivé de C et de C++, ressemblant au langage Java. Il + est utilisé pour développer des applications web, + ainsi que des applications de bureau, des services web, des + commandes, des widgets ou des bibliothèques de classes. En + C#, une application est un lot de classes où une des classes comporte + une méthode Main, comme cela se fait en Java.

+

C# est destiné à développer sur la plateforme .NET, une pile + technologique créée par Microsoft pour succéder à + COM.

Les exécutables en C# sont subdivisés en assemblies, en + namespaces, en classes et en membres de classe4. Un + assembly est la forme compilée, qui peut être un + programme (un exécutable) ou une bibliothèque de classes (une dll). Un + assembly contient le code exécutable en MSIL, ainsi que les symboles. + Le code MSIL est traduit en langage machine au moment de l'exécution + par la fonction just-in-time de la plateforme .NET4. +

+
+
+ + diff --git a/pages/donnees.html b/pages/donnees.html index c74fa42..10eb25f 100644 --- a/pages/donnees.html +++ b/pages/donnees.html @@ -17,9 +17,9 @@
diff --git a/styles/articles.css b/styles/articles.css new file mode 100644 index 0000000..96c8eee --- /dev/null +++ b/styles/articles.css @@ -0,0 +1,7 @@ +.logo { + width: 260px; + margin-top: 6%; + margin-right: 3%; + display: block; + float: right; +} diff --git a/styles/main.css b/styles/main.css index 1e097ad..b558f28 100644 --- a/styles/main.css +++ b/styles/main.css @@ -1,5 +1,6 @@ body { - background-color: #ebebeb; + background-color: #ebebeb; + margin: 0; } a { @@ -16,7 +17,7 @@ a:active { color: darkgrey; } /* HEADER */ .header { - border-left: 6px solid cadetblue; + border-left: 10px solid cadetblue; background-color: #ebebeb; position: sticky; top: 0px; @@ -29,6 +30,7 @@ a:active { color: darkgrey; } .header h1 { margin-left: 10px; margin-bottom: 4px; + margin-top: 0; } .header img { @@ -53,7 +55,7 @@ a:active { color: darkgrey; } /* MAIN CONTENT */ .main-content { - border-left: 6px solid cadetblue; + border-left: 10px solid cadetblue; border-right: 2px solid cadetblue; margin-right: 20%; } @@ -82,6 +84,11 @@ a:active { color: darkgrey; } padding-bottom: 4px; } +.main-content p, li { + padding-right: 20px; + text-align: justify; +} + .main-content .actus h4 { margin-bottom: 0; padding-bottom: 2px;