Introduction à l’informatique et applications à la biologie

IV - La compilation (version 3.0)

Prof. Patrick E. Meyer

Le triangle de Pascal (XVII)

Automate cellulaire avec entiers (coefficients binomiaux):

1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

1 6 15 20 15 6 1

1 7 21 35 35 21 7 1

Ligne suivante ?

Le triangle de pascal (nombres pairs)

Automates cellulaires?

Le triangle de Pascal à travers le monde

Triangle de Yanghui’s (~XIVe, Chine)

Triangle de Khayyam (~XIIIe, Perse)

L’escalier du Mont Meru (~VIIIe, Inde)

Sequence Look and Say (Conway)

Autre automate cellulaire célèbre:

1

1 1

2 1

1 2 1 1

1 1 1 2 2 1

3 1 2 2 1 1

Ligne suivante?

L’addition sur entier

  • Qu’affiche ce morceau de code si on entre 4 au clavier?

    int b;
    cin >> b;
    int d = 2+b;
    cout << d+2 << " " << d;   
  • cin >> b assigne à b une valeur entrée au clavier

  • les opér. de calcul (*,/,+,-) sur entiers créent des entiers

Algorithme d’addition

1 (carry)


137

092


229 (solution)

0011 (carry)


10001001

01011100


11100101 (solution)

  • calculez \(GCTACG + AATCGT\) (convention CTAG)?

Circuit logique: additioneur

Demi-additioneur (sans report en entrée)

  • Additioneur complet pour un bit

Le circuit XOR

Toute fonction logique calculable par un ordinateur (pas seulement le XOR) peut-être mise sous forme d’une combinaison de AND, OR et NOT.

La porte NOT

Exemple: un interrupteur magnétique, l’interrupteur est attiré par la bobine quand le courant y passe.

La porte OR et la porte AND

Une diode ne laisse passer le courant que si la différence de potentiel aux bornes est positive (sens de la “flèche”)

OR

  • AND

La loi de Moore

Les portes NOT, AND et OR peuvent toutes être réalisées aujourd’hui avec des transistors (semi-conducteurs)

L’évolution de la programmation

Aujourd’hui: \(c = a+b;\)

Assembly-like programming

Instruction Variable
LOAD A
ADD B
SAVE C

Machine-like programming

Instruction Variable
01110100 00110101
11100110 01101101
11011101 10101011
  • compilateur (c++, java, …) vs interpréteur (R, python, …)
    • La commande de compilation g++ script.cpp produit un résultat en langage machine sur a.out

Principe du compilateur

Lien avec la biologie

  • Autrement dit
    Un génome est tel le contenu d’un fichier exécutable (compilé) en quaternaire pour une machine (phénotypique) dont on ne possède pas encore tous les circuits…

  • Pourquoi les virus sont spécifiques à certaines “espèces”?

  • Ce qui fait implicitement de la biologie moléculaire et de la bioinformatique, des sciences de retro-ingénierie du vivant

Codage d’un caractère

  • 26 lettres

  • plusieurs dizaines de ponctuations

  • plusieurs dizaines d’accents

  • 26 majuscules

  • \(\rightarrow\) codé par un entier sur un 1 octet: 8 bits

  • Qu’affiche ce morceau de code à l’écran?

    char a = 'b';
    char c = a;
    cout << c;