Chapitre I. Introduction à la programmation

Documents pareils
Évaluation et implémentation des langages

Préparation à l examen EFA en Macro

M Études et développement informatique

M Études et développement informatique

M Études et développement null informatique. R i. Appellations. Analyste cogniticien / cogniticienne informatique

Éléments de programmation et introduction à Java

Cours d Algorithmique et de Langage C v 3.0

Le génie logiciel. maintenance de logiciels.

Machines virtuelles Cours 1 : Introduction

Conception de circuits numériques et architecture des ordinateurs

Les Langages Informatiques

Cours 1 : La compilation

Introduction aux Bases de Données Relationnelles Conclusion - 1

programmation S initier à la la Avec des exemples en C, C++, C#, Java et PHP Avec des exemples en C, C++, C#, Java et PHP Claude Delannoy

Résumé Génération de code Le code intermédiaire

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

UE Programmation Impérative Licence 2ème Année

Machines virtuelles. Brique ASC. Samuel Tardieu Samuel Tardieu (ENST) Machines virtuelles 1 / 40

Programmation assembleur : aperçu

Optimisation de logiciels de modélisation sur centre de calcul

Annexe : La Programmation Informatique

Chapitre 1 Qu est-ce qu une expression régulière?

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Contexte et motivations Les techniques envisagées Evolution des processus Conclusion

Compilation (INF 564)

La mémoire. Un ordinateur. L'octet. Le bit

Programmation C. Apprendre à développer des programmes simples dans le langage C

Architectures web/bases de données

SSTIC Désobfuscation automatique de binaires. Alexandre Gazet. Yoann Guillot. Et autres idyles bucoliques...

Chapitre 10 Arithmétique réelle

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits


Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

1 L évolution de l informatique

Présentation du module Base de données spatio-temporelles

Informatique UE 102. Jean-Yves Antoine. Architecture des ordinateurs et Algorithmique de base. UFR Sciences et Techniques Licence S&T 1ère année

Chapitre 2 : Abstraction et Virtualisation

C U R R I C U L U M V I T A E

Chapitre I Notions de base et outils de travail

Langage de scripts : historique et définition

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

CESI Bases de données

Systèmes en réseau : Linux 1ère partie : Introduction

Introduction aux systèmes temps réel. Iulian Ober IRIT

CHEF DE PROJET - DÉVELOPPEUR SENIOR DELPHI. 50 ans - 16 ans d'expérience

Visual Paradigm Contraintes inter-associations

Traduction des Langages : Le Compilateur Micro Java

ACTIVITÉ DE PROGRAMMATION

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Rappels d architecture

Architecture des ordinateurs

Cours de Programmation 2

ALGORITHMIQUE ET PROGRAMMATION En C

Éléments d'architecture des ordinateurs

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Logiciel Libre Cours 2 Fondements: Programmation

INTRODUCTION À LA PROGRAMMATION PRATIQUE DU LANGAGE C. M. Le Gonidec

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Cours 1 : Qu est-ce que la programmation?

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Dossier de presse. Août Le Grain de Web : le webmarketing à la portée de tous p 1. Témoignage client de Mélanie Robilliard p 2

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Chapitre 1 I:\ Soyez courageux!

Structure d un programme

Introduction à la modélisation

Environnements de développement (intégrés)

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que

Z i e d Z a i e r ( )

CH.3 SYSTÈMES D'EXPLOITATION

ADMINISTRATEUR WINTEL Dominique MAHIEU 35 ans WINDOWS 2008/2003, ACTIVE DIRECTORY, EXCHANGE, CITRIX, VMWARE

Gé nié Logiciél Livré Blanc

Introduction Damien Nouvel

Conservation des documents numériques

Je suis très dynamique et extrêmement motivé car j'aime beaucoup acquérir de nouvelles connaissances et

Cours d Informatique

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

Programmes des classes préparatoires aux Grandes Ecoles

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

Microprocesseur + Logiciel

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

MOTEUR DE WORKFLOW Mise en oeuvre d'openwfe Version septembre 2006

Les intermédiaires privés dans les finances royales espagnoles sous Philippe V et Ferdinand VI

Systèmes et traitement parallèles

Ingénieur Développement Nouvelles Technologies

Étude de l interopérabilité de deux langages de programmation basée sur la machine virtuelle de Java

Curriculum Vitae. GISBERT Aurélien Ingénieur Informatique INSA Senior Business & Data Analyst Business Intelligence 11 ans d expérience

Alain AUDUTEAU. Directeur de projets. 440, Avenue de la division Leclerc CHATENAY MALABRY : :

Machines Virtuelles. et bazard autour. Rémi Forax

Traduction binaire dynamique de l extension SIMD Néon de l ARMv7 dans Qemu

Curriculum Vitae 1 er février 2008

Python - introduction à la programmation et calcul scientifique

les techniques d'extraction, les formulaires et intégration dans un site WEB

Transcription:

Chapitre I Introduction à la programmation

Objectif du cours Comprendre ce qu est l algorithmique. Fournir des éléments de bases intervenants en programmation quel que soit le langage employé Variables Types Instructions d'affectation Instructions de lecture ou d écriture Structures de contrôles 2

Plan Introduction de la notion d'algorithme Définition de l algorithmique Syntaxe algorithmique 3

L algorithmique INTRODUCTION 4

