• Aucun résultat trouvé

Algorithmique et Langage C

N/A
N/A
Protected

Academic year: 2022

Partager "Algorithmique et Langage C"

Copied!
14
0
0

Texte intégral

(1)

Algorithmique et Langage C

Algorithmique et Langage C

www.polytech.unice.fr/žvg/index-xidian.html

Granet Vincent - Vincent.Granet@univ-cotedazur.fr

Xi’an - Octobre 2019 - Avril 2020

(2)

Algorithmique et Langage C Bibliographie

Bibliographie

International Organization for Standardization

Programming Language – C, ISO/IEC 9899 :2011, 2011.

Brian W. Kernighan and Dennis M. Ritchie.

The C Programming Language.

Prentice-Hall, second edition, 1988.

(also published in French, ed. MASSON).

Samuel P. Harbison and Guy L. Steele.

C : A Reference Manual.

Prentice-Hall, second edition, 1987.

(also published in French, ed. MASSON).

FAQ C.

see comp.lang.c and http://www.eskimo.com/~scs/C-faq/top.html.

C. A. R. Hoare.

An axiomatic basis for computer programming.

Comm. ACM, Octobre 1969.

(3)

Algorithmique et Langage C Introduction

Introduction

(4)

Algorithmique et Langage C Introduction

Environnement Informatique

Un programme est une suite finie de commandes préparée à l’avance et destinée à être exécutée par un ordinateur.

1 Matériel ordinateur périphériques

2 Logiciel

système d’exploitation applications

(5)

Algorithmique et Langage C Introduction

Environnement Matériel

L’ordinateur (modèle de Von Neumann, 1944)

et logique

données

résultats instructions registres

unité d’échange

centrale mémoire unité de commande

unité centrale

unité arithmétique

périphériques

Codification binaire de l’information Actions/Objets (instructions/données)

(6)

Algorithmique et Langage C Introduction

Environnement Matériel

Équipements externes - périphériques

1 Transcodification pour l’utilisateur écran, clavier, souris,

caméra, micro, imprimante, etc.

2 Mémoires secondaires fixes (disques durs, SSD)

amovibles (disquettes, clés USB, ...)

3 Connexions réseaux filaires (Ethernet) ondes (wifi, bluetooth)

(7)

Algorithmique et Langage C Introduction

Environnement Logiciel

Système d’exploitation

Ensemble de programmes destiné à faire fonctionner l’ordinateur et ses périphériques

Linux, Windows, Mac OS Unix, Multics, GCOS, MVS, ...

Android, Symbian, Windows pour tablettes et smarphones

(8)

Algorithmique et Langage C Introduction

Environnement Logiciel

Principales fonctions d’un système d’exploitation

1 Gestion des processus

2 Gestion de la mémoire

3 Gestion des E/S

4 SGF

5 Réseau

6 Sécurité

7 Interface utilisateur (textuelle, graphique, mixte)

(9)

Algorithmique et Langage C Introduction

Environnement Logiciel

Ensemble d’applications

suites bureautiques (éditeurs, tableurs, etc.) outils multimédias (navigateurs, ...)

jeux,

environnements de programmation ...

(10)

Algorithmique et Langage C Introduction

Langages de programmation

Langages de programmation

Les instructions d’un programme sont décrites à l’aide d’un langage langage machine

langage d’assemblage langage de haut niveau

(11)

Algorithmique et Langage C Introduction

Langages de programmation

Langage d’assemblage Intel Core I5

Ce programme écrit"Bonjour"sur la sortie standard

LC0:

.string "Bonjour"

.text .globl main

.type main, @function main:

.LFB0:

.c _startproc pushq %rbp

.c _def_cfa_offset 16 .c _offset 6, -16 movq %rsp, %rbp .c _def_cfa_register 6 movl $.LC0, %edi call puts movl $0, %eax popq %rbp .c _def_cfa 7, 8 ret

.c _endproc

(12)

Algorithmique et Langage C Introduction

Langages de programmation

• Unlangage de haut niveauoffre des moyens d’expression structurés proches des problèmes à résoudre

Définition

elle couvre en particulier les aspects :

1 lexicaux

2 syntaxiques

3 sémantiques (statique/dynamique) Mise en œuvre

1 compilation

2 interprétation

(13)

Algorithmique et Langage C Introduction

Langages de programmation

Bref historique

Depuis les années 50, desmilliersde langages ont été conçus : Fortran (57, J Backus, IBM),Lisp(58, Mc Carty, MIT),Cobol (59, DOD)

Algo 60 (J. Backus),Pascal(68, Wirth),PL/I (IBM),Algo 68 C(72, D. Ritchie) ,Modula,Modula-2(Wirth),Ada(J. IchBiah, DOD)

C++(83, B. Stroustrup), Eiffel(B. Meyer),Prolog(A.

Colmerauer)

Java (J Gosling, 95),Python(90, G. van Rossum),Ruby (95, Y.

Matsumoto)

(14)

Algorithmique et Langage C Introduction

Construction des programmes

• Construction des programmes

Programmation : difficile/complexe

Méthodes de conception et de programmation rigoureuses pour garantir la fiabilité des programmes

Programmation orientée objetvsprocédurale

Programmation descendante parraffinements successifs Algorithme

Justesse d’un programme

Axiomatique de Hoare (preuve de programme)

Références

Documents relatifs

C’est cette suspension de la référence dans le type qui fait que le langage est un système autonome mais qui peut s’appliquer à un dehors, de la même manière qu’en

Début algorithme : Ouverture de la porte d’un garage.

• le modèle d’une structure décrit le type des variables membres d’une structure  c’est un type. • une instance d’une structure a une existence réelle

Dans cette partie du cours, nous allons étudier la programmation en langage machine d’un microprocesseur.. L’étude complète d’un processeur réel, comme un Core Duo,

on spécifie une borne min et une borne max, avec min 6 max les opérations possibles sur les intervalles sont celles admises sur le type de base. naturel = [0

Elles se produisent quand les types des opérandes d’une expression sont différents. En C, les règles

Le conséquent {Q} doit être vérifié, même si aucun énoncé E

les fonctions et les variables globales visibles dans tous les fichiers doivent être définies une seule fois. Pour les variables globales, la définition peut