MDLP 0
MDLP 0
MDLP 0
Palus Jean-Pascal
Licence IV - L1 - Semestre I
Séance 0
▶ 10 semaines de cours
▶ Shell script
▶ Python
▶ LATEX
▶ C
• Software
▶ L’informatique moderne
• Séquençage du génome humain (2003)
• Donald Knuth publie son tome IV (2011)...
• Ian Goodfellow (1985-...) - GAN (2014)
• AlphaGo vs Lee Sedol - 4 : 1 (2016)
• AlphaGo Zero vs AlphaGo - 100 : 0 (2017)
• AlphaZero vs AlphaGo Zero - 60 : 40 (2017)
▶ Différentes architectures.
• Hybride
• Harvard
• von Neumann
• RISC
• Apple
• MIPS
• ARM (Arduino, Raspberry Pi, consoles Nintendo, smartphones)
• CISC
• x86
• AMD64
• ...
▶ Software :
• Ensemble de séquences d’instructions interprétables par une machine et
jeu de données nécessaires à ces opérations.
▶ Software :
• Ensemble de séquences d’instructions interprétables par une machine et
jeu de données nécessaires à ces opérations.
▶ Software :
• Ensemble de séquences d’instructions interprétables par une machine et
jeu de données nécessaires à ces opérations.
▶ Par qui sont écrit les programmes ?
• Développeurs ∼ sources
• D’autres programmes ∼ binaires
▶ Programmes système
• Se lance (presque) en premier lors de l’allumage de la machine.
• Offre des services au logiciels applicatifs.
• Fait le lien entre le matériel et les logiciels applicatifs.
▶ Programmes applicatifs
• Tout le reste...
▶ Caractéristiques :
• Multi-utilisateur
• Séparation entre le processus kernel et utilisateurs
• Multitasking préemptif
• Tout est fichier
▶ De nombreux dérivés :
• Tru64
• FreeBSD
• MacOS
• Solaris
• Linux
▶ 1969 - Unix écrit au Bell Labs d’abors en ASM puis en C par K&R.
▶ Écrit en C
▶ POSIX
▶ ∼ 700 distribs
• Arch Linux
• Kali Linux
• Chrome OS
• Android
• Raspberry Pi OS
• OpenWrt
▶ Arborescence standardisée :
• /bin - Binaires essentiels utilisateur
• /sbin - Binaires essentiels su
• /usr/bin - Binaires non essentiels
• /boot - Fichiers statiques de boot
• /dev - Devices
• /dev/sda
• /dev/null
• /dev/random
▶ Arborescence standardisée :
• /home
• /root
• /lib - Bibliothèques partagées
• /var - logs et tout ce qui ne va pas dans /usr
• /opt - Packages add-ons
• /proc - Kernel et fichiers processeurs
• /run - FIchiers utilisés par les processus en cours (process IDs, sockets,
etc...)
0x 60 00 00 80
0x A4 00 00 00
0x 60 01 00 84
0x A4 01 01 00
0x 60 02 00 00
0x 60 03 00 04
0x 60 04 00 00
0x 60 05 00 01
0x 08 00 00 02
0x 20 00 00 03
0x 20 04 04 05
0x 11 20 04 01
▶ L’asm permet une abstraction par rapport au code machine, mais est
toujours pénible à lire.
▶ Les "mnémoniques" asm sont toujours très courtes simples, et
correspondent à un très petit nombre d’instructions processeur.
▶ Un niveau d’abstraction supplémentaire est necéssaire pour pouvoir
écrire rapidement et efficacement des programmes.
▶ Turing complets
▶ Différents paradigmes
▶ Turing complets
▶ Différents niveau d’abstraction
• bas niveau : code objet, asm
• moyen niveau : FORTRAN, C, C++
• haut niveau : C++, Python, PHP, Swift, JS, Ruby
• Très haut niveau / spécialisés : Prolog, SQL
▶ Différents paradigmes
▶ Turing complets
▶ Impératif
• Utilise des commandes pour changer l’état d’un programme.
• Exécution du programme étape par étape.
• C, C++, C#, Python, Java, JS
▶ Fonctionnel
▶ Logique
▶ Objet
▶ Impératif
▶ Fonctionnel
• Tout est fonction
• Le résultat d’un calcul sert au calcul suivant, et ainsi de suite, jusqu’à
ce que toutes les fonctions aient produit un résultat
• (Idéalement) Pas d’effet de bord.
• Itération via la récursion
• Lisp (Common Lisp, Scheme, Racket, Emacs Lisp, ...), OcamL, Haskell
▶ Logique
▶ Objet
▶ Impératif
▶ Fonctionnel
▶ Logique
• Largement basée sur les concepts de la logique formelle.
• Un programme est une suite de phrases logiques exprimants des faits et
des règles d’inférences.
• Utilise les règles d’inférence pour explorer les mondes possibles à la
recherche d’une affirmation qui satisfait les prémisses.
• Prolog, Datalog, ASP
▶ Objet
▶ Impératif
▶ Fonctionnel
▶ Logique
▶ Objet
• Destiné à faciliter le découpage d’un grand programme en plusieurs
modules isolés les uns des autres.
• Un objet représente un concept, une idée ou toute entité du monde
physique.
• Il possède une structure interne et un comportement, et il sait interagir
avec ses pairs.
• Simula, C++, Python, Java, Swift