Lycée   >   Terminale   >   NSI   >   Comprendre qu'un programme peut être une donnée

Comprendre qu'un programme peut être une donnée

  • Fiche de cours
  • Quiz
  • Profs en ligne
Objectif

Comprendre qu’un programme peut être considéré comme une donnée d’un autre programme.

Points clés
  • Un programme est un ensemble d’instructions écrites dans un langage de programmation ou directement exécutables par le microprocesseur d’un ordinateur.
  • Une donnée est la représentation d’une information dans un programme.
  • Dans un ordinateur, un programme est un fichier mis en mémoire. C’est une donnée d’autres programmes qui permettent son exécution, comme le système d’exploitation par exemple.
Pour bien comprendre
  • Connaitre les notions de langage interprété et langage compilé.
  • Connaitre le fonctionnement d’un système d’exploitation.
1. Donnée et programme
a. Donnée et information

Les termes de donnée et d’information sont souvent utilisés en informatique ou dans la vie courante. Ils sont toutefois rarement clairement définis.

Une information est un élément de connaissance susceptible d’être représenté par des signes tels que les lettres d’un alphabet, des nombres ou d’autres signes porteurs de sens.
En informatique, une donnée est la représentation d’une information dans un programme. On la retrouve soit dans le code source du programme, soit en mémoire lors de l’exécution du programme.
Exemple
La phrase « Mon chat a 8 ans » est une information.
En Python, cela pourrait être interprété par la création de la variable age_de_mon_chat qui pourrait être créée par l’affectation age_de_mon_chat = 8.
La variable age_de_mon_chat est donc une donnée qui représente l’information « Mon chat a 8 ans ».
b. Programme et logiciel
Un programme informatique est un ensemble d’instructions et d’opérations dont le but est d’être exécuté par un ordinateur.

On peut en distinguer de deux sortes :

  • Un programme source (ou code source) est un texte écrit par un programmeur dans un langage de programmation.
    Il peut être interprété directement, ou être compilé vers une forme binaire.
  • Un programme binaire est un ensemble d’instructions destiné à être directement exécuté par un microprocesseur.
    On dit que ces instructions sont écrites en langage machine.
Remarque
Le premier programme informatique est attribué à la comtesse Ada Lovelace en 1842. En effet, elle a créé des diagrammes d’instructions pour la machine analytique de Charles Babbage, machine à calculer programmable qu’il a imaginée en 1834.
Un logiciel informatique est un ensemble constitué de programmes informatiques exécutables par une machine et de données qui permettent l’exécution de ces programmes.
2. Un programme comme donnée d'un autre programme - Exemples

En 1948, les premiers ordinateurs ont été créés à partir de l’architecture de von Neumann. Celle-ci propose de stocker et de manipuler les programmes comme des données. D’ailleurs, elle les stocke dans la même mémoire que les données.

Les ordinateurs actuels sont conçus sur ce même modèle. Beaucoup d’exemples permettent de comprendre la raison pour laquelle un programme informatique peut être considéré comme une donnée.

a. Langage interprété et langage compilé

Python est un langage interprété, c’est-à-dire que tout programme en Python a besoin d’un programme auxiliaire, un interpréteur, pour traduire au fur et à mesure ses instructions.

Un programme en Python est ainsi une donnée de l’interpréteur utilisé.
Exemple
Le programme suivant définit deux fonctions maxi(a, b) et maxi2(a, b, c) et affiche maxi2(3, 5, 1).
Python Explication

def maxi(a, b):
    if a > b:
        return a
    else:
        return b

On définit la fonction maxi(a, b) qui prend en paramètres deux nombres a et b, et renvoie le plus grand des deux.

def maxi2(a, b, c)
    return maxi(a, maxi(b, c))

On définit la fonction maxi2(a, b, c) qui prend en paramètres trois nombres a, b et c, et renvoie le plus grand des trois.
print(maxi2(3, 5, 1)) On affiche le résultat de maxi2(3, 5, 1).
Le site Python Tutor propose un interpréteur en ligne pour le langage Python.

Voici l’exécution du programme précédent sur Python Tutor.