Introduction Présence importante de l ordinateur dans notre environnement : ( bords Automobile (ordinateurs de ( automatisme ) Robots Jeux vidéo ( GSM ) Routage Rôle fondamental de la programmation qui se cache derrière ces tâches 5

Pourquoi programmer? Programmation existe partout Magnétoscope Réveil Besoin d effectuer des nouvelles tâches : besoin d écrire des programmes nouveaux Par non informaticien : formalisation en français Par informaticien : langage compréhensible par lui et la machine 6

Le processeur comprend quoi? Programme : séquence d'instructions du processeur cc2: 55 cc3: 89 e5 cc5: 53 cc6: 83 ec 14 cc9: e8 fc ff ff ff cce: 81 c3 02 00 00 00 cd4: 8b 45 08 cd7: 89 44 24 04 cdb: 8b 45 08 cde: 89 04 24 CODE MACHINE??? Codage hexadécimal : seul langage compris par le processeur. Instructions quasi inutilisable pour les programmeurs 7

Le processeur comprend quoi? Programme : séquence d'instructions du processeur cc2: 55 cc3: 89 e5 cc5: 53 cc6: 83 ec 14 cc9: e8 fc ff ff ff cce: 81 c3 02 00 00 00 cd4: 8b 45 08 cd7: 89 44 24 04 cdb: 8b 45 08 cde: 89 04 24 CODE MACHINE push mov push sub call add mov mov mov mov %ebp %esp,%ebp %ebx $0x14,%esp cca $0x2,%ebx 0x8(%ebp),%eax ( eax,0x4(%esp % 0x8(%ebp),%eax ( eax,(%esp % ASSEMBLEUR Codage hexadécimal : seul langage compris par le processeur. Instructions quasi inutilisable pour les programmeurs 8

Comment parler à l ordinateur? Dans son langage ou dans le notre? L ordinateur ne sait exécuter qu un nombre limité d opérations élémentaires dictées par des instructions de programmes, codées en binaire L ordinateur ne peut comprendre que le langage machine Il est possible d utiliser des «outils» qui permettront de traduire un langage simple vers le langage machine 9

Le langage de programmation Langage commun entre Le programmeur Le processeur : traduit en code machine Il existe différents types de langage : Langage machine (ou langage symbolique) Les langages dits «évolués» 10

Langage symbolique En langage symbolique : 0101010011011010 pourrait signifier (en langage machine) additionner (0101) les valeurs comprises dans les mots d adresses 010011 et 011010 Il faut disposer d un programme capable de faire la conversion : Add A,B 0101010011011010 11

Langage évolué Nécessité de définir des langages : Utilisables sur n importe quel ordinateur Plus tourné vers le problème à résoudre que vers les caractéristiques particulières à l architecture de la machine Exemples de langages évolués : ( scientifique Fortran (Domaine ( Gestion ) Cobol Pascal, ADA, C, C++, C#, Visual Basic, JAVA 12

Les langages de programmation Avant 1950 Algorithmes et machines à calculer. 1950 1960 Fortran, Lisp, Cobol 1960 1970 Apl, Basic, P1/1, Logo 1970 1980 Pascal, Prolog, SmallTalk, C, Awk, Ada, Rexx. 1980 1990 Dbase, C++, Eiffel, Maple, Perl, Tcl/Tk. 1990 2000 VisualBasic, Java, Php, Mysql. 2000 2010 Java 2, Delphi 7, Php 4.3.3, Perl 5.8.1, C#. 13

De toutes façons, il faut traduire Quel que soit le langage évolué, il faut le traduire en langage machine. Existence de deux techniques différentes : Compilation : consiste à traduire l ensemble du programme (écrit en langage évolué) en langage machine. Ce programme est ensuite exécuté. Interprétation : consiste à traduire chaque instruction du programme avant de l exécuter. 14

Oui mais... Connaître un langage de programmation ne signifie pas savoir programmer même si ça aide. 15

Du problème au programme 1 - Analyse Besoin exprimé en français 2 - Traduction Besoin Langage universel (algorithme) 3 - Traduction Langage universel Langage de programmation 4 - Création de l exécutable Compilation/interprétation. 16

Méthodologie Pour résoudre un problème, il faut suivre les quatre étapes suivantes : comprendre la nature du problème posé préciser les données fournies ("entrées") préciser les résultats que l'on désire obtenir ("sorties") déterminer le processus de transformation des données en résultats Ces quatre étapes ne sont pas indépendantes et leur ordre peut être modifié 17

Exemple tri 18

L algorithmique DÉFINITION 19

Algorithmique / Programme Un algorithme est : Une suite d instructions élémentaires décrites dans un langage universel exécutées de manière séquentielle Indépendant du langage de programmation Un programme est un ensemble d instructions qui: Spécifie les opérations élémentaires à exécuter Définit la façon dont elles s enchaînent Est écrit dans un langage de programmation 20

Définition Un algorithme est une méthode Suffisamment générale pour permettre de traiter toute une classe de problèmes Combinant des opérations suffisamment simples pour être effectuées par une machine Pour un problème donné, il peut y avoir plusieurs algorithmes ou aucun Algorithme : langage abstrait et non ambiguë 21

Propriétés Propriété que doit avoir un algorithme : Solution correcte au problème à résoudre Indépendant de tout langage de programmation Explication aussi courte que possible L éternel dilemme : Solution rapidement trouvée / Complexité en temps Solution utilisant un minimum de place mémoire / Complexité en espace 22