On observe bien que l’entrée est le programme précédemment défini. C’est la donnée d’entrée. Python Tutor le traduit et propose une visualisation de son exécution.
Sur le même principe, un programme écrit dans un langage compilé est une donnée du compilateur qui le traduira en langage machine.
b. Téléchargement de logiciel

Lorsque l’on télécharge un logiciel, on télécharge un fichier exécutable qui en contient tous les programmes et toutes les données.

Un fichier est une collection de données archivées ensemble, un programme du logiciel est donc une donnée du fichier téléchargé.
Exemple
Pour installer Python sur son ordinateur, on peut se rendre sur le site python.org.

L’onglet « Downloads » propose différentes options de téléchargement.

En choisissant « Windows », puis en choisissant la version de Python que l’on veut installer, on peut télécharger un fichier exécutable.

Ici, le fichier « python-3.8.2-amd64.exe » contient comme données les programmes qui permettent de coder en Python dans sa version 3.8.2.

c. Fonctionnement d'un système d'exploitation

Un système d’exploitation est un ensemble de programmes qui pilotent et coordonnent les différents éléments d’un ordinateur.

Il est toutefois nécessaire d’installer le système d’exploitation dans un espace mémoire de l’ordinateur pour qu’il fonctionne. Le système d’exploitation est une donnée de l’ordinateur.

Les programmes du système d’exploitation sont également des données de l’ordinateur utilisé.
Exemple
Chaque ordinateur dont le système d’exploitation est Windows contient un fichier exécutable sfc.exe (system file checker). C’est un programme qui permet de vérifier l’intégrité des fichiers systèmes et de les corriger si possible. Par exemple, l’option /scannow est utilisée pour scanner, puis réparer l’installation de Windows.

Ici, le programme « sfc.exe » est une donnée installée en mémoire de l’ordinateur en même temps que Windows pour réparer son installation.

Comment as-tu trouvé ce cours ?

Évalue ce cours !

 

Question 1/5

La médiane de 6 notes est 13. Cela signifie que :

Question 2/5

On a obtenu la série statistique suivante :

Combien vaut la médiane ?

Question 3/5

On a obtenu la série ci-dessous :

Quelle est la médiane de cette série ?

Question 4/5

On a relevé les tailles en cm des élèves d’une classe :

 

Parmi les propositions suivantes, laquelle est vraie ?

Question 5/5

Les notes en français de deux classes littéraires sont données dans le tableau suivant :

Quelle est la note médiane ?

Vous avez obtenu75%de bonnes réponses !

Recevez l'intégralité des bonnes réponses ainsi que les rappels de cours associés :

Votre adresse e-mail sera exclusivement utilisée pour vous envoyer notre newsletter. Vous pourrez vous désinscrire à tout moment, à travers le lien de désinscription présent dans chaque newsletter. Pour en savoir plus sur la gestion de vos données personnelles et pour exercer vos droits, vous pouvez consulter notre charte.

Une erreur s'est produite, veuillez ré-essayer

Consultez votre boite email, vous y trouverez vos résultats de quiz!

Découvrez le soutien scolaire en ligne avec myMaxicours

Le service propose une plateforme de contenus interactifs, ludiques et variés pour les élèves du CP à la Terminale. Nous proposons des univers adaptés aux tranches d'âge afin de favoriser la concentration, encourager et motiver quel que soit le niveau. Nous souhaitons que chacun se sente bien pour apprendre et progresser en toute sérénité ! 

Fiches de cours les plus recherchées

NSI

Introduire les notions de calculabilité et de décidabilité

NSI

Utiliser la récursivité en Python

NSI

Utiliser une API et des bibliothèques

NSI

Utiliser les paradigmes impératifs et fonctionnels

NSI

Utiliser le paradigme objet

NSI

Repérer les bugs : typages, effets de bords, débordements

NSI

Repérer les bugs : structures

NSI

Anticiper les erreurs classiques

NSI

Utiliser Python pour déterminer les mesures des arbres binaires

NSI

Utiliser Python dans les arbres binaires de recherche